<?xml version="1.0" encoding="UTF-8"?>
<rss  xmlns:atom="http://www.w3.org/2005/Atom" 
      xmlns:media="http://search.yahoo.com/mrss/" 
      xmlns:content="http://purl.org/rss/1.0/modules/content/" 
      xmlns:dc="http://purl.org/dc/elements/1.1/" 
      version="2.0">
<channel>
<title>The Autonomy Data Unit Blog</title>
<link>https://adu.autonomy.work/</link>
<atom:link href="https://adu.autonomy.work/index.xml" rel="self" type="application/rss+xml"/>
<description></description>
<generator>quarto-1.8.1</generator>
<lastBuildDate>Wed, 30 Jul 2025 23:00:00 GMT</lastBuildDate>
<item>
  <title>Corkboard</title>
  <dc:creator>Lukas Kikuchi, Sean Greaves</dc:creator>
  <link>https://adu.autonomy.work/posts/2025_07_31_corkboard/</link>
  <description><![CDATA[ 





<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
TL;DR
</div>
</div>
<div class="callout-body-container callout-body">
<p>Researching connections between named entities quickly becomes overwhelming as the number of entities increases.</p>
<p>To address this, we built a pipeline that combines web scraping with LLMs to identify websites where a meaningful connection between two entities is likely.</p>
<p>🚨 <strong>Disclaimer:</strong> The pipeline surfaces <em>potentially</em> relevant connections from online sources; each connection should then be independently verified.</p>
<p>For this demo, we ran the pipeline on 858 <a href="https://www.theyworkforyou.com/peers/">House of Lords peers</a> and 34 neoliberal, libertarian, or alt-right institutions cited in Quinn Slobodian’s <a href="https://www.londonreviewbookshop.co.uk/stock/hayek-s-bastards-the-neoliberal-roots-of-the-populist-right-quinn-slobodian"><em>Hayek’s Bastards</em></a> to uncover any meaningful links between them. The results of this curated web search are archived within an <a href="https://obsidian.md/">Obsidian</a> vault, which we make free to <a href="assets/corkboard_vault.zip" download="corkboard_vault.zip">download (~1MB)</a>, <a href="https://help.obsidian.md/manage-vaults#Create+vault+from+an+existing+folder">open</a> and explore.</p>
<p>🔎 If you have your own list of entities to research and would like help, please reach out: <strong>adu@autonomy.work</strong></p>
</div>
</div>
<p>The internet has made <em>one-man intelligence agencies</em> of all of us. Armed with some names and too much free time, digging around and connecting the dots is a relatively frictionless if time-consuming experience. On occasion, you might find something interesting. Yet it is common to run into hard scaling limits when attempting to map the connections between entities within large <em>networks</em>.</p>
<p>What do we mean by networks? Almost anything can be represented as a network. You could make a network by mapping connections between politicians and offshore companies, topics and writers, locations and events etc.</p>
<p>In this blog, we focus on a single use case:</p>
<blockquote class="blockquote">
<p>Given a list of entities, such as people or organisations, are any of them <em>meaningfully</em> connected to one another, and if so, how?</p>
</blockquote>
<p>In a world where everything is connected if you look hard enough, what do we mean by meaningfully connected? Well, if prompting an LLM we might say something like this:</p>
<blockquote class="blockquote">
<p>A connection is <em>meaningful</em> when it reflects significant cooperation, influence, shared control, or material advantage, for example:</p>
<ul>
<li>Ownership stakes, major investments, or funding flows<br>
</li>
<li>Leadership, board, advisory, or employment roles that link the entities<br>
</li>
<li>Contractual partnerships, joint ventures, or co‑development deals<br>
</li>
<li>Lobbying, advocacy, or coordination aimed at affecting policy or regulation<br>
</li>
<li>Legal proceedings or rulings directly involving both parties<br>
</li>
<li>Operational integration (e.g., supply‑chain dependencies, technology licensing)<br>
</li>
<li>Any other clear, substantive relationship <strong>beyond mere co‑mention or coincidence</strong></li>
</ul>
</blockquote>
<p>However even a well crafted prompt won’t coax today’s LLMs into finding every meaningful tie within a large roster of names. Some providers have equipped their models with the ability to run web searches to patch their blind spots, but a few dozen queries barely dent the problem. If we wanted to gather context from the web on every possible relationship that could exist within a set of 200 entities, we would need to run 19,900 web searches. This of course doesn’t even account for the multiple naming conventions for a single entity which would significantly increase the number of searches we’d need to execute.</p>
<p>Thankfully automating tens of thousands of web searches is relatively cheap and fast to run nowadays, perhaps in minutes or hours. In our case, the real challenge lies in sifting through the search results for specific evidence of a meaningful connection. Even search results containing exact‑string matches for both entities often prove irrelevant due to <em>spurious co-occurrence</em> or <em>named entity disambiguation</em>:</p>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Spurious Co-occurrence
</div>
</div>
<div class="callout-body-container callout-body">
<p>Both names show up in the same source, but not in relation to one another. They might sit in two unrelated articles that merely share a webpage or appear in a long list of people. In such cases, the co‑mention does not satisfy our “meaningful connection” criteria.</p>
</div>
</div>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Named Entity Disambiguation
</div>
</div>
<div class="callout-body-container callout-body">
<p>A single name can point to multiple real‑world actors, so we need extra context to tell which one the text refers to e.g.&nbsp;David Cameron the Yale political scientist versus David Cameron the former UK prime minister.</p>
</div>
</div>
<p>In our experience, <em>named entity disambiguation</em> is the more difficult challenge to solve at scale. Accurately distinguishing between two entities with the same name often requires consulting multiple sources and, at times, drawing on prior knowledge or domain expertise.</p>
<p>By contrast, filtering out cases of <em>spurious co‑occurrence</em> is generally more straightforward to automate. From a workflow perspective, an LLM only needs to assess the relationship between two entities within a single text; content that can typically be included in its entirety (or in key excerpts) within a single prompt.</p>
<p>Combined with asynchronous processing, it becomes feasible to filter thousands of websites in minutes, at costs in the range of tens to hundreds of pounds. This process identifies a smaller subset of websites where a meaningful connection between the two entities appears in the main body of text. The more complex task of resolving <em>named entity disambiguation</em> can then be handled by a human analyst, working only on this reduced set.</p>
<p>To illustrate the potential for this use-case, we developed a pipeline to perform this task and devised a case-study to test drive it.</p>
<section id="hayeks-bastards-and-the-house-of-lords" class="level3">
<h3 class="anchored" data-anchor-id="hayeks-bastards-and-the-house-of-lords">Hayek’s Bastards and the House of Lords</h3>
<blockquote class="blockquote">
<p>What connections exist between the House of Lords and some of the institutions pivotal in cultivating today’s alt‑right politics from strands of neoliberalism?</p>
</blockquote>
<p>We set about identifying meaningful connections between 858 House of Lords peers and a selection of institutions from Quinn Slobodian’s recent book, <a href="https://www.londonreviewbookshop.co.uk/stock/hayek-s-bastards-the-neoliberal-roots-of-the-populist-right-quinn-slobodian">Hayek’s Bastards</a>. Why would we do this and who are these bastards?</p>
<p>Hayek’s Bastards offers a particular history of today’s alt‑right that suggests it did not spring up in opposition to neoliberalism but rather mutated from its core, evolving into a strain obsessed with racial hierarchy and hereditarian ideas of intelligence. Slobodian charts this evolution through a web of neoliberal think tanks, lobby groups and billionaire benefactors, chiefly in the United States, who re‑engineered the market absolutism of Friedrich Hayek and Ludwig von Mises into a politics of exclusion. Except for outliers such as Britain’s Institute of Economic Affairs, most of these actors are American, prompting us to ask how far their influence and networks extend within the UK’s political elite.</p>
<p>The following institutions from Hayek’s Bastards were chosen to cross reference against the set of peers from the House of Lords:</p>
<table class="caption-top table">
<colgroup>
<col style="width: 36%">
<col style="width: 52%">
<col style="width: 10%">
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Description</th>
<th>Country</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>American Enterprise Institute</td>
<td>centre-right think-tank</td>
<td>US</td>
</tr>
<tr class="even">
<td>American Immigration Control Foundation</td>
<td>immigration reduction campaign group</td>
<td>US</td>
</tr>
<tr class="odd">
<td>American Renaissance</td>
<td>white supremacist magazine</td>
<td>US</td>
</tr>
<tr class="even">
<td>Atlas Network</td>
<td>libertarian NGO</td>
<td>US</td>
</tr>
<tr class="odd">
<td>Bradley Foundation</td>
<td>conservative funder</td>
<td>US</td>
</tr>
<tr class="even">
<td>British Eugenics Society</td>
<td>non-profit learned society</td>
<td>UK</td>
</tr>
<tr class="odd">
<td>Carthage Foundation</td>
<td>right-of-centre funder</td>
<td>US</td>
</tr>
<tr class="even">
<td>Cato Institute</td>
<td>libertarian think-tank</td>
<td>US</td>
</tr>
<tr class="odd">
<td>Center for Libertarian Studies</td>
<td>libertarian anarcho-capitalist non-profit</td>
<td>US</td>
</tr>
<tr class="even">
<td>Competitive Enterprise Institute</td>
<td>libertarian think-tank</td>
<td>US</td>
</tr>
<tr class="odd">
<td>Conservative Political Action Conference</td>
<td>political conference</td>
<td>US</td>
</tr>
<tr class="even">
<td>Eigentümlich Frei</td>
<td>new-right publisher</td>
<td>Germany</td>
</tr>
<tr class="odd">
<td>Federation for American Immigration Reform</td>
<td>anti-immigration non-profit</td>
<td>US</td>
</tr>
<tr class="even">
<td>Friedrich Hayek Society</td>
<td>non-profit members association</td>
<td>Germany</td>
</tr>
<tr class="odd">
<td>Heritage Foundation</td>
<td>conservative think-tank</td>
<td>US</td>
</tr>
<tr class="even">
<td>Hoover Institution</td>
<td>public policy think-tank</td>
<td>US</td>
</tr>
<tr class="odd">
<td>Human Diversity Foundation</td>
<td>race science publisher</td>
<td>US</td>
</tr>
<tr class="even">
<td>Institute of Economic Affairs</td>
<td>right-wing free market think-tank</td>
<td>UK</td>
</tr>
<tr class="odd">
<td>Institute of Humane Studies</td>
<td>non-profit promoting liberalism</td>
<td>US</td>
</tr>
<tr class="even">
<td>Institut für Staatspolitik</td>
<td>new-right think tank</td>
<td>Germany</td>
</tr>
<tr class="odd">
<td>Junge Freiheit</td>
<td>conservative nationalist newspaper</td>
<td>Germany</td>
</tr>
<tr class="even">
<td>John Randolph Club</td>
<td>paleoconservative think-tank</td>
<td>US</td>
</tr>
<tr class="odd">
<td>Mises Institute</td>
<td>non-profit promoting Austrian economics</td>
<td>US</td>
</tr>
<tr class="even">
<td>Manhattan Institute</td>
<td>conservative think-tank</td>
<td>US</td>
</tr>
<tr class="odd">
<td>Mankind Quarterly</td>
<td>journal</td>
<td>UK/US</td>
</tr>
<tr class="even">
<td>Mercatus Center</td>
<td>libertarian, free-market-oriented think tank</td>
<td>US</td>
</tr>
<tr class="odd">
<td>Mont Pèlerin Society</td>
<td>liberal academic society</td>
<td>US</td>
</tr>
<tr class="even">
<td>Noontide Press</td>
<td>far-right publisher</td>
<td>US</td>
</tr>
<tr class="odd">
<td>Pioneer Fund</td>
<td>race science funder</td>
<td>US</td>
</tr>
<tr class="even">
<td>Property and Freedom Society</td>
<td>anarcho-capitalist political organisation</td>
<td>Turkey</td>
</tr>
<tr class="odd">
<td>Quarterly Journal of Austrian Economics</td>
<td>peer-reviewed academic journal</td>
<td>US</td>
</tr>
<tr class="even">
<td>Rockford Institute</td>
<td>conservative think-tank</td>
<td>US</td>
</tr>
<tr class="odd">
<td>Washington Summit Publishers</td>
<td>white nationalist publisher</td>
<td>US</td>
</tr>
<tr class="even">
<td>VDARE</td>
<td>far right website</td>
<td>US</td>
</tr>
</tbody>
</table>
</section>
<section id="methodology" class="level3">
<h3 class="anchored" data-anchor-id="methodology">Methodology</h3>
<p>Our pipeline implements the following steps.</p>
<section id="assemble-source-lists" class="level4">
<h4 class="anchored" data-anchor-id="assemble-source-lists">1. Assemble Source Lists</h4>
<p>The list of current House of Lords peers was sourced from <a href="https://www.theyworkforyou.com/peers/">They Work for You</a> whilst the list of institutions from Hayek’s Bastards was sourced from reading the book.</p>
</section>
<section id="expand-normalise-names" class="level4">
<h4 class="anchored" data-anchor-id="expand-normalise-names">2. Expand &amp; Normalise Names</h4>
<p>To capture every relevant hit, we expanded each entities’s name to all common variants. Searching <code>“Lord Cameron of Chipping Norton”</code> for instance, surfaces different results than <code>“David Cameron”</code>. For every entity we ran a quick web query (e.g., <code>"Lord Cameron of Chipping Norton" peer conservative "House of Lords"</code>), passed the snippets to an LLM, and let it return the full alias list e.g.&nbsp;<code>“David William Donald Cameron”</code>, <code>“David W. D. Cameron”</code> etc. This single step increased our original 858 peers into 3,459 distinct names, dramatically widening the search space.</p>
</section>
<section id="construct-search-queries" class="level4">
<h4 class="anchored" data-anchor-id="construct-search-queries">3. Construct Search Queries</h4>
<p>We paired every peer alias with every institution name, producing 152,592 unique search strings. For example, to probe links between Lord Frost and the Heritage Foundation we searched <code>"Lord Frost" "Heritage Foundation"</code>.</p>
</section>
<section id="execute-web-searches" class="level4">
<h4 class="anchored" data-anchor-id="execute-web-searches">4. Execute Web Searches</h4>
<p>Running the 152,592 queries produced roughly 100K hits, yet a hit count tells us nothing about the strength or nature of any link. Google snippets give only a headline, URL, and a few teaser lines. This is usually far too thin to judge a real connection. Take these results:</p>
<div id="7beb1ca5-1550-47ed-8348-7d3908637120" class="cell">
<div class="cell-output cell-output-display cell-output-markdown">
<ol type="1">
<li><p><strong><a href="https://www.heritage.org/europe/event/last-exit-freedom-britain-after-brexit-and-the-future-conservative-politics">Last Exit to Freedom? Britain After Brexit and the Future of …</a></strong><br>
Lord Frost began life as a professional diplomat but entered the … Secondary Navigation. Sign-up for weekly texts from The Heritage Foundation …</p></li>
<li><p><strong><a href="https://www.theguardian.com/politics/live/2025/jan/28/chris-whitty-evidence-mps-assisted-dying-bill-committee-labour-keir-starmer-conservatives-uk-politics-latest-updates">Ex-Tory Brexit minister Lord Frost rejects party’s claims over Europe …</a></strong><br>
Ex-Tory Brexit minister Lord Frost rejects party’s claims over Europe-wide customs scheme – as it happened … Heritage Foundation Photograph: …</p></li>
<li><p><strong><a href="https://www.desmog.com/2024/08/14/project-2025-tory-candidates-ties-heritage-foundation-donald-trump-robert-jenrick-priti-patel/">Project 2025: Tory Candidates Have Ties to Group Drafting …</a></strong><br>
Ex-Tory Brexit minister Lord Frost rejects party’s claims over Europe-wide customs scheme – as it happened … Heritage Foundation Photograph: …</p></li>
</ol>
</div>
</div>
<p>All three mention both names, yet none clarifies how (or even whether) they relate. To verify any relationship we clearly need to scrape the full page content for every result that cited both entities.</p>
</section>
<section id="retrieve-filter-pages" class="level4">
<h4 class="anchored" data-anchor-id="retrieve-filter-pages">5. Retrieve &amp; Filter Pages</h4>
<p>Not every page will surrender its text. Paywalls, logins, and anti‑bot defences routinely shut scrapers out. For instance, the most common domain within the search results was <code>Scribd</code>, a website for sharing documents that requires an account and offers no public API. After testing the most popular domains, we attempted to scrape the 32,601 URLs that seemed at least partly accessible. From those we successfully pulled usable text from 22,279 pages.</p>
<div class="callout callout-style-default callout-important callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Data Release
</div>
</div>
<div class="callout-body-container callout-body">
<p>As we were unable to retrieve relevant text from the majority of search results, <strong>we are releasing this data</strong> for any curious researchers to explore.</p>
<p>📂 <a href="assets/edges.zip" download="edges.zip"><strong>Download edges.zip (~13MB)</strong></a></p>
</div>
</div>
</section>
<section id="craft-llm-prompts" class="level4">
<h4 class="anchored" data-anchor-id="craft-llm-prompts">6. Craft LLM Prompts</h4>
<p>The key obstacle when prompting LLMs is context control; the model needs enough surrounding text to judge whether two entities are truly connected, but not so much that the prompt becomes unnecessarily costly or cluttered. With shorter texts we can simply include the entire article within a prompt. However web‑scraped pages within our dataset range from a six‑word <a href="https://www.huffingtonpost.co.uk/author/ruth-porter">job title</a> to sprawling, million‑word tomes that mention our targets only in passing. Feeding all of that to the LLM is both inefficient and unfocused.</p>
<p>We therefore devised a scalable prompt‑building strategy that distills each page to the minimum context required for <strong>reasonably</strong> reliable inference, regardless of length.</p>
<p>To keep prompts both focused and economical, we rely on a lightweight <em>three‑snippet</em> strategy, always passing the model the following sections from each article:</p>
<ol type="1">
<li><p>Lead paragraph: usually the first 100–150 words to orient the model on the subject matter and tone.</p></li>
<li><p>Entity‑A window: a symmetric slice of text (<strong>± W</strong> words) centred on the first mention of entity A.</p></li>
<li><p>Entity‑B window: the same‑sized slice around the first mention of entity B.</p></li>
</ol>
<p>The window width <strong>W</strong> balances cost and context; smaller windows save tokens but may miss clues whilst larger ones capture more evidence at higher cost. Because the three snippets are concatenated in order (lead → A → B), the model receives a compact narrative arc that mirrors how a human reader might be introduced to these entities.</p>
<p>To decide which chunks to keep, we first set a global token budget <strong>G</strong> as the maximum number of tokens we can spend on context. With G fixed, the following table shows how we choose what to send to the LLM:</p>
<table class="caption-top table">
<colgroup>
<col style="width: 33%">
<col style="width: 33%">
<col style="width: 33%">
</colgroup>
<thead>
<tr class="header">
<th>Scenario</th>
<th>Decision rule</th>
<th>Context sent to the LLM</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><strong>Short article</strong></td>
<td>Article length ≤ <strong>G</strong></td>
<td>Entire article</td>
</tr>
<tr class="even">
<td><strong>Entities close together (early)</strong></td>
<td>Offset from start to later first‑mention ≤ <strong>G</strong></td>
<td>One continuous chunk from start to entity mentions</td>
</tr>
<tr class="odd">
<td><strong>Entities far apart</strong></td>
<td>Offset from start to later first‑mention &gt; <strong>G</strong></td>
<td><em>If entity A is near the top</em>  →  <strong>2 chunks</strong>: combined <strong>(lead + A‑window)</strong> and <strong>B‑window</strong><br><em>Otherwise</em>  →  <strong>3 chunks</strong>: <strong>lead</strong>, <strong>A‑window</strong>, <strong>B‑window</strong></td>
</tr>
</tbody>
</table>
<p>Anchoring every decision to <strong>G</strong> (total allowance) and <strong>W</strong> (per‑entity context) improves the likelyhood that each prompt supplies just enough relevant information without overrunning token limits.</p>
</section>
<section id="infer-entity-connections" class="level4">
<h4 class="anchored" data-anchor-id="infer-entity-connections">7. Infer Entity Connections</h4>
<p>After the LLM flagged passages that it judged as depicting a meaningful link between two entities, we extracted relevant named entities and suggested relevant entities from those passages and matched each one to its canonical Wikipedia entry. This grounding step standardised the names and anchored our graph to reliable, publicly maintained IDs.</p>
</section>
<section id="archive-results-in-obsidian" class="level4">
<h4 class="anchored" data-anchor-id="archive-results-in-obsidian">8. Archive Results in Obsidian</h4>
<p>All curated data was archived to an Obsidian vault, providing an interactive workspace where you can browse search hits and navigate the entity graph.</p>
<div class="callout callout-style-default callout-important callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Data Release
</div>
</div>
<div class="callout-body-container callout-body">
<p>To explore the dataset, you must first <a href="https://obsidian.md/download">download Obsidian</a>, download and unzip the dataset below and then follow the instructions to <a href="https://help.obsidian.md/manage-vaults#Create+vault+from+an+existing+folder">create a vault from an existing folder</a> (in this case the folder you just unzipped).</p>
<p>📂 <a href="assets/corkboard_vault.zip" download="corkboard_vault.zip"><strong>Download corkboard_vault.zip (~1MB)</strong></a></p>
</div>
</div>
<p>Every hit comes with an LLM‑generated synopsis and a <em>summary receipt</em> that records the model used to generate the synopsis, the fraction of the article included within the prompt, and whether this fraction of text was supplied as a single continuous block or split into windows. This metadata gives researchers an additional measure to judge the reliability of each synopsis before deciding to open the original page. Each synopsis should be interpreted only as a guide to what may exist on the webpage and <strong>absolutely not as fact</strong> as it was generated by an LLM. Similarly the content of each webpage should be carefully judged as to whether of not the information is reliable:</p>
<figure style="text-align: center;" class="figure">
<img src="https://adu.autonomy.work/posts/2025_07_31_corkboard/assets/entry.png" style="border: 1px solid black; width: 80%; box-sizing: border-box; display: block; margin: auto;" class="figure-img">
<figcaption>
Single search result in Obsidian with synopsis
</figcaption>
</figure>
<p>After manually removing links that appeared to refer to other persons or organisations, we identified potentially meaningful connections between <strong>20 organisations</strong> from Hayek’s Bastards and <strong>152 peers</strong> from the House of Lords.</p>
<figure style="text-align: center;" class="figure">
<img src="https://adu.autonomy.work/posts/2025_07_31_corkboard/assets/graph_view.png" style="border: 1px solid black; width: 80%; box-sizing: border-box; display: block; margin: auto;" class="figure-img">
<figcaption>
Obsidian graph view of connections between nodes
</figcaption>
</figure>
<!-- Organisations -->
<table class="caption-top table">
<thead>
<tr class="header">
<th>Most Cited Organisations</th>
<th>Connections</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Institute of Economic Affairs</td>
<td>94</td>
</tr>
<tr class="even">
<td>Heritage Foundation</td>
<td>42</td>
</tr>
<tr class="odd">
<td>American Enterprise Institute</td>
<td>22</td>
</tr>
<tr class="even">
<td>Atlas Network</td>
<td>22</td>
</tr>
<tr class="odd">
<td>Cato Institute</td>
<td>18</td>
</tr>
</tbody>
</table>
<!-- Persons -->
<table class="caption-top table">
<thead>
<tr class="header">
<th>Most Cited Peers</th>
<th>Connections</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Lord Hannan of Kingsclere</td>
<td>11</td>
</tr>
<tr class="even">
<td>Lord Elliott of Mickle Fell</td>
<td>10</td>
</tr>
<tr class="odd">
<td>Lord Moynihan of Chelsea</td>
<td>9</td>
</tr>
<tr class="even">
<td>Lord Gove</td>
<td>8</td>
</tr>
<tr class="odd">
<td>Lord Hintze</td>
<td>7</td>
</tr>
</tbody>
</table>


</section>
</section>

 ]]></description>
  <category>Comes with data</category>
  <category>Deep-dives</category>
  <guid>https://adu.autonomy.work/posts/2025_07_31_corkboard/</guid>
  <pubDate>Wed, 30 Jul 2025 23:00:00 GMT</pubDate>
  <media:content url="https://adu.autonomy.work/posts/2025_07_31_corkboard/assets/lords.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>S&amp;P 500’s Automation Anxieties</title>
  <dc:creator>Sean Greaves</dc:creator>
  <link>https://adu.autonomy.work/posts/2025_05_21_ai_risk/</link>
  <description><![CDATA[ 





<p>Two years after the launch of ChatGPT, AI is now used in some capacity by most major companies. But along with its rapid adoption comes a new set of risks, with some still poorly understood or not yet widely discussed.</p>
<p>In our latest report <a href="https://autonomy.work/wp-content/uploads/2025/07/Sp-500-capital-at-risk_-3.pdf"><em>Their capital at risk: the rise of AI as a threat to the S&amp;P 500</em></a>, we analyzed changes in the ‘Risk Factors’ section of SEC 10-K filings from S&amp;P 500 companies to identify how AI-related risks are being reported. These sections—typically detailed, legalistic, offer a subtle yet revealing glimpse into the concerns brewing within companies. By systematically tracking these textual changes, we aim to uncover which aspects of AI are generating the most concern across the corporate world.</p>
<p>This blog post provides an overview of the report’s key findings, alongside the dataset used to derive them.</p>
<section id="overview" class="level3">
<h3 class="anchored" data-anchor-id="overview">Overview</h3>
<p>By comparing the latest “Risk Factors” sections in S&amp;P 500 companies’ 10-K filings (submitted by May 1st, 2025) with their previous filings, we found:</p>
<ul>
<li><strong>3 in 4 companies</strong> (380 total) have added or expanded upon risk concerning <strong>AI</strong>.</li>
<li>Over <strong>1 in 3 companies</strong> (193 total) have added or expanded upon risk concerning <strong>malicious actors using AI</strong>.</li>
<li>The number of companies citing <strong>deepfakes</strong> as a risk has <strong>doubled</strong>, from 16 to 40.</li>
<li><strong>1 in 5 companies</strong> (95 total) have added or expanded upon the risks concerning protection of their <strong>proprietary data or IP</strong> through interacting with AI systems.</li>
<li><strong>1 in 10 companies</strong> (56 total) have added or expanded upon risk concerning <strong>third-party providers</strong> of AI models and software and their vulnerabilities.</li>
<li><strong>1 in 3 utilities firms</strong> (10 total) have added references to <strong>AI’s increasing energy requirements</strong>.</li>
<li>The number of companies citing <strong>EU AI Act</strong> – the European Union’s primary legislation on artificial intelligence – related risk has <strong>tripled</strong>, from 21 to 67.</li>
<li><strong>1 in 3 companies</strong> (168 total) have added or expanded upon <strong>competitive risk</strong> relating to AI.</li>
<li>The number of companies citing <strong>AI bias</strong> risk has <strong>doubled</strong>, from 70 to 146.</li>
<li><strong>1 in 10 companies</strong> (57 total) have added or expanded upon the risk of <strong>AI failing to deliver</strong> intended benefits, success or return on investment.</li>
<li><strong>Risks to jobs</strong> rarely feature among reported risks, despite being a prominent public concern.</li>
</ul>
</section>
<section id="dataset" class="level3">
<h3 class="anchored" data-anchor-id="dataset">Dataset</h3>
<p>Each of the above findings was derived from the following curated selection of 10-K filing extracts, where green-highlighted sections indicate newly added text, red strikethrough sections indicate removed text, and regular text remains unchanged between filings:</p>
<div id="7049cd8e-746e-4747-b517-36f218c19fe5" class="cell">
<div class="cell-output cell-output-display no-overflow-x">

<style>
.title-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.counter {
  font-size: 0.8em;
  color: #555;
}
  .filter-box {
    border: 1px solid #ccc;
    padding: 1em;
    border-radius: 8px;
    margin-bottom: 1em;
    background-color: #f5f6f8;
  }
  .filter-row {
    display: flex;
    flex-wrap: wrap;
    gap: 1em;
    margin-bottom: 1em;
  }
  .filter-item {
    display: flex;
    flex-direction: column;
    min-width: 150px;
    flex: 1;
  }
  .filter-item label {
    font-weight: bold;
    margin-bottom: 0.3em;
  }
  .filter-row input,
  .filter-row select {
    padding: 0.4em;
    font-size: 1em;
    border-radius: 4px;
    border: 1px solid #aaa;
  }
  .button-row {
    display: flex;
    gap: 1em;
  }
  #company-search {
    width: 100%;
  }
  #suggestions {
    position: absolute;
    top: 100%;
    left: 0;
    background-color: white;
    border: 1px solid #ccc;
    border-top: none;
    max-height: 150px;
    overflow-y: auto;
    width: 100%;
    z-index: 1000;
    display: none;
  }
  #suggestions div {
    padding: 0.5em;
    cursor: pointer;
  }
  #suggestions div:hover {
    background-color: #f0f0f0;
  }
  .report-card {
    border: 1px solid #ddd;
    padding: 1em;
    margin-bottom: 1em;
    background-color: #f5f6f8;
    border-radius: 6px;
  }
  .report-card h3 {
    margin-top: 0;
    font-size: 1.2em;
  }
  .report-card .symbol {
    font-weight: normal;
    font-size: 0.9em;
    color: #555;
  }
  .meta p {
    margin: 0.3em 0;
  }
  .tags {
    margin-bottom: 0.5em;
  }
  .tag {
    display: inline-block;
    background-color: #e5e5e5;
    color: #333;
    border-radius: 12px;
    padding: 0.2em 0.7em;
    font-size: 0.8em;
    margin-right: 0.5em;
    font-weight: 500;
  }
  .risks-box {
    min-height: 2em;
    margin-bottom: 0.5em;
  }
  .risk-tag {
    display: inline-block;
    background-color: #f8d7da; /* Red background */
    color: #721c24; /* Dark red text */
    border-radius: 12px;
    padding: 0.2em 0.7em;
    font-size: 0.75em;
    margin-right: 0.5em;
    font-weight: 500;
  }
  .diff-box {
    font-family: monospace;
    line-height: 1.5em;
    height: calc(1.5em * 10);
    overflow-y: auto;
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 1em;
    background-color: #fff;
    margin-top: 1em;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
  }
  
</style>

<div class="filter-box">
  <div class="filter-row" style="position: relative;">
    <div class="filter-item" style="flex: 2;">
      <label for="company-search">Search Company:</label>
      <input id="company-search" placeholder="Start typing..." autocomplete="off">
      <div id="suggestions"></div>
    </div>
  </div>
  <div class="filter-row">
    <div class="filter-item">
      <label for="risk-filter">Risk:</label>
      <select id="risk-filter" onchange="filterOptions()"></select>
    </div>
    <div class="filter-item">
      <label for="sector-filter">Sector:</label>
      <select id="sector-filter" onchange="filterOptions()"></select>
    </div>
    <div class="filter-item">
      <label for="sub-filter">Sub-Industry:</label>
      <select id="sub-filter" onchange="filterOptions()"></select>
    </div>
  </div>
  <div class="button-row" style="align-items: center;">
    <button onclick="prevItem()">⬅ Previous</button>
    <input id="index-slider" type="range" min="1" value="1" style="flex: 1; margin: 0 1em;" oninput="slideTo(this.value)">
    <button onclick="nextItem()">Next ➡</button>
  </div>
</div>

<div id="nav-output"></div>

<script>
const allItems = [{"html": "<div class=\"report-card\">      <h3>3M <span class=\"symbol\">(MMM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Industrial Conglomerates</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/66740/000006674025000006/mmm-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/66740/000006674024000016/mmm-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>While the Company will seek to develop and use artificial intelligence responsibly, and will attempt to identify and mitigate ethical, privacy, legal or other issues presented by its use, there can be no assurance that the Company will be fully successful in doing so, and may be subject to data breaches, allegations of unauthorized access to, or use of, third party data, information, or intellectual property rights, or other risks, which may lead to financial losses, legal liability, regulatory scrutiny and reputational damage.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Industrials", "sub": "Industrial Conglomerates", "company": "3M"}, {"html": "<div class=\"report-card\">      <h3>AbbVie <span class=\"symbol\">(ABBV)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Biotechnology</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1551152/000155115225000020/abbv-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1551152/000155115224000011/abbv-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, AbbVie utilizes artificial intelligence (AI) and other emerging technologies in select applications to support its operations. These technologies may present opportunities for AbbVie's business but may also entail risks, including that AI-generated analyses utilized by AbbVie could be deficient or exacerbate regulatory, cybersecurity or other significant risks. Further, our failure to effectively implement these technologies could hinder our ability to compete, as competitors' advancements in AI may lead to more efficient operations.</span></div>    </div>", "risks": "Competition", "sector": "Health Care", "sub": "Biotechnology", "company": "AbbVie"}, {"html": "<div class=\"report-card\">      <h3>Accenture <span class=\"symbol\">(ACN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Work Displacement'>Work Displacement</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1467373/000146737324000278/acn-20240831.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1467373/000146737323000324/acn-20230831.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">As these technologies evolve, some services and tasks currently performed by our people will be replaced by <span style='color:red;text-decoration:line-through;'>automation.</span> <span style='color:green;'>automation, including AI-enabled solutions, which will lead to reduced demand for our services and/or adversely affect the utilization rate of our professionals, if demand for those services is not replaced by demand for new services.</span></div>    </div>", "risks": "Work Displacement", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "Accenture"}, {"html": "<div class=\"report-card\">      <h3>Accenture <span class=\"symbol\">(ACN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1467373/000146737324000278/acn-20240831.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1467373/000146737323000324/acn-20230831.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>For example, if</span> <span style='color:green;'>In addition, we are creating new offerings to implement AI solutions for clients. We have made significant investments in AI and are continuing to incur significant development and operational costs to develop and deploy our AI services and solutions for ourselves and for our clients. If</span> we fail to continue to develop leading AI services and solutions, including generative AI, we may lose our leadership position in this <span style='color:red;text-decoration:line-through;'>area.</span> <span style='color:green;'>area and fail to realize the anticipated benefits of our investments in AI.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "Accenture"}, {"html": "<div class=\"report-card\">      <h3>Accenture <span class=\"symbol\">(ACN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1467373/000146737324000278/acn-20240831.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1467373/000146737323000324/acn-20230831.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">The rates we are able to charge for our services and solutions are affected by a number of factors, including: \u2022general economic and political conditions; \u2022our clients\u2019 desire to reduce their costs; \u2022the competitive environment in our industry; <span style='color:green;'>\u2022the introduction of new technologies (such as generative AI), services or products by competitors, which could reduce our ability to obtain favorable pricing and impact our overall economics for the services or solutions we offer;</span> \u2022our ability to accurately estimate our service delivery costs, upon which our pricing is sometimes determined, including our ability to estimate the impact of inflation and foreign exchange on our service delivery costs over long-term contracts; and \u2022the procurement practices of clients and their use of third-party advisors.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "Accenture"}, {"html": "<div class=\"report-card\">      <h3>Accenture <span class=\"symbol\">(ACN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1467373/000146737324000278/acn-20240831.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1467373/000146737323000324/acn-20230831.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>In addition, several</span> <span style='color:green;'>Evolving rules, regulations, and industry standards governing AI may require us to incur significant costs to modify, maintain, or align our business practices, services and solutions to comply with US and non-US rules and regulations, the nature of which cannot be determined at this time and may be inconsistent from jurisdiction to jurisdiction. Several</span> jurisdictions where we operate <span style='color:green;'>are considering or</span> have proposed <span style='color:green;'>or enacted</span> legislation <span style='color:green;'>and policies</span> regulating AI and non-personal <span style='color:red;text-decoration:line-through;'>data that</span> <span style='color:green;'>data, such as the European Union\u2019s AI Act and the U.S.\u2019s Executive Order on AI. These regulations</span> may impose significant requirements on how we design, build and deploy AI and handle non-personal data for ourselves and our <span style='color:red;text-decoration:line-through;'>clients.</span> <span style='color:green;'>clients or limit our ability to incorporate certain AI capabilities into our offerings.</span></div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "Accenture"}, {"html": "<div class=\"report-card\">      <h3>Accenture <span class=\"symbol\">(ACN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1467373/000146737324000278/acn-20240831.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1467373/000146737323000324/acn-20230831.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">We are subject to numerous, changing, and sometimes conflicting, legal regimes on matters as diverse as anticorruption, import/export controls, content requirements, trade restrictions, tariffs, taxation, sanctions, immigration, internal and disclosure control obligations, securities regulation, including ESG regulation and reporting requirements, anti-competition, anti-money- laundering, data privacy and protection, government compliance, wage-and-hour standards, employment and labor relations, product liability, health and safety, environmental, human rights and AI <span style='color:red;text-decoration:line-through;'>regulations.</span> <span style='color:green;'>regulations, such as the European Union\u2019s AI Act.</span></div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "Accenture"}, {"html": "<div class=\"report-card\">      <h3>Accenture <span class=\"symbol\">(ACN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1467373/000146737324000278/acn-20240831.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1467373/000146737323000324/acn-20230831.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Threat actors may leverage emerging AI technologies to develop new hacking tools and attack vectors, exploit vulnerabilities, obscure their activities, and increase the difficulty of threat attribution.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "Accenture"}, {"html": "<div class=\"report-card\">      <h3>Accenture <span class=\"symbol\">(ACN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1467373/000146737324000278/acn-20240831.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1467373/000146737323000324/acn-20230831.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">As the breadth and complexity of this infrastructure continues to grow, including as a result of the increasing reliance on, and use of, mobile technologies, social media and cloud-based services, as more of our employees continue to work remotely, and as cyberattacks become increasingly sophisticated (e.g. deepfakes and AI generated social engineering), the risk of security incidents and cyberattacks has increased.</div>    </div>", "risks": "Deepfakes", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "Accenture"}, {"html": "<div class=\"report-card\">      <h3>Accenture <span class=\"symbol\">(ACN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1467373/000146737324000278/acn-20240831.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1467373/000146737323000324/acn-20230831.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>There</span> <span style='color:green;'>For example, the intellectual property legal landscape relating to AI (including generative AI) is expected to continue to evolve in many countries in which we operate. As a result, there</span> is uncertainty concerning the scope of patent and other intellectual property protection for <span style='color:green;'>AI models,</span> software and business methods, which are fields in which we rely on intellectual property laws to protect our rights.</div>    </div>", "risks": "Data and IP Protection", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "Accenture"}, {"html": "<div class=\"report-card\">      <h3>Accenture <span class=\"symbol\">(ACN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1467373/000146737324000278/acn-20240831.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1467373/000146737323000324/acn-20230831.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI algorithms and training methodologies may be flawed and datasets may be overbroad, insufficient, or contain biased information.</span></div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "Accenture"}, {"html": "<div class=\"report-card\">      <h3>Accenture <span class=\"symbol\">(ACN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1467373/000146737324000278/acn-20240831.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1467373/000146737323000324/acn-20230831.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If</span> we fail to continue to develop leading AI services and solutions, including generative AI, we may lose our leadership position in this <span style='color:red;text-decoration:line-through;'>area.</span> <span style='color:green;'>area and fail to realize the anticipated benefits of our investments in AI.</span></div>    </div>", "risks": "Disillusionment", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "Accenture"}, {"html": "<div class=\"report-card\">      <h3>Adobe Inc. <span class=\"symbol\">(ADBE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Skills'>Skills</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/796343/000079634325000004/adbe-20241129.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/796343/000079634324000006/adbe-20231201.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The technology industry <span style='color:red;text-decoration:line-through;'>is often</span> <span style='color:green;'>has been and may continue to be</span> subject to substantial and continuous competition for talent, particularly with <span style='color:green;'>AI and</span> cybersecurity <span style='color:red;text-decoration:line-through;'>and AI</span> backgrounds, and demand for cutting-edge or unique skill sets <span style='color:red;text-decoration:line-through;'>can</span> <span style='color:green;'>may continue to</span> be highly competitive, both of which are heightened with <span style='color:red;text-decoration:line-through;'>the increased availability of</span> hybrid or remote working arrangements.</div>    </div>", "risks": "Skills", "sector": "Information Technology", "sub": "Application Software", "company": "Adobe Inc."}, {"html": "<div class=\"report-card\">      <h3>Adobe Inc. <span class=\"symbol\">(ADBE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Work Displacement'>Work Displacement</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/796343/000079634325000004/adbe-20241129.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/796343/000079634324000006/adbe-20231201.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">New AI offerings and technologies could <span style='color:red;text-decoration:line-through;'>disrupt</span> <span style='color:green;'>modify</span> workforce needs, result in negative publicity about AI and <span style='color:red;text-decoration:line-through;'>have the potential to affect</span> <span style='color:green;'>decrease</span> demand for our existing products, services and solutions, all of which could adversely impact our business.</div>    </div>", "risks": "Work Displacement", "sector": "Information Technology", "sub": "Application Software", "company": "Adobe Inc."}, {"html": "<div class=\"report-card\">      <h3>Adobe Inc. <span class=\"symbol\">(ADBE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/796343/000079634325000004/adbe-20241129.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/796343/000079634324000006/adbe-20231201.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Further, we expect <span style='color:red;text-decoration:line-through;'>the markets for standalone</span> AI offerings to be highly competitive and rapidly evolving. For example, we face increasing competition from companies offering <span style='color:red;text-decoration:line-through;'>text-to-image</span> generative AI <span style='color:red;text-decoration:line-through;'>technology</span> <span style='color:green;'>capabilities, including text-to-image, text-to-video and multi-modal offerings</span> that <span style='color:red;text-decoration:line-through;'>may</span> compete directly with our <span style='color:red;text-decoration:line-through;'>own</span> creative offerings. If we are not able to provide products, services and solutions that compete effectively, we could experience reduced sales and our business could be adversely affected.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Application Software", "company": "Adobe Inc."}, {"html": "<div class=\"report-card\">      <h3>Adobe Inc. <span class=\"symbol\">(ADBE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/796343/000079634325000004/adbe-20241129.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/796343/000079634324000006/adbe-20231201.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>To the extent we rely on third-party AI models in our products, services and solutions, we will face risks inherent in how those models have been developed and deployed, including situations in which the third party may lack a proper license or consent for the training data used for their model.</span></div>    </div>", "risks": "Third Party", "sector": "Information Technology", "sub": "Application Software", "company": "Adobe Inc."}, {"html": "<div class=\"report-card\">      <h3>Adobe Inc. <span class=\"symbol\">(ADBE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/796343/000079634325000004/adbe-20241129.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/796343/000079634324000006/adbe-20231201.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, the EU AI Act was adopted in 2024 and will be implemented in phases through 2030, and other jurisdictions are considering similarly focused legislation. These regulations and the</span> evolving AI regulatory environment <span style='color:red;text-decoration:line-through;'>may</span> <span style='color:green;'>may, among other impacts, result in inconsistencies among AI regulations and frameworks across jurisdictions,</span> increase our <span style='color:green;'>compliance, governance and</span> research and development costs, increase our <span style='color:green;'>exposure to claims related to our AI models and increase</span> liability related to the use of AI by our customers or users that are beyond our <span style='color:red;text-decoration:line-through;'>control and result in inconsistencies in evolving legal frameworks across jurisdictions.</span> <span style='color:green;'>control.</span></div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Application Software", "company": "Adobe Inc."}, {"html": "<div class=\"report-card\">      <h3>Adobe Inc. <span class=\"symbol\">(ADBE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/796343/000079634325000004/adbe-20241129.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/796343/000079634324000006/adbe-20231201.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Such uses may result in controversy or claims related to defamation, rights of publicity, illegal content, intellectual property infringement, harmful content, misinformation and disinformation, harmful bias, misappropriation, data privacy, derivative uses of third-party AI and personal injury torts.</div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Application Software", "company": "Adobe Inc."}, {"html": "<div class=\"report-card\">      <h3>Adobe Inc. <span class=\"symbol\">(ADBE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/796343/000079634325000004/adbe-20241129.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/796343/000079634324000006/adbe-20231201.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">While we have released new generative artificial intelligence products, such as Adobe Firefly, and are focused on enhancing the artificial intelligence (\u201cAI\u201d) capabilities of <span style='color:red;text-decoration:line-through;'>such</span> <span style='color:green;'>our</span> products and incorporating AI <span style='color:red;text-decoration:line-through;'>into</span> <span style='color:green;'>across</span> existing products, services and solutions, there can be no assurance that our <span style='color:green;'>new or enhanced</span> products <span style='color:green;'>and AI innovations</span> will be <span style='color:red;text-decoration:line-through;'>successful</span> <span style='color:green;'>successful, adopted or monetizable</span> or that we will innovate effectively to keep pace with the rapid evolution of AI across our <span style='color:red;text-decoration:line-through;'>Creative Cloud, Document Cloud and Experience Cloud.</span> <span style='color:green;'>offerings.</span></div>    </div>", "risks": "Disillusionment", "sector": "Information Technology", "sub": "Application Software", "company": "Adobe Inc."}, {"html": "<div class=\"report-card\">      <h3>Advanced Micro Devices <span class=\"symbol\">(AMD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/2488/000000248825000012/amd-20241228.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/2488/000000248824000012/amd-20231230.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If</span> we fail to develop and timely offer <span style='color:green;'>or deploy</span> such products and <span style='color:red;text-decoration:line-through;'>technologies or</span> <span style='color:green;'>technologies,</span> keep pace with the product offerings of our competitors, <span style='color:green;'>or adapt to unexpected changes in industry standards or disruptive technological innovation,</span> our business could be adversely affected.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Semiconductors", "company": "Advanced Micro Devices"}, {"html": "<div class=\"report-card\">      <h3>Advanced Micro Devices <span class=\"symbol\">(AMD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/2488/000000248825000012/amd-20241228.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/2488/000000248824000012/amd-20231230.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, the AI market is subject to rapid technological change, product obsolescence, frequent new product introductions and feature enhancements, changes in end-user requirements and evolving industry trends and legal standards.</span> We cannot guarantee that we will be able to compete successfully against current or new competitors who may have stronger positions in these new markets or superior ability to anticipate customer requirements and emerging industry trends.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Semiconductors", "company": "Advanced Micro Devices"}, {"html": "<div class=\"report-card\">      <h3>Advanced Micro Devices <span class=\"symbol\">(AMD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/2488/000000248825000012/amd-20241228.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/2488/000000248824000012/amd-20231230.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If these export controls targeting semiconductors associated with AI including GPUs and associated products and services are further tightened, our ability to export our technology, products or services could be further restricted. We may be at a competitive disadvantage if our competitors are not subject to the same or similar restrictions.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Semiconductors", "company": "Advanced Micro Devices"}, {"html": "<div class=\"report-card\">      <h3>Advanced Micro Devices <span class=\"symbol\">(AMD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/2488/000000248825000012/amd-20241228.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/2488/000000248824000012/amd-20231230.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>As there continues to be an increasing focus on risks related to AI technologies, there may be an increasing focus on regulatory restrictions that target products and services that enable or facilitate AI and that may negatively impact some of our AI- related products and services.</span> If the AI-related products that we offer have unintended <span style='color:red;text-decoration:line-through;'>consequences</span> <span style='color:green;'>consequences, infringe intellectual property rights</span> or <span style='color:red;text-decoration:line-through;'>unintended usage</span> <span style='color:green;'>rights of publicity,</span> or <span style='color:red;text-decoration:line-through;'>customization</span> <span style='color:green;'>are misused</span> by our customers or are otherwise controversial due to their perceived or actual impact on human rights, privacy, <span style='color:green;'>cybersecurity,</span> employment or other social, economic or political issues the public\u2019s acceptance of AI may be impaired and <span style='color:green;'>this</span> may <span style='color:green;'>also</span> result in <span style='color:red;text-decoration:line-through;'>reputational</span> <span style='color:green;'>reputational, competitive</span> and financial harm and liability to our business.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Semiconductors", "company": "Advanced Micro Devices"}, {"html": "<div class=\"report-card\">      <h3>Advanced Micro Devices <span class=\"symbol\">(AMD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Export Controls'>Export Controls</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/2488/000000248825000012/amd-20241228.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/2488/000000248824000012/amd-20231230.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>United States export control regulations include restrictions or prohibitions on the sale or supply of certain AI technologies to United States embargoed or sanctioned countries, governments, persons and entities. If there are changes to those regulations, or to the categorization of our products under those regulations, our ability to sell our products and services outside the United States may be harmed. The United States and its allies continue to focus on export restrictions targeting semiconductors associated with AI, including GPUs and associated products and services. The United States has imposed unilateral controls restricting GPUs and associated products, and in the future is likely to further adopt other unilateral or multilateral controls. The scope and application of such controls have been and may again be very broad, which may prohibit us from exporting or providing access to our products to any or all customers in one or more markets, including but not limited to China, and could negatively impact our manufacturing, testing and warehousing locations, or could impose other conditions that limit our ability to meet demand abroad. If these export controls targeting semiconductors associated with AI including GPUs and associated products and services are further tightened, our ability to export our technology, products or services could be further restricted. We may be at a competitive disadvantage if our competitors are not subject to the same or similar restrictions. Additionally, such export controls have, and may in the future, subject downstream recipients of our products to additional restrictions on the use, resale, repair or transfer of our products and may have a material adverse effect on us.</span></div>    </div>", "risks": "Export Controls", "sector": "Information Technology", "sub": "Semiconductors", "company": "Advanced Micro Devices"}, {"html": "<div class=\"report-card\">      <h3>Advanced Micro Devices <span class=\"symbol\">(AMD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/2488/000000248825000012/amd-20241228.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/2488/000000248824000012/amd-20231230.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We depend on third-party companies for the design, manufacture and supply of motherboards, graphics cards, software (e.g., BIOS, operating systems, <span style='color:red;text-decoration:line-through;'>drivers),</span> <span style='color:green;'>drivers, AI models or tools),</span> memory and other components that we use to design, support and sell, and our customers utilize to support and/or use our product offerings.</div>    </div>", "risks": "Third Party", "sector": "Information Technology", "sub": "Semiconductors", "company": "Advanced Micro Devices"}, {"html": "<div class=\"report-card\">      <h3>Advanced Micro Devices <span class=\"symbol\">(AMD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/2488/000000248825000012/amd-20241228.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/2488/000000248824000012/amd-20231230.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For example, <span style='color:green;'>the EU AI Act was adopted</span> in <span style='color:green;'>2024 and its implementation will be phased in over</span> the <span style='color:red;text-decoration:line-through;'>EU, an AI act</span> <span style='color:green;'>next few years. In other jurisdictions, similar legislation</span> is being considered.</div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Semiconductors", "company": "Advanced Micro Devices"}, {"html": "<div class=\"report-card\">      <h3>Advanced Micro Devices <span class=\"symbol\">(AMD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/2488/000000248825000012/amd-20241228.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/2488/000000248824000012/amd-20231230.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">As AI capabilities improve and are increasingly adopted, we may see <span style='color:red;text-decoration:line-through;'>cyberattacks</span> <span style='color:green;'>more sophisticated threats</span> created through <span style='color:red;text-decoration:line-through;'>AI.</span> <span style='color:green;'>the use of AI technology to launch more automated, targeted and coordinated cyberattacks.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Semiconductors", "company": "Advanced Micro Devices"}, {"html": "<div class=\"report-card\">      <h3>Advanced Micro Devices <span class=\"symbol\">(AMD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/2488/000000248825000012/amd-20241228.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/2488/000000248824000012/amd-20231230.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We are actively building AI capabilities into all our Client products, such as Ryzen AI PC processors, but there can be no assurance about the rate and pace of adoption of such product offerings.</span></div>    </div>", "risks": "Disillusionment", "sector": "Information Technology", "sub": "Semiconductors", "company": "Advanced Micro Devices"}, {"html": "<div class=\"report-card\">      <h3>Agilent Technologies <span class=\"symbol\">(A)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Life Sciences Tools & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1090872/000109087224000049/a-20241031.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1090872/000109087223000020/a-20231031.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, a failure to timely and effectively use or deploy AI and integrate it into new product offerings and services could negatively impact our competitiveness, particularly ahead of evolving industry trends and evolving consumer demands.</span></div>    </div>", "risks": "Competition", "sector": "Health Care", "sub": "Life Sciences Tools & Services", "company": "Agilent Technologies"}, {"html": "<div class=\"report-card\">      <h3>Agilent Technologies <span class=\"symbol\">(A)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Life Sciences Tools & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1090872/000109087224000049/a-20241031.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1090872/000109087223000020/a-20231031.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Use of AI to improve internal business operations, or in the development or provision of products or services, poses risks and challenges. AI can pose risks from an intellectual property, confidential data leakage, data protection, privacy perspective, as well as raise ethical concerns, compliance issues, and security risks. The input of confidential information or trade secrets into AI systems may result in the loss of intellectual property, proprietary rights, or attorney-client privilege in such information or trade secrets. The use of AI technologies for developing products or services may adversely affect or preclude the company\u2019s intellectual property rights in such products or services, or may expose the company to liability related to the infringement, misappropriation or other violation of third-party intellectual property. The use of AI technologies with personally identifiable information may also result in legal liability.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Health Care", "sub": "Life Sciences Tools & Services", "company": "Agilent Technologies"}, {"html": "<div class=\"report-card\">      <h3>Agilent Technologies <span class=\"symbol\">(A)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Life Sciences Tools & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1090872/000109087224000049/a-20241031.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1090872/000109087223000020/a-20231031.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The use of AI technologies with personally identifiable information may also result in legal liability. Further, particularly given the nascent stage of the technology, the use of AI can lead to unintended consequences, including the generation of outputs that appear correct but are factually inaccurate, misleading, or that result in unintended biases and discriminatory outcomes, or are otherwise flawed, which could harm our reputation and business and expose us to risks related to such inaccuracies or errors in these outputs.</span></div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Life Sciences Tools & Services", "company": "Agilent Technologies"}, {"html": "<div class=\"report-card\">      <h3>Air Products <span class=\"symbol\">(APD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Industrial Gases</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/2969/000000296924000056/apd-20240930.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/2969/000000296923000047/apd-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">As with most large systems, our information technology systems have in the past been, and in the future likely will be subject to computer viruses, malicious codes, unauthorized access and other cyber-attacks, and we expect the sophistication and frequency of such attacks to continue to increase. <span style='color:green;'>In addition, advancements in, and the deployment of, intelligent automation, including artificial intelligence tooling and \u201cbots\u201d, may increase our and our vendors\u2019 vulnerability to such attacks.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Materials", "sub": "Industrial Gases", "company": "Air Products"}, {"html": "<div class=\"report-card\">      <h3>Airbnb <span class=\"symbol\">(ABNB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972025000010/abnb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972024000006/abnb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We face competition from other companies in our industry <span style='color:red;text-decoration:line-through;'>who use similar machine learning technologies</span> <span style='color:green;'>with respect</span> to <span style='color:red;text-decoration:line-through;'>us.</span> <span style='color:green;'>the development and deployment of AI and ML Technologies to enhance our competitive offerings.</span></div>    </div>", "risks": "Competition", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Airbnb"}, {"html": "<div class=\"report-card\">      <h3>Airbnb <span class=\"symbol\">(ABNB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972025000010/abnb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972024000006/abnb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Those other companies may develop AI and ML Technologies that are similar or superior to ours and/or are more cost-effective and/or quicker to develop, deploy and maintain.</span></div>    </div>", "risks": "Competition", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Airbnb"}, {"html": "<div class=\"report-card\">      <h3>Airbnb <span class=\"symbol\">(ABNB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972025000010/abnb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972024000006/abnb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The rapid evolution of AI and <span style='color:red;text-decoration:line-through;'>machine learning</span> <span style='color:green;'>ML Technologies</span> will <span style='color:green;'>continue to</span> require the application of <span style='color:green;'>significant</span> resources to <span style='color:green;'>adopt,</span> develop, test, <span style='color:green;'>integrate,</span> and maintain <span style='color:green;'>AI and ML Technologies included in</span> our offerings <span style='color:red;text-decoration:line-through;'>to help ensure that AI and machine learning are implemented responsibly</span> in order to <span style='color:green;'>remain competitive and to help implement these technologies responsibly and</span> minimize unintended or harmful impacts.</div>    </div>", "risks": "Competition", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Airbnb"}, {"html": "<div class=\"report-card\">      <h3>Airbnb <span class=\"symbol\">(ABNB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972025000010/abnb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972024000006/abnb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Any inability to develop, offer or deploy new AI and ML Technologies as effectively, quickly and/or as cost-efficiently as our competitors could have a materially adverse impact on our operating results, customer relationships and growth.</span></div>    </div>", "risks": "Competition", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Airbnb"}, {"html": "<div class=\"report-card\">      <h3>Airbnb <span class=\"symbol\">(ABNB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972025000010/abnb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972024000006/abnb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition to our proprietary technologies, we use AI and ML Technologies licensed from third parties.</span> Our ability to continue to <span style='color:red;text-decoration:line-through;'>develop or</span> <span style='color:green;'>adopt, integrate and</span> use such technologies <span style='color:green;'>at the scale we may need</span> may be dependent on access to <span style='color:red;text-decoration:line-through;'>technology offered by vendors and</span> specific third-party software and infrastructure, such as processing hardware or third-party AI models, and we cannot control the <span style='color:red;text-decoration:line-through;'>quality of vendor offerings or the</span> <span style='color:green;'>quality,</span> availability or pricing of such third-party software and infrastructure, especially in a highly competitive environment.</div>    </div>", "risks": "Third Party", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Airbnb"}, {"html": "<div class=\"report-card\">      <h3>Airbnb <span class=\"symbol\">(ABNB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972025000010/abnb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972024000006/abnb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If any such third-party AI and ML Technologies become incompatible with our offerings or unavailable for use or have degradations in performance, or if the providers of such models unfavorably change the terms on which their AI and ML Technologies are offered or terminate their relationship with us, our solutions may become less appealing to our customers. In addition, to the extent any third-party AI and ML Technologies are used as a vendor hosted service, any disruption, outage, or loss of information through such hosted services could disrupt our operations or solutions, damage our reputation, cause a loss of confidence in our solutions, or result in legal claims or proceedings, for which we may be unable to recover damages from the affected provider.</span></div>    </div>", "risks": "Third Party", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Airbnb"}, {"html": "<div class=\"report-card\">      <h3>Airbnb <span class=\"symbol\">(ABNB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972025000010/abnb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972024000006/abnb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>In</span> <span style='color:green;'>Other states have also passed AI-focused legislation, such as Colorado\u2019s Artificial Intelligence Act, which will require developers and deployers of \u201chigh-risk\u201d AI systems to implement certain safeguards against algorithmic discrimination, and Utah\u2019s Artificial Intelligence Policy Act, which establishes disclosure requirements and accountability measures for</span> the <span style='color:red;text-decoration:line-through;'>European Union,</span> <span style='color:green;'>use of generative AI in certain consumer interactions. Other legislation has been introduced or proposed at the federal and state level, and</span> there <span style='color:red;text-decoration:line-through;'>is now political agreement on</span> <span style='color:green;'>remains uncertainty at the federal level regarding the regulation of AI and ML Technologies. Further,</span> the EU Artificial Intelligence Act <span style='color:red;text-decoration:line-through;'>(\u201cEU</span> <span style='color:green;'>(the \u201cEU</span> AI <span style='color:red;text-decoration:line-through;'>Act\u201d), which</span> <span style='color:green;'>Act\u201d) entered into force in August 2024, and</span> establishes a comprehensive, risk-based governance framework for AI in the EU market.</div>    </div>", "risks": "EU AI Act", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Airbnb"}, {"html": "<div class=\"report-card\">      <h3>Airbnb <span class=\"symbol\">(ABNB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972025000010/abnb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972024000006/abnb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The EU AI Act <span style='color:red;text-decoration:line-through;'>will apply</span> <span style='color:green;'>applies</span> to companies that develop, use and/or provide AI in the <span style='color:red;text-decoration:line-through;'>European Union</span> <span style='color:green;'>EU</span> and <span style='color:green;'>\u2013 depending on the AI use case \u2013</span> includes requirements around transparency, conformity assessments and monitoring, risk assessments, human oversight, security, accuracy, general purpose AI and foundation models, and <span style='color:red;text-decoration:line-through;'>proposes</span> fines for breach of up to 7% of worldwide annual <span style='color:red;text-decoration:line-through;'>turnover (revenue).</span> <span style='color:green;'>turnover.</span></div>    </div>", "risks": "EU AI Act", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Airbnb"}, {"html": "<div class=\"report-card\">      <h3>Airbnb <span class=\"symbol\">(ABNB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972025000010/abnb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972024000006/abnb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>Additionally, in September 2022, the European Commission proposed two Directives seeking to establish a harmonized civil liability regime for AI in the European Union, in order to facilitate civil claims in respect of harm caused by AI and to include AI-enabled products within the scope of the European Union\u2019s existing strict liability regime.</span></div>    </div>", "risks": "EU AI Act", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Airbnb"}, {"html": "<div class=\"report-card\">      <h3>Airbnb <span class=\"symbol\">(ABNB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972025000010/abnb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972024000006/abnb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We encrypt certain data in transit and at rest, but advances in hacking and AI and machine learning may challenge our defenses.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Airbnb"}, {"html": "<div class=\"report-card\">      <h3>Airbnb <span class=\"symbol\">(ABNB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972025000010/abnb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972024000006/abnb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Cyberattacks are expected to accelerate on a global basis in both frequency and magnitude as threat actors are becoming increasingly sophisticated in using <span style='color:red;text-decoration:line-through;'>techniques that</span> <span style='color:green;'>techniques\u2014including AI\u2014that</span> circumvent controls, evade detection, and remove forensic evidence, which means that <span style='color:green;'>we and</span> our third-party providers may be unable to detect, investigate, contain or recover from future attacks or incidents in a timely or effective manner.</div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Airbnb"}, {"html": "<div class=\"report-card\">      <h3>Airbnb <span class=\"symbol\">(ABNB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972025000010/abnb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972024000006/abnb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>There is also increased governmental interest in regulating technology companies in areas including platform content, data privacy, data security, intellectual property protection, ethical marketing, tax, data localization and data access, AI or algorithm-based bias or discrimination, competition, and real estate broker related activities.</span></div>    </div>", "risks": "Bias", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Airbnb"}, {"html": "<div class=\"report-card\">      <h3>Airbnb <span class=\"symbol\">(ABNB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972025000010/abnb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972024000006/abnb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">In particular, AI <span style='color:red;text-decoration:line-through;'>or automated decision making technologies</span> <span style='color:green;'>and ML Technologies</span> may be incorrectly designed or implemented; may be trained or reliant on incomplete, inadequate, inaccurate, biased, or otherwise poor quality data or on data to which <span style='color:red;text-decoration:line-through;'>the developer does</span> <span style='color:green;'>we or third parties do</span> not have sufficient rights; and/or may be adversely impacted by unforeseen defects, technical challenges, <span style='color:red;text-decoration:line-through;'>cyber security</span> <span style='color:green;'>cybersecurity</span> threats, <span style='color:green;'>third-party litigation or regulatory action,</span> or material performance issues.</div>    </div>", "risks": "Bias", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Airbnb"}, {"html": "<div class=\"report-card\">      <h3>Airbnb <span class=\"symbol\">(ABNB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972025000010/abnb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1559720/000155972024000006/abnb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>Uncertainty around new and emerging AI applications may require</span> <span style='color:green;'>ML Technologies requires</span> additional investment in the development of proprietary datasets, machine learning models, and systems to <span style='color:green;'>monitor and</span> test for accuracy, bias, and other variables, which are <span style='color:red;text-decoration:line-through;'>often</span> complex, <span style='color:red;text-decoration:line-through;'>may be</span> costly, and could impact our profit margin as we expand the use of AI <span style='color:red;text-decoration:line-through;'>technologies</span> <span style='color:green;'>and ML Technologies</span> in our offerings.</div>    </div>", "risks": "Bias", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Airbnb"}, {"html": "<div class=\"report-card\">      <h3>Akamai Technologies <span class=\"symbol\">(AKAM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Internet Services & Infrastructure</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span><span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1086222/000108622225000028/akam-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1086222/000108622224000040/akam-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Given the nature of AI technology, we face significant competition from other companies and an evolving regulatory landscape. Our AI efforts may not be successful and our competitors may incorporate AI into their products more successfully than us, which could impair our ability to compete effectively and adversely affect our financial results.</span></div>    </div>", "risks": "Competition; Disillusionment", "sector": "Information Technology", "sub": "Internet Services & Infrastructure", "company": "Akamai Technologies"}, {"html": "<div class=\"report-card\">      <h3>Akamai Technologies <span class=\"symbol\">(AKAM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Internet Services & Infrastructure</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1086222/000108622225000028/akam-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1086222/000108622224000040/akam-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Additionally, the use of artificial intelligence by bad actors has heightened the sophistication and effectiveness of these types of <span style='color:red;text-decoration:line-through;'>attacks.</span> <span style='color:green;'>attacks, and may be used to create attacks that current processes and technologies are unable to adequately address.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Internet Services & Infrastructure", "company": "Akamai Technologies"}, {"html": "<div class=\"report-card\">      <h3>Alexandria Real Estate Equities <span class=\"symbol\">(ARE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Office REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Energy'>Energy</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1035443/000103544325000067/are-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1035443/000103544324000072/are-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The increased use of artificial intelligence (AI) and automation in life science research and development (R&D) activities may change the uses, space configurations, and tenant requirements for our laboratory properties in currently unforeseen ways. In recent years, some life science companies have augmented their traditional laboratory-based R&amp;D efforts by integrating AI, cloud computing, quantum computing, and other advanced computational technologies into their R&D programs. It is expected that such technologies will accelerate and streamline a number of R&amp;D functions, including, for example, through the targeted design and evaluation of clinical trials and the efficient identification of the most promising drug development candidates from among multiple possible drugs. In addition, life science companies, like companies in many other industries, are increasingly integrating new technologies, such as robotics and advanced automation of recurring tasks, into their businesses, including their R&amp;D activities. It is widely thought that the life science and healthcare industries, like most industries, are in only the early stages of an advanced technology revolution that may have profound, and largely currently unknown, impacts on their businesses, including the processes and strategies underlying R&amp;D and commercialization of new products. We have always strived to provide our tenants with state-of-the-art laboratory facilities incorporating cutting-edge infrastructure features (including energy delivery, environmental, sustainability, security, and waste disposal features) to enable our tenants to perform at the highest levels. It is currently unknown how the ongoing adoption of advanced technologies and automation in the life science industry will impact the optimal space configurations and infrastructure features of the \u201claboratory of the future,\u201d and we may face new tenant requirements and requests that will require significant expenditures that may not be entirely recoverable through increased rents. For example, the adoption of AI by our tenants may lead to infrastructure requirements that our buildings currently do not accommodate, such as increased power needs due to high-performance computing. Infrastructure upgrades may necessitate substantial capital expenditures and could potentially impact the environmental footprint of our building operations. If technological developments result in a reduction or reconfiguration in space requirements by our tenants, demand by individual tenants and prospective tenants for space may decrease over time. If we are not able to offset any reduction in demand from the foregoing developments through repurposing space, property dispositions, or other means, the realization of any of the aforementioned risks could have a material adverse impact on our revenues, net operating income, results of operations, funds from operations, operating margins, occupancy, earnings per share, FFO per share, our overall business, and the market value of our common stock.</span></div>    </div>", "risks": "Energy", "sector": "Real Estate", "sub": "Office REITs", "company": "Alexandria Real Estate Equities"}, {"html": "<div class=\"report-card\">      <h3>Alexandria Real Estate Equities <span class=\"symbol\">(ARE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Office REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1035443/000103544325000067/are-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1035443/000103544324000072/are-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">During times of war and other major conflicts, we and the third parties <span style='color:red;text-decoration:line-through;'>upon which</span> <span style='color:green;'>with whom</span> we <span style='color:red;text-decoration:line-through;'>rely</span> <span style='color:green;'>work</span> may be vulnerable to a heightened risk of these attacks, including retaliatory cyberattacks, that could materially disrupt our systems and operations, supply chain, and ability to produce, sell, and distribute our <span style='color:red;text-decoration:line-through;'>services.</span> We and the third parties <span style='color:red;text-decoration:line-through;'>upon which</span> <span style='color:green;'>with whom</span> we <span style='color:red;text-decoration:line-through;'>rely</span> <span style='color:green;'>work</span> are subject to a variety of evolving threats, including, but not limited to, physical break-ins; disruptions due to power outages or catastrophic events, such as fires, floods, hurricanes, and earthquakes; breaches of our secure network by an unauthorized party (including those caused by supply chain breaches); software vulnerabilities or bugs; malware (including as a result of advanced persistent threat intrusions); malicious code (such as computer viruses and worms); attachments to emails; denial-of-service attacks; credential stuffing; credential harvesting; employee error, theft, or misuse; social engineering attacks (including through deep fakes, which may be increasingly more difficult to identify as fake, and phishing attacks); <span style='color:red;text-decoration:line-through;'>ransomware;</span> <span style='color:green;'>ransomware attacks;</span> server malfunctions; software or hardware failures; loss of data or other information technology assets; adware; telecommunications failures; <span style='color:green;'>attacks enhanced or facilitated by AI;</span> or other similar threats.</div>    </div>", "risks": "Deepfakes; Malicious Actors", "sector": "Real Estate", "sub": "Office REITs", "company": "Alexandria Real Estate Equities"}, {"html": "<div class=\"report-card\">      <h3>Align Technology <span class=\"symbol\">(ALGN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Supplies</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1097149/000109714925000012/algn-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1097149/000109714924000011/algn-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We may be unable to compete with these competitors or they may render our technology or products obsolete or economically <span style='color:red;text-decoration:line-through;'>unattractive.</span> <span style='color:green;'>unattractive, particularly as competitors incorporate AI and machine learning into new or existing services and technologies that facilitate changes in doctor-patient interactions, expectations and treatment workflows.</span></div>    </div>", "risks": "Competition", "sector": "Health Care", "sub": "Health Care Supplies", "company": "Align Technology"}, {"html": "<div class=\"report-card\">      <h3>Align Technology <span class=\"symbol\">(ALGN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Supplies</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1097149/000109714925000012/algn-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1097149/000109714924000011/algn-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In Europe, the EU AI Act entered into force on August 1, 2024 which will become fully effective on August 2, 2026, with some provisions effective in February 2025.</span></div>    </div>", "risks": "EU AI Act", "sector": "Health Care", "sub": "Health Care Supplies", "company": "Align Technology"}, {"html": "<div class=\"report-card\">      <h3>Align Technology <span class=\"symbol\">(ALGN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Supplies</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1097149/000109714925000012/algn-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1097149/000109714924000011/algn-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>This risk is exacerbated with the advancement of technologies like AI, which malicious third parties can use to create new, more sophisticated and more frequent or other attacks.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Health Care", "sub": "Health Care Supplies", "company": "Align Technology"}, {"html": "<div class=\"report-card\">      <h3>Align Technology <span class=\"symbol\">(ALGN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Supplies</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1097149/000109714925000012/algn-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1097149/000109714924000011/algn-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our datasets or AI training algorithms may be insufficient or contain biased information.</div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Health Care Supplies", "company": "Align Technology"}, {"html": "<div class=\"report-card\">      <h3>Align Technology <span class=\"symbol\">(ALGN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Supplies</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1097149/000109714925000012/algn-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1097149/000109714924000011/algn-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We have and are continuing to incorporate AI, including machine learning and independent algorithms, in certain of our products, services and <span style='color:red;text-decoration:line-through;'>internal operations,</span> <span style='color:green;'>IT systems,</span> which is intended to enhance their operation and effectiveness internally and for our customers, <span style='color:red;text-decoration:line-through;'>suppliers</span> <span style='color:green;'>consumers</span> and <span style='color:red;text-decoration:line-through;'>consumers.</span> <span style='color:green;'>suppliers. There can be no assurance that we or our customers will realize the expected benefits from these investments.</span></div>    </div>", "risks": "Disillusionment", "sector": "Health Care", "sub": "Health Care Supplies", "company": "Align Technology"}, {"html": "<div class=\"report-card\">      <h3>Allstate <span class=\"symbol\">(ALL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Property & Casualty Insurance</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/899051/000089905125000015/all-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/899051/000089905124000013/all-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The maturity and effectiveness of currently available generative artificial intelligence technology is uncertain. The use of artificial intelligence may present ethical and reputational risks. Regulatory restrictions on the use of artificial intelligence may impose additional compliance or reporting obligations and may materially adversely affect our operations or ability to write business profitably in one or more jurisdictions.</span></div>    </div>", "risks": "", "sector": "Financials", "sub": "Property & Casualty Insurance", "company": "Allstate"}, {"html": "<div class=\"report-card\">      <h3>Allstate <span class=\"symbol\">(ALL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Property & Casualty Insurance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/899051/000089905125000015/all-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/899051/000089905124000013/all-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Use</span> of third-party services (e.g., cloud <span style='color:red;text-decoration:line-through;'>technology and</span> <span style='color:green;'>technology,</span> software as a <span style='color:red;text-decoration:line-through;'>service)</span> <span style='color:green;'>service and artificial intelligence)</span> can make it more difficult to identify and respond to <span style='color:red;text-decoration:line-through;'>cyberattacks in any of the above situations.</span> <span style='color:green;'>cyberattacks.</span></div>    </div>", "risks": "Third Party", "sector": "Financials", "sub": "Property & Casualty Insurance", "company": "Allstate"}, {"html": "<div class=\"report-card\">      <h3>Alphabet Inc. <span class=\"symbol\">(GOOGL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Interactive Media & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1652044/000165204425000014/goog-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1652044/000165204424000022/goog-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Additionally, other companies may develop AI products and technologies that are similar or superior to our technologies or more <span style='color:red;text-decoration:line-through;'>cost- effective</span> <span style='color:green;'>cost-effective</span> to <span style='color:green;'>develop and/or</span> deploy.</div>    </div>", "risks": "Competition", "sector": "Communication Services", "sub": "Interactive Media & Services", "company": "Alphabet Inc."}, {"html": "<div class=\"report-card\">      <h3>Alphabet Inc. <span class=\"symbol\">(GOOG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Interactive Media & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1652044/000165204425000014/goog-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1652044/000165204424000022/goog-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Additionally, other companies may develop AI products and technologies that are similar or superior to our technologies or more <span style='color:red;text-decoration:line-through;'>cost- effective</span> <span style='color:green;'>cost-effective</span> to <span style='color:green;'>develop and/or</span> deploy.</div>    </div>", "risks": "Competition", "sector": "Communication Services", "sub": "Interactive Media & Services", "company": "Alphabet Inc."}, {"html": "<div class=\"report-card\">      <h3>Alphabet Inc. <span class=\"symbol\">(GOOG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Interactive Media & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1652044/000165204425000014/goog-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1652044/000165204424000022/goog-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, industry supply capacity for AI accelerators, including Graphics Processing Units, or GPUs, as well as our custom-built TPUs, is highly competitive and rapidly evolving. If we are unable to negotiate favorable contractual terms or our competitors claim the supply or capacity first, we may face supply constraints.</span></div>    </div>", "risks": "Competition", "sector": "Communication Services", "sub": "Interactive Media & Services", "company": "Alphabet Inc."}, {"html": "<div class=\"report-card\">      <h3>Alphabet Inc. <span class=\"symbol\">(GOOGL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Interactive Media & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1652044/000165204425000014/goog-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1652044/000165204424000022/goog-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, industry supply capacity for AI accelerators, including Graphics Processing Units, or GPUs, as well as our custom-built TPUs, is highly competitive and rapidly evolving. If we are unable to negotiate favorable contractual terms or our competitors claim the supply or capacity first, we may face supply constraints.</span></div>    </div>", "risks": "Competition", "sector": "Communication Services", "sub": "Interactive Media & Services", "company": "Alphabet Inc."}, {"html": "<div class=\"report-card\">      <h3>Alphabet Inc. <span class=\"symbol\">(GOOG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Interactive Media & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1652044/000165204425000014/goog-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1652044/000165204424000022/goog-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For example, <span style='color:red;text-decoration:line-through;'>while legislative text has yet to be finalized and formally approved, provisional political agreement on a proposed</span> <span style='color:green;'>the</span> EU AI Act <span style='color:red;text-decoration:line-through;'>was reached between co-legislators</span> <span style='color:green;'>came into force on August 1, 2024, and will generally become fully applicable after a two-year transitional period (although certain obligations will take effect at an earlier or later time). The EU AI Act introduces various requirements for AI systems and models placed on the market or put into service</span> in <span style='color:red;text-decoration:line-through;'>December 2023,</span> <span style='color:green;'>the EU,</span> including <span style='color:red;text-decoration:line-through;'>that</span> specific transparency and other requirements <span style='color:red;text-decoration:line-through;'>would be introduced</span> for general purpose AI systems and the models on which those systems are based.</div>    </div>", "risks": "EU AI Act", "sector": "Communication Services", "sub": "Interactive Media & Services", "company": "Alphabet Inc."}, {"html": "<div class=\"report-card\">      <h3>Alphabet Inc. <span class=\"symbol\">(GOOGL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Interactive Media & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1652044/000165204425000014/goog-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1652044/000165204424000022/goog-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For example, <span style='color:red;text-decoration:line-through;'>while legislative text has yet to be finalized and formally approved, provisional political agreement on a proposed</span> <span style='color:green;'>the</span> EU AI Act <span style='color:red;text-decoration:line-through;'>was reached between co-legislators</span> <span style='color:green;'>came into force on August 1, 2024, and will generally become fully applicable after a two-year transitional period (although certain obligations will take effect at an earlier or later time). The EU AI Act introduces various requirements for AI systems and models placed on the market or put into service</span> in <span style='color:red;text-decoration:line-through;'>December 2023,</span> <span style='color:green;'>the EU,</span> including <span style='color:red;text-decoration:line-through;'>that</span> specific transparency and other requirements <span style='color:red;text-decoration:line-through;'>would be introduced</span> for general purpose AI systems and the models on which those systems are based.</div>    </div>", "risks": "EU AI Act", "sector": "Communication Services", "sub": "Interactive Media & Services", "company": "Alphabet Inc."}, {"html": "<div class=\"report-card\">      <h3>Alphabet Inc. <span class=\"symbol\">(GOOGL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Interactive Media & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Energy'>Energy</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1652044/000165204425000014/goog-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1652044/000165204424000022/goog-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our ability to deploy certain AI technologies critical for our products and services and for our business strategy may depend on the availability and pricing of <span style='color:red;text-decoration:line-through;'>third-party</span><span style='color:green;'> third- party </span>equipment and<span style='color:green;'> other </span>technical <span style='color:red;text-decoration:line-through;'>infrastructure.</span><span style='color:green;'> infrastructure operations costs, including network capacity, energy, and equipment costs.</span></div>    </div>", "risks": "Energy", "sector": "Communication Services", "sub": "Interactive Media & Services", "company": "Alphabet Inc."}, {"html": "<div class=\"report-card\">      <h3>Alphabet Inc. <span class=\"symbol\">(GOOG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Interactive Media & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Energy'>Energy</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1652044/000165204425000014/goog-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1652044/000165204424000022/goog-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our ability to deploy certain AI technologies critical for our products and services and for our business strategy may depend on the availability and pricing of <span style='color:red;text-decoration:line-through;'>third-party</span><span style='color:green;'> third- party </span>equipment and<span style='color:green;'> other </span>technical <span style='color:red;text-decoration:line-through;'>infrastructure.</span><span style='color:green;'> infrastructure operations costs, including network capacity, energy, and equipment costs.</span></div>    </div>", "risks": "Energy", "sector": "Communication Services", "sub": "Interactive Media & Services", "company": "Alphabet Inc."}, {"html": "<div class=\"report-card\">      <h3>Alphabet Inc. <span class=\"symbol\">(GOOGL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Interactive Media & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1652044/000165204425000014/goog-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1652044/000165204424000022/goog-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, the development and implementation of AI technologies may further increase our exposure to or exacerbate the risks of cyber attacks or other security incidents, particularly where such technologies are exploited by third parties to breach our or other parties\u2019 systems, including when such technologies are used to target our employees or impersonate members of senior management in order to gain unauthorized access to our systems.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Communication Services", "sub": "Interactive Media & Services", "company": "Alphabet Inc."}, {"html": "<div class=\"report-card\">      <h3>Alphabet Inc. <span class=\"symbol\">(GOOG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Interactive Media & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1652044/000165204425000014/goog-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1652044/000165204424000022/goog-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Several states are considering enacting or have already enacted regulations concerning the use of AI technologies, including those focused on consumer protection, and depending on the scope of AI regulation at the federal level, some states may move to regulate AI model development and deployment. Further, at the federal and state level, there have been various proposals (and in some cases laws enacted) addressing \u201cdeepfakes\u201d and other AI-generated synthetic media.</span></div>    </div>", "risks": "Deepfakes", "sector": "Communication Services", "sub": "Interactive Media & Services", "company": "Alphabet Inc."}, {"html": "<div class=\"report-card\">      <h3>Alphabet Inc. <span class=\"symbol\">(GOOGL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Interactive Media & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1652044/000165204425000014/goog-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1652044/000165204424000022/goog-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Several states are considering enacting or have already enacted regulations concerning the use of AI technologies, including those focused on consumer protection, and depending on the scope of AI regulation at the federal level, some states may move to regulate AI model development and deployment. Further, at the federal and state level, there have been various proposals (and in some cases laws enacted) addressing \u201cdeepfakes\u201d and other AI-generated synthetic media.</span></div>    </div>", "risks": "Deepfakes", "sector": "Communication Services", "sub": "Interactive Media & Services", "company": "Alphabet Inc."}, {"html": "<div class=\"report-card\">      <h3>Alphabet Inc. <span class=\"symbol\">(GOOGL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Interactive Media & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1652044/000165204425000014/goog-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1652044/000165204424000022/goog-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, the increasing adoption of AI technologies, which rely on the collection of large amounts of data and use of such data for training purposes, has led data protection authorities around the world to consider and adopt new and evolving interpretations of data protection laws, imposing specific obligations with respect to the processing of personal data, including required notices, consents, and opt-outs. Further, the increased risk of inadvertent disclosure of confidential information or personal data in connection with the utilization of AI technologies may result in stronger regulatory scrutiny, leading to legal and regulatory investigations and enforcement actions that may negatively affect our business, even if unfounded.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Communication Services", "sub": "Interactive Media & Services", "company": "Alphabet Inc."}, {"html": "<div class=\"report-card\">      <h3>Altria <span class=\"symbol\">(MO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Tobacco</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/764180/000076418025000019/mo-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/764180/000076418024000018/mo-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The providers of these artificial intelligence tools may not meet existing or rapidly evolving regulatory or industry standards concerning privacy and data protection, which may result in a loss of intellectual property or confidential information or cause harm to our reputation and the public perception of the effectiveness of our security measures.</span></div>    </div>", "risks": "Third Party", "sector": "Consumer Staples", "sub": "Tobacco", "company": "Altria"}, {"html": "<div class=\"report-card\">      <h3>Altria <span class=\"symbol\">(MO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Tobacco</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/764180/000076418025000019/mo-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/764180/000076418024000018/mo-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Bad actors around the world use increasingly sophisticated methods, including the use of artificial intelligence, to engage in illegal activities involving the theft and misuse of personal information, confidential information and intellectual property. Any of these outcomes could damage our reputation, result in the loss of valuable property and information and adversely impact our business.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Staples", "sub": "Tobacco", "company": "Altria"}, {"html": "<div class=\"report-card\">      <h3>Altria <span class=\"symbol\">(MO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Tobacco</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/764180/000076418025000019/mo-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/764180/000076418024000018/mo-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Bad actors around the world use increasingly sophisticated methods, including the use of artificial intelligence, to engage in illegal activities involving the theft and misuse of personal information, confidential information and intellectual property. Any of these outcomes could damage our reputation, result in the loss of valuable property and information and adversely impact our business. Outsourcing certain business functions pursuant to the Initiative may increase our exposure to risks such as data breaches, which could compromise sensitive information. Implementation of new technology and systems deployment may increase our risk of data security incidents, internal control failures and regulatory noncompliance. Our vendors and third-party partners may incorporate artificial intelligence tools into their offerings with or without disclosing this use to us. The providers of these artificial intelligence tools may not meet existing or rapidly evolving regulatory or industry standards concerning privacy and data protection, which may result in a loss of intellectual property or confidential information or cause harm to our reputation and the public perception of the effectiveness of our security measures.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Consumer Staples", "sub": "Tobacco", "company": "Altria"}, {"html": "<div class=\"report-card\">      <h3>Amazon <span class=\"symbol\">(AMZN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Broadline Retail</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1018724/000101872425000004/amzn-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1018724/000101872424000008/amzn-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our sales and operating results will also fluctuate for many other reasons, including due to factors described elsewhere in this section and the following: \u2022our ability to retain and increase sales to existing customers, attract new customers, and satisfy our customers\u2019 demands; \u2022our ability to retain and expand our network of sellers; \u2022our ability to offer products on favorable terms, manage inventory, and fulfill orders; \u2022the introduction of competitive stores, websites, products, services, price decreases, or improvements; \u2022changes in usage or adoption rates of the internet, e-commerce, electronic devices, <span style='color:red;text-decoration:line-through;'>and</span> web <span style='color:green;'>services, satellite communications services, and artificial intelligence and machine learning technologies, products, and</span> services, including outside the U.S.;</div>    </div>", "risks": "", "sector": "Consumer Discretionary", "sub": "Broadline Retail", "company": "Amazon"}, {"html": "<div class=\"report-card\">      <h3>Amazon <span class=\"symbol\">(AMZN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Broadline Retail</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1018724/000101872425000004/amzn-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1018724/000101872424000008/amzn-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">In addition, our and our customers\u2019 <span style='color:green;'>development and</span> use of artificial intelligence may result in increased claims of infringement or other claims, including those based on unauthorized use of third-party technology or content.</div>    </div>", "risks": "", "sector": "Consumer Discretionary", "sub": "Broadline Retail", "company": "Amazon"}, {"html": "<div class=\"report-card\">      <h3>Amcor <span class=\"symbol\">(AMCR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Paper & Plastic Packaging Products & Materials</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1748790/000174879024000022/amcr-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1748790/000174879023000030/amcr-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Emerging artificial intelligence technologies may intensify these cybersecurity risks.</span></div>    </div>", "risks": "", "sector": "Materials", "sub": "Paper & Plastic Packaging Products & Materials", "company": "Amcor"}, {"html": "<div class=\"report-card\">      <h3>Ameren <span class=\"symbol\">(AEE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Multi-Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Energy'>Energy</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1002910/000100291025000055/aee-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1002910/000100291024000056/aee-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, volatility in stock prices of perceived significant energy consumers, such as technology companies involved with artificial intelligence or cryptocurrency, or other significant developments with such companies, could cause increased volatility in stock prices of energy utility companies such as Ameren.</span></div>    </div>", "risks": "Energy", "sector": "Utilities", "sub": "Multi-Utilities", "company": "Ameren"}, {"html": "<div class=\"report-card\">      <h3>American Electric Power <span class=\"symbol\">(AEP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Electric Utilities</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/4904/000000490425000027/aep-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/4904/000000490424000020/aep-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Performance is highly dependent on the successful operation of generation, transmission and/or distribution facilities. Operating these facilities involves many risks, including: \u2022Operator error and breakdown or failure of equipment or processes. \u2022Operating limitations that may be imposed by environmental or other regulatory requirements. \u2022Labor disputes. \u2022Compliance with mandatory reliability standards, including mandatory cybersecurity standards. <span style='color:green;'>\u2022Information technology failure, including failure of artificial intelligence technology, that impairs AEP\u2019s information technology infrastructure or disrupts normal business operations.</span></div>    </div>", "risks": "", "sector": "Utilities", "sub": "Electric Utilities", "company": "American Electric Power"}, {"html": "<div class=\"report-card\">      <h3>American Express <span class=\"symbol\">(AXP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Consumer Finance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/4962/000000496225000016/axp-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/4962/000000496224000013/axp-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Cyber threat <span style='color:red;text-decoration:line-through;'>actors</span> <span style='color:green;'>actors, including state-sponsored and nation state actors,</span> have <span style='color:green;'>rapidly evolved their techniques and</span> increasingly <span style='color:red;text-decoration:line-through;'>demonstrated</span> <span style='color:green;'>utilize</span> advanced capabilities, including the <span style='color:red;text-decoration:line-through;'>rapid</span> integration of <span style='color:red;text-decoration:line-through;'>new technology such as</span> advanced forms of artificial intelligence and <span style='color:red;text-decoration:line-through;'>quantum computing.</span> <span style='color:green;'>other new technology, which can increase the efficacy, severity, frequency and ease of execution of cyberattacks.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Consumer Finance", "company": "American Express"}, {"html": "<div class=\"report-card\">      <h3>American Express <span class=\"symbol\">(AXP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Consumer Finance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/4962/000000496225000016/axp-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/4962/000000496224000013/axp-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Despite our efforts and the efforts of third parties that process, transmit or store our data and data of our customers and colleagues or support our operations, such as service providers, merchants and regulators, the possibility of information, operational and cybersecurity incidents, malicious social engineering, password mismanagement, corporate espionage, fraudulent or other malicious activities and human error or malfeasance cannot be eliminated entirely and will evolve as new and emerging technology is <span style='color:red;text-decoration:line-through;'>deployed,</span> <span style='color:green;'>deployed by threat actors,</span> including <span style='color:red;text-decoration:line-through;'>quantum computing and</span> the <span style='color:red;text-decoration:line-through;'>increasing</span> use of <span style='color:green;'>artificial intelligence and quantum computing, and we increasingly use</span> platforms that are outside of our network and control environments.</div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Consumer Finance", "company": "American Express"}, {"html": "<div class=\"report-card\">      <h3>American Express <span class=\"symbol\">(AXP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Consumer Finance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/4962/000000496225000016/axp-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/4962/000000496224000013/axp-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">These risks to our brand and reputation, as well as other risks described in this Risk Factors section, are heightened by the increasing sophistication and availability of artificial intelligence technology, including by assisting with the creation of deepfakes and increasing the velocity of distribution of disinformation.</div>    </div>", "risks": "Deepfakes", "sector": "Financials", "sub": "Consumer Finance", "company": "American Express"}, {"html": "<div class=\"report-card\">      <h3>American Express <span class=\"symbol\">(AXP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Consumer Finance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/4962/000000496225000016/axp-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/4962/000000496224000013/axp-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Global financial institutions like us, as well as our customers, colleagues, regulators, service providers and other third parties, have experienced a significant increase in information security and cybersecurity risk in recent years and will likely continue to be the target of increasingly sophisticated cyberattacks, including computer viruses, malicious or destructive code, ransomware, social engineering attacks (including phishing, impersonation and identity takeover attempts), artificial intelligence-assisted deepfake attacks and disinformation campaigns, corporate espionage, hacking, website defacement, denial-of-service attacks, exploitation of vulnerabilities and other attacks and similar disruptions from the misconfiguration or unauthorized use of or access to computer systems and company accounts.</div>    </div>", "risks": "Deepfakes", "sector": "Financials", "sub": "Consumer Finance", "company": "American Express"}, {"html": "<div class=\"report-card\">      <h3>American Express <span class=\"symbol\">(AXP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Consumer Finance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span><span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/4962/000000496225000016/axp-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/4962/000000496224000013/axp-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our <span style='color:green;'>and our partners\u2019</span> use of artificial intelligence and machine learning is subject to various risks including <span style='color:red;text-decoration:line-through;'>the use of personal information,</span> flaws in <span style='color:red;text-decoration:line-through;'>our</span> models or datasets that may result in biased or inaccurate results, <span style='color:green;'>unintended or unexpected outcomes,</span> ethical considerations regarding artificial intelligence, <span style='color:green;'>infringement of intellectual property rights, exposure of proprietary or personal information, heightened security risks</span> and <span style='color:red;text-decoration:line-through;'>our</span> <span style='color:green;'>the</span> ability to safely deploy and implement governance and controls for artificial intelligence systems.</div>    </div>", "risks": "Bias; Data and IP Protection", "sector": "Financials", "sub": "Consumer Finance", "company": "American Express"}, {"html": "<div class=\"report-card\">      <h3>American Express <span class=\"symbol\">(AXP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Consumer Finance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/4962/000000496225000016/axp-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/4962/000000496224000013/axp-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, we increasingly use models that leverage artificial intelligence, which are subject to additional risks such as biased or inaccurate results or lowered interpretability.</span></div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Consumer Finance", "company": "American Express"}, {"html": "<div class=\"report-card\">      <h3>American International Group <span class=\"symbol\">(AIG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Multi-line Insurance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/5272/000000527225000012/aig-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/5272/000000527224000023/aig-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The new cyber risks introduced by these changes in <span style='color:red;text-decoration:line-through;'>technology</span> <span style='color:green;'>technology, such as deepfake schemes,</span> require us to devote significant attention to identification, assessment and analysis of the risks and implementation of corresponding preventative measures.</div>    </div>", "risks": "Deepfakes; Malicious Actors", "sector": "Financials", "sub": "Multi-line Insurance", "company": "American International Group"}, {"html": "<div class=\"report-card\">      <h3>American International Group <span class=\"symbol\">(AIG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Multi-line Insurance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/5272/000000527225000012/aig-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/5272/000000527224000023/aig-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Cyber threats are constantly evolving and the techniques used in these attacks change, develop and evolve rapidly, including the use of emerging technologies, such as <span style='color:red;text-decoration:line-through;'>broader</span> <span style='color:green;'>advancing</span> forms of artificial intelligence and quantum computing by nation state threat actors and criminal organizations.</div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Multi-line Insurance", "company": "American International Group"}, {"html": "<div class=\"report-card\">      <h3>American Tower <span class=\"symbol\">(AMT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Telecom Tower REITs</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1053507/000105350725000025/amt-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1053507/000105350724000011/amt-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Factors that may affect such demand include: \u2022the ability and willingness of wireless and cloud service providers to maintain or increase capital expenditures on network infrastructure; \u2022the financial condition of communications service providers; \u2022increased mergers, consolidations or exits that reduce the number of communications service providers or increased use of network sharing among governments or communications service providers; \u2022a decrease in demand for wireless or colocation services, including due to general economic conditions, <span style='color:green;'>changes in global tariff or trade policies or regulations,</span> disruption in the financial and credit markets or global social, political or health crises, inflation, slowing growth, <span style='color:red;text-decoration:line-through;'>rising</span> <span style='color:green;'>high</span> interest rates or recession; \u2022delays or changes in the deployment of next generation wireless technologies; \u2022technological <span style='color:red;text-decoration:line-through;'>changes;</span> <span style='color:green;'>changes, including artificial intelligence, satellite technology and an increase in the use of radio access network (\u201cRAN\u201d) sharing among wireless service providers;</span> \u2022zoning, environmental, health, tax or other government regulations or changes in the application and enforcement thereof; and \u2022governmental licensing of spectrum or restriction or revocation of our customers\u2019 spectrum licenses.</div>    </div>", "risks": "", "sector": "Real Estate", "sub": "Telecom Tower REITs", "company": "American Tower"}, {"html": "<div class=\"report-card\">      <h3>American Tower <span class=\"symbol\">(AMT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Telecom Tower REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span><span class='risk-tag' title='Risk: Energy'>Energy</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1053507/000105350725000025/amt-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1053507/000105350724000011/amt-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Similarly, our data center site infrastructure may become antiquated due to the development of new systems that deliver power to, or eliminate heat from, the servers and other customer equipment that we house or <span style='color:green;'>due to</span> the development of new <span style='color:red;text-decoration:line-through;'>technology</span> <span style='color:green;'>technology, such as artificial intelligence, which is potentially more power-intensive,</span> that requires levels of power and cooling density that our facilities <span style='color:red;text-decoration:line-through;'>are</span> <span style='color:green;'>may</span> not <span style='color:green;'>be</span> designed to provide. Our failure to innovate in response to the development and implementation of these or other new technologies or changes in a customer\u2019s business model could have a material adverse effect on the growth of our business, results of operations or financial condition.</div>    </div>", "risks": "Competition; Energy", "sector": "Real Estate", "sub": "Telecom Tower REITs", "company": "American Tower"}, {"html": "<div class=\"report-card\">      <h3>Ameriprise Financial <span class=\"symbol\">(AMP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/820027/000082002725000013/amp-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/820027/000082002724000015/amp-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Artificial intelligence (including generative artificial intelligence) presents many benefits in terms of operating efficiency, but also <span style='color:red;text-decoration:line-through;'>new</span> <span style='color:green;'>certain</span> risks that we need to seek to mitigate through our strategic and risk management policies, such as reliance on information that may be inaccurate or <span style='color:red;text-decoration:line-through;'>biased</span> <span style='color:green;'>unfairly discriminatory</span> results.</div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "Ameriprise Financial"}, {"html": "<div class=\"report-card\">      <h3>Amgen <span class=\"symbol\">(AMGN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Biotechnology</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/318154/000031815425000010/amgn-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/318154/000031815424000011/amgn-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, several governments and regulatory authorities have proposed or passed laws and regulations governing the use of AI. For example, in March 2024, the European Parliament adopted the Artificial Intelligence Act that provides for EU-wide rules on data quality, transparency, human oversight and accountability with respect to the use of artificial intelligence. In April 2024, the EU also revised its Cybersecurity Directive NIS2 rules that create new cybersecurity risk management and reporting obligations. Failure to comply with these current and future laws could result in significant penalties and reputational harm and could have a material adverse effect on our business and results of operations.</span></div>    </div>", "risks": "EU AI Act", "sector": "Health Care", "sub": "Biotechnology", "company": "Amgen"}, {"html": "<div class=\"report-card\">      <h3>Amgen <span class=\"symbol\">(AMGN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Biotechnology</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/318154/000031815425000010/amgn-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/318154/000031815424000011/amgn-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If we do not effectively implement guardrails and train our staff on the safe and proper use of AI, or if our staff fail to effectively adhere to our established guardrails and training on the use of AI, we may experience adverse effects on our business, including data breaches, the loss of confidential information (including our intellectual property), unintentional disclosure of personal data, or other misuse of our proprietary information.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Health Care", "sub": "Biotechnology", "company": "Amgen"}, {"html": "<div class=\"report-card\">      <h3>Amphenol <span class=\"symbol\">(APH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Electronic Components</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/820313/000155837025000714/aph-20241231x10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/820313/000155837024000866/aph-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Cybercriminals are increasingly using AI-generated deepfake videos, audio and text to deceive individuals and organizations. These attacks can be used for impersonation in social engineering and fraud.</span></div>    </div>", "risks": "Deepfakes; Malicious Actors", "sector": "Information Technology", "sub": "Electronic Components", "company": "Amphenol"}, {"html": "<div class=\"report-card\">      <h3>Analog Devices <span class=\"symbol\">(ADI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/6281/000000628124000204/adi-20241102.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/6281/000000628123000203/adi-20231028.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The development and deployment of AI involves significant competitive, legal, regulatory and other risks. The implementation of AI is costly, requires a significant amount of data and there can be no assurance that AI will enhance our products or services or be beneficial to our business, including our efficiency or profitability. In addition, we face significant competition from other companies that are incorporating AI into their products and technologies. These other companies may incorporate AI in products or technologies that are similar to, or that customers perceive as superior to, our technologies or are more cost-effective to develop and deploy. AI technology is complex and rapidly evolving, and if we are unable to innovate quickly enough to keep pace with these rapid technological developments, our business could be harmed.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Semiconductors", "company": "Analog Devices"}, {"html": "<div class=\"report-card\">      <h3>Analog Devices <span class=\"symbol\">(ADI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/6281/000000628124000204/adi-20241102.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/6281/000000628123000203/adi-20231028.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Governments around the world have adopted, and may continue to adopt, laws and regulations related to AI, including the European Union\u2019s AI Act, and several U.S. government agencies have increased investigations and enforcement efforts related to the use of AI technology, which could increase our compliance costs and limit our ability to use AI in the development of our products and services.</span></div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Semiconductors", "company": "Analog Devices"}, {"html": "<div class=\"report-card\">      <h3>Analog Devices <span class=\"symbol\">(ADI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/6281/000000628124000204/adi-20241102.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/6281/000000628123000203/adi-20231028.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our use of AI may also increase vulnerability to cybersecurity risks, including through unauthorized use or misuse of AI tools and bad inputs or logic or the introduction of malicious code incorporated into AI generated code. AI and machine learning also may be used for certain cybersecurity attacks, improving or expanding the existing capabilities of threat actors in manners we cannot predict at this time, resulting in greater risks of security incidents and breaches.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Semiconductors", "company": "Analog Devices"}, {"html": "<div class=\"report-card\">      <h3>Analog Devices <span class=\"symbol\">(ADI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/6281/000000628124000204/adi-20241102.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/6281/000000628123000203/adi-20231028.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, the use of AI in the development of our products and services, or by our customers in end products that incorporate our products, could cause loss of intellectual property, or subject us to risks related to intellectual property infringement or misappropriation, data privacy or cybersecurity.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Information Technology", "sub": "Semiconductors", "company": "Analog Devices"}, {"html": "<div class=\"report-card\">      <h3>Analog Devices <span class=\"symbol\">(ADI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/6281/000000628124000204/adi-20241102.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/6281/000000628123000203/adi-20231028.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI algorithms or training methodologies may also be flawed, and datasets may contain irrelevant, insufficient or biased information.</span></div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Semiconductors", "company": "Analog Devices"}, {"html": "<div class=\"report-card\">      <h3>Analog Devices <span class=\"symbol\">(ADI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/6281/000000628124000204/adi-20241102.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/6281/000000628123000203/adi-20231028.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The implementation of AI is costly, requires a significant amount of data and there can be no assurance that AI will enhance our products or services or be beneficial to our business, including our efficiency or profitability.</span></div>    </div>", "risks": "Disillusionment", "sector": "Information Technology", "sub": "Semiconductors", "company": "Analog Devices"}, {"html": "<div class=\"report-card\">      <h3>Ansys <span class=\"symbol\">(ANSS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1013462/000101346225000009/anss-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1013462/000101346224000007/anss-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The growth and continuous investment in AI by our competitors as well as start-ups may lead to the development of new or improved products by other companies that may provide better features, faster or more accurate simulation, or better pricing and may render our current and future products less competitive.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Application Software", "company": "Ansys"}, {"html": "<div class=\"report-card\">      <h3>Aon plc <span class=\"symbol\">(AON)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Insurance Brokers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/315293/000162828025006093/aon-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/315293/000162828024005392/aon-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Certain use cases of artificial intelligence in our business processes could pose operational, legal or reputational risks where there may be incorrect outputs or bias in those systems or processes, or where there is inadequate human oversight.</span></div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Insurance Brokers", "company": "Aon plc"}, {"html": "<div class=\"report-card\">      <h3>Aon plc <span class=\"symbol\">(AON)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Insurance Brokers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/315293/000162828025006093/aon-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/315293/000162828024005392/aon-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Because the techniques used to obtain unauthorized access or sabotage systems change frequently (including as a result of the use of generative artificial intelligence, such as deepfakes), we may be unable to anticipate these techniques, implement adequate preventative measures, or detect and respond quickly enough in the event of an incident or attack.</div>    </div>", "risks": "Deepfakes", "sector": "Financials", "sub": "Insurance Brokers", "company": "Aon plc"}, {"html": "<div class=\"report-card\">      <h3>Apollo Global Management <span class=\"symbol\">(APO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1858681/000185868125000034/apo-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1858681/000185868124000031/apo-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We also face competitive risks if we fail to adopt AI Technologies in a timely fashion.</span></div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "Apollo Global Management"}, {"html": "<div class=\"report-card\">      <h3>Apollo Global Management <span class=\"symbol\">(APO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1858681/000185868125000034/apo-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1858681/000185868124000031/apo-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI Technologies could significantly disrupt the markets in which we operate and subject us to increased competition, legal and regulatory risks and compliance costs, which could have a material and adverse effect on our business, financial condition, results of operations, liquidity and cash flows.</span></div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "Apollo Global Management"}, {"html": "<div class=\"report-card\">      <h3>Apollo Global Management <span class=\"symbol\">(APO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span><span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1858681/000185868125000034/apo-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1858681/000185868124000031/apo-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, we may not be able to control how third-party AI Technologies that we choose to use are developed or maintained, or how data we input is used or disclosed, even where we have sought contractual protections with respect to these matters. The misuse or misappropriation of our data, including material non-public information, could have an adverse impact on our reputation, subject us to legal and regulatory investigations and/or actions and create competitive risk.</span></div>    </div>", "risks": "Data and IP Protection; Third Party", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "Apollo Global Management"}, {"html": "<div class=\"report-card\">      <h3>Apollo Global Management <span class=\"symbol\">(APO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1858681/000185868125000034/apo-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1858681/000185868124000031/apo-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">As new technologies, including tools that harness generative artificial intelligence and other machine learning techniques, rapidly develop and become <span style='color:green;'>even more</span> accessible, the use of such new technologies by us, our affiliates and our third party service providers will present additional known and unknown risks, including, among others, the risk that confidential information may be stolen, misappropriated or disclosed and the risk that we and/or third party service providers may rely on incorrect, unclear or biased outputs generated by such technologies, any of which could have an adverse impact on us and our business.</div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "Apollo Global Management"}, {"html": "<div class=\"report-card\">      <h3>Apollo Global Management <span class=\"symbol\">(APO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1858681/000185868125000034/apo-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1858681/000185868124000031/apo-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If the data we, or third parties whose services we rely on, use in connection with the possible development or deployment of AI Technologies is incomplete, incorrect, inadequate or biased in some way, it may result in flawed algorithms, reduce the effectiveness of AI Technologies and adversely impact us and our operations.</span></div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "Apollo Global Management"}, {"html": "<div class=\"report-card\">      <h3>Apple Inc. <span class=\"symbol\">(AAPL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Hardware, Storage & Peripherals</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/320193/000032019324000123/aapl-20240928.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/320193/000032019323000106/aapl-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The introduction of new and complex technologies, such as artificial intelligence features, can increase these and other safety risks, including exposing users to harmful, inaccurate or other negative content and experiences.</span></div>    </div>", "risks": "", "sector": "Information Technology", "sub": "Technology Hardware, Storage & Peripherals", "company": "Apple Inc."}, {"html": "<div class=\"report-card\">      <h3>Applied Materials <span class=\"symbol\">(AMAT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductor Materials & Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/6951/000000695124000044/amat-20241027.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/6951/000000695123000041/amat-20231029.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our competitors may be more successful in their artificial intelligence strategy and develop superior products and services with the aid of artificial intelligence technology.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Semiconductor Materials & Equipment", "company": "Applied Materials"}, {"html": "<div class=\"report-card\">      <h3>Applied Materials <span class=\"symbol\">(AMAT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductor Materials & Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/6951/000000695124000044/amat-20241027.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/6951/000000695123000041/amat-20231029.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">To the extent artificial intelligence capabilities improve and are increasingly <span style='color:red;text-decoration:line-through;'>adopted,</span> <span style='color:green;'>adopted by threat actors,</span> they may be used to identify vulnerabilities and craft increasingly sophisticated cybersecurity attacks.</div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Semiconductor Materials & Equipment", "company": "Applied Materials"}, {"html": "<div class=\"report-card\">      <h3>Applied Materials <span class=\"symbol\">(AMAT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductor Materials & Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/6951/000000695124000044/amat-20241027.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/6951/000000695123000041/amat-20231029.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Artificial intelligence and deepfake technologies could be used to attack information systems by creating more effective phishing emails or social engineering and by exploiting vulnerabilities in electronic security programs utilizing false image or voice recognition.</span></div>    </div>", "risks": "Deepfakes; Malicious Actors", "sector": "Information Technology", "sub": "Semiconductor Materials & Equipment", "company": "Applied Materials"}, {"html": "<div class=\"report-card\">      <h3>Applied Materials <span class=\"symbol\">(AMAT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductor Materials & Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/6951/000000695124000044/amat-20241027.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/6951/000000695123000041/amat-20231029.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The use of artificial intelligence in the development of our products and services could also cause loss of intellectual property, as well as subject us to risks related to intellectual property infringement or misappropriation, data privacy and cybersecurity.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Information Technology", "sub": "Semiconductor Materials & Equipment", "company": "Applied Materials"}, {"html": "<div class=\"report-card\">      <h3>Applied Materials <span class=\"symbol\">(AMAT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductor Materials & Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/6951/000000695124000044/amat-20241027.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/6951/000000695123000041/amat-20231029.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, artificial intelligence algorithms or training methodologies may be flawed, and datasets may contain irrelevant, insufficient or biased information, which can cause errors in outputs.</span></div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Semiconductor Materials & Equipment", "company": "Applied Materials"}, {"html": "<div class=\"report-card\">      <h3>Applied Materials <span class=\"symbol\">(AMAT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductor Materials & Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/6951/000000695124000044/amat-20241027.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/6951/000000695123000041/amat-20231029.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The implementation of artificial intelligence can be costly, and there is no guarantee that our use of artificial intelligence will enhance our technologies, benefit our business operations, or produce products and services that are preferred by our customers.</span></div>    </div>", "risks": "Disillusionment", "sector": "Information Technology", "sub": "Semiconductor Materials & Equipment", "company": "Applied Materials"}, {"html": "<div class=\"report-card\">      <h3>Arch Capital Group <span class=\"symbol\">(ACGL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Property & Casualty Insurance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/947484/000094748425000017/acgl-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/947484/000094748424000020/acgl-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our information technology systems and our pace of adoption of new technologies, such as <span style='color:green;'>generative</span> AI, may not be adequate to meet the demands of our customers or impact negatively our ability to compete with our peers.</div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Property & Casualty Insurance", "company": "Arch Capital Group"}, {"html": "<div class=\"report-card\">      <h3>Arch Capital Group <span class=\"symbol\">(ACGL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Property & Casualty Insurance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/947484/000094748425000017/acgl-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/947484/000094748424000020/acgl-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The sophistication of cybersecurity threats, AI-powered cyber attacks such as deep fakes and brute force attacks, continues to increase. We and/or our SaaS or other third-party providers are exposed to these risks and other cybersecurity risks which may arise in the future.</span></div>    </div>", "risks": "Deepfakes; Malicious Actors", "sector": "Financials", "sub": "Property & Casualty Insurance", "company": "Arch Capital Group"}, {"html": "<div class=\"report-card\">      <h3>Archer Daniels Midland <span class=\"symbol\">(ADM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Agricultural Products & Services</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/7084/000000708425000011/adm-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/7084/000000708424000009/adm-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The Company is subject to a variety of laws and regulations in the United States and other jurisdictions regarding <span style='color:green;'>artificial intelligence (AI),</span> privacy, data protection, and data security, including those related to the collection, storage, handling, use, disclosure, transfer, and security of personal data.</div>    </div>", "risks": "", "sector": "Consumer Staples", "sub": "Agricultural Products & Services", "company": "Archer Daniels Midland"}, {"html": "<div class=\"report-card\">      <h3>Arista Networks <span class=\"symbol\">(ANET)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Communications Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1596532/000159653225000028/anet-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1596532/000159653224000043/anet-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Moreover, even if the market for AI applications does develop, the successful adoption of AI Ethernet products will be dependent upon their ability to compete against more established InfiniBand products <span style='color:green;'>or against the AI Ethernet products of other competitors</span> to address AI networking clusters.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Communications Equipment", "company": "Arista Networks"}, {"html": "<div class=\"report-card\">      <h3>Arista Networks <span class=\"symbol\">(ANET)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Communications Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Export Controls'>Export Controls</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1596532/000159653225000028/anet-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1596532/000159653224000043/anet-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The U.S. government continues to add additional entities, in China and elsewhere, to restricted party lists impacting the ability of U.S. companies to provide products, and in certain cases services, to these entities and, in some cases, receive products or services from these entities. Additionally, the U.S. government continues to expand controls enacted in October 2022 restricting the ability to send certain products and technology related to semiconductors, semiconductor manufacturing, and supercomputing to China without an export license. In <span style='color:red;text-decoration:line-through;'>2023,</span> <span style='color:green;'>2023 and 2024,</span> the U.S. government expanded the list of advanced integrated circuits subject to heightened export controls, including certain hardware containing these specified integrated circuits, expanded the list of destinations requiring export authorization for such items, and added new restrictions based on the headquarters location of the parties involved. <span style='color:green;'>Proposed regulations would further expand the controls to impose a worldwide licensing requirement on certain integrated circuits and computing resources that are used for training of AI models.</span> The U.S. government also <span style='color:red;text-decoration:line-through;'>has expanded</span> <span style='color:green;'>continues to expand</span> the scope of restrictions on the development or production of advanced integrated circuits and certain semiconductor manufacturing equipment, and the restrictions on supercomputing, in China and other countries. <span style='color:green;'>Proposed regulations would expand these controls further and impose additional reporting requirements.</span> Other foreign governments may in turn impose similar or more restrictive controls. These controls or any additional restrictions may impact our ability to export certain products to China or other countries, prohibit us from selling our products to certain of our customers, restrict our ability to use certain Integrated Circuits (\u201cICs\u201d) in our products, or impact our suppliers who may utilize facilities or equipment described in these controls.</div>    </div>", "risks": "Export Controls", "sector": "Information Technology", "sub": "Communications Equipment", "company": "Arista Networks"}, {"html": "<div class=\"report-card\">      <h3>Arista Networks <span class=\"symbol\">(ANET)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Communications Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1596532/000159653225000028/anet-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1596532/000159653224000043/anet-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For example, the European Union has <span style='color:red;text-decoration:line-through;'>reached political agreement</span> <span style='color:green;'>adopted</span> on an Artificial Intelligence Act that, when <span style='color:red;text-decoration:line-through;'>finalized, would prohibit</span> <span style='color:green;'>effective, prohibits</span> certain AI applications and systems and <span style='color:red;text-decoration:line-through;'>impose</span> <span style='color:green;'>imposes</span> additional requirements on the use of certain applications or systems.</div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Communications Equipment", "company": "Arista Networks"}, {"html": "<div class=\"report-card\">      <h3>Arista Networks <span class=\"symbol\">(ANET)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Communications Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1596532/000159653225000028/anet-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1596532/000159653224000043/anet-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">AI technologies also present emerging <span style='color:green;'>legal,</span> ethical and social issues, including with respect to potential or actual bias reflected in, or flawed outputs of, models.</div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Communications Equipment", "company": "Arista Networks"}, {"html": "<div class=\"report-card\">      <h3>Arthur J. Gallagher & Co. <span class=\"symbol\">(AJG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Insurance Brokers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/354190/000095017025021775/ajg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/354190/000095017024013370/ajg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The use of this technology by <span style='color:green;'>clients or underwriting enterprises may impact the way our business operates, and its use by</span> our competitors <span style='color:green;'>and new market entrants with competing services derived from their AI capabilities</span> may give them a competitive <span style='color:red;text-decoration:line-through;'>advantage that</span> <span style='color:green;'>advantage. We</span> cannot <span style='color:red;text-decoration:line-through;'>be predicted</span> <span style='color:green;'>predict the effect of these changes</span> at this time, <span style='color:red;text-decoration:line-through;'>and it</span> <span style='color:green;'>for example, they</span> may <span style='color:green;'>decrease the demand for our services or</span> negatively affect our assumptions regarding the competitive landscape of our business.</div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Insurance Brokers", "company": "Arthur J. Gallagher & Co."}, {"html": "<div class=\"report-card\">      <h3>Arthur J. Gallagher & Co. <span class=\"symbol\">(AJG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Insurance Brokers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/354190/000095017025021775/ajg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/354190/000095017024013370/ajg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We may be unable to develop further efficiencies in our claims-handling business and may be unable to obtain or retain certain clients if we fail to make adequate improvements in technology or operations; and Underwriting enterprises or certain large self-insured entities may create in- house servicing <span style='color:red;text-decoration:line-through;'>capabilities</span> <span style='color:green;'>capabilities, including as a result of the adoption of AI,</span> that compete with our third party administration and other administration, servicing and risk management products, and we could face additional competition from potential new entrants into the global claims management services market.</div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Insurance Brokers", "company": "Arthur J. Gallagher & Co."}, {"html": "<div class=\"report-card\">      <h3>Arthur J. Gallagher & Co. <span class=\"symbol\">(AJG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Insurance Brokers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/354190/000095017025021775/ajg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/354190/000095017024013370/ajg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We also expect to be subject to a variety of laws and regulations governing AI, such as the <span style='color:red;text-decoration:line-through;'>proposed</span> EU AI Act <span style='color:red;text-decoration:line-through;'>which is expected to be</span> <span style='color:green;'>that was</span> enacted in <span style='color:red;text-decoration:line-through;'>2024.</span> <span style='color:green;'>2024 and will gradually enter into force during the next three years.</span></div>    </div>", "risks": "EU AI Act", "sector": "Financials", "sub": "Insurance Brokers", "company": "Arthur J. Gallagher & Co."}, {"html": "<div class=\"report-card\">      <h3>Arthur J. Gallagher & Co. <span class=\"symbol\">(AJG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Insurance Brokers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/354190/000095017025021775/ajg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/354190/000095017024013370/ajg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">In addition, our increased reliance on <span style='color:red;text-decoration:line-through;'>work-from-home</span> technologies <span style='color:green;'>that support remote and hybrid work</span> and our employees\u2019 more frequent use of personal devices and non-standard business processing <span style='color:green;'>as well as the increasing prevalence of sophisticated cyber-attacks using AI, such as \u201cdeep fakes,\u201d</span> may increase the risk of cybersecurity or data breaches from circumvention of security systems, denial-of-service attacks or other cyber- attacks, hacking, \u201cphishing\u201d <span style='color:red;text-decoration:line-through;'>attacks,</span> <span style='color:green;'>attacks (including digital or telephonic impersonation),</span> computer viruses, ransomware, malware, <span style='color:green;'>malicious or destructive code,</span> employee or insider error, malfeasance, social engineering, physical breaches or other actions.</div>    </div>", "risks": "Deepfakes; Malicious Actors", "sector": "Financials", "sub": "Insurance Brokers", "company": "Arthur J. Gallagher & Co."}, {"html": "<div class=\"report-card\">      <h3>Arthur J. Gallagher & Co. <span class=\"symbol\">(AJG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Insurance Brokers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/354190/000095017025021775/ajg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/354190/000095017024013370/ajg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We are exposed to the risks associated with these inaccuracies, errors and biases, along with the adverse impacts that such flawed models could have on our business and operations.</div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Insurance Brokers", "company": "Arthur J. Gallagher & Co."}, {"html": "<div class=\"report-card\">      <h3>Arthur J. Gallagher & Co. <span class=\"symbol\">(AJG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Insurance Brokers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/354190/000095017025021775/ajg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/354190/000095017024013370/ajg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Due to the impracticality of incorporating all relevant data into the models used by AI, it is inevitable that data sets within these models will contain inaccuracies and errors, and potential biases.</div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Insurance Brokers", "company": "Arthur J. Gallagher & Co."}, {"html": "<div class=\"report-card\">      <h3>Assurant <span class=\"symbol\">(AIZ)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Multi-line Insurance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Skills'>Skills</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1267238/000126723825000008/aiz-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1267238/000126723824000008/aiz-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We believe that our future success depends in substantial part on our ability to attract, recruit, motivate, develop and retain a high- performing workforce, particularly those with specialized industry knowledge or within critical or in-demand areas such as sales, digital, customer experience, data and analytics, <span style='color:green;'>AI</span> and supply chain, across our lines of businesses.</div>    </div>", "risks": "Skills", "sector": "Financials", "sub": "Multi-line Insurance", "company": "Assurant"}, {"html": "<div class=\"report-card\">      <h3>Assurant <span class=\"symbol\">(AIZ)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Multi-line Insurance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1267238/000126723825000008/aiz-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1267238/000126723824000008/aiz-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">There is also significant uncertainty in the evolving regulatory regime relating to artificial intelligence, <span style='color:green;'>which may require substantial resources to modify</span> and <span style='color:green;'>maintain business practices to comply with U.S. and non-U.S. laws. For example, various states have adopted the National Association of Insurance Commissioners (NAIC)\u2019s model bulletin, The Use of Artificial Intelligence Systems by Insurers. Internationally, on December 8, 2023, the European Commission, the European Parliament and the European Council reached political agreement on the terms of the European Union Artificial Intelligence Act. Evolving obligations may negatively impact</span> our current use and continued exploration of the use of <span style='color:red;text-decoration:line-through;'>this technology</span> <span style='color:green;'>artificial intelligence</span> in our business <span style='color:green;'>and</span> may subject us to regulatory scrutiny, litigation, and social and ethical concerns.</div>    </div>", "risks": "EU AI Act", "sector": "Financials", "sub": "Multi-line Insurance", "company": "Assurant"}, {"html": "<div class=\"report-card\">      <h3>AT&T <span class=\"symbol\">(T)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Integrated Telecommunication Services</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/732717/000073271725000013/t-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/732717/000073271724000009/t-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Further, we <span style='color:green;'>are using and</span> intend to <span style='color:green;'>further</span> use artificial intelligence (AI)-driven efficiencies in our network <span style='color:red;text-decoration:line-through;'>design,</span> <span style='color:green;'>design and operations,</span> software <span style='color:red;text-decoration:line-through;'>development and</span> <span style='color:green;'>development, sales, marketing,</span> customer support <span style='color:red;text-decoration:line-through;'>services.</span> <span style='color:green;'>services and general and administrative costs.</span> The models used in those products, particularly generative AI models, may produce output or take action that is incorrect, release private or confidential information, reflect biases included in the data on which they are trained, infringe on the intellectual property rights of others, or be otherwise harmful. Any of these risks could expose us to liability or adverse legal or regulatory consequences and harm our reputation and the public perception of our business or the effectiveness of our security measures.</div>    </div>", "risks": "", "sector": "Communication Services", "sub": "Integrated Telecommunication Services", "company": "AT&T"}, {"html": "<div class=\"report-card\">      <h3>AT&T <span class=\"symbol\">(T)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Integrated Telecommunication Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/732717/000073271725000013/t-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/732717/000073271724000009/t-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The models used in those products, particularly generative AI models, may produce output or take action that is incorrect, release private or confidential information, reflect biases included in the data on which they are trained, infringe on the intellectual property rights of others, or be otherwise harmful.</div>    </div>", "risks": "Bias", "sector": "Communication Services", "sub": "Integrated Telecommunication Services", "company": "AT&T"}, {"html": "<div class=\"report-card\">      <h3>Autodesk <span class=\"symbol\">(ADSK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/769397/000076939725000019/adsk-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/769397/000076939724000090/adsk-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, the European Union\u2019s Artificial Intelligence Act (the \u201cAI Act\u201d), which achieved approval by the European Council on February 2, 2024, and the European Parliament on March 13, 2024, will impose obligations on providers and users of artificial intelligence technologies.</span></div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Application Software", "company": "Autodesk"}, {"html": "<div class=\"report-card\">      <h3>Autodesk <span class=\"symbol\">(ADSK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/769397/000076939725000019/adsk-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/769397/000076939724000090/adsk-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, these threats continue to evolve in sophistication and volume and are difficult to detect and predict due to advances in electronic warfare techniques, advances in cryptography and other technologies, including AI and machine learning.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Application Software", "company": "Autodesk"}, {"html": "<div class=\"report-card\">      <h3>Autodesk <span class=\"symbol\">(ADSK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/769397/000076939725000019/adsk-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/769397/000076939724000090/adsk-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For example, if the content, analyses, or recommendations that AI applications assist in producing are or are alleged to be deficient, inaccurate, or biased, our business, financial condition, and results of operations may be adversely affected.</div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Application Software", "company": "Autodesk"}, {"html": "<div class=\"report-card\">      <h3>Automatic Data Processing <span class=\"symbol\">(ADP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Human Resource & Employment Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/8670/000000867024000024/adp-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/8670/000000867023000030/adp-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Complying with privacy, data protection, AI and cyber security laws and requirements, including the enhanced obligations imposed by the GDPR, our <span style='color:red;text-decoration:line-through;'>BCRs</span> <span style='color:green;'>BCRs, U.S. state privacy laws, including the CPRA,</span> and the <span style='color:red;text-decoration:line-through;'>CPRA,</span> <span style='color:green;'>EU Artificial Intelligence Act,</span> may result in significant costs to our business and require us to amend certain of our business practices.</div>    </div>", "risks": "EU AI Act", "sector": "Industrials", "sub": "Human Resource & Employment Services", "company": "Automatic Data Processing"}, {"html": "<div class=\"report-card\">      <h3>Automatic Data Processing <span class=\"symbol\">(ADP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Human Resource & Employment Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/8670/000000867024000024/adp-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/8670/000000867023000030/adp-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Nonetheless, the global environment continues to grow increasingly hostile as attacks on information technology systems continue to grow in frequency, complexity and <span style='color:red;text-decoration:line-through;'>sophistication,</span> <span style='color:green;'>sophistication (including due to the use of AI),</span> and we are regularly targeted by unauthorized parties using malicious tactics, code and viruses.</div>    </div>", "risks": "Malicious Actors", "sector": "Industrials", "sub": "Human Resource & Employment Services", "company": "Automatic Data Processing"}, {"html": "<div class=\"report-card\">      <h3>Automatic Data Processing <span class=\"symbol\">(ADP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Human Resource & Employment Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/8670/000000867024000024/adp-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/8670/000000867023000030/adp-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">In addition, data security events, concerns about privacy abuses by other companies and increased awareness of the potential (positive and negative) of AI are changing consumer and social expectations for enhanced protections (including with respect to bias and potential discrimination).</div>    </div>", "risks": "Bias", "sector": "Industrials", "sub": "Human Resource & Employment Services", "company": "Automatic Data Processing"}, {"html": "<div class=\"report-card\">      <h3>Automatic Data Processing <span class=\"symbol\">(ADP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Human Resource & Employment Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/8670/000000867024000024/adp-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/8670/000000867023000030/adp-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our use of generative AI in our products and operations also introduces additional risks, including risks related to accuracy, bias, security, and privacy. For example, if the data used to train a model or the model\u2019s output is inaccurate or biased, or alleged to be inaccurate or biased, we could be subject to reputational damage or litigation.</span></div>    </div>", "risks": "Bias", "sector": "Industrials", "sub": "Human Resource & Employment Services", "company": "Automatic Data Processing"}, {"html": "<div class=\"report-card\">      <h3>AutoZone <span class=\"symbol\">(AZO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Automotive Retail</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/866787/000155837024013758/azo-20240831x10k.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/866787/000155837023016668/azo-20230826x10k.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Although we believe we compete effectively, our competitors may have greater financial <span style='color:red;text-decoration:line-through;'>and marketing</span> resources <span style='color:green;'>allowing them to invest more in their business, greater sourcing capabilities</span> allowing them to sell merchandise at lower prices, larger stores with more merchandise, longer operating histories with deeper customer relationships, more frequent customer <span style='color:red;text-decoration:line-through;'>visits</span> <span style='color:green;'>visits, more effective advertising</span> and more <span style='color:red;text-decoration:line-through;'>effective advertising.</span> <span style='color:green;'>successful utilization of data analytics, artificial intelligence and other new and emerging technologies.</span></div>    </div>", "risks": "Competition", "sector": "Consumer Discretionary", "sub": "Automotive Retail", "company": "AutoZone"}, {"html": "<div class=\"report-card\">      <h3>AutoZone <span class=\"symbol\">(AZO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Automotive Retail</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/866787/000155837024013758/azo-20240831x10k.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/866787/000155837023016668/azo-20230826x10k.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">While addressing vulnerabilities is a priority for us, the methods used to obtain unauthorized access are constantly <span style='color:red;text-decoration:line-through;'>evolving,</span> <span style='color:green;'>evolving and</span> increasing in frequency and sophistication, <span style='color:green;'>including through the use of evolving artificial intelligence tools to identify</span> and <span style='color:red;text-decoration:line-through;'>can be difficult to anticipate or detect for long periods of time.</span> <span style='color:green;'>exploit vulnerabilities.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Discretionary", "sub": "Automotive Retail", "company": "AutoZone"}, {"html": "<div class=\"report-card\">      <h3>AvalonBay Communities <span class=\"symbol\">(AVB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Multi-Family Residential REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/915912/000091591225000005/avb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/915912/000091591224000004/avb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Information security risks have generally increased in recent years due to the rise in new <span style='color:red;text-decoration:line-through;'>technologies</span> <span style='color:green;'>technologies, such as ransomware and generative artificial intelligence,</span> and the increased sophistication and activities of perpetrators of <span style='color:red;text-decoration:line-through;'>cyber-attacks.</span> <span style='color:green;'>cyber-attacks, including as a result of the intensification of state- sponsored cybersecurity attacks during periods of geopolitical conflict.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Real Estate", "sub": "Multi-Family Residential REITs", "company": "AvalonBay Communities"}, {"html": "<div class=\"report-card\">      <h3>AvalonBay Communities <span class=\"symbol\">(AVB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Multi-Family Residential REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/915912/000091591225000005/avb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/915912/000091591224000004/avb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Finally, public perception of new technologies (including AI), such as concerns about data privacy and algorithmic bias, could affect customer acceptance of technology-driven services, which could harm our reputation and business.</span></div>    </div>", "risks": "Bias", "sector": "Real Estate", "sub": "Multi-Family Residential REITs", "company": "AvalonBay Communities"}, {"html": "<div class=\"report-card\">      <h3>Avery Dennison <span class=\"symbol\">(AVY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Paper & Plastic Packaging Products & Materials</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span><span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/8818/000000881825000003/avy-20241228.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/8818/000000881824000003/avy-20231230.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Threat actors are increasingly leveraging AI for cyberattacks, and our increasing use of AI carries risks related to data security, privacy events, and potential algorithmic bias. These AI risks could lead to operational disruptions, regulatory investigations or actions, data security events and potential financial loss.</span></div>    </div>", "risks": "Malicious Actors; Bias", "sector": "Materials", "sub": "Paper & Plastic Packaging Products & Materials", "company": "Avery Dennison"}, {"html": "<div class=\"report-card\">      <h3>Axon Enterprise <span class=\"symbol\">(AXON)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Aerospace & Defense</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1069183/000106918325000019/axon-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1069183/000106918324000006/axon-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Competitive pressures may also drive rapid AI development or deployment, increasing the risk of releasing inadequately tested or unreliable features.</span></div>    </div>", "risks": "Competition", "sector": "Industrials", "sub": "Aerospace & Defense", "company": "Axon Enterprise"}, {"html": "<div class=\"report-card\">      <h3>Axon Enterprise <span class=\"symbol\">(AXON)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Aerospace & Defense</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span><span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1069183/000106918325000019/axon-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1069183/000106918324000006/axon-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>In addition, any</span> <span style='color:green;'>Biases in AI models could result in discriminatory outcomes, eroding trust among customers and communities we serve. Any</span> latency, <span style='color:red;text-decoration:line-through;'>disruption</span> <span style='color:green;'>disruption,</span> or failure in our AI <span style='color:green;'>systems, third-party AI</span> systems <span style='color:green;'>that we utilize,</span> or infrastructure could <span style='color:red;text-decoration:line-through;'>result in</span> <span style='color:green;'>cause</span> delays or errors in our offerings.</div>    </div>", "risks": "Third Party; Bias", "sector": "Industrials", "sub": "Aerospace & Defense", "company": "Axon Enterprise"}, {"html": "<div class=\"report-card\">      <h3>Axon Enterprise <span class=\"symbol\">(AXON)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Aerospace & Defense</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1069183/000106918325000019/axon-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1069183/000106918324000006/axon-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, third parties that license AI technologies to us may impose unfavorable licensing terms or terminate the licenses altogether, requiring us to seek licenses from alternative sources to avoid disruptions in feature delivery.</span></div>    </div>", "risks": "Third Party", "sector": "Industrials", "sub": "Aerospace & Defense", "company": "Axon Enterprise"}, {"html": "<div class=\"report-card\">      <h3>Axon Enterprise <span class=\"symbol\">(AXON)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Aerospace & Defense</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1069183/000106918325000019/axon-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1069183/000106918324000006/axon-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, while we do not use customer data to train AI models today, we do occasionally use data obtained from the Axon Customer Evidence Improvement Program (\u201cACEIP\u201d) for evaluation and we may use ACEIP data to also train models in the future, while ensuring proper consents and compliance with applicable laws. This approach reflects our commitment to responsible data usage and governance. However, there remains a significant risk in the nature of data used by third-party providers to train the AI models we rely on, including whether such third-party providers have trained AI models on data that they did not have proper consents for.</span></div>    </div>", "risks": "Third Party", "sector": "Industrials", "sub": "Aerospace & Defense", "company": "Axon Enterprise"}, {"html": "<div class=\"report-card\">      <h3>Axon Enterprise <span class=\"symbol\">(AXON)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Aerospace & Defense</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1069183/000106918325000019/axon-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1069183/000106918324000006/axon-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In part due to our global scope and law enforcement customer base, we may face heightened scrutiny and regulatory requirements, which could further increase compliance costs and limit our ability to develop, deploy or use our AI solutions or other AI technologies. For example, the AI Act in the European Union imposes compliance requirements on a variety of AI uses by law enforcement, as well as on the companies that develop those products, including us. Other jurisdictions may adopt similar measures in the future. In the future, we may voluntarily or involuntarily initiate recalls if our products are determined by us or a regulatory authority to be noncompliant with applicable laws and regulations. Such recalls, whether voluntary or involuntary, could result in significant expense, supply chain complications, and may harm our brand, business, prospects, financial condition and operating results.</span></div>    </div>", "risks": "EU AI Act", "sector": "Industrials", "sub": "Aerospace & Defense", "company": "Axon Enterprise"}, {"html": "<div class=\"report-card\">      <h3>Axon Enterprise <span class=\"symbol\">(AXON)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Aerospace & Defense</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1069183/000106918325000019/axon-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1069183/000106918324000006/axon-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Cyber attacks that use AI may also become increasingly frequent and effective.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Industrials", "sub": "Aerospace & Defense", "company": "Axon Enterprise"}, {"html": "<div class=\"report-card\">      <h3>Axon Enterprise <span class=\"symbol\">(AXON)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Aerospace & Defense</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1069183/000106918325000019/axon-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1069183/000106918324000006/axon-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Recent developments in the threat landscape include use of AI and machine <span style='color:red;text-decoration:line-through;'>learning, as well as</span> <span style='color:green;'>learning by attackers to automate, enhance, and evade detection during cyberattacks, along with</span> an increased number of cyber extortion and ransomware <span style='color:red;text-decoration:line-through;'>attacks, with higher financial ransom demand amounts and increasing sophistication and variety of ransomware techniques and methodology.</span> <span style='color:green;'>incidents.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Industrials", "sub": "Aerospace & Defense", "company": "Axon Enterprise"}, {"html": "<div class=\"report-card\">      <h3>Axon Enterprise <span class=\"symbol\">(AXON)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Aerospace & Defense</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1069183/000106918325000019/axon-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1069183/000106918324000006/axon-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>These attacks can feature higher financial ransom demands and demonstrate increasing sophistication, including novel ransomware techniques, diverse methodologies, and advance capabilities such as adaptive malware and deepfake-enabled phishing schemes.</span></div>    </div>", "risks": "Deepfakes; Malicious Actors", "sector": "Industrials", "sub": "Aerospace & Defense", "company": "Axon Enterprise"}, {"html": "<div class=\"report-card\">      <h3>Axon Enterprise <span class=\"symbol\">(AXON)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Aerospace & Defense</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1069183/000106918325000019/axon-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1069183/000106918324000006/axon-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We may also face increased scrutiny regarding</span> data <span style='color:red;text-decoration:line-through;'>protection requirements or requiring local storage and processing of</span> <span style='color:green;'>privacy and security risks related to the</span> data <span style='color:red;text-decoration:line-through;'>or similar requirements that could increase the cost and complexity of delivering our products and services and</span> <span style='color:green;'>we use to train and evaluate AI models, as breaches or misuse of this data and associated terms and conditions could</span> expose us to significant <span style='color:red;text-decoration:line-through;'>penalties for non-compliance.</span> <span style='color:green;'>liabilities.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Industrials", "sub": "Aerospace & Defense", "company": "Axon Enterprise"}, {"html": "<div class=\"report-card\">      <h3>Axon Enterprise <span class=\"symbol\">(AXON)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Aerospace & Defense</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1069183/000106918325000019/axon-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1069183/000106918324000006/axon-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For example, AI algorithms that we use may be flawed or may be (or <span style='color:red;text-decoration:line-through;'>may be</span> perceived to be) based on datasets that are biased or <span style='color:red;text-decoration:line-through;'>insufficient.</span> <span style='color:green;'>insufficient, a risk raised by the ACLU in a report dated December 10, 2024.</span></div>    </div>", "risks": "Bias", "sector": "Industrials", "sub": "Aerospace & Defense", "company": "Axon Enterprise"}, {"html": "<div class=\"report-card\">      <h3>Baker Hughes <span class=\"symbol\">(BKR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Energy</span>          <span class=\"tag\">Oil & Gas Equipment & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1701605/000170160525000035/bkr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1701605/000170160524000033/bkr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our digital technologies and services, as well as third-party products, services and technologies on which we rely (including emerging technologies, such as artificial intelligence programs), are subject to the risk of cyberattacks.</span></div>    </div>", "risks": "Third Party", "sector": "Energy", "sub": "Oil & Gas Equipment & Services", "company": "Baker Hughes"}, {"html": "<div class=\"report-card\">      <h3>Baker Hughes <span class=\"symbol\">(BKR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Energy</span>          <span class=\"tag\">Oil & Gas Equipment & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1701605/000170160525000035/bkr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1701605/000170160524000033/bkr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Cyberattacks are expected to accelerate on a global basis in both frequency and magnitude as threat actors become increasingly sophisticated in techniques and tools (including artificial intelligence) that circumvent controls, evade detection and even remove forensic evidence of the infiltration.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Energy", "sub": "Oil & Gas Equipment & Services", "company": "Baker Hughes"}, {"html": "<div class=\"report-card\">      <h3>Bank of America <span class=\"symbol\">(BAC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Diversified Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/70858/000007085825000139/bac-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Regardless of the measures we have taken to implement training, procedures, <span style='color:green;'>controls,</span> backup systems and other safeguards to support our operations and bolster our operational resilience, our ability to conduct business may be adversely affected by significant <span style='color:green;'>failures or</span> disruptions to us or to third parties with whom we interact or upon whom we rely, including localized or systemic cyber events <span style='color:green;'>or other technology incidents</span> that result in <span style='color:red;text-decoration:line-through;'>information systems</span> outages <span style='color:red;text-decoration:line-through;'>and</span> <span style='color:green;'>or</span> unavailability of <span style='color:green;'>information systems,</span> part or all of the internet, cloud services and/or the financial services industry infrastructure (including <span style='color:green;'>funds transfers,</span> electronic trading and algorithmic platforms and critical banking <span style='color:red;text-decoration:line-through;'>activities).</span> <span style='color:green;'>activities), which could be exacerbated by the concentration of third- party service providers or third-party models, including AI, and result in systemic operational impact across the financial services industry or beyond.</span></div>    </div>", "risks": "Third Party", "sector": "Financials", "sub": "Diversified Banks", "company": "Bank of America"}, {"html": "<div class=\"report-card\">      <h3>Bank of America <span class=\"symbol\">(BAC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Diversified Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/70858/000007085825000139/bac-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Cybersecurity threats and the tactics, techniques and procedures used in cyberattacks change, develop and evolve <span style='color:red;text-decoration:line-through;'>rapidly,</span> <span style='color:green;'>rapidly and continuously,</span> including <span style='color:green;'>from growth in third-party services that facilitate or carry out cyberattacks and</span> from emerging technologies, such as <span style='color:red;text-decoration:line-through;'>AI,</span> <span style='color:green;'>AI (including</span> machine learning and <span style='color:green;'>generative AI) and</span> quantum <span style='color:red;text-decoration:line-through;'>computing.</span> <span style='color:green;'>computing, which may be used to enhance the tactics, techniques and procedures described above and facilitate new cyber threats.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Diversified Banks", "company": "Bank of America"}, {"html": "<div class=\"report-card\">      <h3>Bank of America <span class=\"symbol\">(BAC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Diversified Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/70858/000007085825000139/bac-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our models may also be adversely impacted by human error and may not be effective if we fail to properly <span style='color:red;text-decoration:line-through;'>oversee and</span> <span style='color:green;'>oversee, regularly</span> review <span style='color:red;text-decoration:line-through;'>them at regular intervals</span> and detect their flaws during our review and monitoring processes, they contain <span style='color:green;'>biases,</span> erroneous data, assumptions, valuations, formulas or <span style='color:red;text-decoration:line-through;'>algorithms</span> <span style='color:green;'>algorithms,</span> or our applications running the models do not perform as expected.</div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Diversified Banks", "company": "Bank of America"}, {"html": "<div class=\"report-card\">      <h3>Baxter International <span class=\"symbol\">(BAX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/10456/000162828025007201/bax-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/10456/000162828024003932/bax-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We further anticipate that AI and ML will become increasingly important to our innovation and competitiveness in the future.</span></div>    </div>", "risks": "Competition", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Baxter International"}, {"html": "<div class=\"report-card\">      <h3>Baxter International <span class=\"symbol\">(BAX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/10456/000162828025007201/bax-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/10456/000162828024003932/bax-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Further, we <span style='color:red;text-decoration:line-through;'>are</span> <span style='color:green;'>are, or will be,</span> subject to the EU\u2019s General Data Protection Regulation (the GDPR) <span style='color:green;'>the EU Data Act, the Artificial Intelligence Act,</span> and the NIS2 Directive, an EU wide cybersecurity legislation, which <span style='color:red;text-decoration:line-through;'>will be</span> <span style='color:green;'>became</span> fully in force in 2024.</div>    </div>", "risks": "EU AI Act", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Baxter International"}, {"html": "<div class=\"report-card\">      <h3>Baxter International <span class=\"symbol\">(BAX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/10456/000162828025007201/bax-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/10456/000162828024003932/bax-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The EU Data Act sets regulatory requirements for data access, sharing, and usage while the AI Act will impose significant obligations on the development and use of AI systems, both of which will impact how we develop medical devices for the EU market.</span></div>    </div>", "risks": "EU AI Act", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Baxter International"}, {"html": "<div class=\"report-card\">      <h3>Baxter International <span class=\"symbol\">(BAX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/10456/000162828025007201/bax-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/10456/000162828024003932/bax-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Furthermore, our intellectual property, proprietary technology and sensitive company data is potentially vulnerable to loss, damage and misappropriation from system malfunction, computer viruses and unauthorized access to our data or misappropriation or misuse thereof by those with permitted access and other <span style='color:red;text-decoration:line-through;'>events.</span> <span style='color:green;'>events, including events connected with the use of AI and ML technologies.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Baxter International"}, {"html": "<div class=\"report-card\">      <h3>Becton Dickinson <span class=\"symbol\">(BDX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/10795/000001079524000084/bdx-20240930.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/10795/000001079523000098/bdx-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>A significant number of countries where we operate have enacted privacy or data protection laws, rules and regulations, the majority of which have extraterritorial scope, creating significant compliance challenges as we seek to maintain our global reach, with significant penalties for non-compliance, based on total worldwide annual revenue from the preceding financial year. In some cases, there are restrictions on the transfer of personal data outside the home country. More recently, privacy and data protection regulators are paying special attention to emerging issues linked to new digital technologies, such as the use of artificial intelligence, biometrics, and surveillance technologies, which pose unique challenges to existing privacy and data protection paradigms.</span> In addition, certain privacy and data protection <span style='color:red;text-decoration:line-through;'>laws</span> <span style='color:green;'>laws, rules and regulations</span> may apply to us indirectly through our customers, manufacturers, suppliers or other third-party partners.</div>    </div>", "risks": "", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Becton Dickinson"}, {"html": "<div class=\"report-card\">      <h3>Becton Dickinson <span class=\"symbol\">(BDX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/10795/000001079524000084/bdx-20240930.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/10795/000001079523000098/bdx-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Our ability to compete is also impacted by changing customer <span style='color:green;'>and patient</span> preferences and requirements, including increased focus on products using materials of concern and demand for more <span style='color:red;text-decoration:line-through;'>environmentally friendly</span> <span style='color:green;'>sustainable</span> products, and for products incorporating digital capabilities, <span style='color:green;'>including artificial intelligence,</span> as well as changes in the ways healthcare services are <span style='color:red;text-decoration:line-through;'>delivered (including</span> <span style='color:green;'>delivered, such as</span> the transition of more care from acute to non-acute settings and increased focus on chronic disease <span style='color:red;text-decoration:line-through;'>management).</span> <span style='color:green;'>management.</span></div>    </div>", "risks": "Competition", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Becton Dickinson"}, {"html": "<div class=\"report-card\">      <h3>Best Buy <span class=\"symbol\">(BBY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Computer & Electronics Retail</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/764478/000076447824000010/bby-20240203x10k.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/764478/000076447823000006/bby-20230128x10k.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Competition is becoming increasingly diverse, including in the advertising revenue space and may also result from new entrants into the markets we serve, including unforeseen players that may be able to more aggressively leverage technologies (for example AI and platform integrations).</span></div>    </div>", "risks": "Competition", "sector": "Consumer Discretionary", "sub": "Computer & Electronics Retail", "company": "Best Buy"}, {"html": "<div class=\"report-card\">      <h3>Best Buy <span class=\"symbol\">(BBY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Computer & Electronics Retail</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/764478/000076447824000010/bby-20240203x10k.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/764478/000076447823000006/bby-20230128x10k.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Third parties may commit fraud <span style='color:green;'>(including AI-driven fraud)</span> while using our brand without our permission, possibly harming brand perception or reputation.</div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Discretionary", "sub": "Computer & Electronics Retail", "company": "Best Buy"}, {"html": "<div class=\"report-card\">      <h3>Best Buy <span class=\"symbol\">(BBY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Computer & Electronics Retail</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/764478/000076447824000010/bby-20240203x10k.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/764478/000076447823000006/bby-20230128x10k.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The integration of AI into our operations increases cybersecurity and privacy risks (including unauthorized or misuse of AI tools) and could lead to potential unauthorized access, misuse, acquisition, release, disclosure, alteration or destruction of company and customer data or other confidential or proprietary information and challenge the stability of our platforms. Further, threat actors may leverage AI to engage in automated, targeted and coordinated attacks of our systems. </span></div>    </div>", "risks": "Data and IP Protection; Malicious Actors", "sector": "Consumer Discretionary", "sub": "Computer & Electronics Retail", "company": "Best Buy"}, {"html": "<div class=\"report-card\">      <h3>Biogen <span class=\"symbol\">(BIIB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Biotechnology</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/875045/000087504525000009/biib-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/875045/000087504524000009/biib-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If the analyses that AI-based software assist in producing are deficient or inaccurate, we could be subjected to competitive harm, potential legal liability and brand or reputational harm.</span></div>    </div>", "risks": "Competition", "sector": "Health Care", "sub": "Biotechnology", "company": "Biogen"}, {"html": "<div class=\"report-card\">      <h3>Biogen <span class=\"symbol\">(BIIB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Biotechnology</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/875045/000087504525000009/biib-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/875045/000087504524000009/biib-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Recent developments in the threat landscape include use of <span style='color:green;'>adversarial</span> AI <span style='color:green;'>techniques</span> and machine learning, as well as an increased number of cyber extortion attacks, with higher financial ransom demand amounts and increasing sophistication and variety of ransomware techniques and methodology.</div>    </div>", "risks": "Malicious Actors", "sector": "Health Care", "sub": "Biotechnology", "company": "Biogen"}, {"html": "<div class=\"report-card\">      <h3>Biogen <span class=\"symbol\">(BIIB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Biotechnology</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/875045/000087504525000009/biib-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/875045/000087504524000009/biib-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Use of <span style='color:red;text-decoration:line-through;'>AI based</span> <span style='color:green;'>AI-based</span> software may <span style='color:green;'>also</span> lead to <span style='color:green;'>cybersecurity risks or</span> the release of confidential proprietary <span style='color:red;text-decoration:line-through;'>information</span> <span style='color:green;'>information, including personal data,</span> which may impact our ability to realize the benefit of our intellectual <span style='color:red;text-decoration:line-through;'>property.</span> <span style='color:green;'>property or violate our internal policies, data protection laws or contractual requirements.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Health Care", "sub": "Biotechnology", "company": "Biogen"}, {"html": "<div class=\"report-card\">      <h3>Biogen <span class=\"symbol\">(BIIB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Biotechnology</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/875045/000087504525000009/biib-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/875045/000087504524000009/biib-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>As with many developing technologies, AI-based software presents risks and challenges. For example, algorithms may be flawed; data sets may be insufficient, of poor quality or contain biased information; and inappropriate or controversial data practices could impair results.</span></div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Biotechnology", "company": "Biogen"}, {"html": "<div class=\"report-card\">      <h3>BlackRock <span class=\"symbol\">(BLK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/2012383/000095017025026584/blk-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI technologies may also disrupt the competitive landscape for investment management and technology services, including in commercial and operational areas such as data aggregation and quantitative models.</span></div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "BlackRock"}, {"html": "<div class=\"report-card\">      <h3>BlackRock <span class=\"symbol\">(BLK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/2012383/000095017025026584/blk-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">An information security incident or disruption, such as a cyber-attack including social engineering, <span style='color:red;text-decoration:line-through;'>a</span> <span style='color:green;'>deepfakes,</span> phishing <span style='color:red;text-decoration:line-through;'>scam,</span> <span style='color:green;'>scams,</span> business email compromise, malware, <span style='color:red;text-decoration:line-through;'>denial-of- service</span> <span style='color:green;'>denial-of-service</span> or ransomware <span style='color:red;text-decoration:line-through;'>attack,</span> <span style='color:green;'>attacks,</span> or <span style='color:red;text-decoration:line-through;'>a failure</span> <span style='color:green;'>failures</span> to control access to sensitive systems, could materially interrupt business operations or cause disclosure or modification of sensitive or confidential client or competitive information.</div>    </div>", "risks": "Deepfakes; Malicious Actors", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "BlackRock"}, {"html": "<div class=\"report-card\">      <h3>BlackRock <span class=\"symbol\">(BLK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/2012383/000095017025026584/blk-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For example, the use of datasets to develop and test AI models, the content generated by AI systems, or the application of AI systems may be found to be insufficient, biased or harmful, or lead to adverse business decisions or operating errors.</div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "BlackRock"}, {"html": "<div class=\"report-card\">      <h3>Blackstone Inc. <span class=\"symbol\">(BX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1393818/000119312525042469/d912273d10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1393818/000119312524044485/d734131d10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">In addition to the U.S. regulatory framework, <span style='color:green;'>in 2024,</span> the EU <span style='color:red;text-decoration:line-through;'>is</span> <span style='color:green;'>adopted the Artificial Intelligence Act</span> in <span style='color:red;text-decoration:line-through;'>the process of introducing a new regulation applicable</span> <span style='color:green;'>2024, which applies</span> to certain AI Technologies and the data used to train, test and deploy them, which <span style='color:red;text-decoration:line-through;'>if enacted, could impose</span> <span style='color:green;'>may create additional compliance burdens, higher administrative costs and</span> significant <span style='color:red;text-decoration:line-through;'>requirements on both the providers and deployers of AI Technologies.</span> <span style='color:green;'>penalties should we fail to comply.</span></div>    </div>", "risks": "EU AI Act", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "Blackstone Inc."}, {"html": "<div class=\"report-card\">      <h3>Blackstone Inc. <span class=\"symbol\">(BX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1393818/000119312525042469/d912273d10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1393818/000119312524044485/d734131d10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">These third-party service providers <span style='color:red;text-decoration:line-through;'>could</span> also face ongoing cybersecurity threats and compromises of their <span style='color:red;text-decoration:line-through;'>systems</span> <span style='color:green;'>systems. These cybersecurity threats</span> and <span style='color:green;'>compromises could occur</span> as <span style='color:green;'>a result of threat actors impersonating Blackstone or its employees, including through the use of artificial intelligence technologies. Such technologies could make such impersonation more likely to occur or appear more credible.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "Blackstone Inc."}, {"html": "<div class=\"report-card\">      <h3>Blackstone Inc. <span class=\"symbol\">(BX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1393818/000119312525042469/d912273d10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1393818/000119312524044485/d734131d10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The volume and reliance on data and algorithms also make AI Technologies, and in turn us and our portfolio companies and investments, more susceptible to cybersecurity threats, including the compromise of underlying models, training data, or other intellectual property.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "Blackstone Inc."}, {"html": "<div class=\"report-card\">      <h3>Blackstone Inc. <span class=\"symbol\">(BX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1393818/000119312525042469/d912273d10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1393818/000119312524044485/d734131d10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If the data we, or third parties whose services we rely on, use in connection with the possible development or deployment of AI Technologies is incomplete, inadequate or biased in some way, the performance of our products, services, and businesses could suffer.</span></div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "Blackstone Inc."}, {"html": "<div class=\"report-card\">      <h3>BNY Mellon <span class=\"symbol\">(BK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1390777/000139077725000046/bk-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1390777/000139077724000051/bk-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The failure to strategically embrace the potential of artificial intelligence may result in a competitive disadvantage for us. Although we are incorporating artificial intelligence technologies into some of our products, services and processes, if we cannot offer new artificial intelligence-facilitated technologies as quickly as our competitors, if our competitors develop more cost-effective solutions or other product offerings, or if we are not able to source components, such as intelligence chips due to a supply chain shortage amid rising geopolitical uncertainty, we could experience a material adverse effect on our operating results, customer relationships and growth opportunities.</span></div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "BNY Mellon"}, {"html": "<div class=\"report-card\">      <h3>BNY Mellon <span class=\"symbol\">(BK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1390777/000139077725000046/bk-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1390777/000139077724000051/bk-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Although we are incorporating artificial intelligence technologies into some of our products, services and processes, if we cannot offer new artificial intelligence-facilitated technologies as quickly as our competitors, if our competitors develop more cost-effective solutions or other product offerings, or if we are not able to source components, such as artificial intelligence chips due to a supply chain shortage amid rising geopolitical uncertainty, we could experience a material adverse effect on our operating results, customer relationships and growth opportunities.</span></div>    </div>", "risks": "", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "BNY Mellon"}, {"html": "<div class=\"report-card\">      <h3>BNY Mellon <span class=\"symbol\">(BK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1390777/000139077725000046/bk-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1390777/000139077724000051/bk-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, poor implementation of artificial intelligence, by us or our third-party providers, could subject us to additional risks that we cannot adequately predict or mitigate.</span></div>    </div>", "risks": "Third Party", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "BNY Mellon"}, {"html": "<div class=\"report-card\">      <h3>BNY Mellon <span class=\"symbol\">(BK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span><span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1390777/000139077725000046/bk-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1390777/000139077724000051/bk-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, we may not be able to control how third-party artificial intelligence that we choose to use are developed or maintained, or how data we input into such tools are used or disclosed, even where we have sought protections with respect to these matters.</span></div>    </div>", "risks": "Data and IP Protection; Third Party", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "BNY Mellon"}, {"html": "<div class=\"report-card\">      <h3>BNY Mellon <span class=\"symbol\">(BK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1390777/000139077725000046/bk-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1390777/000139077724000051/bk-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Cyberattacks are expected to accelerate on a global basis in both frequency and magnitude as threat actors are becoming increasingly sophisticated in using novel techniques and tools, including artificial intelligence and other emerging technologies, that have the potential to circumvent controls, evade detection and even remove forensic evidence.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "BNY Mellon"}, {"html": "<div class=\"report-card\">      <h3>BNY Mellon <span class=\"symbol\">(BK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1390777/000139077725000046/bk-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1390777/000139077724000051/bk-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Malicious <span style='color:red;text-decoration:line-through;'>actors</span> <span style='color:green;'>actors, who may see their effectiveness enhanced by the use of artificial intelligence, such as through the use of \u201cdeep-fake\u201d technology or quantum computing,</span> may also attempt to place individuals within BNY <span style='color:red;text-decoration:line-through;'>Mellon</span> or fraudulently induce employees, vendors, customers or other users of our systems through social engineering, such as phishing, to disclose sensitive information in order to gain access to our data or that of our clients, or to send funds or authorize the sending of funds.</div>    </div>", "risks": "Deepfakes; Malicious Actors", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "BNY Mellon"}, {"html": "<div class=\"report-card\">      <h3>BNY Mellon <span class=\"symbol\">(BK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1390777/000139077725000046/bk-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1390777/000139077724000051/bk-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Models utilizing artificial intelligence, machine learning or other emerging technologies present additional challenges, including biases in algorithms or datasets, potentially leading to ineffective decision-making, reporting errors or other unintended consequences.</span></div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "BNY Mellon"}, {"html": "<div class=\"report-card\">      <h3>BNY Mellon <span class=\"symbol\">(BK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1390777/000139077725000046/bk-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1390777/000139077724000051/bk-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>The use of artificial intelligence</span> <span style='color:green;'>These risks</span> may <span style='color:red;text-decoration:line-through;'>expose us to new risks and greater potential liabilities including</span> <span style='color:green;'>occur</span> as a result of enhanced governmental or regulatory scrutiny, litigation, ethical concerns, confidentiality or other security risks, intellectual property concerns <span style='color:red;text-decoration:line-through;'>and</span> <span style='color:green;'>over</span> data rights and <span style='color:red;text-decoration:line-through;'>protection concerns,</span> <span style='color:green;'>protection, heightened susceptibility to cyberattacks, increased frequency and severity of cyberattacks, inaccurate or biased algorithms or underlying datasets, misuse or misappropriation</span> as well as other factors that could adversely affect our business, reputation and financial results.</div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "BNY Mellon"}, {"html": "<div class=\"report-card\">      <h3>Booking Holdings <span class=\"symbol\">(BKNG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span><span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1075531/000107553125000010/bkng-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1075531/000107553124000014/bkng-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our implementation of AI systems could result in legal liability, regulatory action, brand, reputational, or competitive harm, or subject us to new regulatory frameworks (such as the European Union Artificial Intelligence Act).</span></div>    </div>", "risks": "Competition; EU AI Act", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Booking Holdings"}, {"html": "<div class=\"report-card\">      <h3>Booking Holdings <span class=\"symbol\">(BKNG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1075531/000107553125000010/bkng-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1075531/000107553124000014/bkng-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Some of our current and potential competitors include the largest global technology companies, which have significantly more <span style='color:red;text-decoration:line-through;'>customers or users,</span> <span style='color:green;'>consumers,</span> consumer data, and resources than we do, and may be able to leverage other aspects of their businesses (e.g., search or mobile device businesses or <span style='color:red;text-decoration:line-through;'>generative</span> <span style='color:green;'>Gen</span> AI <span style='color:green;'>and similar or related</span> capabilities) to compete with us.</div>    </div>", "risks": "Competition", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Booking Holdings"}, {"html": "<div class=\"report-card\">      <h3>Booking Holdings <span class=\"symbol\">(BKNG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1075531/000107553125000010/bkng-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1075531/000107553124000014/bkng-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>Emerging</span> <span style='color:green;'>Other companies, including emerging</span> start-ups <span style='color:green;'>or large technology companies utilizing proprietary Gen AI or similar capabilities,</span> may be able to innovate and focus on developing a <span style='color:red;text-decoration:line-through;'>particularly</span> new product or service faster than we can or may foresee consumer need for new services or technologies before we do.</div>    </div>", "risks": "Competition", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Booking Holdings"}, {"html": "<div class=\"report-card\">      <h3>Booking Holdings <span class=\"symbol\">(BKNG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1075531/000107553125000010/bkng-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1075531/000107553124000014/bkng-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>Further, consolidation</span> <span style='color:green;'>Consolidation</span> among travel service providers <span style='color:green;'>or the development of alternative offerings as a result of Gen AI</span> could result in lower OTC commission rates, increased discounting, and greater incentives for consumers to join closed-user groups as such travel service providers expand their offerings.</div>    </div>", "risks": "Competition", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Booking Holdings"}, {"html": "<div class=\"report-card\">      <h3>Booking Holdings <span class=\"symbol\">(BKNG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1075531/000107553125000010/bkng-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1075531/000107553124000014/bkng-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If our Gen AI investments are not successful or our competitors are better at the deployment of Gen AI technologies longer-term, our business and financial performance could be harmed.</span></div>    </div>", "risks": "Competition", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Booking Holdings"}, {"html": "<div class=\"report-card\">      <h3>Booking Holdings <span class=\"symbol\">(BKNG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1075531/000107553125000010/bkng-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1075531/000107553124000014/bkng-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>The use of AI presents risks and challenges because in</span> <span style='color:green;'>In</span> some instances we may make use of third-party foundational models that have been pre-trained on data which may be insufficient, erroneous, stale, contain biased information, or infringe <span style='color:red;text-decoration:line-through;'>IP</span> <span style='color:green;'>intellectual property</span> rights.</div>    </div>", "risks": "Third Party", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Booking Holdings"}, {"html": "<div class=\"report-card\">      <h3>Booking Holdings <span class=\"symbol\">(BKNG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1075531/000107553125000010/bkng-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1075531/000107553124000014/bkng-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>We may not be able to defend against sophisticated cyberattacks from determined adversaries.</span> In addition, our security policies and controls may not keep pace with the <span style='color:red;text-decoration:line-through;'>continuous</span> innovation of our <span style='color:red;text-decoration:line-through;'>offerings.</span> <span style='color:green;'>offerings and technological advances of threat actors, such as leveraging AI.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Booking Holdings"}, {"html": "<div class=\"report-card\">      <h3>Booking Holdings <span class=\"symbol\">(BKNG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1075531/000107553125000010/bkng-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1075531/000107553124000014/bkng-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our existing IT business continuity and disaster recovery practices are less effective against certain types of <span style='color:red;text-decoration:line-through;'>attacks such as ransomware,</span> <span style='color:green;'>attacks,</span> which could result in interruption of our services, data exposure, and/or an extortion attempt. Reductions in the availability and response time of our online services could cause loss of substantial business volumes and measures we may take to divert suspect traffic could result in the diversion of bona fide customers. These issues are more difficult to manage during any expansion of the number of places where we operate and the variety of services we offer, and as the tools and techniques used in such <span style='color:red;text-decoration:line-through;'>attacks</span> <span style='color:green;'>attacks, such as Gen AI or similar technologies,</span> become more advanced.</div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Booking Holdings"}, {"html": "<div class=\"report-card\">      <h3>Booking Holdings <span class=\"symbol\">(BKNG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1075531/000107553125000010/bkng-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1075531/000107553124000014/bkng-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our evolving efforts to utilize Gen AI may increase risks related to harmful content, inaccuracies, bias or discrimination, intellectual property infringement or misappropriation, data privacy, cybersecurity, or other issues.</span></div>    </div>", "risks": "Bias", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Booking Holdings"}, {"html": "<div class=\"report-card\">      <h3>Booking Holdings <span class=\"symbol\">(BKNG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1075531/000107553125000010/bkng-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1075531/000107553124000014/bkng-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If our Gen AI investments are not successful or our competitors are better at the deployment of Gen AI technologies longer-term, our business and financial performance could be harmed.</span></div>    </div>", "risks": "Disillusionment", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Booking Holdings"}, {"html": "<div class=\"report-card\">      <h3>BorgWarner <span class=\"symbol\">(BWA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Automotive Parts & Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/908255/000090825525000007/bwa-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/908255/000090825524000007/bwa-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, we continually update and expand our information technology systems to enable us to run our business more efficiently, including the potential incorporation of artificial intelligence (\u201cA.I.\u201d) solutions into our information systems and processes. The increasing use and evolution of advanced technology solutions creates potential risks for loss or misuse of Company data that forms part of any data set that was collected, used, stored, or transferred to run our business. Any unintentional dissemination or intentional destruction of confidential information stored in our or our third-party providers' systems, portable media or storage devices may result in significantly increased business and security recovery costs, a damaged reputation, administrative penalties, or costs related to defending legal claims.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Consumer Discretionary", "sub": "Automotive Parts & Equipment", "company": "BorgWarner"}, {"html": "<div class=\"report-card\">      <h3>BorgWarner <span class=\"symbol\">(BWA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Automotive Parts & Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/908255/000090825525000007/bwa-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/908255/000090825524000007/bwa-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, if the content, analyses, or recommendations that A.I. programs assist in producing are or are alleged to be deficient, inaccurate, or biased, then our business, financial condition, and results of operations and our reputation may be adversely affected.</span></div>    </div>", "risks": "Bias", "sector": "Consumer Discretionary", "sub": "Automotive Parts & Equipment", "company": "BorgWarner"}, {"html": "<div class=\"report-card\">      <h3>Boston Scientific <span class=\"symbol\">(BSX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/885725/000088572525000011/bsx-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/885725/000088572524000017/bsx-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">This includes emerging technologies <span style='color:green;'>which increase our threat landscape,</span> such as generative AI <span style='color:green;'>and quantum computing,</span> which <span style='color:red;text-decoration:line-through;'>may be used by malicious actors to create more targeted phishing narratives or otherwise strengthen</span> <span style='color:green;'>are evolving rapidly in their practicality and use for cyber-attacks including through enhanced</span> social <span style='color:red;text-decoration:line-through;'>engineering capabilities, which may increase our threat landscape.</span> <span style='color:green;'>engineering, and for cyber-attacks on industry standard data protections through increased computing capabilities.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Boston Scientific"}, {"html": "<div class=\"report-card\">      <h3>Bristol Myers Squibb <span class=\"symbol\">(BMY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Pharmaceuticals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/14272/000001427225000039/bmy-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/14272/000001427224000044/bmy-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our competitors may also develop or adopt more effective AI technologies, resulting in more efficient operations and putting us at a competitive disadvantage.</span></div>    </div>", "risks": "Competition", "sector": "Health Care", "sub": "Pharmaceuticals", "company": "Bristol Myers Squibb"}, {"html": "<div class=\"report-card\">      <h3>Bristol Myers Squibb <span class=\"symbol\">(BMY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Pharmaceuticals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/14272/000001427225000039/bmy-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/14272/000001427224000044/bmy-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We are dependent on information technology <span style='color:red;text-decoration:line-through;'>systems</span> <span style='color:green;'>systems, including artificial intelligence programs,</span> and face risk of cybersecurity incidents that could disrupt our business and result in theft of <span style='color:red;text-decoration:line-through;'>proprietary</span> <span style='color:green;'>proprietary, confidential</span> and <span style='color:red;text-decoration:line-through;'>confidential</span> <span style='color:green;'>personal</span> information.</div>    </div>", "risks": "Data and IP Protection", "sector": "Health Care", "sub": "Pharmaceuticals", "company": "Bristol Myers Squibb"}, {"html": "<div class=\"report-card\">      <h3>Bristol Myers Squibb <span class=\"symbol\">(BMY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Pharmaceuticals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/14272/000001427225000039/bmy-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/14272/000001427224000044/bmy-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, we face certain risks as we seek to leverage artificial intelligence programs and machine learning (\u201cAI\u201d) to optimize productivity and efficiency in various aspects of the organization. For example, flawed algorithms and/or biased, incomplete or inaccurate data used in AI programs may result in deficient AI-generated content.</span></div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Pharmaceuticals", "company": "Bristol Myers Squibb"}, {"html": "<div class=\"report-card\">      <h3>Broadcom <span class=\"symbol\">(AVGO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1730168/000173016824000139/avgo-20241103.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1730168/000173016823000096/avgo-20231029.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">If we fail to timely develop new and enhanced products and technologies, if we focus on technologies that do not become widely adopted, or if new competitive technologies that we do not support become widely accepted, demand for our products <span style='color:green;'>such as our custom AI accelerators or XPUs and other AI-related products</span> may be reduced.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Semiconductors", "company": "Broadcom"}, {"html": "<div class=\"report-card\">      <h3>Broadcom <span class=\"symbol\">(AVGO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1730168/000173016824000139/avgo-20241103.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1730168/000173016823000096/avgo-20231029.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">The industries in which we compete are characterized by rapid technological change, <span style='color:green;'>new technological trends such as AI and cloud computing,</span> changes in customer requirements, frequent new product introductions and enhancements, short product <span style='color:red;text-decoration:line-through;'>cycles and</span> <span style='color:green;'>cycles,</span> evolving industry <span style='color:red;text-decoration:line-through;'>standards,</span> <span style='color:green;'>standards</span> and new delivery methods.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Semiconductors", "company": "Broadcom"}, {"html": "<div class=\"report-card\">      <h3>Broadcom <span class=\"symbol\">(AVGO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1730168/000173016824000139/avgo-20241103.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1730168/000173016823000096/avgo-20231029.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">In addition, <span style='color:green;'>to compete successfully in the</span> semiconductor <span style='color:red;text-decoration:line-through;'>products transition over time</span> <span style='color:green;'>industry, we must continue</span> to <span style='color:red;text-decoration:line-through;'>increasingly smaller line width geometries</span> <span style='color:green;'>develop</span> and <span style='color:red;text-decoration:line-through;'>failure</span> <span style='color:green;'>respond to technological advancements and requirements, such as low-power consumption, higher bandwidth and increase in the number of clusters. Failure</span> to successfully <span style='color:red;text-decoration:line-through;'>transition to smaller geometry process technologies</span> <span style='color:green;'>develop increasingly advanced technologies, including ASICs such as custom AI accelerators or XPUs and other AI-related products,</span> could impair our competitive position.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Semiconductors", "company": "Broadcom"}, {"html": "<div class=\"report-card\">      <h3>Broadcom <span class=\"symbol\">(AVGO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1730168/000173016824000139/avgo-20241103.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1730168/000173016823000096/avgo-20231029.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The emergence and maturation of AI capabilities may also lead to new and/or more sophisticated methods of attack, including fraud that relies upon \u201cdeep fake\u201d impersonation technology or other forms of generative automation that may scale up the efficiency or effectiveness of cyber threat activity.</span></div>    </div>", "risks": "Deepfakes; Malicious Actors", "sector": "Information Technology", "sub": "Semiconductors", "company": "Broadcom"}, {"html": "<div class=\"report-card\">      <h3>Broadridge Financial Solutions <span class=\"symbol\">(BR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Data Processing & Outsourced Services</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1383312/000138331224000039/br-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1383312/000138331223000037/br-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, some of our products, services and processes leverage machine learning and AI. The use of such technology is subject to risk and may result in insufficient or inaccurate information. These deficiencies could undermine the quality of these products and services provided to our clients, subjecting us to legal liability and reputational damage.</span></div>    </div>", "risks": "", "sector": "Industrials", "sub": "Data Processing & Outsourced Services", "company": "Broadridge Financial Solutions"}, {"html": "<div class=\"report-card\">      <h3>Brown & Brown <span class=\"symbol\">(BRO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Insurance Brokers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/79282/000095017025019039/bro-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/79282/000095017024018890/bro-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Furthermore, governance and ethical issues relating to the use of AI or RPA may also result in reputational harm, liability and/or financial losses. AI, RPA and related applications are developing rapidly. The use of these technologies by our competitors may give them a competitive advantage that cannot be predicted at this time, and it may negatively affect our assumptions regarding the competitive landscape of our business.</span></div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Insurance Brokers", "company": "Brown & Brown"}, {"html": "<div class=\"report-card\">      <h3>Brown & Brown <span class=\"symbol\">(BRO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Insurance Brokers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span><span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/79282/000095017025019039/bro-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/79282/000095017024018890/bro-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, we use artificial intelligence (\u201cAI\u201d) and robotic processing automation (\u201cRPA\u201d) in our business, including with respect to services provided to our customers. We have internal policies governing the use of AI and RPA by our employees designed to protect us from breaches of data privacy, errors and omissions liability and regulatory enforcement risk; however, our employees could violate these policies and expose us to such risks. Furthermore, our exposure to these risks may increase if our vendors, suppliers, or other third-party providers employ AI or RPA in relation to the products or services they provide to us, as we have limited control over such use in third-party products or services. These risks include the input or processing of confidential information, including material non-public information, in contravention of our policies or contractual restrictions to which any of the foregoing are subject, or in violation of applicable laws or regulations, including those relating to data protection. If any of these risks materialize, such information could become part of a dataset that is accessible by other third- party AI or RPA applications and/or users.</span></div>    </div>", "risks": "Data and IP Protection; Third Party", "sector": "Financials", "sub": "Insurance Brokers", "company": "Brown & Brown"}, {"html": "<div class=\"report-card\">      <h3>Brown & Brown <span class=\"symbol\">(BRO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Insurance Brokers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/79282/000095017025019039/bro-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/79282/000095017024018890/bro-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We also expect to be subject to a variety of laws and regulations governing AI and RPA, such as the EU AI Act, which was enacted in August 2024. These laws and regulations are still evolving, and while we are assessing how regulators may apply existing consumer protection, data protection and other similar laws to AI, there is uncertainty regarding the scope of new laws and how existing laws will apply. Due to this uncertainty, we may face challenges complying with existing and new laws, and our policies and governance frameworks may not be successful in mitigating these risks.</span></div>    </div>", "risks": "EU AI Act", "sector": "Financials", "sub": "Insurance Brokers", "company": "Brown & Brown"}, {"html": "<div class=\"report-card\">      <h3>Brown & Brown <span class=\"symbol\">(BRO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Insurance Brokers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/79282/000095017025019039/bro-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/79282/000095017024018890/bro-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Due to the impracticality of incorporating all relevant data into the models or algorithms used by AI and RPA it is inevitable that data sets within these models will contain inaccuracies and errors, and potential biases. This could potentially render such models inadequate or flawed, negatively impacting the effectiveness of the technology. We are exposed to the risks associated with these inaccuracies, errors and biases, along with the adverse impacts that such flawed models could have on our business and operations.</span></div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Insurance Brokers", "company": "Brown & Brown"}, {"html": "<div class=\"report-card\">      <h3>Brown\u2013Forman <span class=\"symbol\">(BF.B)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Distillers & Vintners</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"\" target=\"_blank\">2024</a> /          <a href=\"\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>These laws change frequently, and new legislation in this area may be enacted at any time.</span> Such laws and regulations include the California Consumer Protection Act, the California Privacy Rights Act, <span style='color:red;text-decoration:line-through;'>which took effect on January 1, 2023,</span> <span style='color:green;'>data protection</span> and <span style='color:green;'>AI regulations in</span> the European <span style='color:red;text-decoration:line-through;'>Union General Data Protection Regulation (GDPR).</span> <span style='color:green;'>Union, and other similar regulations that may change or be added to frequently.</span></div>    </div>", "risks": "", "sector": "Consumer Staples", "sub": "Distillers & Vintners", "company": "Brown\u2013Forman"}, {"html": "<div class=\"report-card\">      <h3>Bunge Global <span class=\"symbol\">(BG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Agricultural Products & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1996862/000199686225000008/bg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1996862/000199686224000007/bg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Such vulnerabilities include, among other things, social engineering threats and more sophisticated computer crime, including advanced persistent <span style='color:red;text-decoration:line-through;'>threats and</span> <span style='color:green;'>threats,</span> zero-day vulnerability <span style='color:red;text-decoration:line-through;'>exploits.</span> <span style='color:green;'>exploits, and cyberattacks utilizing emerging technologies, such as artificial intelligence (\"AI\") and machine learning.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Staples", "sub": "Agricultural Products & Services", "company": "Bunge Global"}, {"html": "<div class=\"report-card\">      <h3>Bunge Global <span class=\"symbol\">(BG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Agricultural Products & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1996862/000199686225000008/bg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1996862/000199686224000007/bg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">New technology that could result in greater operational <span style='color:red;text-decoration:line-through;'>efficiency</span> <span style='color:green;'>efficiency, such as the rapid development and increased adoption of AI technology,</span> may further expose our computer systems to the risk of <span style='color:red;text-decoration:line-through;'>cyberattacks.</span> <span style='color:green;'>cyberattacks, and may create the need for rapid modifications to our cybersecurity program.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Staples", "sub": "Agricultural Products & Services", "company": "Bunge Global"}, {"html": "<div class=\"report-card\">      <h3>Bunge Global <span class=\"symbol\">(BG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Agricultural Products & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1996862/000199686225000008/bg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1996862/000199686224000007/bg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, many of the third-party service providers we rely on use generative AI for a variety of purposes that increases the risk that our sensitive and proprietary data could be inadvertently or maliciously exposed.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Consumer Staples", "sub": "Agricultural Products & Services", "company": "Bunge Global"}, {"html": "<div class=\"report-card\">      <h3>BXP, Inc. <span class=\"symbol\">(BXP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Office REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1037540/000165642325000009/bxp-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1037540/000165642324000007/bxp-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The use of technology based on artificial intelligence and machine learning presents risks and challenges that may adversely affect our business and results of operations. We use artificial intelligence and machine learning technology (collectively, \u201cAI\u201d) capabilities with the goal of enhancing efficiencies in conducting our business. Our deployment and application of AI remains ongoing. While these AI tools hold promise in optimizing our work processes and driving efficiencies, they also present risks, challenges and unintended consequences that could adversely affect our business and results of operations or those of our clients. These include, but are not limited to: \u2022the release, leak or disclosure of proprietary, confidential, sensitive or otherwise valuable information as a result of or in connection with our use of AI tools, \u2022the incorporation of AI by our clients, vendors, contractors and other third- parties into their products or services, with or without our knowledge, in a manner that could give rise to issues pertaining to data privacy, information security and intellectual property considerations, and \u2022the evolving legal regulations relating to AI, which may require significant resources to modify and maintain business practices to comply with applicable law or otherwise result in legal or regulatory action or create additional liabilities, the nature of which cannot be determined at this time.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Real Estate", "sub": "Office REITs", "company": "BXP, Inc."}, {"html": "<div class=\"report-card\">      <h3>Cadence Design Systems <span class=\"symbol\">(CDNS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/813672/000081367225000024/cdns-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/813672/000081367224000034/cdns-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Such other companies may develop AI Technologies that are similar or superior to ours and/or are more cost-effective and/or quicker to develop, deploy and maintain. Any inability to develop, offer or deploy new AI Technologies as effectively, as quickly and/or as cost-efficiently as our competitors could have a materially adverse impact on our operating results, customer relationships and growth.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Application Software", "company": "Cadence Design Systems"}, {"html": "<div class=\"report-card\">      <h3>Cadence Design Systems <span class=\"symbol\">(CDNS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/813672/000081367225000024/cdns-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/813672/000081367224000034/cdns-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, in May 2024, the European Union approved the EU AI Act establishing a comprehensive, risk-based governance framework for AI in the EU market, the breach of which could result in fines of up to 7% of worldwide annual turnover. Additionally, existing laws and regulations may be interpreted in ways that would affect the operation of AI Technologies, or could be rescinded or amended as new administrations take differing approaches to evolving AI Technologies. As a result, implementation standards and enforcement practices are likely to remain uncertain for the foreseeable future, and we cannot yet determine the impact future laws, regulations, standards or market perception of their requirements may have on our business and may not always be able to anticipate how to respond to these laws or regulations.We cannot predict how newly instituted legislation and regulation, or the interpretation and application of existing laws and regulations, will impact our ability, or our customers' ability, to develop and offer products or services that leverage AI Technologies and the costs of doing so. We may need to expend resources to adjust our products or services in certain jurisdictions if the laws, regulations or decisions are not consistent across jurisdictions. Further, the cost to comply with such laws, regulations, decisions and/or guidance interpreting existing laws, could be significant and would increase our operating expenses (such as by imposing additional reporting obligations regarding our use of AI Technologies). Such an increase in operating expenses, as well as any actual or perceived failure to comply with such laws and regulations, could adversely affect our business, financial condition and results of operations.</span></div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Application Software", "company": "Cadence Design Systems"}, {"html": "<div class=\"report-card\">      <h3>Cadence Design Systems <span class=\"symbol\">(CDNS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/813672/000081367225000024/cdns-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/813672/000081367224000034/cdns-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, advances in technology, an increased level of sophistication and expertise of hackers, widespread access to generative AI, and new discoveries in the field of cryptography can result in a compromise or breach of our IT Systems or security measures implemented to protect our systems.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Application Software", "company": "Cadence Design Systems"}, {"html": "<div class=\"report-card\">      <h3>Cadence Design Systems <span class=\"symbol\">(CDNS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/813672/000081367225000024/cdns-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/813672/000081367224000034/cdns-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The implementation of AI Technologies may accelerate or exacerbate potential risks related to technological developments. These risks include the possibility of AI Technologies malfunctioning, producing biased or inaccurate results or failing to meet performance expectations.</span></div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Application Software", "company": "Cadence Design Systems"}, {"html": "<div class=\"report-card\">      <h3>Cadence Design Systems <span class=\"symbol\">(CDNS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/813672/000081367225000024/cdns-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/813672/000081367224000034/cdns-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We expect that increased investment will be required in the future to continuously improve our development and use of AI Technologies. Moreover, the long-term trajectory of this technological trend is unknown, and we may not be successful in our ongoing development and maintenance of AI Technologies in the face of novel and evolving technical, reputational and market factors.</span> We may incur significant costs, resources, investments, delays and not achieve a return on investment or capitalize on opportunities presented by <span style='color:red;text-decoration:line-through;'>AI.</span> <span style='color:green;'>AI, and we could incur financial losses.</span></div>    </div>", "risks": "Disillusionment", "sector": "Information Technology", "sub": "Application Software", "company": "Cadence Design Systems"}, {"html": "<div class=\"report-card\">      <h3>Cadence Design Systems <span class=\"symbol\">(CDNS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/813672/000081367225000024/cdns-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/813672/000081367224000034/cdns-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We may not realize opportunities presented by AI and may incur reputational and financial harm and liability as a result of issues in the development and use of AI.</span></div>    </div>", "risks": "Disillusionment", "sector": "Information Technology", "sub": "Application Software", "company": "Cadence Design Systems"}, {"html": "<div class=\"report-card\">      <h3>Campbell's Company (The) <span class=\"symbol\">(CPB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Packaged Foods & Meats</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/16732/000001673224000130/cpb-20240728.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/16732/000001673223000109/cpb-20230730.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We must also be able to respond successfully to technological advances (including artificial intelligence and machine learning, which may become critical in interpreting consumer preferences in the future) and intellectual property rights of our competitors, and failure to do so could compromise our competitive position and negatively impact our product sales.</span></div>    </div>", "risks": "Competition", "sector": "Consumer Staples", "sub": "Packaged Foods & Meats", "company": "Campbell's Company (The)"}, {"html": "<div class=\"report-card\">      <h3>Campbell's Company (The) <span class=\"symbol\">(CPB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Packaged Foods & Meats</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/16732/000001673224000130/cpb-20240728.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/16732/000001673223000109/cpb-20230730.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Our failure to obtain or adequately protect our intellectual <span style='color:red;text-decoration:line-through;'>property</span> <span style='color:green;'>property, including in response to developing artificial intelligence technologies,</span> or any change in law that lessens or removes the current legal protections of our intellectual property may diminish our competitiveness and adversely affect our business and financial results.</div>    </div>", "risks": "Data and IP Protection", "sector": "Consumer Staples", "sub": "Packaged Foods & Meats", "company": "Campbell's Company (The)"}, {"html": "<div class=\"report-card\">      <h3>Capital One <span class=\"symbol\">(COF)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Consumer Finance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/927628/000092762825000092/cof-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/927628/000092762824000094/cof-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Furthermore, because AI technology itself is highly complex and rapidly developing, it is not possible to predict all of the legal, <span style='color:red;text-decoration:line-through;'>operational</span> <span style='color:green;'>operational, competitive</span> or technological risks that may arise relating to the use of AI.</div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Consumer Finance", "company": "Capital One"}, {"html": "<div class=\"report-card\">      <h3>Capital One <span class=\"symbol\">(COF)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Consumer Finance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/927628/000092762825000092/cof-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/927628/000092762824000094/cof-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Also, our competitors or other third parties may incorporate AI into their products or services more quickly or more successfully than we do, which could impair our ability to compete effectively.</span></div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Consumer Finance", "company": "Capital One"}, {"html": "<div class=\"report-card\">      <h3>Capital One <span class=\"symbol\">(COF)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Consumer Finance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/927628/000092762825000092/cof-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/927628/000092762824000094/cof-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Credit and debit card fraud, identity theft and electronic- transaction related crimes are prevalent and perpetrators are growing ever more sophisticated. Emerging generative AI capabilities, such as synthetic voice and conversation generation, introduced an increase in fraud risks, especially in the form of identity fraud.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Consumer Finance", "company": "Capital One"}, {"html": "<div class=\"report-card\">      <h3>Capital One <span class=\"symbol\">(COF)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Consumer Finance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/927628/000092762825000092/cof-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/927628/000092762824000094/cof-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Technologies, systems, networks and other devices of Capital One, as well as those of our employees, service providers, partners and other third parties with whom we interact, have been and may continue to be the subject of cyber- attacks and other security incidents, including computer viruses, hacking, malware, ransomware, <span style='color:green;'>denial of service attacks,</span> supply chain attacks, <span style='color:green;'>exploitation of</span> vulnerabilities, credential stuffing, account takeovers, insider threats, business email compromise scams or <span style='color:red;text-decoration:line-through;'>phishing</span> <span style='color:green;'>the use of phishing, vishing (through voice messages), smishing (through SMS text), \u201cdeep fakes\u201d,</span> or other forms of social engineering.</div>    </div>", "risks": "Deepfakes; Malicious Actors", "sector": "Financials", "sub": "Consumer Finance", "company": "Capital One"}, {"html": "<div class=\"report-card\">      <h3>Capital One <span class=\"symbol\">(COF)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Consumer Finance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/927628/000092762825000092/cof-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/927628/000092762824000094/cof-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>If</span> <span style='color:green;'>Accordingly, if</span> the models or AI solutions that we create or <span style='color:red;text-decoration:line-through;'>use</span> <span style='color:green;'>use, or if the content, analyses or recommendations that models or AI solutions assist in producing in our products and services, are, or</span> are <span style='color:green;'>perceived to be</span> deficient, <span style='color:red;text-decoration:line-through;'>inaccurate</span> <span style='color:green;'>inaccurate, biased, unethical</span> or controversial, we could incur operational inefficiencies, competitive harm, legal liability, brand or reputational harm, or other adverse impacts on our business and financial results.</div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Consumer Finance", "company": "Capital One"}, {"html": "<div class=\"report-card\">      <h3>Capital One <span class=\"symbol\">(COF)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Consumer Finance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/927628/000092762825000092/cof-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/927628/000092762824000094/cof-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">However, there are significant risks involved in utilizing models and AI and no assurance can be provided that our use will <span style='color:green;'>enhance our business or</span> produce only intended or beneficial results.</div>    </div>", "risks": "Disillusionment", "sector": "Financials", "sub": "Consumer Finance", "company": "Capital One"}, {"html": "<div class=\"report-card\">      <h3>Cardinal Health <span class=\"symbol\">(CAH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Distributors</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/721371/000072137124000056/cah-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/721371/000072137123000060/cah-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>These initiatives, transitions, and improvements require an ongoing commitment of resources.</span> If any of these initiatives or similar <span style='color:red;text-decoration:line-through;'>initiatives</span> <span style='color:green;'>initiatives, including those related to artificial intelligence and machine learning,</span> are not successfully or efficiently implemented or maintained, or if our relationship with critical third-party service providers deteriorates, we could experience <span style='color:red;text-decoration:line-through;'>material</span> negative impacts on our <span style='color:red;text-decoration:line-through;'>business</span> <span style='color:green;'>business, financial results</span> and our internal control over financial reporting.</div>    </div>", "risks": "", "sector": "Health Care", "sub": "Health Care Distributors", "company": "Cardinal Health"}, {"html": "<div class=\"report-card\">      <h3>CarMax <span class=\"symbol\">(KMX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Automotive Retail</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1170010/000117001025000024/kmx-20250228.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1170010/000117001024000034/kmx-20240229.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We have made a considerable investment in our omni-channel <span style='color:red;text-decoration:line-through;'>platform and a</span> <span style='color:green;'>platform, as well as investments in initiatives designed to leverage evolving technologies, including AI. A</span> failure to capture the benefits that we expect from the platform <span style='color:green;'>or these initiatives</span> and our continued investments in enhancements to the platform <span style='color:green;'>or in these initiatives</span> could have a material adverse effect on our business, sales and results of operations.</div>    </div>", "risks": "Disillusionment", "sector": "Consumer Discretionary", "sub": "Automotive Retail", "company": "CarMax"}, {"html": "<div class=\"report-card\">      <h3>Carnival <span class=\"symbol\">(CCL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/815097/000081509725000007/ccl-20241130.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/815097/000081509724000011/ccl-20231130.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Breach or circumvention of our systems or the systems of third parties, including by ransomware or malware, through vulnerabilities in licensed software or hardware, <span style='color:green;'>generative artificial intelligence (\u201cAI\u201d) impersonation, targeted and coordinated attacks of our systems</span> or as a result of other attacks, <span style='color:red;text-decoration:line-through;'>has</span> <span style='color:green;'>have</span> led to and may continue to lead to disruptions in our business operations; unauthorized access to (or the loss of company access to) competitively sensitive, confidential or other critical data (including sensitive financial, medical or other personal or business information) or systems; loss of customers; financial losses; regulatory investigations, enforcement <span style='color:red;text-decoration:line-through;'>actions</span> <span style='color:green;'>actions, fines</span> and <span style='color:red;text-decoration:line-through;'>fines;</span> <span style='color:green;'>penalties;</span> litigation; reputational damage; and misuse or corruption of critical data and proprietary information, any of which could be material.</div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Carnival"}, {"html": "<div class=\"report-card\">      <h3>Cboe Global Markets <span class=\"symbol\">(CBOE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1374310/000162828025006984/cboe-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1374310/000155837024001277/cboe-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The secure and reliable operation of our technology, including our computer systems and communications networks, and those of our service providers, market participants, investments, and other third parties, is a critical element of our operations or our business, financial condition or operating results. These systems and networks may be subject to various cybersecurity incidents such as improper or inadvertent access to or disclosure of confidential, commercially sensitive, or personally identifiable information, data theft, corruption or destruction, ransomware, supply chain attack, denial of service attack, malware and other security problems, as well as acts of terrorism, attacks by threat actors including criminal groups, political activist groups and nation-state actors, attacks in connection with geopolitical activity such as the conflicts in Eastern Europe and the Middle East, criminal insider activity, employee error, <span style='color:green;'>and</span> service provider, market participant or third-party disruptions or security <span style='color:red;text-decoration:line-through;'>breaches and other events that are beyond our control.</span> <span style='color:green;'>breaches.</span> Additionally, cyber threats and the techniques used in cyberattacks change, develop and evolve rapidly, including from emerging technologies, such as advanced forms of artificial intelligence (\u201cAI\u201d) and quantum computing. Our <span style='color:red;text-decoration:line-through;'>increased adoption of remote working,</span> <span style='color:green;'>hybrid work environment,</span> usage of <span style='color:red;text-decoration:line-through;'>mobile</span> <span style='color:green;'>mobile, AI</span> and cloud-based technologies and amount of newly acquired companies and related integrations may increase our risk for a cybersecurity incident. Moreover, given our position in the global financial services industry and as critical infrastructure, we may be more likely than other companies to be a direct target, or an indirect casualty, of such events. While we have experienced in the past, and we expect to continue to experience, cybersecurity threats and events of varying degrees, <span style='color:green;'>including events impacting personally identifiable information,</span> we are not aware of any of these threats or events having a material impact on our business, financial condition or operating results to date, however we cannot assure you that we will not experience future threats or events that may be material.</div>    </div>", "risks": "", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "Cboe Global Markets"}, {"html": "<div class=\"report-card\">      <h3>CBRE Group <span class=\"symbol\">(CBRE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Real Estate Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Skills'>Skills</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1138118/000113811825000005/cbre-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1138118/000113811824000006/cbre-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Implementation of such investments in information <span style='color:red;text-decoration:line-through;'>technology</span> <span style='color:green;'>technology, including generative AI tools, could be complicated, heavily dependent on the quality, accuracy and relevance of data inputs and methodologies, require sophisticated infrastructure and skilled talent, have ethical and societal implications, and</span> could exceed estimated <span style='color:red;text-decoration:line-through;'>budgets and we</span> <span style='color:green;'>budgets.</span></div>    </div>", "risks": "Skills", "sector": "Real Estate", "sub": "Real Estate Services", "company": "CBRE Group"}, {"html": "<div class=\"report-card\">      <h3>CDW Corporation <span class=\"symbol\">(CDW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Distributors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span><span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span><span class='risk-tag' title='Risk: Skills'>Skills</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1402057/000140205725000018/cdw-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1402057/000140205724000015/cdw-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, the development, adoption and use of AI by us or our vendor partners could result in unintended consequences, including exposing us to additional risks related to cybersecurity, privacy and data security, such as the risk of increased vulnerability to cybersecurity threats and exposure or theft of proprietary or sensitive information (which could result in such information being made available to our competitors and other members of the public), impacts to the stability of our operations, the generation of factually incorrect or biased outputs, reliance on outdated or unverified data, potential intellectual property infringements, the inability to protect generated content while facing unfavorable licensing terms and the inability to attract and retain key personnel.</span></div>    </div>", "risks": "Bias; Data and IP Protection; Skills", "sector": "Information Technology", "sub": "Technology Distributors", "company": "CDW Corporation"}, {"html": "<div class=\"report-card\">      <h3>CDW Corporation <span class=\"symbol\">(CDW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Distributors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1402057/000140205725000018/cdw-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1402057/000140205724000015/cdw-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We expect the competitive landscape to continue to evolve as new technologies and consumption models emerge, such as cloud-based and other \u201cas a service\u201d solutions, hyper-converged <span style='color:red;text-decoration:line-through;'>infrastructure and</span> <span style='color:green;'>infrastructure,</span> embedded software <span style='color:red;text-decoration:line-through;'>solutions.</span> <span style='color:green;'>solutions and solutions that incorporate artificial intelligence.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Technology Distributors", "company": "CDW Corporation"}, {"html": "<div class=\"report-card\">      <h3>CDW Corporation <span class=\"symbol\">(CDW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Distributors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1402057/000140205725000018/cdw-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1402057/000140205724000015/cdw-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, as AI continues to evolve, malicious actors could use AI to enhance the sophistication and coordination of their attacks, which could pose significant challenges to our security defenses.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Technology Distributors", "company": "CDW Corporation"}, {"html": "<div class=\"report-card\">      <h3>Celanese <span class=\"symbol\">(CE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Specialty Chemicals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1306830/000130683025000027/ce-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1306830/000130683024000029/ce-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Artificial intelligence technologies may also be used by adversaries to enable new or augment existing attack techniques, tactics and protocols.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Materials", "sub": "Specialty Chemicals", "company": "Celanese"}, {"html": "<div class=\"report-card\">      <h3>Celanese <span class=\"symbol\">(CE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Specialty Chemicals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1306830/000130683025000027/ce-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1306830/000130683024000029/ce-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, the rapid evolution and increased adoption of artificial intelligence technologies may intensify our cybersecurity risks.</span> Many tools and resources we use integrate or will integrate some form of artificial intelligence, which has the potential to result in bias, miscalculations, data errors, intellectual property infringement and other unintended consequences.</div>    </div>", "risks": "Bias", "sector": "Materials", "sub": "Specialty Chemicals", "company": "Celanese"}, {"html": "<div class=\"report-card\">      <h3>Centene Corporation <span class=\"symbol\">(CNC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Managed Health Care</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1071739/000107173925000027/cnc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1071739/000107173924000037/cnc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Industry shifts could result (and have resulted) from, among other things: \u2022a large intra- or inter-industry merger or industry consolidation; \u2022strategic alliances; \u2022change in broker distribution channels and requirements; \u2022continuing consolidation among physicians, hospitals and other health care providers, as well as changes in the organizational structures chosen by physicians, hospitals and health care providers; <span style='color:red;text-decoration:line-through;'>and</span> \u2022new market entrants, including those not traditionally in the health service <span style='color:red;text-decoration:line-through;'>industry.</span> <span style='color:green;'>industry; and \u2022innovations in technology in the health service industry, including the use of artificial intelligence and machine learning.</span></div>    </div>", "risks": "Competition", "sector": "Health Care", "sub": "Managed Health Care", "company": "Centene Corporation"}, {"html": "<div class=\"report-card\">      <h3>Centene Corporation <span class=\"symbol\">(CNC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Managed Health Care</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1071739/000107173925000027/cnc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1071739/000107173924000037/cnc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In some instances we may make use of third-party foundational models that have been pre-trained on data which may be insufficient, erroneous, stale, contain biased information, or infringe intellectual property rights.</span></div>    </div>", "risks": "Third Party", "sector": "Health Care", "sub": "Managed Health Care", "company": "Centene Corporation"}, {"html": "<div class=\"report-card\">      <h3>Centene Corporation <span class=\"symbol\">(CNC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Managed Health Care</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1071739/000107173925000027/cnc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1071739/000107173924000037/cnc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, the rapid evolution and increased adoption of artificial intelligence technologies may intensify these risks by making such security breaches more difficult to detect, contain or mitigate.</span> Any security breach could result in the misappropriation, loss or other unauthorized access, disclosure or use of confidential member information, including personal information, financial data, competitively sensitive information or other proprietary data, whether by us or a third party, and could have a material adverse effect on our business reputation, financial condition, cash flows or results of operations.</div>    </div>", "risks": "Malicious Actors", "sector": "Health Care", "sub": "Managed Health Care", "company": "Centene Corporation"}, {"html": "<div class=\"report-card\">      <h3>Centene Corporation <span class=\"symbol\">(CNC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Managed Health Care</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1071739/000107173925000027/cnc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1071739/000107173924000037/cnc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, as connectivity of technology advances, artificial intelligence and business processes supported by large language models that are used by us, our healthcare providers, our brokers, or our third-party vendors may not operate as expected or may give rise to risks related to accuracy, bias, discrimination, intellectual property infringement, cybersecurity and data privacy, among others.</span></div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Managed Health Care", "company": "Centene Corporation"}, {"html": "<div class=\"report-card\">      <h3>Centene Corporation <span class=\"symbol\">(CNC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Managed Health Care</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1071739/000107173925000027/cnc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1071739/000107173924000037/cnc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>To the extent that we rely on or use the output of artificial intelligence, any inaccuracies, biases or errors could have unfavorable impacts on us, our business and our results of operations or financial condition.</span></div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Managed Health Care", "company": "Centene Corporation"}, {"html": "<div class=\"report-card\">      <h3>CenterPoint Energy <span class=\"symbol\">(CNP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Multi-Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Energy'>Energy</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1130310/000113031025000040/cnp-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1130310/000113031024000010/cnp-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, our operations are affected by new customers and load growth. For example, the expansion of data centers (associated with, among other things, increasing demand for artificial intelligence), energy export facilities, including hydrogen facilities, electrification of industrial processes and transport and logistics, among others, could lead to an unprecedented increase in demand for electric power in our service territories. As we evaluate business opportunities presented by such development in our service territories, we are subject to potential challenges including accurately predicting future power needs due to rapidly changing technology and market dynamics, managing the potential power demand, generation sources, and transmission capabilities to meet potential load growth, financing the capital investment needed to build and maintain the necessary infrastructure to support such development, managing the possible environmental impact of the potential increased power demand, achieving our net zero and GHG emissions reduction goals and evaluating and complying with evolving regulations related to such development.</span></div>    </div>", "risks": "Energy", "sector": "Utilities", "sub": "Multi-Utilities", "company": "CenterPoint Energy"}, {"html": "<div class=\"report-card\">      <h3>CenterPoint Energy <span class=\"symbol\">(CNP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Multi-Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1130310/000113031025000040/cnp-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1130310/000113031024000010/cnp-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">\u2022information technology <span style='color:green;'>failure, including</span> failure <span style='color:green;'>of AI technology,</span> that affects our ability to access customer information or causes us to lose confidential or proprietary data that adversely affects our reputation or exposes us to legal claims;</div>    </div>", "risks": "Data and IP Protection", "sector": "Utilities", "sub": "Multi-Utilities", "company": "CenterPoint Energy"}, {"html": "<div class=\"report-card\">      <h3>CenterPoint Energy <span class=\"symbol\">(CNP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Multi-Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1130310/000113031025000040/cnp-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1130310/000113031024000010/cnp-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For example, our AI-related efforts may give rise to risks related to harmful content, accuracy, bias, discrimination, <span style='color:red;text-decoration:line-through;'>toxicity,</span> intellectual property infringement or misappropriation, defamation, data privacy, and cybersecurity, among others.</div>    </div>", "risks": "Bias", "sector": "Utilities", "sub": "Multi-Utilities", "company": "CenterPoint Energy"}, {"html": "<div class=\"report-card\">      <h3>CenterPoint Energy <span class=\"symbol\">(CNP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Multi-Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1130310/000113031025000040/cnp-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1130310/000113031024000010/cnp-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">There are significant risks involved in developing and deploying AI, and <span style='color:red;text-decoration:line-through;'>there can be no assurance</span> <span style='color:green;'>ineffective or inadequate development or deployment of AI practices by us or our third-parties (vendors, suppliers, and contractors) could result in unintended consequences. We contract with third-parties</span> that <span style='color:green;'>use AI in products and services they provide and we may not have full control or visibility over the quality, performance, security or compliance of the products and services that incorporate AI-related technology. Additionally,</span> the use of AI <span style='color:red;text-decoration:line-through;'>will</span> <span style='color:green;'>may not</span> enhance our services or be beneficial to our business, including with respect to the efficiency and resiliency of our systems.</div>    </div>", "risks": "Disillusionment", "sector": "Utilities", "sub": "Multi-Utilities", "company": "CenterPoint Energy"}, {"html": "<div class=\"report-card\">      <h3>Charles River Laboratories <span class=\"symbol\">(CRL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Life Sciences Tools & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1100682/000110068225000011/crl-20241228.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1100682/000110068224000007/crl-20231230.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>These threats also may be further enhanced in frequency or effectiveness through threat actors\u2019 use of artificial intelligence technologies, which are becoming more widely adopted and increasingly sophisticated.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Health Care", "sub": "Life Sciences Tools & Services", "company": "Charles River Laboratories"}, {"html": "<div class=\"report-card\">      <h3>Chipotle Mexican Grill <span class=\"symbol\">(CMG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Restaurants</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1058090/000105809025000014/cmg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1058090/000156276224000023/cmg-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Unauthorized access, theft, use, destruction or other compromises are becoming increasingly sophisticated and may occur through a variety of methods, including attacks using malicious code, vulnerabilities in software, hardware or other infrastructure (including systems used by our supply chain), system misconfigurations, <span style='color:red;text-decoration:line-through;'>phishing</span> <span style='color:green;'>phishing, deepfakes, ransomware, malware</span> or social engineering.</div>    </div>", "risks": "Deepfakes; Malicious Actors", "sector": "Consumer Discretionary", "sub": "Restaurants", "company": "Chipotle Mexican Grill"}, {"html": "<div class=\"report-card\">      <h3>Chubb Limited <span class=\"symbol\">(CB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Property & Casualty Insurance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/896159/000089615925000004/cb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/896159/000089615924000003/cb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The European Parliament and European Council have also promulgated the European Union Artificial Intelligence Act, which will regulate the use of AI within the European Union.</span> The application of existing law and introduction of new or revised laws and regulations may require changes in our <span style='color:red;text-decoration:line-through;'>operations and</span> <span style='color:green;'>operations,</span> increase compliance <span style='color:red;text-decoration:line-through;'>costs.</span> <span style='color:green;'>costs and reduce benefits from our adoption of artificial intelligence technologies.</span></div>    </div>", "risks": "EU AI Act", "sector": "Financials", "sub": "Property & Casualty Insurance", "company": "Chubb Limited"}, {"html": "<div class=\"report-card\">      <h3>Chubb Limited <span class=\"symbol\">(CB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Property & Casualty Insurance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/896159/000089615925000004/cb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/896159/000089615924000003/cb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The rapid evolution and increased adoption of artificial intelligence technologies may intensify our cybersecurity risks, which include the deployment of artificial intelligence by bad actors intent on finding and exploiting vulnerabilities, use of \"deep fakes,\" and long-term persistent attacks.</div>    </div>", "risks": "Deepfakes", "sector": "Financials", "sub": "Property & Casualty Insurance", "company": "Chubb Limited"}, {"html": "<div class=\"report-card\">      <h3>Chubb Limited <span class=\"symbol\">(CB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Property & Casualty Insurance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/896159/000089615925000004/cb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/896159/000089615924000003/cb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Regulatory standards relating to the use of artificial intelligence <span style='color:green;'>(AI)</span> are evolving in the countries where we do business, and may increase risks associated with bias, unfair discrimination, transparency, and information security.</div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Property & Casualty Insurance", "company": "Chubb Limited"}, {"html": "<div class=\"report-card\">      <h3>Church & Dwight <span class=\"symbol\">(CHD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Household Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/313927/000095017025019801/chd-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/313927/000095017024015810/chd-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Increased information technology security threats and more sophisticated computer crime, including <span style='color:red;text-decoration:line-through;'>ransomware,</span> <span style='color:green;'>ransomware attacks, misuse of artificial intelligence and machine learning technologies,</span> denial of service and phishing attacks and advanced persistent threats, pose a potential risk to the security of our information technology systems, networks, and services, and those of our customers and other business partners, as well as the confidentiality, availability, and integrity of our data, and the data of our customers and other business partners.</div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Staples", "sub": "Household Products", "company": "Church & Dwight"}, {"html": "<div class=\"report-card\">      <h3>Church & Dwight <span class=\"symbol\">(CHD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Household Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/313927/000095017025019801/chd-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/313927/000095017024015810/chd-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, the use of generative artificial intelligence tools may compromise confidential or sensitive information, put the Company\u2019s intellectual property at risk, or subject the Company to claims of intellectual property infringement, all of which could damage the Company's reputation.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Consumer Staples", "sub": "Household Products", "company": "Church & Dwight"}, {"html": "<div class=\"report-card\">      <h3>Church & Dwight <span class=\"symbol\">(CHD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Household Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/313927/000095017025019801/chd-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/313927/000095017024015810/chd-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, the legal, regulatory and ethical landscape around the use of artificial intelligence and machine learning is rapidly evolving. The Company\u2019s ability to timely adopt to and adapt this emerging technology in an effective and ethical manner may impact its reputation and ability to compete, and this technology could be, among other things, false, biased, or inconsistent with the Company\u2019s values and strategies.</span></div>    </div>", "risks": "Bias", "sector": "Consumer Staples", "sub": "Household Products", "company": "Church & Dwight"}, {"html": "<div class=\"report-card\">      <h3>Cigna <span class=\"symbol\">(CI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Services</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1739940/000173994025000009/ci-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1739940/000173994024000005/ci-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our use of AI/ML technologies <span style='color:green;'>has resulted in and</span> could <span style='color:red;text-decoration:line-through;'>also</span> <span style='color:green;'>continue to</span> result in additional compliance costs, regulatory investigations and actions, and <span style='color:red;text-decoration:line-through;'>consumer or other</span> lawsuits.</div>    </div>", "risks": "", "sector": "Health Care", "sub": "Health Care Services", "company": "Cigna"}, {"html": "<div class=\"report-card\">      <h3>Cigna <span class=\"symbol\">(CI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Litigation'>Litigation</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1739940/000173994025000009/ci-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1739940/000173994024000005/ci-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, we are currently subject to litigation claiming that we improperly used AI in the claims evaluation process.</span></div>    </div>", "risks": "Litigation", "sector": "Health Care", "sub": "Health Care Services", "company": "Cigna"}, {"html": "<div class=\"report-card\">      <h3>Cigna <span class=\"symbol\">(CI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1739940/000173994025000009/ci-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1739940/000173994024000005/ci-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">To the extent that we rely on or use the output of AI/ML, any inaccuracies, biases or errors could have unfavorable impacts on us, our <span style='color:red;text-decoration:line-through;'>business</span> <span style='color:green;'>business,</span> and our results of operations or financial condition.</div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Health Care Services", "company": "Cigna"}, {"html": "<div class=\"report-card\">      <h3>Cintas <span class=\"symbol\">(CTAS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Diversified Support Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/723254/000072325424000036/ctas-20240531.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/723254/000072325423000025/ctas-20230531.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Cyber-security attacks are evolving, and cybercriminals have increasingly demonstrated advanced capabilities, such as zero-day vulnerabilities and rapid integration of new technology such as generative artificial intelligence.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Industrials", "sub": "Diversified Support Services", "company": "Cintas"}, {"html": "<div class=\"report-card\">      <h3>Cintas <span class=\"symbol\">(CTAS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Diversified Support Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/723254/000072325424000036/ctas-20240531.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/723254/000072325423000025/ctas-20230531.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI could disrupt certain aspects of our business and evolve use of technology in ways that are not yet known. If we are not able to adapt and effectively incorporate potential advantages of AI in our business, it may negatively impact our ability to compete. On the other hand, if we are not able to effectively manage the risks of AI, including the potential for poor or inconsistent quality, privacy concerns, risks related to automated decision-making, and the potential for exposure of confidential and/or propriety information, we may suffer harm to our consolidated results of operations and reputation.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Industrials", "sub": "Diversified Support Services", "company": "Cintas"}, {"html": "<div class=\"report-card\">      <h3>Cisco <span class=\"symbol\">(CSCO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Communications Equipment</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/858877/000085887724000017/csco-20240727.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/858877/000085887723000023/csco-20230729.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">AI presents <span style='color:red;text-decoration:line-through;'>risks, challenges,</span> <span style='color:green;'>risks</span> and <span style='color:green;'>challenges and may result in</span> unintended consequences that could affect <span style='color:green;'>its further development or</span> our and our customers\u2019 adoption and use of this technology.</div>    </div>", "risks": "", "sector": "Information Technology", "sub": "Communications Equipment", "company": "Cisco"}, {"html": "<div class=\"report-card\">      <h3>Citigroup <span class=\"symbol\">(C)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Diversified Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/831001/000083100125000067/c-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Further, <span style='color:green;'>the introduction of mobile platforms and emerging technologies, such as artificial intelligence (AI) and digital assets, and</span> changes in the payments space (e.g., instant and <span style='color:red;text-decoration:line-through;'>24x7</span> <span style='color:green;'>24/7</span> payments) are accelerating, and, as a result, certain of Citi\u2019s products and services could become less competitive.</div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Diversified Banks", "company": "Citigroup"}, {"html": "<div class=\"report-card\">      <h3>Citigroup <span class=\"symbol\">(C)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Diversified Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/831001/000083100125000067/c-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>While Citi has policies which govern the use of emerging technologies, ineffective, inadequate or faulty Generative AI development or deployment practices by Citi or third parties could result in unintended consequences, such as AI algorithms that produce inaccurate or incomplete output or output based on biased, incomplete and/or inaccurate datasets, or cause other issues, concerns or deficiencies. Moreover, the use of increasingly sophisticated AI technologies by malicious actors and others has increased the risk of fraud, including identity theft and bypassing of verification controls, and failure to effectively manage such risks could result in misappropriation of funds, unauthorized transactions, exposure of sensitive client or Company information, reputational harm and increased litigation and regulatory risk.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Diversified Banks", "company": "Citigroup"}, {"html": "<div class=\"report-card\">      <h3>Citigroup <span class=\"symbol\">(C)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Diversified Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/831001/000083100125000067/c-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>While Citi has policies which govern the use of emerging technologies, ineffective, inadequate or faulty Generative AI development or deployment practices by Citi or third parties could result in unintended consequences, such as AI algorithms that produce inaccurate or incomplete output or output based on biased, incomplete and/or inaccurate datasets, or cause other issues, concerns or deficiencies.</span></div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Diversified Banks", "company": "Citigroup"}, {"html": "<div class=\"report-card\">      <h3>Citizens Financial Group <span class=\"symbol\">(CFG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Regional Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/759944/000075994425000013/cfg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/759944/000075994424000039/cfg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>Consumers can also complete transactions such as paying bills and/or transferring funds directly without the assistance of banks.</span> In addition, the emergence, adoption and evolution of new technologies that do not require intermediation, including distributed ledgers such as digital assets and blockchain, as well as advances in <span style='color:red;text-decoration:line-through;'>robotic process</span> automation, <span style='color:green;'>artificial intelligence and robotics,</span> could significantly affect the competition for financial services.</div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Regional Banks", "company": "Citizens Financial Group"}, {"html": "<div class=\"report-card\">      <h3>Citizens Financial Group <span class=\"symbol\">(CFG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Regional Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/759944/000075994425000013/cfg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/759944/000075994424000039/cfg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Evolving <span style='color:red;text-decoration:line-through;'>technologies</span> <span style='color:green;'>technologies, including the introduction of Generative Artificial Intelligence and Large Language Models,</span> and the increased sophistication and activities of organized crime, hackers, terrorists, nation-states, activists and other external parties present a significant information security risk to large financial institutions such as us.</div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Regional Banks", "company": "Citizens Financial Group"}, {"html": "<div class=\"report-card\">      <h3>Clorox <span class=\"symbol\">(CLX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Household Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/21076/000002107624000030/clx-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/21076/000002107623000037/clx-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The rapid evolution and increased adoption of emerging technologies, such as artificial intelligence, may also increase the frequency and magnitude of cyberattacks on the Company and amplify its cybersecurity risks.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Staples", "sub": "Household Products", "company": "Clorox"}, {"html": "<div class=\"report-card\">      <h3>Clorox <span class=\"symbol\">(CLX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Household Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/21076/000002107624000030/clx-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/21076/000002107623000037/clx-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">The <span style='color:red;text-decoration:line-through;'>Company\u2019s information</span> <span style='color:green;'>IT/OT systems of the Company, its customers, business partners, suppliers,</span> and <span style='color:red;text-decoration:line-through;'>operational technology systems and its</span> third-party <span style='color:red;text-decoration:line-through;'>providers\u2019 systems,</span> <span style='color:green;'>providers</span> have been, and will <span style='color:red;text-decoration:line-through;'>likely</span> continue to be, subject to cyber-threats such as computer viruses or other malicious codes, <span style='color:green;'>security breaches,</span> ransomware, unauthorized access attempts, business email compromise, cyber extortion, denial of service attacks, phishing, <span style='color:green;'>deepfakes,</span> social engineering, <span style='color:green;'>unintentional or malicious actions of employees or contractors,</span> hacking and other cyberattacks attempting to exploit <span style='color:red;text-decoration:line-through;'>vulnerabilities.</span> <span style='color:green;'>vulnerabilities by hackers, criminal groups, nation-states and nation-state-sponsored organizations and social-activist organizations.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Staples", "sub": "Household Products", "company": "Clorox"}, {"html": "<div class=\"report-card\">      <h3>Clorox <span class=\"symbol\">(CLX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Household Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/21076/000002107624000030/clx-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/21076/000002107623000037/clx-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Cyber-threats and techniques</span> are becoming more <span style='color:red;text-decoration:line-through;'>sophisticated,</span> <span style='color:green;'>sophisticated and</span> are constantly <span style='color:red;text-decoration:line-through;'>evolving</span> <span style='color:green;'>evolving, including through the use of emerging technologies such as artificial intelligence,</span> and are being made by groups and individuals with a wide range of expertise and motives, and this increases the difficulty of detecting and successfully defending against them.</div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Staples", "sub": "Household Products", "company": "Clorox"}, {"html": "<div class=\"report-card\">      <h3>Clorox <span class=\"symbol\">(CLX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Household Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/21076/000002107624000030/clx-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/21076/000002107623000037/clx-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>Despite</span> <span style='color:green;'>The IT/OT systems of</span> the <span style='color:red;text-decoration:line-through;'>security measures the Company has in place, the information</span> <span style='color:green;'>Company, its customers, business partners, suppliers,</span> and <span style='color:red;text-decoration:line-through;'>operational technology systems, including those of our customers, vendors, suppliers</span> <span style='color:green;'>third-party providers have been,</span> and <span style='color:red;text-decoration:line-through;'>other third-party service providers with whom we have contracted, have, in the past, and may, in the future, be vulnerable</span> <span style='color:green;'>will continue to be, subject</span> to cyber-threats such as computer viruses or other malicious codes, security breaches, <span style='color:green;'>ransomware,</span> unauthorized <span style='color:red;text-decoration:line-through;'>access, phishing attacks and other disruptions from employee error, unauthorized uses, system failures, including Internet outages,</span> <span style='color:green;'>access attempts, business email compromise, cyber extortion, denial of service attacks, phishing, deepfakes, social engineering,</span> unintentional or malicious actions of employees or <span style='color:red;text-decoration:line-through;'>contractors or cyber-attacks</span> <span style='color:green;'>contractors, hacking and other cyberattacks attempting to exploit vulnerabilities</span> by hackers, criminal groups, nation-states and nation-state-sponsored organizations and social-activist organizations.</div>    </div>", "risks": "Deepfakes", "sector": "Consumer Staples", "sub": "Household Products", "company": "Clorox"}, {"html": "<div class=\"report-card\">      <h3>Clorox <span class=\"symbol\">(CLX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Household Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/21076/000002107624000030/clx-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/21076/000002107623000037/clx-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The Company\u2019s ability to adopt this emerging technology in an effective and ethical manner may impact its reputation and ability to compete, and this technology could be, among other things, false, biased, or inconsistent with the Company\u2019s values and strategies. Further, the use of generative artificial intelligence tools may compromise confidential or sensitive information, put the Company\u2019s intellectual property at risk, or subject the Company to claims of intellectual property infringement, all of which could damage the Company's reputation.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Consumer Staples", "sub": "Household Products", "company": "Clorox"}, {"html": "<div class=\"report-card\">      <h3>Clorox <span class=\"symbol\">(CLX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Household Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/21076/000002107624000030/clx-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/21076/000002107623000037/clx-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The Company\u2019s ability to adopt this emerging technology in an effective and ethical manner may impact its reputation and ability to compete, and this technology could be, among other things, false, biased, or inconsistent with the Company\u2019s values and strategies.</span></div>    </div>", "risks": "Bias", "sector": "Consumer Staples", "sub": "Household Products", "company": "Clorox"}, {"html": "<div class=\"report-card\">      <h3>CME Group <span class=\"symbol\">(CME)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1156375/000115637525000021/cme-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1156375/000115637524000010/cme-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our competitors may: \u2022respond more quickly to competitive pressures and opportunities, including responses based upon their corporate governance structures, which may be more flexible and efficient than our corporate governance structure; \u2022develop products that are preferred by our customers compared to those offered by CME Group; \u2022develop risk transfer products that compete with our products; \u2022price their products and services more competitively; \u2022develop and expand their network infrastructure and service offerings more efficiently; \u2022utilize better, more user-friendly or more reliable <span style='color:red;text-decoration:line-through;'>technology;</span> <span style='color:green;'>technology, including artificial intelligence;</span> \u2022take greater advantage of acquisitions, alliances and other opportunities that provide a competitive advantage; \u2022more effectively market, promote and sell their products and services; \u2022better leverage existing relationships with customers and alliance partners or exploit better recognized brand names to market and sell their services; or \u2022exploit regulatory disparities between traditional, regulated exchanges and alternative markets that benefit from a reduced regulatory burden and lower- cost business model.</div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "CME Group"}, {"html": "<div class=\"report-card\">      <h3>CMS Energy <span class=\"symbol\">(CMS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Multi-Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Energy'>Energy</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/811156/000081115625000036/cms-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/811156/000081115624000044/cms-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Demand for electricity associated with data center expansion could have a material effect on CMS Energy and Consumers. Consumers\u2019 utility operations are affected by new customers and load growth. Rapid expansion of data centers associated with increasing demand for cloud services, artificial intelligence, and other applications could lead to an unprecedented increase in demand for electric power in MISO and in Consumers\u2019 service territory. Data center electric demand could require a rapid and significant increase in generation capacity and grid infrastructure in the MISO footprint as well as in Consumers\u2019 service territory, which could have a material effect on CMS Energy and Consumers. Alternatively, this rapid expansion of data centers and resulting increase in demand for electric power in MISO and in Consumers\u2019 service territory may not develop as planned.</span></div>    </div>", "risks": "Energy", "sector": "Utilities", "sub": "Multi-Utilities", "company": "CMS Energy"}, {"html": "<div class=\"report-card\">      <h3>Coca-Cola Company (The) <span class=\"symbol\">(KO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Soft Drinks & Non-alcoholic Beverages</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/21344/000002134425000011/ko-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/21344/000002134424000009/ko-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">If we do not continuously strengthen our capabilities in <span style='color:red;text-decoration:line-through;'>marketing</span> <span style='color:green;'>marketing, data analytics (including artificial intelligence and machine learning)</span> and innovation to <span style='color:green;'>understand and</span> maintain consumer interest, brand loyalty and market share while strategically expanding into other profitable categories of the commercial beverage industry, our business could be negatively affected.</div>    </div>", "risks": "", "sector": "Consumer Staples", "sub": "Soft Drinks & Non-alcoholic Beverages", "company": "Coca-Cola Company (The)"}, {"html": "<div class=\"report-card\">      <h3>Coca-Cola Company (The) <span class=\"symbol\">(KO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Soft Drinks & Non-alcoholic Beverages</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/21344/000002134425000011/ko-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/21344/000002134424000009/ko-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">These incidents may be caused by failures during routine operations, such as system upgrades, or by user errors, as well as network or hardware failures, malicious or disruptive software, unintentional or malicious actions of employees or contractors, cyberattacks by hackers, criminal groups, nation-state organizations or other threat actors (which may include deepfake or social engineering schemes, worms, phishing, spyware, ransomware and other forms of malware, business email compromise, cyber extortion, denial of service, or attempts to exploit vulnerabilities or gain unauthorized access), geopolitical events, natural disasters, failures or impairments of telecommunications networks, or other catastrophic events.</div>    </div>", "risks": "Deepfakes", "sector": "Consumer Staples", "sub": "Soft Drinks & Non-alcoholic Beverages", "company": "Coca-Cola Company (The)"}, {"html": "<div class=\"report-card\">      <h3>Cognizant <span class=\"symbol\">(CTSH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Skills'>Skills</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1058290/000105829025000017/ctsh-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1058290/000105829024000017/ctsh-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Competition for skilled labor is intense and, in some jurisdictions in which we operate and in key <span style='color:green;'>AI and</span> digital areas, there are more open positions than qualified persons to fill these positions.</div>    </div>", "risks": "Skills", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "Cognizant"}, {"html": "<div class=\"report-card\">      <h3>Cognizant <span class=\"symbol\">(CTSH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Skills'>Skills</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1058290/000105829025000017/ctsh-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1058290/000105829024000017/ctsh-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our success is dependent, in large part, on our ability to keep our supply of skilled employees, including project managers, IT engineers and senior technical personnel, in particular those with experience in key <span style='color:green;'>AI and</span> digital areas, in balance with client demand around the world and on our ability to attract and retain senior management with the knowledge and skills to lead our business globally.</div>    </div>", "risks": "Skills", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "Cognizant"}, {"html": "<div class=\"report-card\">      <h3>Cognizant <span class=\"symbol\">(CTSH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span><span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1058290/000105829025000017/ctsh-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1058290/000105829024000017/ctsh-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI technology and services require access to high-quality datasets, foundation models, and other AI system components. We currently rely, in part, on third parties to provide these components. In the future, we may face difficulties acquiring the necessary rights from third parties due to market competition and other factors. This challenge could hinder our ability to develop, implement or maintain AI technologies. To overcome this, we may need to invest in alternative strategies, such as forming alliances or developing our own resources.</span></div>    </div>", "risks": "Competition; Third Party", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "Cognizant"}, {"html": "<div class=\"report-card\">      <h3>Cognizant <span class=\"symbol\">(CTSH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1058290/000105829025000017/ctsh-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1058290/000105829024000017/ctsh-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We expect the proliferation of AI will have a significant impact on our industry, and we believe our ability to compete in this space will be critical to our financial performance.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "Cognizant"}, {"html": "<div class=\"report-card\">      <h3>Cognizant <span class=\"symbol\">(CTSH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span><span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1058290/000105829025000017/ctsh-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1058290/000105829024000017/ctsh-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If we fail to develop and implement AI solutions that meet our internal and client needs or if we are unable to bring AI-enabled solutions to market as effectively or with the same speed as our competitors, we may fail to recoup our investments in AI and our financial performance, competitive position, business and reputation may be adversely impacted.</span></div>    </div>", "risks": "Competition; Disillusionment", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "Cognizant"}, {"html": "<div class=\"report-card\">      <h3>Cognizant <span class=\"symbol\">(CTSH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span><span class='risk-tag' title='Risk: Export Controls'>Export Controls</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1058290/000105829025000017/ctsh-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1058290/000105829024000017/ctsh-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Furthermore, the legal and regulatory landscape surrounding AI technologies is rapidly evolving and uncertain, with jurisdictions around the world applying, or considering applying, laws and regulations related to IP, cybersecurity, export controls, privacy, data security, and data protection to AI and automated decision-making, or general legal frameworks on AI, such as the EU AI Act, which entered into force in 2024 and parts of which apply beginning in 2025. These laws are continuously evolving and developing and may impose obligations on companies developing and using AI or automated decision-making technologies. Given the rapid rate of change and the often uncertain scope, interpretation, and application of these laws and regulations, which may be in conflict across jurisdictions, we may not always be able to anticipate how courts and regulators will apply existing laws to AI, predict how new legal frameworks will address AI, or otherwise ensure compliance with these frameworks. As a result, we may have to expend resources to adjust our offerings in certain jurisdictions if the legal frameworks on AI are not consistent across jurisdictions, and the EU AI Act may increase costs or impact the operation of our AI services.</span></div>    </div>", "risks": "EU AI Act; Export Controls", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "Cognizant"}, {"html": "<div class=\"report-card\">      <h3>Cognizant <span class=\"symbol\">(CTSH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1058290/000105829025000017/ctsh-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1058290/000105829024000017/ctsh-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">In addition, recent international tensions (including Russia\u2019s invasion of Ukraine and conflicts in the Middle East) have heightened the overall risk of cyber-threats and, while we have taken steps to mitigate such risks, those steps may not be successful. <span style='color:green;'>The emergence and maturation of AI capabilities may also lead to new or more sophisticated methods of attack.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "Cognizant"}, {"html": "<div class=\"report-card\">      <h3>Cognizant <span class=\"symbol\">(CTSH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span><span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1058290/000105829025000017/ctsh-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1058290/000105829024000017/ctsh-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Such consequences may include, for example, employees making decisions based on biased or inaccurate information; <span style='color:green;'>unauthorized</span> disclosure of sensitive information; <span style='color:green;'>operational inefficiencies leading to decreased productivity;</span> deliberate misuse; or infringement of third-party <span style='color:red;text-decoration:line-through;'>intellectual property</span> <span style='color:green;'>IP</span> rights.</div>    </div>", "risks": "Bias; Data and IP Protection", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "Cognizant"}, {"html": "<div class=\"report-card\">      <h3>Cognizant <span class=\"symbol\">(CTSH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1058290/000105829025000017/ctsh-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1058290/000105829024000017/ctsh-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The uncertainty around the safety and security of new and emerging AI applications requires significant investment to test for security, accuracy, bias, and other variables - efforts that can be complex, costly, and potentially impact our profit margins, and may cause decreased demand for our services or harm to our business, results of operations, financial condition, or reputation.</span></div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "Cognizant"}, {"html": "<div class=\"report-card\">      <h3>Colgate-Palmolive <span class=\"symbol\">(CL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Household Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/21665/000002166525000008/cl-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/21665/000002166524000003/cl-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">In addition, the techniques used in cyberattacks and cyber incidents continue to evolve and develop, including through the use of <span style='color:green;'>existing and</span> emerging technologies, such as artificial intelligence.</div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Staples", "sub": "Household Products", "company": "Colgate-Palmolive"}, {"html": "<div class=\"report-card\">      <h3>Colgate-Palmolive <span class=\"symbol\">(CL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Household Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/21665/000002166525000008/cl-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/21665/000002166524000003/cl-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Further, the use of generative artificial intelligence tools may compromise our confidential or sensitive information or put our intellectual property at <span style='color:red;text-decoration:line-through;'>risk,</span> <span style='color:green;'>risk or subject us to claims of intellectual property infringement,</span> which could in turn damage our reputation.</div>    </div>", "risks": "Data and IP Protection", "sector": "Consumer Staples", "sub": "Household Products", "company": "Colgate-Palmolive"}, {"html": "<div class=\"report-card\">      <h3>Colgate-Palmolive <span class=\"symbol\">(CL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Household Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/21665/000002166525000008/cl-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/21665/000002166524000003/cl-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our ability to adapt and use this emerging technology in an effective and ethical manner may impact our reputation and our ability to compete, as outputs from generative artificial intelligence models could be, among other things, false, biased or inconsistent with our values or strategies.</div>    </div>", "risks": "Bias", "sector": "Consumer Staples", "sub": "Household Products", "company": "Colgate-Palmolive"}, {"html": "<div class=\"report-card\">      <h3>Comcast <span class=\"symbol\">(CMCSA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Cable & Satellite</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1166691/000116669125000011/cmcsa-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1166691/000116669124000011/cmcsa-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our success is, to a large extent, dependent on our ability to acquire, develop, adopt and leverage new and existing technologies, and our competitors\u2019 use of certain types of <span style='color:red;text-decoration:line-through;'>technology</span> <span style='color:green;'>technology, including AI,</span> and equipment may provide them with a competitive advantage.</div>    </div>", "risks": "Competition", "sector": "Communication Services", "sub": "Cable & Satellite", "company": "Comcast"}, {"html": "<div class=\"report-card\">      <h3>Conagra Brands <span class=\"symbol\">(CAG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Packaged Foods & Meats</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Skills'>Skills</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/23217/000155837024009764/tmb-20240526x10k.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/23217/000143774923019879/cag20230206_10k.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We could experience shortages of employees with specialized skills, such as skills in emerging technologies including artificial intelligence and data analytics, especially emerging technology enabling us to formulate our business strategies based on consumer insights.</span> If we do not successfully compete for the best talent, our business activities may be adversely affected.</div>    </div>", "risks": "Skills", "sector": "Consumer Staples", "sub": "Packaged Foods & Meats", "company": "Conagra Brands"}, {"html": "<div class=\"report-card\">      <h3>Conagra Brands <span class=\"symbol\">(CAG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Packaged Foods & Meats</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/23217/000155837024009764/tmb-20240526x10k.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/23217/000143774923019879/cag20230206_10k.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our initiatives to continue to modernize our operations, increase data digitalization and improve connectively of our production facilities may increase our potential exposure to cybersecurity risks and add additional complexity to our cybersecurity program. Similarly, rapid development and increased adoption of artificial intelligence technology may create the need for rapid modifications to our cybersecurity program and increase our cybersecurity risks. Additionally, the technology and techniques used in cyberattacks are constantly evolving and the pace and extent of that evolution may accelerate with the use of emerging technologies including artificial intelligence.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Staples", "sub": "Packaged Foods & Meats", "company": "Conagra Brands"}, {"html": "<div class=\"report-card\">      <h3>Consolidated Edison <span class=\"symbol\">(ED)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Multi-Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1047862/000104786225000011/ed-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1437107/000143710724000017/wbd-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Cyber threats in general, and in <span style='color:red;text-decoration:line-through;'>particular</span> <span style='color:green;'>particular,</span> to critical infrastructure, are increasing in sophistication, magnitude and frequency and the techniques used in <span style='color:red;text-decoration:line-through;'>cyberattacks</span> <span style='color:green;'>cyber attacks</span> change rapidly, including from emerging technologies, such as artificial <span style='color:red;text-decoration:line-through;'>intelligence.</span> <span style='color:green;'>intelligence, and from nation-state and state-sponsored adversaries as well as criminal actors.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Utilities", "sub": "Multi-Utilities", "company": "Consolidated Edison"}, {"html": "<div class=\"report-card\">      <h3>Constellation Brands <span class=\"symbol\">(STZ)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Distillers & Vintners</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span><span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/16918/000001691825000022/stz-20250228.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/16918/000001691824000054/stz-20240229.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The <span style='color:green;'>swift pace of technological change has led to a nonuniform and complex set of cybersecurity and data privacy laws, regulations, and standards. Meanwhile, the</span> recent proliferation and rapid evolution of AI technologies, including generative <span style='color:red;text-decoration:line-through;'>AI,</span> <span style='color:green;'>AI and machine learning,</span> has resulted in new challenges, including business, <span style='color:green;'>legal and</span> regulatory, and ethical <span style='color:red;text-decoration:line-through;'>considerations, and</span> <span style='color:green;'>considerations and uncertainty. For example, the use of AI technologies without adequate safeguards could produce flawed or inaccurate recommendations, suggestions, or outcomes or other unintended results or potential vulnerabilities or expose us to liability or adverse legal or regulatory consequences. AI technologies</span> may <span style='color:green;'>also</span> intensify the risk of <span style='color:red;text-decoration:line-through;'>cyberattackers</span> <span style='color:green;'>threat actors</span> using such technologies to enhance their capabilities. We have implemented a governance framework that includes policies and processes to address the use of AI <span style='color:red;text-decoration:line-through;'>technologies, primarily focused on generative AI,</span> <span style='color:green;'>technologies</span> by our employees and third-party service providers. Nevertheless, our employees and third-party service providers may not follow our governance framework, including if such providers incorporate AI technologies into their products or systems without disclosing this use to us. <span style='color:red;text-decoration:line-through;'>This</span> <span style='color:green;'>We expect that our continued success will depend, in part, on our and our third-party service providers\u2019 ability to continue to effectively leverage existing and emerging technologies, such as AI and data analytics, to gain relevant insights and enhance our business. These circumstances</span> may create risks in our ability to address existing or rapidly developing regulatory or industry standards related to AI <span style='color:green;'>technologies and data privacy and to successfully and responsibly utilize AI</span> technologies. To the extent any of the foregoing factors result in significant disruptions and costs to our operations, <span style='color:green;'>fail to produce the anticipated benefits,</span> compromise confidential or sensitive information, imperil our intellectual property, result in harm to our reputation and the public perception of the effectiveness of our IT systems and cybersecurity measures, <span style='color:green;'>result in litigation or regulatory actions,</span> and/or reduce the effectiveness of our internal control over financial reporting, it could have a material adverse effect on our business, liquidity, financial condition, and/or results of operations.</div>    </div>", "risks": "Malicious Actors; Disillusionment", "sector": "Consumer Staples", "sub": "Distillers & Vintners", "company": "Constellation Brands"}, {"html": "<div class=\"report-card\">      <h3>Copart <span class=\"symbol\">(CPRT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Diversified Support Services</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/900075/000090007524000024/cprt-20240731.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/900075/000090007523000034/cprt-20230731.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We continue to evaluate emerging technologies like artificial intelligence, machine learning, and generative artificial intelligence for incorporation into our business to augment our products and services. Such technologies present unique business opportunities along with ever-changing legal and regulatory risks. Both state and federal regulations relating to these emerging technologies are quickly and constantly evolving and may require significant resources to modify and maintain business practices to comply with laws, the nature of which cannot be determined at this time. Our failure to accurately identify and address our responsibilities and liabilities in this new environment could negatively affect any solutions we develop incorporating such technology and could subject us to reputational harm, regulatory action, or litigation, which may harm our financial condition and operating results.</span> These <span style='color:red;text-decoration:line-through;'>attempts caused minor</span> <span style='color:green;'>same risks apply to our third-party</span> service <span style='color:red;text-decoration:line-through;'>interruptions, which were promptly addressed and resolved, and our online service was restored</span> <span style='color:green;'>providers who are implementing these tools into the products or services they provide</span> to <span style='color:red;text-decoration:line-through;'>normal business.</span> <span style='color:green;'>us.</span></div>    </div>", "risks": "", "sector": "Industrials", "sub": "Diversified Support Services", "company": "Copart"}, {"html": "<div class=\"report-card\">      <h3>Copart <span class=\"symbol\">(CPRT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Diversified Support Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/900075/000090007524000024/cprt-20240731.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/900075/000090007523000034/cprt-20230731.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">If competitors introduce new services embodying new technologies or if new industry standards and practices <span style='color:red;text-decoration:line-through;'>emerge,</span> <span style='color:green;'>emerge [such as the increased use of artificial intelligence, machine learning and generative artificial intelligence],</span> our existing websites and proprietary technology and systems may become obsolete.</div>    </div>", "risks": "Competition", "sector": "Industrials", "sub": "Diversified Support Services", "company": "Copart"}, {"html": "<div class=\"report-card\">      <h3>Corning Inc. <span class=\"symbol\">(GLW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Electronic Components</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/24741/000162828025005347/glw-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/24741/000143774924003735/glw20231231_10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The rapid development and increasing adoption of emerging technologies, such as artificial intelligence and machine learning, may further complicate our ability to anticipate and implement effective protective measures against cyber events.</span></div>    </div>", "risks": "", "sector": "Information Technology", "sub": "Electronic Components", "company": "Corning Inc."}, {"html": "<div class=\"report-card\">      <h3>CoStar Group <span class=\"symbol\">(CSGP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Real Estate Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1057352/000105735225000016/csgp-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1057352/000105735224000013/csgp-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Use of new and evolving technologies, including AI, could impact our ability to protect our data and intellectual property from misappropriation by third parties.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Real Estate", "sub": "Real Estate Services", "company": "CoStar Group"}, {"html": "<div class=\"report-card\">      <h3>CoStar Group <span class=\"symbol\">(CSGP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Real Estate Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1057352/000105735225000016/csgp-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1057352/000105735224000013/csgp-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Use of AI also increases the risk of cyberattacks and data breaches, which can occur more quickly and evolve more rapidly when AI is used. Further, the use of AI, whether by us or by third parties, may increase the risk that our data, intellectual property or confidential information will be inadvertently disclosed, which may result in reputational harm, competitive harm, or legal liability and adversely affect on our business, results of operations, or financial condition.</span></div>    </div>", "risks": "Data and IP Protection; Malicious Actors", "sector": "Real Estate", "sub": "Real Estate Services", "company": "CoStar Group"}, {"html": "<div class=\"report-card\">      <h3>CoStar Group <span class=\"symbol\">(CSGP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Real Estate Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1057352/000105735225000016/csgp-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1057352/000105735224000013/csgp-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Use of new and evolving technologies, including AI, could impact our ability to protect our data and intellectual property from misappropriation by third parties.</span> We have expended significant resources to develop proprietary content and any misappropriation of our data could reduce <span style='color:red;text-decoration:line-through;'>that</span> <span style='color:green;'>the</span> value of that content or our return on investment related to that content, which could harm our competitive position and results of operations.</div>    </div>", "risks": "Data and IP Protection", "sector": "Real Estate", "sub": "Real Estate Services", "company": "CoStar Group"}, {"html": "<div class=\"report-card\">      <h3>Costco <span class=\"symbol\">(COST)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Consumer Staples Merchandise Retail</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/909832/000090983224000049/cost-20240901.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/909832/000090983223000042/cost-20230903.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Some competitors have greater financial resources and technology capabilities, <span style='color:green;'>including the faster adoption of artificial intelligence,</span> better access to merchandise, and greater market penetration than we do.</div>    </div>", "risks": "Competition", "sector": "Consumer Staples", "sub": "Consumer Staples Merchandise Retail", "company": "Costco"}, {"html": "<div class=\"report-card\">      <h3>Coterra <span class=\"symbol\">(CTRA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Energy</span>          <span class=\"tag\">Oil & Gas Exploration & Production</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/858470/000085847025000075/cog-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/858470/000085847024000019/cog-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, cybersecurity risk is exacerbated with the advancement of technologies like artificial intelligence, which malicious third parties are using to create new, more sophisticated and more frequent attacks.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Energy", "sub": "Oil & Gas Exploration & Production", "company": "Coterra"}, {"html": "<div class=\"report-card\">      <h3>CrowdStrike <span class=\"symbol\">(CRWD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1535527/000153552725000009/crwd-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1535527/000153552724000007/crwd-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">AI is complex and rapidly evolving, and we face significant competition from other companies <span style='color:green;'>who may incorporate AI into their products more quickly or more successfully than us,</span> as well as an evolving regulatory landscape.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Systems Software", "company": "CrowdStrike"}, {"html": "<div class=\"report-card\">      <h3>CrowdStrike <span class=\"symbol\">(CRWD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1535527/000153552725000009/crwd-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1535527/000153552724000007/crwd-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Increased scrutiny <span style='color:red;text-decoration:line-through;'>of technologies like AI</span> may also <span style='color:red;text-decoration:line-through;'>become subject</span> <span style='color:green;'>lead</span> to <span style='color:red;text-decoration:line-through;'>regulation under</span> new laws <span style='color:green;'>and regulations,</span> or new applications of existing <span style='color:red;text-decoration:line-through;'>laws,</span> <span style='color:green;'>laws and regulations, that target topics</span> such as <span style='color:red;text-decoration:line-through;'>the AI Act being considered in the EU.</span> <span style='color:green;'>AI, critical infrastructure software resiliency and concentration risk.</span></div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Systems Software", "company": "CrowdStrike"}, {"html": "<div class=\"report-card\">      <h3>CrowdStrike <span class=\"symbol\">(CRWD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1535527/000153552725000009/crwd-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1535527/000153552724000007/crwd-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">AI is the subject of ongoing review by various U.S. governmental and regulatory agencies, and various U.S. states and other foreign jurisdictions are applying, or are considering applying, their cybersecurity and data protection laws to AI or are considering general legal frameworks for <span style='color:red;text-decoration:line-through;'>AI, such as the AI Act currently being considered in the EU.</span> <span style='color:green;'>AI.</span></div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Systems Software", "company": "CrowdStrike"}, {"html": "<div class=\"report-card\">      <h3>CrowdStrike <span class=\"symbol\">(CRWD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1535527/000153552725000009/crwd-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1535527/000153552724000007/crwd-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, in Europe, the EU\u2019s AI Act was published in the Official Journal of the EU on July 12, 2024 and entered into force on August 1, 2024. The AI Act establishes, among other things, a risk-based governance framework for regulating AI systems in the EU by categorizing AI systems, based on the risks associated with such AI systems\u2019 intended purposes, as creating unacceptable or high risks, with all other AI systems being considered low risk. This regulatory framework is expected to have a material impact on the way AI is regulated in the EU and beyond. As further indication of a trend in increased regulatory and legislative oversight of the use and development of AI, in 2024, California enacted a range of laws regulating the use and development of AI, which generally relate to transparency, privacy and fairness, among other concerns.</span></div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Systems Software", "company": "CrowdStrike"}, {"html": "<div class=\"report-card\">      <h3>CrowdStrike <span class=\"symbol\">(CRWD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1535527/000153552725000009/crwd-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1535527/000153552724000007/crwd-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, any content or other output created by our use of AI-powered tools may not be subject to copyright protection, which may adversely affect our ability to enforce our intellectual property rights.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Information Technology", "sub": "Systems Software", "company": "CrowdStrike"}, {"html": "<div class=\"report-card\">      <h3>CrowdStrike <span class=\"symbol\">(CRWD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1535527/000153552725000009/crwd-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1535527/000153552724000007/crwd-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, generative</span> AI <span style='color:red;text-decoration:line-through;'>algorithms</span> <span style='color:green;'>has been known to produce a false or \u201challucinatory\u201d interferences or output, and certain generative AI uses machine learning and predictive analytics, which</span> may be flawed, insufficient, of poor quality, reflect unwanted forms of bias, or contain other errors or inadequacies, any of which may not be easily detectable.</div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Systems Software", "company": "CrowdStrike"}, {"html": "<div class=\"report-card\">      <h3>CSX Corporation <span class=\"symbol\">(CSX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Rail Transportation</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/277948/000027794825000008/csx-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/277948/000027794824000010/csx-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Additionally, if CSX is unable to successfully acquire, <span style='color:red;text-decoration:line-through;'>develop</span> <span style='color:green;'>develop, implement,</span> or <span style='color:red;text-decoration:line-through;'>implement</span> <span style='color:green;'>update</span> new <span style='color:green;'>or existing</span> technology, including artificial intelligence, it may suffer <span style='color:green;'>adverse financial impacts or</span> a competitive disadvantage within the rail industry and with companies providing other modes of transportation services.</div>    </div>", "risks": "", "sector": "Industrials", "sub": "Rail Transportation", "company": "CSX Corporation"}, {"html": "<div class=\"report-card\">      <h3>Cummins <span class=\"symbol\">(CMI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Construction Machinery & Heavy Transportation Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span><span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/26172/000002617225000007/cmi-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/26172/000002617224000012/cmi-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our competitors or other third parties may incorporate artificial intelligence into their products or operational processes more quickly or more successfully than us, which could have a material adverse effect on our competitive position, reputation and results of operations. In addition, there are significant risks involved in developing and deploying artificial intelligence and there can be no assurance that the usage of artificial intelligence will enhance our products or services or be beneficial to our business, including our efficiency or profitability.</span></div>    </div>", "risks": "Disillusionment; Competition", "sector": "Industrials", "sub": "Construction Machinery & Heavy Transportation Equipment", "company": "Cummins"}, {"html": "<div class=\"report-card\">      <h3>CVS Health <span class=\"symbol\">(CVS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Services</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/64803/000006480325000007/cvs-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/64803/000006480324000007/cvs-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Executive orders covering health care and other subjects including immigration, AI, energy and the federal work force as well as the work force of public and private companies, if implemented through agency action, may also impact the Company.</span></div>    </div>", "risks": "", "sector": "Health Care", "sub": "Health Care Services", "company": "CVS Health"}, {"html": "<div class=\"report-card\">      <h3>D. R. Horton <span class=\"symbol\">(DHI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Homebuilding</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/882184/000088218424000057/dhi-20240930.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/882184/000088218423000115/dhi-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>With the use of artificial intelligence, these phishing attacks may contain highly convincing language making them difficult to distinguish from legitimate messages.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Discretionary", "sub": "Homebuilding", "company": "D. R. Horton"}, {"html": "<div class=\"report-card\">      <h3>Danaher Corporation <span class=\"symbol\">(DHR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Life Sciences Tools & Services</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/313616/000031361625000043/dhr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/313616/000031361624000052/dhr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">In addition to the environmental, health, safety, <span style='color:red;text-decoration:line-through;'>health care,</span> <span style='color:green;'>healthcare,</span> medical device, anticorruption, data <span style='color:red;text-decoration:line-through;'>privacy</span> <span style='color:green;'>privacy, artificial intelligence, sustainability</span> and other regulations noted elsewhere in this Annual Report, our businesses are subject to extensive regulation by U.S. and non-U.S. governmental and <span style='color:red;text-decoration:line-through;'>self-regulatory</span> <span style='color:green;'>self- regulatory</span> entities at the supranational, federal, state, local and other jurisdictional levels, including for example the following: \u2022We are required to comply with various import laws and export control and economic sanctions laws, which may affect our transactions with certain customers, business partners and other persons and dealings between our employees and between our subsidiaries.</div>    </div>", "risks": "", "sector": "Health Care", "sub": "Life Sciences Tools & Services", "company": "Danaher Corporation"}, {"html": "<div class=\"report-card\">      <h3>Danaher Corporation <span class=\"symbol\">(DHR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Life Sciences Tools & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/313616/000031361625000043/dhr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/313616/000031361624000052/dhr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For example, AI algorithms may be flawed or may be based on datasets that are biased or insufficient.</div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Life Sciences Tools & Services", "company": "Danaher Corporation"}, {"html": "<div class=\"report-card\">      <h3>Darden Restaurants <span class=\"symbol\">(DRI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Restaurants</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/940944/000094094424000035/dri-20240526.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/940944/000094094423000037/dri-20230528.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>From time-to-time, we and our third party service providers and suppliers experience unauthorized attempts to infiltrate and interrupt information systems. To date, interruptions of these information systems as a result of unauthorized infiltration attempts have not had a material impact on our operations. However, because technology is increasingly complex and cyber- attacks are increasingly sophisticated and more frequent, there can be no assurance that such incidents will not have a material adverse effect on us in the future. For example, the rapid evolution and increased adoption of artificial intelligence technologies may intensify our and our service providers\u2019 and key suppliers\u2019 cybersecurity risks. Unauthorized access, theft, use, destruction or other compromises are becoming increasingly sophisticated and may occur through a variety of methods, including attacks using malicious code, vulnerabilities in software, hardware or other infrastructure (including systems used by our supply chain), system misconfigurations, phishing or social engineering. Failure of our or our service providers\u2019 information systems to function as intended, or cyber-attacks or security breaches, could result in loss of revenue, assets, personal data, intellectual property, trade secrets or other sensitive and confidential data, violation of applicable privacy and data security laws, reputational harm to the companies and their brands, operational disruptions, legal challenges and significant remediation and other costs, all of which could have a material adverse effect on our business.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Discretionary", "sub": "Restaurants", "company": "Darden Restaurants"}, {"html": "<div class=\"report-card\">      <h3>DaVita <span class=\"symbol\">(DVA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/927066/000092706625000012/dva-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/927066/000092706624000013/dva-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Globally, these regulations include, but are not limited to, European Union (EU) General Data Protection Regulation (GDPR), the United Kingdom GDPR, the EU Artificial Intelligence Act, the EU Data Act and the EU Health Data Space Regulation.</span></div>    </div>", "risks": "EU AI Act", "sector": "Health Care", "sub": "Health Care Services", "company": "DaVita"}, {"html": "<div class=\"report-card\">      <h3>Dayforce <span class=\"symbol\">(DAY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Human Resource & Employment Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1725057/000095017025029980/day-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1725057/000095017024022100/day-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further our ability, or the ability of our third party service providers, to comply with these laws and regulations and ensure data protection and information security may be impacted as the increased use of AI in our own HCM technology and by third parties whom we engage to process data on our behalf, if not properly managed and governed, could result in the unintended use, exposure, or loss of our own sensitive data or sensitive customer data, including through the inadvertent introduction of such data to AI agents existing in commercially acquired or other third-party applications that exist outside of our own firewalls. We may also be unable to ensure that appropriate governance oversight at our third party partners is being maintained, particularly with respect to the use of AI in their systems.</span></div>    </div>", "risks": "Third Party", "sector": "Industrials", "sub": "Human Resource & Employment Services", "company": "Dayforce"}, {"html": "<div class=\"report-card\">      <h3>Dayforce <span class=\"symbol\">(DAY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Human Resource & Employment Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1725057/000095017025029980/day-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1725057/000095017024022100/day-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Cyberattacks are expected to accelerate on a global basis in frequency and magnitude as threat actors are becoming increasingly sophisticated in using techniques and tools\u2014including AI\u2014that circumvent security controls, evade detection, and remove forensic evidence.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Industrials", "sub": "Human Resource & Employment Services", "company": "Dayforce"}, {"html": "<div class=\"report-card\">      <h3>Dayforce <span class=\"symbol\">(DAY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Human Resource & Employment Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1725057/000095017025029980/day-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1725057/000095017024022100/day-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Moreover, the continued integration of AI into our products and business processes, as well as the use of AI by our third party providers, may bring about unknown and currently unmanaged risks that could cause a material adverse impact to our IT Systems, business operations and data security, including risks associated with the consequences of inadvertent or unauthorized access to, or use of, customer information.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Industrials", "sub": "Human Resource & Employment Services", "company": "Dayforce"}, {"html": "<div class=\"report-card\">      <h3>Dayforce <span class=\"symbol\">(DAY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Human Resource & Employment Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1725057/000095017025029980/day-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1725057/000095017024022100/day-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, our ability, or the ability of our third party service providers, to comply with these laws and regulations and ensure data protection and information security may be impacted as the increased use of AI in our own HCM technology and by third parties whom we engage to process data on our behalf, if not properly managed and governed, could result in the unintended use, exposure, or loss of our own sensitive data or sensitive customer data, including through the inadvertent introduction of such data to AI agents existing in commercially acquired or other third-party applications that exist outside of our own firewalls. We may also be unable to ensure that appropriate governance oversight at our third party partners is being maintained, particularly with respect to the use of AI in their systems.</span> <span style='color:red;text-decoration:line-through;'>Further, enforcement</span> <span style='color:green;'>Enforcement</span> actions and investigations by regulatory <span style='color:red;text-decoration:line-through;'>authorities</span> <span style='color:green;'>authorities, as well as litigation claims brought by private citizens,</span> related to data security incidents and privacy violations continue to increase.</div>    </div>", "risks": "Data and IP Protection", "sector": "Industrials", "sub": "Human Resource & Employment Services", "company": "Dayforce"}, {"html": "<div class=\"report-card\">      <h3>Dayforce <span class=\"symbol\">(DAY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Human Resource & Employment Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1725057/000095017025029980/day-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1725057/000095017024022100/day-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Moreover, we may be subject to future enforcement actions, investigations, or litigation, including potential future civil rights claims stemming from an alleged failure to adequately address legal risks or regulations relating to the use of AI in our applications or alleged bias in our AI tools in violation of anti-discrimination laws, which could result in significant regulatory penalties and legal liability and damage our reputation.</span></div>    </div>", "risks": "Bias", "sector": "Industrials", "sub": "Human Resource & Employment Services", "company": "Dayforce"}, {"html": "<div class=\"report-card\">      <h3>Deckers Brands <span class=\"symbol\">(DECK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Footwear</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/910521/000091052124000017/deck-20240331.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/910521/000091052123000016/deck-20230331.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Our competitors\u2019 greater resources <span style='color:red;text-decoration:line-through;'>and capabilities in these areas</span> may enable them to more effectively compete on the basis of price and production, develop new products more quickly or with superior technical capabilities, <span style='color:green;'>adapt to changes in technology, including the successful utilization of data analytics, artificial intelligence, and machine learning,</span> market their products and brands more successfully, identify or influence consumer preferences, increase their market share, withstand the effects of seasonality, and manage periodic downturns in the footwear, apparel, and accessories industry or in economic <span style='color:red;text-decoration:line-through;'>conditions generally.</span> <span style='color:green;'>conditions.</span></div>    </div>", "risks": "Competition", "sector": "Consumer Discretionary", "sub": "Footwear", "company": "Deckers Brands"}, {"html": "<div class=\"report-card\">      <h3>Deckers Brands <span class=\"symbol\">(DECK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Footwear</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/910521/000091052124000017/deck-20240331.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/910521/000091052123000016/deck-20230331.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">The frequency, intensity, and sophistication of cyber-attacks, ransom-ware attacks, and other data security incidents have significantly increased in recent years. Like other businesses, we have experienced, and are continually at risk of, attacks and incidents. Additionally, external events, such as the Russia-Ukraine <span style='color:red;text-decoration:line-through;'>conflict,</span> <span style='color:green;'>and Israel-Hamas conflicts,</span> can increase the likelihood of such incidents, and our risk and exposure to these matters remains heightened because of, among other things, the evolving nature of these threats, the current global economic and political environment, our prominent size and scale, <span style='color:green;'>the advances in computer capabilities and AI,</span> and the interconnectivity and interdependence of third parties to our systems. <span style='color:green;'>We expend significant resources on IT and data security tools, measures, and processes designed to protect our IT systems, as well as the information stored on or transmitted through those systems, and to ensure an effective response to any attack or incident.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Discretionary", "sub": "Footwear", "company": "Deckers Brands"}, {"html": "<div class=\"report-card\">      <h3>Deckers Brands <span class=\"symbol\">(DECK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Footwear</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/910521/000091052124000017/deck-20240331.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/910521/000091052123000016/deck-20230331.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">We cannot guarantee that we will be successful at improving our operational systems, <span style='color:green;'>adapting to changes in technology, including the successful utilization of data analytics, AI, and machine learning,</span> or that our efforts will result in the anticipated benefits to us.</div>    </div>", "risks": "Disillusionment", "sector": "Consumer Discretionary", "sub": "Footwear", "company": "Deckers Brands"}, {"html": "<div class=\"report-card\">      <h3>Deere & Company <span class=\"symbol\">(DE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Agricultural & Farm Machinery</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span><span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/315189/000155837024016169/de-20241027x10k.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/315189/000155837023019812/de-20231029x10k.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Furthermore, any confidential information that we input into a third-party generative artificial intelligence platform could be leaked or disclosed to others, including sensitive information that is used to train the third parties\u2019 model.</span></div>    </div>", "risks": "Data and IP Protection; Third Party", "sector": "Industrials", "sub": "Agricultural & Farm Machinery", "company": "Deere & Company"}, {"html": "<div class=\"report-card\">      <h3>Deere & Company <span class=\"symbol\">(DE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Agricultural & Farm Machinery</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/315189/000155837024016169/de-20241027x10k.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/315189/000155837023019812/de-20231029x10k.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Data sourcing, technology, integration and process issues, <span style='color:red;text-decoration:line-through;'>program</span> <span style='color:green;'>programmed</span> bias <span style='color:red;text-decoration:line-through;'>into</span> <span style='color:green;'>in</span> decision-making algorithms, <span style='color:green;'>concerns over intellectual property,</span> security <span style='color:red;text-decoration:line-through;'>problems,</span> <span style='color:green;'>concerns,</span> and the protection of privacy could impair the adoption and acceptance of autonomous machine solutions.</div>    </div>", "risks": "Bias", "sector": "Industrials", "sub": "Agricultural & Farm Machinery", "company": "Deere & Company"}, {"html": "<div class=\"report-card\">      <h3>Deere & Company <span class=\"symbol\">(DE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Agricultural & Farm Machinery</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/315189/000155837024016169/de-20241027x10k.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/315189/000155837023019812/de-20231029x10k.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>If</span> <span style='color:green;'>Furthermore, any confidential information that we input into a third-party generative artificial intelligence platform could be leaked or disclosed to others, including sensitive information that is used to train</span> the <span style='color:red;text-decoration:line-through;'>output from these solutions</span> <span style='color:green;'>third parties\u2019 model. Additionally, if the data used to train the solution or the content, analyses, or recommendations that the machine learning and intelligence applications assist in producing</span> is deemed to be <span style='color:red;text-decoration:line-through;'>inaccurate</span> <span style='color:green;'>inaccurate, incomplete, biased</span> or questionable, our brand and reputation may be harmed and we may be subject to legal liability claims.</div>    </div>", "risks": "Bias", "sector": "Industrials", "sub": "Agricultural & Farm Machinery", "company": "Deere & Company"}, {"html": "<div class=\"report-card\">      <h3>Dell Technologies <span class=\"symbol\">(DELL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Hardware, Storage & Peripherals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span><span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1571996/000157199625000034/dell-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1571996/000157199624000036/dell-20240202.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Sales of AI to large customers may also cause fluctuations in our results of operations, as such large orders may occur in some periods and not others and are generally subject to intense competition and pricing pressure, which can have an impact on our margin and results of operations. Larger orders may also require greater commitments of working capital, such as for purchases of key components, which could adversely affect our cash flow and expose us to the risk of holding excess and obsolete inventory due to delays or cancellations. These transactions may also involve larger amounts of credit or longer payment terms than have been typical for our business, increasing our risks in the event customers do not pay or make timely payment, particularly where our payment terms with major suppliers of underlying components differ from the payment terms of our customers. In addition, the accelerated rate of innovation of components from our suppliers may result in higher defects or failure of our offerings to perform, which could cause us to incur increased warranty costs, inventory provisions or impairments and could impact future sales.</span></div>    </div>", "risks": "Competition; Disillusionment", "sector": "Information Technology", "sub": "Technology Hardware, Storage & Peripherals", "company": "Dell Technologies"}, {"html": "<div class=\"report-card\">      <h3>Dell Technologies <span class=\"symbol\">(DELL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Hardware, Storage & Peripherals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1571996/000157199625000034/dell-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1571996/000157199624000036/dell-20240202.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The use of AI technologies also could expose us to an increased risk of cybersecurity threats and incidents and claims or other adverse effects from infringements or violations of intellectual property, including claims related to AI technologies considered to have similarities to other AI technologies. Our use of such technologies could increase the risk of exposure of our or other parties\u2019 proprietary confidential information, or other confidential or sensitive information, to unauthorized recipients, including inadvertent disclosure of confidential or sensitive information into publicly available third-party training sets, and may affect our ability to realize the benefit of, or adequately maintain, protect and enforce, our intellectual property or confidential information. Such risks related to the use of AI could, whether directly or indirectly, harm our results of operations, competitive position, and business.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Information Technology", "sub": "Technology Hardware, Storage & Peripherals", "company": "Dell Technologies"}, {"html": "<div class=\"report-card\">      <h3>Dell Technologies <span class=\"symbol\">(DELL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Hardware, Storage & Peripherals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1571996/000157199625000034/dell-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1571996/000157199624000036/dell-20240202.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI is the subject of evolving review by various domestic and international governmental and regulatory agencies, including the SEC and the U.S. Federal Trade Commission, and laws, rules, directives and regulations governing the use of AI, such as the EU Artificial Intelligence Act, are changing and evolving rapidly. We may not always be able to anticipate how to respond to these legal frameworks for AI use and we may have to expend resources to adjust or audit our products and services in certain jurisdictions, especially if the legal frameworks are not consistent across jurisdictions.</span></div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Technology Hardware, Storage & Peripherals", "company": "Dell Technologies"}, {"html": "<div class=\"report-card\">      <h3>Dell Technologies <span class=\"symbol\">(DELL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Hardware, Storage & Peripherals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1571996/000157199625000034/dell-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1571996/000157199624000036/dell-20240202.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Despite our cybersecurity governance and investment in controls and security measures, <span style='color:red;text-decoration:line-through;'>criminal or other unauthorized</span> threat actors, including nation states and state-sponsored organizations, pose a significant risk of penetrating or bypassing our security defenses, <span style='color:green;'>including by utilizing insider threat tactics or utilizing AI tools against our defenses,</span> breaching our information technology systems, and <span style='color:red;text-decoration:line-through;'>misappropriating, breaching,</span> <span style='color:green;'>misappropriating</span> or compromising confidential and proprietary information of our company, our partners, or our customers, causing system disruptions and shutdowns, <span style='color:red;text-decoration:line-through;'>or</span> introducing ransomware, malware, or vulnerabilities into our products, systems, and networks or those of our customers and <span style='color:red;text-decoration:line-through;'>partners.</span> <span style='color:green;'>partners, or accessing systems and networks of our customers or partners through connectivity to or credentials taken from our network.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Technology Hardware, Storage & Peripherals", "company": "Dell Technologies"}, {"html": "<div class=\"report-card\">      <h3>Dexcom <span class=\"symbol\">(DXCM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1093557/000109355725000036/dxcm-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1093557/000109355724000021/dxcm-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI laws and regulations have proliferated in the U.S. and globally in recent years, including in 2024. In 2024, there were 60 AI-related regulations at the U.S. federal and state levels, up from just one in 2016. In 2024 alone, the total number of AI-related regulations in the U.S. grew by 140%. On January 10, 2025, HHS released its AI Strategic Plan which largely focuses on promoting trustworthy AI through the FAVES framework (Fair, Appropriate, Valid, Effective, Safe). Additionally, the EU AI Act went into effect on August 1, 2024, which sets requirements for developers and deployers of AI systems based on a risk approach and extends its reach to those developers of AI outside of the EU where the AI product or output is used in the EU. AI regulation is continually evolving at the federal, state and international level and will continue to require financial and resource investment by us to ensure that AI tools are safe and effective, operate in a non-discriminatory manner, and comply with applicable legal and regulatory requirements.</span></div>    </div>", "risks": "EU AI Act", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Dexcom"}, {"html": "<div class=\"report-card\">      <h3>Diamondback Energy <span class=\"symbol\">(FANG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Energy</span>          <span class=\"tag\">Oil & Gas Exploration & Production</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1539838/000153983825000021/fang-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1539838/000153983824000019/fang-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>More recently, advancements in artificial intelligence (\u201cAI\u201d) may pose serious risks for many of the traditional tools used to identify individuals, including voice recognition (whether by machine or the human ear), facial recognition or screening questions to confirm identities. In addition, generative AI systems may also be used by malicious actors to create more sophisticated cyber-attacks (i.e., more realistic phishing or other attacks). The advancements in AI could lead to an increase in the frequency of identity fraud or cyberattacks (whether successful or unsuccessful), which could cause us to incur increasing costs, including costs to deploy additional personnel, protection technologies and policies and procedures, train employees, and engage third-party experts and consultants.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Energy", "sub": "Oil & Gas Exploration & Production", "company": "Diamondback Energy"}, {"html": "<div class=\"report-card\">      <h3>Digital Realty <span class=\"symbol\">(DLR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Data Center REITs</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1297996/000155837025001424/dlr-20241231x10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1297996/000155837024001575/dlr-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, emerging tools and technologies we utilize in providing our products, like AI and machine learning, may also become subject to regulation under new laws or new applications of existing laws.</span> If we fail to comply with these various regulations, we may have to pay fines or damage awards to private litigants.</div>    </div>", "risks": "", "sector": "Real Estate", "sub": "Data Center REITs", "company": "Digital Realty"}, {"html": "<div class=\"report-card\">      <h3>Digital Realty <span class=\"symbol\">(DLR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Data Center REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Energy'>Energy</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1297996/000155837025001424/dlr-20241231x10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1297996/000155837024001575/dlr-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, our power and cooling systems are difficult and expensive to upgrade, especially as we design our data centers to the specifications of new and evolving technologies, such as Artificial Intelligence (\u201cAI\u201d), which are more power-intensive.</span> Accordingly, we may not be able to efficiently upgrade or change these systems to meet new demands without incurring significant costs that we may not be able to pass on to our customers.</div>    </div>", "risks": "Energy", "sector": "Real Estate", "sub": "Data Center REITs", "company": "Digital Realty"}, {"html": "<div class=\"report-card\">      <h3>Discover Financial <span class=\"symbol\">(DFS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Consumer Finance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1393612/000139361225000009/dfs-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1393612/000139361224000010/dfs-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">More recently, emerging generative AI capabilities, such as synthetic <span style='color:red;text-decoration:line-through;'>voice</span> <span style='color:green;'>video</span> and <span style='color:red;text-decoration:line-through;'>conversation generation, introduced</span> <span style='color:green;'>images and identity documents may introduce</span> new <span style='color:red;text-decoration:line-through;'>fraud risks, especially</span> <span style='color:green;'>risks</span> in the form of identity <span style='color:red;text-decoration:line-through;'>fraud.</span> <span style='color:green;'>fraud and scams.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Consumer Finance", "company": "Discover Financial"}, {"html": "<div class=\"report-card\">      <h3>Discover Financial <span class=\"symbol\">(DFS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Consumer Finance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1393612/000139361225000009/dfs-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1393612/000139361224000010/dfs-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Advancement in AI and AI tools could provide efficiencies or other advantages in generating malicious code and cyber attack vectors.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Consumer Finance", "company": "Discover Financial"}, {"html": "<div class=\"report-card\">      <h3>Discover Financial <span class=\"symbol\">(DFS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Consumer Finance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1393612/000139361225000009/dfs-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1393612/000139361224000010/dfs-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>More recently, the evolution of AI tools has lowered the barrier of entry for hackers to develop and deploy malicious payloads or launch effective phishing campaigns.</span> to <span style='color:red;text-decoration:line-through;'>ensure the integrity of our systems through our information security</span> <span style='color:green;'>develop</span> and <span style='color:red;text-decoration:line-through;'>business continuity programs, we</span> <span style='color:green;'>deploy malicious payloads or launch effective phishing campaigns.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Consumer Finance", "company": "Discover Financial"}, {"html": "<div class=\"report-card\">      <h3>TJX Companies <span class=\"symbol\">(TJX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Apparel Retail</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/109198/000010919825000010/tjx-20250201.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/109198/000010919824000014/tjx-20240203.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We could be at a competitive disadvantage if, over time, our competitors are more effective than we are in their use and integration of rapidly evolving technologies, including artificial intelligence or other emerging technologies.</span></div>    </div>", "risks": "Competition", "sector": "Consumer Discretionary", "sub": "Apparel Retail", "company": "TJX Companies"}, {"html": "<div class=\"report-card\">      <h3>Kroger <span class=\"symbol\">(KR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Food Retail</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/56873/000155837025004267/kr-20250201x10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/56873/000155837024004603/kr-20240203x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>While we are utilizing AI and machine learning capabilities across our business, our competitors or other third parties may incorporate AI into their products, services and operations more successfully, which could impair our ability to compete effectively, or adversely affect our results of operations or our ability to improve operational efficiency.</span></div>    </div>", "risks": "Competition", "sector": "Consumer Staples", "sub": "Food Retail", "company": "Kroger"}, {"html": "<div class=\"report-card\">      <h3>Trimble Inc. <span class=\"symbol\">(TRMB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Electronic Equipment & Instruments</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span><span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/864749/000086474925000090/trmb-20250103.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/864749/000086474924000047/trmb-20231229.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Although we continue to invest in AI, there can be no assurance that our investments will be beneficial to our business. Our competitors may incorporate AI more quickly or successfully, and our solutions could become less competitive as a result.</span></div>    </div>", "risks": "Competition; Disillusionment", "sector": "Information Technology", "sub": "Electronic Equipment & Instruments", "company": "Trimble Inc."}, {"html": "<div class=\"report-card\">      <h3>Trimble Inc. <span class=\"symbol\">(TRMB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Electronic Equipment & Instruments</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/864749/000086474925000090/trmb-20250103.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/864749/000086474924000047/trmb-20231229.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Any failure by our personnel, contractors, or partners to adhere to our AI policies, or otherwise use AI in an inappropriate manner, could result in violations of confidentiality obligations and laws or regulations, jeopardize our IP rights, or expose our products or business systems to defects and malware, any of which could damage our business and result in reputational, technical, or competitive harm.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Information Technology", "sub": "Electronic Equipment & Instruments", "company": "Trimble Inc."}, {"html": "<div class=\"report-card\">      <h3>Trimble Inc. <span class=\"symbol\">(TRMB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Electronic Equipment & Instruments</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Skills'>Skills</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/864749/000086474925000090/trmb-20250103.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/864749/000086474924000047/trmb-20231229.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our continued success depends, in part, on our ability to hire and retain qualified personnel, advance our corporate strategy, and preserve the key aspects of our corporate culture. Because our future success is dependent on our ability to continue to enhance and introduce new products, we are particularly dependent on our ability to hire and retain qualified engineers, including in areas of technology such as GNSS, software programming, information systems, <span style='color:green;'>data analytics,</span> and <span style='color:red;text-decoration:line-through;'>data analytics.</span> <span style='color:green;'>AI.</span></div>    </div>", "risks": "Skills", "sector": "Information Technology", "sub": "Electronic Equipment & Instruments", "company": "Trimble Inc."}, {"html": "<div class=\"report-card\">      <h3>Trimble Inc. <span class=\"symbol\">(TRMB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Electronic Equipment & Instruments</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/864749/000086474925000090/trmb-20250103.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/864749/000086474924000047/trmb-20231229.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">A cybersecurity incident in our own systems or the systems of our third-party providers may compromise the confidentiality, integrity, or availability of our own internal data, the availability of our products and websites designed to support our customers, or our customer data. Computer hackers, foreign governments, cybercriminals, or cyber terrorists may attempt to or succeed in penetrating our network security and our website. <span style='color:green;'>The availability and use of AI-enabled technologies also increase the sophistication and threat posed by such actors.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Electronic Equipment & Instruments", "company": "Trimble Inc."}, {"html": "<div class=\"report-card\">      <h3>Lululemon Athletica <span class=\"symbol\">(LULU)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Apparel, Accessories & Luxury Goods</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1397187/000139718725000013/lulu-20250202.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1397187/000139718724000010/lulu-20240128.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The retail industry, in particular, has been the target of many recent cyber-attacks. We may not have the resources or technical sophistication to be able to anticipate or prevent rapidly evolving types of cyber-attacks. Attacks may be targeted at us, our vendors or customers, or others who have entrusted us with information. In addition, despite taking measures to safeguard our information security and privacy environment from security breaches, our customers and our business could still be exposed to risk. Actual or anticipated attacks may cause us to incur increasing costs including costs to deploy additional personnel and protection technologies, train employees and engage third party experts and consultants. Advances in <span style='color:green;'>artificial intelligence and other</span> computer capabilities, new technological discoveries or other developments may result in the technology used by us to protect transaction or other data being breached or compromised. Measures we implement to protect against cyber-attacks may also have the potential to impact our customers' shopping experience or decrease activity on our websites by making them more difficult to <span style='color:red;text-decoration:line-through;'>use.</span> <span style='color:green;'>use or requiring website downtime.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Discretionary", "sub": "Apparel, Accessories & Luxury Goods", "company": "Lululemon Athletica"}, {"html": "<div class=\"report-card\">      <h3>Kroger <span class=\"symbol\">(KR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Food Retail</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/56873/000155837025004267/kr-20250201x10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/56873/000155837024004603/kr-20240203x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Cyber-attackers have targeted and accessed, and may in the future again target and, if successful, access information stored in our or <span style='color:red;text-decoration:line-through;'>our vendors\u2019</span> <span style='color:green;'>certain third parties\u2019</span> systems in order to misappropriate confidential customer or business information. <span style='color:green;'>The rapid evolution and increased adoption of AI and related technologies may also intensify the risk that our technology systems are targeted.</span></div>    </div>", "risks": "Competition", "sector": "Consumer Staples", "sub": "Food Retail", "company": "Kroger"}, {"html": "<div class=\"report-card\">      <h3>TJX Companies <span class=\"symbol\">(TJX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Apparel Retail</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span><span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/109198/000010919825000010/tjx-20250201.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/109198/000010919824000014/tjx-20240203.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">As is common in the retail industry, our IT systems, as well as those of our suppliers, service providers and other third parties whose information technology systems we utilize directly or indirectly, are targeted by attempts to access or obtain personal or other sensitive information, attempts at monetary <span style='color:red;text-decoration:line-through;'>theft,</span> <span style='color:green;'>theft</span> and attempts to disrupt business. These attempts include use of malware, ransomware, phishing, <span style='color:green;'>vishing, deepfakes,</span> social engineering, denial-of-service attacks, exploitation of system vulnerabilities or misconfigurations, Associate <span style='color:green;'>or third-party service provider</span> malfeasance, digital and physical payment card skimmers, account takeovers and other forms of cyber-attacks. These attempts continue to increase in <span style='color:red;text-decoration:line-through;'>sophistication,</span> <span style='color:green;'>sophistication (including through the use of artificial intelligence),</span> heightening the risk of compromise or disruption. While some of these attempts have resulted in cybersecurity incidents, the unauthorized intrusion into our network discovered late in 2006 is the only such cybersecurity incident to date that has been material to the results of our operations. Our IT systems and those of our suppliers, service providers and other third parties also may be damaged or disrupted, or personal or sensitive information compromised, from a number of other causes, including power outages, system failures, catastrophic <span style='color:red;text-decoration:line-through;'>events</span> <span style='color:green;'>events,</span> or Associate or <span style='color:red;text-decoration:line-through;'>contractor</span> <span style='color:green;'>third-party</span> error. Such damage, disruption or compromise could materially impair our ability to operate our business or otherwise result in material impacts on our operating results.</div>    </div>", "risks": "Malicious Actors; Deepfakes", "sector": "Consumer Discretionary", "sub": "Apparel Retail", "company": "TJX Companies"}, {"html": "<div class=\"report-card\">      <h3>Dominion Energy <span class=\"symbol\">(D)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Multi-Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Energy'>Energy</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/715957/000095017025028387/d-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/715957/000095017024019110/d-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additional projects may be considered in the future, such as those necessary to meet the projected demand growth driven by data centers and artificial intelligence, including to address the concentration of data centers primarily in Loudoun County, Virginia.</span></div>    </div>", "risks": "Energy", "sector": "Utilities", "sub": "Multi-Utilities", "company": "Dominion Energy"}, {"html": "<div class=\"report-card\">      <h3>Dominion Energy <span class=\"symbol\">(D)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Multi-Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Energy'>Energy</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/715957/000095017025028387/d-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/715957/000095017024019110/d-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Increased energy demand or significant accelerated growth in demand due to new data centers, <span style='color:green;'>expanded use of artificial intelligence,</span> widespread adoption of electric vehicles or other customer changes could require enhancements to the Companies\u2019 infrastructure.</div>    </div>", "risks": "Energy", "sector": "Utilities", "sub": "Multi-Utilities", "company": "Dominion Energy"}, {"html": "<div class=\"report-card\">      <h3>Domino's <span class=\"symbol\">(DPZ)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Restaurants</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1286681/000095017025025223/dpz-20241229.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1286681/000095017024019725/dpz-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The use of these AI solutions may expose us to additional risks and expenses, including, for example, if we were to incorporate AI technologies which we become dependent on or fail to adopt AI in a timely or effective manner.</span> In addition, our competitors, some of whom have greater resources than we do, may be able to benefit more from changes in technologies or consumer acceptance of alternative methods of delivery.</div>    </div>", "risks": "", "sector": "Consumer Discretionary", "sub": "Restaurants", "company": "Domino's"}, {"html": "<div class=\"report-card\">      <h3>Dover Corporation <span class=\"symbol\">(DOV)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Industrial Machinery & Supplies & Components</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/29905/000002990525000006/dov-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/29905/000002990524000008/dov-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The disruption of our global supply chain for any reason, including for issues such as COVID-19 or other health epidemics or pandemics, labor disputes, loss of single source or limited source supplier, inability to procure sufficient raw materials, quality control issues, ethical sourcing issues, <span style='color:green;'>discontinuity or disruption in our internal information and data systems or those of our suppliers, cybersecurity incidents including but not limited to ransomware attacks, misuse of artificial intelligence and machine learning technologies,</span> a supplier's financial distress, natural disasters, looting, vandalism or acts of war or terrorism, trade sanctions or other external factors over which we have no control, could interrupt product supply and, if not effectively managed and remedied, have a material adverse impact on our business operations, financial condition and results of operations.</div>    </div>", "risks": "Malicious Actors", "sector": "Industrials", "sub": "Industrial Machinery & Supplies & Components", "company": "Dover Corporation"}, {"html": "<div class=\"report-card\">      <h3>Dover Corporation <span class=\"symbol\">(DOV)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Industrial Machinery & Supplies & Components</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/29905/000002990525000006/dov-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/29905/000002990524000008/dov-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">If these technologies, systems, products or services are damaged, cease to function properly, are compromised due to employee or third-party contractor error, user error, malfeasance, system errors, or other vulnerabilities, or are subject to cybersecurity attacks, such as those involving denial of service attacks, unauthorized access, malicious software, ransomware, or other intrusions, <span style='color:green;'>misuse or malicious use of artificial intelligence,</span> including by criminals, nation states or insiders, our business may be adversely impacted.</div>    </div>", "risks": "Malicious Actors", "sector": "Industrials", "sub": "Industrial Machinery & Supplies & Components", "company": "Dover Corporation"}, {"html": "<div class=\"report-card\">      <h3>Dow Inc. <span class=\"symbol\">(DOW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Commodity Chemicals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1751788/000175178825000012/dow-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1751788/000175178824000010/dow-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Cybersecurity Threat: Disruption of the Company's information technology, data security, and other operating or third-party systems, including disruption of the ability to safely and reliably operate the Company's facilities; the risk of loss of the Company\u2019s proprietary information including trade secrets, know-how or other sensitive business information; and the risk of loss or security of the private data of the Company, its customers and its employees could negatively impact the Company\u2019s business strategy, results of operations, financial condition and reputation. The Company relies on various information systems, including information systems operated by <span style='color:red;text-decoration:line-through;'>third-parties,</span> <span style='color:green;'>third-parties which may also include embedded artificial intelligence ('AI'),</span> to support safe, efficient and reliable business and operating processes and activities and to safeguard its proprietary information assets, including trade secrets, know-how and other sensitive, business critical information. These systems are critical to the Company's process to accurately report financial results for management and external reporting purposes and to ensure compliance with financial reporting, legal and tax requirements in the United States and around the world. These systems may also be used to collect and process sensitive customer and personal employee data the Company may be legally required to protect.</div>    </div>", "risks": "Third Party", "sector": "Materials", "sub": "Commodity Chemicals", "company": "Dow Inc."}, {"html": "<div class=\"report-card\">      <h3>Dow Inc. <span class=\"symbol\">(DOW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Commodity Chemicals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1751788/000175178825000012/dow-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1751788/000175178824000010/dow-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Increased global cybersecurity vulnerabilities, threats and <span style='color:green;'>targeted cyberattacks, which are becoming</span> more sophisticated <span style='color:green;'>as attackers increase their utilization of developing techniques</span> and <span style='color:red;text-decoration:line-through;'>targeted cyberattacks</span> <span style='color:green;'>tools, including AI,</span> continue to pose risks to the Company\u2019s products, systems and networks, and the confidentiality, availability and integrity of the Company\u2019s data.</div>    </div>", "risks": "Malicious Actors", "sector": "Materials", "sub": "Commodity Chemicals", "company": "Dow Inc."}, {"html": "<div class=\"report-card\">      <h3>Duke Energy <span class=\"symbol\">(DUK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Electric Utilities</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1326160/000132616025000072/duk-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1326160/000132616024000037/duk-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We expect our customers to continue to demand more sophisticated technology-driven solutions and we must enhance or replace our information technology systems in response. This involves significant development and implementation costs to keep pace with changing <span style='color:red;text-decoration:line-through;'>technologies</span> <span style='color:green;'>technologies, including artificial intelligence,</span> and customer demand. If we fail to successfully implement critical technology, or if it does not provide the anticipated benefits or meet customer demands, such failure could materially adversely affect our business strategy as well as impact the results of operations, financial position and cash flows of the Duke Energy Registrants.</div>    </div>", "risks": "", "sector": "Utilities", "sub": "Electric Utilities", "company": "Duke Energy"}, {"html": "<div class=\"report-card\">      <h3>eBay Inc. <span class=\"symbol\">(EBAY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Broadline Retail</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1065088/000106508825000037/ebay-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1065088/000106508824000036/ebay-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We may be slower and less efficient than our competitors in developing our Gen AI capabilities and in optimizing and utilizing our dataset assets with other AI technologies.</span></div>    </div>", "risks": "Competition", "sector": "Consumer Discretionary", "sub": "Broadline Retail", "company": "eBay Inc."}, {"html": "<div class=\"report-card\">      <h3>eBay Inc. <span class=\"symbol\">(EBAY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Broadline Retail</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span><span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1065088/000106508825000037/ebay-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1065088/000106508824000036/ebay-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For example, the intellectual property ownership and license rights surrounding AI technologies, including <span style='color:red;text-decoration:line-through;'>GAI,</span> <span style='color:green;'>Gen AI,</span> have not been fully addressed by U.S. courts or by U.S. or international laws or regulations, and the use or adoption of third-party <span style='color:red;text-decoration:line-through;'>GAI technologies</span> <span style='color:green;'>Gen AI technologies, and their related datasets,</span> into our products and services may result in <span style='color:red;text-decoration:line-through;'>exposure to</span> claims of intellectual property infringement or misappropriation, <span style='color:green;'>or in the inability to enforce our rights against third parties,</span> which could <span style='color:green;'>in each case</span> harm our business and financial results.</div>    </div>", "risks": "Data and IP Protection; Third Party", "sector": "Consumer Discretionary", "sub": "Broadline Retail", "company": "eBay Inc."}, {"html": "<div class=\"report-card\">      <h3>eBay Inc. <span class=\"symbol\">(EBAY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Broadline Retail</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1065088/000106508825000037/ebay-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1065088/000106508824000036/ebay-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For example, the European <span style='color:red;text-decoration:line-through;'>Union has been continuing its work on the</span> <span style='color:green;'>Union\u2019s comprehensive</span> Artificial Intelligence <span style='color:red;text-decoration:line-through;'>Act,</span> <span style='color:green;'>Act (\u201cEU AI Act\u201d),</span> which lays out the <span style='color:red;text-decoration:line-through;'>guardrails</span> <span style='color:green;'>parameters</span> for AI systems where non-compliance can result in fines up to 35 million euros or 7% of global <span style='color:red;text-decoration:line-through;'>turnover.</span> <span style='color:green;'>turnover, came into force in August 2024.</span></div>    </div>", "risks": "EU AI Act", "sector": "Consumer Discretionary", "sub": "Broadline Retail", "company": "eBay Inc."}, {"html": "<div class=\"report-card\">      <h3>eBay Inc. <span class=\"symbol\">(EBAY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Broadline Retail</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1065088/000106508825000037/ebay-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1065088/000106508824000036/ebay-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In the last two years, we have experienced and reported data breaches to regulators, but we do not believe these recent events were material and they did not result in any penalties or sanctions. However, future events could have a material impact on our business, results of operations or reputation. For more information about our cybersecurity risk management, governance and oversight, see \u201cItem 1C: Cybersecurity.\u201d Future attacks are likely to be increasingly sophisticated and highly targeted, particularly due to rapid developments in AI. Within the last year, hackers unsuccessfully targeted us using an AI-generated voice impersonation of a company leader. We expect these types of attacks to continue and evolve.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Discretionary", "sub": "Broadline Retail", "company": "eBay Inc."}, {"html": "<div class=\"report-card\">      <h3>eBay Inc. <span class=\"symbol\">(EBAY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Broadline Retail</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1065088/000106508825000037/ebay-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1065088/000106508824000036/ebay-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>GAI algorithms are based on machine learning and predictive analytics, which can create unintended biases and discriminatory outcomes, and outputs can be completely fabricated or false (e.g., GAI hallucinatory behavior) or contain copyrighted or other protected material.</span></div>    </div>", "risks": "Bias", "sector": "Consumer Discretionary", "sub": "Broadline Retail", "company": "eBay Inc."}, {"html": "<div class=\"report-card\">      <h3>Ecolab <span class=\"symbol\">(ECL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Specialty Chemicals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/31462/000155837025001263/ecl-20241231x10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/31462/000155837024001581/ecl-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our competitors may develop and implement AI technologies more effectively, gaining a competitive advantage.</span></div>    </div>", "risks": "Competition", "sector": "Materials", "sub": "Specialty Chemicals", "company": "Ecolab"}, {"html": "<div class=\"report-card\">      <h3>Ecolab <span class=\"symbol\">(ECL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Specialty Chemicals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/31462/000155837025001263/ecl-20241231x10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/31462/000155837024001581/ecl-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Operational and Technical Risks: AI technologies are complex and rapidly evolving. Flaws in AI algorithms, training methodologies, or datasets may lead to unintended consequences, such as operational disruptions, erroneous decision-making, or data loss. These issues could impair the effectiveness of our AI systems and result in significant operational challenges. Additionally, software we purchase or lease from third-party vendors could become inoperable (via attack from a bad actor, network failure, code error, etc.), such that it adversely impacts Ecolab\u2019s ability to deliver products or services to its customers, resulting in financial losses, legal liabilities, and damages to our reputation.</span></div>    </div>", "risks": "Third Party", "sector": "Materials", "sub": "Specialty Chemicals", "company": "Ecolab"}, {"html": "<div class=\"report-card\">      <h3>Ecolab <span class=\"symbol\">(ECL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Specialty Chemicals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/31462/000155837025001263/ecl-20241231x10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/31462/000155837024001581/ecl-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI systems can be vulnerable to cybersecurity threats, such as data breaches and unauthorized access.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Materials", "sub": "Specialty Chemicals", "company": "Ecolab"}, {"html": "<div class=\"report-card\">      <h3>Ecolab <span class=\"symbol\">(ECL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Specialty Chemicals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/31462/000155837025001263/ecl-20241231x10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/31462/000155837024001581/ecl-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Incidents related to AI, such as biased outcomes or privacy breaches, could lead to negative publicity and reduce public trust in our AI solutions.</span></div>    </div>", "risks": "Bias", "sector": "Materials", "sub": "Specialty Chemicals", "company": "Ecolab"}, {"html": "<div class=\"report-card\">      <h3>Ecolab <span class=\"symbol\">(ECL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Specialty Chemicals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/31462/000155837025001263/ecl-20241231x10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/31462/000155837024001581/ecl-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>There is no assurance that our investments in AI will yield the anticipated benefits or that customers will adopt our AI-enhanced offerings, potentially impacting our financial results.</span></div>    </div>", "risks": "Disillusionment", "sector": "Materials", "sub": "Specialty Chemicals", "company": "Ecolab"}, {"html": "<div class=\"report-card\">      <h3>Edwards Lifesciences <span class=\"symbol\">(EW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1099800/000109980025000005/ew-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1099800/000109980024000004/ew-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, cybersecurity threats and the techniques used in cybersecurity attacks change, develop, and evolve rapidly, including from emerging technologies, such as advanced forms of artificial intelligence (\"AI\") and quantum computing.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Edwards Lifesciences"}, {"html": "<div class=\"report-card\">      <h3>Electronic Arts <span class=\"symbol\">(EA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Interactive Home Entertainment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/712515/000071251524000023/ea-20240331.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/712515/000071251523000028/ea-20230331.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, as artificial intelligence capabilities develop rapidly, individuals or groups of hackers and sophisticated organizations, may use these technologies to create new sophisticated attack methods that are increasingly automated, targeted and coordinated and more difficult to defend against.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Communication Services", "sub": "Interactive Home Entertainment", "company": "Electronic Arts"}, {"html": "<div class=\"report-card\">      <h3>Elevance Health <span class=\"symbol\">(ELV)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Managed Health Care</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1156039/000115603925000010/elv-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1156039/000115603924000015/elv-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Failure to adequately implement, consolidate, integrate, streamline, maintain and upgrade effective and efficient information <span style='color:red;text-decoration:line-through;'>systems</span> <span style='color:green;'>systems, including those powered by or incorporating AI,</span> with sufficiently advanced technological capabilities could result in investigations, audits, fines and penalties, competitive and cost disadvantages to us compared to our competitors, <span style='color:red;text-decoration:line-through;'>could divert</span> <span style='color:green;'>contractual damages, and diversion of</span> management\u2019s time, and could have a material adverse effect on our business, financial condition and results of operations.</div>    </div>", "risks": "Competition", "sector": "Health Care", "sub": "Managed Health Care", "company": "Elevance Health"}, {"html": "<div class=\"report-card\">      <h3>Elevance Health <span class=\"symbol\">(ELV)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Managed Health Care</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1156039/000115603925000010/elv-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1156039/000115603924000015/elv-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>Further, as connectivity of technologies advances, artificial intelligence and business processes supported by large language models that are used by businesses and consumers may not operate as expected or may lead to unintentional bias, discrimination and/or data exposure.</span></div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Managed Health Care", "company": "Elevance Health"}, {"html": "<div class=\"report-card\">      <h3>Elevance Health <span class=\"symbol\">(ELV)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Managed Health Care</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1156039/000115603925000010/elv-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1156039/000115603924000015/elv-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our AI-related efforts may give rise to risks related to accuracy, harmful bias, discrimination, intellectual property infringement, data privacy, and cybersecurity, among others.</span></div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Managed Health Care", "company": "Elevance Health"}, {"html": "<div class=\"report-card\">      <h3>Elevance Health <span class=\"symbol\">(ELV)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Managed Health Care</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1156039/000115603925000010/elv-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1156039/000115603924000015/elv-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The rapid advancement of these technologies presents opportunities for us, but there are risks associated with the development and deployment of AI, and there can be no assurance that our usage of AI will enhance our operations.</span></div>    </div>", "risks": "Disillusionment", "sector": "Health Care", "sub": "Managed Health Care", "company": "Elevance Health"}, {"html": "<div class=\"report-card\">      <h3>Emerson Electric <span class=\"symbol\">(EMR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Electrical Components & Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/32604/000003260424000041/emr-20240930.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/32604/000003260423000044/emr-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Our businesses are affected by varying degrees of technological <span style='color:red;text-decoration:line-through;'>change</span> <span style='color:green;'>change, such as, among others, artificial intelligences and machine learning,</span> and corresponding shifts in customer demand, which result in unpredictable product transitions, shortened life cycles and increased importance of being first to market with new products and services.</div>    </div>", "risks": "Competition", "sector": "Industrials", "sub": "Electrical Components & Equipment", "company": "Emerson Electric"}, {"html": "<div class=\"report-card\">      <h3>Emerson Electric <span class=\"symbol\">(EMR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Electrical Components & Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/32604/000003260424000041/emr-20240930.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/32604/000003260423000044/emr-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We anticipate that the risk of cybersecurity attacks will increase as artificial intelligence capabilities improve and are increasingly used to identify vulnerabilities and construct increasingly sophisticated cybersecurity attacks, with the possibility of additional vulnerabilities being introduced through our own use of artificial intelligence and its use by our stakeholders, including vendors and customers, among others.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Industrials", "sub": "Electrical Components & Equipment", "company": "Emerson Electric"}, {"html": "<div class=\"report-card\">      <h3>Enphase Energy <span class=\"symbol\">(ENPH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductor Materials & Equipment</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1463101/000146310125000024/enph-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1463101/000146310124000024/enph-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Emerging issues related to the development and use of artificial intelligence could give rise to legal or regulatory action, damage our reputation, or otherwise materially harm of our business. Our development and use of artificial intelligence (\u201cAI\u201d) technology in our products and operations remains in the early phases. While we aim to develop and use AI responsibly and attempt to mitigate ethical and legal issues presented by its use, we may ultimately be unsuccessful in identifying or resolving issues before they arise. AI technologies are complex and rapidly evolving, and the technologies that we develop or use may ultimately be flawed. Moreover, AI technology is subject to rapidly evolving domestic and international laws and regulations, which could impose significant costs and obligations on us. This includes actual and pending orders and laws by the U.S. federal government, the European Union and other jurisdictions in which we operate. Emerging regulations may also pertain to data privacy, data protection, and the ethical use of AI, as well as clarifying intellectual property considerations. Our use of AI could give rise to legal or regulatory action or increased scrutiny or liability, and may damage our reputation or otherwise materially harm our business.</span></div>    </div>", "risks": "", "sector": "Information Technology", "sub": "Semiconductor Materials & Equipment", "company": "Enphase Energy"}, {"html": "<div class=\"report-card\">      <h3>Enphase Energy <span class=\"symbol\">(ENPH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductor Materials & Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1463101/000146310125000024/enph-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1463101/000146310124000024/enph-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Despite our implementation of security measures, our systems are vulnerable to damages from computer viruses, computer denial-of-service attacks, ransomware, supply chain attacks, worms and other malicious software programs or other attacks, covert introduction of malware to computers and networks, unauthorized access, including impersonation of authorized users, social-engineering attacks (including through deep fakes, which may be increasingly more difficult to identify as fake, and phishing attacks), efforts to discover and exploit any security vulnerabilities or securities weaknesses and other similar issues and disruptions.</div>    </div>", "risks": "Deepfakes", "sector": "Information Technology", "sub": "Semiconductor Materials & Equipment", "company": "Enphase Energy"}, {"html": "<div class=\"report-card\">      <h3>Entergy <span class=\"symbol\">(ETR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Electric Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Energy'>Energy</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/65984/000006598425000012/etr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/65984/000006598424000012/etr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Subject to pending regulatory approvals, certain Utility operating companies are planning to make significant infrastructure investments in new solar projects, natural gas power plants, and other transmission and generation assets to power new large-scale data centers. These infrastructure investments are being made primarily in connection with electric service agreements with a small number of customer representing significant new load to provide power for new data centers being constructed to support artificial intelligence and other technology capabilities. The Utility operating companies continue to explore similar opportunities and may engage in additional similar transactions in the future. This concentration of business with a small number of customers in an industry based on emerging technologies, including artificial intelligence and machine learning, presents several risks for these Utility operating companies. These technologies and their related business applications have developed rapidly in recent years and continue to develop. Entergy cannot predict the rate at which or the extent to which these emerging technologies will be broadly adopted and successful as business models. Changes in industry practice or advances in these technologies could reduce the demand for electricity to power data centers. Additionally, these customers may experience business downturn, which may cause the loss of these customers or may weaken their financial condition. Similarly, customers may reduce their investment in these new technologies or abandon them entirely.</span></div>    </div>", "risks": "Energy", "sector": "Utilities", "sub": "Electric Utilities", "company": "Entergy"}, {"html": "<div class=\"report-card\">      <h3>Entergy <span class=\"symbol\">(ETR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Electric Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/65984/000006598425000012/etr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/65984/000006598424000012/etr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Given the <span style='color:green;'>fraught geopolitical landscape and</span> rapid technological advancements of existing and emerging threats, including threats fueled by artificial intelligence, Entergy\u2019s technology systems remain inherently vulnerable despite implementations and enhancements of the multiple layers of security and controls.</div>    </div>", "risks": "Malicious Actors", "sector": "Utilities", "sub": "Electric Utilities", "company": "Entergy"}, {"html": "<div class=\"report-card\">      <h3>EOG Resources <span class=\"symbol\">(EOG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Energy</span>          <span class=\"tag\">Oil & Gas Exploration & Production</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/821189/000082118925000011/eog-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/821189/000082118924000011/eog-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Security incidents can also occur as a result of non-technical issues, such as physical theft. More recently, advancements in artificial intelligence (AI) may pose serious risks for many of the traditional tools used to identify individuals, including voice recognition (whether by machine or the human ear), facial recognition or screening questions to confirm identities. In addition, generative AI systems may also be used by malicious actors to create more sophisticated cyber attacks (i.e., more realistic phishing or other attacks). The advancements in AI could also lead to an increase in the frequency of identity fraud or cyber attacks (whether successful or unsuccessful), which could cause us to incur increasing costs, including costs to deploy additional personnel, protection technologies and policies and procedures, train employees, and engage third-party experts and consultants.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Energy", "sub": "Oil & Gas Exploration & Production", "company": "EOG Resources"}, {"html": "<div class=\"report-card\">      <h3>EPAM Systems <span class=\"symbol\">(EPAM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1352010/000135201025000007/epam-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1352010/000135201024000008/epam-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The market for our services is highly <span style='color:red;text-decoration:line-through;'>competitive,</span> <span style='color:green;'>competitive</span> and we expect competition to persist and <span style='color:red;text-decoration:line-through;'>intensify.</span> <span style='color:green;'>intensify, especially as we and our competitors develop generative AI capabilities and specialties.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "EPAM Systems"}, {"html": "<div class=\"report-card\">      <h3>EPAM Systems <span class=\"symbol\">(EPAM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1352010/000135201025000007/epam-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1352010/000135201024000008/epam-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">If we are unable or slow to develop, adopt, and deploy generative AI technologies in our business, <span style='color:red;text-decoration:line-through;'>our competitiveness</span> <span style='color:green;'>we will not remain competitive</span> against our industry <span style='color:red;text-decoration:line-through;'>peers will suffer.</span> <span style='color:green;'>peers.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "EPAM Systems"}, {"html": "<div class=\"report-card\">      <h3>Equifax <span class=\"symbol\">(EFX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Research & Consulting Services</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/33185/000003318525000025/efx-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/33185/000003318524000017/efx-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Similarly, if the artificial intelligence systems used for deploying new applications or improving operational processes are incorrectly configured, if the data we use to train them is incomplete or inadequate, or if sufficient testing is not completed, the performance of our business operations, as well as our reputation, could suffer.</span></div>    </div>", "risks": "", "sector": "Industrials", "sub": "Research & Consulting Services", "company": "Equifax"}, {"html": "<div class=\"report-card\">      <h3>Equifax <span class=\"symbol\">(EFX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Research & Consulting Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Skills'>Skills</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/33185/000003318525000025/efx-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/33185/000003318524000017/efx-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Increased retention risk exists in certain key areas of our operations, such as <span style='color:green;'>data and analytics,</span> IT and data security, which require specialized skills, <span style='color:red;text-decoration:line-through;'>such as migrating legacy computer systems to the cloud, data security</span> <span style='color:green;'>including cloud security, application development and maintenance and artificial intelligence</span> expertise and analytical modeling.</div>    </div>", "risks": "Skills", "sector": "Industrials", "sub": "Research & Consulting Services", "company": "Equifax"}, {"html": "<div class=\"report-card\">      <h3>Equifax <span class=\"symbol\">(EFX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Research & Consulting Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/33185/000003318525000025/efx-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/33185/000003318524000017/efx-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Further, our competitors or other third parties may incorporate artificial intelligence into their products <span style='color:green;'>and business operations</span> more quickly or more successfully than us, which could impair our ability to compete effectively and adversely affect our results of operations.</div>    </div>", "risks": "Competition", "sector": "Industrials", "sub": "Research & Consulting Services", "company": "Equifax"}, {"html": "<div class=\"report-card\">      <h3>Equifax <span class=\"symbol\">(EFX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Research & Consulting Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/33185/000003318525000025/efx-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/33185/000003318524000017/efx-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">If the models are incorrectly designed, <span style='color:green;'>if</span> the data we use to train them is incomplete, <span style='color:red;text-decoration:line-through;'>inadequate,</span> <span style='color:green;'>inadequate</span> or biased in some way, or if we do not have sufficient rights to use the data on which our models rely, the performance of our products and business, as well as our reputation, could suffer or we could incur liability through the violation of laws, third-party <span style='color:red;text-decoration:line-through;'>privacy,</span> <span style='color:green;'>privacy</span> or other rights, or contracts to which we are a party.</div>    </div>", "risks": "Bias", "sector": "Industrials", "sub": "Research & Consulting Services", "company": "Equifax"}, {"html": "<div class=\"report-card\">      <h3>Equinix <span class=\"symbol\">(EQIX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Data Center REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Skills'>Skills</span><span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1101239/000162828025005126/eqix-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1101239/000162828024005350/eqix-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We have begun leveraging AI and machine learning capabilities for our employees to use in their day-to-day operations. Failure to invest adequately in such capabilities may result in us lagging behind our competitors in terms of improving operational efficiency and achieving superior outcomes for our business and our customers. As we embark on these initiatives, we may encounter challenges such as a shortage of appropriate data to train internal AI models, a lack of skilled talent to effectively execute our strategy of leveraging AI internally, or the possibility that the tools we utilize may not deliver the intended value.</span></div>    </div>", "risks": "Skills; Competition", "sector": "Real Estate", "sub": "Data Center REITs", "company": "Equinix"}, {"html": "<div class=\"report-card\">      <h3>Equinix <span class=\"symbol\">(EQIX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Data Center REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1101239/000162828025005126/eqix-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1101239/000162828024005350/eqix-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Use of third-party AI tools can also bring information security, data privacy and legal risks.</span></div>    </div>", "risks": "Third Party", "sector": "Real Estate", "sub": "Data Center REITs", "company": "Equinix"}, {"html": "<div class=\"report-card\">      <h3>Equinix <span class=\"symbol\">(EQIX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Data Center REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1101239/000162828025005126/eqix-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1101239/000162828024005350/eqix-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We expect there may also be forthcoming regulation in areas of regulating the responsible use of <span style='color:red;text-decoration:line-through;'>artificial intelligence,</span> <span style='color:green;'>AI,</span> such as the proposed EU Artificial Intelligence Act and the introduction of heightened measures to be adopted with respect to cybersecurity, <span style='color:green;'>operational resilience,</span> data privacy, sustainability, taxation and data security, any of which could impact us and our customers.</div>    </div>", "risks": "EU AI Act", "sector": "Real Estate", "sub": "Data Center REITs", "company": "Equinix"}, {"html": "<div class=\"report-card\">      <h3>Equinix <span class=\"symbol\">(EQIX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Data Center REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1101239/000162828025005126/eqix-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1101239/000162828024005350/eqix-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The development and use of artificial intelligence in the workplace presents risks and challenges that may adversely impact our business and operating results.</span> We <span style='color:green;'>have begun leveraging AI and machine learning capabilities for our employees to use in their day-to-day operations. Failure to invest adequately in such capabilities</span> may <span style='color:red;text-decoration:line-through;'>be</span> <span style='color:green;'>result in us lagging behind our competitors in terms of improving operational efficiency and achieving superior outcomes for our business and our customers. As we embark on these initiatives, we may encounter challenges such as a shortage of appropriate data to train internal AI models, a lack of skilled talent to effectively execute our strategy of leveraging AI internally, or the possibility that the tools we utilize may not deliver the intended value.</span></div>    </div>", "risks": "Disillusionment", "sector": "Real Estate", "sub": "Data Center REITs", "company": "Equinix"}, {"html": "<div class=\"report-card\">      <h3>Erie Indemnity <span class=\"symbol\">(ERIE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Insurance Brokers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Skills'>Skills</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/922621/000092262125000004/erie-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/922621/000092262124000006/erie-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">In addition, talented employees in <span style='color:red;text-decoration:line-through;'>the</span> actuarial, finance, human resources, <span style='color:green;'>law, risk management and</span> information technology, <span style='color:red;text-decoration:line-through;'>law,</span> <span style='color:green;'>including artificial intelligence</span> and <span style='color:red;text-decoration:line-through;'>risk management areas</span> <span style='color:green;'>data analytics,</span> are also essential to support our core functions.</div>    </div>", "risks": "Skills", "sector": "Financials", "sub": "Insurance Brokers", "company": "Erie Indemnity"}, {"html": "<div class=\"report-card\">      <h3>Essex Property Trust <span class=\"symbol\">(ESS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Multi-Family Residential REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Work Displacement'>Work Displacement</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/920522/000092052225000024/ess-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/920522/000092052224000033/ess-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">\u2022changes in the general or local economic climate that could affect demand for housing, including <span style='color:red;text-decoration:line-through;'>layoffs, due to</span> an increase in the use of new technologies <span style='color:green;'>and artificial intelligence</span> to replace workers, <span style='color:red;text-decoration:line-through;'>slowing job growth,</span> and other events negatively impacting local employment rates, <span style='color:green;'>tenant dispersion,</span> wages and the local economy; \u2022changes in demand for rental housing due to a variety of factors, including <span style='color:red;text-decoration:line-through;'>relocations of employees from local employers, increased worker locational flexibility and</span> changing <span style='color:red;text-decoration:line-through;'>demographics,</span> <span style='color:green;'>demographics or policies governing legal immigration,</span> which could lead to a relative decrease in the renting <span style='color:red;text-decoration:line-through;'>population as the domestic population skews older due to the aging of baby boomers and older people may be more likely to purchase, rather than rent, homes,</span> <span style='color:green;'>population;</span> \u2022changes in supply and cost of housing; \u2022changes in economic conditions, such as high <span style='color:green;'>or sustained</span> inflationary periods in which our operating and financing costs may increase at a rate greater than our ability to increase rents, <span style='color:green;'>thereby compressing our operating margins which may have a material adverse effect on our business,</span> or deflationary periods where rents may decline more quickly relative to operating and financing costs; and \u2022the appeal and desirability of our communities to tenants relative to other housing alternatives, including the size and amenity offerings, safety and location convenience, and our technology offerings.</div>    </div>", "risks": "Work Displacement", "sector": "Real Estate", "sub": "Multi-Family Residential REITs", "company": "Essex Property Trust"}, {"html": "<div class=\"report-card\">      <h3>Essex Property Trust <span class=\"symbol\">(ESS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Multi-Family Residential REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/920522/000092052225000024/ess-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/920522/000092052224000033/ess-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Reliance on third party software providers to host systems is critical to our operations and to provide the Company with <span style='color:red;text-decoration:line-through;'>data.</span> <span style='color:green;'>data, and regulation of those providers and practices may impact operational capabilities.</span> We rely <span style='color:green;'>on, or may rely</span> on <span style='color:green;'>in the future,</span> certain key software vendors to support business practices critical to our operations, including the collection <span style='color:green;'>and understanding</span> of rent and ancillary <span style='color:red;text-decoration:line-through;'>income and</span> <span style='color:green;'>income, including artificial intelligence platforms,</span> communication with our <span style='color:green;'>tenants, interaction and evaluation and/or qualification of our prospective</span> tenants, and to provide us with <span style='color:red;text-decoration:line-through;'>data, such as environmental, social and governance (\u201cESG\u201d)</span> data. The market is currently experiencing a consolidation of <span style='color:green;'>and increased scrutiny on</span> these software <span style='color:red;text-decoration:line-through;'>vendors,</span> <span style='color:green;'>vendors and algorithmic platforms,</span> particularly in the <span style='color:red;text-decoration:line-through;'>multi-family</span> <span style='color:green;'>multifamily</span> space, which may negatively impact the Company\u2019s choice of vendor and pricing <span style='color:red;text-decoration:line-through;'>options.</span> <span style='color:green;'>options due to lack of optionality or litigation challenges of the vendor or the vendor\u2019s underlying algorithmic platform.</span> Moreover, if any of these key vendors were to terminate our relationship or access to data, or fail, we could suffer losses while we seek to replace the services and information provided by the vendors.</div>    </div>", "risks": "Third Party", "sector": "Real Estate", "sub": "Multi-Family Residential REITs", "company": "Essex Property Trust"}, {"html": "<div class=\"report-card\">      <h3>Essex Property Trust <span class=\"symbol\">(ESS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Multi-Family Residential REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/920522/000092052225000024/ess-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/920522/000092052224000033/ess-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">These threats <span style='color:green;'>may be amplified by emerging artificial intelligence technologies and</span> can also come from diverse threat actors, such as state-sponsored organizations, opportunistic hackers and hacktivists.</div>    </div>", "risks": "Malicious Actors", "sector": "Real Estate", "sub": "Multi-Family Residential REITs", "company": "Essex Property Trust"}, {"html": "<div class=\"report-card\">      <h3>Est\u00e9e Lauder Companies (The) <span class=\"symbol\">(EL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Personal Care Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1001250/000100125024000116/el-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1001250/000100125023000112/el-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Competition in the beauty business is based on a variety of factors including pricing of products, innovation, perceived value, service to the consumer, promotional activities, advertising, special events, new product introductions, <span style='color:green;'>and</span> e-commerce <span style='color:green;'>initiatives, including the ability to effectively leverage existing</span> and <span style='color:red;text-decoration:line-through;'>m-commerce initiatives</span> <span style='color:green;'>emerging digital technologies, such as AI</span> and <span style='color:red;text-decoration:line-through;'>other activities.</span> <span style='color:green;'>data analytics, to gain more commercial insights and develop relevant marketing concepts and advertising to reach consumers.</span></div>    </div>", "risks": "Competition", "sector": "Consumer Staples", "sub": "Personal Care Products", "company": "Est\u00e9e Lauder Companies (The)"}, {"html": "<div class=\"report-card\">      <h3>Est\u00e9e Lauder Companies (The) <span class=\"symbol\">(EL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Personal Care Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1001250/000100125024000116/el-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1001250/000100125023000112/el-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The evolution and adoption of emerging technologies, such as AI, may intensify cybersecurity risks as techniques used in cyberattacks and cybersecurity incidents continue to evolve and develop.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Staples", "sub": "Personal Care Products", "company": "Est\u00e9e Lauder Companies (The)"}, {"html": "<div class=\"report-card\">      <h3>Everest Group <span class=\"symbol\">(EG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Reinsurance</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1095073/000109507325000015/eg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1095073/000109507324000009/eg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Regulatory and legislative developments related to <span style='color:red;text-decoration:line-through;'>cybersecurity</span> <span style='color:green;'>cybersecurity, privacy, data protection and artificial intelligence</span> could have an adverse impact on our business.</div>    </div>", "risks": "", "sector": "Financials", "sub": "Reinsurance", "company": "Everest Group"}, {"html": "<div class=\"report-card\">      <h3>Evergy <span class=\"symbol\">(EVRG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Electric Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1711269/000171126925000004/evrg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1711269/000171126924000007/evrg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI algorithms that the Evergy Companies or its third-party vendors use may be flawed or may be based on datasets that are biased or insufficient.</span></div>    </div>", "risks": "Bias", "sector": "Utilities", "sub": "Electric Utilities", "company": "Evergy"}, {"html": "<div class=\"report-card\">      <h3>Exelon <span class=\"symbol\">(EXC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Electric Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Energy'>Energy</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1109357/000110935725000043/exc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1109357/000110935724000053/exc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Exelon has forecast substantial increases in load, driven largely by the increasing use of data processing facilities dedicated to artificial intelligence technologies. If third-party power generation capacity is insufficient to meet any Utility Registrant\u2019s customers\u2019 electricity demand or customers\u2019 electricity demand across PJM over any period, transmission and distribution services may be diminished or interrupted, and results of operations, financial condition, and cash flows could be adversely affected. In the event generation capacity is insufficient to meet demand, the Utility Registrants\u2019 customers may experience greater price volatility, power service outages during peak demand periods or during generation contingencies (e.g., severe storms), and electricity use limits to maintain system balance. Furthermore, the Utility Registrants may be unable to support new economic development should generation constraints last for extended periods.</span></div>    </div>", "risks": "Energy", "sector": "Utilities", "sub": "Electric Utilities", "company": "Exelon"}, {"html": "<div class=\"report-card\">      <h3>Expedia Group <span class=\"symbol\">(EXPE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1324424/000132442425000008/expe-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1324424/000132442424000007/expe-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Increasing competition from current and emerging competitors, the introduction of new technologies and the continued expansion of existing technologies, such as <span style='color:green;'>AI,</span> metasearch and other search engine technologies, may force us to make changes to our business models, which could affect our financial performance and liquidity.</div>    </div>", "risks": "Competition", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Expedia Group"}, {"html": "<div class=\"report-card\">      <h3>Expedia Group <span class=\"symbol\">(EXPE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1324424/000132442425000008/expe-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1324424/000132442424000007/expe-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, technological developments in generative artificial intelligence (\"AI\") tools may be increasingly used to create competing offerings such as AI powered digital assistants, which may further increase competition.</span></div>    </div>", "risks": "Competition", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Expedia Group"}, {"html": "<div class=\"report-card\">      <h3>Expedia Group <span class=\"symbol\">(EXPE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1324424/000132442425000008/expe-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1324424/000132442424000007/expe-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Additionally, some actors are using AI technology to launch more sophisticated, automated, targeted and coordinated <span style='color:red;text-decoration:line-through;'>attacks</span> <span style='color:green;'>attacks, including phishing and account takeover attacks,</span> that are more difficult to detect.</div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Expedia Group"}, {"html": "<div class=\"report-card\">      <h3>F5, Inc. <span class=\"symbol\">(FFIV)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Communications Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1048695/000104869524000185/ffiv-20240930.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1048695/000104869523000039/ffiv-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">AI <span style='color:red;text-decoration:line-through;'>algorithms and</span> <span style='color:green;'>solutions may use algorithms, datasets, or</span> training methodologies <span style='color:red;text-decoration:line-through;'>may be flawed.</span> <span style='color:green;'>that are incomplete, reflect biases, or contain other flaws or deficiencies.</span></div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Communications Equipment", "company": "F5, Inc."}, {"html": "<div class=\"report-card\">      <h3>FactSet <span class=\"symbol\">(FDS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1013237/000101323724000141/fds-20240831.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1013237/000101323723000128/fds-20230831.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">To remain competitive, we must adapt and migrate to new technologies, applications and <span style='color:red;text-decoration:line-through;'>processes.</span> <span style='color:green;'>processes, including the evolving use of AI technology.</span></div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "FactSet"}, {"html": "<div class=\"report-card\">      <h3>FactSet <span class=\"symbol\">(FDS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1013237/000101323724000141/fds-20240831.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1013237/000101323723000128/fds-20230831.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>Third</span> <span style='color:green;'>Despite our investments in, and commitment of resources to, the development of AI products and technologies, we may not be successful in generating revenues from these efforts. In addition, third</span> parties may be able to use AI to create technology that could reduce demand for our <span style='color:red;text-decoration:line-through;'>products.</span> <span style='color:green;'>products and services.</span></div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "FactSet"}, {"html": "<div class=\"report-card\">      <h3>FactSet <span class=\"symbol\">(FDS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1013237/000101323724000141/fds-20240831.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1013237/000101323723000128/fds-20230831.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Failure to develop and market new products and enhancements that maintain our technological and competitive position and failure to anticipate and respond to changes in the marketplace for our products and customer demands The market for our products is characterized by rapid technological change, including <span style='color:green;'>developing technologies such as AI,</span> methods and speed of delivery, changes in client demands, development of new investment instruments and evolving industry standards.</div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "FactSet"}, {"html": "<div class=\"report-card\">      <h3>FactSet <span class=\"symbol\">(FDS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1013237/000101323724000141/fds-20240831.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1013237/000101323723000128/fds-20230831.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If the content, analyses, or recommendations that AI applications assist in producing are, or are alleged to be, deficient, inaccurate, unreliable, misleading, biased, discriminatory or otherwise flawed, any of which may not be easily detectable, our business and reputation may be adversely affected.</span></div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "FactSet"}, {"html": "<div class=\"report-card\">      <h3>FactSet <span class=\"symbol\">(FDS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1013237/000101323724000141/fds-20240831.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1013237/000101323723000128/fds-20230831.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Despite our investments in, and commitment of resources to, the development of AI products and technologies, we may not be successful in generating revenues from these efforts.</span></div>    </div>", "risks": "Disillusionment", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "FactSet"}, {"html": "<div class=\"report-card\">      <h3>FactSet <span class=\"symbol\">(FDS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1013237/000101323724000141/fds-20240831.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1013237/000101323723000128/fds-20230831.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">We must make long-term investments and commit significant <span style='color:red;text-decoration:line-through;'>resources</span> <span style='color:green;'>resources, for example, to developing and utilizing AI technology,</span> before knowing whether these investments will eventually result in products and services that satisfy our clients' needs and generate revenues required to provide the desired results.</div>    </div>", "risks": "Disillusionment", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "FactSet"}, {"html": "<div class=\"report-card\">      <h3>Fair Isaac <span class=\"symbol\">(FICO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/814547/000162828024045719/fico-20240930.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/814547/000081454723000022/fico-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">In our markets, technology changes rapidly, and there are continuous improvements in computer hardware, network operating systems, programming tools, programming languages, operating systems, database technologies, cloud-based technologies and the use of the Internet. For example, artificial intelligence <span style='color:red;text-decoration:line-through;'>technologies</span> <span style='color:green;'>technologies, including generative artificial intelligence,</span> and their use are currently undergoing rapid change. If we fail to enhance our current products and develop new products in response to changes in technology or industry standards, or if we fail to bring product enhancements or new product developments to market quickly enough, our products could rapidly become less competitive or obsolete.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Application Software", "company": "Fair Isaac"}, {"html": "<div class=\"report-card\">      <h3>Fair Isaac <span class=\"symbol\">(FICO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/814547/000162828024045719/fico-20240930.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/814547/000081454723000022/fico-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">The European Commission has <span style='color:red;text-decoration:line-through;'>also released draft proposed regulations (i.e.,</span> <span style='color:green;'>finalized</span> the EU AI <span style='color:red;text-decoration:line-through;'>Act) that would establish</span> <span style='color:green;'>Act, which establishes</span> requirements for the provision and use of products that leverage artificial <span style='color:red;text-decoration:line-through;'>intelligence, machine learning, and similar analytic and statistical modeling technologies,</span> <span style='color:green;'>intelligence systems,</span> including <span style='color:green;'>in</span> credit scoring.</div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Application Software", "company": "Fair Isaac"}, {"html": "<div class=\"report-card\">      <h3>Fair Isaac <span class=\"symbol\">(FICO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/814547/000162828024045719/fico-20240930.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/814547/000081454723000022/fico-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">The <span style='color:red;text-decoration:line-through;'>final version of</span> EU AI Act <span style='color:red;text-decoration:line-through;'>is expected to be published by the end</span> <span style='color:green;'>entered into force on August 1, 2024, and its provisions take effect between six and 36 months after that date, with most</span> of <span style='color:red;text-decoration:line-through;'>2023 and is expected to become</span> <span style='color:green;'>those provisions becoming</span> effective in 2026.</div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Application Software", "company": "Fair Isaac"}, {"html": "<div class=\"report-card\">      <h3>FedEx <span class=\"symbol\">(FDX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Air Freight & Logistics</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1048911/000095017024083577/fdx-20240531.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1048911/000095017023033201/fdx-20230531.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">As <span style='color:red;text-decoration:line-through;'>technology,</span> <span style='color:green;'>technology (including artificial intelligence and machine learning),</span> customer behavior, and market conditions continue to evolve, it is important that we maintain the relevance of our brand and service offerings to our customers.</div>    </div>", "risks": "Competition", "sector": "Industrials", "sub": "Air Freight & Logistics", "company": "FedEx"}, {"html": "<div class=\"report-card\">      <h3>FedEx <span class=\"symbol\">(FDX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Air Freight & Logistics</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1048911/000095017024083577/fdx-20240531.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1048911/000095017023033201/fdx-20230531.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our industry may be affected by changes in technology and our competitors may implement emerging technologies, including artificial intelligence applications, more quickly and more successfully than us, which could impair our ability to compete effectively and adversely affect our results of operations.</span></div>    </div>", "risks": "Competition", "sector": "Industrials", "sub": "Air Freight & Logistics", "company": "FedEx"}, {"html": "<div class=\"report-card\">      <h3>FedEx <span class=\"symbol\">(FDX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Air Freight & Logistics</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1048911/000095017024083577/fdx-20240531.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1048911/000095017023033201/fdx-20230531.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, in the U.S. and internationally, there has been increased legislative and regulatory activity related to artificial intelligence and the risks and challenges artificial intelligence poses, including the European Union\u2019s Artificial Intelligence Act and the current U.S. presidential administration\u2019s executive order to, among other things, establish artificial intelligence safety and security.</span></div>    </div>", "risks": "EU AI Act", "sector": "Industrials", "sub": "Air Freight & Logistics", "company": "FedEx"}, {"html": "<div class=\"report-card\">      <h3>FedEx <span class=\"symbol\">(FDX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Air Freight & Logistics</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1048911/000095017024083577/fdx-20240531.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1048911/000095017023033201/fdx-20230531.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Certain forms of technology <span style='color:green;'>such as artificial intelligence</span> also allow users to alter images, videos, and other information relating to FedEx and present the information in a false or misleading manner.</div>    </div>", "risks": "Malicious Actors", "sector": "Industrials", "sub": "Air Freight & Logistics", "company": "FedEx"}, {"html": "<div class=\"report-card\">      <h3>Fidelity National Information Services <span class=\"symbol\">(FIS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Transaction & Payment Processing Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span><span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1136893/000113689325000014/fis-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1136893/000113689324000015/fis-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>In particular,</span> <span style='color:green;'>However,</span> AI algorithms may <span style='color:red;text-decoration:line-through;'>generate</span> <span style='color:green;'>produce unfair, unintended,</span> inaccurate, <span style='color:red;text-decoration:line-through;'>unintended, unfair</span> <span style='color:green;'>biased</span> or discriminatory <span style='color:red;text-decoration:line-through;'>outcomes,</span> <span style='color:green;'>outcomes</span> which <span style='color:green;'>could be difficult to detect or explain. Further, the training data underlying third-party AI models</span> may <span style='color:red;text-decoration:line-through;'>not be easily detectable or explainable, and may</span> <span style='color:green;'>also</span> inadvertently breach intellectual property, privacy or other <span style='color:red;text-decoration:line-through;'>rights, as well as</span> <span style='color:green;'>rights and result in the unauthorized use of</span> confidential information.</div>    </div>", "risks": "Bias; Third Party", "sector": "Financials", "sub": "Transaction & Payment Processing Services", "company": "Fidelity National Information Services"}, {"html": "<div class=\"report-card\">      <h3>Fidelity National Information Services <span class=\"symbol\">(FIS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Transaction & Payment Processing Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1136893/000113689325000014/fis-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1136893/000113689324000015/fis-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The regulatory landscape surrounding AI is evolving quickly, and the jurisdictions in which we operate are increasingly implementing new, complex and sometimes conflicting compliance requirements. For instance, the E.U. AI Act imposes a number of requirements (some of which take effect in August 2025, August 2026 and August 2027) that differ depending on the type and use of a particular AI system, but which will at a minimum include extensive documentation and transparency requirements. These regulatory changes introduce additional risks, including the possibility of failing to meet compliance obligations, which could result in substantial fines, penalties or other regulatory actions.</span></div>    </div>", "risks": "EU AI Act", "sector": "Financials", "sub": "Transaction & Payment Processing Services", "company": "Fidelity National Information Services"}, {"html": "<div class=\"report-card\">      <h3>Fidelity National Information Services <span class=\"symbol\">(FIS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Transaction & Payment Processing Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1136893/000113689325000014/fis-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1136893/000113689324000015/fis-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI systems may have unintended societal impacts and negative outcomes, such as algorithmic errors that result in inadvertent discrimination or bias.</span></div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Transaction & Payment Processing Services", "company": "Fidelity National Information Services"}, {"html": "<div class=\"report-card\">      <h3>Fifth Third Bancorp <span class=\"symbol\">(FITB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Regional Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/35527/000003552725000079/fitb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/35527/000003552724000088/fitb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Many of Fifth Third\u2019s competitors have substantially greater resources to invest in technological improvements. Fifth Third may not be able to effectively implement new technology driven products and services or be successful in marketing these products and services to its customers. In addition, Fifth Third\u2019s implementation of certain new technologies, such as those related to artificial intelligence, automation and algorithms, in Fifth Third\u2019s business processes may have unintended consequences due to its limitations or its failure to use them effectively.</span></div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Regional Banks", "company": "Fifth Third Bancorp"}, {"html": "<div class=\"report-card\">      <h3>Fifth Third Bancorp <span class=\"symbol\">(FITB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Regional Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/35527/000003552725000079/fitb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/35527/000003552724000088/fitb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Threat actors, including nation state attackers, could also use artificial intelligence for malicious purposes, increasing the frequency, complexity and effectiveness of their attacks.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Regional Banks", "company": "Fifth Third Bancorp"}, {"html": "<div class=\"report-card\">      <h3>First Solar <span class=\"symbol\">(FSLR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1274494/000127449425000010/fslr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1274494/000127449424000004/fslr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Furthermore, third parties may deploy AI technologies in a manner that reduces customer demand for our products and services.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Semiconductors", "company": "First Solar"}, {"html": "<div class=\"report-card\">      <h3>First Solar <span class=\"symbol\">(FSLR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1274494/000127449425000010/fslr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1274494/000127449424000004/fslr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, third parties that license AI technologies to us may impose unfavorable licensing terms or terminate the licenses altogether which would require us to seek licenses from alternative sources to avoid disruptions in feature delivery.</span></div>    </div>", "risks": "Third Party", "sector": "Information Technology", "sub": "Semiconductors", "company": "First Solar"}, {"html": "<div class=\"report-card\">      <h3>First Solar <span class=\"symbol\">(FSLR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1274494/000127449425000010/fslr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1274494/000127449424000004/fslr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, AI algorithms that we use may be flawed or may be (or may be perceived to be) based on datasets that are biased or insufficient.</span></div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Semiconductors", "company": "First Solar"}, {"html": "<div class=\"report-card\">      <h3>FirstEnergy <span class=\"symbol\">(FE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Electric Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1031296/000103129625000006/fe-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1031296/000103129624000008/fe-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We cannot anticipate, detect, or implement fully preventive measures against all <span style='color:red;text-decoration:line-through;'>cyber security</span> <span style='color:green;'>cybersecurity</span> threats because the techniques used are increasingly sophisticated and constantly <span style='color:red;text-decoration:line-through;'>evolving.</span> <span style='color:green;'>evolving and in some cases, assisted by artificial intelligence.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Utilities", "sub": "Electric Utilities", "company": "FirstEnergy"}, {"html": "<div class=\"report-card\">      <h3>Fiserv <span class=\"symbol\">(FI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Transaction & Payment Processing Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/798354/000079835425000047/fi-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/798354/000079835424000037/fi-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, our competitors and other third parties may incorporate artificial intelligence into their products and offerings more quickly or more successfully than us, which could impair our ability to compete effectively and adversely affect our results of operations.</span></div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Transaction & Payment Processing Services", "company": "Fiserv"}, {"html": "<div class=\"report-card\">      <h3>Fiserv <span class=\"symbol\">(FI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Transaction & Payment Processing Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/798354/000079835425000047/fi-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/798354/000079835424000037/fi-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Furthermore, the integration of third-party artificial intelligence models with our services relies on certain safeguards implemented by the third-party developers of the underlying artificial intelligence models, including those related to the accuracy, bias and other variables of the data, and these safeguards may be insufficient.</span></div>    </div>", "risks": "Third Party", "sector": "Financials", "sub": "Transaction & Payment Processing Services", "company": "Fiserv"}, {"html": "<div class=\"report-card\">      <h3>Fiserv <span class=\"symbol\">(FI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Transaction & Payment Processing Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/798354/000079835425000047/fi-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/798354/000079835424000037/fi-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If the content, analyses or recommendations that artificial intelligence applications assist in producing are or are alleged to be inaccurate, deficient or biased, our business, financial condition and results of operations may be adversely affected. Furthermore, the integration of third-party artificial intelligence models with our services relies on certain safeguards implemented by the third-party developers of the underlying artificial intelligence models, including those related to the accuracy, bias and other variables of the data, and these safeguards may be insufficient.</span></div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Transaction & Payment Processing Services", "company": "Fiserv"}, {"html": "<div class=\"report-card\">      <h3>Fiserv <span class=\"symbol\">(FI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Transaction & Payment Processing Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/798354/000079835425000047/fi-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/798354/000079835424000037/fi-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our use of artificial intelligence technologies carries inherent risks, and there can be no assurance <span style='color:green;'>our use of artificial intelligence will enhance our products or services or achieve any improvements in innovation or efficiency.</span></span></div>    </div>", "risks": "Disillusionment", "sector": "Financials", "sub": "Transaction & Payment Processing Services", "company": "Fiserv"}, {"html": "<div class=\"report-card\">      <h3>Ford Motor Company <span class=\"symbol\">(F)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Automobile Manufacturers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Litigation'>Litigation</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/37996/000003799625000013/f-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/37996/000003799624000009/f-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, autonomous vehicle and driver assist technologies continue to be scrutinized by the government and consumers, and actual or perceived failures or misuse of these technologies and features have led to government investigations and inquiries, including of Ford, which has responded to information requests from NHTSA and the National Transportation Safety Board about our BlueCruise system. We and other OEMs are required to report to NHTSA crashes that meet NHTSA-defined criteria and occur when certain advanced driver assistance system features are in use. Such events involving our vehicles and technologies could require safety recalls and/or subject us to fines, penalties, damages, investigations, and reputational harm.</span></div>    </div>", "risks": "Litigation", "sector": "Consumer Discretionary", "sub": "Automobile Manufacturers", "company": "Ford Motor Company"}, {"html": "<div class=\"report-card\">      <h3>Ford Motor Company <span class=\"symbol\">(F)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Automobile Manufacturers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/37996/000003799625000013/f-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/37996/000003799624000009/f-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We continue to increase the number of BlueCruise (our hands-free highway driving system) enabled vehicles on the road and its growth and expansion remains an important part of our strategy. We also face substantial competition in that area.</span></div>    </div>", "risks": "Competition", "sector": "Consumer Discretionary", "sub": "Automobile Manufacturers", "company": "Ford Motor Company"}, {"html": "<div class=\"report-card\">      <h3>Ford Motor Company <span class=\"symbol\">(F)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Automobile Manufacturers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/37996/000003799625000013/f-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/37996/000003799624000009/f-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We are subject to laws, rules, guidelines from privacy and other regulators, and regulations in the United States and other countries (such as the <span style='color:red;text-decoration:line-through;'>European Union\u2019s</span> <span style='color:green;'>EU\u2019s</span> and the U.K.\u2019s General Data Protection <span style='color:red;text-decoration:line-through;'>Regulations</span> <span style='color:green;'>Regulations, the EU\u2019s Data Act, the EU\u2019s Artificial Intelligence Act, the Colorado Artificial Intelligence Act,</span> and the California Consumer Privacy Act) relating to the collection, use, <span style='color:red;text-decoration:line-through;'>cross-border data</span> transfer, and security of <span style='color:green;'>data and the</span> personal information of consumers, employees, or others, including laws that may require us to notify regulators and affected individuals of a data security incident.</div>    </div>", "risks": "EU AI Act", "sector": "Consumer Discretionary", "sub": "Automobile Manufacturers", "company": "Ford Motor Company"}, {"html": "<div class=\"report-card\">      <h3>Ford Motor Company <span class=\"symbol\">(F)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Automobile Manufacturers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/37996/000003799625000013/f-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/37996/000003799624000009/f-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If we are unable to successfully develop and grow BlueCruise and other subscription services or build and maintain consumer trust in those offerings, we may be unable to recoup the investments we have made in those technologies and it could negatively impact our reputation, financial condition, and results of operations.</span></div>    </div>", "risks": "Disillusionment", "sector": "Consumer Discretionary", "sub": "Automobile Manufacturers", "company": "Ford Motor Company"}, {"html": "<div class=\"report-card\">      <h3>Fortinet <span class=\"symbol\">(FTNT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span><span class='risk-tag' title='Risk: Work Displacement'>Work Displacement</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1262039/000126203925000011/ftnt-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1262039/000126203924000014/ftnt-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Usage of our confidential data to train the AI models by us or our vendors, could result in legal risk, especially if it involves customer data. Other risks that have been observed in AI models and documented, include risks related to bias, discrimination, job displacements, and violating human rights.</span></div>    </div>", "risks": "Bias; Work Displacement", "sector": "Information Technology", "sub": "Systems Software", "company": "Fortinet"}, {"html": "<div class=\"report-card\">      <h3>Fortinet <span class=\"symbol\">(FTNT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1262039/000126203925000011/ftnt-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1262039/000126203924000014/ftnt-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For example, AI technologies, including generative AI, may create content that appears correct but is factually inaccurate <span style='color:green;'>(hallucinations)</span> or flawed, or contains copyrighted or other protected material, and if our customers or others use this flawed content to their detriment, we may be exposed to brand or reputational harm, competitive harm, or legal liability.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Systems Software", "company": "Fortinet"}, {"html": "<div class=\"report-card\">      <h3>Fortinet <span class=\"symbol\">(FTNT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1262039/000126203925000011/ftnt-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1262039/000126203924000014/ftnt-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Usage of our confidential data to train the AI models by us or our vendors, could result in legal risk, especially if it involves customer data.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Information Technology", "sub": "Systems Software", "company": "Fortinet"}, {"html": "<div class=\"report-card\">      <h3>Fortinet <span class=\"symbol\">(FTNT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1262039/000126203925000011/ftnt-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1262039/000126203924000014/ftnt-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI can be exploited by hackers and malicious actors to develop advanced cyberattacks, bypass security measures, and exploit system vulnerabilities.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Systems Software", "company": "Fortinet"}, {"html": "<div class=\"report-card\">      <h3>Fortinet <span class=\"symbol\">(FTNT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1262039/000126203925000011/ftnt-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1262039/000126203924000014/ftnt-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The use</span> of <span style='color:red;text-decoration:line-through;'>CSR priorities throughout our</span> <span style='color:green;'>AI involves handling large amounts of data. If the security measures around the usage of AI are insufficient, there\u2019s risk of data breaches, leading to unauthorized access to sensitive information.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Information Technology", "sub": "Systems Software", "company": "Fortinet"}, {"html": "<div class=\"report-card\">      <h3>Fortinet <span class=\"symbol\">(FTNT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span><span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1262039/000126203925000011/ftnt-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1262039/000126203924000014/ftnt-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If customer data is used to train AI based systems and such data is not adequately anonymized, this may lead to breach of sensitive information and loss of customer trust. The use of AI also brings ethical issues related to privacy, surveillance and consent of use, as well as potential for bias and discrimination.</span> Any of the foregoing could adversely affect our business, reputation, or financial results.</div>    </div>", "risks": "Bias; Data and IP Protection", "sector": "Information Technology", "sub": "Systems Software", "company": "Fortinet"}, {"html": "<div class=\"report-card\">      <h3>Fortive <span class=\"symbol\">(FTV)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Industrial Machinery & Supplies & Components</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1659166/000165916625000024/ftv-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1659166/000165916624000046/ftv-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We may use artificial intelligence in our business and in our products, and challenges with properly managing its use could result in reputational harm, competitive harm, and legal liability, and adversely affect our results of operations.</span></div>    </div>", "risks": "Competition", "sector": "Industrials", "sub": "Industrial Machinery & Supplies & Components", "company": "Fortive"}, {"html": "<div class=\"report-card\">      <h3>Fox Corporation <span class=\"symbol\">(FOXA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Broadcasting</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1754301/000162828024036123/fox-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1754301/000162828023029065/fox-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Emerging technologies, including AI, are evolving rapidly and our ability to compete could be adversely affected if our competitors gain an advantage by using them.</span></div>    </div>", "risks": "Competition", "sector": "Communication Services", "sub": "Broadcasting", "company": "Fox Corporation"}, {"html": "<div class=\"report-card\">      <h3>Fox Corporation <span class=\"symbol\">(FOX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Broadcasting</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1754301/000162828024036123/fox-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1754301/000162828023029065/fox-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Emerging technologies, including AI, are evolving rapidly and our ability to compete could be adversely affected if our competitors gain an advantage by using them.</span></div>    </div>", "risks": "Competition", "sector": "Communication Services", "sub": "Broadcasting", "company": "Fox Corporation"}, {"html": "<div class=\"report-card\">      <h3>Fox Corporation <span class=\"symbol\">(FOXA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Broadcasting</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1754301/000162828024036123/fox-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1754301/000162828023029065/fox-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The manipulation of content by bad actors, including the creation of \u201cdeep fakes\u201d (videos created with AI to realistically impersonate persons such as journalists or political candidates), could erode audience trust by making it difficult to determine what is real.</span></div>    </div>", "risks": "Deepfakes; Malicious Actors", "sector": "Communication Services", "sub": "Broadcasting", "company": "Fox Corporation"}, {"html": "<div class=\"report-card\">      <h3>Fox Corporation <span class=\"symbol\">(FOX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Broadcasting</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1754301/000162828024036123/fox-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1754301/000162828023029065/fox-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The manipulation of content by bad actors, including the creation of \u201cdeep fakes\u201d (videos created with AI to realistically impersonate persons such as journalists or political candidates), could erode audience trust by making it difficult to determine what is real.</span></div>    </div>", "risks": "Deepfakes", "sector": "Communication Services", "sub": "Broadcasting", "company": "Fox Corporation"}, {"html": "<div class=\"report-card\">      <h3>Fox Corporation <span class=\"symbol\">(FOXA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Broadcasting</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1754301/000162828024036123/fox-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1754301/000162828023029065/fox-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Emerging technologies, including AI, are evolving rapidly and our ability to compete could be adversely affected if our competitors gain an advantage by using them. Although the Company may also seek to responsibly incorporate AI into the development of new and existing products and services to enhance their value to viewers and advertisers, there can be no assurance that these efforts will be successful.</span></div>    </div>", "risks": "Disillusionment", "sector": "Communication Services", "sub": "Broadcasting", "company": "Fox Corporation"}, {"html": "<div class=\"report-card\">      <h3>Fox Corporation <span class=\"symbol\">(FOX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Broadcasting</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1754301/000162828024036123/fox-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1754301/000162828023029065/fox-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Emerging technologies, including AI, are evolving rapidly and our ability to compete could be adversely affected if our competitors gain an advantage by using them. Although the Company may also seek to responsibly incorporate AI into the development of new and existing products and services to enhance their value to viewers and advertisers, there can be no assurance that these efforts will be successful.</span></div>    </div>", "risks": "Disillusionment", "sector": "Communication Services", "sub": "Broadcasting", "company": "Fox Corporation"}, {"html": "<div class=\"report-card\">      <h3>Franklin Resources <span class=\"symbol\">(BEN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/38777/000003877724000206/ben-20240930.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/38777/000003877723000169/ben-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Ongoing advances in technology, including generative artificial intelligence, as well as the malicious use of such technology, could further heighten the risks to our business.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "Franklin Resources"}, {"html": "<div class=\"report-card\">      <h3>Freeport-McMoRan <span class=\"symbol\">(FCX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Copper</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/831259/000083125925000006/fcx-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/831259/000083125924000011/fcx-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We believe long-term fundamentals for copper are favorable with growing demand supported by copper\u2019s critical role in the global transition to renewable power, electric vehicles and other carbon-reduction initiatives, continued urbanization in developing countries, data center and artificial intelligence (AI) developments and growing connectivity globally; however if these markets, industries and transitions do not develop as we expect, or develop more slowly than we expect, future demand and prices for copper may be negatively affected, impacting our business.</span></div>    </div>", "risks": "", "sector": "Materials", "sub": "Copper", "company": "Freeport-McMoRan"}, {"html": "<div class=\"report-card\">      <h3>Freeport-McMoRan <span class=\"symbol\">(FCX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Copper</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/831259/000083125925000006/fcx-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/831259/000083125924000011/fcx-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our failure to successfully implement <span style='color:green;'>or develop</span> new technologies, including AI, may adversely affect our competitiveness and, consequently, our results of operations.</div>    </div>", "risks": "Competition", "sector": "Materials", "sub": "Copper", "company": "Freeport-McMoRan"}, {"html": "<div class=\"report-card\">      <h3>Gartner <span class=\"symbol\">(IT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/749251/000074925125000008/it-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/749251/000074925124000006/it-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We anticipate encountering more competition with increased adoption of AI services in the markets in which we compete.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "Gartner"}, {"html": "<div class=\"report-card\">      <h3>Gartner <span class=\"symbol\">(IT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/749251/000074925125000008/it-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/749251/000074925124000006/it-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our competitors or other third parties may also incorporate AI into their offerings more effectively and/or quickly than we do, which could impair our ability to compete effectively and adversely affect our business and financial results.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "Gartner"}, {"html": "<div class=\"report-card\">      <h3>Gartner <span class=\"symbol\">(IT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/749251/000074925125000008/it-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/749251/000074925124000006/it-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>As we expand our products and services and develop our business models, we have faced, and may continue to face, shifting regulations. Our ability to adopt new technologies, including AI, and to innovate for our customers and manage our business could be adversely impacted by the evolving regulatory environment. For instance, the EU Artificial Intelligence Act (\"EU AI Act\") entered into force on August 1, 2024 and will govern AI systems that impact individuals in the EU. Complying with the EU AI Act and similar emerging laws may impose significant costs on our business and may necessitate changes to certain business practices to ensure compliance.</span></div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "Gartner"}, {"html": "<div class=\"report-card\">      <h3>Gartner <span class=\"symbol\">(IT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/749251/000074925125000008/it-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/749251/000074925124000006/it-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For example, AI algorithms that we use may be flawed or may be based on datasets that are biased or insufficient.</div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "Gartner"}, {"html": "<div class=\"report-card\">      <h3>GE Aerospace <span class=\"symbol\">(GE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Aerospace & Defense</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/40545/000004054525000015/ge-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/40545/000004054524000027/ge-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Artificial intelligence technologies have rapidly developed and our business may be adversely affected if we cannot successfully integrate these technologies into our business processes and product and service offerings in a timely, cost-effective, compliant and responsible manner.</span></div>    </div>", "risks": "", "sector": "Industrials", "sub": "Aerospace & Defense", "company": "GE Aerospace"}, {"html": "<div class=\"report-card\">      <h3>GE HealthCare <span class=\"symbol\">(GEHC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1932393/000193239325000005/gehc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1932393/000193239324000013/gehc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>As we seek to build clinical applications that leverage generative AI models built by third parties, we may have limited rights to access the underlying intellectual property used to create the generative AI model, and, if requested, this may limit or impair our ability to independently verify the explainability, transparency, and reliability of the underlying model.</span></div>    </div>", "risks": "Third Party", "sector": "Health Care", "sub": "Health Care Equipment", "company": "GE HealthCare"}, {"html": "<div class=\"report-card\">      <h3>GE HealthCare <span class=\"symbol\">(GEHC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1932393/000193239325000005/gehc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1932393/000193239324000013/gehc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Using AI in this manner presents risks and challenges that could affect its adoption, acceptance, and effectiveness, including flawed AI <span style='color:red;text-decoration:line-through;'>algorithms,</span> <span style='color:green;'>algorithms;</span> insufficient, <span style='color:red;text-decoration:line-through;'>overbroad</span> <span style='color:green;'>overbroad,</span> or biased <span style='color:red;text-decoration:line-through;'>datasets,</span> <span style='color:green;'>datasets;</span> unauthorized access to personal <span style='color:red;text-decoration:line-through;'>data,</span> <span style='color:green;'>data;</span> lack of acceptance from our <span style='color:red;text-decoration:line-through;'>customers,</span> <span style='color:green;'>customers;</span> or failure to deliver positive outcomes.</div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Health Care Equipment", "company": "GE HealthCare"}, {"html": "<div class=\"report-card\">      <h3>Gen Digital <span class=\"symbol\">(GEN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Skills'>Skills</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/849399/000084939924000036/gen-20240329.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/849399/000084939923000014/gen-20230331.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Our future success depends upon our ability to recruit and retain key management, technical (including cyber security <span style='color:green;'>and AI</span> experts), sales, marketing, e-commerce, <span style='color:red;text-decoration:line-through;'>finance,</span> <span style='color:green;'>finance</span> and other personnel.</div>    </div>", "risks": "Skills", "sector": "Information Technology", "sub": "Systems Software", "company": "Gen Digital"}, {"html": "<div class=\"report-card\">      <h3>Gen Digital <span class=\"symbol\">(GEN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/849399/000084939924000036/gen-20240329.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/849399/000084939923000014/gen-20230331.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">The development and introduction of new solutions involve significant commitments of time and resources and are subject to risks and challenges including but not limited to: \u2022Lengthy development cycles; \u2022Evolving industry and regulatory standards and technological <span style='color:red;text-decoration:line-through;'>developments</span> <span style='color:green;'>developments, including AI and machine learning,</span> by our competitors and customers; \u2022Rapidly changing customer <span style='color:red;text-decoration:line-through;'>preferences;</span> <span style='color:green;'>preferences and accurately anticipating technological trends or needs;</span> \u2022Evolving platforms, operating systems, and hardware products, such as mobile devices; \u2022Product and service interoperability challenges with customer\u2019s technology and third-party vendors; \u2022The integration of products and solutions from acquired companies; \u2022Availability of engineering and technical talent; \u2022Entering new or unproven market segments; and \u2022Executing new product and service strategies.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Systems Software", "company": "Gen Digital"}, {"html": "<div class=\"report-card\">      <h3>Gen Digital <span class=\"symbol\">(GEN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/849399/000084939924000036/gen-20240329.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/849399/000084939923000014/gen-20230331.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Such attempts are increasing in number and in technical sophistication, <span style='color:green;'>including through the use of AI, and have in the past</span> and could <span style='color:green;'>in the future</span> expose us and the affected parties, to risk of loss or misuse of proprietary, personal or confidential information or disruptions of our business operations.</div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Systems Software", "company": "Gen Digital"}, {"html": "<div class=\"report-card\">      <h3>Gen Digital <span class=\"symbol\">(GEN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/849399/000084939924000036/gen-20240329.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/849399/000084939923000014/gen-20230331.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We have incorporated, and are continuing to develop and deploy, AI into many of our products, solutions and services. AI presents challenges and risks that could affect our products, solutions and services, and therefore our business. For example, AI algorithms may have flaws, and datasets used to train models may be insufficient or contain biased information.</span></div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Systems Software", "company": "Gen Digital"}, {"html": "<div class=\"report-card\">      <h3>Generac <span class=\"symbol\">(GNRC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Electrical Components & Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1474735/000143774925004353/gnrc20241231_10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1474735/000143774924005040/gnrc20231231_10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>There is also increasing use of data analytics, machine learning, and artificial intelligence software, which our competitors may be able to use or implement more effectively than we are able to do.</span></div>    </div>", "risks": "Competition", "sector": "Industrials", "sub": "Electrical Components & Equipment", "company": "Generac"}, {"html": "<div class=\"report-card\">      <h3>Generac <span class=\"symbol\">(GNRC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Electrical Components & Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1474735/000143774925004353/gnrc20241231_10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1474735/000143774924005040/gnrc20231231_10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Use of artificial intelligence software may also create risks from the unintentional disclosure of proprietary, confidential, personal or otherwise sensitive information.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Industrials", "sub": "Electrical Components & Equipment", "company": "Generac"}, {"html": "<div class=\"report-card\">      <h3>General Motors <span class=\"symbol\">(GM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Automobile Manufacturers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Skills'>Skills</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1467858/000146785825000032/gm-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1467858/000146785824000031/gm-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>Our</span> <span style='color:green;'>In December 2024, we announced plans to refocus our autonomous driving strategy on personal vehicles and that we would no longer fund Cruise's robotaxi development work. We are pursuing the acquisition of the noncontrolling interests in Cruise, and as of December 31, 2024, we owned about 97% of Cruise. Following the acquisition of the noncontrolling interests and subject to approval of the Cruise Board of Directors, we expect to work with the Cruise leadership team to restructure Cruise's operations and combine the GM and Cruise technical efforts to build on the success of Super Cruise, our ADAS technology, and prioritize the development of ADAS on a path to fully autonomous personal vehicles. While we expect our refocused</span> AV <span style='color:red;text-decoration:line-through;'>operations are</span> <span style='color:green;'>strategy to be less</span> capital intensive <span style='color:red;text-decoration:line-through;'>and</span> <span style='color:green;'>than the Cruise robotaxi plan, we expect that our AV and ADAS development activities will continue to require significant capital investments and remain</span> subject to a variety of risks inherent with the development of new technologies, including our ability to continue to develop self-driving software and <span style='color:red;text-decoration:line-through;'>hardware, such as Light Detection and Ranging (LiDAR) sensors and other components;</span> <span style='color:green;'>hardware; attract and retain key software talent with expertise in artificial intelligence and machine learning;</span> access to sufficient capital; <span style='color:red;text-decoration:line-through;'>risks related to the manufacture of purpose-built AVs;</span> and significant competition from both established automotive companies and technology companies, some of which may have more resources and capital to devote to AV technologies than we do.</div>    </div>", "risks": "Skills", "sector": "Consumer Discretionary", "sub": "Automobile Manufacturers", "company": "General Motors"}, {"html": "<div class=\"report-card\">      <h3>General Motors <span class=\"symbol\">(GM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Automobile Manufacturers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1467858/000146785825000032/gm-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1467858/000146785824000031/gm-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, cybersecurity threat actors are increasingly sophisticated and are targeting employees, contractors, service providers and third parties through various techniques that involve social engineering and/or misrepresentation.</span> Techniques used in cyberattacks to obtain unauthorized access to, disable or sabotage information technology systems are increasingly diverse and <span style='color:red;text-decoration:line-through;'>sophisticated.</span> <span style='color:green;'>sophisticated, including as a result of emerging technologies, such as artificial intelligence and machine learning.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Discretionary", "sub": "Automobile Manufacturers", "company": "General Motors"}, {"html": "<div class=\"report-card\">      <h3>Genuine Parts Company <span class=\"symbol\">(GPC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Distributors</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/40987/000004098725000026/gpc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/40987/000004098724000024/gpc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Changes in automotive technology (including the adoption of electric <span style='color:red;text-decoration:line-through;'>vehicles)</span> <span style='color:green;'>vehicles or the use of artificial intelligence)</span> and compliance with any new or more stringent laws or regulations, or stricter interpretations of existing laws, could require additional expenditures by us or our suppliers all of which could adversely impact the demand for our products and our business, financial condition, results of operations or cash flows.</div>    </div>", "risks": "", "sector": "Consumer Discretionary", "sub": "Distributors", "company": "Genuine Parts Company"}, {"html": "<div class=\"report-card\">      <h3>Gilead Sciences <span class=\"symbol\">(GILD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Biotechnology</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/882095/000088209525000006/gild-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/882095/000088209524000007/gild-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Likewise, data privacy or cybersecurity incidents or breaches by employees or <span style='color:red;text-decoration:line-through;'>others</span> <span style='color:green;'>others, including the unauthorized use of artificial intelligence tools,</span> can result in the exposure of sensitive data, including our intellectual property or trade secrets or the personal information of our employees, patients, customers or other business partners to unauthorized persons or to the public.</div>    </div>", "risks": "Data and IP Protection", "sector": "Health Care", "sub": "Biotechnology", "company": "Gilead Sciences"}, {"html": "<div class=\"report-card\">      <h3>Global Payments <span class=\"symbol\">(GPN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Transaction & Payment Processing Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1123360/000112336025000011/gpn-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1123360/000112336024000004/gpn-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Threats to our systems and our associated third parties\u2019 systems <span style='color:green;'>(such as the use of AI by threat actors in furtherance of cyberattacks)</span> can derive from human <span style='color:red;text-decoration:line-through;'>error, fraud</span> <span style='color:green;'>error</span> or <span style='color:red;text-decoration:line-through;'>malice on the part of</span> <span style='color:green;'>malicious actions by</span> employees or third parties, including state-sponsored organizations with significant financial and technological resources.</div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Transaction & Payment Processing Services", "company": "Global Payments"}, {"html": "<div class=\"report-card\">      <h3>Global Payments <span class=\"symbol\">(GPN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Transaction & Payment Processing Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1123360/000112336025000011/gpn-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1123360/000112336024000004/gpn-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Additionally, <span style='color:red;text-decoration:line-through;'>the absence of</span> <span style='color:green;'>without</span> clear requirements <span style='color:red;text-decoration:line-through;'>pertaining</span> to <span style='color:red;text-decoration:line-through;'>explainability and</span> <span style='color:green;'>explain AI-generated content and/or</span> the data used to train <span style='color:red;text-decoration:line-through;'>these</span> <span style='color:green;'>AI</span> models, <span style='color:red;text-decoration:line-through;'>introduces the</span> <span style='color:green;'>there is a</span> risk of intellectual property disputes, including <span style='color:green;'>those involving</span> the <span style='color:red;text-decoration:line-through;'>inability to protect</span> <span style='color:green;'>protection</span> or <span style='color:red;text-decoration:line-through;'>potential</span> infringement <span style='color:red;text-decoration:line-through;'>claims regarding the artificially generated</span> <span style='color:green;'>of AI-generated</span> content.</div>    </div>", "risks": "Data and IP Protection", "sector": "Financials", "sub": "Transaction & Payment Processing Services", "company": "Global Payments"}, {"html": "<div class=\"report-card\">      <h3>Global Payments <span class=\"symbol\">(GPN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Transaction & Payment Processing Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1123360/000112336025000011/gpn-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1123360/000112336024000004/gpn-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The unpredictable nature of <span style='color:red;text-decoration:line-through;'>outputs</span> <span style='color:green;'>AI-generated content</span> further amplifies <span style='color:red;text-decoration:line-through;'>this risk, potentially leading to</span> <span style='color:green;'>the risk of</span> unintended consequences and biases.</div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Transaction & Payment Processing Services", "company": "Global Payments"}, {"html": "<div class=\"report-card\">      <h3>Globe Life <span class=\"symbol\">(GL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Life & Health Insurance</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/320335/000032033525000013/gl-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/320335/000032033524000006/gl-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our business is highly dependent upon the internet, third-party service providers, and information systems to operate in an efficient and resilient manner. We gather and maintain data for the purpose of conducting marketing, actuarial analysis, sales, and policy administration functions. <span style='color:green;'>Our ability to modernize and maintain our information technology systems and infrastructure requires us to commit significant resources and effective planning and execution. This modernization includes the responsible and secure use of emerging technologies like artificial intelligence.</span></div>    </div>", "risks": "", "sector": "Financials", "sub": "Life & Health Insurance", "company": "Globe Life"}, {"html": "<div class=\"report-card\">      <h3>GoDaddy <span class=\"symbol\">(GDDY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Internet Services & Infrastructure</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1609711/000160971125000023/gddy-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1609711/000160971124000022/gddy-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI technology and services are highly competitive, rapidly evolving, and at times require significant investment, including with respect to development and operational costs, to meet the changing needs and expectations of our existing and potential customers. Further, other companies</span> may develop AI products and technologies that are similar or superior to our technologies or <span style='color:red;text-decoration:line-through;'>are</span> more <span style='color:red;text-decoration:line-through;'>cost-effective</span> <span style='color:green;'>cost- effective</span> to <span style='color:red;text-decoration:line-through;'>develop or</span> deploy.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Internet Services & Infrastructure", "company": "GoDaddy"}, {"html": "<div class=\"report-card\">      <h3>GoDaddy <span class=\"symbol\">(GDDY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Internet Services & Infrastructure</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1609711/000160971125000023/gddy-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1609711/000160971124000022/gddy-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If we, or third-party developers whose AI we rely on, do not have sufficient rights to use the data or other material used or processed by such AI technology, we also may incur liability through the actual or alleged violation of applicable laws, rules and regulations, third- party intellectual property, privacy, or other rights or contractual obligations.</span></div>    </div>", "risks": "Third Party", "sector": "Information Technology", "sub": "Internet Services & Infrastructure", "company": "GoDaddy"}, {"html": "<div class=\"report-card\">      <h3>GoDaddy <span class=\"symbol\">(GDDY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Internet Services & Infrastructure</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1609711/000160971125000023/gddy-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1609711/000160971124000022/gddy-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, if any of our employees, contractors, vendors or service providers use any third-party AI-powered software in connection with our business or the services they provide to us, it may lead to the inadvertent disclosure of our personal, sensitive, proprietary or confidential information into publicly available third-party training sets, which may impact our ability to realize the benefit of, or adequately maintain, protect</span></div>    </div>", "risks": "Third Party", "sector": "Information Technology", "sub": "Internet Services & Infrastructure", "company": "GoDaddy"}, {"html": "<div class=\"report-card\">      <h3>GoDaddy <span class=\"symbol\">(GDDY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Internet Services & Infrastructure</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1609711/000160971125000023/gddy-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1609711/000160971124000022/gddy-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Legal and regulatory frameworks related to the use of AI are rapidly evolving, as regulation of the use of AI continues to be considered and adopted by various U.S. and international governmental and regulatory entities, including the E.U., the Securities and Exchange Commission and the Federal Trade Commission (FTC). Several jurisdictions have also passed, or are considering, new laws, rules and regulations relating to the use of AI or its outputs. For example, in 2024, the E.U. adopted the E.U. AI Act and U.S. states, including Colorado and California, have adopted laws, rules and regulations directly relating to the use of AI or extending the application of existing laws, rules and regulations to AI systems and outputs.</span></div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Internet Services & Infrastructure", "company": "GoDaddy"}, {"html": "<div class=\"report-card\">      <h3>GoDaddy <span class=\"symbol\">(GDDY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Internet Services & Infrastructure</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1609711/000160971125000023/gddy-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1609711/000160971124000022/gddy-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our large size and global computer network expose us to a wide variety of cybersecurity threats that include cyber attacks from individuals, organized crime groups, nation-state sponsored organizations, and others (collectively, threat actors). These cyberattacks can take many different forms, including but not limited to deploying malicious software, exploiting hardware and software vulnerabilities, social engineering, or other actions to gain access to our systems and data or disrupt our operations. In addition cyberattacks are constantly evolving as threat actors discover new vulnerabilities and leverage new techniques and technologies, including through the use of AI. For example, we have experienced and may continue to experience, an increase in social engineering attacks to conduct sophisticated phishing campaigns.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Internet Services & Infrastructure", "company": "GoDaddy"}, {"html": "<div class=\"report-card\">      <h3>GoDaddy <span class=\"symbol\">(GDDY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Internet Services & Infrastructure</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1609711/000160971125000023/gddy-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1609711/000160971124000022/gddy-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Any content created by us using generative AI tools may not be subject to intellectual property protection which may affect our ability to commercialize such content. The use or adoption of AI technologies in our products and services may subject us to copyright infringement or other intellectual property claims. If we, or third-party developers whose AI we rely on, do not have sufficient rights to use the data or other material used or processed by such AI technology, we also may incur liability through the actual or alleged violation of applicable laws, rules and regulations, third- party intellectual property, privacy, or other rights or contractual obligations.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Information Technology", "sub": "Internet Services & Infrastructure", "company": "GoDaddy"}, {"html": "<div class=\"report-card\">      <h3>GoDaddy <span class=\"symbol\">(GDDY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Internet Services & Infrastructure</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1609711/000160971125000023/gddy-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1609711/000160971124000022/gddy-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, if any of our employees, contractors, vendors or service providers use any third-party AI-powered software in connection with our business or the services they provide to us, it may lead to the inadvertent disclosure of our personal, sensitive, proprietary or confidential information into publicly available third-party training sets, which may impact our ability to realize the benefit of, or adequately maintain, protect and enforce our intellectual property or our personal, sensitive, proprietary or confidential information, harming our competitive position and business.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Information Technology", "sub": "Internet Services & Infrastructure", "company": "GoDaddy"}, {"html": "<div class=\"report-card\">      <h3>GoDaddy <span class=\"symbol\">(GDDY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Internet Services & Infrastructure</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1609711/000160971125000023/gddy-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1609711/000160971124000022/gddy-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, in 2023 we launched Airo, an AI-powered, customizable experience designed to automatically build the interconnected pieces of what we call the \"Entrepreneur's Wheel,\" to save our customers time and effort.</span> There are significant risks involved in <span style='color:red;text-decoration:line-through;'>development</span> <span style='color:green;'>the development, adoption, use, deployment</span> and <span style='color:red;text-decoration:line-through;'>deploying</span> <span style='color:green;'>maintenance of</span> AI, such as an increase in intellectual property infringement or misappropriation, <span style='color:green;'>privacy,</span> data <span style='color:red;text-decoration:line-through;'>privacy,</span> <span style='color:green;'>protection,</span> cybersecurity, <span style='color:green;'>confidentiality,</span> operational and technological risks, <span style='color:green;'>as well as risks associated with</span> harmful content, accuracy, bias and discrimination, any of which could affect our further development, adoption, <span style='color:green;'>use, deployment</span> and <span style='color:red;text-decoration:line-through;'>use</span> <span style='color:green;'>maintenance</span> of AI, and may cause us to incur additional research and development costs to resolve <span style='color:green;'>any issues arising from</span> such <span style='color:red;text-decoration:line-through;'>issues.</span> <span style='color:green;'>risks.</span></div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Internet Services & Infrastructure", "company": "GoDaddy"}, {"html": "<div class=\"report-card\">      <h3>GoDaddy <span class=\"symbol\">(GDDY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Internet Services & Infrastructure</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1609711/000160971125000023/gddy-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1609711/000160971124000022/gddy-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Further, <span style='color:green;'>generative</span> AI <span style='color:red;text-decoration:line-through;'>technologies, including generative AI,</span> may create content that appears correct but is factually <span style='color:red;text-decoration:line-through;'>inaccurate</span> <span style='color:green;'>inaccurate, incomplete, insufficient, biased</span> or <span style='color:red;text-decoration:line-through;'>flawed,</span> <span style='color:green;'>otherwise flawed</span> or contains copyrighted or other protected material, <span style='color:green;'>which may not be easily detectable despite internal policies</span> and <span style='color:red;text-decoration:line-through;'>our customers or others</span> <span style='color:green;'>diligence efforts we</span> may <span style='color:red;text-decoration:line-through;'>rely on or use this flawed content</span> <span style='color:green;'>have in place which are designed</span> to <span style='color:red;text-decoration:line-through;'>their detriment.</span> <span style='color:green;'>mitigate such deficiencies.</span></div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Internet Services & Infrastructure", "company": "GoDaddy"}, {"html": "<div class=\"report-card\">      <h3>Goldman Sachs <span class=\"symbol\">(GS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Investment Banking & Brokerage</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/886982/000088698225000005/gs-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, we are exposed to risks related to the use of AI technologies by third-party vendors, clients, counterparties, clearinghouses and other financial intermediaries.</span> Any of these risks could expose us to liability or adverse legal or regulatory consequences and harm our reputation and the public perception of our business or the effectiveness of our security measures.</div>    </div>", "risks": "", "sector": "Financials", "sub": "Investment Banking & Brokerage", "company": "Goldman Sachs"}, {"html": "<div class=\"report-card\">      <h3>Goldman Sachs <span class=\"symbol\">(GS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Investment Banking & Brokerage</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/886982/000088698225000005/gs-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, our competitors may be more timely or successful in developing or integrating AI technologies to increase their productivity and reduce their costs or to provide better transaction execution or improved products and services to clients.</span></div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Investment Banking & Brokerage", "company": "Goldman Sachs"}, {"html": "<div class=\"report-card\">      <h3>Goldman Sachs <span class=\"symbol\">(GS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Investment Banking & Brokerage</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/886982/000088698225000005/gs-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">\u2022The growth of electronic trading and the introduction of new products and technologies, including trading and distributed ledger technologies, <span style='color:red;text-decoration:line-through;'>including</span> <span style='color:green;'>such as</span> cryptocurrencies, <span style='color:green;'>and AI technologies,</span> has increased competition.</div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Investment Banking & Brokerage", "company": "Goldman Sachs"}, {"html": "<div class=\"report-card\">      <h3>Goldman Sachs <span class=\"symbol\">(GS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Investment Banking & Brokerage</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/886982/000088698225000005/gs-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">AI models, particularly generative AI models, may produce output or take action that is incorrect, that result in the release of private, confidential or proprietary information, that reflect biases included in the data on which they are trained, infringe on the intellectual property rights of others, or that is otherwise harmful.</div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Investment Banking & Brokerage", "company": "Goldman Sachs"}, {"html": "<div class=\"report-card\">      <h3>Goldman Sachs <span class=\"symbol\">(GS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Investment Banking & Brokerage</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/886982/000088698225000005/gs-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">This limited transparency increases the challenges associated with assessing the proper operation of AI models, understanding and monitoring the capabilities of the AI models, reducing erroneous output, eliminating bias and complying with regulations that require documentation or explanation of the basis on which decisions are made.</div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Investment Banking & Brokerage", "company": "Goldman Sachs"}, {"html": "<div class=\"report-card\">      <h3>Halliburton <span class=\"symbol\">(HAL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Energy</span>          <span class=\"tag\">Oil & Gas Equipment & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/45012/000004501225000010/hal-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/45012/000004501224000007/hal-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">If we are not able to design, develop, and produce commercially competitive products and to implement commercially competitive services in a timely manner in response to changes in the market, customer requirements, competitive pressures, developments associated with climate change concerns and energy mix transition, and technology trends, <span style='color:green;'>including artificial intelligence and machine learning,</span> our business and consolidated results of operations could be materially and adversely affected, and the value of our intellectual property may be reduced. <span style='color:red;text-decoration:line-through;'>Item 1(a).</span></div>    </div>", "risks": "Competition", "sector": "Energy", "sub": "Oil & Gas Equipment & Services", "company": "Halliburton"}, {"html": "<div class=\"report-card\">      <h3>Hartford (The) <span class=\"symbol\">(HIG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Property & Casualty Insurance</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/874766/000087476625000023/hig-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/874766/000087476624000016/hig-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our business may be disrupted by failures to effectively maintain or update existing technologies, implement new technology, automate business processes or use emerging technologies (e.g. artificial intelligence).</span></div>    </div>", "risks": "", "sector": "Financials", "sub": "Property & Casualty Insurance", "company": "Hartford (The)"}, {"html": "<div class=\"report-card\">      <h3>Hasbro <span class=\"symbol\">(HAS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Leisure Products</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/46080/000004608025000027/has-20241229.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/46080/000004608024000034/has-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Rules governing new technological developments, such as developments in artificial intelligence remain unsettled, and these developments may affect aspects of our existing business model, including revenue streams for the use of our intellectual property and how we create our products and games.</span></div>    </div>", "risks": "", "sector": "Consumer Discretionary", "sub": "Leisure Products", "company": "Hasbro"}, {"html": "<div class=\"report-card\">      <h3>Hasbro <span class=\"symbol\">(HAS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Leisure Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/46080/000004608025000027/has-20241229.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/46080/000004608024000034/has-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We expect that as</span> the use of artificial intelligence <span style='color:red;text-decoration:line-through;'>in developing products</span> becomes <span style='color:red;text-decoration:line-through;'>safer,</span> more <span style='color:red;text-decoration:line-through;'>accepted</span> <span style='color:green;'>prevalent, we will see increased competition from those using such technology to develop games, toys</span> and <span style='color:red;text-decoration:line-through;'>otherwise more broadly adopted.</span> <span style='color:green;'>content.</span></div>    </div>", "risks": "Competition", "sector": "Consumer Discretionary", "sub": "Leisure Products", "company": "Hasbro"}, {"html": "<div class=\"report-card\">      <h3>HCA Healthcare <span class=\"symbol\">(HCA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Facilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/860730/000095017025020134/hca-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/860730/000095017024016524/hca-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Rapid changes in technology driven by AI may require us to expend significant resources to acquire, develop, implement and maintain that technology. Failure to integrate these technologies in a timely, cost- efficient and resource-efficient manner may impede our ability to deliver health care services in a competitive manner.</span></div>    </div>", "risks": "Competition", "sector": "Health Care", "sub": "Health Care Facilities", "company": "HCA Healthcare"}, {"html": "<div class=\"report-card\">      <h3>HCA Healthcare <span class=\"symbol\">(HCA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Facilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/860730/000095017025020134/hca-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/860730/000095017024016524/hca-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>The rapid evolution</span> <span style='color:green;'>Increasing use of AI technologies in our internal systems may create new attack surfaces or methods for threat actors,</span> and <span style='color:red;text-decoration:line-through;'>increased adoption of artificial intelligence</span> <span style='color:green;'>threat actors may use AI</span> technologies <span style='color:red;text-decoration:line-through;'>may intensify our cybersecurity risks by making</span> <span style='color:green;'>to make</span> cyberattacks more difficult to detect, contain or mitigate.</div>    </div>", "risks": "Malicious Actors", "sector": "Health Care", "sub": "Health Care Facilities", "company": "HCA Healthcare"}, {"html": "<div class=\"report-card\">      <h3>HCA Healthcare <span class=\"symbol\">(HCA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Facilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span><span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/860730/000095017025020134/hca-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/860730/000095017024016524/hca-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Rapid changes in technology driven by AI may require us to expend significant resources to acquire, develop, implement and maintain that technology. Failure to integrate these technologies in a timely, cost- efficient and resource-efficient manner may impede our ability to deliver health care services in a competitive manner. There is also a risk that our confidential information becomes part of a model that is accessible by other third-party AI applications or users as a result of a cybersecurity incident or a third-party AI developer\u2019s violation of our vendor engagement terms.</span></div>    </div>", "risks": "Data and IP Protection; Third Party", "sector": "Health Care", "sub": "Health Care Facilities", "company": "HCA Healthcare"}, {"html": "<div class=\"report-card\">      <h3>HCA Healthcare <span class=\"symbol\">(HCA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Facilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/860730/000095017025020134/hca-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/860730/000095017024016524/hca-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For instance, AI models used by us or third-party vendors may be based on biased or deficient datasets, which could result in inaccurate or misleading outputs. Ineffective or inadequate AI development or deployment practices by us or third-party developers or vendors, including any disruptions or failures of AI systems once implemented, could result in unintended consequences.</span> Should the use of <span style='color:red;text-decoration:line-through;'>generative AI</span> <span style='color:green;'>AI technologies</span> fail to operate as anticipated or not perform as specified, <span style='color:green;'>including any biases or errors in the outputs of AI,</span> patient care may be affected, legal claims may be asserted against us and our reputation may be harmed.</div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Health Care Facilities", "company": "HCA Healthcare"}, {"html": "<div class=\"report-card\">      <h3>Healthpeak Properties <span class=\"symbol\">(DOC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Health Care REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/765880/000162828025003748/peak-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/765880/000162828024004094/peak-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If our peers use AI tools to optimize operations and we fail to utilize AI tools in a comparable manner, we may be competitively disadvantaged.</span></div>    </div>", "risks": "Competition", "sector": "Real Estate", "sub": "Health Care REITs", "company": "Healthpeak Properties"}, {"html": "<div class=\"report-card\">      <h3>Healthpeak Properties <span class=\"symbol\">(DOC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Health Care REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/765880/000162828025003748/peak-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/765880/000162828024004094/peak-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our vendors may use AI tools in their products or services without our knowledge, and the providers of these tools may not meet the evolving regulatory or industry standards for privacy and data protection. Consequently, this may inhibit our or our vendors\u2019 ability to uphold an appropriate level of service and data privacy. If we, our vendors, or other third parties with which we conduct business experience an actual or perceived breach of privacy or security incident due to the use of AI, we may be adversely impacted, lose valuable intellectual property or confidential information, and incur harm to our reputation and the public perception of the effectiveness of our security measures. In addition, investors, analysts, and other market participants may use AI tools to process, summarize or interpret our financial information or other data about us. The use of AI tools in financial and market analysis may introduce risks similar to those described above, including an inaccurate interpretation of our financial or operational performance or market trends or conditions, which in turn could result in inaccurate conclusions or investment recommendations.</span></div>    </div>", "risks": "Third Party", "sector": "Real Estate", "sub": "Health Care REITs", "company": "Healthpeak Properties"}, {"html": "<div class=\"report-card\">      <h3>Healthpeak Properties <span class=\"symbol\">(DOC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Health Care REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Energy'>Energy</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/765880/000162828025003748/peak-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/765880/000162828024004094/peak-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Moreover, the adoption of AI tools by our tenants may lead to infrastructure requirements that our buildings currently do not accommodate, such as increased power needs for high-performance computing. Infrastructure upgrades may require significant capital expenditures and could potentially impact the environmental footprint of our building operations.</span></div>    </div>", "risks": "Energy", "sector": "Real Estate", "sub": "Health Care REITs", "company": "Healthpeak Properties"}, {"html": "<div class=\"report-card\">      <h3>Healthpeak Properties <span class=\"symbol\">(DOC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Health Care REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/765880/000162828025003748/peak-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/765880/000162828024004094/peak-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Cybersecurity threat actors may utilize AI tools to automate and enhance cybersecurity attacks against us. We utilize software and platforms designed to detect such cybersecurity threats, including AI-based tools, but these threats could become more sophisticated and harder to detect and counteract, which may pose significant risks to our data security and systems. Such cybersecurity attacks, if successful, could lead to data breaches, loss of confidential or sensitive information, and financial or reputational harm.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Real Estate", "sub": "Health Care REITs", "company": "Healthpeak Properties"}, {"html": "<div class=\"report-card\">      <h3>Healthpeak Properties <span class=\"symbol\">(DOC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Health Care REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/765880/000162828025003748/peak-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/765880/000162828024004094/peak-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If we, our vendors, or other third parties with which we conduct business experience an actual or perceived breach of privacy or security incident due to the use of AI, we may be adversely impacted, lose valuable intellectual property or confidential information, and incur harm to our reputation and the public perception of the effectiveness of our security measures.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Real Estate", "sub": "Health Care REITs", "company": "Healthpeak Properties"}, {"html": "<div class=\"report-card\">      <h3>Healthpeak Properties <span class=\"symbol\">(DOC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Health Care REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/765880/000162828025003748/peak-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/765880/000162828024004094/peak-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>However, while AI tools may facilitate optimization and operational efficiencies, they also have the potential for inaccuracy, bias, infringement or misappropriation of intellectual property, and risks related to data privacy and cybersecurity. The use of AI tools may introduce errors or inadequacies that are not easily detectable, including deficiencies, inaccuracies, or biases in the data used for AI training, or in the content, analyses, or recommendations generated by AI applications.</span></div>    </div>", "risks": "Bias", "sector": "Real Estate", "sub": "Health Care REITs", "company": "Healthpeak Properties"}, {"html": "<div class=\"report-card\">      <h3>Henry Schein <span class=\"symbol\">(HSIC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Distributors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1000228/000100022825000014/hsic-20241228.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1000228/000100022824000011/form10k20231230.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, countries are applying their data and consumer protection laws to AI, particularly generative AI, and areconsidering and implementing specific legal frameworks with respect to AI, for example the EU AI Act 2024(which as with the GDPR, will have extra-territorial effect).</span></div>    </div>", "risks": "EU AI Act", "sector": "Health Care", "sub": "Health Care Distributors", "company": "Henry Schein"}, {"html": "<div class=\"report-card\">      <h3>Henry Schein <span class=\"symbol\">(HSIC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Distributors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1000228/000100022825000014/hsic-20241228.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1000228/000100022824000011/form10k20231230.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, widely assessable generative AI that rapidly surpasses our organizational ability to understand associated risks and opportunities (including employees\u2019 failure to comply with policies governing AI usage) could endanger our intellectual property, lead to misuse of data and cause reputational harm.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Health Care", "sub": "Health Care Distributors", "company": "Henry Schein"}, {"html": "<div class=\"report-card\">      <h3>Hess Corporation <span class=\"symbol\">(HES)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Energy</span>          <span class=\"tag\">Integrated Oil & Gas</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/4447/000162828025008716/hes-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/4447/000162828024006845/hes-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>Threat</span> <span style='color:green;'>Cyberattacks are expected to accelerate on a global basis in frequency and magnitude as threat</span> actors are becoming increasingly adept in using techniques and tools, including artificial intelligence, that circumvent security controls, evade detection and remove forensic evidence.</div>    </div>", "risks": "Malicious Actors", "sector": "Energy", "sub": "Integrated Oil & Gas", "company": "Hess Corporation"}, {"html": "<div class=\"report-card\">      <h3>Hewlett Packard Enterprise <span class=\"symbol\">(HPE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Hardware, Storage & Peripherals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span><span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1645590/000164559024000139/hpe-20241031.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1645590/000164559023000117/hpe-20231031.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We have invested, and expect to continue to invest, significant resources to build and support the development of these capabilities and manufacturing processes, and if our AI-related offerings fail to operate as anticipated or as well as competing offerings or otherwise do not meet customer needs or if we are unable to bring AI-related offerings to market as effectively as our competitors, we may fail to recoup our investments in AI, our competitive position may be harmed, and our business and reputation may be adversely impacted.</span></div>    </div>", "risks": "Competition; Disillusionment", "sector": "Information Technology", "sub": "Technology Hardware, Storage & Peripherals", "company": "Hewlett Packard Enterprise"}, {"html": "<div class=\"report-card\">      <h3>Hewlett Packard Enterprise <span class=\"symbol\">(HPE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Hardware, Storage & Peripherals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1645590/000164559024000139/hpe-20241031.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1645590/000164559023000117/hpe-20231031.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>Our HPE GreenLake edge-to- cloud platform faces</span> <span style='color:green;'>These offerings face</span> competition from peer companies with their own cloud platform <span style='color:green;'>and artificial intelligence computing</span> offerings, and any delay in the development, production, or marketing of a new product, <span style='color:red;text-decoration:line-through;'>service</span> <span style='color:green;'>service,</span> or <span style='color:red;text-decoration:line-through;'>solution, including new features of the HPE GreenLake edge-to-cloud platform,</span> <span style='color:green;'>solution</span> could result in our offerings being late to reach the market, which could <span style='color:red;text-decoration:line-through;'>further</span> harm our competitive position.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Technology Hardware, Storage & Peripherals", "company": "Hewlett Packard Enterprise"}, {"html": "<div class=\"report-card\">      <h3>Hewlett Packard Enterprise <span class=\"symbol\">(HPE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Hardware, Storage & Peripherals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1645590/000164559024000139/hpe-20241031.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1645590/000164559023000117/hpe-20231031.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We believe the proliferation of AI, especially as it relates to our products and solutions that enable AI workloads, will have a significant impact on customer preferences and market dynamics in our industry, and our ability to effectively compete in this space will be critical to our financial performance.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Technology Hardware, Storage & Peripherals", "company": "Hewlett Packard Enterprise"}, {"html": "<div class=\"report-card\">      <h3>Hewlett Packard Enterprise <span class=\"symbol\">(HPE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Hardware, Storage & Peripherals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1645590/000164559024000139/hpe-20241031.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1645590/000164559023000117/hpe-20231031.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Further, there has been an increase in the frequency and sophistication of such attacks, and we expect these activities to continue to <span style='color:red;text-decoration:line-through;'>increase.</span> <span style='color:green;'>increase, including malicious actors potentially leveraging AI to develop malicious code or sophisticated phishing attempts.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Technology Hardware, Storage & Peripherals", "company": "Hewlett Packard Enterprise"}, {"html": "<div class=\"report-card\">      <h3>Hilton Worldwide <span class=\"symbol\">(HLT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1585689/000158568925000008/hlt-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1585689/000158568924000027/hlt-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The use of artificial intelligence can lead to unintended consequences, including generating content that appears correct but is factually inaccurate, misleading or otherwise flawed, or that results in unintended biases and discriminatory outcomes, which could harm our reputation and business and expose us to risks related to inaccuracies or errors in the output of such technologies.</div>    </div>", "risks": "Bias", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Hilton Worldwide"}, {"html": "<div class=\"report-card\">      <h3>Hologic <span class=\"symbol\">(HOLX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/859737/000085973724000024/holx-20240928.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/859737/000085973723000023/holx-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Improvements in existing competitive products or the introduction of new competitive <span style='color:red;text-decoration:line-through;'>products</span> <span style='color:green;'>products, including an increase of artificial intelligence and machine learning capabilities,</span> may reduce our ability to compete for sales, particularly if those competitive products demonstrate better safety or effectiveness, clinical results, ease of use or lower costs.</div>    </div>", "risks": "Competition", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Hologic"}, {"html": "<div class=\"report-card\">      <h3>Hologic <span class=\"symbol\">(HOLX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/859737/000085973724000024/holx-20240928.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/859737/000085973723000023/holx-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, our current products utilize artificial intelligence, and future innovations in our products will likely continue to incorporate artificial intelligence. As with many technological innovations, there are significant risks and challenges involved in maintaining and deploying these technologies, and there can be no assurance that the use of such technologies will enhance our products or services or be beneficial to our business.</span></div>    </div>", "risks": "Disillusionment", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Hologic"}, {"html": "<div class=\"report-card\">      <h3>Home Depot (The) <span class=\"symbol\">(HD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Home Improvement Retail</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/354950/000035495024000062/hd-20240128.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/354950/000035495023000059/hd-20230129.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">The cost and potential problems, defects of design, and interruptions associated with the implementation of these initiatives, including those associated with managing third-party service providers, employing new online tools and services, implementing new <span style='color:red;text-decoration:line-through;'>technologies,</span> <span style='color:green;'>technologies such as artificial intelligence,</span> implementing and restructuring support systems and processes, securing appropriate <span style='color:green;'>store and</span> facility locations, and addressing impacts on inventory levels, could disrupt or reduce the efficiency of our operations in the near term, lead to product availability issues, <span style='color:green;'>create complexity in our systems and operations</span> and impact our profitability.</div>    </div>", "risks": "", "sector": "Consumer Discretionary", "sub": "Home Improvement Retail", "company": "Home Depot (The)"}, {"html": "<div class=\"report-card\">      <h3>Honeywell <span class=\"symbol\">(HON)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Industrial Conglomerates</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span><span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/773840/000077384025000010/hon-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/773840/000077384024000014/hon-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We have developed product software designs that we believe are less susceptible to cyber-attacks, but despite these efforts, if our products and services that include IoT <span style='color:red;text-decoration:line-through;'>solutions</span> <span style='color:green;'>solutions, inclusive of artificial intelligence and machine learning technologies,</span> do not work as intended or are compromised, the possible consequences include financial loss, reputational damage, exposure to legal claims or enforcement actions, theft of intellectual property, and diminution in the value of our investment in research, development, and engineering, which in turn could adversely affect our competitiveness and results of operations.</div>    </div>", "risks": "Competition; Data and IP Protection", "sector": "Industrials", "sub": "Industrial Conglomerates", "company": "Honeywell"}, {"html": "<div class=\"report-card\">      <h3>Honeywell <span class=\"symbol\">(HON)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Industrial Conglomerates</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/773840/000077384025000010/hon-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/773840/000077384024000014/hon-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Furthermore, to the extent artificial intelligence capabilities <span style='color:green;'>continue to</span> improve and are increasingly adopted, they may be used to identify vulnerabilities and craft increasingly sophisticated cybersecurity attacks, <span style='color:red;text-decoration:line-through;'>and vulnerabilities may be introduced from</span> <span style='color:green;'>including</span> the use of <span style='color:green;'>generative</span> artificial intelligence <span style='color:red;text-decoration:line-through;'>by us, our financial services providers and other vendors and third-party providers.</span> <span style='color:green;'>to conduct more sophisticated social engineering attacks on the Company, suppliers, or customers.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Industrials", "sub": "Industrial Conglomerates", "company": "Honeywell"}, {"html": "<div class=\"report-card\">      <h3>Host Hotels & Resorts <span class=\"symbol\">(HST)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Hotel & Resort REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1070750/000107075025000071/hst-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1070750/000107075024000081/hst-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The introduction of AI, particularly generative AI, may also result in new or expanded risks and liabilities, including due to enhanced governmental or regulatory scrutiny, litigation, copyright infringement, compliance issues, ethical concerns, security risks relating to private and/or confidential information, as well as other factors that could adversely affect our business, reputation, and financial results. If we or our third-party managers experience an actual or perceived breach or a privacy or security incident because of the use of generative AI, we may lose valuable intellectual property and confidential information, and our reputation, or the reputation of our third-party managers, and the public perception of the effectiveness of our security measures could be harmed.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Real Estate", "sub": "Hotel & Resort REITs", "company": "Host Hotels & Resorts"}, {"html": "<div class=\"report-card\">      <h3>Host Hotels & Resorts <span class=\"symbol\">(HST)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Hotel & Resort REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1070750/000107075025000071/hst-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1070750/000107075024000081/hst-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The use of AI can also lead to unintended consequences, including generating content that appears correct but is factually inaccurate, misleading or otherwise flawed, or that results in unintended biases and discriminatory outcomes, which could harm our reputation (or the reputation of our third-party managers) and business and expose us to risks related to inaccuracies or errors in the output of such technologies.</span></div>    </div>", "risks": "Bias", "sector": "Real Estate", "sub": "Hotel & Resort REITs", "company": "Host Hotels & Resorts"}, {"html": "<div class=\"report-card\">      <h3>Howmet Aerospace <span class=\"symbol\">(HWM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Aerospace & Defense</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/4281/000000428125000011/hwm-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/4281/000000428124000007/hwm-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Unauthorized use or misuse of AI by the Company's employees, vendors or others may result in the disclosure of confidential company or customer data, reputational harm, privacy law violations, cybersecurity risks, and legal liability.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Industrials", "sub": "Aerospace & Defense", "company": "Howmet Aerospace"}, {"html": "<div class=\"report-card\">      <h3>HP Inc. <span class=\"symbol\">(HPQ)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Hardware, Storage & Peripherals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span><span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/47217/000004721724000080/hpq-20241031.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/47217/000004721723000100/hpq-20231031.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">We <span style='color:red;text-decoration:line-through;'>may be</span> <span style='color:green;'>have invested, and expect to continue to invest, significant resources to build and support our AI products. If our AI products fail to operate as anticipated or as well as competing products or otherwise do not meet customer needs or if we are</span> unable to bring AI-enabled products and solutions to market as effectively, or with the same speed or in the same volumes, as our competitors, <span style='color:red;text-decoration:line-through;'>which</span> <span style='color:green;'>we</span> may <span style='color:red;text-decoration:line-through;'>hurt</span> <span style='color:green;'>fail to recoup our investments in AI or improve our financial performance,</span> our competitive <span style='color:red;text-decoration:line-through;'>position.</span> <span style='color:green;'>position may be harmed, and our business and reputation may be adversely impacted.</span></div>    </div>", "risks": "Competition; Disillusionment", "sector": "Information Technology", "sub": "Technology Hardware, Storage & Peripherals", "company": "HP Inc."}, {"html": "<div class=\"report-card\">      <h3>HP Inc. <span class=\"symbol\">(HPQ)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Hardware, Storage & Peripherals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/47217/000004721724000080/hpq-20241031.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/47217/000004721723000100/hpq-20231031.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Many of our products <span style='color:green;'>and services, including those which incorporate AI capabilities,</span> are dependent on <span style='color:red;text-decoration:line-through;'>third- party</span> <span style='color:green;'>third-party</span> software, including from Microsoft and Google, to function as intended, and product issues also sometimes result from the interaction between our products and third-party products and software.</div>    </div>", "risks": "Third Party", "sector": "Information Technology", "sub": "Technology Hardware, Storage & Peripherals", "company": "HP Inc."}, {"html": "<div class=\"report-card\">      <h3>HP Inc. <span class=\"symbol\">(HPQ)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Hardware, Storage & Peripherals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/47217/000004721724000080/hpq-20241031.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/47217/000004721723000100/hpq-20231031.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The emergence and maturation of AI capabilities may also lead to new and/or more sophisticated methods of attack, including fraud that relies upon \u201cdeep fake\u201d impersonation technology or other forms of generative automation that may scale up the efficiency or effectiveness of cybersecurity attacks.</span></div>    </div>", "risks": "Deepfakes; Malicious Actors", "sector": "Information Technology", "sub": "Technology Hardware, Storage & Peripherals", "company": "HP Inc."}, {"html": "<div class=\"report-card\">      <h3>HP Inc. <span class=\"symbol\">(HPQ)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Hardware, Storage & Peripherals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/47217/000004721724000080/hpq-20241031.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/47217/000004721723000100/hpq-20231031.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Datasets may be insufficient or contain biased information.</div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Technology Hardware, Storage & Peripherals", "company": "HP Inc."}, {"html": "<div class=\"report-card\">      <h3>HP Inc. <span class=\"symbol\">(HPQ)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Hardware, Storage & Peripherals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/47217/000004721724000080/hpq-20241031.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/47217/000004721723000100/hpq-20231031.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">As with many innovations, AI presents risks, challenges, and unintended consequences that could affect its rate and success of adoption, and therefore our <span style='color:red;text-decoration:line-through;'>business.</span> <span style='color:green;'>business, and there is no guarantee that our use of AI or incorporation of AI capabilities into our products and solutions will benefit our business operations or result in products and solutions that are preferred by our customers.</span></div>    </div>", "risks": "Disillusionment", "sector": "Information Technology", "sub": "Technology Hardware, Storage & Peripherals", "company": "HP Inc."}, {"html": "<div class=\"report-card\">      <h3>Humana <span class=\"symbol\">(HUM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Managed Health Care</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/49071/000004907125000007/hum-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/49071/000004907124000012/hum-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, because the techniques used to obtain unauthorized access, disable or degrade service, or sabotage systems change frequently and are increasing in sophistication, in part due to use of evolving AI/ML technologies (including generative AI), and because our businesses are changing as well, we may be unable to anticipate these techniques and threats, detect data security incidents or implement adequate preventive measures.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Health Care", "sub": "Managed Health Care", "company": "Humana"}, {"html": "<div class=\"report-card\">      <h3>Humana <span class=\"symbol\">(HUM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Managed Health Care</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/49071/000004907125000007/hum-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/49071/000004907124000012/hum-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">If the information we rely upon to run our businesses was found to be <span style='color:red;text-decoration:line-through;'>inaccurate</span> <span style='color:green;'>inaccurate, unreliable,</span> or <span style='color:red;text-decoration:line-through;'>unreliable or</span> <span style='color:green;'>biased,</span> if we fail to improve service levels or maintain <span style='color:green;'>the integrity of our data, or if we fail to</span> effectively <span style='color:green;'>maintain</span> our information systems and <span style='color:red;text-decoration:line-through;'>data integrity,</span> <span style='color:green;'>develop and integrate new systems (including systems powered by or incorporating AI/ML), or if our use of AI/ML technologies were to result in inaccuracies, biases or errors,</span> we could have operational disruptions, problems in determining medical cost estimates and establishing appropriate pricing, customer and health care provider disputes, <span style='color:green;'>reputational challenges,</span> regulatory or other legal <span style='color:red;text-decoration:line-through;'>problems,</span> <span style='color:green;'>obstacles (including potential investigations and enforcement),</span> difficulty preventing and detecting fraud, <span style='color:red;text-decoration:line-through;'>have</span> increases in operating expenses, <span style='color:green;'>difficulty driving administrative or operational efficiencies to enhance our operations and reduce costs,</span> loss of existing customers, difficulty in attracting new customers, or other adverse consequences, each of which may result in a material adverse effect on our results of operations, financial position, and cash flows.</div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Managed Health Care", "company": "Humana"}, {"html": "<div class=\"report-card\">      <h3>Huntington Bancshares <span class=\"symbol\">(HBAN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Regional Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span><span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/49196/000004919625000020/hban-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/49196/000004919624000020/hban-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, there can be no assurance that our use of AI will be successful in enhancing our business or operations or otherwise result in our intended outcomes, and our competitors may incorporate AI into their businesses or operations more quickly or more successfully than us.</span></div>    </div>", "risks": "Competition; Disillusionment", "sector": "Financials", "sub": "Regional Banks", "company": "Huntington Bancshares"}, {"html": "<div class=\"report-card\">      <h3>Huntington Bancshares <span class=\"symbol\">(HBAN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Regional Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/49196/000004919625000020/hban-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/49196/000004919624000020/hban-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">In addition, cybersecurity risks have significantly increased in recent years in part due to the increased sophistication and activities of <span style='color:green;'>cyber threat actors, such as</span> organized crime affiliates, terrorist organizations, <span style='color:green;'>state-sponsored actors,</span> hostile foreign governments, disgruntled employees or vendors, activists, and other external parties, including those involved in corporate <span style='color:red;text-decoration:line-through;'>espionage.</span> <span style='color:green;'>espionage, any of whom may enhance their efforts through the use of AI.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Regional Banks", "company": "Huntington Bancshares"}, {"html": "<div class=\"report-card\">      <h3>Huntington Bancshares <span class=\"symbol\">(HBAN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Regional Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/49196/000004919625000020/hban-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/49196/000004919624000020/hban-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, if we do not have sufficient rights to use the data or algorithms on which our AI solutions rely or the output generated thereby, we also may incur liability through the violation of applicable laws and regulations, such as fair lending laws and regulations, third-party intellectual property, privacy or other rights, or contracts to which we are a party.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Financials", "sub": "Regional Banks", "company": "Huntington Bancshares"}, {"html": "<div class=\"report-card\">      <h3>Huntington Bancshares <span class=\"symbol\">(HBAN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Regional Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/49196/000004919625000020/hban-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/49196/000004919624000020/hban-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The models underlying AI may be incorrectly or inadequately designed or implemented and trained on, or otherwise use, data or algorithms that are, and output that may be, incomplete, inadequate, misleading, biased, poor-quality or otherwise flawed, any of which may not be easily detectable.</span></div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Regional Banks", "company": "Huntington Bancshares"}, {"html": "<div class=\"report-card\">      <h3>Huntington Ingalls Industries <span class=\"symbol\">(HII)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Aerospace & Defense</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1501585/000150158525000006/hii-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1501585/000150158524000007/hii-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If the AI tools that we use are deficient, inaccurate, or controversial, we could incur operational inefficiencies, competitive harm, legal liability, brand or reputational harm, or other adverse impacts on our business and financial results.</span></div>    </div>", "risks": "Competition", "sector": "Industrials", "sub": "Aerospace & Defense", "company": "Huntington Ingalls Industries"}, {"html": "<div class=\"report-card\">      <h3>Huntington Ingalls Industries <span class=\"symbol\">(HII)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Aerospace & Defense</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1501585/000150158525000006/hii-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1501585/000150158524000007/hii-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'> There is inherent risk and uncertainty involved in using AI and we cannot provide assurances that our use of AI will enhance our products or services, produce the intended results, or keep pace with our competitors.</span></div>    </div>", "risks": "Disillusionment", "sector": "Industrials", "sub": "Aerospace & Defense", "company": "Huntington Ingalls Industries"}, {"html": "<div class=\"report-card\">      <h3>IBM <span class=\"symbol\">(IBM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">IT Consulting & Other Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/51143/000005114325000015/ibm-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/51143/000005114324000012/ibm-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Computer hackers and others routinely attack the security of technology products, services, systems and <span style='color:red;text-decoration:line-through;'>networks</span> <span style='color:green;'>networks, like those we offer,</span> using a wide variety of methods, including ransomware or other malicious software and attempts to exploit vulnerabilities in hardware, software, and <span style='color:red;text-decoration:line-through;'>infrastructure.</span> <span style='color:green;'>infrastructure, and the increased use of generative AI may introduce novel methods of attack.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "IT Consulting & Other Services", "company": "IBM"}, {"html": "<div class=\"report-card\">      <h3>IDEX Corporation <span class=\"symbol\">(IEX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Industrial Machinery & Supplies & Components</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/832101/000083210125000010/iex-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/832101/000083210124000009/iex-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The development, adoption, and use of AI technologies are still in their early stages and ineffective or inadequate AI development or deployment practices could result in unintended consequences. For example, AI algorithms may be flawed or may be based on datasets that are biased or insufficient.</span></div>    </div>", "risks": "Bias", "sector": "Industrials", "sub": "Industrial Machinery & Supplies & Components", "company": "IDEX Corporation"}, {"html": "<div class=\"report-card\">      <h3>Idexx Laboratories <span class=\"symbol\">(IDXX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/874716/000087471625000037/idxx-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/874716/000087471624000057/idxx-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">In <span style='color:red;text-decoration:line-through;'>December 2023 the European Parliament and Council reached agreement on</span> <span style='color:green;'>August 2024,</span> the European Union Artificial Intelligence Act, which <span style='color:red;text-decoration:line-through;'>will establish</span> <span style='color:green;'>establishes</span> requirements for the provision and use of products that leverage artificial intelligence, machine learning, and similar <span style='color:red;text-decoration:line-through;'>technologies, and is expected to take effect in stages throughout 2025 and 2026.</span> <span style='color:green;'>technologies was enacted.</span></div>    </div>", "risks": "EU AI Act", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Idexx Laboratories"}, {"html": "<div class=\"report-card\">      <h3>Idexx Laboratories <span class=\"symbol\">(IDXX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/874716/000087471625000037/idxx-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/874716/000087471624000057/idxx-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">In addition, security industry experts and government officials have warned about the risks of <span style='color:red;text-decoration:line-through;'>hackers</span> <span style='color:green;'>threat actors, such as hackers, nation state actors,</span> and <span style='color:red;text-decoration:line-through;'>cybersecurity attacks</span> <span style='color:green;'>organized groups,</span> targeting U.S. organizations, <span style='color:red;text-decoration:line-through;'>such as IDEXX,</span> and recent developments in the cyber threat landscape include the growing use of AI, which could enable or create more sophisticated cybersecurity attacks and increase <span style='color:red;text-decoration:line-through;'>the</span> <span style='color:green;'>attack</span> volume and <span style='color:red;text-decoration:line-through;'>frequency of attacks.</span> <span style='color:green;'>frequency.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Idexx Laboratories"}, {"html": "<div class=\"report-card\">      <h3>Idexx Laboratories <span class=\"symbol\">(IDXX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/874716/000087471625000037/idxx-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/874716/000087471624000057/idxx-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For example, <span style='color:red;text-decoration:line-through;'>the Biden Administration issued an Executive Order aimed at establishing new standards for AI safety and security, privacy, consumer and employee protection and innovation and competition associated with the use of AI. Further,</span> use of artificial intelligence and machine learning may be subject to laws and evolving regulations regarding, among other things, data bias and <span style='color:red;text-decoration:line-through;'>anti- discrimination.</span> <span style='color:green;'>anti-discrimination.</span></div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Idexx Laboratories"}, {"html": "<div class=\"report-card\">      <h3>Illinois Tool Works <span class=\"symbol\">(ITW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Industrial Machinery & Supplies & Components</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/49826/000004982625000007/itw-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/49826/000004982624000008/itw-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Difficulties or delays in research, development, production or commercialization of new products and services <span style='color:green;'>or in the adoption of technological change, such as the use of artificial intelligence and machine learning,</span> may reduce future revenues and adversely affect the Company's competitive position.</div>    </div>", "risks": "Competition", "sector": "Industrials", "sub": "Industrial Machinery & Supplies & Components", "company": "Illinois Tool Works"}, {"html": "<div class=\"report-card\">      <h3>Illinois Tool Works <span class=\"symbol\">(ITW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Industrial Machinery & Supplies & Components</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/49826/000004982625000007/itw-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/49826/000004982624000008/itw-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The risk and severity of cybersecurity attacks could increase as artificial intelligence is used by threat actors to identify vulnerabilities and conduct increasingly sophisticated attacks. </span></div>    </div>", "risks": "Malicious Actors", "sector": "Industrials", "sub": "Industrial Machinery & Supplies & Components", "company": "Illinois Tool Works"}, {"html": "<div class=\"report-card\">      <h3>Incyte <span class=\"symbol\">(INCY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Biotechnology</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/879169/000162828025004633/incy-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/879169/000087916924000045/incy-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Malicious <span style='color:green;'>cyber</span> attacks <span style='color:red;text-decoration:line-through;'>by third parties</span> are <span style='color:green;'>growing in frequency and sophistication, including the use</span> of <span style='color:red;text-decoration:line-through;'>ever-increasing sophistication</span> <span style='color:green;'>artificial intelligence,</span> and can be made by groups and individuals with a wide range of motives, including nation states, organized criminal groups, \u201chacktivists\u201d and others acting with malicious intent.</div>    </div>", "risks": "Malicious Actors", "sector": "Health Care", "sub": "Biotechnology", "company": "Incyte"}, {"html": "<div class=\"report-card\">      <h3>Ingersoll Rand <span class=\"symbol\">(IR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Industrial Machinery & Supplies & Components</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1699150/000162828025006391/iri-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1699150/000162828024006642/iri-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The development, adoption, and use of AI technologies are still in their early stages and ineffective or inadequate AI development or deployment practices could result in unintended consequences. For example, AI algorithms may be flawed or may be based on datasets that are biased or insufficient.</span></div>    </div>", "risks": "Bias", "sector": "Industrials", "sub": "Industrial Machinery & Supplies & Components", "company": "Ingersoll Rand"}, {"html": "<div class=\"report-card\">      <h3>Ingersoll Rand <span class=\"symbol\">(IR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Industrial Machinery & Supplies & Components</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1699150/000162828025006391/iri-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1699150/000162828024006642/iri-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Conversely, any failure to successfully develop and deploy AI in our business activities, products and services could adversely affect our competitiveness (particularly if our competitors successfully deploy AI in their businesses, products and services), and the development and deployment of AI will require additional investment and increase our costs.</span></div>    </div>", "risks": "Competition", "sector": "Industrials", "sub": "Industrial Machinery & Supplies & Components", "company": "Ingersoll Rand"}, {"html": "<div class=\"report-card\">      <h3>Insulet Corporation <span class=\"symbol\">(PODD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1145197/000114519725000007/podd-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1145197/000114519724000011/podd-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The rapidly-changing technical and regulatory environment and our AI-related activities may have an adverse effect on our business. We develop and license from other developers, and deploy, AI tools including Generative AI tools for use in our operations. Our teams collaborate on the development of responsible AI policies and practices and deployment of AI tools in accordance with those policies and practices, which are in turn based on relevant laws and standards, including the EU AI Act (which is taking effect in stages, through August 2026). While we anticipate being able to capitalize on opportunities using AI tools including Generative AI tools, improving efficiencies and creating more personalized experiences, doing so is not without risk. Risks include potential inappropriate disclosure of personal information and confidential information and potential use of inaccurate information contained in Generative AI outputs.</span></div>    </div>", "risks": "EU AI Act", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Insulet Corporation"}, {"html": "<div class=\"report-card\">      <h3>Insulet Corporation <span class=\"symbol\">(PODD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1145197/000114519725000007/podd-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1145197/000114519724000011/podd-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>While we anticipate being able to capitalize on opportunities using AI tools including Generative AI tools, improving efficiencies and creating more personalized experiences, doing so is not without risk. Risks include potential inappropriate disclosure of personal information and confidential information and potential use of inaccurate information contained in Generative AI outputs.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Insulet Corporation"}, {"html": "<div class=\"report-card\">      <h3>Intel <span class=\"symbol\">(INTC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/50863/000005086325000009/intc-20241228.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/50863/000005086324000010/intc-20231230.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our competitive environment has intensified in recent years, and we expect it to continue to do so in the <span style='color:red;text-decoration:line-through;'>future.</span> <span style='color:green;'>future, including as a result of the proliferation of AI and high demand for AI-related products and services.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Semiconductors", "company": "Intel"}, {"html": "<div class=\"report-card\">      <h3>Intel <span class=\"symbol\">(INTC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/50863/000005086325000009/intc-20241228.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/50863/000005086324000010/intc-20231230.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The proliferation of generative AI increases the risk of these technologies being used by threat actors to impersonate authorized individuals, which may make attacks even more difficult to detect and prevent. Moreover, the increased adoption of generative AI models within our internal systems, processes, and tools may create new attack methods for threat actors.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Semiconductors", "company": "Intel"}, {"html": "<div class=\"report-card\">      <h3>Intel <span class=\"symbol\">(INTC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/50863/000005086325000009/intc-20241228.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/50863/000005086324000010/intc-20231230.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For example, threat actors <span style='color:red;text-decoration:line-through;'>may leverage</span> <span style='color:green;'>are leveraging</span> emerging AI technologies to develop new hacking tools and attack vectors, exploit vulnerabilities, obscure their activities, and increase the difficulty of threat attribution.</div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Semiconductors", "company": "Intel"}, {"html": "<div class=\"report-card\">      <h3>Intercontinental Exchange <span class=\"symbol\">(ICE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1571949/000157194925000003/ice-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1571949/000157194924000007/ice-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our financial performance depends, in part, on our ability to develop and market new and innovative services and to adopt or develop new technologies that differentiate our products or provide cost efficiencies, while avoiding increased related expenses. Our adoption of emerging technologies, including artificial intelligence and machine learning tools, poses both risk of displacement and opportunity for innovation.</span></div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "Intercontinental Exchange"}, {"html": "<div class=\"report-card\">      <h3>Intercontinental Exchange <span class=\"symbol\">(ICE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1571949/000157194925000003/ice-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1571949/000157194924000007/ice-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, our existing competitors or new entrants may be developing their own artificial intelligence products and technologies, which may be superior in features or functionality, or cost, to our offerings, or could negatively impact our business by causing our clients to rely less on our products and services.</span></div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "Intercontinental Exchange"}, {"html": "<div class=\"report-card\">      <h3>Intercontinental Exchange <span class=\"symbol\">(ICE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1571949/000157194925000003/ice-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1571949/000157194924000007/ice-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>Additionally, we</span> <span style='color:green;'>Certain artificial intelligence technology may give rise to increased intellectual property risks, such as compromises to proprietary intellectual property and intellectual property infringement. We</span> may be unable to detect the misappropriation or unauthorized use of our confidential information and intellectual property.</div>    </div>", "risks": "Data and IP Protection", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "Intercontinental Exchange"}, {"html": "<div class=\"report-card\">      <h3>Intercontinental Exchange <span class=\"symbol\">(ICE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span><span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1571949/000157194925000003/ice-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1571949/000157194924000007/ice-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Market acceptance of artificial intelligence technologies is uncertain, and we may be unsuccessful in our product development efforts. Our artificial intelligence-related product initiatives and offerings, or use in our internal business operations, may give rise to risks related to accuracy, bias, discrimination, intellectual property infringement, misappropriation or leakage, defamation, data privacy and cybersecurity, among others.</span></div>    </div>", "risks": "Bias; Data and IP Protection", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "Intercontinental Exchange"}, {"html": "<div class=\"report-card\">      <h3>Intercontinental Exchange <span class=\"symbol\">(ICE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1571949/000157194925000003/ice-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1571949/000157194924000007/ice-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our emerging technology initiatives under development and the use of artificial intelligence in certain of our existing products may be unsuccessful and may give rise to various risks, which could adversely affect our business, reputation or operating results.</span></div>    </div>", "risks": "Disillusionment", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "Intercontinental Exchange"}, {"html": "<div class=\"report-card\">      <h3>Intercontinental Exchange <span class=\"symbol\">(ICE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1571949/000157194925000003/ice-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1571949/000157194924000007/ice-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>As artificial intelligence is a new and evolving technology in the early stages of commercial use, there are significant risks involved in the development and deployment of artificial intelligence. Moreover, there can be no</span> assurance that <span style='color:red;text-decoration:line-through;'>these</span> <span style='color:green;'>the use of artificial intelligence will enhance our products</span> or <span style='color:red;text-decoration:line-through;'>any other additions</span> <span style='color:green;'>services</span> or <span style='color:red;text-decoration:line-through;'>modifications will be successful</span> <span style='color:green;'>augment our business</span> or <span style='color:red;text-decoration:line-through;'>will not result in harm to Bakkt\u2019s business.</span> <span style='color:green;'>operating results.</span></div>    </div>", "risks": "Disillusionment", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "Intercontinental Exchange"}, {"html": "<div class=\"report-card\">      <h3>International Flavors & Fragrances <span class=\"symbol\">(IFF)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Specialty Chemicals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/51253/000005125325000013/iff-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/51253/000005125324000006/iff-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Any failure to capitalize on the AI benefits to the same degree or with the same speed as our competitors may put us in a disadvantageous <span style='color:red;text-decoration:line-through;'>position.</span> <span style='color:green;'>position and render our intellectual property portfolio less valuable.</span></div>    </div>", "risks": "Competition", "sector": "Materials", "sub": "Specialty Chemicals", "company": "International Flavors & Fragrances"}, {"html": "<div class=\"report-card\">      <h3>International Flavors & Fragrances <span class=\"symbol\">(IFF)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Specialty Chemicals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/51253/000005125325000013/iff-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/51253/000005125324000006/iff-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">At the same time, AI <span style='color:green;'>is already changing and</span> has the potential to <span style='color:green;'>further</span> significantly change the way we <span style='color:green;'>or our competitors</span> do <span style='color:red;text-decoration:line-through;'>our</span> business by, among other things, <span style='color:green;'>accelerating research and development,</span> creating efficiencies, improving <span style='color:red;text-decoration:line-through;'>our</span> <span style='color:green;'>supply chain, productivity and other</span> processes, customer experience, talent management and <span style='color:red;text-decoration:line-through;'>our</span> decision-making.</div>    </div>", "risks": "Competition", "sector": "Materials", "sub": "Specialty Chemicals", "company": "International Flavors & Fragrances"}, {"html": "<div class=\"report-card\">      <h3>International Flavors & Fragrances <span class=\"symbol\">(IFF)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Specialty Chemicals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/51253/000005125325000013/iff-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/51253/000005125324000006/iff-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, the use of AI may lead to the weakening or loss of intellectual property rights, where AI-generated inventions or creations may not be properly attributed to the rightful inventors, potentially resulting in disputes over intellectual property ownership and inventorship rights.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Materials", "sub": "Specialty Chemicals", "company": "International Flavors & Fragrances"}, {"html": "<div class=\"report-card\">      <h3>International Flavors & Fragrances <span class=\"symbol\">(IFF)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Specialty Chemicals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/51253/000005125325000013/iff-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/51253/000005125324000006/iff-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Analyses, results or business processes relying on AI may also be deficient, inaccurate, or biased and we may fail to identify in a timely fashion or at all, if or to the extent that is the case.</div>    </div>", "risks": "Bias", "sector": "Materials", "sub": "Specialty Chemicals", "company": "International Flavors & Fragrances"}, {"html": "<div class=\"report-card\">      <h3>International Paper <span class=\"symbol\">(IP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Paper & Plastic Packaging Products & Materials</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/51434/000005143425000013/ip-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/51434/000005143424000024/ip-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">These requirements may make it harder for us to conduct our business using AI, lead to regulatory fines or penalties, require us to change our business practices, or limit <span style='color:red;text-decoration:line-through;'>our use of AI.</span> <span style='color:green;'>AI usage, which may lead to inefficiencies or competitive disadvantages.</span></div>    </div>", "risks": "Competition", "sector": "Materials", "sub": "Paper & Plastic Packaging Products & Materials", "company": "International Paper"}, {"html": "<div class=\"report-card\">      <h3>International Paper <span class=\"symbol\">(IP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Paper & Plastic Packaging Products & Materials</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/51434/000005143425000013/ip-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/51434/000005143424000024/ip-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Failure to implement digital and data programs or identify or prioritize the latest digital and/or AI transformation initiatives may result in us falling behind our competitors with regards to speed to market, smart product offerings, manufacturing capacity and service levels, each of which could have a material adverse effect on our business, financial condition, results of operations and/or future prospects.</span></div>    </div>", "risks": "Competition", "sector": "Materials", "sub": "Paper & Plastic Packaging Products & Materials", "company": "International Paper"}, {"html": "<div class=\"report-card\">      <h3>International Paper <span class=\"symbol\">(IP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Paper & Plastic Packaging Products & Materials</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/51434/000005143425000013/ip-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/51434/000005143424000024/ip-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, on May 21, 2024, the Council of the European Union adopted the EU AI Act, regulating the developments and deployment of AI systems. The EU AI Act imposes obligations on transparency, risk management and data governance for AI systems, particularly those classified as high risk, with significant fines for noncompliance.</span></div>    </div>", "risks": "EU AI Act", "sector": "Materials", "sub": "Paper & Plastic Packaging Products & Materials", "company": "International Paper"}, {"html": "<div class=\"report-card\">      <h3>Intuit <span class=\"symbol\">(INTU)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Skills'>Skills</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/896878/000089687824000039/intu-20240731.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/896878/000089687823000034/intu-20230731.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">We have and will continue to devote significant resources to continue to develop our skills, tools and capabilities to capitalize on existing and emerging <span style='color:red;text-decoration:line-through;'>technologies.</span> <span style='color:green;'>technologies, including artificial intelligence.</span></div>    </div>", "risks": "Skills", "sector": "Information Technology", "sub": "Application Software", "company": "Intuit"}, {"html": "<div class=\"report-card\">      <h3>Intuit <span class=\"symbol\">(INTU)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/896878/000089687824000039/intu-20240731.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/896878/000089687823000034/intu-20230731.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our ability to adopt emerging technologies, including AI, and to innovate for our customers and operate our business may be harmed by the uncertainty and complexity created by the regulatory environment. For example, in May 2024, the European Parliament and the Council adopted the Artificial Intelligence Act (\u201cAI Act\u201d) that will regulate AI systems that affect individuals located in the EU. Compliance with the AI Act, and similar emerging laws, may add significant costs to our business and may require us to change certain business practices to comply. In addition, some of our offerings, such as our lending and payments products, require licenses to operate. Our inability to obtain or maintain a license, or to comply with current or new license requirements, may materially harm our ability to operate in specific jurisdictions or subject us to regulatory fines or penalties.</span></div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Application Software", "company": "Intuit"}, {"html": "<div class=\"report-card\">      <h3>Intuit <span class=\"symbol\">(INTU)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/896878/000089687824000039/intu-20240731.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/896878/000089687823000034/intu-20230731.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Malicious third parties may be able to circumvent these security and business controls or exploit vulnerabilities that may exist in these controls, resulting in the disclosure or misuse of sensitive business and personal customer or workforce information and data. In addition, malicious actors may attempt to use the information technology supply chain to compromise our systems by, for example, introducing malware through software updates. <span style='color:green;'>This risk is exacerbated with the advancement of technologies like AI, which malicious third parties are using to create new, sophisticated and more frequent attacks on our third-party partners.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Application Software", "company": "Intuit"}, {"html": "<div class=\"report-card\">      <h3>Intuit <span class=\"symbol\">(INTU)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/896878/000089687824000039/intu-20240731.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/896878/000089687823000034/intu-20230731.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">In addition, <span style='color:red;text-decoration:line-through;'>because the</span> techniques used to obtain unauthorized access to sensitive information change <span style='color:red;text-decoration:line-through;'>frequently,</span> <span style='color:green;'>frequently and, as technologies like AI develop rapidly, malicious third parties are using these technologies to create new sophisticated attack methods that are increasingly automated, targeted</span> and <span style='color:red;text-decoration:line-through;'>are becoming</span> <span style='color:green;'>coordinated and</span> more <span style='color:red;text-decoration:line-through;'>sophisticated and are often not able</span> <span style='color:green;'>difficult</span> to <span style='color:red;text-decoration:line-through;'>be detected until after a successful attack, we may be unable to anticipate these techniques or implement adequate preventive measures.</span> <span style='color:green;'>defend against.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Application Software", "company": "Intuit"}, {"html": "<div class=\"report-card\">      <h3>Intuit <span class=\"symbol\">(INTU)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/896878/000089687824000039/intu-20240731.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/896878/000089687823000034/intu-20230731.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Inadvertent exposure of data or access to our systems may also be caused by members of our workforce, including by their error or use of AI.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Information Technology", "sub": "Application Software", "company": "Intuit"}, {"html": "<div class=\"report-card\">      <h3>Intuit <span class=\"symbol\">(INTU)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/896878/000089687824000039/intu-20240731.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/896878/000089687823000034/intu-20230731.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">For example, AI algorithms that we use may be flawed or may be based on datasets that are biased or insufficient.</div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Application Software", "company": "Intuit"}, {"html": "<div class=\"report-card\">      <h3>Intuitive Surgical <span class=\"symbol\">(ISRG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1035267/000103526725000017/isrg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1035267/000103526724000021/isrg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The European Strategy for Data includes a collection of laws focused on ensuring fundamental principles (including doing business in an ethical way, respecting fundamental rights of individuals, not exploiting individuals, and transparency in collection and use of data) are promoted and adhered to in support of innovation for the benefit of the community. In particular, the AI Act, European Health Data Space, and Data Act and Data Governance Acts regulate personal and non-personal data as well as artificial intelligence. These laws are meant to be read and interpreted together (and in concert with the GDPR), ensuring that innovation respects individuals\u2019 fundamental rights and that businesses act with integrity. The Data Act and European Health Data Space Act provide individual and organizational users of certain systems and devices the right to access a broad range of information not previously available and include, in some cases, rights to secondary uses of such data. These obligations may be interpreted in ways that require us to modify our business practices and products to maintain compliance, potentially increasing costs and operational complexity.</span></div>    </div>", "risks": "EU AI Act", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Intuitive Surgical"}, {"html": "<div class=\"report-card\">      <h3>Intuitive Surgical <span class=\"symbol\">(ISRG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1035267/000103526725000017/isrg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1035267/000103526724000021/isrg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For example, on <span style='color:red;text-decoration:line-through;'>April</span> <span style='color:green;'>May</span> 21, <span style='color:red;text-decoration:line-through;'>2021,</span> <span style='color:green;'>2024,</span> the European <span style='color:red;text-decoration:line-through;'>Commission proposed a regulation seeking to establish</span> <span style='color:green;'>Union legislators approved the EU Artificial Intelligence Act (\u201cEU AI Act\u201d), which establishes</span> a comprehensive, risk-based governance framework for AI in the EU <span style='color:red;text-decoration:line-through;'>market (\u201cEU AI Act\u201d).</span> <span style='color:green;'>market.</span></div>    </div>", "risks": "EU AI Act", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Intuitive Surgical"}, {"html": "<div class=\"report-card\">      <h3>Intuitive Surgical <span class=\"symbol\">(ISRG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1035267/000103526725000017/isrg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1035267/000103526724000021/isrg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The <span style='color:red;text-decoration:line-through;'>proposal is intended to</span> <span style='color:green;'>EU AI Act enters into force on August 2, 2024, and the majority of the substantive requirements will apply from August 2, 2026. The EU AI Act will</span> apply to companies that develop, use, and/or provide AI in the EU and includes requirements around transparency, conformity assessments and monitoring, risk assessments, human oversight, security, <span style='color:green;'>accuracy, general purpose AI,</span> and <span style='color:red;text-decoration:line-through;'>accuracy.</span> <span style='color:green;'>foundation models, and proposes fines for breach of up to 7% of worldwide annual turnover.</span></div>    </div>", "risks": "EU AI Act", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Intuitive Surgical"}, {"html": "<div class=\"report-card\">      <h3>Intuitive Surgical <span class=\"symbol\">(ISRG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1035267/000103526725000017/isrg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1035267/000103526724000021/isrg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>These regulatory proposals are at varying stages of the legislative process and are not yet finalized; the EU AI Act is at an advanced stage and the text is currently expected to be finalized by the end of 2023.</span></div>    </div>", "risks": "EU AI Act", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Intuitive Surgical"}, {"html": "<div class=\"report-card\">      <h3>Intuitive Surgical <span class=\"symbol\">(ISRG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1035267/000103526725000017/isrg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1035267/000103526724000021/isrg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>Once finalized</span> <span style='color:green;'>These Liability Directives were published in the Official Journal of the EU on July 12, 2024,</span> and <span style='color:red;text-decoration:line-through;'>in force, this regulatory framework is expected to</span> <span style='color:green;'>entered into force on August 1, 2024. The EU AI Act and the Liability Directives will</span> have a material impact on the way <span style='color:red;text-decoration:line-through;'>that</span> AI is regulated in the <span style='color:green;'>EU. Recent case law from the CJEU has also taken an expansive view of the scope of the GDPR\u2019s requirements around automated decision-making and introduced uncertainty in the interpretation of these rules. The</span> EU <span style='color:red;text-decoration:line-through;'>and,</span> <span style='color:green;'>AI Act and developing interpretation and application of the GDPR in respect of automated decision- making,</span> together with developing guidance and/or decisions in this area, may affect our use of AI <span style='color:green;'>technologies</span> and our ability to provide, improve, or commercialize our <span style='color:red;text-decoration:line-through;'>services,</span> <span style='color:green;'>business,</span> require additional compliance measures and changes to our operations and processes, result in increased compliance costs and potential increases in civil claims against us, and could adversely affect our business, <span style='color:red;text-decoration:line-through;'>operations, and</span> financial <span style='color:red;text-decoration:line-through;'>condition.</span> <span style='color:green;'>condition, or results of operations.</span></div>    </div>", "risks": "EU AI Act", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Intuitive Surgical"}, {"html": "<div class=\"report-card\">      <h3>Intuitive Surgical <span class=\"symbol\">(ISRG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1035267/000103526725000017/isrg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1035267/000103526724000021/isrg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Cyberattacks and other security breaches or disruptions continue to increase in frequency, sophistication, and intensity and are becoming increasingly difficult to detect for periods of time, especially as they relate to attacks on third-party providers or their vendors. Such attacks are often carried out by motivated and highly skilled actors, who are increasingly well-resourced.</span> Techniques used to compromise or sabotage systems, including the use of advanced technologies, such as machine learning or <span style='color:green;'>generative</span> artificial <span style='color:red;text-decoration:line-through;'>intelligence,</span> <span style='color:green;'>intelligence (\u201cAI\u201d),</span> change frequently, may originate from less regulated and remote areas of the world, may be difficult to detect, and generally are not recognized until after they are launched against a target.</div>    </div>", "risks": "Malicious Actors", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Intuitive Surgical"}, {"html": "<div class=\"report-card\">      <h3>Intuitive Surgical <span class=\"symbol\">(ISRG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1035267/000103526725000017/isrg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1035267/000103526724000021/isrg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Risks can include, but are not limited to, the potential for errors or inaccuracies in the algorithms or models used by the MLMDs, the potential for bias or inaccuracies in the data used to train the MLMDs, the potential for improper processing of personal information that could lead to deprecation of our algorithms, and the potential for cybersecurity breaches that could compromise patient data or device functionality.</div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Intuitive Surgical"}, {"html": "<div class=\"report-card\">      <h3>Invesco <span class=\"symbol\">(IVZ)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/914208/000091420825000114/ivz-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/914208/000091420824000219/ivz-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If our use of AI becomes controversial, we may experience brand or reputational harm, competitive harm, or legal liability.</span></div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "Invesco"}, {"html": "<div class=\"report-card\">      <h3>Invesco <span class=\"symbol\">(IVZ)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/914208/000091420825000114/ivz-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/914208/000091420824000219/ivz-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI models, particularly generative AI models, may produce output or take action that is incorrect or outdated, that result in the release of personal, confidential or proprietary information, that reflect biases included in the data on which they are trained or introduced during the training or fine tuning process, that infringe on the intellectual property rights of others, or that is otherwise harmful. In addition, the complexity of many AI models makes it challenging to understand why they are generating particular outputs. This limited transparency increases the challenges associated with assessing the proper operation of AI technology, understanding and monitoring the capabilities of the AI technology developed by third parties and, to that extent, are dependent in part on the manner in which those third parties develop and train their models.</span></div>    </div>", "risks": "Third Party", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "Invesco"}, {"html": "<div class=\"report-card\">      <h3>Invesco <span class=\"symbol\">(IVZ)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/914208/000091420825000114/ivz-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/914208/000091420824000219/ivz-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition to our use of AI technologies, we are exposed to risks arising from the use of AI technologies by bad actors to commit fraud and misappropriate funds and to facilitate cyberattacks. Generative AI, if used to perpetrate fraud or launch cyberattacks, could result in losses, liquidity outflows, or other adverse effects at a particular financial institution or exchange.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "Invesco"}, {"html": "<div class=\"report-card\">      <h3>Invesco <span class=\"symbol\">(IVZ)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/914208/000091420825000114/ivz-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/914208/000091420824000219/ivz-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI models, particularly generative AI models, may produce output or take action that is incorrect or outdated, that result in the release of personal, confidential or proprietary information, that reflect biases included in the data on which they are trained or introduced during the training or fine tuning process, that infringe on the intellectual property rights of others, or that is otherwise harmful.</span></div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "Invesco"}, {"html": "<div class=\"report-card\">      <h3>IQVIA <span class=\"symbol\">(IQV)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Life Sciences Tools & Services</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1478242/000147824225000045/iqv-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1478242/000147824224000038/iqv-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Regulations relating to the use of AI and the interpretation of those regulations by regulators, courts and others are in the early stages of development and evolving, which may make it difficult to identify adequate compliance requirements or suitable governance practices to meet those requirements.</span></div>    </div>", "risks": "", "sector": "Health Care", "sub": "Life Sciences Tools & Services", "company": "IQVIA"}, {"html": "<div class=\"report-card\">      <h3>J.M. Smucker Company (The) <span class=\"symbol\">(SJM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Packaged Foods & Meats</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/91419/000009141924000054/sjm-20240430.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/91419/000009141923000072/sjm-20230430.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Furthermore, the rapid evolution of emerging technologies such as artificial intelligence may intensify our cybersecurity risks.</span> We are regularly the target of attempted cyber and other security threats.</div>    </div>", "risks": "", "sector": "Consumer Staples", "sub": "Packaged Foods & Meats", "company": "J.M. Smucker Company (The)"}, {"html": "<div class=\"report-card\">      <h3>Jabil <span class=\"symbol\">(JBL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Electronic Manufacturing Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/898293/000162828024043960/jbl-20240831.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/898293/000119312523259599/d533726d10k.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">If we are unable to offer technologically advanced, cost effective, quick response manufacturing services that are differentiated from our competition <span style='color:green;'>(including utilization of machine learning and artificial intelligence)</span> and adapt those services as our customers\u2019 requirements change, demand for our services will decline.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Electronic Manufacturing Services", "company": "Jabil"}, {"html": "<div class=\"report-card\">      <h3>Jack Henry & Associates <span class=\"symbol\">(JKHY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Transaction & Payment Processing Services</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/779152/000077915224000079/jkhy-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/779152/000077915223000062/jkhy-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Advances in computer capabilities, new discoveries in the field of cryptography, <span style='color:green;'>the use of artificial intelligence,</span> or other events or developments may render our security measures inadequate.</div>    </div>", "risks": "", "sector": "Financials", "sub": "Transaction & Payment Processing Services", "company": "Jack Henry & Associates"}, {"html": "<div class=\"report-card\">      <h3>Jacobs Solutions <span class=\"symbol\">(J)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Construction & Engineering</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/52988/000005298824000065/jec-20240927.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/52988/000005298823000084/jec-20230929.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We will also need to continue to respond to and anticipate changes resulting from artificial intelligence and other similarly disruptive technologies. If we are not successful in preserving and protecting our intellectual property rights and licenses, including trade secrets, or in staying ahead of developing artificial intelligence technologies, our business, financial condition and results of operations could be materially adversely affected.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Industrials", "sub": "Construction & Engineering", "company": "Jacobs Solutions"}, {"html": "<div class=\"report-card\">      <h3>Jacobs Solutions <span class=\"symbol\">(J)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Construction & Engineering</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/52988/000005298824000065/jec-20240927.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/52988/000005298823000084/jec-20230929.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our competitors or other third parties may incorporate AI into their product development, product offerings, technology and infrastructure products more quickly or more successfully than us, which could impair our ability to compete effectively and</span> adversely affect our business, financial condition and results of operations.</div>    </div>", "risks": "Competition", "sector": "Industrials", "sub": "Construction & Engineering", "company": "Jacobs Solutions"}, {"html": "<div class=\"report-card\">      <h3>Jacobs Solutions <span class=\"symbol\">(J)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Construction & Engineering</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/52988/000005298824000065/jec-20240927.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/52988/000005298823000084/jec-20230929.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Artificial intelligence, machine learning, data science and similar technologies (collectively, \u201cAI\u201d), including third-party AI tools, may be enabled by, or integrated into some of our business and solutions. As with many developing technologies, AI presents risks and challenges that could affect its further development, adoption, and use, and therefore our business. AI algorithms may be flawed or biased. Datasets used to train or develop AI systems may be insufficient, of inferior quality, or contain biased information. Additionally, the laws and regulations concerning the use of AI continue to evolve. If the use or integration of AI systems, or the outputs generated by such systems, were determined to be non-compliant (e.g., in relation to intellectual property or data privacy rights), this may result in liability, including legal liability, or adversely affect our business, reputation, brand, financial condition and results of operations. It is possible that emerging regulations may limit or block the use of AI in our business and solutions or otherwise impose other restrictions that may affect or impair the usability or efficiency of our business or services for an extended period of time or indefinitely. Our competitors or other third parties may incorporate AI into their product development, product offerings, technology and infrastructure products more quickly or more successfully than us, which could impair our ability to compete effectively and adversely affect our business, financial condition and results of operations.</span></div>    </div>", "risks": "Third Party", "sector": "Industrials", "sub": "Construction & Engineering", "company": "Jacobs Solutions"}, {"html": "<div class=\"report-card\">      <h3>Jacobs Solutions <span class=\"symbol\">(J)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Construction & Engineering</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/52988/000005298824000065/jec-20240927.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/52988/000005298823000084/jec-20230929.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The U.S. federal government has continued to raise concerns about the potential for cyber-attacks generally as a result of heightened geopolitical tension and conflicts, including the Russia-Ukraine and Israel- Hamas conflicts and the escalating tensions in the Middle East, among others.</span> In addition, the rapid evolution and increased adoption of artificial intelligence technologies may intensify our cybersecurity <span style='color:red;text-decoration:line-through;'>risks.</span> <span style='color:green;'>risks (e.g., AI used to develop malicious code and sophisticated phishing attempts).</span></div>    </div>", "risks": "Malicious Actors", "sector": "Industrials", "sub": "Construction & Engineering", "company": "Jacobs Solutions"}, {"html": "<div class=\"report-card\">      <h3>Jacobs Solutions <span class=\"symbol\">(J)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Construction & Engineering</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/52988/000005298824000065/jec-20240927.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/52988/000005298823000084/jec-20230929.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI algorithms may be flawed or biased. Datasets used to train or develop AI systems may be insufficient, of inferior quality, or contain biased information.</span></div>    </div>", "risks": "Bias", "sector": "Industrials", "sub": "Construction & Engineering", "company": "Jacobs Solutions"}, {"html": "<div class=\"report-card\">      <h3>Johnson Controls <span class=\"symbol\">(JCI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Building Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/833444/000083344424000064/jci-20240930.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/833444/000083344423000048/jci-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If we fail to keep pace with rapidly evolving technological developments in AI, our competitive position and business results may suffer.</span></div>    </div>", "risks": "Competition", "sector": "Industrials", "sub": "Building Products", "company": "Johnson Controls"}, {"html": "<div class=\"report-card\">      <h3>Johnson Controls <span class=\"symbol\">(JCI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Building Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/833444/000083344424000064/jci-20240930.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/833444/000083344423000048/jci-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The use of AI in the development of our products and services could also cause loss of intellectual property, as well as subject us to risks related to intellectual property infringement or misappropriation, data privacy and cybersecurity.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Industrials", "sub": "Building Products", "company": "Johnson Controls"}, {"html": "<div class=\"report-card\">      <h3>Johnson Controls <span class=\"symbol\">(JCI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Building Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/833444/000083344424000064/jci-20240930.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/833444/000083344423000048/jci-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The use of artificial intelligence can lead to unintended consequences, including generating content that appears correct but is factually inaccurate, misleading or otherwise flawed, or that results in unintended biases and discriminatory outcomes, which could harm our reputation and business and expose us to risks related to inaccuracies or errors in the output of such technologies.</span></div>    </div>", "risks": "Bias", "sector": "Industrials", "sub": "Building Products", "company": "Johnson Controls"}, {"html": "<div class=\"report-card\">      <h3>JPMorgan Chase <span class=\"symbol\">(JPM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Diversified Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Work Displacement'>Work Displacement</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/19617/000001961725000270/jpm-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, advances in technology, such as automation and artificial intelligence, may lead to workforce displacement. This could require JPMorganChase to invest in additional employee training, manage impacts on morale and retention, and compete for employment candidates who possess more advanced technological skills, all of which could have a negative impact on JPMorganChase's business and operations.</span></div>    </div>", "risks": "Work Displacement", "sector": "Financials", "sub": "Diversified Banks", "company": "JPMorgan Chase"}, {"html": "<div class=\"report-card\">      <h3>JPMorgan Chase <span class=\"symbol\">(JPM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Diversified Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/19617/000001961725000270/jpm-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The increasing sophistication of artificial intelligence technologies poses a greater risk of identity fraud, as malicious actors may exploit artificial intelligence to create convincing false identities or manipulate verification processes. This challenge necessitates ongoing enhancements to client verification systems and security protocols to prevent unauthorized access and protect sensitive client information. Failure to manage these risks or to implement effective countermeasures could lead to unauthorized transactions, financial losses, reputational damage and increased regulatory scrutiny.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Diversified Banks", "company": "JPMorgan Chase"}, {"html": "<div class=\"report-card\">      <h3>JPMorgan Chase <span class=\"symbol\">(JPM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Diversified Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span><span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/19617/000001961725000270/jpm-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Damage to <span style='color:red;text-decoration:line-through;'>JPMorgan Chase\u2019s</span> <span style='color:green;'>JPMorganChase\u2019s</span> reputation can therefore cause significant harm to <span style='color:red;text-decoration:line-through;'>JPMorgan Chase\u2019s</span> <span style='color:green;'>JPMorganChase\u2019s</span> business and prospects, and can arise from numerous sources, including: \u2022employee misconduct, including discriminatory behavior or harassment with respect to clients, customers or employees, or actions that are contrary to <span style='color:red;text-decoration:line-through;'>JPMorgan Chase\u2019s</span> <span style='color:green;'>JPMorganChase\u2019s</span> goal of fostering <span style='color:red;text-decoration:line-through;'>a diverse and</span> <span style='color:green;'>an</span> inclusive workplace \u2022security breaches, including as a result of cyber attacks \u2022failure to safeguard client, customer or employee information \u2022failure to manage risks associated with its client relationships, or with transactions or business activities in which <span style='color:red;text-decoration:line-through;'>JPMorgan Chase</span> <span style='color:green;'>JPMorganChase</span> or its clients engage, including transactions or activities that may be unpopular among one or more constituencies <span style='color:red;text-decoration:line-through;'>\u2022failure</span> <span style='color:green;'>\u2022rapid and broad dissemination of misinformation and disinformation across the media landscape, including social networking sites \u2022incorrect, biased or misleading results or content generated by artificial intelligence, leading to harmful outcomes, including discrimination in lending practices against vulnerable populations, fraud, manipulation of customers, privacy breaches or intellectual property infringement</span></div>    </div>", "risks": "Malicious Actors; Bias", "sector": "Financials", "sub": "Diversified Banks", "company": "JPMorgan Chase"}, {"html": "<div class=\"report-card\">      <h3>JPMorgan Chase <span class=\"symbol\">(JPM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Diversified Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/19617/000001961725000270/jpm-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The models and estimations that <span style='color:red;text-decoration:line-through;'>JPMorgan Chase</span> <span style='color:green;'>JPMorganChase</span> uses, including those that use machine <span style='color:red;text-decoration:line-through;'>learning,</span> <span style='color:green;'>learning or</span> artificial <span style='color:red;text-decoration:line-through;'>intelligence or quantum computing,</span> <span style='color:green;'>intelligence,</span> may not be effective in all cases to identify, observe and mitigate risk due to a variety of factors, such as: \u2022reliance on historical trends that may not persist in the future, including assumptions underlying the models and estimations such as correlations among certain market indicators or asset prices \u2022inherent limitations associated with forecasting uncertain economic and financial outcomes \u2022historical trend information may be incomplete, or may not be indicative of severely negative market conditions such as extreme volatility, dislocation or lack of liquidity \u2022sudden illiquidity in markets or declines in prices of certain loans and securities may make it more difficult to value certain financial instruments \u2022technology that is introduced to run models or estimations may not perform as expected, or may not be well understood by the personnel using the technology \u2022models and estimations may contain erroneous data, valuations, formulas or <span style='color:red;text-decoration:line-through;'>algorithms, and</span> <span style='color:green;'>algorithms</span> \u2022review processes may fail to detect flaws in models and <span style='color:red;text-decoration:line-through;'>estimations.</span> <span style='color:green;'>estimations, and \u2022models may inadvertently incorporate biases present in data used in the models.</span></div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Diversified Banks", "company": "JPMorgan Chase"}, {"html": "<div class=\"report-card\">      <h3>Juniper Networks <span class=\"symbol\">(JNPR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Communications Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1043604/000104360425000025/jnpr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1043604/000104360424000014/jnpr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Certain of our offerings rely on AI to enhance their operation and effectiveness. The development, maintenance, and operation of AI is expensive and complex, and may involve unforeseen difficulties, including material performance problems, flawed algorithms, undetected defects, inaccuracies in AI-generated results, or errors.</span> Deficiencies or other failures of <span style='color:green;'>our offerings\u2019</span> AI <span style='color:red;text-decoration:line-through;'>systems</span> <span style='color:green;'>capabilities</span> could subject us to competitive harm, <span style='color:green;'>customer dissatisfaction,</span> regulatory action, penalties, legal liability, or brand or reputational harm.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Communications Equipment", "company": "Juniper Networks"}, {"html": "<div class=\"report-card\">      <h3>Juniper Networks <span class=\"symbol\">(JNPR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Communications Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1043604/000104360425000025/jnpr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1043604/000104360424000014/jnpr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Additionally, leveraging AI capabilities to <span style='color:red;text-decoration:line-through;'>potentially</span> improve internal functions and operations presents further risks, costs, and <span style='color:red;text-decoration:line-through;'>challenges.</span> <span style='color:green;'>challenges, including those related to implementing and maintaining AI tools licensed from third-party vendors.</span></div>    </div>", "risks": "Third Party", "sector": "Information Technology", "sub": "Communications Equipment", "company": "Juniper Networks"}, {"html": "<div class=\"report-card\">      <h3>Juniper Networks <span class=\"symbol\">(JNPR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Communications Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1043604/000104360425000025/jnpr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1043604/000104360424000014/jnpr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">While <span style='color:green;'>AI-related</span> laws and regulations <span style='color:red;text-decoration:line-through;'>applicable to AI</span> are emerging and evolving, including <span style='color:green;'>in</span> the <span style='color:red;text-decoration:line-through;'>EU\u2019s provisional</span> <span style='color:green;'>U.S., from a statewide and federal perspective as well as globally (such as the EU's Artificial Intelligence Act (\u201cEU</span> AI <span style='color:red;text-decoration:line-through;'>Act,</span> <span style='color:green;'>Act\u201d) that became effective in August 2024),</span> what these legal frameworks will look like <span style='color:green;'>and how they will be enforced</span> remains uncertain and they may be inconsistent from jurisdiction to jurisdiction.</div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Communications Equipment", "company": "Juniper Networks"}, {"html": "<div class=\"report-card\">      <h3>Juniper Networks <span class=\"symbol\">(JNPR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Communications Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1043604/000104360425000025/jnpr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1043604/000104360424000014/jnpr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For example, <span style='color:red;text-decoration:line-through;'>in December 2023,</span> the EU <span style='color:red;text-decoration:line-through;'>agreed upon a legal framework on AI: the AI Act. It is expected that the text of the</span> AI Act <span style='color:red;text-decoration:line-through;'>will be negotiated and adopted in 2024. If adopted, the AI Act will ban</span> <span style='color:green;'>bans</span> certain AI <span style='color:red;text-decoration:line-through;'>systems, regulate</span> <span style='color:green;'>tools, imposes obligations on developers and users of AI deemed to pose a high-risk, and regulates</span> general purpose <span style='color:red;text-decoration:line-through;'>AI, impose heavy obligations on high-risk AI systems, subject to high fines, and support innovation through regulatory \u201csandboxes.\u201d</span> <span style='color:green;'>AI.</span></div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Communications Equipment", "company": "Juniper Networks"}, {"html": "<div class=\"report-card\">      <h3>Juniper Networks <span class=\"symbol\">(JNPR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Communications Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1043604/000104360425000025/jnpr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1043604/000104360424000014/jnpr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>This may result in the inability to transfer the data outside of that foreign country and impact the product and services offered to customers.</span> \u2022Both U.S. federal and state, and non-U.S. governments <span style='color:green;'>have passed AI regulations and provided guidance or</span> are considering laws and regulations governing AI and machine learning tools that leverage commercial and consumer data, such as the <span style='color:red;text-decoration:line-through;'>EU's provisional</span> <span style='color:green;'>EU</span> AI Act.</div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Communications Equipment", "company": "Juniper Networks"}, {"html": "<div class=\"report-card\">      <h3>Juniper Networks <span class=\"symbol\">(JNPR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Communications Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1043604/000104360425000025/jnpr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1043604/000104360424000014/jnpr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">AI is an emerging technology for which the legal and regulatory landscape is not fully developed, including potential liability for breaching intellectual property or <span style='color:green;'>data</span> privacy <span style='color:red;text-decoration:line-through;'>regulations.</span> <span style='color:green;'>and security regulations, and effective legal protections for software source code created with the assistance of AI.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Information Technology", "sub": "Communications Equipment", "company": "Juniper Networks"}, {"html": "<div class=\"report-card\">      <h3>Juniper Networks <span class=\"symbol\">(JNPR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Communications Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1043604/000104360425000025/jnpr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1043604/000104360424000014/jnpr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>We aim to use</span> <span style='color:green;'>The datasets or</span> AI <span style='color:red;text-decoration:line-through;'>ethically</span> <span style='color:green;'>training algorithms used in these tools may be insufficient or contain biased information, or may experience drift from their intended purpose over time,</span> and <span style='color:red;text-decoration:line-through;'>attempt to identify and mitigate ethical or legal issues presented by its use. However,</span> we may be unsuccessful in identifying or resolving <span style='color:red;text-decoration:line-through;'>ethical</span> <span style='color:green;'>ethical, privacy,</span> or <span style='color:green;'>other</span> legal issues presented by <span style='color:red;text-decoration:line-through;'>the use of AI.</span> <span style='color:green;'>their use.</span></div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Communications Equipment", "company": "Juniper Networks"}, {"html": "<div class=\"report-card\">      <h3>Kellanova <span class=\"symbol\">(K)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Packaged Foods & Meats</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/55067/000162828025007118/k-20241228.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/55067/000162828024005583/k-20231230.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">(iii) compliance with antitrust and competition laws, data privacy laws, <span style='color:green;'>artificial intelligence,</span> and a variety of other local, national and multi-national regulations and laws in multiple <span style='color:red;text-decoration:line-through;'>regimes,</span> <span style='color:green;'>regimes;</span></div>    </div>", "risks": "", "sector": "Consumer Staples", "sub": "Packaged Foods & Meats", "company": "Kellanova"}, {"html": "<div class=\"report-card\">      <h3>Kenvue <span class=\"symbol\">(KVUE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Personal Care Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1944048/000194404825000033/kvue-20241229.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1944048/000194404824000057/kvue-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>An investment</span> <span style='color:green;'>There also may be real or perceived social harm, environmental costs, unfairness, or other outcomes that undermine public confidence</span> in <span style='color:green;'>and approval of the deployment and use of artificial intelligence. Furthermore, third parties may deploy artificial intelligence technologies in a manner that reduces customer demand for</span> our <span style='color:red;text-decoration:line-through;'>securities involves risks</span> <span style='color:green;'>products</span> and <span style='color:red;text-decoration:line-through;'>uncertainties.</span> <span style='color:green;'>services. Any of the foregoing may result in decreased demand for our products and services or harm to our business, financial condition, results of operations, or reputation.</span></div>    </div>", "risks": "Competition", "sector": "Consumer Staples", "sub": "Personal Care Products", "company": "Kenvue"}, {"html": "<div class=\"report-card\">      <h3>Kenvue <span class=\"symbol\">(KVUE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Personal Care Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1944048/000194404825000033/kvue-20241229.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1944048/000194404824000057/kvue-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, third parties that license artificial intelligence technologies to us may impose unfavorable licensing terms or terminate the licenses altogether which would require us to seek licenses from alternative sources to avoid disruptions in feature delivery.</span></div>    </div>", "risks": "Third Party", "sector": "Consumer Staples", "sub": "Personal Care Products", "company": "Kenvue"}, {"html": "<div class=\"report-card\">      <h3>Kenvue <span class=\"symbol\">(KVUE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Personal Care Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1944048/000194404825000033/kvue-20241229.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1944048/000194404824000057/kvue-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The legal, regulatory and ethics landscapes around the use of artificial intelligence technologies, including generative artificial intelligence, is rapidly evolving and uncertain, including in relation to the areas of intellectual property, cybersecurity, and privacy and data protection. While we continue to implement our artificial intelligence governance based on the National Institute of Standards and Technology Artificial Intelligence Risk Management Framework, the use of artificial intelligence tools may compromise our confidential or sensitive information, result in unauthorized processing of personal data, put our intellectual property at risk or cause us to infringe on others\u2019 intellectual property rights, which could in turn damage our reputation.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Consumer Staples", "sub": "Personal Care Products", "company": "Kenvue"}, {"html": "<div class=\"report-card\">      <h3>KeyCorp <span class=\"symbol\">(KEY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Regional Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/91576/000009157625000038/key-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/91576/000009157624000040/key-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Additionally, the increasing use of third-party financial data aggregators and emerging technologies, including the use of automation, artificial intelligence and robotics, introduces new information security risks and exposure for us and for our third party service <span style='color:red;text-decoration:line-through;'>providers;</span> <span style='color:green;'>providers, and, additionally,</span> such technologies <span style='color:red;text-decoration:line-through;'>could also result</span> <span style='color:green;'>may be used to identify vulnerabilities; such technologies have resulted</span> in <span style='color:red;text-decoration:line-through;'>increasingly</span> <span style='color:green;'>a substantial increase in the volume and sophistication of cyberattacks against financial and other institutions, including the use of generative artificial intelligence to conduct more</span> sophisticated <span style='color:red;text-decoration:line-through;'>cyberattacks.</span> <span style='color:green;'>social engineering attacks.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Regional Banks", "company": "KeyCorp"}, {"html": "<div class=\"report-card\">      <h3>KeyCorp <span class=\"symbol\">(KEY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Regional Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/91576/000009157625000038/key-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/91576/000009157624000040/key-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Some models we use employ methodologies based on artificial intelligence (AI) or machine learning (ML). These models bring some unique complexities from those of traditional models, such as the need for large datasets for training, the potential for algorithmic bias, and the difficulty in interpreting model decisions.</span></div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Regional Banks", "company": "KeyCorp"}, {"html": "<div class=\"report-card\">      <h3>Kimberly-Clark <span class=\"symbol\">(KMB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Household Products</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/55785/000005578525000013/kmb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/55785/000005578524000018/kmb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our ability to develop new products is affected by whether we can successfully anticipate consumer needs and preferences, develop and fund technological <span style='color:red;text-decoration:line-through;'>innovations,</span> <span style='color:green;'>innovations (including advancements such as artificial intelligence, machine learnings and augmented reality, which may become critical in understanding consumer preferences in the future),</span> and receive and maintain necessary patent and trademark protection.</div>    </div>", "risks": "", "sector": "Consumer Staples", "sub": "Household Products", "company": "Kimberly-Clark"}, {"html": "<div class=\"report-card\">      <h3>Kimberly-Clark <span class=\"symbol\">(KMB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Household Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span><span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/55785/000005578525000013/kmb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/55785/000005578524000018/kmb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Also, if we fail to perfect or successfully assert our intellectual property <span style='color:red;text-decoration:line-through;'>rights,</span> <span style='color:green;'>rights (including in response to developments in artificial intelligence technologies),</span> we may be less competitive, which could adversely affect our business, financial results and financial condition.</div>    </div>", "risks": "Competition; Data and IP Protection", "sector": "Consumer Staples", "sub": "Household Products", "company": "Kimberly-Clark"}, {"html": "<div class=\"report-card\">      <h3>Kimco Realty <span class=\"symbol\">(KIM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Retail REITs</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/879101/000095017025024723/kim-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/879101/000143774924005407/kim20231231_10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, the incorporation of artificial intelligence by our clients, vendors, contractors and other third parties into their products or services, with or without our knowledge, could give rise to issues pertaining to data privacy, information security and intellectual property considerations.</span></div>    </div>", "risks": "", "sector": "Real Estate", "sub": "Retail REITs", "company": "Kimco Realty"}, {"html": "<div class=\"report-card\">      <h3>Kimco Realty <span class=\"symbol\">(KIM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Retail REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/879101/000095017025024723/kim-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/879101/000143774924005407/kim20231231_10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If we cannot use artificial intelligence, or that use is restricted, our business may be less efficient, or we may be at a competitive disadvantage.</span></div>    </div>", "risks": "Competition", "sector": "Real Estate", "sub": "Retail REITs", "company": "Kimco Realty"}, {"html": "<div class=\"report-card\">      <h3>Kimco Realty <span class=\"symbol\">(KIM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Retail REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/879101/000095017025024723/kim-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/879101/000143774924005407/kim20231231_10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>The risk of a cybersecurity attack, breach or operational disruption, particularly through a cyber incident, including by computer hackers, foreign governments or cyber terrorists, has generally increased. Attack methodologies change frequently or</span> <span style='color:green;'>Cyberattacks</span> are <span style='color:red;text-decoration:line-through;'>not recognized until launched,</span> <span style='color:green;'>becoming more challenging to identify, investigate</span> and <span style='color:red;text-decoration:line-through;'>we may be unable to investigate or remediate incidents</span> <span style='color:green;'>remediate,</span> because attackers increasingly use techniques and tools, including artificial intelligence, that circumvent controls, avoid detection, and remove <span style='color:green;'>or</span> obscure forensic evidence.</div>    </div>", "risks": "Malicious Actors", "sector": "Real Estate", "sub": "Retail REITs", "company": "Kimco Realty"}, {"html": "<div class=\"report-card\">      <h3>KKR & Co. <span class=\"symbol\">(KKR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1404912/000140491225000015/kkr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1404912/000140491224000005/kkr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The misuse or misappropriation of our <span style='color:green;'>data, unavoidable deficiencies in the practices associated with</span> data <span style='color:green;'>collection, training AI technology on large data sets, and big data analytics and difficulties validating data,</span> could have an adverse impact on our reputation and could subject us to legal and regulatory investigations or actions or create competitive risk.</div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "KKR & Co."}, {"html": "<div class=\"report-card\">      <h3>KKR & Co. <span class=\"symbol\">(KKR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Export Controls'>Export Controls</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1404912/000140491225000015/kkr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1404912/000140491224000005/kkr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In January 2025, the U.S. Department of Commerce\u2019s Bureau of Industry and Security issued a rule requiring licenses to export certain closed-weight AI models and advanced computing integrated circuits beginning on May 15, 2025.</span></div>    </div>", "risks": "Export Controls", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "KKR & Co."}, {"html": "<div class=\"report-card\">      <h3>KKR & Co. <span class=\"symbol\">(KKR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1404912/000140491225000015/kkr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1404912/000140491224000005/kkr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We may use artificial intelligence and other quantitative analysis tools and models, developed by us or third-party service providers, to inform certain of our decisions. Such technology, analysis and models are highly complex and subject to limitations and risks that have the potential to adversely impact us to the extent that we rely on artificial intelligence.</span></div>    </div>", "risks": "Third Party", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "KKR & Co."}, {"html": "<div class=\"report-card\">      <h3>KKR & Co. <span class=\"symbol\">(KKR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1404912/000140491225000015/kkr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1404912/000140491224000005/kkr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In January 2025, the U.S. Department of Commerce\u2019s Bureau of Industry and Security issued a rule requiring licenses to export certain closed-weight AI models and advanced computing integrated circuits beginning on May 15, 2025.</span> In addition to the U.S. regulatory framework, <span style='color:green;'>in August 2024,</span> the EU <span style='color:red;text-decoration:line-through;'>is in the process of finalizing</span> <span style='color:green;'>finalized</span> a new regulation on artificial intelligence (the \"EU AI Act\"), parts of which are <span style='color:green;'>currently in effect and others of which are</span> slated to take effect from late <span style='color:red;text-decoration:line-through;'>2024.</span> <span style='color:green;'>2026.</span></div>    </div>", "risks": "EU AI Act", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "KKR & Co."}, {"html": "<div class=\"report-card\">      <h3>KKR & Co. <span class=\"symbol\">(KKR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1404912/000140491225000015/kkr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1404912/000140491224000005/kkr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The EU AI Act is a legal framework, which <span style='color:red;text-decoration:line-through;'>will govern</span> <span style='color:green;'>governs</span> the development and deployment of artificial intelligence placed on the EU market, used in the EU, or where the output is used or intended to be used within the EU.</div>    </div>", "risks": "EU AI Act", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "KKR & Co."}, {"html": "<div class=\"report-card\">      <h3>KKR & Co. <span class=\"symbol\">(KKR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1404912/000140491225000015/kkr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1404912/000140491224000005/kkr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Additionally, our business could be adversely affected if we or our portfolio companies fail to comply with existing and potential new applicable regulations relating to artificial intelligence, including the EU AI Act</div>    </div>", "risks": "EU AI Act", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "KKR & Co."}, {"html": "<div class=\"report-card\">      <h3>KKR & Co. <span class=\"symbol\">(KKR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1404912/000140491225000015/kkr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1404912/000140491224000005/kkr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If we or third-party developers whose artificial intelligence we utilize do not have sufficient rights to use the data or other material relied upon by such developers, we also may incur liability through the alleged violation of applicable laws and regulations, third-party intellectual property, data privacy, or other rights, or contractual obligations.</span> Further, we may not be able to control how third-party artificial intelligence that we choose to use are developed or maintained, or how data we input is used or disclosed, even where we have sought contractual protections with respect to these matters.</div>    </div>", "risks": "Third Party", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "KKR & Co."}, {"html": "<div class=\"report-card\">      <h3>KKR & Co. <span class=\"symbol\">(KKR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1404912/000140491225000015/kkr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1404912/000140491224000005/kkr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">If the data we, or third parties whose services we rely on, use in connection with the <span style='color:red;text-decoration:line-through;'>possible</span> development or deployment of artificial intelligence is incomplete, inadequate or biased in some way, the performance of our products, services, and businesses could suffer.</div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "KKR & Co."}, {"html": "<div class=\"report-card\">      <h3>KLA Corporation <span class=\"symbol\">(KLAC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductor Materials & Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/319201/000031920124000021/klac-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/319201/000031920123000031/klac-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our competitors may be more successful in their artificial intelligence strategy and develop superior products and services with the aid of AI.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Semiconductor Materials & Equipment", "company": "KLA Corporation"}, {"html": "<div class=\"report-card\">      <h3>KLA Corporation <span class=\"symbol\">(KLAC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductor Materials & Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/319201/000031920124000021/klac-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/319201/000031920123000031/klac-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">\u2022We may not be able to keep pace with trends and technological changes in the industries in which we operate; \u2022We have a highly concentrated customer base; <span style='color:red;text-decoration:line-through;'>and</span> \u2022Prevailing local and global economic conditions may negatively affect the purchasing decisions of our <span style='color:red;text-decoration:line-through;'>customers.</span> <span style='color:green;'>customers; and \u2022We are exposed to risks related to the use of AI by us and our competitors.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Semiconductor Materials & Equipment", "company": "KLA Corporation"}, {"html": "<div class=\"report-card\">      <h3>KLA Corporation <span class=\"symbol\">(KLAC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductor Materials & Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/319201/000031920124000021/klac-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/319201/000031920123000031/klac-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The use of AI in the development of our products and services, and our customers\u2019 use of AI in relation to our products and services could also cause loss of IP, as well as subject us to risks, including third-party claims, related to IP infringement or misappropriation, data privacy and cybersecurity.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Information Technology", "sub": "Semiconductor Materials & Equipment", "company": "KLA Corporation"}, {"html": "<div class=\"report-card\">      <h3>KLA Corporation <span class=\"symbol\">(KLAC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductor Materials & Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/319201/000031920124000021/klac-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/319201/000031920123000031/klac-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, AI algorithms or training methodologies may be flawed, and datasets may contain irrelevant, insufficient or biased information, which can cause errors in outputs.</span></div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Semiconductor Materials & Equipment", "company": "KLA Corporation"}, {"html": "<div class=\"report-card\">      <h3>KLA Corporation <span class=\"symbol\">(KLAC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductor Materials & Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/319201/000031920124000021/klac-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/319201/000031920123000031/klac-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The implementation of AI can be costly and there is no guarantee that our use of artificial intelligence will enhance our technologies, benefit our business operations or produce products and services that are preferred by our customers.</span></div>    </div>", "risks": "Disillusionment", "sector": "Information Technology", "sub": "Semiconductor Materials & Equipment", "company": "KLA Corporation"}, {"html": "<div class=\"report-card\">      <h3>L3Harris <span class=\"symbol\">(LHX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Aerospace & Defense</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/202058/000020205825000023/hrs-20250103.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/202058/000020205824000029/hrs-20231229.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our competitors may incorporate AI technologies into their products or services more quickly or more successfully than us, which could impair our ability to compete.</span></div>    </div>", "risks": "Competition", "sector": "Industrials", "sub": "Aerospace & Defense", "company": "L3Harris"}, {"html": "<div class=\"report-card\">      <h3>L3Harris <span class=\"symbol\">(LHX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Aerospace & Defense</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/202058/000020205825000023/hrs-20250103.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/202058/000020205824000029/hrs-20231229.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The volume, intensity and sophistication of threats from around the world remains elevated. These risks may increase as AI capabilities improve.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Industrials", "sub": "Aerospace & Defense", "company": "L3Harris"}, {"html": "<div class=\"report-card\">      <h3>Labcorp <span class=\"symbol\">(LH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/920148/000092014825000032/lh-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/920148/000092014824000014/lh-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The rapid development of AI tools could render obsolete certain technologies or tools we currently use, or otherwise provide competitors with a technological edge.</span></div>    </div>", "risks": "Competition", "sector": "Health Care", "sub": "Health Care Services", "company": "Labcorp"}, {"html": "<div class=\"report-card\">      <h3>Labcorp <span class=\"symbol\">(LH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/920148/000092014825000032/lh-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/920148/000092014824000014/lh-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">In addition, as cyber threats continue to <span style='color:red;text-decoration:line-through;'>evolve,</span> <span style='color:green;'>evolve including the use of AI by threat actors to compromise systems,</span> the Company may be required to expend additional resources to continue to enhance the Company\u2019s <span style='color:red;text-decoration:line-through;'>information security</span> <span style='color:green;'>cybersecurity</span> measures or to investigate and remediate any <span style='color:red;text-decoration:line-through;'>information security</span> <span style='color:green;'>cybersecurity</span> vulnerabilities.</div>    </div>", "risks": "Malicious Actors", "sector": "Health Care", "sub": "Health Care Services", "company": "Labcorp"}, {"html": "<div class=\"report-card\">      <h3>Labcorp <span class=\"symbol\">(LH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/920148/000092014825000032/lh-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/920148/000092014824000014/lh-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, the increased use of AI by threat actors is enhancing the scale sophistication and effectiveness of their cyberattacks.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Health Care", "sub": "Health Care Services", "company": "Labcorp"}, {"html": "<div class=\"report-card\">      <h3>Labcorp <span class=\"symbol\">(LH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/920148/000092014825000032/lh-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/920148/000092014824000014/lh-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Due to the potential flaws in the use of AI, the Company could make incorrect decisions, including decisions that could bias certain individuals or classes of individuals and adversely impact their rights.</div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Health Care Services", "company": "Labcorp"}, {"html": "<div class=\"report-card\">      <h3>Lam Research <span class=\"symbol\">(LRCX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductor Materials & Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/707549/000070754924000106/lrcx-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/707549/000070754923000102/lrcx-20230625.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, to the extent artificial intelligence capabilities improve and are increasingly adopted, they may be used to identify vulnerabilities and to implement increasingly sophisticated cybersecurity attacks.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Semiconductor Materials & Equipment", "company": "Lam Research"}, {"html": "<div class=\"report-card\">      <h3>Las Vegas Sands <span class=\"symbol\">(LVS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Casinos & Gaming</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1300514/000130051425000040/lvs-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1300514/000130051424000048/lvs-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, increased attention on and use of artificial intelligence increases the risk of cyber-attacks and data breaches, which can occur more quickly and evolve more rapidly when artificial intelligence is used by threat actors. Further, use of artificial intelligence by our employees, whether authorized or unauthorized, increases the risk that our intellectual property and other proprietary information will be unintentionally disclosed.</span></div>    </div>", "risks": "Data and IP Protection; Malicious Actors", "sector": "Consumer Discretionary", "sub": "Casinos & Gaming", "company": "Las Vegas Sands"}, {"html": "<div class=\"report-card\">      <h3>Leidos <span class=\"symbol\">(LDOS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Diversified Support Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1336920/000133692025000006/ldos-20250103.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1336920/000133692024000008/ldos-20231229.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, the EU\u2019s Artificial Intelligence Act (the \u201cAI Act\u201d), which entered into force on August 1, 2024, establishes, among other things, a risk-based governance framework for regulating AI systems operating in the EU. We may not be able to anticipate how to respond to these rapidly evolving frameworks, and we may need to expend resources to adjust our operations or offerings in certain jurisdictions if the legal frameworks are inconsistent across jurisdictions. Furthermore, because AI technology itself is highly complex and rapidly developing, it is not possible to predict all of the legal, operational, or technological risks that may arise relating to the use of AI.</span></div>    </div>", "risks": "EU AI Act", "sector": "Industrials", "sub": "Diversified Support Services", "company": "Leidos"}, {"html": "<div class=\"report-card\">      <h3>Leidos <span class=\"symbol\">(LDOS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Diversified Support Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1336920/000133692025000006/ldos-20250103.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1336920/000133692024000008/ldos-20231229.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Techniques used by others to gain unauthorized access to personal, confidential, proprietary, or sensitive information or disrupt systems and networks for economic or strategic gain are constantly evolving, increasingly sophisticated, increasingly difficult to detect and successfully defend against and may see their frequency increased, and effectiveness enhanced, by the use of AI.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Industrials", "sub": "Diversified Support Services", "company": "Leidos"}, {"html": "<div class=\"report-card\">      <h3>Leidos <span class=\"symbol\">(LDOS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Diversified Support Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1336920/000133692025000006/ldos-20250103.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1336920/000133692024000008/ldos-20231229.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For example, AI algorithms may be flawed, insufficient, of poor quality, rely upon incorrect or inaccurate data, reflect unwanted forms of bias, or contain other errors or inadequacies, any of which may not be easily detectable; AI has been known to produce false or \u201challucinatory\u201d inferences or outputs; our use of AI can present ethical issues and may subject us to new or heightened legal, regulatory, ethical, or other challenges; and inappropriate or controversial data practices by developers and end-users, or other factors adversely affecting public opinion of AI, could impair the acceptance of AI solutions, including those incorporated in our products and services.</div>    </div>", "risks": "Bias", "sector": "Industrials", "sub": "Diversified Support Services", "company": "Leidos"}, {"html": "<div class=\"report-card\">      <h3>Leidos <span class=\"symbol\">(LDOS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Diversified Support Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1336920/000133692025000006/ldos-20250103.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1336920/000133692024000008/ldos-20231229.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>There are significant risks involved in using AI and no assurance can be provided that our use of AI will enhance our products or services, produce the intended results, or keep pace with our competitors.</span></div>    </div>", "risks": "Disillusionment", "sector": "Industrials", "sub": "Diversified Support Services", "company": "Leidos"}, {"html": "<div class=\"report-card\">      <h3>Lennar <span class=\"symbol\">(LEN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Homebuilding</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/920760/000162828025002404/len-20241130.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/920760/000162828024002371/len-20231130.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>The risk of cyber-intrusion is one of the areas of risk as to which there are regular periodic presentations to our Board. However, cyber</span> <span style='color:green;'>Cyber</span> intrusion efforts are becoming increasingly <span style='color:green;'>frequent and</span> sophisticated, <span style='color:green;'>including as a result of the use of artificial intelligence,</span> and it is possible that <span style='color:red;text-decoration:line-through;'>the</span> <span style='color:green;'>any</span> controls we <span style='color:green;'>or third parties</span> have installed could at some time be breached in a material respect.</div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Discretionary", "sub": "Homebuilding", "company": "Lennar"}, {"html": "<div class=\"report-card\">      <h3>Lennox International <span class=\"symbol\">(LII)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Building Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1069202/000162828025004859/lii-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1069202/000162828024004446/lii-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If we fail to keep pace with rapidly evolving technological developments in AI, our competitive position and business results may suffer. We face risk of competitive disadvantage if our competitors more effectively use AI to better serve customers, drive internal efficiencies, and/or create new or enhanced products or services.</span></div>    </div>", "risks": "Competition", "sector": "Industrials", "sub": "Building Products", "company": "Lennox International"}, {"html": "<div class=\"report-card\">      <h3>Lennox International <span class=\"symbol\">(LII)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Building Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1069202/000162828025004859/lii-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1069202/000162828024004446/lii-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The use of AI in the development of our products and services could also cause loss of intellectual property, as well as subject us to risks related to intellectual property infringement or misappropriation, data privacy and cybersecurity.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Industrials", "sub": "Building Products", "company": "Lennox International"}, {"html": "<div class=\"report-card\">      <h3>Lennox International <span class=\"symbol\">(LII)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Building Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1069202/000162828025004859/lii-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1069202/000162828024004446/lii-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The use of artificial intelligence can lead to unintended consequences, including generating content that appears correct but is factually inaccurate, misleading or otherwise flawed, or that results in unintended biases and discriminatory outcomes, which could harm our reputation and business and expose us to risks related to inaccuracies or errors in the output of such technologies.</span></div>    </div>", "risks": "Bias", "sector": "Industrials", "sub": "Building Products", "company": "Lennox International"}, {"html": "<div class=\"report-card\">      <h3>Lilly (Eli) <span class=\"symbol\">(LLY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Pharmaceuticals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/59478/000005947825000067/lly-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/59478/000005947824000065/lly-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Several governmental authorities have already proposed or enacted laws and other guidance governing AI, such as the <span style='color:red;text-decoration:line-through;'>proposed</span> EU Artificial Intelligence Act.</div>    </div>", "risks": "EU AI Act", "sector": "Health Care", "sub": "Pharmaceuticals", "company": "Lilly (Eli)"}, {"html": "<div class=\"report-card\">      <h3>Lilly (Eli) <span class=\"symbol\">(LLY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Pharmaceuticals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span><span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/59478/000005947825000067/lly-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/59478/000005947824000065/lly-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Further, use of AI technologies could lead to unintended consequences, such as <span style='color:green;'>data leakage, healthcare fraud and abuse,</span> cybersecurity <span style='color:red;text-decoration:line-through;'>risks</span> <span style='color:green;'>incidents, intellectual property infringement,</span> or unintended <span style='color:red;text-decoration:line-through;'>biases, impact our ability to protect our confidential data and intellectual property, and expose us to intellectual property infringement claims by third parties.</span> <span style='color:green;'>biases.</span></div>    </div>", "risks": "Bias; Data and IP Protection; Malicious Actors", "sector": "Health Care", "sub": "Pharmaceuticals", "company": "Lilly (Eli)"}, {"html": "<div class=\"report-card\">      <h3>Lilly (Eli) <span class=\"symbol\">(LLY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Pharmaceuticals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/59478/000005947825000067/lly-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/59478/000005947824000065/lly-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The algorithms and models utilized in AI systems may have limitations, including biases, errors, or inability to handle certain data types or scenarios or to render explainable outputs.</div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Pharmaceuticals", "company": "Lilly (Eli)"}, {"html": "<div class=\"report-card\">      <h3>Loews Corporation <span class=\"symbol\">(L)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Multi-line Insurance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/60086/000006008625000036/l-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/60086/000006008624000029/l-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For example, more insurers are utilizing <span style='color:green;'>or may begin utilizing</span> \u201cbig data\u201d analytics <span style='color:green;'>or artificial intelligence</span> to make underwriting <span style='color:red;text-decoration:line-through;'>and</span> <span style='color:green;'>or</span> other decisions that impact product design and pricing.</div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Multi-line Insurance", "company": "Loews Corporation"}, {"html": "<div class=\"report-card\">      <h3>Loews Corporation <span class=\"symbol\">(L)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Multi-line Insurance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/60086/000006008625000036/l-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/60086/000006008624000029/l-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The sophistication of cybersecurity threats continues to escalate, and the measures CNA takes to mitigate the risk of cyber incidents and to safeguard its systems and data may be insufficient. Further, the increasing use of artificial intelligence, both within CNA\u2019s systems to achieve operational efficiencies and within threat actors\u2019 attack strategies, may further expose its systems to the risk of cyber-attacks.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Multi-line Insurance", "company": "Loews Corporation"}, {"html": "<div class=\"report-card\">      <h3>Lowe's <span class=\"symbol\">(LOW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Home Improvement Retail</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/60667/000006066724000033/low-20240202.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/60667/000006066723000034/low-20230203.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We maintain cybersecurity insurance coverage although such insurance may be insufficient to compensate us for losses that may occur or may not cover certain cyber incidents. Additionally, the rapid evolution of artificial intelligence and machine learning technologies and the implementation of pilot programs integrating generative artificial intelligence into our internal and customer- facing systems may intensify our cybersecurity risks and create new risks to our business, operations, and financial condition.</span></div>    </div>", "risks": "", "sector": "Consumer Discretionary", "sub": "Home Improvement Retail", "company": "Lowe's"}, {"html": "<div class=\"report-card\">      <h3>Lowe's <span class=\"symbol\">(LOW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Home Improvement Retail</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/60667/000006066724000033/low-20240202.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/60667/000006066723000034/low-20230203.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We will be at a competitive disadvantage if, over time, our competitors are more effective than us in their utilization and integration of rapidly evolving technologies, including artificial intelligence and machine learning technologies.</span></div>    </div>", "risks": "Competition", "sector": "Consumer Discretionary", "sub": "Home Improvement Retail", "company": "Lowe's"}, {"html": "<div class=\"report-card\">      <h3>LyondellBasell <span class=\"symbol\">(LYB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Specialty Chemicals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1489393/000148939325000008/lyb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1489393/000148939324000012/lyb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI may be leveraged by threat actors to enhance the volume and sophistication of their attacks, potentially resulting in a cybersecurity event affecting us or our suppliers. Furthermore, we face potential missed innovation opportunities and competitive disadvantages.</span></div>    </div>", "risks": "Competition", "sector": "Materials", "sub": "Specialty Chemicals", "company": "LyondellBasell"}, {"html": "<div class=\"report-card\">      <h3>LyondellBasell <span class=\"symbol\">(LYB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Specialty Chemicals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1489393/000148939325000008/lyb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1489393/000148939324000012/lyb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Furthermore, we face potential missed innovation opportunities and competitive disadvantages. The evolving nature of AI regulations, such as the European Union Artificial Intelligence Act and other global legislative efforts, adds to the uncertainty and complexity of compliance. Changes in these regulations may require significant adjustments to our AI strategies and operations, potentially leading to increased costs and operational disruptions.</span></div>    </div>", "risks": "EU AI Act", "sector": "Materials", "sub": "Specialty Chemicals", "company": "LyondellBasell"}, {"html": "<div class=\"report-card\">      <h3>LyondellBasell <span class=\"symbol\">(LYB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Specialty Chemicals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1489393/000148939325000008/lyb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1489393/000148939324000012/lyb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI may be leveraged by threat actors to enhance the volume and sophistication of their attacks, potentially resulting in a cybersecurity event affecting us or our suppliers.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Materials", "sub": "Specialty Chemicals", "company": "LyondellBasell"}, {"html": "<div class=\"report-card\">      <h3>LyondellBasell <span class=\"symbol\">(LYB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Specialty Chemicals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1489393/000148939325000008/lyb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1489393/000148939324000012/lyb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, the complex and dynamic regulatory environment surrounding artificial intelligence (\u201cAI\u201d), including generative AI, subjects us to a variety of risks. These risks include, but are not limited to, data privacy and security vulnerabilities, intellectual property patent, copyright, and misappropriation claims, unauthorized third-party usage of data associated with training models, and malicious use and advanced deceitful communication methods.</span></div>    </div>", "risks": "Third Party", "sector": "Materials", "sub": "Specialty Chemicals", "company": "LyondellBasell"}, {"html": "<div class=\"report-card\">      <h3>M&T Bank <span class=\"symbol\">(MTB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Regional Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/36270/000162828025006267/mtb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/36270/000095017024017990/mtb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, the Company may rely on AI models developed by third parties, and, to that extent, would be dependent in part on the manner in which those third parties develop and train their models, including risks arising from the inclusion of any unauthorized material in the training data for their models, and the effectiveness of the steps these third parties have taken to limit the risks associated with the output of their models, matters over which the Company may have limited visibility. Any of these risks could expose M&amp;T to liability or adverse legal or regulatory consequences and harm its reputation and the public perception of its business or the effectiveness of its security measures.</span></div>    </div>", "risks": "Third Party", "sector": "Financials", "sub": "Regional Banks", "company": "M&T Bank"}, {"html": "<div class=\"report-card\">      <h3>M&T Bank <span class=\"symbol\">(MTB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Regional Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/36270/000162828025006267/mtb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/36270/000095017024017990/mtb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Like other financial services firms, the systems, networks and devices of the Company, its customers, employees, service providers or other third parties with whom the Company interacts continue to be the subject of attempted unauthorized access, denial-of-service attacks, computer viruses, hacking, malware, ransomware, phishing or other forms of social engineering, and cyber attacks designed to obtain confidential information, destroy data, disrupt or degrade service, eliminate access or cause other damage. These threats may arise from human error, fraud on the part of employees, insiders or third parties or may result from accidental technology failure or vulnerabilities of suppliers through supply-chain attacks. Further, cybersecurity and information security risks for financial institutions have generally increased because of, among other things, the growth of new technologies (including AI), the use of the Internet and telecommunications technologies (including computers, smartphones, and other mobile devices outside the Company\u2019s systems) by customers to conduct financial transactions, and the increased sophistication and activities of organized crime, fraudsters, hackers, terrorists, activists, instrumentalities of foreign governments and other external parties.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Regional Banks", "company": "M&T Bank"}, {"html": "<div class=\"report-card\">      <h3>M&T Bank <span class=\"symbol\">(MTB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Regional Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/36270/000162828025006267/mtb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/36270/000095017024017990/mtb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition to the Company\u2019s use of AI technologies, the Company is exposed to risks arising from the use of AI technologies by bad actors to commit fraud and misappropriate funds and to facilitate cyber attacks. Use of AI technologies by bad actors can contribute to the evolution of new and more effective techniques, which can hinder the Company\u2019s efforts to prevent, detect and remediate such harmful activities. AI, if used to perpetrate fraud or launch cyber attacks, could result in losses, liquidity outflows or other adverse effects at a particular exchange or financial institution, including the Company.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Regional Banks", "company": "M&T Bank"}, {"html": "<div class=\"report-card\">      <h3>M&T Bank <span class=\"symbol\">(MTB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Regional Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span><span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/36270/000162828025006267/mtb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/36270/000095017024017990/mtb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI models, including generative AI models may produce output or influence the Company or its third-party service providers to take actions that are incorrect, that result in the release of private, confidential or proprietary information, that reflect biases included in the data on which they are trained, that infringe on the intellectual property rights of others, or that are otherwise harmful.</span></div>    </div>", "risks": "Bias; Data and IP Protection", "sector": "Financials", "sub": "Regional Banks", "company": "M&T Bank"}, {"html": "<div class=\"report-card\">      <h3>Marathon Petroleum <span class=\"symbol\">(MPC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Energy</span>          <span class=\"tag\">Oil & Gas Refining & Marketing</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1510295/000151029525000012/mpc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1510295/000151029524000015/mpc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The utilization of AI could also result in loss of intellectual property and subject us to heightened risks related to intellectual property infringement or misappropriation.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Energy", "sub": "Oil & Gas Refining & Marketing", "company": "Marathon Petroleum"}, {"html": "<div class=\"report-card\">      <h3>Marathon Petroleum <span class=\"symbol\">(MPC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Energy</span>          <span class=\"tag\">Oil & Gas Refining & Marketing</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1510295/000151029525000012/mpc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1510295/000151029524000015/mpc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The use of AI can lead to unintended consequences, including generating content that is inaccurate, misleading or otherwise flawed, or that results in unintended biases and discriminatory outcomes, which could harm our reputation and expose us to risks related to inaccuracies or errors in the output of such technologies.</span></div>    </div>", "risks": "Bias", "sector": "Energy", "sub": "Oil & Gas Refining & Marketing", "company": "Marathon Petroleum"}, {"html": "<div class=\"report-card\">      <h3>MarketAxess <span class=\"symbol\">(MKTX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1278021/000095017025025606/mktx-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1278021/000095017024018935/mktx-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Operating in a rapidly evolving industry involves a high degree of risk and our future success depends, in part, on our ability to: attract and retain market participants on our platforms on a cost-effective basis; expand and enhance reliable and cost-effective product and service offerings for our clients; develop and introduce new features to, and new versions of, our electronic trading platforms; respond effectively to competitive <span style='color:red;text-decoration:line-through;'>pressures;</span> <span style='color:green;'>pressures and technological advances, including the use of new or disruptive technology such as AI;</span> respond effectively to the loss of any of our significant broker-dealer or institutional investor clients, including due to merger, consolidation, bankruptcy, liquidation or <span style='color:red;text-decoration:line-through;'>other</span> <span style='color:green;'>another</span> cause (including, among other things, the collection of any amounts due from such clients); operate, support, expand and develop our operations, technology, website, software, communications and other systems; defend our trading platforms and other systems from cybersecurity threats; and respond to regulatory changes or demands.</div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "MarketAxess"}, {"html": "<div class=\"report-card\">      <h3>MarketAxess <span class=\"symbol\">(MKTX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1278021/000095017025025606/mktx-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1278021/000095017024018935/mktx-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If our AI development, deployment, content labeling or governance is ineffective or inadequate, it may result in competitive disadvantage, reputational harm, liability, or other adverse consequences to our business operations.</span></div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "MarketAxess"}, {"html": "<div class=\"report-card\">      <h3>MarketAxess <span class=\"symbol\">(MKTX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1278021/000095017025025606/mktx-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1278021/000095017024018935/mktx-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, as AI technologies, including generative AI models develop rapidly, bad actors may use these technologies to create new sophisticated attack methods that are increasingly automated, targeted and coordinated and more difficult to defend against.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "MarketAxess"}, {"html": "<div class=\"report-card\">      <h3>MarketAxess <span class=\"symbol\">(MKTX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1278021/000095017025025606/mktx-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1278021/000095017024018935/mktx-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The introduction of AI technologies, including generative AI, into new or existing products or our internal business processes may result in new or enhanced governmental or regulatory scrutiny, confidentiality or security risks, privacy concerns, ethical challenges, or other complications that could adversely affect our business, reputation, or financial results. In addition, the intellectual property ownership and license rights surrounding AI technologies are currently not fully addressed by courts or regulators. The use or adoption of AI technologies in our products or internal business services may result in exposure to claims by third parties of copyright infringement or other intellectual property misappropriation. Such use or adoption could also lead to the loss of our intellectual property rights. The evolving legal, regulatory, and compliance framework for AI technologies may also impact our ability to protect our own data and intellectual property against infringing use.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "MarketAxess"}, {"html": "<div class=\"report-card\">      <h3>Marriott International <span class=\"symbol\">(MAR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1048286/000162828025004818/mar-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1048286/000162828024004372/mar-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The techniques used to obtain unauthorized access, disable or degrade service, or sabotage information systems change <span style='color:red;text-decoration:line-through;'>frequently,</span> <span style='color:green;'>frequently (including the integration of new technology such as AI),</span> can be difficult to detect for long periods of time, and can involve difficult or prolonged assessment or remediation periods even once detected, which could also magnify the severity of these adverse effects.</div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Marriott International"}, {"html": "<div class=\"report-card\">      <h3>Marriott International <span class=\"symbol\">(MAR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1048286/000162828025004818/mar-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1048286/000162828024004372/mar-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, it is possible that AI could be improperly utilized by associates while carrying out their responsibilities or lead to unintended consequences, including generating content that is factually inaccurate, misleading or otherwise flawed, or biased, or that results in other unintended harmful impacts, which could harm our reputation and business and expose us to risks related to inaccuracies or errors in the output of such technologies.</span></div>    </div>", "risks": "Bias", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Marriott International"}, {"html": "<div class=\"report-card\">      <h3>Marsh McLennan <span class=\"symbol\">(MMC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Insurance Brokers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span><span class='risk-tag' title='Risk: Third Party'>Third Party</span><span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/62709/000006270925000015/mmc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/62709/000006270924000016/mmc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If any of our employees, contractors, consultants, vendors or service providers use any third-party AI powered software in connection with our business or the services they provide to us, it may lead to the inadvertent disclosure or incorporation of our confidential information into publicly available training sets, which may impact our ability to realize the benefit of, or adequately maintain, protect and enforce our intellectual property or confidential information, harming our competitive position and business.</span></div>    </div>", "risks": "Competition; Third Party; Data and IP Protection", "sector": "Financials", "sub": "Insurance Brokers", "company": "Marsh McLennan"}, {"html": "<div class=\"report-card\">      <h3>Marsh McLennan <span class=\"symbol\">(MMC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Insurance Brokers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/62709/000006270925000015/mmc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/62709/000006270924000016/mmc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Some of the factors that could materially and adversely affect our business, financial condition, results of operations or prospects, include the following: \u2022Our results of operations and investments could be adversely affected by geopolitical or macroeconomic conditions; \u2022We are subject to significant uninsured exposures arising from errors and omissions, breach of fiduciary duty and other claims; \u2022We cannot guarantee that we are or will be in compliance with all current and potentially applicable U.S. federal and state or foreign laws and regulations, and actions by regulatory authorities or changes in legislation and regulation in the jurisdictions in which we operate could have a material adverse effect on our business; \u2022Our business or reputation could be harmed by our reliance on third-party providers or introducers; \u2022We may not be able to effectively identify and manage actual and apparent conflicts of interest; \u2022We could incur significant liability or our reputation could be damaged if our information systems are breached or we otherwise fail to protect client or Company data or information systems; \u2022The costs to comply with, or our failure to comply with, U.S. and foreign laws related to privacy, data security and data protection, such as the EU's General Data Protection Regulation (GDPR) and the California Consumer Privacy Act, as amended by the California Privacy Rights Act, (CCPA), <span style='color:green;'>Australia's CPS 234, as well as emerging AI-related laws such as the EU's AI Act,</span> could adversely affect our financial condition, operating results and our reputation; \u2022Our business performance and growth plans could be negatively affected if we are not able to develop and implement improvements in technology or respond effectively to the threat of digital disruption and other technological change such as AI; \u2022The loss of members of our senior management team or other key colleagues, or if we are unsuccessful in our efforts to attract, retain and develop talent, could have a material adverse effect on our business; \u2022Failure to maintain our corporate <span style='color:red;text-decoration:line-through;'>culture, particularly in a hybrid work environment, could damage our</span> <span style='color:green;'>culture could adversely affect our business and</span> reputation; \u2022Increasing scrutiny and changing laws and expectations from regulators, investors, clients and our colleagues with respect to our environmental, social and governance (ESG) practices and disclosure may impose additional costs on us or expose us to new or additional risks; \u2022We face significant competitive pressures in each of our businesses, including from disintermediation, as our competitive landscape continues to evolve; \u2022We rely on a large number of vendors and other third parties to perform key functions of our business operations and to provide services to our clients.</div>    </div>", "risks": "EU AI Act", "sector": "Financials", "sub": "Insurance Brokers", "company": "Marsh McLennan"}, {"html": "<div class=\"report-card\">      <h3>Marsh McLennan <span class=\"symbol\">(MMC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Insurance Brokers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/62709/000006270925000015/mmc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/62709/000006270924000016/mmc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The costs to comply with, or our failure to comply with, U.S. and foreign laws related to privacy, data security and data protection, such as the EU's General Data Protection Regulation (GDPR) and the California Consumer Privacy Act, as amended by the California Privacy Rights Act, (CCPA), <span style='color:green;'>Australia's CPS 234, as well as emerging AI-related laws such as the EU's AI Act,</span> could adversely affect our financial condition, operating results and our reputation.</div>    </div>", "risks": "EU AI Act", "sector": "Financials", "sub": "Insurance Brokers", "company": "Marsh McLennan"}, {"html": "<div class=\"report-card\">      <h3>Marsh McLennan <span class=\"symbol\">(MMC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Insurance Brokers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/62709/000006270925000015/mmc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/62709/000006270924000016/mmc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>As we use such tools in our website environment, we are at risk of being impacted by such activity, including fines and cease and desist orders. Additionally, certain foreign, U.S. federal and U.S. state governments are increasingly enacting, or are considering enacting, AI-related laws and regulations, such as the EU's AI Act, the AI Transparency Act of California and the AI Act of Colorado, which impose complex new obligations on developers and providers of AI systems. Given the emerging nature of AI technology, the lack of legal or regulatory precedent, and the ambiguity surrounding key definitions, complying with these evolving legal and regulatory frameworks is likely to be both challenging and costly. There is a risk that we may not fully meet the requirements set forth by these laws and regulations, potentially exposing us to legal, regulatory or financial penalties. Furthermore, as new and divergent AI laws and regulations continue to emerge globally, they could significantly increase our risk of liability and fines, impact our ability to deploy and utilize AI tools across different jurisdictions, disrupt operations and prospective business and increase our compliance burdens.</span></div>    </div>", "risks": "EU AI Act", "sector": "Financials", "sub": "Insurance Brokers", "company": "Marsh McLennan"}, {"html": "<div class=\"report-card\">      <h3>Marsh McLennan <span class=\"symbol\">(MMC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Insurance Brokers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/62709/000006270925000015/mmc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/62709/000006270924000016/mmc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Cyberattacks are increasing in frequency and evolving in nature. We are at risk of attack by a variety of adversaries, including nation states, state-sponsored organizations, <span style='color:green;'>opportunistic attacks, and</span> organized crime and hackers, through use of increasingly sophisticated methods of attack, including the deployment of AI to find and exploit vulnerabilities, deep fakes, long-term, persistent attacks (referred to as advanced persistent threats) and the use of the IT supply chain to introduce malware through software updates or compromised suppliers accounts or hardware. In particular, the advance of AI and large language models has given rise to additional vulnerabilities and potential entry points for cyber threats. With generative AI tools, threat actors may have additional tools to automate breaches or persistent attacks, evade detection, or generate sophisticated phishing emails or other forms of digital <span style='color:red;text-decoration:line-through;'>impersonation.</span> <span style='color:green;'>impersonation, doing so quickly and without requiring deep technical understanding of potential exploits.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Insurance Brokers", "company": "Marsh McLennan"}, {"html": "<div class=\"report-card\">      <h3>Marsh McLennan <span class=\"symbol\">(MMC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Insurance Brokers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/62709/000006270925000015/mmc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/62709/000006270924000016/mmc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We are at risk of attack by a variety of adversaries, including nation states, state- sponsored organizations, opportunistic attacks, and organized crime and hackers, through use of increasingly sophisticated methods of attack, including the deployment of AI to find and exploit vulnerabilities, \"deep fakes\", long-term, persistent attacks (referred to as advanced persistent threats) and the use of the IT supply chain to introduce malware through software updates or compromised suppliers accounts or hardware.</div>    </div>", "risks": "Deepfakes", "sector": "Financials", "sub": "Insurance Brokers", "company": "Marsh McLennan"}, {"html": "<div class=\"report-card\">      <h3>Marsh McLennan <span class=\"symbol\">(MMC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Insurance Brokers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/62709/000006270925000015/mmc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/62709/000006270924000016/mmc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The models underlying AI tools may be incorrectly or inadequately designed or implemented and trained on, or otherwise use, data or algorithms that are (and the output generated by such AI tools also may be) biased, unethical, discriminatory, incomplete, inaccurate, misleading or poor-quality, any of which may not be easily detectable.</span></div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Insurance Brokers", "company": "Marsh McLennan"}, {"html": "<div class=\"report-card\">      <h3>Marsh McLennan <span class=\"symbol\">(MMC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Insurance Brokers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/62709/000006270925000015/mmc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/62709/000006270924000016/mmc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>There can be no assurance that our use of AI will enhance our products, services or operations or otherwise result in our intended outcomes.</span></div>    </div>", "risks": "Disillusionment", "sector": "Financials", "sub": "Insurance Brokers", "company": "Marsh McLennan"}, {"html": "<div class=\"report-card\">      <h3>Martin Marietta Materials <span class=\"symbol\">(MLM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Construction Materials</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/916076/000095017025024770/mlm-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/916076/000095017024019275/mlm-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Cyber threats are rapidly evolving as threat actors have become increasingly sophisticated and carry out direct large-scale, complex attacks against a <span style='color:red;text-decoration:line-through;'>company.</span> <span style='color:green;'>company and are reportedly using artificial intelligence to increase the virulence of attacks.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Materials", "sub": "Construction Materials", "company": "Martin Marietta Materials"}, {"html": "<div class=\"report-card\">      <h3>Mastercard <span class=\"symbol\">(MA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Transaction & Payment Processing Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1141391/000114139125000011/ma-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1141391/000114139124000022/ma-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">As a user and deployer of AI technology, we are also subject to increasing and evolving laws and regulations related to AI <span style='color:red;text-decoration:line-through;'>governance</span> <span style='color:green;'>governance, including the EU AI Act,</span> and new applications of existing laws and regulations to AI.</div>    </div>", "risks": "EU AI Act", "sector": "Financials", "sub": "Transaction & Payment Processing Services", "company": "Mastercard"}, {"html": "<div class=\"report-card\">      <h3>Mastercard <span class=\"symbol\">(MA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Transaction & Payment Processing Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1141391/000114139125000011/ma-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1141391/000114139124000022/ma-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">In particular, AI algorithms may generate inaccurate, unintended, <span style='color:red;text-decoration:line-through;'>unfair</span> <span style='color:green;'>unfair, biased</span> or discriminatory <span style='color:red;text-decoration:line-through;'>outcomes, which</span> <span style='color:green;'>outcomes (which</span> may not be easily detectable or <span style='color:red;text-decoration:line-through;'>explainable,</span> <span style='color:green;'>explainable)</span> and may inadvertently <span style='color:green;'>disclose confidential information and/or</span> breach intellectual property, privacy or other <span style='color:red;text-decoration:line-through;'>rights, as well as confidential information.</span> <span style='color:green;'>rights.</span></div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Transaction & Payment Processing Services", "company": "Mastercard"}, {"html": "<div class=\"report-card\">      <h3>Match Group <span class=\"symbol\">(MTCH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Interactive Media & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/891103/000089110325000027/mtch-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/891103/000089110324000014/mtch-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We are regularly under attack by perpetrators of random or targeted malicious technology-related events, such as cyberattacks, computer viruses, worms, bot attacks or other destructive or disruptive software, distributed denial of service attacks, and attempts to misappropriate customer information, including personal user data, credit card information, and account login credentials. <span style='color:green;'>Such attacks are becoming increasingly sophisticated and some actors are using AI technology to launch more automated, targeted and coordinated attacks.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Communication Services", "sub": "Interactive Media & Services", "company": "Match Group"}, {"html": "<div class=\"report-card\">      <h3>Match Group <span class=\"symbol\">(MTCH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Interactive Media & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/891103/000089110325000027/mtch-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/891103/000089110324000014/mtch-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">If the content or recommendations that AI applications assist in producing are or are alleged to be deficient, inaccurate, offensive, biased, <span style='color:green;'>infringing,</span> or otherwise improper or harmful, we may face reputational consequences or legal liability, and our business, financial condition, and results of operations may be adversely affected.</div>    </div>", "risks": "Bias", "sector": "Communication Services", "sub": "Interactive Media & Services", "company": "Match Group"}, {"html": "<div class=\"report-card\">      <h3>Match Group <span class=\"symbol\">(MTCH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Interactive Media & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/891103/000089110325000027/mtch-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/891103/000089110324000014/mtch-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Additionally, AI algorithms and training methodologies may be <span style='color:red;text-decoration:line-through;'>flawed.</span> <span style='color:green;'>flawed and datasets may be overbroad, insufficient, contain biased information, or infringe third parties\u2019 rights.</span></div>    </div>", "risks": "Bias", "sector": "Communication Services", "sub": "Interactive Media & Services", "company": "Match Group"}, {"html": "<div class=\"report-card\">      <h3>McCormick & Company <span class=\"symbol\">(MKC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Packaged Foods & Meats</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/63754/000006375425000005/mkc-20241130.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/63754/000006375424000027/mkc-20231130.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Certain competitors may also be more successful at utilizing data analytics, artificial intelligence, and other new and emerging technologies and digital experiences as part of their advertising practices. We must also be able to respond successfully to technological advances (including artificial intelligence and machine learning, which may become critical in interpreting consumer preferences in the future), and failure to do so could compromise our competitive position and negatively impact our product sales.</span></div>    </div>", "risks": "Competition", "sector": "Consumer Staples", "sub": "Packaged Foods & Meats", "company": "McCormick & Company"}, {"html": "<div class=\"report-card\">      <h3>McCormick & Company <span class=\"symbol\">(MKC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Packaged Foods & Meats</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/63754/000006375425000005/mkc-20241130.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/63754/000006375424000027/mkc-20231130.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Furthermore, our information technology systems, and the systems of our customers, vendors, suppliers, and other third-party service providers, are subject to cyber-attacks or other security incidents including computer viruses or other malicious codes, phishing attacks, unauthorized access attempts, cyber extortion, business email compromise, deepfake or social engineering schemes, denial of service attacks, hacking, ransomware, or other cyberattacks attempting to exploit vulnerabilities.</div>    </div>", "risks": "Deepfakes", "sector": "Consumer Staples", "sub": "Packaged Foods & Meats", "company": "McCormick & Company"}, {"html": "<div class=\"report-card\">      <h3>McDonald's <span class=\"symbol\">(MCD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Restaurants</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/63908/000006390825000012/mcd-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/63908/000006390824000072/mcd-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">These may include such things as unauthorized access, phishing attacks, account takeovers, denial of service, computer viruses, deepfakes and other malicious uses of artificial intelligence, introduction of malware or <span style='color:red;text-decoration:line-through;'>ransomware and</span> <span style='color:green;'>ransomware,</span> other disruptive problems caused by <span style='color:red;text-decoration:line-through;'>hackers.</span> <span style='color:green;'>hackers or unintentional events.</span></div>    </div>", "risks": "Deepfakes", "sector": "Consumer Discretionary", "sub": "Restaurants", "company": "McDonald's"}, {"html": "<div class=\"report-card\">      <h3>McDonald's <span class=\"symbol\">(MCD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Restaurants</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/63908/000006390825000012/mcd-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/63908/000006390824000072/mcd-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">In addition, the artificial intelligence tools we are incorporating into certain aspects of our <span style='color:red;text-decoration:line-through;'>restaurant operations</span> <span style='color:green;'>business</span> may not generate the intended efficiencies and may impact our business results.</div>    </div>", "risks": "Disillusionment", "sector": "Consumer Discretionary", "sub": "Restaurants", "company": "McDonald's"}, {"html": "<div class=\"report-card\">      <h3>McKesson Corporation <span class=\"symbol\">(MCK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Distributors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/927653/000092765324000035/mck-20240331.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/927653/000092765323000038/mck-20230331.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>New technologies may not result in the benefits we anticipate or enable us to maintain a competitive advantage. AI technology is continuously evolving, and the AI technologies we employ may become obsolete earlier than planned. Additionally, some historical</span> competitors <span style='color:green;'>and a growing number of new competitive entrants</span> have more experience than we do in enabling technologies such as data <span style='color:red;text-decoration:line-through;'>analytics.</span> <span style='color:green;'>analytics, machine learning, or AI.</span></div>    </div>", "risks": "Competition", "sector": "Health Care", "sub": "Health Care Distributors", "company": "McKesson Corporation"}, {"html": "<div class=\"report-card\">      <h3>McKesson Corporation <span class=\"symbol\">(MCK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Distributors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/927653/000092765324000035/mck-20240331.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/927653/000092765323000038/mck-20230331.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">The risk <span style='color:green;'>and efficacy</span> of cyberattacks increases from time to time due to a variety of internal and external factors, including <span style='color:green;'>the adoption of sophisticated and rapidly evolving techniques, such as adversarial AI, and</span> during political tensions, military conflicts, or civil unrest.</div>    </div>", "risks": "Malicious Actors", "sector": "Health Care", "sub": "Health Care Distributors", "company": "McKesson Corporation"}, {"html": "<div class=\"report-card\">      <h3>McKesson Corporation <span class=\"symbol\">(MCK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Distributors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/927653/000092765324000035/mck-20240331.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/927653/000092765323000038/mck-20230331.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>These risks can be heightened upon the adoption of rapid evolution or new technologies, including AI, and may introduce new or expanded risks, such as data inaccuracy, unreliability, or bias.</span></div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Health Care Distributors", "company": "McKesson Corporation"}, {"html": "<div class=\"report-card\">      <h3>McKesson Corporation <span class=\"symbol\">(MCK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Distributors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/927653/000092765324000035/mck-20240331.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/927653/000092765323000038/mck-20230331.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>New technologies may not result in the benefits we anticipate or enable us to maintain a competitive advantage. AI technology is continuously evolving, and the AI technologies we employ may become obsolete earlier than planned.</span></div>    </div>", "risks": "Disillusionment", "sector": "Health Care", "sub": "Health Care Distributors", "company": "McKesson Corporation"}, {"html": "<div class=\"report-card\">      <h3>Medtronic <span class=\"symbol\">(MDT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1613103/000161310324000072/mdt-20240426.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1613103/000161310323000040/mdt-20230428.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, data science, machine learning and AI are all impacting our products and operations and the competitive landscape in which we operate, and the application of these technologies is rapidly evolving at the same time as new laws and regulations of AI are being developed in jurisdictions around the world.</span></div>    </div>", "risks": "Competition", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Medtronic"}, {"html": "<div class=\"report-card\">      <h3>Medtronic <span class=\"symbol\">(MDT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1613103/000161310324000072/mdt-20240426.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1613103/000161310323000040/mdt-20230428.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We also face business and regulatory risks relating to our use of AI systems in our business operations and products. These systems are susceptible to flaws, biases, malfunctions or manipulations, which may disrupt our operations, result in erroneous decision-making, elevate our cyber risk profile, or expose us to penalties from non-compliance with emerging regulations.</span></div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Medtronic"}, {"html": "<div class=\"report-card\">      <h3>Medtronic <span class=\"symbol\">(MDT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1613103/000161310324000072/mdt-20240426.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1613103/000161310323000040/mdt-20230428.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>There can be no assurance that the application of AI in our products and operations will be successful, or that we will not experience data security and privacy incidents in connection with our use of these technologies.</span></div>    </div>", "risks": "Disillusionment", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Medtronic"}, {"html": "<div class=\"report-card\">      <h3>Merck & Co. <span class=\"symbol\">(MRK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Pharmaceuticals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/310158/000162828025007732/mrk-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/310158/000162828024006850/mrk-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Ethical and legal challenges may arise, including biases or discrimination in AI outcomes, non- compliance with data protection <span style='color:red;text-decoration:line-through;'>regulations,</span> <span style='color:green;'>regulations and laws specifically governing the use of AI systems and tools,</span> and lack of transparency.</div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Pharmaceuticals", "company": "Merck & Co."}, {"html": "<div class=\"report-card\">      <h3>Merck & Co. <span class=\"symbol\">(MRK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Pharmaceuticals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/310158/000162828025007732/mrk-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/310158/000162828024006850/mrk-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Flaws, biases, or malfunctions in these systems could lead to operational disruptions, data loss, or erroneous decision-making, impacting the Company\u2019s business operations, financial condition, and reputation.</div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Pharmaceuticals", "company": "Merck & Co."}, {"html": "<div class=\"report-card\">      <h3>Meta Platforms <span class=\"symbol\">(META)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Interactive Media & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1326801/000132680125000017/meta-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1326801/000132680124000012/meta-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We also expect to face additional competition as we introduce or acquire new products, as our existing products evolve, or as other companies introduce new products and services, including as part of efforts to <span style='color:red;text-decoration:line-through;'>develop the metaverse or</span> innovate through the development and application of <span style='color:green;'>AI and other</span> new <span style='color:red;text-decoration:line-through;'>technologies such</span> <span style='color:green;'>technologies,</span> as <span style='color:red;text-decoration:line-through;'>AI.</span> <span style='color:green;'>well as efforts to develop the metaverse.</span></div>    </div>", "risks": "Competition", "sector": "Communication Services", "sub": "Interactive Media & Services", "company": "Meta Platforms"}, {"html": "<div class=\"report-card\">      <h3>Meta Platforms <span class=\"symbol\">(META)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Interactive Media & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1326801/000132680125000017/meta-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1326801/000132680124000012/meta-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our AI initiatives also depend on our access to data to effectively train our models.</span> Further, our ability to continue to develop and effectively deploy AI technologies is dependent on access to specific third-party equipment and other <span style='color:green;'>technical and</span> physical infrastructure, such as processing <span style='color:red;text-decoration:line-through;'>hardware and</span> <span style='color:green;'>hardware,</span> network capacity, <span style='color:green;'>computing power, and related energy requirements,</span> as to which we cannot control the availability or pricing, especially in a highly competitive environment.</div>    </div>", "risks": "Competition", "sector": "Communication Services", "sub": "Interactive Media & Services", "company": "Meta Platforms"}, {"html": "<div class=\"report-card\">      <h3>Meta Platforms <span class=\"symbol\">(META)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Interactive Media & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span><span class='risk-tag' title='Risk: Export Controls'>Export Controls</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1326801/000132680125000017/meta-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1326801/000132680124000012/meta-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">As a result of the complexity and rapid development of AI, it is also the subject of evolving review by various governmental and regulatory agencies in jurisdictions around the world, which are applying, or are considering applying, platform moderation, intellectual property, cybersecurity, <span style='color:green;'>export controls,</span> and data protection laws to AI and/or are considering general legal frameworks on <span style='color:red;text-decoration:line-through;'>AI.</span> <span style='color:green;'>AI (such as the recently passed EU AI Act).</span></div>    </div>", "risks": "EU AI Act; Export Controls", "sector": "Communication Services", "sub": "Interactive Media & Services", "company": "Meta Platforms"}, {"html": "<div class=\"report-card\">      <h3>Meta Platforms <span class=\"symbol\">(META)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Interactive Media & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1326801/000132680125000017/meta-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1326801/000132680124000012/meta-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">complex and evolving U.S. and foreign privacy, data <span style='color:red;text-decoration:line-through;'>use and</span> <span style='color:green;'>use, data combination,</span> data protection, <span style='color:red;text-decoration:line-through;'>content,</span> <span style='color:green;'>content and content moderation,</span> competition, <span style='color:green;'>youth, safety,</span> consumer protection, <span style='color:green;'>advertising,</span> and other laws and regulations, including the General Data Protection Regulation (GDPR), Digital Markets Act (DMA), <span style='color:red;text-decoration:line-through;'>and</span> Digital Services Act <span style='color:red;text-decoration:line-through;'>(DSA);</span> <span style='color:green;'>(DSA), Artificial Intelligence Act (EU AI Act), and the UK Digital Markets, Competition and Consumer Act (DMCC);</span> \u2022the impact of government investigations, enforcement actions, and settlements, including litigation and investigations by privacy, consumer protection, and competition <span style='color:red;text-decoration:line-through;'>authorities;</span> <span style='color:green;'>authorities, among others;</span></div>    </div>", "risks": "EU AI Act", "sector": "Communication Services", "sub": "Interactive Media & Services", "company": "Meta Platforms"}, {"html": "<div class=\"report-card\">      <h3>Meta Platforms <span class=\"symbol\">(META)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Interactive Media & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1326801/000132680125000017/meta-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1326801/000132680124000012/meta-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We are engaged in ongoing privacy compliance and oversight efforts, including in connection with our modified consent order with the FTC, requirements of the GDPR, and other current and anticipated regulatory and legislative requirements around the world, such as <span style='color:green;'>U.S. state privacy laws, youth social media laws,</span> the <span style='color:red;text-decoration:line-through;'>CCPA, as amended by the CPRA,</span> ePrivacy Directive, DMA, DSA, <span style='color:green;'>EU AI Act,</span> the Korean Personal Information Protection Act, and the Indian Digital Personal Data Protection Act.</div>    </div>", "risks": "EU AI Act", "sector": "Communication Services", "sub": "Interactive Media & Services", "company": "Meta Platforms"}, {"html": "<div class=\"report-card\">      <h3>Meta Platforms <span class=\"symbol\">(META)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Interactive Media & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Energy'>Energy</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1326801/000132680125000017/meta-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1326801/000132680124000012/meta-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our AI initiatives also depend on our access to data to effectively train our models. </span>Further, our ability to continue to develop and effectively deploy AI technologies is dependent on access to specific third-party equipment and other<span style='color:green;'> echnical and </span>physical infrastructure, such as processing <span style='color:red;text-decoration:line-through;'>hardware and</span><span style='color:green;'> hardware, </span>network capacity,<span style='color:green;'> computing power, and related energy requirements, </span>as to which we cannot control the availability or pricing, especially in a highly competitive environment.</div>    </div>", "risks": "Energy", "sector": "Communication Services", "sub": "Interactive Media & Services", "company": "Meta Platforms"}, {"html": "<div class=\"report-card\">      <h3>Meta Platforms <span class=\"symbol\">(META)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Interactive Media & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span><span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1326801/000132680125000017/meta-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1326801/000132680124000012/meta-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For example, our AI-related efforts, particularly those related to generative AI, subject us to risks related to harmful or illegal content, accuracy, misinformation <span style='color:green;'>and deepfakes</span> (including related to elections), bias, discrimination, toxicity, <span style='color:green;'>consumer protection,</span> intellectual property infringement or misappropriation, defamation, data privacy, cybersecurity, and sanctions and export controls, among others.</div>    </div>", "risks": "Bias; Deepfakes; Malicious Actors", "sector": "Communication Services", "sub": "Interactive Media & Services", "company": "Meta Platforms"}, {"html": "<div class=\"report-card\">      <h3>Meta Platforms <span class=\"symbol\">(META)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Interactive Media & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1326801/000132680125000017/meta-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1326801/000132680124000012/meta-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">As such, we cannot guarantee that third parties will not use such AI technologies for improper purposes, including through the dissemination of illegal, inaccurate, defamatory or harmful content, intellectual property infringement or misappropriation, furthering bias or discrimination, cybersecurity <span style='color:green;'>attacks including spear phishing</span> attacks, data privacy violations, other activities that threaten people's safety or <span style='color:red;text-decoration:line-through;'>well-being</span> <span style='color:green;'>well- being</span> on- or offline, or to develop competing technologies.</div>    </div>", "risks": "Bias; Malicious Actors", "sector": "Communication Services", "sub": "Interactive Media & Services", "company": "Meta Platforms"}, {"html": "<div class=\"report-card\">      <h3>MetLife <span class=\"symbol\">(MET)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Life & Health Insurance</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1099219/000109921925000044/met-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1099219/000109921924000035/met-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Likewise, the growth and availability of <span style='color:red;text-decoration:line-through;'>artificial intelligence (\u201cAI\u201d)</span> <span style='color:green;'>AI</span> technologies, including generative AI, presents significant opportunities but also complex <span style='color:red;text-decoration:line-through;'>challenges, including with respect to</span> <span style='color:green;'>challenges; these include</span> balancing and mitigating potential risks of harm posed by the development or deployment of AI <span style='color:red;text-decoration:line-through;'>technologies.</span> <span style='color:green;'>technologies, as well as implementing and maintaining controls reasonably designed to ensure compliance with an evolving and increasingly complex AI regulatory landscape.</span></div>    </div>", "risks": "", "sector": "Financials", "sub": "Life & Health Insurance", "company": "MetLife"}, {"html": "<div class=\"report-card\">      <h3>Mettler Toledo <span class=\"symbol\">(MTD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Life Sciences Tools & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1037646/000103764625000012/mtd-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1037646/000103764624000007/mtd-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, challenges with properly managing the use of AI could result in reputational harm, competitive harm, and legal liability, and adversely affect our results of operations.</span></div>    </div>", "risks": "Competition", "sector": "Health Care", "sub": "Life Sciences Tools & Services", "company": "Mettler Toledo"}, {"html": "<div class=\"report-card\">      <h3>MGM Resorts <span class=\"symbol\">(MGM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Casinos & Gaming</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/789570/000078957025000008/mgm-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/789570/000078957024000005/mgm-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">There has been an increase in criminal cybersecurity attacks against companies (and third-party service providers) where systems have been breached, businesses disrupted, and customer, employee, and other company information has been compromised or destroyed. <span style='color:green;'>The rapid evolution and increased adoption of artificial intelligence technologies amplifies these concerns.</span> Our systems and data, including those we maintain with our third-party service providers, have been subject to cybersecurity breaches of varying degrees of severity in the past and are expected to be subject to cybersecurity breaches in the future.</div>    </div>", "risks": "", "sector": "Consumer Discretionary", "sub": "Casinos & Gaming", "company": "MGM Resorts"}, {"html": "<div class=\"report-card\">      <h3>Microchip Technology <span class=\"symbol\">(MCHP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/827054/000082705424000098/mchp-20240331.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/827054/000082705423000080/mchp-20230331.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If we enable or offer solutions that draw controversy due to their perceived or actual impact on society, such as AI solutions that have unintended consequences, infringe copyright or rights of publicity, or are controversial because of their impact on human rights, privacy, employment or other social, economic or political issues, or if we are unable to develop effective internal policies and frameworks relating to the responsible development and use of AI enabling products, we may experience brand or reputational harm, competitive harm or legal liability.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Semiconductors", "company": "Microchip Technology"}, {"html": "<div class=\"report-card\">      <h3>Microchip Technology <span class=\"symbol\">(MCHP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/827054/000082705424000098/mchp-20240331.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/827054/000082705423000080/mchp-20230331.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, the EU AI Act could impose onerous obligations that may disadvantage us and require us to change our business practices. In the U.S., federal, state, and local governments have enacted numerous laws and regulations relating to privacy, data protection, and cybersecurity.</span></div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Semiconductors", "company": "Microchip Technology"}, {"html": "<div class=\"report-card\">      <h3>Microchip Technology <span class=\"symbol\">(MCHP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/827054/000082705424000098/mchp-20240331.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/827054/000082705423000080/mchp-20230331.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Also, as AI continues to evolve, cyber-attackers could use AI to develop malicious code, sophisticated phishing attempts, and convincing deep fakes. A deep fake is a manipulation of our content or the voices or images of our leaders to maliciously publish false messages that appear to be authentic. Such messages may harm our reputation, which may in turn have an adverse impact on our revenue and profits, and reduce the trading price of our stock.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Semiconductors", "company": "Microchip Technology"}, {"html": "<div class=\"report-card\">      <h3>Microchip Technology <span class=\"symbol\">(MCHP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/827054/000082705424000098/mchp-20240331.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/827054/000082705423000080/mchp-20230331.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Geopolitical events and tensions may increase these risks. Also, as AI continues to evolve, cyber-attackers could use AI to develop malicious code, sophisticated phishing attempts, and convincing deep fakes. A deep fake is a manipulation of our content or the voices or images of our leaders to maliciously publish false messages that appear to be authentic. Such messages may harm our reputation, which may in turn have an adverse impact on our revenue and profits, and reduce the trading price of our stock.</span></div>    </div>", "risks": "Deepfakes", "sector": "Information Technology", "sub": "Semiconductors", "company": "Microchip Technology"}, {"html": "<div class=\"report-card\">      <h3>Microchip Technology <span class=\"symbol\">(MCHP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span><span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/827054/000082705424000098/mchp-20240331.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/827054/000082705423000080/mchp-20230331.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We face risks to our business and proprietary confidential information due to use of AI. We limit our employees\u2019 use of third-party and open-source AI tools, such as ChatGPT, in accordance with our internal guidelines and procedures. However, the internal governance of the use of these technologies can be challenging, and our employees and consultants may use these tools on an unauthorized basis and our partners may use these tools, which poses additional risks relating to the protection of data, including the potential exposure of our proprietary confidential information to unauthorized recipients and the misuse of our or third-party intellectual property. Use of AI tools may result in allegations or claims against us related to violation of third-party intellectual property rights, unauthorized access to or use of proprietary information, failure to comply with open-source software requirements, and failure to comply with actual or asserted legal or other obligations.</span></div>    </div>", "risks": "Data and IP Protection; Third Party", "sector": "Information Technology", "sub": "Semiconductors", "company": "Microchip Technology"}, {"html": "<div class=\"report-card\">      <h3>Micron Technology <span class=\"symbol\">(MU)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span><span class='risk-tag' title='Risk: Export Controls'>Export Controls</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/723125/000072312524000027/mu-20240829.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/723125/000072312523000054/mu-20230831.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, increasing geopolitical tensions could result in new export controls associated with products that support or enable AI applications which could, in turn, restrict future sales of certain products to China or other markets.</span> Such changes may also result in reputational harm to us, the development or adoption of technologies that compete with our products, long-term changes in global trade and technology supply chains, or negative impacts on our customers\u2019 products which incorporate our solutions.</div>    </div>", "risks": "Competition; Export Controls", "sector": "Information Technology", "sub": "Semiconductors", "company": "Micron Technology"}, {"html": "<div class=\"report-card\">      <h3>Micron Technology <span class=\"symbol\">(MU)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/723125/000072312524000027/mu-20240829.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/723125/000072312523000054/mu-20230831.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We are increasingly incorporating AI capabilities into the development of technologies and our business operations, and into our products and services. AI technology is complex and rapidly evolving, and may expose us to significant competitive, legal, regulatory, and other risks. The implementation of AI can be costly and there is no guarantee that our use of AI will enhance our technologies, benefit our business operations, or produce products and services that are preferred by our customers. AI will likely increase or change the competitive environment in our markets. Our competitors may be more successful in their AI strategy or they may have access to greater AI resources or technology and develop superior products and services.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Semiconductors", "company": "Micron Technology"}, {"html": "<div class=\"report-card\">      <h3>Micron Technology <span class=\"symbol\">(MU)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/723125/000072312524000027/mu-20240829.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/723125/000072312523000054/mu-20230831.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The emergence and maturation of AI capabilities may also lead to new and/or more sophisticated methods of attack.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Semiconductors", "company": "Micron Technology"}, {"html": "<div class=\"report-card\">      <h3>Micron Technology <span class=\"symbol\">(MU)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/723125/000072312524000027/mu-20240829.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/723125/000072312523000054/mu-20230831.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The use of AI in the development of our products and services could also cause loss of intellectual property, as well as subject us to risks related to intellectual property infringement or misappropriation.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Information Technology", "sub": "Semiconductors", "company": "Micron Technology"}, {"html": "<div class=\"report-card\">      <h3>Micron Technology <span class=\"symbol\">(MU)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/723125/000072312524000027/mu-20240829.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/723125/000072312523000054/mu-20230831.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, AI algorithms or training methodologies may be flawed, and datasets may contain irrelevant, insufficient or biased information, which can cause errors in outputs.</span></div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Semiconductors", "company": "Micron Technology"}, {"html": "<div class=\"report-card\">      <h3>Micron Technology <span class=\"symbol\">(MU)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/723125/000072312524000027/mu-20240829.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/723125/000072312523000054/mu-20230831.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The implementation of AI can be costly and there is no guarantee that our use of AI will enhance our technologies, benefit our business operations, or produce products and services that are preferred by our customers.</span></div>    </div>", "risks": "Disillusionment", "sector": "Information Technology", "sub": "Semiconductors", "company": "Micron Technology"}, {"html": "<div class=\"report-card\">      <h3>Microsoft <span class=\"symbol\">(MSFT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/789019/000095017024087843/msft-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/789019/000095017023035122/msft-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">We expect AI technology and services to be a highly competitive and rapidly evolving <span style='color:green;'>market, and new competitors continue to enter the</span> market.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Systems Software", "company": "Microsoft"}, {"html": "<div class=\"report-card\">      <h3>Microsoft <span class=\"symbol\">(MSFT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/789019/000095017024087843/msft-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/789019/000095017023035122/msft-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Our <span style='color:red;text-decoration:line-through;'>increasing</span> focus on cloud-based <span style='color:green;'>and AI</span> services presents execution and competitive risks.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Systems Software", "company": "Microsoft"}, {"html": "<div class=\"report-card\">      <h3>Microsoft <span class=\"symbol\">(MSFT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/789019/000095017024087843/msft-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/789019/000095017023035122/msft-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>As a result of these and other challenges associated with innovative technologies, our</span> <span style='color:green;'>Our</span> implementation of AI systems could <span style='color:red;text-decoration:line-through;'>subject us to</span> <span style='color:green;'>result in legal liability, regulatory action, brand, reputational, or</span> competitive harm, <span style='color:red;text-decoration:line-through;'>regulatory action, legal liability, including under</span> <span style='color:green;'>or other adverse impacts. These risks may arise from current copyright infringement and other claims related to AI training and output,</span> new <span style='color:green;'>and</span> proposed legislation <span style='color:red;text-decoration:line-through;'>regulating AI in jurisdictions</span> <span style='color:green;'>and regulations,</span> such as the European <span style='color:red;text-decoration:line-through;'>Union (\u201cEU\u201d),</span> <span style='color:green;'>Union\u2019s (\u201cEU\u201d) AI Act and the U.S.\u2019s AI Executive Order, and</span> new applications of <span style='color:red;text-decoration:line-through;'>existing</span> data protection, privacy, <span style='color:green;'>consumer protection,</span> intellectual property, and other <span style='color:red;text-decoration:line-through;'>laws, and brand or reputational harm.</span> <span style='color:green;'>laws.</span></div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Systems Software", "company": "Microsoft"}, {"html": "<div class=\"report-card\">      <h3>Microsoft <span class=\"symbol\">(MSFT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/789019/000095017024087843/msft-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/789019/000095017023035122/msft-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">For example, <span style='color:red;text-decoration:line-through;'>in</span> the <span style='color:red;text-decoration:line-through;'>EU, an</span> <span style='color:green;'>EU\u2019s</span> AI Act <span style='color:red;text-decoration:line-through;'>is being considered, and</span> may <span style='color:red;text-decoration:line-through;'>entail increased</span> <span style='color:green;'>increase</span> costs or <span style='color:red;text-decoration:line-through;'>decreased opportunities for</span> <span style='color:green;'>impact</span> the <span style='color:green;'>provision or</span> operation of our AI <span style='color:green;'>models and</span> services in the European market.</div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Systems Software", "company": "Microsoft"}, {"html": "<div class=\"report-card\">      <h3>Microsoft <span class=\"symbol\">(MSFT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/789019/000095017024087843/msft-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/789019/000095017023035122/msft-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Threat actors may also utilize emerging technologies, such as AI and machine learning.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Systems Software", "company": "Microsoft"}, {"html": "<div class=\"report-card\">      <h3>Microsoft <span class=\"symbol\">(MSFT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/789019/000095017024087843/msft-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/789019/000095017023035122/msft-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Additionally, <span style='color:red;text-decoration:line-through;'>we are actively adding new generative AI features to our services. Because generative AI is a new field, understanding of security risks and protection methods continues to develop;</span> features that rely on generative AI may be susceptible to unanticipated security threats from <span style='color:red;text-decoration:line-through;'>sophisticated adversaries.</span> <span style='color:green;'>adversaries as we add new generative AI features to our services while continuously developing our understanding of security risks and protection methods in the new field of generative AI.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Systems Software", "company": "Microsoft"}, {"html": "<div class=\"report-card\">      <h3>Microsoft <span class=\"symbol\">(MSFT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/789019/000095017024087843/msft-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/789019/000095017023035122/msft-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Datasets may be overbroad, insufficient, or contain biased information.</div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Systems Software", "company": "Microsoft"}, {"html": "<div class=\"report-card\">      <h3>Mid-America Apartment Communities <span class=\"symbol\">(MAA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Multi-Family Residential REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/912595/000095017025016287/maa-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/912595/000095017024013275/maa-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">This risk of a data breach or security failure, particularly through cyber-attacks or cyber-intrusion, has generally increased due to the rise in new <span style='color:red;text-decoration:line-through;'>technologies</span> <span style='color:green;'>technologies, such as ransomware and generative artificial intelligence,</span> and the increased sophistication and activities of the perpetrators of attempted attacks and intrusions, including as a result of the intensification of state-sponsored cybersecurity attacks during periods of geopolitical conflict, such as the ongoing conflicts involving <span style='color:red;text-decoration:line-through;'>Russia, Belarus, Ukraine, Israel</span> <span style='color:green;'>Ukraine</span> and <span style='color:red;text-decoration:line-through;'>other countries</span> in the Middle East.</div>    </div>", "risks": "Malicious Actors", "sector": "Real Estate", "sub": "Multi-Family Residential REITs", "company": "Mid-America Apartment Communities"}, {"html": "<div class=\"report-card\">      <h3>Moderna <span class=\"symbol\">(MRNA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Biotechnology</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1682852/000168285225000022/mrna-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1682852/000168285224000015/mrna-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, bad actors around the world use increasingly sophisticated methods, including the use of AI technologies, to engage in illegal activities involving the theft and misuse of personal information, confidential information and intellectual property.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Health Care", "sub": "Biotechnology", "company": "Moderna"}, {"html": "<div class=\"report-card\">      <h3>Moderna <span class=\"symbol\">(MRNA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Biotechnology</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1682852/000168285225000022/mrna-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1682852/000168285224000015/mrna-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Additionally, GenAI\u2019s potential for producing false or misleading outputs, reflecting biases or generating content that may not be subject to <span style='color:red;text-decoration:line-through;'>intellectual property</span> <span style='color:green;'>IP</span> protection or that infringes proprietary rights of others, poses additional risks to our business.</div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Biotechnology", "company": "Moderna"}, {"html": "<div class=\"report-card\">      <h3>Molina Healthcare <span class=\"symbol\">(MOH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Managed Health Care</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1179929/000117992925000023/moh-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1179929/000117992924000033/moh-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In the United States, there has been uncertainty regarding the applicable regulations that will apply to the development and use of AI technologies. For instance, in January 2025, the Trump administration rescinded an executive order relating to the safe and secure development of AI that was previously implemented by the Biden administration. The Trump administration then issued a new interim executive order that, among other things, requires certain agencies to specifically renew and, if possible, rescind rulemaking taken pursuant to the rescinded Biden executive order. Any such changes at the federal level could require us to expend significant resources to modify our products, services, or operations to ensure compliance or remain competitive.</span></div>    </div>", "risks": "Competition", "sector": "Health Care", "sub": "Managed Health Care", "company": "Molina Healthcare"}, {"html": "<div class=\"report-card\">      <h3>Molina Healthcare <span class=\"symbol\">(MOH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Managed Health Care</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1179929/000117992925000023/moh-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1179929/000117992924000033/moh-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Because the techniques used to circumvent, gain access to, or sabotage security systems can be highly <span style='color:red;text-decoration:line-through;'>sophisticated</span> <span style='color:green;'>sophisticated, may use advanced technologies (such as artificial intelligence)</span> and change frequently, they often are not recognized until launched against a target, and may originate from less regulated and remote areas around the world.</div>    </div>", "risks": "Malicious Actors", "sector": "Health Care", "sub": "Managed Health Care", "company": "Molina Healthcare"}, {"html": "<div class=\"report-card\">      <h3>Molina Healthcare <span class=\"symbol\">(MOH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Managed Health Care</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1179929/000117992925000023/moh-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1179929/000117992924000033/moh-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our AI-related efforts may give rise to risks related to accuracy, bias, discrimination, intellectual property <span style='color:green;'>rights and</span> infringement, data privacy, and cybersecurity, among others.</div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Managed Health Care", "company": "Molina Healthcare"}, {"html": "<div class=\"report-card\">      <h3>Molson Coors Beverage Company <span class=\"symbol\">(TAP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Brewers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/24545/000002454525000007/tap-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/24545/000002454524000005/tap-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Further, bad actors around the world use increasingly sophisticated methods, including the use of artificial intelligence, to engage in <span style='color:green;'>cyberattacks or</span> illegal activities involving the theft and misuse of personal information, confidential information and intellectual property.</div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Staples", "sub": "Brewers", "company": "Molson Coors Beverage Company"}, {"html": "<div class=\"report-card\">      <h3>Mondelez International <span class=\"symbol\">(MDLZ)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Packaged Foods & Meats</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Skills'>Skills</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1103982/000110398225000030/mdlz-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1103982/000110398224000019/mdlz-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We could also fail to attract and develop personnel with key emerging capabilities that we need to continue to respond to changing consumer and customer needs and grow our business, including skills in the areas of <span style='color:green;'>advanced technology, artificial intelligence, machine learning,</span> digital <span style='color:red;text-decoration:line-through;'>commerce and marketing,</span> <span style='color:green;'>commerce,</span> data <span style='color:red;text-decoration:line-through;'>analytics, and procurement</span> <span style='color:green;'>analytics</span> and supply chain expertise.</div>    </div>", "risks": "Skills", "sector": "Consumer Staples", "sub": "Packaged Foods & Meats", "company": "Mondelez International"}, {"html": "<div class=\"report-card\">      <h3>Mondelez International <span class=\"symbol\">(MDLZ)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Packaged Foods & Meats</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span><span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1103982/000110398225000030/mdlz-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1103982/000110398224000019/mdlz-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>We leverage third parties for various</span> <span style='color:green;'>Our use of third-party</span> technology and business services <span style='color:red;text-decoration:line-through;'>who</span> may <span style='color:red;text-decoration:line-through;'>experience</span> <span style='color:green;'>expose us to</span> cybersecurity <span style='color:red;text-decoration:line-through;'>breaches, whether from circumvention</span> <span style='color:green;'>breaches. These can include: (1) breaches</span> of security systems, <span style='color:green;'>which could involve circumvention,</span> denial-of-service <span style='color:red;text-decoration:line-through;'>attacks</span> <span style='color:green;'>attacks,</span> or other cyberattacks such as hacking, phishing attacks, computer viruses, ransomware or malware, cyber <span style='color:red;text-decoration:line-through;'>extortion,</span> <span style='color:green;'>extortion and (2) internal threats such as</span> employee or insider <span style='color:red;text-decoration:line-through;'>error,</span> <span style='color:green;'>errors,</span> malfeasance, <span style='color:green;'>deepfake or</span> social <span style='color:red;text-decoration:line-through;'>engineering,</span> <span style='color:green;'>engineering schemes,</span> physical breaches or other actions or attempts to exploit <span style='color:red;text-decoration:line-through;'>vulnerabilities may cause confidential information or Personally Identifiable Information belonging to us or our employees, customers, consumers, partners, suppliers, or governmental or regulatory authorities to be misused or breached.</span> <span style='color:green;'>vulnerabilities.</span></div>    </div>", "risks": "Malicious Actors; Deepfakes", "sector": "Consumer Staples", "sub": "Packaged Foods & Meats", "company": "Mondelez International"}, {"html": "<div class=\"report-card\">      <h3>Monolithic Power Systems <span class=\"symbol\">(MPWR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1280452/000143774925005903/mpwr20241231_10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1280452/000143774924006133/mpwr20231231_10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI technology may also give rise to significant legal and regulatory liability. Governments around the world have adopted, and may continue to adopt, laws and regulations related to AI, including the European Union\u2019s AI Act, and several U.S. government agencies have increased investigations and enforcement efforts related to the use of AI technology, which could increase our compliance costs and limit our ability to use AI in the development of our products and in our operations.</span></div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Semiconductors", "company": "Monolithic Power Systems"}, {"html": "<div class=\"report-card\">      <h3>Moody's Corporation <span class=\"symbol\">(MCO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Skills'>Skills</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1059556/000105955625000025/mco-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1059556/000105955624000017/mco-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Also, the emergence and adoption <span style='color:red;text-decoration:line-through;'>of LLM and</span> Gen AI technologies <span style='color:green;'>has required and</span> will <span style='color:green;'>continue to</span> require upskilling and additional training of Moody's employees, making retention and training increasingly important.</div>    </div>", "risks": "Skills", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "Moody's Corporation"}, {"html": "<div class=\"report-card\">      <h3>Moody's Corporation <span class=\"symbol\">(MCO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1059556/000105955625000025/mco-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1059556/000105955624000017/mco-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Further, the increased availability in recent years of free or relatively inexpensive <span style='color:red;text-decoration:line-through;'>internet information</span> <span style='color:green;'>information, online and through the use of Gen AI,</span> may reduce the demand for Moody\u2019s products and services.</div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "Moody's Corporation"}, {"html": "<div class=\"report-card\">      <h3>Moody's Corporation <span class=\"symbol\">(MCO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1059556/000105955625000025/mco-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1059556/000105955624000017/mco-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, the emergence of Gen AI and other technologies may further intensify these pressures, as the Company's competitors may use these tools to deliver solutions at lower prices, or these tools may be used in a way that significantly increases access to publicly available information.</span></div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "Moody's Corporation"}, {"html": "<div class=\"report-card\">      <h3>Moody's Corporation <span class=\"symbol\">(MCO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1059556/000105955625000025/mco-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1059556/000105955624000017/mco-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The markets for credit ratings, research, credit risk management services, business intelligence and analytical services are highly competitive and characterized by rapid technological change, including change based on our Gen AI offerings, <span style='color:green;'>disruption by the Gen AI offerings of others,</span> changes in customer and investor demands, and evolving regulatory requirements, industry standards and market preferences.</div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "Moody's Corporation"}, {"html": "<div class=\"report-card\">      <h3>Moody's Corporation <span class=\"symbol\">(MCO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1059556/000105955625000025/mco-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1059556/000105955624000017/mco-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The EU AI Act has introduced a risk-based framework for regulating AI systems which applies different obligations to various actors in the AI supply chain. These rules apply to, among others, product manufacturers incorporating AI systems into regulated products sold into the EU as well as to providers whose AI systems or their outputs are made available in the EU. This Act will increase costs to MA including cost of establishing processes and procedures around applicability and implementation of the Act\u2019s requirements for MA products and services. MA also faces a risk of cost of penalties or fines due to noncompliance.</span></div>    </div>", "risks": "EU AI Act", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "Moody's Corporation"}, {"html": "<div class=\"report-card\">      <h3>Moody's Corporation <span class=\"symbol\">(MCO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1059556/000105955625000025/mco-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1059556/000105955624000017/mco-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Gen AI has contributed to an increase in the prevalence and sophistication of cyber threats, expanding the Company's exposure to disruptions.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "Moody's Corporation"}, {"html": "<div class=\"report-card\">      <h3>Moody's Corporation <span class=\"symbol\">(MCO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1059556/000105955625000025/mco-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1059556/000105955624000017/mco-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Cyber-attacks targeting Moody\u2019s or Moody\u2019s vendors\u2019 technology and systems, whether from circumvention of security systems, denial-of-service attacks, ransomware, malware, hacking, social engineering or \"phishing\" attacks, <span style='color:green;'>deepfake attacks,</span> computer viruses, employee or insider threats, malfeasance, supply chain attacks, physical breaches, <span style='color:green;'>vendor email compromise,</span> payment fraud or other cyber-attacks some of which may be carried out by state-sponsored actors, may result in unauthorized access, exfiltration, manipulation or corruption of sensitive data, material interruptions or malfunctions in the Company\u2019s or such vendors\u2019 web sites or systems, applications, data processing, or disruption of other business operations.</div>    </div>", "risks": "Deepfakes; Malicious Actors", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "Moody's Corporation"}, {"html": "<div class=\"report-card\">      <h3>Moody's Corporation <span class=\"symbol\">(MCO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1059556/000105955625000025/mco-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1059556/000105955624000017/mco-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">\u2013uncertain, evolving and new laws and regulations, including those applicable to the financial services industries, such as the <span style='color:red;text-decoration:line-through;'>European Union\u2019s upcoming</span> <span style='color:green;'>EU\u2019s</span> implementation of DORA in January 2025, and to the protection of intellectual property and to the emergence of LLMs in the context of Gen AI and other technologies, such as the EU AI Act, including the effect of these laws and regulations on our customers and on the products and services that we offer;</div>    </div>", "risks": "EU AI Act", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "Moody's Corporation"}, {"html": "<div class=\"report-card\">      <h3>Motorola Solutions <span class=\"symbol\">(MSI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Communications Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/68505/000006850525000012/msi-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/68505/000006850524000008/msi-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>As another</span> <span style='color:green;'>For</span> example, the AI Act in the <span style='color:red;text-decoration:line-through;'>EU, which received high-level political agreement</span> <span style='color:green;'>EU became law</span> in <span style='color:red;text-decoration:line-through;'>December 2023,</span> <span style='color:green;'>August 2024, with key obligations applying in stages through August 2027, including key provisions to us applying in early 2025</span> and <span style='color:red;text-decoration:line-through;'>is anticipated to be passed into law by mid-2024, is expected to</span> <span style='color:green;'>August 2026. The AI Act will</span> place <span style='color:red;text-decoration:line-through;'>severe</span> <span style='color:green;'>significant</span> restrictions on the use of AI for real-time \u201cbiometric identification\u201d by law enforcement, and implement significant compliance requirements on the development and use of AI for biometric identification of any kind.</div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Communications Equipment", "company": "Motorola Solutions"}, {"html": "<div class=\"report-card\">      <h3>Motorola Solutions <span class=\"symbol\">(MSI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Communications Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/68505/000006850525000012/msi-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/68505/000006850524000008/msi-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>If adopted, it is</span> <span style='color:green;'>Once implemented, the AI Act will</span> also <span style='color:red;text-decoration:line-through;'>expected to</span> place compliance requirements on a variety of other AI uses by law enforcement, as well as on the companies that develop those products, including us.</div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Communications Equipment", "company": "Motorola Solutions"}, {"html": "<div class=\"report-card\">      <h3>Motorola Solutions <span class=\"symbol\">(MSI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Communications Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/68505/000006850525000012/msi-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/68505/000006850524000008/msi-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Additionally, the volume, frequency and sophistication of these threats <span style='color:green;'>(including through the use of AI)</span> continues to grow and the complexity and scale of the systems to be protected continues to increase.</div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Communications Equipment", "company": "Motorola Solutions"}, {"html": "<div class=\"report-card\">      <h3>Motorola Solutions <span class=\"symbol\">(MSI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Communications Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/68505/000006850525000012/msi-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/68505/000006850524000008/msi-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>AI</span> <span style='color:green;'>AI, including generative AI,</span> may not always operate as intended and datasets may be insufficient or contain <span style='color:red;text-decoration:line-through;'>illegal,</span> biased, harmful or offensive information, which could negatively impact our results of operations, <span style='color:green;'>environmental, social and governance (ESG) reputation,</span> business reputation or customers\u2019 acceptance of our AI offerings.</div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Communications Equipment", "company": "Motorola Solutions"}, {"html": "<div class=\"report-card\">      <h3>MSCI Inc. <span class=\"symbol\">(MSCI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1408198/000140819825000053/msci-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1408198/000140819824000030/msci-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">These risks include, among others, the following key risks: \u2022Our dependence on third parties to supply <span style='color:green;'>us with</span> data, applications and services <span style='color:red;text-decoration:line-through;'>for our products and services and on certain vendors</span> <span style='color:green;'>and</span> to distribute our products; \u2022Undetected errors, defects, malfunctions or similar problems <span style='color:red;text-decoration:line-through;'>in our products</span> leading to increased costs or liability; \u2022Our exposure to potential reputational and credibility concerns; \u2022The possibility that our clients seek to negotiate lower asset-based fees or cease using our indexes as the basis for indexed investment products; \u2022Cancellations or reductions by <span style='color:red;text-decoration:line-through;'>any of our largest</span> <span style='color:green;'>our</span> clients or reduced demand for our products or services; \u2022The impact of failures, disruptions, instability or vulnerabilities in our information technology systems, networks or applications; \u2022Our inability to ensure and protect the confidentiality of data; \u2022Our exposure to security incidents including cyber-attacks or failures of our <span style='color:red;text-decoration:line-through;'>security</span> plans, systems, networks or procedures; \u2022Unanticipated failures, interruptions or delays in the performance or delivery of our products as a result of the adoption of new technologies; \u2022Security vulnerabilities resulting from our use of open source code; <span style='color:green;'>\u2022Issues related to the use and development of AI resulting in reputational harm, competitive harm, regulatory scrutiny or legal liability;</span> \u2022The impact of changes in economic conditions and the global capital markets, including <span style='color:green;'>those</span> resulting from geopolitical events, adverse equity market conditions, volatility in the financial markets and evolving investment trends; \u2022The effects on us from competition and financial and budgetary pressures affecting our clients; \u2022Our need to successfully develop new and enhanced products and services in order to remain competitive; \u2022The impact of our global operations and any <span style='color:red;text-decoration:line-through;'>future</span> expansion <span style='color:red;text-decoration:line-through;'>on management</span> and our exposure to additional issues from our increased global footprint; \u2022Failure to comply with laws, rules or regulations; changes to current laws, rules or regulations; or the introduction of new laws, rules or regulations relevant to our business; <span style='color:red;text-decoration:line-through;'>\u2022Our inability</span> <span style='color:green;'>\u2022Inability</span> to protect our intellectual property rights; \u2022Failure to attract, develop or retain qualified personnel; \u2022The impact of foreign currency exchange rate fluctuation; \u2022The impact of our indebtedness on our financial flexibility; \u2022The impact of changes in our credit ratings; and \u2022Our exposure to tax liabilities in various jurisdictions.</div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "MSCI Inc."}, {"html": "<div class=\"report-card\">      <h3>MSCI Inc. <span class=\"symbol\">(MSCI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1408198/000140819825000053/msci-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1408198/000140819824000030/msci-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our use of AI will require additional resources and costs to develop and maintain products, comply with emerging regulations, address ethical and reputational considerations, and manage technical, operational and competitive risks.</span> Our competitors or other third parties may incorporate AI into their products and operations more quickly or more successfully than us, which could impair our ability to compete effectively.</div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "MSCI Inc."}, {"html": "<div class=\"report-card\">      <h3>MSCI Inc. <span class=\"symbol\">(MSCI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span><span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1408198/000140819825000053/msci-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1408198/000140819824000030/msci-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The use of third-party AI by our employees, contractors or partners could also result in the inadvertent disclosure of confidential or personal information, risking our intellectual property rights, competitive position and reputation.</span></div>    </div>", "risks": "Data and IP Protection; Third Party", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "MSCI Inc."}, {"html": "<div class=\"report-card\">      <h3>MSCI Inc. <span class=\"symbol\">(MSCI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1408198/000140819825000053/msci-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1408198/000140819824000030/msci-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Emerging AI regulations, such as the European Union\u2019s Artificial Intelligence Act, introduce new requirements for transparency, fairness and oversight of AI systems. These regulations may directly affect our operations, including the use of AI in hiring, employee performance monitoring and client-facing applications, by requiring audits, documentation and human oversight.</span></div>    </div>", "risks": "EU AI Act", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "MSCI Inc."}, {"html": "<div class=\"report-card\">      <h3>MSCI Inc. <span class=\"symbol\">(MSCI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1408198/000140819825000053/msci-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1408198/000140819824000030/msci-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The use of AI <span style='color:red;text-decoration:line-through;'>applications</span> may also result in <span style='color:red;text-decoration:line-through;'>cyber-attacks</span> <span style='color:green;'>cyber- attacks</span> or other security <span style='color:red;text-decoration:line-through;'>incidents</span> <span style='color:green;'>incidents, including those that implicate confidential</span> or <span style='color:red;text-decoration:line-through;'>a failure to protect confidential</span> <span style='color:green;'>personal</span> information (e.g., propriety, <span style='color:red;text-decoration:line-through;'>third- party,</span> <span style='color:green;'>third-party,</span> employee or client information).</div>    </div>", "risks": "Data and IP Protection", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "MSCI Inc."}, {"html": "<div class=\"report-card\">      <h3>MSCI Inc. <span class=\"symbol\">(MSCI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1408198/000140819825000053/msci-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1408198/000140819824000030/msci-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Additionally, <span style='color:green;'>the models underlying our use of AI technologies may be incorrectly or inadequately designed or implemented. Further,</span> if the content, analyses, or recommendations <span style='color:red;text-decoration:line-through;'>that</span> <span style='color:green;'>produced by</span> AI <span style='color:red;text-decoration:line-through;'>applications assist in producing are</span> <span style='color:green;'>are,</span> or are <span style='color:red;text-decoration:line-through;'>alleged</span> <span style='color:green;'>perceived</span> to be <span style='color:red;text-decoration:line-through;'>deficient, inaccurate</span> <span style='color:green;'>biased, inaccurate, misleading, poor-quality, unethical</span> or <span style='color:red;text-decoration:line-through;'>biased,</span> <span style='color:green;'>otherwise deficient or flawed,</span> any of which may not be easily detectable, our business may be adversely affected.</div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "MSCI Inc."}, {"html": "<div class=\"report-card\">      <h3>MSCI Inc. <span class=\"symbol\">(MSCI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1408198/000140819825000053/msci-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1408198/000140819824000030/msci-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>There are significant and evolving risks involved in utilizing AI, and there is no assurance that our usage of AI will help our products and operations become more effective, efficient or profitable, or otherwise achieve our intended outcomes.</span></div>    </div>", "risks": "Disillusionment", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "MSCI Inc."}, {"html": "<div class=\"report-card\">      <h3>Nasdaq, Inc. <span class=\"symbol\">(NDAQ)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1120193/000112019325000008/ndaq-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1120193/000112019324000006/ndaq-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Foreign governments may seek to obtain a foothold in U.S. critical infrastructure, hacktivists may seek to deploy denial of service attacks to bring attention to their cause, insiders may pose a risk of human error or malicious activity and criminal organizations may seek to profit <span style='color:green;'>by gaining control of company systems or accounts or</span> from stolen <span style='color:red;text-decoration:line-through;'>data.</span> <span style='color:green;'>data via ransomware or other means, such as social engineering, including deepfake scams, compromised business email or other methods.</span></div>    </div>", "risks": "Deepfakes; Malicious Actors", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "Nasdaq, Inc."}, {"html": "<div class=\"report-card\">      <h3>Nasdaq, Inc. <span class=\"symbol\">(NDAQ)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1120193/000112019325000008/ndaq-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1120193/000112019324000006/ndaq-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Moreover, our AI-related product initiatives and offerings, or use in our internal business operations, may give rise to risks related to harmful content, accuracy, bias, discrimination, intellectual property infringement, the ability to obtain intellectual property protection, misappropriation or <span style='color:red;text-decoration:line-through;'>leakage,</span> <span style='color:green;'>leakage of intellectual property,</span> defamation, data privacy, and cybersecurity, among others.</div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "Nasdaq, Inc."}, {"html": "<div class=\"report-card\">      <h3>NetApp <span class=\"symbol\">(NTAP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Hardware, Storage & Peripherals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Skills'>Skills</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1002047/000095017024071327/ntap-20240426.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1002047/000095017023027948/ntap-20230428.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Because our future success is dependent on our ability to continue to enhance and introduce new products and features, we are particularly dependent on our ability to hire and retain qualified <span style='color:red;text-decoration:line-through;'>engineers,</span> <span style='color:green;'>engineers and technical talent,</span> including in emerging areas of technology such as <span style='color:red;text-decoration:line-through;'>artificial intelligence</span> <span style='color:green;'>AI</span> and machine learning.</div>    </div>", "risks": "Skills", "sector": "Information Technology", "sub": "Technology Hardware, Storage & Peripherals", "company": "NetApp"}, {"html": "<div class=\"report-card\">      <h3>NetApp <span class=\"symbol\">(NTAP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Hardware, Storage & Peripherals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1002047/000095017024071327/ntap-20240426.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1002047/000095017023027948/ntap-20230428.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">We compete with many companies in the markets we serve, including established public companies, newer public companies with a strong flash focus, and new market entrants addressing the <span style='color:red;text-decoration:line-through;'>growing</span> opportunity for <span style='color:green;'>GenAI and</span> application data management for <span style='color:red;text-decoration:line-through;'>Kubernetes and cloud operations.</span> <span style='color:green;'>Kubernetes.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Technology Hardware, Storage & Peripherals", "company": "NetApp"}, {"html": "<div class=\"report-card\">      <h3>NetApp <span class=\"symbol\">(NTAP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Hardware, Storage & Peripherals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1002047/000095017024071327/ntap-20240426.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1002047/000095017023027948/ntap-20230428.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI algorithms and training methodologies may be flawed, and AI technologies are complex and rapidly evolving. We face significant competition in the market and from other companies regarding such technologies.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Technology Hardware, Storage & Peripherals", "company": "NetApp"}, {"html": "<div class=\"report-card\">      <h3>NetApp <span class=\"symbol\">(NTAP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Hardware, Storage & Peripherals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1002047/000095017024071327/ntap-20240426.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1002047/000095017023027948/ntap-20230428.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, the Artificial Intelligence Act, recently adopted by the EU, sets forth new AI risk categorization, obligations, and prohibitions.</span></div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Technology Hardware, Storage & Peripherals", "company": "NetApp"}, {"html": "<div class=\"report-card\">      <h3>Netflix <span class=\"symbol\">(NFLX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Movies & Entertainment</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1065280/000106528025000044/nflx-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1065280/000106528024000030/nflx-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The addition of new features or upgrades also increases our exposure to vulnerabilities, and generative artificial intelligence could intensify these cybersecurity risks.</span></div>    </div>", "risks": "", "sector": "Communication Services", "sub": "Movies & Entertainment", "company": "Netflix"}, {"html": "<div class=\"report-card\">      <h3>Newmont <span class=\"symbol\">(NEM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Gold</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span><span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1164727/000116472725000011/nem-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1164727/000116472724000016/nem-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>While AI has the potential to improve efficiency and safety, it also presents unique vulnerabilities, including algorithmic biases that could lead to inaccurate decisions or unintended outcomes; data integrity risks, such as manipulation or corruption of datasets used to train AI systems; unauthorized access or exploitation of AI-powered systems, potentially compromising operations or sensitive data.</span></div>    </div>", "risks": "Bias; Data and IP Protection", "sector": "Materials", "sub": "Gold", "company": "Newmont"}, {"html": "<div class=\"report-card\">      <h3>News Corp <span class=\"symbol\">(NWSA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Publishing</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1564708/000156470824000408/nws-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1564708/000156470823000368/nws-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">For example, <span style='color:green;'>the use of</span> generative AI <span style='color:green;'>technology powered by models</span> that <span style='color:red;text-decoration:line-through;'>has</span> <span style='color:green;'>have</span> been trained <span style='color:green;'>or grounded</span> on the Company\u2019s content or <span style='color:red;text-decoration:line-through;'>is</span> <span style='color:green;'>are</span> able to produce output that contains, is similar to or is based on the Company\u2019s content without <span style='color:green;'>permission,</span> attribution or compensation, may reduce <span style='color:red;text-decoration:line-through;'>traffic to</span> <span style='color:green;'>audience size and subscriber demand for</span> the Company\u2019s digital <span style='color:red;text-decoration:line-through;'>properties, decrease subscriptions to its</span> products and <span style='color:red;text-decoration:line-through;'>services</span> <span style='color:green;'>services, harm existing and potential revenue streams</span> and adversely affect its <span style='color:green;'>business and</span> results of operations.</div>    </div>", "risks": "Competition", "sector": "Communication Services", "sub": "Publishing", "company": "News Corp"}, {"html": "<div class=\"report-card\">      <h3>News Corp <span class=\"symbol\">(NWSA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Publishing</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1564708/000156470824000408/nws-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1564708/000156470823000368/nws-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Some of the Company\u2019s current and potential competitors have greater resources, fewer regulatory burdens, better competitive positions in certain areas, greater operating capabilities, greater access to sources of content, data, technology (including AI) or other services or strategic relationships and/or easier access to financing, which may allow them to respond more effectively to changes in technology, consumer and customer needs and preferences and market <span style='color:red;text-decoration:line-through;'>conditions.</span> <span style='color:green;'>conditions, including by developing new or enhanced products and services or leveraging new technologies, including generative AI, more quickly or successfully than the Company.</span></div>    </div>", "risks": "Competition", "sector": "Communication Services", "sub": "Publishing", "company": "News Corp"}, {"html": "<div class=\"report-card\">      <h3>News Corp <span class=\"symbol\">(NWS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Publishing</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1564708/000156470824000408/nws-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1564708/000156470823000368/nws-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Some of the Company\u2019s current and potential competitors have greater resources, fewer regulatory burdens, better competitive positions in certain areas, greater operating capabilities, greater access to sources of content, data, technology (including AI) or other services or strategic relationships and/or easier access to financing, which may allow them to respond more effectively to changes in technology, consumer and customer needs and preferences and market <span style='color:red;text-decoration:line-through;'>conditions.</span> <span style='color:green;'>conditions, including by developing new or enhanced products and services or leveraging new technologies, including generative AI, more quickly or successfully than the Company.</span></div>    </div>", "risks": "Competition", "sector": "Communication Services", "sub": "Publishing", "company": "News Corp"}, {"html": "<div class=\"report-card\">      <h3>News Corp <span class=\"symbol\">(NWSA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Publishing</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1564708/000156470824000408/nws-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1564708/000156470823000368/nws-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">This competition continues to intensify as a result of changes in technologies, <span style='color:green;'>including developments in generative AI,</span> platforms and business models and corresponding changes in consumer and customer behavior.</div>    </div>", "risks": "Competition", "sector": "Communication Services", "sub": "Publishing", "company": "News Corp"}, {"html": "<div class=\"report-card\">      <h3>News Corp <span class=\"symbol\">(NWS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Publishing</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1564708/000156470824000408/nws-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1564708/000156470823000368/nws-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">This competition continues to intensify as a result of changes in technologies, <span style='color:green;'>including developments in generative AI,</span> platforms and business models and corresponding changes in consumer and customer behavior.</div>    </div>", "risks": "Competition", "sector": "Communication Services", "sub": "Publishing", "company": "News Corp"}, {"html": "<div class=\"report-card\">      <h3>News Corp <span class=\"symbol\">(NWS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Publishing</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1564708/000156470824000408/nws-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1564708/000156470823000368/nws-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">In recent years, there has been a significant rise in the number of <span style='color:red;text-decoration:line-through;'>cyberattacks on companies\u2019 network and information systems,</span> <span style='color:green;'>cyberattacks,</span> and such attacks are becoming increasingly more sophisticated, targeted and difficult to detect and prevent <span style='color:red;text-decoration:line-through;'>against.</span> <span style='color:green;'>against, particularly with the use of generative AI.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Communication Services", "sub": "Publishing", "company": "News Corp"}, {"html": "<div class=\"report-card\">      <h3>News Corp <span class=\"symbol\">(NWSA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Publishing</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1564708/000156470824000408/nws-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1564708/000156470823000368/nws-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Protection of the Company\u2019s intellectual property rights is dependent on the scope and duration of its rights as defined by applicable laws in the U.S. and abroad, and if those laws are drafted or interpreted in ways that limit the extent or duration of the Company\u2019s rights, <span style='color:green;'>including in relation to unauthorized use of the Company\u2019s content by generative AI developers,</span> or if existing laws are changed or not effectively enforced, the Company\u2019s ability to generate revenue from its intellectual property may decrease, or the cost of obtaining and maintaining rights may increase.</div>    </div>", "risks": "Data and IP Protection", "sector": "Communication Services", "sub": "Publishing", "company": "News Corp"}, {"html": "<div class=\"report-card\">      <h3>News Corp <span class=\"symbol\">(NWS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Publishing</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1564708/000156470824000408/nws-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1564708/000156470823000368/nws-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, the Company could be adversely impacted if generative AI tools misattribute incorrect information to the Company or if the Company\u2019s use of generative AI in its own products and services produces content, information, analyses or recommendations that are alleged to be deficient, inaccurate, biased, harmful, discriminatory or infringing, violate privacy rights or otherwise be problematic.</span></div>    </div>", "risks": "Bias", "sector": "Communication Services", "sub": "Publishing", "company": "News Corp"}, {"html": "<div class=\"report-card\">      <h3>News Corp <span class=\"symbol\">(NWSA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Publishing</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1564708/000156470824000408/nws-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1564708/000156470823000368/nws-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, the Company could be adversely impacted if generative AI tools misattribute incorrect information to the Company or if the Company\u2019s use of generative AI in its own products and services produces content, information, analyses or recommendations that are alleged to be deficient, inaccurate, biased, harmful, discriminatory or infringing, violate privacy rights or otherwise be problematic.</span></div>    </div>", "risks": "Bias", "sector": "Communication Services", "sub": "Publishing", "company": "News Corp"}, {"html": "<div class=\"report-card\">      <h3>Nike, Inc. <span class=\"symbol\">(NKE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Apparel, Accessories & Luxury Goods</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/320187/000032018724000044/nke-20240531.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/320187/000032018723000039/nke-20230531.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Given the increasing complexity and sophistication of techniques used by bad actors to obtain unauthorized access to or disable information technology systems, and the fact that cyber-attacks are being made by groups and individuals with a wide range of expertise and motives, it is increasingly difficult to anticipate and defend against cyber-attacks, and a cyberattack could occur and persist for an extended period of time before being detected. Moreover, the extent of a particular cyber incident and the steps that we may need to take to investigate the incident may not be immediately clear, and it may take a significant amount of time before such investigation can be finalized and completed and reliable information about the incident is known. During the pendency of any such investigation, we may not necessarily know the extent of the harm or how best to remediate it and we may be required to disclose incidents before their full extent is known. Moreover, to the extent we integrate artificial intelligence (\"AI\") into our operations, this may increase the cybersecurity and privacy risks, including the risk of unauthorized or misuse of AI tools, we are exposed to, and threat actors may leverage AI to engage in automated, targeted and coordinated attacks of our systems.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Discretionary", "sub": "Apparel, Accessories & Luxury Goods", "company": "Nike, Inc."}, {"html": "<div class=\"report-card\">      <h3>Norfolk Southern <span class=\"symbol\">(NSC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Rail Transportation</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/702165/000070216525000008/nsc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/702165/000070216524000005/nsc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The rapid evolution and increased adoption of emerging technologies, such as artificial intelligence and machine learning, may make it more difficult to anticipate cybersecurity threats and implement adequate protective countermeasures. If we fail to adequately develop or maintain our information or operational technology systems or cybersecurity infrastructure, we may become increasingly vulnerable to cybersecurity events, or other breaches or disruptions to our information or operational technology systems.</span></div>    </div>", "risks": "", "sector": "Industrials", "sub": "Rail Transportation", "company": "Norfolk Southern"}, {"html": "<div class=\"report-card\">      <h3>Northern Trust <span class=\"symbol\">(NTRS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/73124/000007312425000105/ntrs-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/73124/000007312424000073/ntrs-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, generative AI has been known to produce false or \u201challucinatory\u201d inferences or output, and certain generative AI uses machine learning and predictive analytics, which can create inaccurate, incomplete, or misleading content, unintended biases, and other discriminatory or unexpected results, errors or inadequacies, any of which may not be easily detectable.</span></div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "Northern Trust"}, {"html": "<div class=\"report-card\">      <h3>Northern Trust <span class=\"symbol\">(NTRS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/73124/000007312425000105/ntrs-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/73124/000007312424000073/ntrs-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, our competitors or other third parties may incorporate AI into their products more quickly or more successfully than us, which could impair our ability to compete effectively.</span></div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "Northern Trust"}, {"html": "<div class=\"report-card\">      <h3>Northrop Grumman <span class=\"symbol\">(NOC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Aerospace & Defense</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1133421/000113342125000006/noc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1133421/000113342124000006/noc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, the sophistication, availability and use of artificial intelligence by threat actors present an increased level of risk.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Industrials", "sub": "Aerospace & Defense", "company": "Northrop Grumman"}, {"html": "<div class=\"report-card\">      <h3>Norwegian Cruise Line Holdings <span class=\"symbol\">(NCLH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1513761/000155837025001743/nclh-20241231x10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1513761/000155837024001935/nclh-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We may also fail to adopt AI technologies at an appropriate pace, which could put us at a competitive disadvantage.</span></div>    </div>", "risks": "Competition", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Norwegian Cruise Line Holdings"}, {"html": "<div class=\"report-card\">      <h3>Norwegian Cruise Line Holdings <span class=\"symbol\">(NCLH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Hotels, Resorts & Cruise Lines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span><span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1513761/000155837025001743/nclh-20241231x10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1513761/000155837024001935/nclh-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Specifically, using AI technologies may lead to accuracy issues, security vulnerabilities, or biases, among other things, which may compromise data security, intellectual property, or client information, and adversely impact our reputation, business, financial condition and results of operations.</span></div>    </div>", "risks": "Bias; Data and IP Protection", "sector": "Consumer Discretionary", "sub": "Hotels, Resorts & Cruise Lines", "company": "Norwegian Cruise Line Holdings"}, {"html": "<div class=\"report-card\">      <h3>NRG Energy <span class=\"symbol\">(NRG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Independent Power Producers & Energy Traders</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Energy'>Energy</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1013871/000101387125000006/nrg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1013871/000101387124000005/nrg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The Company\u2019s expectations regarding load growth may not materialize. The electricity industry is expected to experience a surge in demand driven primarily by new manufacturing, industrial and data center facilities (inclusive of generative AI (\u201cGenAI\u201d)). The U.S. Energy Information Administration's 2023 Annual Energy Outlook, combined with external forecasts, shows the potential for 500 TWh of incremental load across the U.S. through 2030, as compared to 2023. ERCOT's current long term load forecast shows peak demand increasing from 86 GW in 2024 to 137 GW in 2028. However, there is no assurance that these forecasts will be accurate or that the anticipated load growth will occur as projected. Factors such as evolving technology, improvements in energy efficiency, changes in economic conditions, shifts in government policy or regulation, and project delays or cancellations by the Company\u2019s commercial and industrial consumers (including data center facilities) could reduce or slow demand for electricity relative to current expectations. The Company\u2019s capital expenditures and other investments are influenced by projected demand; if the anticipated load growth fails to materialize, the Company could incur additional expenses to terminate or redeploy any underutilized assets or infrastructure, or it may be unable to fully recover its capital expenditures or realize the expected returns on its investments.</span></div>    </div>", "risks": "Energy", "sector": "Utilities", "sub": "Independent Power Producers & Energy Traders", "company": "NRG Energy"}, {"html": "<div class=\"report-card\">      <h3>NRG Energy <span class=\"symbol\">(NRG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Independent Power Producers & Energy Traders</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1013871/000101387125000006/nrg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1013871/000101387124000005/nrg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, the rapid advancement and integration of AI and machine learning technologies present new and evolving risks. These technologies can be exploited by malicious actors to enhance the sophistication and scale of cyberattacks, making it more challenging to detect and mitigate such threats.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Utilities", "sub": "Independent Power Producers & Energy Traders", "company": "NRG Energy"}, {"html": "<div class=\"report-card\">      <h3>NRG Energy <span class=\"symbol\">(NRG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Independent Power Producers & Energy Traders</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1013871/000101387125000006/nrg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1013871/000101387124000005/nrg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Due to its non-deterministic nature, GenAI technologies can create accuracy issues, unintended biases and discriminatory outcomes, or may create content that appears correct but is actually inaccurate or flawed.</span></div>    </div>", "risks": "Bias", "sector": "Utilities", "sub": "Independent Power Producers & Energy Traders", "company": "NRG Energy"}, {"html": "<div class=\"report-card\">      <h3>Nvidia <span class=\"symbol\">(NVDA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1045810/000104581025000023/nvda-20250126.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1045810/000104581024000029/nvda-20240128.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The AI Diffusion IFR would encourage our customers to invest in alternatives that are not affected by USG regulations, including foreign competition.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Semiconductors", "company": "Nvidia"}, {"html": "<div class=\"report-card\">      <h3>Nvidia <span class=\"symbol\">(NVDA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Export Controls'>Export Controls</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1045810/000104581025000023/nvda-20250126.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1045810/000104581024000029/nvda-20240128.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Concerns regarding third-party use of AI for purposes contrary to local governmental interests, including concerns relating to the misuse of AI applications, models, and solutions, has resulted in and could in the future result in unilateral or multilateral restrictions on products that can be used for training, modifying, tuning, and deploying <span style='color:red;text-decoration:line-through;'>LLMs.</span> <span style='color:green;'>LLMs and other AI applications.</span></div>    </div>", "risks": "Export Controls", "sector": "Information Technology", "sub": "Semiconductors", "company": "Nvidia"}, {"html": "<div class=\"report-card\">      <h3>Nvidia <span class=\"symbol\">(NVDA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Export Controls'>Export Controls</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1045810/000104581025000023/nvda-20250126.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1045810/000104581024000029/nvda-20240128.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We are subject to laws and regulations domestically and worldwide, affecting our operations in areas including, but not limited to, IP ownership and infringement; taxes; import and export requirements and tariffs; anti-corruption, including the Foreign Corrupt Practices Act; business acquisitions; foreign exchange controls and cash repatriation restrictions; <span style='color:green;'>foreign ownership and investment;</span> data privacy requirements; competition and antitrust; advertising; employment; product regulations; cybersecurity; environmental, health, and safety requirements; the responsible use of AI; sustainability; cryptocurrency; and consumer laws. Compliance with such requirements can be onerous and expensive, could impact our competitive position, and may negatively impact our business operations and ability to manufacture and ship our products. There can be no assurance that our employees, contractors, suppliers, customers or agents will not violate applicable laws or the policies, controls, and procedures that we have designed to help ensure compliance with such laws, and violations could result in fines, criminal sanctions against us, our officers, or our employees, prohibitions on the conduct of our business, and damage to our reputation. Changes to the laws, rules and regulations to which we are subject, or changes to their interpretation and enforcement, could lead to materially greater compliance and other <span style='color:red;text-decoration:line-through;'>costs</span> <span style='color:green;'>costs,</span> and/or further restrictions on our ability to manufacture and supply our products and operate our business. For example, we may face increased compliance costs as a result of changes or increases in antitrust legislation, regulation, administrative rule making, increased focus from regulators on cybersecurity vulnerabilities and risks. Our position in markets relating to AI has led to increased interest in our business from regulators worldwide, including the European Union, the United States, the United <span style='color:red;text-decoration:line-through;'>Kingdom</span> <span style='color:green;'>Kingdom, South Korea</span> and China. For example, the French Competition Authority collected information from us regarding our business and competition in the graphics card and cloud service provider market as part of an ongoing inquiry into competition in those markets. We have also <span style='color:red;text-decoration:line-through;'>received</span> <span style='color:green;'>received, and continue to receive, broad</span> requests for information from <span style='color:green;'>competition</span> regulators in the European Union, the United <span style='color:green;'>States, the United</span> Kingdom, <span style='color:red;text-decoration:line-through;'>and China</span> <span style='color:green;'>China, and South Korea</span> regarding our sales of <span style='color:red;text-decoration:line-through;'>GPUs,</span> <span style='color:green;'>GPUs and other NVIDIA products,</span> our efforts to allocate supply, foundation models and our investments, partnerships and other agreements with companies developing foundation models, <span style='color:red;text-decoration:line-through;'>and</span> <span style='color:green;'>the markets in which</span> we <span style='color:green;'>compete and our competition, our strategies, roadmaps, and efforts to develop, market, and sell hardware, software, and system solutions, and our agreements with customers, suppliers, and partners. We</span> expect to receive additional requests for information in the future. <span style='color:green;'>Such requests may be expensive and burdensome and could negatively impact our business and our relationships with customers, suppliers, and partners.</span> Governments and regulators are <span style='color:red;text-decoration:line-through;'>considering imposing</span> <span style='color:green;'>also considering, and in certain cases, have imposed</span> restrictions on the hardware, software, and systems used to develop frontier foundation models and generative AI. <span style='color:red;text-decoration:line-through;'>If</span> <span style='color:green;'>For example, the EU AI Act became effective on August 1, 2024 and will be fully applicable after a two-year transitional period. The EU AI Act may impact our ability to train, deploy, or release AI models in the EU. Several states are considering enacting or have already enacted regulations concerning AI technologies, which may impact our ability to train, deploy, or release AI models, and increase our compliance costs. Restrictions under these and any other regulations, if</span> implemented, <span style='color:red;text-decoration:line-through;'>such restrictions</span> could increase the costs and burdens to us and our customers, delay or halt deployment of new systems using our products, and reduce the number of new entrants and customers, negatively impacting our business and financial results. Revisions to laws or regulations or their interpretation and enforcement could also result in increased taxation, trade sanctions, the imposition of or increase to import duties or tariffs, restrictions and controls on imports or exports, or other retaliatory actions, which could have an adverse effect on our business plans or impact the timing of our shipments. Additionally, changes in the public perception of governments in the regions where we operate or plan to operate could negatively impact our business and results of operations. Government actions, including trade protection and national and economic security policies of U.S. and foreign government bodies, such as tariffs, import or export regulations, including deemed export restrictions and restrictions on the activities of U.S. persons, trade and economic sanctions, decrees, quotas or other trade barriers and restrictions could affect our ability to ship products, provide services to our customers and employees, do business without an export license with entities on the U.S. Department of Commerce\u2019s U.S. Entity List or other USG restricted parties lists (which is expected to change from time to time), and generally fulfill our contractual obligations and have a material adverse effect on our business. If we were ever found to have violated export control laws or sanctions of the U.S. or similar applicable non-U.S. laws, even if the violation occurred without our knowledge, we may be subject to various penalties available under the laws, any of which could have a material and adverse impact on our business, operating results and financial condition. For example, in response to the war in Ukraine, the United States and other jurisdictions imposed economic sanctions and export control measures which blocked the passage of our products, services and support into Russia, Belarus, and certain regions of Ukraine. In fiscal year 2023, we stopped direct sales to Russia and closed business operations in Russia. Concurrently, the war in Ukraine has impacted sales in EMEA and may continue to do so in the future. The increasing focus on the risks and strategic importance of AI technologies has resulted in regulatory restrictions that target products and services capable of enabling or facilitating AI and may in the future result in additional restrictions impacting some or all of our product and service offerings. Concerns regarding third-party use of AI for purposes contrary to local governmental interests, including concerns relating to the misuse of AI applications, models, and solutions, has resulted in and could in the future result in unilateral or multilateral restrictions on products that can be used for training, modifying, tuning, and deploying <span style='color:red;text-decoration:line-through;'>LLMs.</span> <span style='color:green;'>LLMs and other AI applications.</span> Such restrictions have limited and could in the future limit the ability of downstream customers and users worldwide to acquire, deploy and use systems that include our products, software, and services, and negatively impact our business and financial results. Such restrictions could include additional unilateral or multilateral export controls on certain products or technology, including but not limited to AI technologies. As geopolitical tensions have increased, semiconductors associated with AI, including GPUs and <span style='color:red;text-decoration:line-through;'>associated</span> <span style='color:green;'>related</span> products, are increasingly the focus of export control restrictions proposed by stakeholders in the U.S. and its allies. The United States has imposed unilateral <span style='color:green;'>worldwide</span> controls restricting GPUs and associated products, and it is likely that additional unilateral or multilateral controls will be adopted. Such controls have been and may again be very broad in scope and application, prohibit us from exporting our products to any or all customers in one or more markets, including but not limited to <span style='color:red;text-decoration:line-through;'>China,</span> <span style='color:green;'>China and over 150 countries designated \u201cTier 2\u201d by the January 2025 AI Diffusion IFR,</span> and could negatively impact our manufacturing, testing and warehousing locations and options, or could impose other conditions that limit our ability to serve demand abroad and could negatively and materially impact our business, revenue and financial results. Export controls targeting GPUs and semiconductors associated with AI, which have been imposed and are increasingly likely to be further tightened, would further restrict our ability to export our technology, products, or services even though competitors may not be subject to similar restrictions, creating a competitive disadvantage for us and negatively impacting our business and financial results. Export controls targeting GPUs and semiconductors associated with AI have subjected and may in the future subject downstream users of our products to additional restrictions on the use, resale, repair, or transfer of our products, negatively impacting our business and financial results. Controls could negatively impact our cost and/or ability to provide services such as NVIDIA AI cloud services and could impact the cost and/or ability for our <span style='color:red;text-decoration:line-through;'>cloud service providers</span> <span style='color:green;'>CSPs</span> and customers to provide services to their end customers, even outside China. Export controls could disrupt our supply chain and distribution channels, negatively impacting our ability to serve demand, including in markets outside China and for our gaming products. The possibility of additional export controls has negatively impacted and may in the future negatively impact demand for our products, benefiting competitors that offer alternatives less likely to be restricted by further controls. Repeated changes in the export control rules are likely to impose compliance burdens on our business and our customers, negatively and materially impacting our business. Increasing use of economic sanctions and export controls has impacted and may in the future impact demand for our products or services, negatively impacting our business and financial results. Reduced demand due to export controls could also lead to excess inventory or cause us to incur related supply charges. Additional unilateral or multilateral controls are also likely to include deemed export control limitations that negatively impact the ability of our research and development teams to execute our roadmap or other objectives in a timely manner. Additional export restrictions may not only impact our ability to serve overseas markets, but also provoke responses from foreign governments, including China, that negatively impact our supply chain or our ability to provide our products and services to customers in all markets worldwide, which could also substantially reduce our revenue. Regulators in China have inquired about our sales and efforts to supply the China market and our fulfillment of the commitments we entered at the close of our Mellanox acquisition. <span style='color:green;'>For example, regulators in China are investigating whether complying with applicable U.S. export controls discriminates unfairly against customers in the China market.</span> If <span style='color:red;text-decoration:line-through;'>the</span> regulators conclude that we have failed to fulfill such commitments or we have violated any applicable law in China, we could be subject to <span style='color:red;text-decoration:line-through;'>various penalties or</span> <span style='color:green;'>financial penalties,</span> restrictions on our ability to conduct our business, <span style='color:green;'>restrictions regarding our networking products and services, or otherwise impact our operations in China,</span> any of which could have a material and adverse impact on our business, operating results and financial condition. <span style='color:green;'>Over the past three years, we have been subject to a series of shifting and expanding export control restrictions, impacting our ability to serve customers outside the United States.</span> During the third quarter of fiscal year 2023, the USG announced export restrictions and export licensing requirements targeting China\u2019s semiconductor and supercomputing industries. These restrictions impact exports of certain chips, as well as software, hardware, equipment and technology used to develop, produce and manufacture certain chips to China (including Hong Kong and Macau) and Russia, and specifically impact our A100 and H100 integrated circuits, DGX or any other systems or boards which incorporate A100 or H100 integrated circuits. The licensing requirements also apply to any future NVIDIA integrated circuit achieving certain peak performance and chip-to-chip I/O performance thresholds, as well as any system or board that includes those circuits. There are also now licensing requirements to export a wide array of products, including networking products, destined for certain end users and for certain end uses in China. During the second quarter of fiscal year 2024, the USG also informed us of an additional licensing requirement for a subset of A100 and H100 products destined to certain customers and other regions, including some countries in the Middle East. In October 2023, the USG announced new and updated licensing requirements that became effective in our fourth quarter of fiscal year 2024 for exports to China and Country Groups D1, D4, and D5 (including but not limited to, Saudi Arabia, the United Arab Emirates, and Vietnam, but excluding Israel) of our products exceeding certain performance thresholds, <span style='color:red;text-decoration:line-through;'>including</span> <span style='color:green;'>including, but not limited to, the</span> A100, A800, H100, H800, L4, L40, L40S and RTX 4090. The licensing requirements also apply to the export of products exceeding certain performance thresholds to a party headquartered in, or with an ultimate parent headquartered in, Country Group D5, including China. On October 23, 2023, the USG informed us that the licensing requirements were effective immediately for shipments of our A100, A800, H100, H800, and L40S <span style='color:red;text-decoration:line-through;'>products. We</span> <span style='color:green;'>products (removing the grace period granted by the official rule). Blackwell systems, such as GB200 NVL 72 and NVL 36 as well as B200 are also subject to these requirements and therefore require a license for any shipment to certain entities and to China and Country Groups D1, D4, and D5, excluding Israel. To date, we</span> have not received licenses to ship these restricted products to China. <span style='color:green;'>On January 15, 2025, the USG published the \u201cAI Diffusion\u201d IFR in the Federal Register. After a 120-day delayed compliance period, the IFR will, unless modified, impose a worldwide licensing requirement on all products classified under Export Control Classification Numbers, or ECCNs, 3A090.a, 4A090.a, or corresponding .z ECCNs, including all related software and technology. Any system that incorporates one or more of the covered integrated circuits, or ICs, (including but not limited to NVIDIA DGX, HGX, and MGX systems) will be covered by the new licensing requirement. The licensing requirement will include future NVIDIA ICs, boards, or systems classified with ECCN 3A090.a or 4A090.a, or corresponding .z ECCNs, achieving certain total processing performance and/or performance density. Unless a license exception is available, the worldwide licensing requirements will apply to the following NVIDIA products, and any others we develop that meet the characteristics of 3A090.a or 4A090.a, including but not limited to: A100, A800, H100, H200, H800, B100, B200, GB200, L4, L40S, and RTX 6000 Ada. The AI Diffusion IFR would divide the world into three tiers, relegating most countries to \u201cTier 2\u201d status. The AI Diffusion IFR would confer special benefits on select \u201cUniversal Verified End Users\u201d, or UVEU, and lesser benefits on \u201cNational Verified End Users\u201d, or NVEU. The AI Diffusion IFR would have numerous effects that may negatively impact our long-term financial results and competitive position, including but not limited to the following. The AI Diffusion IFR would reduce the market for U.S.-designed and manufactured computing products and services, by expressly limiting exports, reexports, and transfers of covered products to Tier 2 countries and companies in Tier 1 countries that are either headquartered in Tier 2, or have an ultimate parent headquartered in a Tier 2 country. These restrictions would apply to all covered products, including products sold years ago. The AI Diffusion IFR would limit access to the market for IT services and computing infrastructure, by favoring a select number of government-approved firms that achieve UVEU status. UVEUs may choose to favor their own accelerators, platforms, and systems, rather than selecting products based on merit. The AI Diffusion IFR would encourage our customers to invest in alternatives that are not affected by USG regulations, including foreign competition. The AI Diffusion IFR would increase our and our customers\u2019 costs of doing business, creating compliance challenges and risks, and impact our supply and distribution chains, which will be subject to new compliance burdens and related extraterritorial regulatory obligations. The AI Diffusion IFR would expose U.S. providers and the U.S. industry to an enhanced risk of retaliation from other countries, in the form of tariffs, import/export controls, or other regulatory actions. The AI Diffusion IFR\u2019s licensing requirement could impact our ability to complete development of products in a timely manner, support existing customers using covered products, or supply customers with covered products outside the impacted regions, and may require us to transition certain operations out of one or more of the identified countries.</span> Following these <span style='color:green;'>2022</span> export controls, we transitioned some operations, including certain testing, validation, and supply and distribution operations out of China and Hong Kong. Any future transitions could be costly and time consuming, and adversely affect our research and development and supply and distribution operations, as well as our revenue, during any such transition period. We <span style='color:red;text-decoration:line-through;'>are working to expand</span> <span style='color:green;'>expanded</span> our Data Center product portfolio to offer new solutions, including those for which the USG does not require a license or advance notice before each shipment. To the extent that a customer requires products covered by the licensing requirements, we may seek a license for the customer. However, the licensing process is time-consuming. We have no assurance that the USG will grant such a license or that the USG will act on the license application in a timely manner or at all. Even if a license is <span style='color:red;text-decoration:line-through;'>offered,</span> <span style='color:green;'>approved,</span> it may impose burdensome conditions that we or our customer or end users cannot or decide not to accept. The USG <span style='color:red;text-decoration:line-through;'>is evaluating</span> <span style='color:green;'>evaluates</span> license requests in a closed process that does not have clear standards or an opportunity for review. For example, the Notified Advanced Computing, or \u201cNAC,\u201d process has not resulted in approvals for exports of products to customers in China. The license process for exports to D1 and D4 countries has been time-consuming and resulted in license conditions <span style='color:green;'>that are onerous, even</span> for <span style='color:red;text-decoration:line-through;'>countries outside China.</span> <span style='color:green;'>small-sized systems that are not able to train frontier AI models.</span> The requirements have a disproportionate impact on NVIDIA and already have disadvantaged and may in the future disadvantage NVIDIA against certain of our competitors who sell products that are not subject to the new restrictions or may be able to acquire licenses for their products. <span style='color:red;text-decoration:line-through;'>Management of these new licenses and other requirements is complicated and time consuming.</span> Our competitive position has been <span style='color:red;text-decoration:line-through;'>harmed,</span> <span style='color:green;'>harmed by the existing export controls,</span> and our competitive position and future results may be further harmed, over the <span style='color:red;text-decoration:line-through;'>long-term,</span> <span style='color:green;'>long term,</span> if there are further changes in the USG\u2019s export controls, including further expansion of the geographic, customer, or product scope of the controls, if customers purchase product from competitors, if customers develop their own internal solution, if we are unable to provide contractual warranty or other extended service obligations, if the USG does not grant licenses in a timely manner or denies licenses to significant customers or if we incur significant transition costs. Even if the USG grants any requested licenses, the licenses may be temporary or impose burdensome conditions that we or our customers or end users cannot or choose not to fulfill. The licensing requirements may benefit certain of our competitors, as the licensing process will make our pre-sale and post-sale technical support efforts more cumbersome and less certain and encourage customers in China to pursue alternatives to our products, including semiconductor suppliers based in China, Europe, and Israel. Given the increasing strategic importance of AI and rising geopolitical tensions, the USG has changed and may again change the export control rules at any time and further subject a wider range of our products to export restrictions and licensing requirements, negatively impacting our business and financial results. In the event of such change, we may be unable to sell our inventory of such products and may be unable to develop replacement products not subject to the licensing requirements, effectively excluding us from all or part of the China market, as well as other impacted markets, including the Middle <span style='color:red;text-decoration:line-through;'>East.</span> <span style='color:green;'>East and countries designated \u201cTier 2\u201d by the AI Diffusion IFR.</span> For example, the USG has already imposed conditions to limit the ability of foreign firms to create and offer as a service large-scale GPU clusters, for example by imposing license conditions on the use of products to be exported to certain countries, <span style='color:red;text-decoration:line-through;'>or by</span> <span style='color:green;'>and may impose additional conditions such as</span> requiring chip tracking and throttling mechanisms that <span style='color:red;text-decoration:line-through;'>would</span> <span style='color:green;'>could</span> disable or impair GPUs if certain <span style='color:green;'>events, including unauthorized</span> system <span style='color:red;text-decoration:line-through;'>or use conditions</span> <span style='color:green;'>configuration, use, or location,</span> are detected. The USG has already imposed export controls restricting certain gaming GPUs, and if the USG expands such controls to restrict additional gaming products, it may disrupt a significant portion of our supply and distribution chain and negatively impact sales of such products to markets outside China, including the U.S. and Europe. <span style='color:green;'>In addition, as the performance of the gaming GPUs increases over time, export controls may have a greater impact on our ability to compete in markets subject to those controls.</span> Export controls may disrupt our supply and distribution chain for a substantial portion of our products, which are warehoused in and distributed from Hong Kong. Export controls restricting our ability to sell <span style='color:red;text-decoration:line-through;'>datacenter</span> <span style='color:green;'>data center</span> GPUs may also negatively impact demand for our networking products used in servers containing our GPUs. The USG may also impose export controls on our networking products, such as high-speed network interconnects, to limit the ability of downstream parties to create large clusters for frontier model training. Any new control that impacts a wider range of our products would likely have a disproportionate impact on NVIDIA and may disadvantage us against certain of our competitors that sell chips that are outside the scope of such control. Excessive or shifting export controls have already and may in the future encourage customers outside China and other impacted regions to \u201cdesign-out\u201d certain U.S. semiconductors from their products to reduce the compliance burden and risk, and to ensure that they are able to serve markets worldwide. Excessive or shifting export controls have already encouraged and may in the future encourage overseas governments to request that our customers purchase from our competitors rather than NVIDIA or other U.S. firms, harming our business, market position, and financial results. As a result, excessive or shifting export controls may negatively impact demand for our products and services not only in China, but also in other markets, such as Europe, Latin America, and Southeast Asia. Excessive or shifting export controls increase the risk of investing in U.S. advanced semiconductor products, because by the time a new product is ready for market, it may be subject to new unilateral export controls restricting its sale. At the same time, such controls may increase investment in foreign competitors, which would be less likely to be restricted by U.S. controls. <span style='color:green;'>If additional products are subject to worldwide licensing requirements, we may incur significant inventory provisions and excess purchase obligation charges. In addition to export controls, the USG may impose restrictions on the import and sale of products that incorporate technologies developed or manufactured in whole or in part in China. For example, the USG is considering restrictions on the import and sale of certain automotive products in the United States, which if adopted and interpreted broadly, could impact our ability to develop and supply solutions for our automotive customers.</span> Additionally, restrictions imposed by the Chinese government on the duration of gaming activities and access to games may adversely affect our Gaming revenue, and increased oversight of digital platform companies may adversely affect our Data Center revenue. The Chinese government may <span style='color:green;'>also encourage customers to purchase from our China-based competitors, or</span> impose restrictions on the sale to certain customers of our products, or any products containing components made by our partners and suppliers. For example, the Chinese government announced restrictions relating to certain sales of products containing certain products made by Micron, a supplier of ours. <span style='color:green;'>As another example, an agency of the Chinese government announced an Action Plan that endorses new standards regarding the compute performance per watt and per memory bandwidth of accelerators used in new and renovated data centers in China. If the Chinese government modifies or implements the Action Plan in a way that effectively prevents us from being able to design products to meet the new standard, this may restrict the ability of customers to use some of our data center products and may have a material and adverse impact on our business, operating results and financial condition.</span> Further restrictions on our products or the products of our suppliers could negatively impact our business and financial results. Finally, our business depends on our ability to receive consistent and reliable supply from our overseas partners, especially in <span style='color:red;text-decoration:line-through;'>Taiwan.</span> <span style='color:green;'>Taiwan and South Korea.</span> Any new restrictions that negatively impact our ability to receive supply of components, parts, or services from <span style='color:red;text-decoration:line-through;'>Taiwan,</span> <span style='color:green;'>Taiwan and South Korea,</span> would negatively impact our business and financial results.</div>    </div>", "risks": "Export Controls", "sector": "Information Technology", "sub": "Semiconductors", "company": "Nvidia"}, {"html": "<div class=\"report-card\">      <h3>Nvidia <span class=\"symbol\">(NVDA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1045810/000104581025000023/nvda-20250126.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1045810/000104581024000029/nvda-20240128.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, the EU AI Act became effective on August 1, 2024 and will be fully applicable after a two- year transitional period. The EU AI Act may impact our ability to train, deploy, or release AI models in the EU.</span></div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Semiconductors", "company": "Nvidia"}, {"html": "<div class=\"report-card\">      <h3>Nvidia <span class=\"symbol\">(NVDA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1045810/000104581025000023/nvda-20250126.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1045810/000104581024000029/nvda-20240128.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Furthermore, the EU AI Act <span style='color:green;'>and similar legislation</span> could impose onerous obligations that may disproportionately impact and disadvantage us and require us to change our business practices.</div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Semiconductors", "company": "Nvidia"}, {"html": "<div class=\"report-card\">      <h3>Nvidia <span class=\"symbol\">(NVDA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1045810/000104581025000023/nvda-20250126.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1045810/000104581024000029/nvda-20240128.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>These datasets may be flawed, insufficient, or contain certain biased information, and may otherwise be vulnerable to security incidents.</span></div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Semiconductors", "company": "Nvidia"}, {"html": "<div class=\"report-card\">      <h3>Nvidia <span class=\"symbol\">(NVDA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1045810/000104581025000023/nvda-20250126.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1045810/000104581024000029/nvda-20240128.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>These datasets may be flawed, insufficient, or contain certain biased information, and may otherwise decrease resilience to security incidents that may compromise the integrity of our AI outputs, leading to potential reputational damage, regulatory scrutiny, or adverse impacts on the performance and reliability of our products, which could, in turn, affect our partners' operations, customer trust, and our revenue.</span></div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Semiconductors", "company": "Nvidia"}, {"html": "<div class=\"report-card\">      <h3>Nvidia <span class=\"symbol\">(NVDA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1045810/000104581025000023/nvda-20250126.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1045810/000104581024000029/nvda-20240128.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">AI software products <span style='color:green;'>that</span> we or our partners offer rely on training data that may originate from third parties and new training methods, and the resulting products may contain unknown or undetected defects and errors, or reflect unintended bias.</div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Semiconductors", "company": "Nvidia"}, {"html": "<div class=\"report-card\">      <h3>NXP Semiconductors <span class=\"symbol\">(NXPI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1413447/000141344725000019/nxpi-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1413447/000141344724000013/nxpi-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Meeting evolving industry requirements, including the increasing use of AI and machine learning <span style='color:red;text-decoration:line-through;'>technologies,</span> <span style='color:green;'>technologies (including the need to run complex AI-based applications on devices),</span> and introducing new products to the market in a timely manner and at prices that are acceptable to our customers are significant factors in determining our competitiveness and success.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Semiconductors", "company": "NXP Semiconductors"}, {"html": "<div class=\"report-card\">      <h3>NXP Semiconductors <span class=\"symbol\">(NXPI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1413447/000141344725000019/nxpi-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1413447/000141344724000013/nxpi-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, as AI continues to evolve, cyber attackers could also use AI to develop malicious code and increasingly sophisticated phishing attempts.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Semiconductors", "company": "NXP Semiconductors"}, {"html": "<div class=\"report-card\">      <h3>NXP Semiconductors <span class=\"symbol\">(NXPI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1413447/000141344725000019/nxpi-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1413447/000141344724000013/nxpi-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">(i) adverse impacts from deficient, inaccurate, or biased AI recommendations,</div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Semiconductors", "company": "NXP Semiconductors"}, {"html": "<div class=\"report-card\">      <h3>NXP Semiconductors <span class=\"symbol\">(NXPI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1413447/000141344725000019/nxpi-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1413447/000141344724000013/nxpi-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">(ii) AI technologies the company develops and adopts may <span style='color:green;'>not meet market requirements or</span> become obsolete earlier than planned, and there can be no assurance that the company will realize the desired or anticipated benefits,</div>    </div>", "risks": "Disillusionment", "sector": "Information Technology", "sub": "Semiconductors", "company": "NXP Semiconductors"}, {"html": "<div class=\"report-card\">      <h3>Occidental Petroleum <span class=\"symbol\">(OXY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Energy</span>          <span class=\"tag\">Oil & Gas Exploration & Production</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/797468/000079746825000029/oxy-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/797468/000079746824000034/oxy-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Further, as its competitors use or develop new <span style='color:red;text-decoration:line-through;'>technologies,</span> <span style='color:green;'>technologies (including with respect to their generative artificial intelligence capabilities),</span> Occidental may be placed at a competitive disadvantage, and competitive pressures may force <span style='color:red;text-decoration:line-through;'>its</span> <span style='color:green;'>it</span> to implement new technologies at a substantial cost.</div>    </div>", "risks": "Competition", "sector": "Energy", "sub": "Oil & Gas Exploration & Production", "company": "Occidental Petroleum"}, {"html": "<div class=\"report-card\">      <h3>Occidental Petroleum <span class=\"symbol\">(OXY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Energy</span>          <span class=\"tag\">Oil & Gas Exploration & Production</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/797468/000079746825000029/oxy-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/797468/000079746824000034/oxy-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Occidental faces risks associated with new and ever-increasing phishing technologies and hidden malware as well as risks associated with electronic data proliferation and technology digitization. Occidental also faces increased risk with the growing sophistication of generative artificial intelligence capabilities, which may improve or expand the existing capabilities of cybercriminals described above in a manner Occidental cannot predict at this time.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Energy", "sub": "Oil & Gas Exploration & Production", "company": "Occidental Petroleum"}, {"html": "<div class=\"report-card\">      <h3>Old Dominion <span class=\"symbol\">(ODFL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Cargo Ground Transportation</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/878927/000095017025026661/odfl-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/878927/000095017024020176/odfl-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If the content, analyses, or recommendations that AI applications assist in producing are or are alleged to be deficient, inaccurate or biased or to violate intellectual property rights of third parties, our financial condition, results of operations, liquidity and cash flows may be adversely affected.</span></div>    </div>", "risks": "Bias", "sector": "Industrials", "sub": "Cargo Ground Transportation", "company": "Old Dominion"}, {"html": "<div class=\"report-card\">      <h3>Old Dominion <span class=\"symbol\">(ODFL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Cargo Ground Transportation</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/878927/000095017025026661/odfl-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/878927/000095017024020176/odfl-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI also presents emerging ethical issues and if our use of AI becomes controversial, we may experience brand or reputational harm, competitive harm, or legal liability.</span></div>    </div>", "risks": "Competition", "sector": "Industrials", "sub": "Cargo Ground Transportation", "company": "Old Dominion"}, {"html": "<div class=\"report-card\">      <h3>Omnicom Group <span class=\"symbol\">(OMC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Advertising</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/29989/000002998925000009/omc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/29989/000002998924000007/omc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">If <span style='color:green;'>we fail to increase our capabilities in generative AI, or if</span> we are unable to successfully adapt to new developments related <span style='color:red;text-decoration:line-through;'>to, and</span> <span style='color:green;'>to the</span> risks and challenges associated with AI, <span style='color:green;'>demand for our services could be reduced, and</span> our business, results of operations and financial <span style='color:red;text-decoration:line-through;'>position</span> <span style='color:green;'>condition</span> could be negatively impacted.</div>    </div>", "risks": "", "sector": "Communication Services", "sub": "Advertising", "company": "Omnicom Group"}, {"html": "<div class=\"report-card\">      <h3>ON Semiconductor <span class=\"symbol\">(ON)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1097864/000162828025004557/on-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1097864/000162828024003201/on-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our power technologies used for AI may not capture market share as expected, and issues related to the responsible use of AI may adversely affect our business. Our extensive range of power technologies are used to help power AI and related data centers and we expect this part of our business to grow. The emergence of big data and new tools such as machine learning and AI that capitalize on the availability of large data sets is leading semiconductor manufacturers to pursue new products and approaches, and there is an intense competition to capture market share in this emerging market. We may not be able to develop and offer the technology solutions that our AI-focused customers demand in a timely manner or effectively, which could have a materially adverse effect on our business. Our failure to commercialize new technologies that can power AI and data centers in a timely manner or at all could result in loss of market share, unanticipated costs, and inventory obsolescence, which could adversely affect our financial results. As with many new emerging technologies, AI presents risks and challenges and increasing legal, social and ethical concerns relating to its responsible use that could affect the adoption of AI. Third-party misuse of AI applications, models, or solutions, or ineffective or inadequate AI development or deployment practices by our customers could cause harm to individuals or society and impair the public\u2019s acceptance of AI, which would in turn adversely affect our business.</span></div>    </div>", "risks": "", "sector": "Information Technology", "sub": "Semiconductors", "company": "ON Semiconductor"}, {"html": "<div class=\"report-card\">      <h3>ON Semiconductor <span class=\"symbol\">(ON)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1097864/000162828025004557/on-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1097864/000162828024003201/on-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The emergence of big data and new tools such as machine learning and AI that capitalize on the availability of large data sets is leading semiconductor manufacturers to pursue new products and approaches, and there is an intense competition to capture market share in this emerging market.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Semiconductors", "company": "ON Semiconductor"}, {"html": "<div class=\"report-card\">      <h3>Oracle Corporation <span class=\"symbol\">(ORCL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Skills'>Skills</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1341439/000095017024075605/orcl-20240531.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1341439/000095017023028914/orcl-20230531.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">In the technology industry, there is substantial and continuous competition for highly skilled business, product <span style='color:red;text-decoration:line-through;'>development,</span> <span style='color:green;'>development and</span> technical <span style='color:red;text-decoration:line-through;'>and other personnel.</span> <span style='color:green;'>personnel, particularly in the AI field.</span></div>    </div>", "risks": "Skills", "sector": "Information Technology", "sub": "Application Software", "company": "Oracle Corporation"}, {"html": "<div class=\"report-card\">      <h3>Oracle Corporation <span class=\"symbol\">(ORCL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span><span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1341439/000095017024075605/orcl-20240531.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1341439/000095017023028914/orcl-20230531.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We have invested, and expect to continue to invest, significant resources to build and support our AI products, and if our AI products fail to operate as anticipated or as well as competing products or otherwise do not meet customer needs or if our competitors\u2019 AI products achieve higher market acceptance than ours, we may fail to recoup our investments in AI and our business and reputation may be harmed.</span></div>    </div>", "risks": "Competition; Disillusionment", "sector": "Information Technology", "sub": "Application Software", "company": "Oracle Corporation"}, {"html": "<div class=\"report-card\">      <h3>Oracle Corporation <span class=\"symbol\">(ORCL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1341439/000095017024075605/orcl-20240531.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1341439/000095017023028914/orcl-20230531.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our AI products may not operate as anticipated, which could adversely affect our reputation, revenues and profitability.</span> Machine learning and <span style='color:red;text-decoration:line-through;'>AI</span> <span style='color:green;'>AI, including generative AI,</span> are increasingly driving innovations in technology, <span style='color:red;text-decoration:line-through;'>but if they fail to operate as anticipated or our other products do not perform as promised, our business</span> and <span style='color:red;text-decoration:line-through;'>reputation may be harmed.</span> <span style='color:green;'>AI technology and services are highly competitive and rapidly evolving.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Application Software", "company": "Oracle Corporation"}, {"html": "<div class=\"report-card\">      <h3>Oracle Corporation <span class=\"symbol\">(ORCL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1341439/000095017024075605/orcl-20240531.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1341439/000095017023028914/orcl-20230531.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Our stock price could also be affected by factors, some of which are beyond our control, including, among others: speculation in the press, social media and the analyst community; changes in recommendations or earnings related estimates by financial analysts; changes in investors\u2019 or analysts\u2019 valuation measures for our stock; negative analyst surveys or channel check surveys; earnings announcements where our financial results differ from our guidance or investors\u2019 expectations; our credit <span style='color:red;text-decoration:line-through;'>ratings</span> <span style='color:green;'>ratings; dissemination of inaccurate information or misinformation about our business and results of operations (including through the malicious use of generative AI tools);</span> and market trends unrelated to our performance.</div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Application Software", "company": "Oracle Corporation"}, {"html": "<div class=\"report-card\">      <h3>Oracle Corporation <span class=\"symbol\">(ORCL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1341439/000095017024075605/orcl-20240531.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1341439/000095017023028914/orcl-20230531.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We have invested, and expect to continue to invest, significant resources to build and support our AI products, and if our AI products fail to operate as anticipated or as well as competing products or otherwise do not meet customer needs or if our competitors\u2019 AI products achieve higher market acceptance than ours, we may fail to recoup our investments in AI and our business and reputation may be harmed. In addition, AI technologies are rapidly evolving and present emerging legal and ethical issues, including claims of bias, discrimination, a perceived lack of transparency, as well as sometimes unpredictable behaviors or improper use of copyrighted or other protected material, such as personal and patient health information, any of which could expose us or our customers to reputational or legal risk and inhibit adoption of our AI products.</span></div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Application Software", "company": "Oracle Corporation"}, {"html": "<div class=\"report-card\">      <h3>Palantir Technologies <span class=\"symbol\">(PLTR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Internet Services & Infrastructure</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1321655/000132165525000022/pltr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1321655/000132165524000022/pltr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, other companies may develop products that are similar to ours, or adopt and implement AI more successfully or at a quicker pace than us.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Internet Services & Infrastructure", "company": "Palantir Technologies"}, {"html": "<div class=\"report-card\">      <h3>Palantir Technologies <span class=\"symbol\">(PLTR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Internet Services & Infrastructure</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1321655/000132165525000022/pltr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1321655/000132165524000022/pltr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Other factors that may cause fluctuations in our quarterly results of operations and financial position include, without limitation, those listed below: \u2022the success of our sales and marketing efforts, including the success of our pilot deployments (including bootcamps); <span style='color:red;text-decoration:line-through;'>15 Table of Contents</span> \u2022our ability to increase our contribution margins; \u2022the timing of expenses and revenue <span style='color:red;text-decoration:line-through;'>recognition;</span> <span style='color:green;'>recognition, including from changes in accounting assumptions or estimates;</span> \u2022the timing and amount of payments received from our customers; \u2022termination of one or more large contracts by customers, including for convenience; \u2022the time and cost-intensive nature of our sales efforts and the length and variability of sales cycles; \u2022the amount and timing of operating expenses related to the development, maintenance, and expansion of our business and operations; \u2022the timing and effectiveness of new sales and marketing initiatives; \u2022changes in our pricing policies or those of our competitors; \u2022the timing and success of new platforms, products, features, and functionality introduced by us or our competitors; \u2022interruptions or delays in our operations and maintenance (\u201cO&amp;M\u201d) services; \u2022cyberattacks and other actual or perceived data or security breaches or incidents; \u2022our ability to hire and retain employees, in particular, those responsible for operations and maintenance of and the selling or marketing of our platforms, and develop and retain talented sales personnel who are able to achieve desired productivity levels in a reasonable period of time and provide sales leadership in areas in which we are expanding our sales and marketing efforts; \u2022the amount and timing of our stock-based compensation expenses; \u2022the amount and timing of employer payroll taxes related to stock-based compensation resulting from increases in our stock price; \u2022changes in the way we organize and compensate our employees; \u2022changes in the way we operate and maintain our platforms; \u2022unforeseen negative results in operations from our <span style='color:red;text-decoration:line-through;'>partnerships, including those accounted for under the equity method;</span> <span style='color:green;'>partnerships;</span> \u2022changes in the competitive dynamics of our industry; \u2022the cost of and potential outcomes of existing and future claims or litigation, which could have a material adverse effect on our business; \u2022changes in laws and regulations that impact our business, such as the <span style='color:red;text-decoration:line-through;'>FASA;</span> <span style='color:green;'>FASA or the European Union (\u201cEU\u201d) AI Act (\u201cEU AIA\u201d);</span> \u2022indemnification payments to our customers or other third parties; \u2022ability to scale our business with increasing demands; \u2022the timing of expenses related to any future acquisitions; and \u2022general economic, regulatory, and market conditions, including the impacts of ongoing conflicts, such as those in Russia-Ukraine and Israel, and any related economic sanctions and regional instability, heightened interest rates, monetary policy changes, or foreign currency fluctuations.</div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Internet Services & Infrastructure", "company": "Palantir Technologies"}, {"html": "<div class=\"report-card\">      <h3>Palantir Technologies <span class=\"symbol\">(PLTR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Internet Services & Infrastructure</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1321655/000132165525000022/pltr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1321655/000132165524000022/pltr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The <span style='color:red;text-decoration:line-through;'>EU has reached provisional agreement on a new regulation,</span> <span style='color:green;'>European Union Parliament adopted</span> the EU <span style='color:red;text-decoration:line-through;'>AI Act,</span> <span style='color:green;'>AIA,</span> that, when <span style='color:red;text-decoration:line-through;'>adopted, could</span> <span style='color:green;'>effective, will</span> impose onerous obligations related to the <span style='color:green;'>development,</span> sale and use of AI-related systems.</div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Internet Services & Infrastructure", "company": "Palantir Technologies"}, {"html": "<div class=\"report-card\">      <h3>Palantir Technologies <span class=\"symbol\">(PLTR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Internet Services & Infrastructure</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1321655/000132165525000022/pltr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1321655/000132165524000022/pltr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, threat actors are increasingly using tools and techniques that circumvent controls, evade detection, and remove forensic evidence, which means that we and others may be unable to anticipate, detect, deflect, contain or recover from cyberattacks in a timely or effective manner. As AI capabilities improve and are increasingly adopted, we may see cyberattacks crafted with an AI tool to attack information systems by creating more effective phishing emails or social engineering and by exploiting vulnerabilities in electronic security programs utilizing false image or voice recognition. In addition, enhanced risk of cyberattacks could be a result of us or a third party incorporating the output of an AI tool, such as malicious code from an AI generated source code.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Internet Services & Infrastructure", "company": "Palantir Technologies"}, {"html": "<div class=\"report-card\">      <h3>Palantir Technologies <span class=\"symbol\">(PLTR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Internet Services & Infrastructure</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1321655/000132165525000022/pltr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1321655/000132165524000022/pltr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Inappropriate or controversial data practices by, or practices reflecting inherent biases of, data scientists, engineers, and end-users of our systems could impair the acceptance of AI solutions.</div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Internet Services & Infrastructure", "company": "Palantir Technologies"}, {"html": "<div class=\"report-card\">      <h3>Palantir Technologies <span class=\"symbol\">(PLTR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Internet Services & Infrastructure</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1321655/000132165525000022/pltr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1321655/000132165524000022/pltr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Datasets in AI training, development, or operations may be insufficient, of poor quality, reflect unwanted forms of bias, or raise other legal concerns (such as concerns regarding copyright protections).</div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Internet Services & Infrastructure", "company": "Palantir Technologies"}, {"html": "<div class=\"report-card\">      <h3>Palantir Technologies <span class=\"symbol\">(PLTR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Internet Services & Infrastructure</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1321655/000132165525000022/pltr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1321655/000132165524000022/pltr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The rapid evolution of AI <span style='color:green;'>and its evolving regulatory landscape</span> may also require additional resources to develop, test, and maintain our platforms and products to help ensure that AI is implemented appropriately in order to minimize unintended or harmful impact, which may be costly and may not produce the benefits and results that we expect.</div>    </div>", "risks": "Disillusionment", "sector": "Information Technology", "sub": "Internet Services & Infrastructure", "company": "Palantir Technologies"}, {"html": "<div class=\"report-card\">      <h3>Palantir Technologies <span class=\"symbol\">(PLTR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Internet Services & Infrastructure</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1321655/000132165525000022/pltr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1321655/000132165524000022/pltr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>There are significant risks involved in deploying AI and there can be no assurance that using AI in our platforms and products will enhance or be beneficial to our business, including our profitability.</span></div>    </div>", "risks": "Disillusionment", "sector": "Information Technology", "sub": "Internet Services & Infrastructure", "company": "Palantir Technologies"}, {"html": "<div class=\"report-card\">      <h3>Palo Alto Networks <span class=\"symbol\">(PANW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1327567/000132756724000029/panw-20240731.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1327567/000132756723000024/panw-20230731.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">For example, AI algorithms may have flaws, and datasets used to train models may be insufficient or contain biased information.</div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Systems Software", "company": "Palo Alto Networks"}, {"html": "<div class=\"report-card\">      <h3>Palo Alto Networks <span class=\"symbol\">(PANW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1327567/000132756724000029/panw-20240731.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1327567/000132756723000024/panw-20230731.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The investments that we are making across our business in AI reflect our ongoing efforts to innovate and provide products and services that are useful to our customers, as well as provide efficiencies in our business. Such investments ultimately may not be commercially viable or may not result in an adequate return of capital and we may incur unanticipated liabilities.</span></div>    </div>", "risks": "Disillusionment", "sector": "Information Technology", "sub": "Systems Software", "company": "Palo Alto Networks"}, {"html": "<div class=\"report-card\">      <h3>Paramount Global <span class=\"symbol\">(PARA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Movies & Entertainment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/813828/000081382825000005/para-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/813828/000081382824000007/para-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, the E.U. has introduced a new regulation applicable to certain AI Technologies and the data used to train, test and deploy them (the \u201cE.U. AI Act\u201d). The E.U. AI Act entered into force in August 2024, and its requirements will become effective on a staggered basis, beginning February 2, 2025. The E.U. AI Act will impose material requirements on both the providers and deployers of AI Technologies, with infringement punishable by sanctions of up to 7% of annual worldwide turnover or \u20ac35 million (whichever is higher) for the most serious breaches. In parallel, the E.U. has proposed a new artificial intelligence liability directive that may facilitate certain claims for damages in respect of AI Technologies.</span></div>    </div>", "risks": "EU AI Act", "sector": "Communication Services", "sub": "Movies & Entertainment", "company": "Paramount Global"}, {"html": "<div class=\"report-card\">      <h3>Paramount Global <span class=\"symbol\">(PARA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Movies & Entertainment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/813828/000081382825000005/para-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/813828/000081382824000007/para-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, the rapid global advancement of artificial intelligence and machine learning technologies (\u201cAI Technologies\u201d) may also heighten our risks by making cyberattacks more difficult to detect, contain, and mitigate.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Communication Services", "sub": "Movies & Entertainment", "company": "Paramount Global"}, {"html": "<div class=\"report-card\">      <h3>Paramount Global <span class=\"symbol\">(PARA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Movies & Entertainment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/813828/000081382825000005/para-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/813828/000081382824000007/para-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The legal landscape continues to evolve with respect to the development and increased prevalence of certain new technologies, including AI Technologies. As a consequence, we face uncertainty with respect to our ability to protect our intellectual property from unauthorized use, misappropriation, and infringement utilizing such technologies, and an increased risk of being subjected to claims brought by third-party rights owners with respect thereto.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Communication Services", "sub": "Movies & Entertainment", "company": "Paramount Global"}, {"html": "<div class=\"report-card\">      <h3>Parker Hannifin <span class=\"symbol\">(PH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Industrial Machinery & Supplies & Components</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/76334/000007633424000044/ph-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/76334/000007633423000042/ph-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>There can be no guarantee that the actions and controls we have implemented and are implementing, or which we cause or have caused third- parties with access to our systems to implement, will be sufficient to protect and mitigate risks associated with our information technology systems.</span> Additionally, certain of our employees <span style='color:red;text-decoration:line-through;'>work</span> <span style='color:green;'>working</span> remotely at <span style='color:red;text-decoration:line-through;'>times, which</span> <span style='color:green;'>times and the increased adoption of generative artificial intelligence</span> may increase our vulnerability to cyber and <span style='color:red;text-decoration:line-through;'>other information technology</span> <span style='color:green;'>data protection</span> risks.</div>    </div>", "risks": "Data and IP Protection", "sector": "Industrials", "sub": "Industrial Machinery & Supplies & Components", "company": "Parker Hannifin"}, {"html": "<div class=\"report-card\">      <h3>Paychex <span class=\"symbol\">(PAYX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Human Resource & Employment Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/723531/000095017024082958/payx-20240531.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/723531/000095017023032988/payx-20230531.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">The <span style='color:red;text-decoration:line-through;'>rapid speed</span> <span style='color:green;'>increasing velocity</span> of disruptive innovations involving cyberattacks, security <span style='color:red;text-decoration:line-through;'>vulnerabilities</span> <span style='color:green;'>vulnerabilities,</span> and Internet disruptions enabled by new and emerging <span style='color:red;text-decoration:line-through;'>technologies</span> <span style='color:green;'>technologies, such as advancements in AI and machine learning,</span> may outpace our organization's ability to compete and/or manage the risk appropriately.</div>    </div>", "risks": "Malicious Actors", "sector": "Industrials", "sub": "Human Resource & Employment Services", "company": "Paychex"}, {"html": "<div class=\"report-card\">      <h3>Paychex <span class=\"symbol\">(PAYX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Human Resource & Employment Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/723531/000095017024082958/payx-20240531.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/723531/000095017023032988/payx-20230531.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Our intellectual property could be wrongfully acquired as a result of <span style='color:green;'>the use of AI tools,</span> a <span style='color:red;text-decoration:line-through;'>cyberattack</span> <span style='color:green;'>cyberattack,</span> or other wrongful conduct by employees or <span style='color:red;text-decoration:line-through;'>third-parties.</span> <span style='color:green;'>third- parties.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Industrials", "sub": "Human Resource & Employment Services", "company": "Paychex"}, {"html": "<div class=\"report-card\">      <h3>Paycom <span class=\"symbol\">(PAYC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Human Resource & Employment Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span><span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span><span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1590955/000095017025024136/payc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1590955/000095017024015863/payc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We have licensed and deployed a third-party large language model (\u201cLLM\u201d) on our own internal network. This LLM processes a large amount of employee and customer data, including potentially sensitive information. Unauthorized access to or a breach of this LLM software could lead to significant legal and financial repercussions to us. Also, failure to comply with continually evolving privacy, cybersecurity, and AI regulations during our use of this LLM could lead to substantial fines and damage to our reputation. Rapid advancements in technology could quickly render our existing LLM obsolete, requiring the licensing and training of a replacement LLM at significant cost to us. The third-party LLM we license was trained on large datasets that may contain biases, and these biases can be reflected in the output of our LLM, leading to ethical concerns and potential harm to our employees and/or customers. The ongoing accuracy of the output of our LLM is critical for its effectiveness, and inaccurate or unreliable outputs could lead to customer dissatisfaction and potential legal liabilities.</span></div>    </div>", "risks": "Third Party; Data and IP Protection; Bias", "sector": "Industrials", "sub": "Human Resource & Employment Services", "company": "Paycom"}, {"html": "<div class=\"report-card\">      <h3>Paycom <span class=\"symbol\">(PAYC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Human Resource & Employment Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1590955/000095017025024136/payc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1590955/000095017024015863/payc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Data sourcing, technology, integration and process issues, programmed bias in decision-making algorithms, concerns over intellectual property, security concerns, and the protection of privacy could impair the adoption and acceptance of our automated solutions.</span></div>    </div>", "risks": "Bias", "sector": "Industrials", "sub": "Human Resource & Employment Services", "company": "Paycom"}, {"html": "<div class=\"report-card\">      <h3>Paycom <span class=\"symbol\">(PAYC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Human Resource & Employment Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1590955/000095017025024136/payc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1590955/000095017024015863/payc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>We believe that providing insights from aggregated data, including those insights derived from generative AI and machine learning, will become increasingly important to the value that our solutions and services deliver to our customers. Known risks of generative AI currently include accuracy, bias, privacy, security and data provenance.</span></div>    </div>", "risks": "Bias", "sector": "Industrials", "sub": "Human Resource & Employment Services", "company": "Paycom"}, {"html": "<div class=\"report-card\">      <h3>Paycom <span class=\"symbol\">(PAYC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Human Resource & Employment Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1590955/000095017025024136/payc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1590955/000095017024015863/payc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We also leverage AI internally to make certain business processes more efficient. While we believe the use of these emerging technologies can present significant benefits, it also creates risks and challenges. The development and implementation of such advanced technologies is complex. We have invested, and intend to continue to invest, significant time and resources in our automation initiatives, some or all of which may not result in new products or enhancements to our solution or services or, even if deployed, may not materially improve client or client employee experience.</span></div>    </div>", "risks": "Disillusionment", "sector": "Industrials", "sub": "Human Resource & Employment Services", "company": "Paycom"}, {"html": "<div class=\"report-card\">      <h3>PayPal <span class=\"symbol\">(PYPL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Transaction & Payment Processing Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1633917/000163391725000019/pypl-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1633917/000163391724000024/pypl-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We expect that new technologies applicable to the industries in which we <span style='color:red;text-decoration:line-through;'>operate</span> <span style='color:green;'>operate, including the development, adoption, and use of generative AI technologies,</span> will continue to emerge and may be superior to, or render obsolete, the technologies we currently use in our products and services.</div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Transaction & Payment Processing Services", "company": "PayPal"}, {"html": "<div class=\"report-card\">      <h3>PayPal <span class=\"symbol\">(PYPL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Transaction & Payment Processing Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1633917/000163391725000019/pypl-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1633917/000163391724000024/pypl-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, third parties may deploy AI technologies in a manner that reduces customer demand for our products and services.</span></div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Transaction & Payment Processing Services", "company": "PayPal"}, {"html": "<div class=\"report-card\">      <h3>PayPal <span class=\"symbol\">(PYPL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Transaction & Payment Processing Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1633917/000163391725000019/pypl-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1633917/000163391724000024/pypl-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Compliance with new and emerging laws, regulations or industry standards relating to AI in the U.S. and internationally, such as U.S. state regulations and the Artificial Intelligence Act in the EU, may impose significant operational costs and may limit our ability to develop, deploy or use existing or future AI technologies.</span></div>    </div>", "risks": "EU AI Act", "sector": "Financials", "sub": "Transaction & Payment Processing Services", "company": "PayPal"}, {"html": "<div class=\"report-card\">      <h3>PayPal <span class=\"symbol\">(PYPL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Transaction & Payment Processing Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1633917/000163391725000019/pypl-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1633917/000163391724000024/pypl-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, AI algorithms that we use may be flawed or may be based on datasets that are biased or insufficient.</span></div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Transaction & Payment Processing Services", "company": "PayPal"}, {"html": "<div class=\"report-card\">      <h3>PepsiCo <span class=\"symbol\">(PEP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Soft Drinks & Non-alcoholic Beverages</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/77476/000007747625000007/pep-20241228.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/77476/000007747624000008/pep-20231230.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Cyberattacks and cyber incidents <span style='color:red;text-decoration:line-through;'>may be difficult to detect for periods of time and</span> take many forms including cyber extortion, denial of service, social engineering, <span style='color:green;'>deepfake attacks and disinformation campaigns,</span> introduction of viruses or malware (such as ransomware), exploiting vulnerabilities in hardware, software or other <span style='color:red;text-decoration:line-through;'>infrastructure,</span> <span style='color:green;'>infrastructure (including zero-day vulnerabilities),</span> hacking, website defacement or theft of passwords and other credentials, unauthorized use of computing resources for digital currency mining and business email compromise.</div>    </div>", "risks": "Deepfakes; Malicious Actors", "sector": "Consumer Staples", "sub": "Soft Drinks & Non-alcoholic Beverages", "company": "PepsiCo"}, {"html": "<div class=\"report-card\">      <h3>Pfizer <span class=\"symbol\">(PFE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Pharmaceuticals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/78003/000007800325000054/pfe-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/78003/000007800324000039/pfe-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For example, algorithms may be <span style='color:red;text-decoration:line-through;'>flawed;</span> <span style='color:green;'>flawed or trained on content without the necessary intellectual property rights or other legal rights or permissions;</span> data sets may <span style='color:green;'>not</span> be <span style='color:red;text-decoration:line-through;'>insufficient,</span> <span style='color:green;'>appropriate for the intended use,</span> of poor quality, <span style='color:red;text-decoration:line-through;'>or</span> contain biased <span style='color:red;text-decoration:line-through;'>information;</span> <span style='color:green;'>information, or become corrupted during a cyber-attack;</span> and inappropriate or controversial data practices by data scientists, engineers, and end-users could impair results.</div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Pharmaceuticals", "company": "Pfizer"}, {"html": "<div class=\"report-card\">      <h3>Pfizer <span class=\"symbol\">(PFE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Pharmaceuticals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/78003/000007800325000054/pfe-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/78003/000007800324000039/pfe-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">If the <span style='color:red;text-decoration:line-through;'>analyses</span> <span style='color:green;'>outputs</span> that <span style='color:red;text-decoration:line-through;'>artificial intelligence-based applications assist</span> <span style='color:green;'>AI produces or assists</span> in producing are deficient or inaccurate, we could be subjected to competitive harm, potential legal liability and brand or reputational harm.</div>    </div>", "risks": "Competition", "sector": "Health Care", "sub": "Pharmaceuticals", "company": "Pfizer"}, {"html": "<div class=\"report-card\">      <h3>PG&E Corporation <span class=\"symbol\">(PCG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Multi-Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1004980/000100498025000010/pcg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1004980/000100498024000014/pcg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, artificial intelligence, including generative artificial intelligence, may be used to facilitate or perpetrate these cybersecurity threats, and PG&amp;E Corporation\u2019s and the Utility\u2019s use of generative artificial intelligence (and use by their vendors and agents) may subject them to data privacy, legal, and security risks.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Utilities", "sub": "Multi-Utilities", "company": "PG&E Corporation"}, {"html": "<div class=\"report-card\">      <h3>Philip Morris International <span class=\"symbol\">(PM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Tobacco</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1413329/000141332925000013/pm-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1413329/000141332924000013/pm-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, some information technology systems may be supported by artificial intelligence capabilities that may not function as intended, posing cybersecurity and data protection risks.</span></div>    </div>", "risks": "", "sector": "Consumer Staples", "sub": "Tobacco", "company": "Philip Morris International"}, {"html": "<div class=\"report-card\">      <h3>Phillips 66 <span class=\"symbol\">(PSX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Energy</span>          <span class=\"tag\">Oil & Gas Refining & Marketing</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1534701/000153470125000074/psx-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1534701/000153470124000078/psx-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Generative artificial intelligence has contributed to an increase in the prevalence of such attacks and threats, expanding our potential exposure to disruptions.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Energy", "sub": "Oil & Gas Refining & Marketing", "company": "Phillips 66"}, {"html": "<div class=\"report-card\">      <h3>Phillips 66 <span class=\"symbol\">(PSX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Energy</span>          <span class=\"tag\">Oil & Gas Refining & Marketing</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1534701/000153470125000074/psx-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1534701/000153470124000078/psx-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our information technology and infrastructure, or information technology and infrastructure of our third-party service providers (e.g., cloud-based service providers), may be vulnerable to attacks by malicious actors or breached due to human error, malfeasance or other disruptions, including ransomware and other malware, phishing and social engineering schemes, <span style='color:green;'>deepfakes,</span> malicious software, data privacy <span style='color:red;text-decoration:line-through;'>breaches by employees,</span> <span style='color:green;'>incidents,</span> insiders or others with authorized access, attempts to gain unauthorized access to our data and <span style='color:red;text-decoration:line-through;'>systems;</span> <span style='color:green;'>systems,</span> and other cybersecurity incidents.</div>    </div>", "risks": "Deepfakes; Malicious Actors", "sector": "Energy", "sub": "Oil & Gas Refining & Marketing", "company": "Phillips 66"}, {"html": "<div class=\"report-card\">      <h3>Pinnacle West Capital <span class=\"symbol\">(PNW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Multi-Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Energy'>Energy</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/764622/000076462225000023/pnw-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/764622/000076462224000016/pnw-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Longer term, APS has been preparing for and can serve significant load growth from residential and business customers. On top of these existing growth trends, APS is also now receiving unprecedented incremental requests for service from extra-large commercial energy users (over 25 MW) with very high energy demands that persist virtually around-the-clock. These incremental requests for service by extra-large energy users far exceed available generation and transmission resource capacity in the Southwest region for the foreseeable future. <span style='color:red;text-decoration:line-through;'>In April 2023, APS notified prospective extra-large customers without existing commitments from APS that it is not able to commit at this time to their future extra-large projects (over 25 MW). Because of the high growth in demand for such projects, APS has developed a prioritization queue that identifies and prioritizes projects while maintaining system reliability and affordability for existing APS customers.</span> APS is exploring available options for securing sufficient electric generation and transmission to meet these projections of future customer <span style='color:red;text-decoration:line-through;'>needs.</span> <span style='color:green;'>needs; however, there are difficulties in properly forecasting the demands of these extra-large customers due to factors such as the nascent nature of the industries (e.g., artificial intelligence) that these customers are supporting and the multiple variables that impact their usage ramp-up and ultimate level of demand. As data center and other extra-large customer opportunities evolve and develop, we may also enter into arrangements with customers and potential customers that require us to invest capital and assume credit risk related to such developments and the related generation and transmission investments before we receive any potential return. APS is implementing strategies to attempt to reduce this risk; however, the difficulty in forecasting these demands and the additional risk of these arrangements could lead to stranded costs and other effects that could have material adverse impacts on APS\u2019s financial condition, results of operations, and cash flows.</span></div>    </div>", "risks": "Energy", "sector": "Utilities", "sub": "Multi-Utilities", "company": "Pinnacle West Capital"}, {"html": "<div class=\"report-card\">      <h3>PNC Financial Services <span class=\"symbol\">(PNC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Diversified Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/713676/000071367625000027/pnc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/713676/000071367624000028/pnc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We are faced with ongoing, nearly continual, efforts by others to breach data security at financial institutions or with respect to financial transactions. <span style='color:green;'>The effectiveness of these efforts may be enhanced using AI.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Diversified Banks", "company": "PNC Financial Services"}, {"html": "<div class=\"report-card\">      <h3>PNC Financial Services <span class=\"symbol\">(PNC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Diversified Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/713676/000071367625000027/pnc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/713676/000071367624000028/pnc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The techniques used in cyber attacks change rapidly and are increasingly sophisticated, including through the use of generative AI and deepfakes, and we expect in the future through the use of quantum computing, and we may not be able to anticipate cyber attacks or data security breaches.</div>    </div>", "risks": "Deepfakes", "sector": "Financials", "sub": "Diversified Banks", "company": "PNC Financial Services"}, {"html": "<div class=\"report-card\">      <h3>Pool Corporation <span class=\"symbol\">(POOL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Distributors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/945841/000094584125000032/pool-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/945841/000094584124000021/pool-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The risk of breaches is likely to continue to increase due to several factors, including <span style='color:green;'>(i)</span> the increasing <span style='color:red;text-decoration:line-through;'>sophistication</span> <span style='color:green;'>use</span> of <span style='color:red;text-decoration:line-through;'>cyber-attacks,</span> <span style='color:green;'>machine learning, artificial intelligence (AI) and other sophisticated techniques to initiate cyber and phishing attacks, (ii)</span> the wider accessibility of cyber-attack <span style='color:red;text-decoration:line-through;'>tools,</span> <span style='color:green;'>tools that can circumvent security controls and evade detection, (iii)</span> the expanded size, use and complexity of our systems, and <span style='color:green;'>(iv)</span> our increased reliance on e-commerce, open source software, cloud computer services and work-from-home staffing.</div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Discretionary", "sub": "Distributors", "company": "Pool Corporation"}, {"html": "<div class=\"report-card\">      <h3>PPG Industries <span class=\"symbol\">(PPG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Specialty Chemicals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/79879/000007987925000034/ppg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/79879/000007987924000040/ppg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>In addition, because the</span> <span style='color:green;'>The</span> techniques, tools and tactics used in cyber-attacks <span style='color:red;text-decoration:line-through;'>frequently change</span> <span style='color:green;'>evolve rapidly, including from emerging technologies such as advanced automation or artificial intelligence</span> and may be difficult to detect for periods of <span style='color:red;text-decoration:line-through;'>time,</span> <span style='color:green;'>time.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Materials", "sub": "Specialty Chemicals", "company": "PPG Industries"}, {"html": "<div class=\"report-card\">      <h3>PPL Corporation <span class=\"symbol\">(PPL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Electric Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/922224/000092222425000009/ppl-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/922224/000092222424000008/ppl-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI algorithms that we or our third-party vendors use may be flawed or may be based on datasets that are biased or insufficient.</span></div>    </div>", "risks": "Bias", "sector": "Utilities", "sub": "Electric Utilities", "company": "PPL Corporation"}, {"html": "<div class=\"report-card\">      <h3>Principal Financial Group <span class=\"symbol\">(PFG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Life & Health Insurance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1126328/000141057825000160/pfg-20241231x10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1126328/000110465924025516/pfg-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Ongoing global developments in artificial intelligence (\u201cAI\u201d) regulations, such as the EU AI Act, Colorado AI Act, and other AI-related legislation will continue to increase and require attention and investments,</span> Regulations such as these, which are designed to protect privacy and prevent misuse of personal information, are complex and change frequently.</div>    </div>", "risks": "EU AI Act", "sector": "Financials", "sub": "Life & Health Insurance", "company": "Principal Financial Group"}, {"html": "<div class=\"report-card\">      <h3>Procter & Gamble <span class=\"symbol\">(PG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Personal Care Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/80424/000008042424000083/pg-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/80424/000008042423000073/pg-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">If the IT/OT systems, networks or service providers we rely upon fail to function properly or cause operational outages or aberrations, or if we or one of our third-party providers suffer significant unavailability of key operations, or inadvertent disclosure of, lack of integrity of, or loss of our sensitive business or stakeholder information, including personal information, due to any number of causes, including catastrophic events, natural disasters, power outages, computer and telecommunications failures, improper data handling, viruses, phishing attempts, cyber-attacks, malware and ransomware attacks, security breaches, <span style='color:green;'>misuse or malicious use of artificial intelligence,</span> security incidents or employee error or malfeasance, and our business continuity plans do not effectively address these failures on a timely basis, we may suffer interruptions in our ability to manage operations and be exposed to reputational, competitive, operational, financial and business harm as well as litigation and regulatory action.</div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Staples", "sub": "Personal Care Products", "company": "Procter & Gamble"}, {"html": "<div class=\"report-card\">      <h3>Progressive Corporation <span class=\"symbol\">(PGR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Property & Casualty Insurance</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/80661/000008066125000007/pgr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/80661/000008066124000007/pgr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Additionally, <span style='color:red;text-decoration:line-through;'>it is likely that</span> we <span style='color:red;text-decoration:line-through;'>will be</span> <span style='color:green;'>are</span> subject to new AI-focused regulations <span style='color:green;'>and regulatory expectations</span> that could impose varied compliance and reporting requirements and challenges that could impact our operations or ability to write business profitably in one or more jurisdictions.</div>    </div>", "risks": "", "sector": "Financials", "sub": "Property & Casualty Insurance", "company": "Progressive Corporation"}, {"html": "<div class=\"report-card\">      <h3>Progressive Corporation <span class=\"symbol\">(PGR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Property & Casualty Insurance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/80661/000008066125000007/pgr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/80661/000008066124000007/pgr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">GenAI might produce or reveal datasets that are flawed or insufficient or contain biased information, which could result in unintentionally and unfairly discriminatory outcomes in our business processes.</div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Property & Casualty Insurance", "company": "Progressive Corporation"}, {"html": "<div class=\"report-card\">      <h3>Prudential Financial <span class=\"symbol\">(PRU)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Life & Health Insurance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1137774/000113777425000044/pru-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1137774/000113777424000045/pru-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, our ability to continue to develop and efficiently deploy AI technologies depends on access to specific third-party equipment and other physical infrastructure, such as processing hardware and network capacity, as to which we cannot control the availability or pricing, especially in a highly competitive environment.</span> Our competitors may also adopt AI or Generative AI more quickly or more effectively than we do, which could cause competitive harm.</div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Life & Health Insurance", "company": "Prudential Financial"}, {"html": "<div class=\"report-card\">      <h3>Prudential Financial <span class=\"symbol\">(PRU)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Life & Health Insurance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1137774/000113777425000044/pru-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1137774/000113777424000045/pru-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">AI could be used to create synthetic identities or manipulate personal data, raising privacy concerns <span style='color:green;'>related to data breaches</span> and <span style='color:red;text-decoration:line-through;'>potentially violating</span> <span style='color:green;'>other potential violations of consumer rights and</span> data protection regulations.</div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Life & Health Insurance", "company": "Prudential Financial"}, {"html": "<div class=\"report-card\">      <h3>Prudential Financial <span class=\"symbol\">(PRU)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Life & Health Insurance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1137774/000113777425000044/pru-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1137774/000113777424000045/pru-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Because the Generative AI technology is so new, some of the potential risks of Generative AI are currently unknowable; however, specific risks relating to AI and Generative AI could include, among others: \u2022Reputational Damage: Malicious actors could use AI to create deepfakes of the Company's executives or manipulate financial documents, leading to loss of customer trust and significant reputational damage.</div>    </div>", "risks": "Deepfakes", "sector": "Financials", "sub": "Life & Health Insurance", "company": "Prudential Financial"}, {"html": "<div class=\"report-card\">      <h3>Prudential Financial <span class=\"symbol\">(PRU)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Life & Health Insurance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1137774/000113777425000044/pru-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1137774/000113777424000045/pru-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Moreover, the use of AI trained on inaccurate data sets could result in inaccurate or biased decisions.</div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Life & Health Insurance", "company": "Prudential Financial"}, {"html": "<div class=\"report-card\">      <h3>Prudential Financial <span class=\"symbol\">(PRU)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Life & Health Insurance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1137774/000113777425000044/pru-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1137774/000113777424000045/pru-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>There are significant risks involved in developing and deploying AI and there can be no assurance that the usage of AI will enhance our products or services or be beneficial to our business, including our efficiency or profitability.</span></div>    </div>", "risks": "Disillusionment", "sector": "Financials", "sub": "Life & Health Insurance", "company": "Prudential Financial"}, {"html": "<div class=\"report-card\">      <h3>Public Service Enterprise Group <span class=\"symbol\">(PEG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Electric Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/788784/000095017025026874/peg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/788784/000162828024006885/pseg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Further, new types of cyberattacks, whether directed at our own infrastructure and technology and operational systems or that of third parties, may be generated or enhanced through the use of Artificial Intelligence <span style='color:red;text-decoration:line-through;'>(AI).</span> <span style='color:green;'>(AI) and/or cloud-based infrastructure.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Utilities", "sub": "Electric Utilities", "company": "Public Service Enterprise Group"}, {"html": "<div class=\"report-card\">      <h3>Public Service Enterprise Group <span class=\"symbol\">(PEG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Electric Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/788784/000095017025026874/peg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/788784/000162828024006885/pseg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">AI algorithms that we or our <span style='color:red;text-decoration:line-through;'>third-party</span> <span style='color:green;'>Nth-party</span> vendors use may be flawed or may be based on <span style='color:red;text-decoration:line-through;'>datasets</span> <span style='color:green;'>data sets</span> that are biased or insufficient.</div>    </div>", "risks": "Bias", "sector": "Utilities", "sub": "Electric Utilities", "company": "Public Service Enterprise Group"}, {"html": "<div class=\"report-card\">      <h3>Public Storage <span class=\"symbol\">(PSA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Self-Storage REITs</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1393311/000139331125000036/psa-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1393311/000139331124000043/psa-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our use of artificial intelligence could expose us to various risks. We have begun to utilize artificial intelligence technologies in various aspects of our business. Artificial intelligence technologies are susceptible to errors and other malfunctions which could lead to operational challenges and reputational risks. In addition, we may be subject to increasing regulations related to our use of these technologies, including regulations related to privacy, data security, and intellectual property rights, which could expose us to legal risks.</span></div>    </div>", "risks": "", "sector": "Real Estate", "sub": "Self-Storage REITs", "company": "Public Storage"}, {"html": "<div class=\"report-card\">      <h3>Public Storage <span class=\"symbol\">(PSA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Self-Storage REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1393311/000139331125000036/psa-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1393311/000139331124000043/psa-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Although we believe we <span style='color:green;'>and our third-party service providers</span> have taken commercially reasonable steps to protect the security of our confidential information, information security risks have generally increased in recent years due to the rise in new technologies and the increased sophistication and activities of perpetrators of cyberattacks. <span style='color:green;'>Further, new technologies such as artificial intelligence may be more capable at evading these safeguard measures.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Real Estate", "sub": "Self-Storage REITs", "company": "Public Storage"}, {"html": "<div class=\"report-card\">      <h3>PulteGroup <span class=\"symbol\">(PHM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Homebuilding</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/822416/000082241625000007/phm-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/822416/000082241624000010/phm-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We have started to assess the use of AI technology to drive productivity and analyze data. While we aim to develop, integrate, and use AI responsibly, we may ultimately be unsuccessful in identifying or resolving issues, such as accuracy, cybersecurity risks, unintended biases, and discriminatory outputs, before they arise.</span></div>    </div>", "risks": "Bias", "sector": "Consumer Discretionary", "sub": "Homebuilding", "company": "PulteGroup"}, {"html": "<div class=\"report-card\">      <h3>PulteGroup <span class=\"symbol\">(PHM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Homebuilding</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/822416/000082241625000007/phm-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/822416/000082241624000010/phm-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">In particular, the frequency, severity and novelty of cyber-attacks on companies has increased <span style='color:green;'>significantly</span> in recent years, including significant ransomware attacks and foreign attacks on prominent companies and computer software programs, as threat actors become increasingly sophisticated and employ techniques, including malicious uses of <span style='color:red;text-decoration:line-through;'>artificial intelligence</span> <span style='color:green;'>AI</span> such as deepfakes, to launch attacks that are increasingly difficult to detect and defend against.</div>    </div>", "risks": "Deepfakes; Malicious Actors", "sector": "Consumer Discretionary", "sub": "Homebuilding", "company": "PulteGroup"}, {"html": "<div class=\"report-card\">      <h3>Qualcomm <span class=\"symbol\">(QCOM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/804328/000080432824000075/qcom-20240929.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/804328/000080432823000055/qcom-20230924.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">For example, as AI continues to evolve, cyber-attackers could also use AI to develop malicious code and <span style='color:green;'>increasingly</span> sophisticated phishing attempts.</div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Semiconductors", "company": "Qualcomm"}, {"html": "<div class=\"report-card\">      <h3>Quanta Services <span class=\"symbol\">(PWR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Construction & Engineering</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1050915/000105091525000005/pwr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1050915/000105091524000009/pwr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Additionally, because the techniques used to obtain unauthorized access or sabotage information technology systems change frequently and are generally not identifiable until they are launched against a target, we <span style='color:red;text-decoration:line-through;'>may be</span> <span style='color:green;'>are</span> unable to anticipate <span style='color:red;text-decoration:line-through;'>these</span> <span style='color:green;'>all attacker</span> techniques or to implement <span style='color:red;text-decoration:line-through;'>adequate</span> <span style='color:green;'>comprehensive</span> preventative <span style='color:red;text-decoration:line-through;'>measures.</span> <span style='color:green;'>measures, particularly because threat actors are increasingly using tools, including artificial intelligence, that are designed to circumvent controls and evade detection.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Industrials", "sub": "Construction & Engineering", "company": "Quanta Services"}, {"html": "<div class=\"report-card\">      <h3>Quest Diagnostics <span class=\"symbol\">(DGX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1022079/000102207925000044/dgx-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1022079/000102207924000041/dgx-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Competitors may compete using advanced technology, including technology that enables more convenient or cost-effective <span style='color:red;text-decoration:line-through;'>testing.</span> <span style='color:green;'>testing (e.g., technology enabled by AI).</span></div>    </div>", "risks": "Competition", "sector": "Health Care", "sub": "Health Care Services", "company": "Quest Diagnostics"}, {"html": "<div class=\"report-card\">      <h3>Quest Diagnostics <span class=\"symbol\">(DGX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1022079/000102207925000044/dgx-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1022079/000102207924000041/dgx-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">External actors may develop and deploy viruses, other malicious software programs, ransomware attacks, <span style='color:red;text-decoration:line-through;'>AI,</span> distributed denial of service attacks or other attempts to harm or obtain unauthorized access to our <span style='color:red;text-decoration:line-through;'>systems.</span> <span style='color:green;'>systems, including through the use of AI and other emerging technologies.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Health Care", "sub": "Health Care Services", "company": "Quest Diagnostics"}, {"html": "<div class=\"report-card\">      <h3>Quest Diagnostics <span class=\"symbol\">(DGX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1022079/000102207925000044/dgx-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1022079/000102207924000041/dgx-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, many of the third-party service providers we rely on use generative AI for a variety of purposes, which increases the risk that our sensitive and proprietary data, and the data of our patients and customers, could be inadvertently or maliciously exposed.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Health Care", "sub": "Health Care Services", "company": "Quest Diagnostics"}, {"html": "<div class=\"report-card\">      <h3>Ralph Lauren Corporation <span class=\"symbol\">(RL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Apparel, Accessories & Luxury Goods</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1037038/000103703824000014/rl-20240330.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1037038/000103703823000015/rl-20230401.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Cyber-criminals are constantly devising <span style='color:green;'>new, sophisticated</span> schemes to gain unauthorized access to computer systems and confidential or sensitive <span style='color:red;text-decoration:line-through;'>data.</span> <span style='color:green;'>data, including through the use of artificial intelligence.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Discretionary", "sub": "Apparel, Accessories & Luxury Goods", "company": "Ralph Lauren Corporation"}, {"html": "<div class=\"report-card\">      <h3>Raymond James Financial <span class=\"symbol\">(RJF)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Investment Banking & Brokerage</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/720005/000072000524000069/rjf-20240930.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/720005/000072000523000079/rjf-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Furthermore, both financial institutions and their non-banking competitors face the risk that payments processing and other services could be significantly disrupted by <span style='color:red;text-decoration:line-through;'>technologies, such as cryptocurrencies,</span> <span style='color:green;'>technologies (e.g., AI, online trading platforms, digital payment technologies)</span> that require no intermediation.</div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Investment Banking & Brokerage", "company": "Raymond James Financial"}, {"html": "<div class=\"report-card\">      <h3>Raymond James Financial <span class=\"symbol\">(RJF)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Investment Banking & Brokerage</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span><span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/720005/000072000524000069/rjf-20240930.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/720005/000072000523000079/rjf-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Although we strive to establish and maintain appropriate governance and risk management processes, ineffective or inadequate AI development or deployment practices by us or third-party vendors could result in unintended consequences such as AI algorithms that produce inaccurate output or that are based on biased, incomplete, and/or inaccurate datasets.</span></div>    </div>", "risks": "Bias; Third Party", "sector": "Financials", "sub": "Investment Banking & Brokerage", "company": "Raymond James Financial"}, {"html": "<div class=\"report-card\">      <h3>Regency Centers <span class=\"symbol\">(REG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Retail REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/910606/000095017025021359/reg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/910606/000095017024016260/reg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">As with many technological innovations, artificial intelligence (\u201cAI\") presents great promise but also risks and challenges that could adversely affect our business. Sensitive, proprietary, or confidential information of the Company, our <span style='color:red;text-decoration:line-through;'>tenants and employees,</span> <span style='color:green;'>tenants, employees and business partners</span> could be leaked, disclosed, or revealed as a result of or in connection with the use of generative AI technologies by our employees or vendors. Any such information input into a third-party generative AI or machine learning platform could be revealed to others, including if information is used to train the third party's generative AI or machine learning models. Additionally, where a generative AI or machine learning model ingests personal information and makes connections using such data, those technologies may reveal other sensitive, proprietary, or confidential information generated by the model.</div>    </div>", "risks": "Third Party", "sector": "Real Estate", "sub": "Retail REITs", "company": "Regency Centers"}, {"html": "<div class=\"report-card\">      <h3>Regency Centers <span class=\"symbol\">(REG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Retail REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/910606/000095017025021359/reg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/910606/000095017024016260/reg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Cyberattacks are expected to accelerate on a global basis in frequency and magnitude as threat actors are becoming increasingly sophisticated in using techniques and tools\u2014including artificial intelligence\u2014that circumvent security controls, evade detection and remove forensic evidence.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Real Estate", "sub": "Retail REITs", "company": "Regency Centers"}, {"html": "<div class=\"report-card\">      <h3>Regency Centers <span class=\"symbol\">(REG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Retail REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/910606/000095017025021359/reg-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/910606/000095017024016260/reg-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Sensitive, proprietary, or confidential information of the Company, our <span style='color:red;text-decoration:line-through;'>tenants and employees,</span> <span style='color:green;'>tenants, employees and business partners</span> could be leaked, disclosed, or revealed as a result of or in connection with the use of generative AI technologies by our employees or vendors.</div>    </div>", "risks": "Data and IP Protection", "sector": "Real Estate", "sub": "Retail REITs", "company": "Regency Centers"}, {"html": "<div class=\"report-card\">      <h3>Regeneron Pharmaceuticals <span class=\"symbol\">(REGN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Biotechnology</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/872589/000180422025000011/regn-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/872589/000180422024000009/regn-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The use of AI solutions by our employees or third parties on which we rely may continue to increase and may lead to the <span style='color:green;'>impermissible use or</span> public disclosure of confidential information (including personal data and proprietary information) in contravention of our internal policies, data protection laws, other applicable laws, or contractual requirements.</div>    </div>", "risks": "Data and IP Protection", "sector": "Health Care", "sub": "Biotechnology", "company": "Regeneron Pharmaceuticals"}, {"html": "<div class=\"report-card\">      <h3>Regeneron Pharmaceuticals <span class=\"symbol\">(REGN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Biotechnology</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/872589/000180422025000011/regn-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/872589/000180422024000009/regn-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The misuse of AI solutions may give rise to liability, lead to the loss of trade secrets or other intellectual property, result in reputational harm, or lead to outcomes with unintended biases or other consequences.</div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Biotechnology", "company": "Regeneron Pharmaceuticals"}, {"html": "<div class=\"report-card\">      <h3>Regions Financial Corporation <span class=\"symbol\">(RF)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Regional Banks</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1281761/000128176125000010/rf-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1281761/000128176124000010/rf-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>\u2022The development and use of AI presents risks and challenges that may impact our business.</span></div>    </div>", "risks": "", "sector": "Financials", "sub": "Regional Banks", "company": "Regions Financial Corporation"}, {"html": "<div class=\"report-card\">      <h3>ResMed <span class=\"symbol\">(RMD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/943819/000094381924000013/rmd-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/943819/000094381923000011/rmd-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Our use and disclosure of personal information, including health information, is subject to federal, state and foreign <span style='color:red;text-decoration:line-through;'>privacy</span> <span style='color:green;'>privacy, artificial intelligence, data, biometrics</span> and security regulations, and our failure to comply with those regulations or to adequately secure the information we hold could result in significant <span style='color:red;text-decoration:line-through;'>liability</span> <span style='color:green;'>liability, regulatory investigations, legal actions,</span> or reputational harm.</div>    </div>", "risks": "", "sector": "Health Care", "sub": "Health Care Equipment", "company": "ResMed"}, {"html": "<div class=\"report-card\">      <h3>ResMed <span class=\"symbol\">(RMD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/943819/000094381924000013/rmd-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/943819/000094381923000011/rmd-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Any changes to our ability to use AI or concerns about bias could require us to modify our products and services or could have other negative financial impact on our business.</div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Health Care Equipment", "company": "ResMed"}, {"html": "<div class=\"report-card\">      <h3>ResMed <span class=\"symbol\">(RMD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/943819/000094381924000013/rmd-20240630.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/943819/000094381923000011/rmd-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">The FTC has issued a report expressing a concern regarding AI and bias across industry sectors, including in the healthcare space, and has suggested that such bias could lead to unfair and deceptive practices, among other concerns.</div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Health Care Equipment", "company": "ResMed"}, {"html": "<div class=\"report-card\">      <h3>Rockwell Automation <span class=\"symbol\">(ROK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Electrical Components & Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1024478/000102447824000107/rok-20240930.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1024478/000102447823000126/rok-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">If we are not able to anticipate, identify, develop, and market products that respond to changes in customer preferences and emerging technological and broader industry trends, <span style='color:green;'>including the development of artificial intelligence and machine learning,</span> demand for our products could decline.</div>    </div>", "risks": "Competition", "sector": "Industrials", "sub": "Electrical Components & Equipment", "company": "Rockwell Automation"}, {"html": "<div class=\"report-card\">      <h3>Rockwell Automation <span class=\"symbol\">(ROK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Electrical Components & Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1024478/000102447824000107/rok-20240930.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1024478/000102447823000126/rok-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>In addition, we continue to drive productivity to reduce our cost structure.</span> If we fail to achieve our objectives, to keep pace with technological <span style='color:red;text-decoration:line-through;'>changes,</span> <span style='color:green;'>changes including the development of artificial intelligence and machine learning,</span> or to provide high quality hardware and software products, solutions, and services, we may lose business or experience price erosion and correspondingly lower sales and margins.</div>    </div>", "risks": "Competition", "sector": "Industrials", "sub": "Electrical Components & Equipment", "company": "Rockwell Automation"}, {"html": "<div class=\"report-card\">      <h3>Rollins, Inc. <span class=\"symbol\">(ROL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Environmental & Facilities Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/84839/000008483925000024/rol-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/84839/000008483924000025/rol-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>These could include unauthorized access to or unintentional distribution of personal, financial, proprietary, confidential, or other protected data or information the Company is entrusted to keep about its customers, employees, business practices, or third parties; significant operational disruptions that result from a cybersecurity incident; or vulnerabilities through the use of evolving tools such as Artificial Intelligence.</span> Our internal IT systems contain certain personal, financial, health, or other protected and confidential information that is entrusted to us by our customers and employees.</div>    </div>", "risks": "Data and IP Protection", "sector": "Industrials", "sub": "Environmental & Facilities Services", "company": "Rollins, Inc."}, {"html": "<div class=\"report-card\">      <h3>Roper Technologies <span class=\"symbol\">(ROP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Electronic Equipment & Instruments</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/882835/000088283525000008/rop-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/882835/000088283524000008/rop-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our competitors or other third parties may incorporate AI into their products <span style='color:green;'>or operations</span> more quickly or <span style='color:red;text-decoration:line-through;'>more</span> successfully than us, <span style='color:green;'>or develop superior products and services with the aid of AI,</span> which could impair our ability to compete effectively and adversely affect our results of operations.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Electronic Equipment & Instruments", "company": "Roper Technologies"}, {"html": "<div class=\"report-card\">      <h3>Roper Technologies <span class=\"symbol\">(ROP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Electronic Equipment & Instruments</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/882835/000088283525000008/rop-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/882835/000088283524000008/rop-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We may be affected by laws and regulations that govern the use of AI. For example, the EU AI Act places new requirements on providers of AI technologies that will need to be addressed in alignment with various deadlines in the coming years. These and other laws or regulations may cause us to modify our data handling and compliance practices, which could be costly or disruptive to our operations, and may also impact our ability to use certain data to support our products or our product development efforts or hinder our customers\u2019 ability to adopt or continue to use our products.</span></div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Electronic Equipment & Instruments", "company": "Roper Technologies"}, {"html": "<div class=\"report-card\">      <h3>Roper Technologies <span class=\"symbol\">(ROP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Electronic Equipment & Instruments</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/882835/000088283525000008/rop-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/882835/000088283524000008/rop-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Additionally, if <span style='color:red;text-decoration:line-through;'>our</span> <span style='color:green;'>we use</span> AI <span style='color:red;text-decoration:line-through;'>applications are</span> <span style='color:green;'>that is</span> based on data, algorithms, or other inputs that are flawed, or if <span style='color:red;text-decoration:line-through;'>they assist</span> <span style='color:green;'>the AI assists</span> in producing content, analyses, or recommendations that are or are alleged to be deficient, inaccurate, <span style='color:green;'>violative of third-party intellectual property,</span> or biased, our business, financial condition, and results of operations may be adversely affected.</div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Electronic Equipment & Instruments", "company": "Roper Technologies"}, {"html": "<div class=\"report-card\">      <h3>RTX Corporation <span class=\"symbol\">(RTX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Aerospace & Defense</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/101829/000010182925000005/rtx-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/101829/000010182924000008/rtx-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The methods and processes we use to develop, deploy or otherwise use artificial intelligence systems may be found to not be in compliance with rapidly evolving regulatory standards thereby preventing or frustrating our use of the systems or creating liability for us. These methods and processes may further perform in unexpected ways or be misused, jeopardizing RTX\u2019s intellectual property or potentially resulting in unexpected loss or misappropriation of intellectual property. Improper use of artificial intelligence could also lead to data breaches, undetected cyber- attacks, regulatory action, and reputational risks.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Industrials", "sub": "Aerospace & Defense", "company": "RTX Corporation"}, {"html": "<div class=\"report-card\">      <h3>S&P Global <span class=\"symbol\">(SPGI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/64040/000006404025000052/spgi-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/64040/000006404024000071/spgi-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For instance, <span style='color:green;'>new</span> competitors <span style='color:red;text-decoration:line-through;'>may deploy</span> <span style='color:green;'>are leveraging AI in their offerings in ways that could materially reduce demand for our products and services (for example, by deploying</span> AI in ways that make processing of information relatively inexpensive or <span style='color:red;text-decoration:line-through;'>free, which could significantly reduce demand for our data.</span> <span style='color:green;'>free or by leveraging AI to build indices or ETFs).</span></div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "S&P Global"}, {"html": "<div class=\"report-card\">      <h3>S&P Global <span class=\"symbol\">(SPGI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/64040/000006404025000052/spgi-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/64040/000006404024000071/spgi-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">In order to maintain a competitive position, we invest in innovation, new offerings and enhancements, including new ways to deliver our products and <span style='color:red;text-decoration:line-through;'>services.</span> <span style='color:green;'>services (including through AI).</span></div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "S&P Global"}, {"html": "<div class=\"report-card\">      <h3>S&P Global <span class=\"symbol\">(SPGI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span><span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span><span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/64040/000006404025000052/spgi-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/64040/000006404024000071/spgi-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>As discussed in the risk factor entitled \u201cThe markets in which we operate continuously change to adapt to customer needs. Our inability to innovate and compete with new or enhanced products and services of our competitors could impact our profitability,\u201d competitors are deploying AI in ways that could materially reduce demand for our products and services.</span> Additionally, we may be unable to <span style='color:red;text-decoration:line-through;'>effectively license or otherwise</span> protect our data from unintended use <span style='color:green;'>or access</span> by <span style='color:red;text-decoration:line-through;'>AI.</span> <span style='color:green;'>third-party AI systems.</span></div>    </div>", "risks": "Third Party; Data and IP Protection; Competition", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "S&P Global"}, {"html": "<div class=\"report-card\">      <h3>S&P Global <span class=\"symbol\">(SPGI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/64040/000006404025000052/spgi-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/64040/000006404024000071/spgi-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The cyber threats we and our third-party service providers (including our vendors) face are rapidly evolving and are becoming increasingly sophisticated <span style='color:green;'>(including through the use of generative artificial intelligence (\"AI\"))</span> and include denial of service attacks, ransomware, spyware, phishing/smishing/vishing attacks, business compromise attacks, employee errors, negligence or malfeasance, the use of malicious codes or worms, payment fraud, and other unauthorized occurrences on, or conducted through, our or our third-party service providers\u2019 (including our vendors\u2019) information systems and networks, originating from a wide variety of sources, including criminals, terrorists, nation states, financially motivated actors, internal actors, and external service providers.</div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "S&P Global"}, {"html": "<div class=\"report-card\">      <h3>S&P Global <span class=\"symbol\">(SPGI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/64040/000006404025000052/spgi-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/64040/000006404024000071/spgi-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For example, the use of AI could lead to harmful consequences such as accuracy issues, unintended biases or discriminatory outputs.</div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "S&P Global"}, {"html": "<div class=\"report-card\">      <h3>S&P Global <span class=\"symbol\">(SPGI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Financial Exchanges & Data</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/64040/000006404025000052/spgi-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/64040/000006404024000071/spgi-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For example, the AI used in our products could include undetected errors or defects that lead to harmful consequences such as accuracy issues, unintended biases or discriminatory outputs.</div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Financial Exchanges & Data", "company": "S&P Global"}, {"html": "<div class=\"report-card\">      <h3>Salesforce <span class=\"symbol\">(CRM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Work Displacement'>Work Displacement</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1108524/000110852425000006/crm-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1108524/000110852424000005/crm-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>New AI offerings may disrupt workforce needs and negatively impact demand for our offerings, or our competitors may be able to incorporate AI into their offerings more efficiently or successfully than we are able to and achieve greater and faster adoption.</span></div>    </div>", "risks": "Work Displacement", "sector": "Information Technology", "sub": "Application Software", "company": "Salesforce"}, {"html": "<div class=\"report-card\">      <h3>Salesforce <span class=\"symbol\">(CRM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1108524/000110852425000006/crm-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1108524/000110852424000005/crm-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our current competitors include: \u2022vendors of packaged business software, as well as companies offering enterprise <span style='color:red;text-decoration:line-through;'>apps</span> <span style='color:green;'>applications</span> delivered through on-premises offerings from enterprise software application vendors and cloud computing application service providers, either individually or with others; \u2022software companies that provide their product or service free of charge as a single product or when bundled with other offerings, or only charge a premium for advanced features and functionality, as well as companies that offer solutions that are sold without a direct sales organization; \u2022vendors who offer software tailored to specific services, industries or market segments, as opposed to our full suite of service offerings, including suppliers of traditional business intelligence and data preparation products, integration software vendors, marketing <span style='color:green;'>vendors, e-commerce solutions</span> vendors or <span style='color:red;text-decoration:line-through;'>e-commerce solutions</span> <span style='color:green;'>AI software and service</span> vendors; \u2022productivity tool and email providers, unified communications providers and consumer application companies that have entered the business software market; and \u2022traditional platform development environment companies and cloud computing development platform companies who may develop toolsets and products that allow customers to build new <span style='color:red;text-decoration:line-through;'>apps</span> <span style='color:green;'>applications, including AI-augmented applications,</span> that run on the customers\u2019 current infrastructure or as hosted services, as well as would-be customers who may develop enterprise applications for internal use.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Application Software", "company": "Salesforce"}, {"html": "<div class=\"report-card\">      <h3>Salesforce <span class=\"symbol\">(CRM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1108524/000110852425000006/crm-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1108524/000110852424000005/crm-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, as we continue to increase building AI into many of our offerings, we face more competition as AI technologies are increasingly integrated into the markets in which we compete. New AI offerings may disrupt workforce needs and negatively impact demand for our offerings, or our competitors may be able to incorporate AI into their offerings more efficiently or successfully than we are able to and achieve greater and faster adoption.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Application Software", "company": "Salesforce"}, {"html": "<div class=\"report-card\">      <h3>Salesforce <span class=\"symbol\">(CRM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Export Controls'>Export Controls</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1108524/000110852425000006/crm-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1108524/000110852424000005/crm-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>Import</span> <span style='color:green;'>Sanctions</span> and export <span style='color:green;'>and import</span> control regulations in the United States and other countries are subject to change and uncertainty, including as a result of <span style='color:green;'>rapidly evolving technology, increased government regulation of AI and cloud service solutions, and</span> geopolitical developments <span style='color:red;text-decoration:line-through;'>and</span> <span style='color:green;'>such as events affecting</span> relations between the United States and China, <span style='color:green;'>multi-jurisdictional sanctions on Russia,</span> the <span style='color:red;text-decoration:line-through;'>United States and Russia,</span> war in Ukraine and <span style='color:green;'>regional conflict in</span> the <span style='color:red;text-decoration:line-through;'>Israel-Hamas war.</span> <span style='color:green;'>Middle East.</span></div>    </div>", "risks": "Export Controls", "sector": "Information Technology", "sub": "Application Software", "company": "Salesforce"}, {"html": "<div class=\"report-card\">      <h3>Salesforce <span class=\"symbol\">(CRM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1108524/000110852425000006/crm-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1108524/000110852424000005/crm-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>The introduction of numerous new pieces of</span> <span style='color:green;'>New</span> EU <span style='color:red;text-decoration:line-through;'>legislation related to the use of data,</span> <span style='color:green;'>laws,</span> including <span style='color:red;text-decoration:line-through;'>in</span> the DSA, the Data Act and <span style='color:green;'>the</span> AI Act, may impose additional rules and restrictions on the use of <span style='color:red;text-decoration:line-through;'>the data in</span> our products and services.</div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Application Software", "company": "Salesforce"}, {"html": "<div class=\"report-card\">      <h3>Salesforce <span class=\"symbol\">(CRM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1108524/000110852425000006/crm-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1108524/000110852424000005/crm-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Additionally, as our market presence grows, we may face increased risks of <span style='color:red;text-decoration:line-through;'>cyberattack attempts</span> <span style='color:green;'>cyberattacks</span> or security threats, and as AI technologies, including generative AI models, develop rapidly, threat actors <span style='color:red;text-decoration:line-through;'>may use</span> <span style='color:green;'>are using</span> these technologies to create new sophisticated attack methods that are increasingly automated, targeted and coordinated and more difficult to defend against.</div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Application Software", "company": "Salesforce"}, {"html": "<div class=\"report-card\">      <h3>Salesforce <span class=\"symbol\">(CRM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1108524/000110852425000006/crm-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1108524/000110852424000005/crm-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Known risks of generative AI currently include risks related to accuracy, bias, toxicity, privacy and security and data provenance.</div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Application Software", "company": "Salesforce"}, {"html": "<div class=\"report-card\">      <h3>Salesforce <span class=\"symbol\">(CRM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1108524/000110852425000006/crm-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1108524/000110852424000005/crm-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Uncertainty around new and emerging AI applications such as generative AI content creation <span style='color:green;'>and AI agents</span> will require additional investment in <span style='color:green;'>compliance, governance and</span> the licensing or development of proprietary datasets, machine learning models and systems to test for accuracy, bias and other variables, which are often complex, may be costly and could impact our profit margin.</div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Application Software", "company": "Salesforce"}, {"html": "<div class=\"report-card\">      <h3>Seagate Technology <span class=\"symbol\">(STX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Hardware, Storage & Peripherals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1137789/000113778924000068/stx-20240628.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1137789/000113778923000049/stx-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Threat actors are increasingly using tools and techniques that circumvent controls, evade detection, and remove forensic evidence, which means that we and others may be unable to anticipate, detect, deflect, contain or recover from cyberattacks in a timely or effective manner. As AI capabilities improve and are increasingly adopted, we may be subject to cyberattacks created with AI. For example, attacks could be crafted with an AI tool to attack information systems by creating more effective phishing emails or social engineering or by exploiting vulnerabilities in electronic security programs utilizing false image or voice recognition, or could result from our or our customers or business partners incorporating the output of an AI tool, such as malicious code from an AI- generated source code. Our network and storage applications, as well as those of our customers, business partners, and third-party providers, have been and may in the future be subject to unauthorized access by hackers or breached due to operator error, malfeasance or other system disruptions.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Technology Hardware, Storage & Peripherals", "company": "Seagate Technology"}, {"html": "<div class=\"report-card\">      <h3>Sempra <span class=\"symbol\">(SRE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Multi-Utilities</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"\" target=\"_blank\">2025</a> /          <a href=\"\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our <span style='color:green;'>significant</span> use of <span style='color:green;'>and reliance on</span> complex technologies and <span style='color:green;'>information</span> systems in our operations, including our increasing deployment of new <span style='color:red;text-decoration:line-through;'>technologies</span> <span style='color:green;'>technologies, such as advanced forms of automation and artificial intelligence,</span> and virtualization of many business activities, and our collection and retention of personal, sensitive and confidential information, represent large-scale opportunities for attacks <span style='color:red;text-decoration:line-through;'>on</span> <span style='color:green;'>on, vulnerabilities in</span> or other failures <span style='color:red;text-decoration:line-through;'>to protect</span> <span style='color:green;'>of</span> our information systems, information and energy grid and <span style='color:red;text-decoration:line-through;'>natural gas</span> infrastructure.</div>    </div>", "risks": "", "sector": "Utilities", "sub": "Multi-Utilities", "company": "Sempra"}, {"html": "<div class=\"report-card\">      <h3>ServiceNow <span class=\"symbol\">(NOW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1373715/000137371525000010/now-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1373715/000137371524000030/now-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>In addition, competition</span> <span style='color:green;'>Competition</span> from cloud-based vendors may increase as they <span style='color:red;text-decoration:line-through;'>partner</span> <span style='color:green;'>build business applications or AI powered automation solutions that compete</span> with <span style='color:red;text-decoration:line-through;'>on-premises hardware providers to deliver their cloud platform as an on- premises or data localized solution.</span> <span style='color:green;'>our products and services.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Systems Software", "company": "ServiceNow"}, {"html": "<div class=\"report-card\">      <h3>ServiceNow <span class=\"symbol\">(NOW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1373715/000137371525000010/now-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1373715/000137371524000030/now-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI technology is rapidly evolving and to remain competitive, we will need to make significant investments to continue to successfully develop and incorporate the technology into our products. Our ability to incorporate AI technology into our products depends on the availability and pricing of third- party hardware and software equipment and technical infrastructure. Our competitors or other third parties may develop or incorporate AI into their products more quickly or successfully than us. Other companies may also have or in the future may obtain intellectual proprietary rights that would prevent, limit, or interfere with our ability to make, use, or sell our AI products. For these reasons, among others, we may not be able to compete effectively in the evolving AI market.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Systems Software", "company": "ServiceNow"}, {"html": "<div class=\"report-card\">      <h3>ServiceNow <span class=\"symbol\">(NOW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1373715/000137371525000010/now-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1373715/000137371524000030/now-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our ability to incorporate AI technology into our products depends on the availability and pricing of third- party hardware and software equipment and technical infrastructure.</span></div>    </div>", "risks": "Third Party", "sector": "Information Technology", "sub": "Systems Software", "company": "ServiceNow"}, {"html": "<div class=\"report-card\">      <h3>ServiceNow <span class=\"symbol\">(NOW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1373715/000137371525000010/now-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1373715/000137371524000030/now-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, the EU AI Act places new requirements on providers of AI technologies that will need to be addressed in alignment with various deadlines in the coming years.</span></div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Systems Software", "company": "ServiceNow"}, {"html": "<div class=\"report-card\">      <h3>ServiceNow <span class=\"symbol\">(NOW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1373715/000137371525000010/now-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1373715/000137371524000030/now-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Additionally, the IP ownership and license rights of new technologies <span style='color:green;'>and the use of outputs therefrom,</span> such as <span style='color:red;text-decoration:line-through;'>AI</span> <span style='color:green;'>AI, which we are increasingly building into our product offerings,</span> have not been fully addressed by U.S. courts interpreting current and new laws or regulations, and the use or adoption of such technologies in our products and services may expose us to potential intellectual property claims; breach of a data license, software license, or website terms of service allegations; claimed violations of privacy rights; and other tort claims.</div>    </div>", "risks": "Data and IP Protection", "sector": "Information Technology", "sub": "Systems Software", "company": "ServiceNow"}, {"html": "<div class=\"report-card\">      <h3>ServiceNow <span class=\"symbol\">(NOW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Systems Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1373715/000137371525000010/now-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1373715/000137371524000030/now-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We expect AI to be an increasingly important driver of future growth, although, like many innovations, it presents risks and uncertainties that may impact our ability to realize its desired or anticipated benefits for our business.</span></div>    </div>", "risks": "Disillusionment", "sector": "Information Technology", "sub": "Systems Software", "company": "ServiceNow"}, {"html": "<div class=\"report-card\">      <h3>Sherwin-Williams <span class=\"symbol\">(SHW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Specialty Chemicals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/89800/000008980025000030/shw-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/89800/000008980024000033/shw-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, advances in artificial intelligence technology and increasingly widespread use of generative artificial intelligence tools may increase the risk of unauthorized access to intellectual property, may increase the risk that existing intellectual property law may not provide adequate protection and may introduce potential liability from the use of artificial intelligence tools.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Materials", "sub": "Specialty Chemicals", "company": "Sherwin-Williams"}, {"html": "<div class=\"report-card\">      <h3>Simon Property Group <span class=\"symbol\">(SPG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Retail REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1063761/000155837025001271/spg-20241231x10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1063761/000155837024001532/spg-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Moreover, generative AI or machine learning models may create incomplete, inaccurate, or otherwise flawed outputs, some of which may be difficult to detect. Because of these issues, these models could lead us to make flawed decisions that could result in adverse consequences to us, including exposure to reputational and competitive harm, customer loss, and legal liability.</span></div>    </div>", "risks": "Competition", "sector": "Real Estate", "sub": "Retail REITs", "company": "Simon Property Group"}, {"html": "<div class=\"report-card\">      <h3>Simon Property Group <span class=\"symbol\">(SPG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Retail REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1063761/000155837025001271/spg-20241231x10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1063761/000155837024001532/spg-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, our vendors may incorporate generative AI tools into their services and deliverables without disclosing this use to us, and the providers of these generative AI tools may not meet existing or rapidly evolving regulatory or industry standards with respect to privacy and data protection and may inhibit our or our vendors\u2019 ability to maintain an adequate level of service and experience or confidentiality.</span></div>    </div>", "risks": "Third Party", "sector": "Real Estate", "sub": "Retail REITs", "company": "Simon Property Group"}, {"html": "<div class=\"report-card\">      <h3>Simon Property Group <span class=\"symbol\">(SPG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Retail REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1063761/000155837025001271/spg-20241231x10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1063761/000155837024001532/spg-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, bad actors around the world use increasingly sophisticated methods, including the use of AI, to engage in illegal activities involving the theft and misuse of personal information, confidential information, and intellectual property.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Real Estate", "sub": "Retail REITs", "company": "Simon Property Group"}, {"html": "<div class=\"report-card\">      <h3>Simon Property Group <span class=\"symbol\">(SPG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Retail REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1063761/000155837025001271/spg-20241231x10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1063761/000155837024001532/spg-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We have adopted certain generative AI tools into our systems for specific use cases reviewed by legal and information security. Where a generative AI or machine learning model ingests our proprietary information and makes connections using such data, those technologies may reveal other sensitive, proprietary, or confidential information generated by the model. Additionally, our vendors may incorporate generative AI tools into their services and deliverables without disclosing this use to us, and the providers of these generative AI tools may not meet existing or rapidly evolving regulatory or industry standards with respect to privacy and data protection and may inhibit our or our vendors\u2019 ability to maintain an adequate level of service and experience or confidentiality. Sensitive, proprietary, or confidential information of the Company, our tenants and employees, could be used in a generative AI or machine learning application and we may be unable to control, safeguard, or prevent the use or misuse of such information</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Real Estate", "sub": "Retail REITs", "company": "Simon Property Group"}, {"html": "<div class=\"report-card\">      <h3>Skyworks Solutions <span class=\"symbol\">(SWKS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/4127/000000412724000131/swks-20240927.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/4127/000000412723000030/swks-20230929.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">As a result, certain competitors may be able to adapt more quickly than we can to new or emerging <span style='color:red;text-decoration:line-through;'>technologies</span> <span style='color:green;'>technologies, such as AI,</span> and changes in customer requirements or may be able to devote greater resources to the development, promotion, and sale of their products than we can.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Semiconductors", "company": "Skyworks Solutions"}, {"html": "<div class=\"report-card\">      <h3>Skyworks Solutions <span class=\"symbol\">(SWKS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/4127/000000412724000131/swks-20240927.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/4127/000000412723000030/swks-20230929.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our competitors may be more successful in their use of AI tools, including by developing superior products or improving their operations with the assistance of AI.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Semiconductors", "company": "Skyworks Solutions"}, {"html": "<div class=\"report-card\">      <h3>Skyworks Solutions <span class=\"symbol\">(SWKS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/4127/000000412724000131/swks-20240927.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/4127/000000412723000030/swks-20230929.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our use of AI tools could also result in the loss of confidential information or intellectual property or an inability to claim or enforce intellectual property rights, as well as subject us to risks related to intellectual property infringement or misappropriation, data privacy, cybersecurity, and the unauthorized use of Company data.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Information Technology", "sub": "Semiconductors", "company": "Skyworks Solutions"}, {"html": "<div class=\"report-card\">      <h3>Skyworks Solutions <span class=\"symbol\">(SWKS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/4127/000000412724000131/swks-20240927.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/4127/000000412723000030/swks-20230929.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We are exposed to risks related to the use of AI tools by us and others. Although we are evaluating, and where we believe appropriate, incorporating AI tools into our operations, our use of AI tools may subject us to significant competitive, legal, regulatory and other risks, and there can be no assurance that our use of AI tools will enhance our business operations or result in a benefit to us.</span></div>    </div>", "risks": "Disillusionment", "sector": "Information Technology", "sub": "Semiconductors", "company": "Skyworks Solutions"}, {"html": "<div class=\"report-card\">      <h3>Smurfit Westrock <span class=\"symbol\">(SW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Paper & Plastic Packaging Products & Materials</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/2005951/000200595125000005/smur-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Pricing pressure could arise from, among other things, limited demand growth in the market in question, price reductions by competitors, growth in supply from existing competitors, entry of new competitors into the markets in which we operate, the ability of competitors to capitalize on their economies of scale and create excess product supply, the ability of competitors to operate or successfully relocate or open production facilities in countries where production costs are lower than those in which we operate and the introduction by our competitors of new products, technologies and equipment, including the use of artificial intelligence and machine learning solutions.</span></div>    </div>", "risks": "", "sector": "Materials", "sub": "Paper & Plastic Packaging Products & Materials", "company": "Smurfit Westrock"}, {"html": "<div class=\"report-card\">      <h3>Solventum <span class=\"symbol\">(SOLV)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Technology</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1964738/000196473825000019/solv-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Solventum also intends to build artificial intelligence into many of its digital offerings, which presents risks and challenges that could affect its acceptance, including flawed AI algorithms, insufficient or biased datasets, malfunctions or manipulations, lack of acceptance from its customers or failure to deliver positive outcomes.</span></div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Health Care Technology", "company": "Solventum"}, {"html": "<div class=\"report-card\">      <h3>Southern Company <span class=\"symbol\">(SO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Electric Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Energy'>Energy</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/92122/000009212225000018/so-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/92122/000009212224000009/so-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The traditional electric operating companies are experiencing projected demand that exceeds recent experience, creating the need for new power generating resources and transmission facilities. The majority of this demand is driven by the power needs and projected power needs of data centers to serve an increasingly digital economy and to support artificial intelligence. Other demands are coming from new industrial facilities with advanced manufacturing processes for such products as electric vehicles and batteries. Ensuring that incremental revenues from these projected new demands cover incremental costs and risks will be critical to continuing the traditional electric operating companies' value proposition to customers. The new nature of these industries, additional capital spending needs, and uncertainties on the actual capacity required to satisfy the projected new demands of these new industries may impact the traditional electric operating companies.</span></div>    </div>", "risks": "Energy", "sector": "Utilities", "sub": "Electric Utilities", "company": "Southern Company"}, {"html": "<div class=\"report-card\">      <h3>Southern Company <span class=\"symbol\">(SO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Electric Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/92122/000009212225000018/so-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/92122/000009212224000009/so-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>As artificial intelligence continues to evolve, new technologies and increased computing power could lead to new attack techniques and more sophisticated attacks.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Utilities", "sub": "Electric Utilities", "company": "Southern Company"}, {"html": "<div class=\"report-card\">      <h3>Southwest Airlines <span class=\"symbol\">(LUV)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Passenger Airlines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/92380/000009238025000024/luv-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/92380/000009238024000027/luv-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Although the Company believes it diligently evaluates, tests, and deploys a limited amount of AI-related technologies, the Company could face numerous AI-related challenges, such as cybersecurity vulnerabilities, algorithmic biases or errors, evolving regulatory requirements across jurisdictions, and potential competitive disadvantage if the Company\u2019s competitors deploy AI technologies more quickly or more successfully.</span></div>    </div>", "risks": "Competition", "sector": "Industrials", "sub": "Passenger Airlines", "company": "Southwest Airlines"}, {"html": "<div class=\"report-card\">      <h3>Southwest Airlines <span class=\"symbol\">(LUV)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Passenger Airlines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/92380/000009238025000024/luv-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/92380/000009238024000027/luv-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Advances in computer capabilities, AI-enhanced attacks, social engineering, phishing, cryptography, inadequate facility security, insider threats, or other technological developments may result in a compromise or breach of the Company\u2019s critical operations systems, physical assets, or technology the Company uses to safeguard confidential, personal, or proprietary information.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Industrials", "sub": "Passenger Airlines", "company": "Southwest Airlines"}, {"html": "<div class=\"report-card\">      <h3>Southwest Airlines <span class=\"symbol\">(LUV)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Passenger Airlines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/92380/000009238025000024/luv-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/92380/000009238024000027/luv-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Although the Company believes it diligently evaluates, tests, and deploys a limited amount of AI-related technologies, the Company could face numerous AI- related challenges, such as cybersecurity vulnerabilities, algorithmic biases or errors, evolving regulatory requirements across jurisdictions, and potential competitive disadvantage if the Company\u2019s competitors deploy AI technologies more quickly or more successfully.</span></div>    </div>", "risks": "Bias", "sector": "Industrials", "sub": "Passenger Airlines", "company": "Southwest Airlines"}, {"html": "<div class=\"report-card\">      <h3>Southwest Airlines <span class=\"symbol\">(LUV)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Passenger Airlines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/92380/000009238025000024/luv-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/92380/000009238024000027/luv-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>The algorithms and models utilized in generative AI systems may have limitations, including biases, errors, or inability to handle certain data types or scenarios.</span></div>    </div>", "risks": "Bias", "sector": "Industrials", "sub": "Passenger Airlines", "company": "Southwest Airlines"}, {"html": "<div class=\"report-card\">      <h3>Southwest Airlines <span class=\"symbol\">(LUV)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Passenger Airlines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/92380/000009238025000024/luv-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/92380/000009238024000027/luv-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>While the Company expects its AI adoption to enhance its operations, there can be no assurance of its effectiveness.</span></div>    </div>", "risks": "Disillusionment", "sector": "Industrials", "sub": "Passenger Airlines", "company": "Southwest Airlines"}, {"html": "<div class=\"report-card\">      <h3>Stanley Black & Decker <span class=\"symbol\">(SWK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Industrial Machinery & Supplies & Components</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/93556/000009355625000007/swk-20241228.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/93556/000009355624000032/swk-20231230.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The Company\u2019s information systems and data may be vulnerable to cybersecurity threats and incidents which can include uncoordinated individual attempts to gain unauthorized access to information technology (\"IT\") systems, sophisticated and targeted measures known as advanced persistent threats, breaches due to human error, malfeasance, or other cybersecurity incidents directed at the Company, its products, services and technologies, including those leveraging \u201cInternet of Things\u201d <span style='color:green;'>or generative artificial intelligence</span> capabilities, its customers and/or its third-party service providers, including cloud providers.</div>    </div>", "risks": "", "sector": "Industrials", "sub": "Industrial Machinery & Supplies & Components", "company": "Stanley Black & Decker"}, {"html": "<div class=\"report-card\">      <h3>Starbucks <span class=\"symbol\">(SBUX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Restaurants</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/829224/000082922424000057/sbux-20240929.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/829224/000082922423000058/sbux-20231001.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Unauthorized access, theft, use, <span style='color:red;text-decoration:line-through;'>destruction</span> <span style='color:green;'>destruction,</span> or other compromises are becoming increasingly sophisticated and may occur through a variety of methods, including attacks using malicious code, vulnerabilities in software, <span style='color:red;text-decoration:line-through;'>hardware</span> <span style='color:green;'>hardware,</span> or other infrastructure (including systems used by our supply chain), system misconfigurations, <span style='color:red;text-decoration:line-through;'>phishing</span> <span style='color:green;'>phishing, deepfakes, ransomware, malware,</span> or social engineering.</div>    </div>", "risks": "Deepfakes; Malicious Actors", "sector": "Consumer Discretionary", "sub": "Restaurants", "company": "Starbucks"}, {"html": "<div class=\"report-card\">      <h3>Starbucks <span class=\"symbol\">(SBUX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Restaurants</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/829224/000082922424000057/sbux-20240929.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/829224/000082922423000058/sbux-20231001.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Additionally, the techniques and sophistication used to conduct cyber-attacks and compromise information technology systems, as well as the sources and targets of these attacks, change frequently and are often not recognized until such attacks are launched or have been in place for a period of time. The rapid evolution and increased adoption of artificial intelligence technologies <span style='color:green;'>by attackers</span> amplifies these concerns.</div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Discretionary", "sub": "Restaurants", "company": "Starbucks"}, {"html": "<div class=\"report-card\">      <h3>Starbucks <span class=\"symbol\">(SBUX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Restaurants</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/829224/000082922424000057/sbux-20240929.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/829224/000082922423000058/sbux-20231001.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Negative postings or comments on social media or networking websites about Starbucks, even if inaccurate or malicious, have in the past, and could in the future, generate negative publicity about Starbucks across media channels that could damage the value of our brand. It may be difficult to address such negative publicity, including as a result of fictitious media content (such as content produced by generative artificial intelligence or bad actors) across media channels.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Discretionary", "sub": "Restaurants", "company": "Starbucks"}, {"html": "<div class=\"report-card\">      <h3>Starbucks <span class=\"symbol\">(SBUX)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Restaurants</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/829224/000082922424000057/sbux-20240929.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/829224/000082922423000058/sbux-20231001.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Any failure, inadequacy, or interruption of these systems could harm our ability to effectively operate and grow our business and could adversely affect our financial results. In addition, the technologies and artificial intelligence tools we are incorporating into certain aspects of our operations may not generate the intended efficiencies and may impact our business results.</span></div>    </div>", "risks": "Disillusionment", "sector": "Consumer Discretionary", "sub": "Restaurants", "company": "Starbucks"}, {"html": "<div class=\"report-card\">      <h3>State Street Corporation <span class=\"symbol\">(STT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/93751/000009375125000111/stt-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/93751/000009375124000498/stt-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our success and competitive position may depend on our ability to develop and market new and innovative services, to adopt or develop new technologies, <span style='color:green;'>including those incorporating artificial intelligence,</span> to implement efficiencies into our operational processes, to bring new services to market in a timely fashion at competitive prices, to integrate existing and future products and services effectively into State Street Alpha and State Street Digital, to continue to expand our relationships with existing <span style='color:red;text-decoration:line-through;'>clients,</span> <span style='color:green;'>clients</span> and to attract new <span style='color:red;text-decoration:line-through;'>clients.</span> <span style='color:green;'>clients, to maintain and enhance our reputation, to manage risk and to effectively and efficiently operate in a highly regulated environment.</span></div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "State Street Corporation"}, {"html": "<div class=\"report-card\">      <h3>Steris <span class=\"symbol\">(STE)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1757898/000175789824000008/ste-20240331.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1757898/000175789823000005/ste-20230331.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">In addition, we rely on networks and services, including internet sites, cloud and software-as-a-service solutions, data <span style='color:red;text-decoration:line-through;'>hosting</span> <span style='color:green;'>hosting, electronic payment systems,</span> and processing facilities and tools and other hardware, software and technical applications and platforms, <span style='color:green;'>including some that employ artificial intelligence (\u201cAI\u201d),</span> some of which are managed, hosted, provided and/or used by third-parties or their vendors, to assist in conducting our business.</div>    </div>", "risks": "Third Party", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Steris"}, {"html": "<div class=\"report-card\">      <h3>Stryker Corporation <span class=\"symbol\">(SYK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/310764/000031076425000023/syk-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/310764/000031076424000024/syk-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The rapid advancement of these technologies presents opportunities for us in research, manufacturing, commercialization, and other business endeavors, but also entails risks, including that AI-generated content, analyses, or recommendations we utilize could be deficient, that our competitors may more quickly or effectively adopt AI capabilities, or that our use of AI or other emerging technologies increases regulatory, cybersecurity and other significant risks.</span></div>    </div>", "risks": "Competition", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Stryker Corporation"}, {"html": "<div class=\"report-card\">      <h3>Stryker Corporation <span class=\"symbol\">(SYK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/310764/000031076425000023/syk-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/310764/000031076424000024/syk-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Emerging technologies such as generative artificial intelligence (AI) may be used by malicious actors to create more targeted phishing narratives, spread disinformation about us or our products or otherwise strengthen social engineering capabilities.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Stryker Corporation"}, {"html": "<div class=\"report-card\">      <h3>Stryker Corporation <span class=\"symbol\">(SYK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Health Care Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/310764/000031076425000023/syk-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/310764/000031076424000024/syk-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Furthermore, if we are unable to effectively manage the use of AI technologies by our employees and service providers, our confidential information, intellectual property and reputation could be put at risk.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Health Care", "sub": "Health Care Equipment", "company": "Stryker Corporation"}, {"html": "<div class=\"report-card\">      <h3>Supermicro <span class=\"symbol\">(SMCI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Hardware, Storage & Peripherals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1375365/000137536525000004/smci-20240630.htm\" target=\"_blank\">2025</a> /          <a href=\"https://d18rn0p25nwr6d.cloudfront.net/CIK-0001375365/d343008e-40ee-4f5f-82bb-cb9b5b8ce952.html\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">The market for server and storage solutions is intensely competitive and rapidly <span style='color:red;text-decoration:line-through;'>changing.</span> <span style='color:green;'>changing, particularly with the emergence of new markets (such as AI).</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Technology Hardware, Storage & Peripherals", "company": "Supermicro"}, {"html": "<div class=\"report-card\">      <h3>Supermicro <span class=\"symbol\">(SMCI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Hardware, Storage & Peripherals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1375365/000137536525000004/smci-20240630.htm\" target=\"_blank\">2025</a> /          <a href=\"\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Factors, in addition to those outlined elsewhere in this filing, that may affect the trading price of our common stock include: <span style='color:green;'>\u2022The circumstances discussed in the Explanatory Note in this Annual Report; \u2022If our common stock is delisted or the possibility thereof; \u2022False or misleading press releases or articles regarding our company or our products, including the Report and similar publications;</span> \u2022Actual or anticipated variations in our operating results, including failure to achieve previously provided guidance; \u2022Announcements of technological innovations, new products or product enhancements, strategic alliances or significant agreements by us or by our competitors; <span style='color:green;'>\u2022Continued rapid evolution of the markets in which we compete, including AI;</span> \u2022Changes in recommendations by any securities analysts that elect to follow our common stock; \u2022The financial projections we may provide to the public, any changes in these projections or our failure to meet these projections; <span style='color:red;text-decoration:line-through;'>\u2022False or misleading press releases or articles regarding our company or our products;</span> \u2022The loss of a key <span style='color:red;text-decoration:line-through;'>customer;</span> <span style='color:green;'>customer or supplier;</span> \u2022The loss of key personnel; \u2022Technological advancements rendering our products less valuable; \u2022Lawsuits filed against us; \u2022Changes in <span style='color:green;'>laws or regulations applicable to us (including export control regulations); \u2022Increased scrutiny from stockholders, regulators, and others regarding our corporate sustainability practices; \u2022Changes in</span> operating performance and stock market valuations of other companies that sell similar products; \u2022Price and volume fluctuations in the overall stock market; \u2022Market conditions in our industry, the industries of our customers and the economy as a whole; and \u2022Other events or factors, including those resulting from war, incidents of terrorism, political instability, pandemics or responses to these events.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Technology Hardware, Storage & Peripherals", "company": "Supermicro"}, {"html": "<div class=\"report-card\">      <h3>Supermicro <span class=\"symbol\">(SMCI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Hardware, Storage & Peripherals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Export Controls'>Export Controls</span><span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1375365/000137536525000004/smci-20240630.htm\" target=\"_blank\">2025</a> /          <a href=\"\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>In addition, we</span> <span style='color:green;'>We</span> are subject to U.S. and other applicable trade control regulations that restrict with whom we may transact business, including the trade sanctions enforced by the U.S. Treasury, Office of Foreign Assets <span style='color:red;text-decoration:line-through;'>Control.</span> <span style='color:green;'>Control and the export controls enforced by the U.S. Commerce Department\u2019s Bureau of Industry and Security.</span> If we fail to comply with laws and regulations restricting dealings with sanctioned countries or companies and/or persons on restricted lists, we may be subject to civil or criminal penalties. Any future violations could have an adverse impact on our ability to sell our products to United States federal, state and local government and related entities. We have business relationships with companies in China and elsewhere in eastern Europe who have been, or may in the future be, added to <span style='color:red;text-decoration:line-through;'>the</span> <span style='color:green;'>a</span> restricted party list. We take steps to minimize business disruption when these situations arise; however, we may be required to terminate or modify such relationships if our activities are prohibited by U.S. <span style='color:green;'>or other applicable</span> laws. Further, our association with these parties could subject us to greater scrutiny or reputational harm among current or prospective customers, partners, suppliers, investors, other parties doing business with us or using our products, <span style='color:green;'>government enforcement agencies,</span> or the general public. The United States and other countries continually update their lists of export-controlled items and technologies, and may impose new or more-restrictive export requirements on our products in the future. As a result of regulatory changes, we may be required to obtain licenses or other authorizations to continue supporting existing customers or to supply existing products to new customers in China, eastern Europe and elsewhere. Further escalations in trade restrictions or hostilities, particularly between the United States and China, could impede our ability to sell or support our products. <span style='color:red;text-decoration:line-through;'>We do not</span> <span style='color:green;'>Although we historically sold products into Russia before broad sanctions were imposed, we no longer</span> sell products or provide services to <span style='color:red;text-decoration:line-through;'>the Russian Federal Security Service (the \u201cFSB\u201d).</span> <span style='color:green;'>Russia.</span> We had last recorded revenue from Russia <span style='color:green;'>in February 2022. Moreover, the increasing focus</span> on <span style='color:red;text-decoration:line-through;'>February 23, 2022.</span> <span style='color:green;'>the risks and strategic importance of AI technologies has resulted in regulatory restrictions that target products and services capable of enabling or facilitating AI and may in the future result in additional restrictions impacting some or all of our product and service offerings. Concerns regarding third-party use of AI for purposes contrary to local governmental interests, including concerns relating to the misuse of AI applications, models, and solutions, has resulted in and could in the future result in unilateral or multilateral restrictions on products that can be used for training, modifying, tuning, and deploying large language models (\u201cLLMs\u201d). Such restrictions have limited and could in the future limit the ability of downstream customers and users worldwide to acquire, deploy and use systems that include our products, software, and services, and negatively impact our business and financial results. Such restrictions could include additional unilateral or multilateral export controls on certain products or technology, including but not limited to AI technologies and high-performance computing. As geopolitical tensions have increased, products containing semiconductors associated with AI, including GPUs and associated products, are increasingly the focus of export control restrictions proposed by stakeholders in the U.S. and its allies. The United States has imposed unilateral controls restricting GPUs and associated products, and it is likely that additional unilateral or multilateral controls will be adopted. Such controls have been and may again be very broad in scope and application, prohibit us from exporting our products to any or all customers in one or more markets, including but not limited to China, and could tangentially negatively impact our warehousing locations and options, or could impose other conditions that limit our ability to serve demand abroad and could negatively and materially impact our business, revenue and financial results. Export controls targeting products containing GPUs and semiconductors associated with AI, which have been imposed and are increasingly likely to be further tightened, would further restrict our ability to export our technology, products, or services even though competitors may not be subject to similar restrictions, creating a competitive disadvantage for us and negatively impacting our business and financial results. Export controls targeting products containing GPUs and semiconductors associated with AI have subjected and may in the future subject downstream users of our products to additional restrictions on the use, resale, repair, or transfer of our products, negatively impacting our business and financial results. Controls could negatively impact our cost and/or ability to provide services. Export controls could disrupt our supply chain and distribution channels, negatively impacting our ability to serve demand, including in markets outside China. Repeated changes in the export control rules are likely to impose compliance burdens on our business and our customers, negatively and materially impacting our business. Increasing use of economic sanctions and export controls has impacted and may in the future impact demand for our products or services, negatively impacting our business and financial results. Reduced demand due to export controls could also lead to excess inventory or cause us to incur related supply charges. Additional unilateral or multilateral controls are also likely to include deemed export control limitations that may also have negative impacts. Additional export restrictions may not only impact our ability to serve overseas markets, but also provoke responses from foreign governments, including China, that negatively impact our supply chain or our ability to provide our products and services to customers in all markets worldwide, which could also substantially reduce our revenue. In October 2022, U.S. export restrictions and export licensing requirements were imposed targeting China\u2019s semiconductor and supercomputing industries. These restrictions impact exports of software, hardware, equipment and technology used to develop, produce or manufacture certain chips in China (including Hong Kong). At the same time, export restrictions and export license requirements were also imposed on certain GPUs and advanced integrated circuits, as well as computing equipment containing such components, with a focus on China (including Hong Kong). These restrictions impacted certain of our products, including products that contain the NVIDIA A100 and H100 integrated circuits, among others. In November 2023, the export control restrictions on advanced integrated circuits, supercomputing and other end uses were revised and further expanded to cover additional countries where we sell our products, including in the Middle East, and additional parties based on the location of their headquarters, or the headquarters of their ultimate parent. Compliance with ever-changing regulations is complex and time consuming. We may experience delays in implementing procedures to address the changing regulatory requirements. In January 2025, the U.S. export control regulations targeting advanced integrated circuits and computing were further revised to include a worldwide authorization requirement for certain of our advanced computing products. New license exceptions were added to the regulations and allow us to export in some cases without the need for an export license, thus expanding upon previous authorizations. However, these new regulations will, depending on the country and ultimate consignee, also place new limits on the number of advanced computing products that we can export to each ultimate consignee per calendar year, and the number of advanced computing products that the Commerce Department will license per-country over a given period to all exporters in the aggregate. These new limitations create a competitive process for obtaining the product allocation associated with these new government authorizations and therefore could disadvantage us against certain of our competitors. The limitations could also prevent us from selling our advanced computing products to the full extent of customer demand in certain countries that have not historically been subject to these limitations. In some cases, we rely on channel partners and third parties to distribute and resell our products globally. If channel partners, or their customers, do not adhere to the applicable trade compliance requirements, this can subject us to greater scrutiny or reputational harm among current or prospective customers, partners, suppliers, investors, other parties doing business with us or using our products, government enforcement agencies, or the general public. In the event export controls require us to transition some operations out of certain geographies, such transitions could be costly and time consuming, and adversely affect our operations during any such transition period. To the extent that a customer requires products covered by the licensing requirements, we may seek a license for the customer. However, the licensing process is time-consuming. We have no assurance that any such license will be granted or that the license application will be acted upon in a timely manner or at all. Even if a license is offered, it may impose burdensome conditions that we or our customer or end users cannot or decide not to accept. The process to obtain licenses required under recently adopted export control regulations is complicated and time consuming in the event we determine to pursue them, and there are no assurances they may be granted at all. Our competitive position and future results may be harmed, over the long-term, if there are further changes in export controls, including further expansion of the geographic, customer, end use, deemed export, or product scope of the controls, if customers purchase product from competitors, if customers develop their own internal solution, if we are unable to provide contractual warranty or other extended service obligations, if licenses are not granted in a timely manner or denied to significant customers or if we incur significant transition costs. Even if requested licenses are granted, the licenses may be temporary or impose burdensome conditions that we or our customers or end users cannot or choose not to fulfill. The licensing requirements may benefit certain of our competitors, as the licensing process will make our technical support efforts more cumbersome and less certain and encourage customers to pursue alternatives to our products. Given the increasing strategic importance of AI and rising geopolitical tensions, the export control rules may change again at any time and further subject a wider range of our products to export restrictions and licensing requirements, negatively impacting our business and financial results. In the event of such change, we may be unable to sell our inventory of such products and may be unable to develop replacement products not subject to the licensing requirements, effectively excluding us from markets subject to such restrictions, as well as other impacted markets. Any new control that impacts a wider range of our products would likely have a disproportionate impact on us and may disadvantage us against certain of our competitors that sell products that are outside the scope of such control. Finally, our business depends on our ability to receive consistent and reliable supplies from our overseas partners, especially in Taiwan. Any new restrictions that negatively impact our ability to receive supply of components, parts, or services from Taiwan, would negatively impact our business and financial results. Although we attempt to ensure that we, our suppliers, resellers, and partners comply with the applicable import, export, and sanctions laws, we cannot guarantee full compliance by all. Actions of our suppliers, resellers and partners are not within our complete control, and our products could be re- exported to sanctioned persons or countries or provided by our retailers to third persons in contravention of our requirements or instructions or the laws. In addition, there are inherent limitations to the effectiveness of any policies, procedures, and internal controls relating to such compliance, and there can be no assurance that such procedures or internal controls will work effectively at all times or protect us against liability under anti- corruption, sanctions or other laws for actions taken by us, our resellers or partners. Any such potential violation by us, our suppliers, resellers, or our partners could have negative consequences, including government inquiries, investigations, enforcement actions, monetary fines, or civil and/or criminal penalties, and our reputation, brand, and revenue may be harmed.</span></div>    </div>", "risks": "Export Controls; Competition", "sector": "Information Technology", "sub": "Technology Hardware, Storage & Peripherals", "company": "Supermicro"}, {"html": "<div class=\"report-card\">      <h3>Synchrony Financial <span class=\"symbol\">(SYF)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Consumer Finance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1601712/000160171225000044/syf-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1601712/000160171224000047/syf-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The pace of technology change is rapid and our industry is intensely <span style='color:red;text-decoration:line-through;'>competitive, and we cannot assure you that we will</span> <span style='color:green;'>competitive. We may not</span> be able to timely deploy <span style='color:red;text-decoration:line-through;'>in</span> new <span style='color:green;'>technologies, including emerging</span> technologies <span style='color:green;'>such as generative artificial intelligence and blockchain, where their adoption is rapidly accelerating,</span> as critical systems and applications become obsolete and better ones become available or implement adequate controls to manage the risks associated with these technologies.</div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Consumer Finance", "company": "Synchrony Financial"}, {"html": "<div class=\"report-card\">      <h3>Synopsys <span class=\"symbol\">(SNPS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/883241/000088324124000024/snps-20241031.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/883241/000088324123000019/snps-20231031.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If we fail to develop and timely offer products with AI features, if such products fail to meet our customers\u2019 demands, if these products fail to operate as expected, or if our competitors incorporate AI into their products more quickly or more successfully than we do, we may experience brand or reputational harm and lose our competitive position, our products may become obsolete, and our business, operating results or financial condition could be adversely affected.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Application Software", "company": "Synopsys"}, {"html": "<div class=\"report-card\">      <h3>Synopsys <span class=\"symbol\">(SNPS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/883241/000088324124000024/snps-20241031.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/883241/000088324123000019/snps-20231031.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">The techniques used to obtain unauthorized access to networks or to sabotage systems of companies such as ours change <span style='color:red;text-decoration:line-through;'>frequently</span> <span style='color:green;'>frequently, increasingly leverage technologies such as AI,</span> and generally are not recognized until launched against a target.</div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Application Software", "company": "Synopsys"}, {"html": "<div class=\"report-card\">      <h3>Synopsys <span class=\"symbol\">(SNPS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/883241/000088324124000024/snps-20241031.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/883241/000088324123000019/snps-20231031.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We may not be successful in our AI initiatives, which could adversely affect our business, operating results or financial condition.</span></div>    </div>", "risks": "Disillusionment", "sector": "Information Technology", "sub": "Application Software", "company": "Synopsys"}, {"html": "<div class=\"report-card\">      <h3>Sysco <span class=\"symbol\">(SYY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Food Distributors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/96021/000009602124000128/syy-20240629.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/96021/000009602123000117/syy-20230701.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Additionally, increased competition from non-traditional sources (such as club stores and commercial wholesale outlets with lower cost structures), online direct food <span style='color:red;text-decoration:line-through;'>wholesalers and</span> <span style='color:green;'>wholesalers,</span> cash and carry <span style='color:red;text-decoration:line-through;'>operations</span> <span style='color:green;'>operations, and competitors that are utilizing technology, including artificial intelligence and machine learning technologies,</span> have served to further increase pressure on the industry\u2019s profit margins.</div>    </div>", "risks": "Competition", "sector": "Consumer Staples", "sub": "Food Distributors", "company": "Sysco"}, {"html": "<div class=\"report-card\">      <h3>Sysco <span class=\"symbol\">(SYY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Food Distributors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/96021/000009602124000128/syy-20240629.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/96021/000009602123000117/syy-20230701.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We also face competitive risks if we fail to adopt artificial intelligence or other machine-learning technologies in a timely manner.</span></div>    </div>", "risks": "Competition", "sector": "Consumer Staples", "sub": "Food Distributors", "company": "Sysco"}, {"html": "<div class=\"report-card\">      <h3>Sysco <span class=\"symbol\">(SYY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Food Distributors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/96021/000009602124000128/syy-20240629.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/96021/000009602123000117/syy-20230701.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Cyber threats are constantly evolving, are becoming more sophisticated <span style='color:green;'>and frequent, including through the introduction of viruses and malware (such as ransomware) and the use of artificial intelligence by the threat actors,</span> and are being made by groups and individuals with a wide range of expertise and motives, and this increases the difficulty of detecting and successfully defending against them.</div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Staples", "sub": "Food Distributors", "company": "Sysco"}, {"html": "<div class=\"report-card\">      <h3>Sysco <span class=\"symbol\">(SYY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Food Distributors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/96021/000009602124000128/syy-20240629.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/96021/000009602123000117/syy-20230701.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The increased use of social media may increase the likelihood and magnitude of negative publicity across media channels, regardless of its accuracy or the reputability of its source, including as a result of fictitious media content (such as content produced by generative artificial intelligence or bad actors).</span></div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Staples", "sub": "Food Distributors", "company": "Sysco"}, {"html": "<div class=\"report-card\">      <h3>T-Mobile US <span class=\"symbol\">(TMUS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Wireless Telecommunication Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Skills'>Skills</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1283699/000128369925000012/tmus-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1283699/000128369924000008/tmus-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, as we continue to make significant investments in new technologies and new business areas, we are increasingly dependent on being able to hire and retain technically skilled employees, including those with expertise in AI and machine learning.</span></div>    </div>", "risks": "Skills", "sector": "Communication Services", "sub": "Wireless Telecommunication Services", "company": "T-Mobile US"}, {"html": "<div class=\"report-card\">      <h3>T-Mobile US <span class=\"symbol\">(TMUS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Wireless Telecommunication Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span><span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1283699/000128369925000012/tmus-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1283699/000128369924000008/tmus-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We must also maintain rigorous data security and privacy safeguards, ensure our AI-driven solutions comply with evolving regulatory standards, and mitigate potential issues such as algorithmic bias or unintended operational disruptions. Additionally, implementing these digital solutions often requires substantial capital and operational expenditures, extensive employee training, specialized skill sets that may be difficult to source, and close coordination with multiple third-party vendors and partners. If we fail to execute these initiatives effectively, our ability to realize the intended benefits of digital transformation may be compromised.</span></div>    </div>", "risks": "Third Party; Bias", "sector": "Communication Services", "sub": "Wireless Telecommunication Services", "company": "T-Mobile US"}, {"html": "<div class=\"report-card\">      <h3>T-Mobile US <span class=\"symbol\">(TMUS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Wireless Telecommunication Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1283699/000128369925000012/tmus-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1283699/000128369924000008/tmus-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We are engaged in complex digital transformation efforts intended to streamline operations, enhance customer experience, and improve our overall competitiveness. These initiatives involve integrating emerging and rapidly evolving technologies, reconfiguring internal processes, and implementing advanced data analytics and AI-driven tools, including those developed through our partnerships with a number of third-party providers. The successful execution of our planned transformation is subject to significant uncertainties. For example, we may face challenges in harmonizing complex system architectures, integrating new platforms with legacy infrastructure, and managing large volumes of data from disparate sources. We must also maintain rigorous data security and privacy safeguards, ensure our AI-driven solutions comply with evolving regulatory standards, and mitigate potential issues such as algorithmic bias or unintended operational disruptions. Additionally, implementing these digital solutions often requires substantial capital and operational expenditures, extensive employee training, specialized skill sets that may be difficult to source, and close coordination with multiple third-party vendors and partners. If we fail to execute these initiatives effectively, our ability to realize the intended benefits of digital transformation may be compromised. Even if we successfully deploy these capabilities, customer adoption and employee acceptance may be slower than anticipated, diminishing the expected improvements to efficiency, service quality, or revenue generation.</span></div>    </div>", "risks": "Disillusionment", "sector": "Communication Services", "sub": "Wireless Telecommunication Services", "company": "T-Mobile US"}, {"html": "<div class=\"report-card\">      <h3>T. Rowe Price <span class=\"symbol\">(TROW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1113169/000111316925000007/trow-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1113169/000111316924000007/trow-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If our use of AI becomes controversial, we may experience brand or reputational harm, competitive harm, or legal liability.</span></div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "T. Rowe Price"}, {"html": "<div class=\"report-card\">      <h3>T. Rowe Price <span class=\"symbol\">(TROW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1113169/000111316925000007/trow-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1113169/000111316924000007/trow-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, the complexity of many AI models makes it challenging to understand why they are generating particular outputs. This limited transparency increases the challenges associated with assessing the proper operation of AI technology, understanding and monitoring the capabilities of the AI technology developed by third parties, and, to that extent, are dependent in part on the manner in which those third parties develop and train their models, including risks arising from the inclusion of any unauthorized material in the training data for their models, and the effectiveness of the steps these third parties have taken to limit the risks associated with the output of their models, matters over which we may have limited visibility. Any of these risks could expose us to liability or adverse legal or regulatory consequences and harm our reputation and the public perception of our business or the effectiveness of our security measures.</span></div>    </div>", "risks": "Third Party", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "T. Rowe Price"}, {"html": "<div class=\"report-card\">      <h3>T. Rowe Price <span class=\"symbol\">(TROW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1113169/000111316925000007/trow-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1113169/000111316924000007/trow-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition to our use of AI technologies, we are exposed to risks arising from the use of AI technologies by bad actors to commit fraud and misappropriate funds and to facilitate cyberattacks. Generative AI, if used to perpetrate fraud or launch cyberattacks, could result in losses, liquidity outflows, or other adverse effects at a particular financial institution or exchange. If our use of AI becomes controversial, we may experience brand or reputational harm, competitive harm, or legal liability.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "T. Rowe Price"}, {"html": "<div class=\"report-card\">      <h3>T. Rowe Price <span class=\"symbol\">(TROW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1113169/000111316925000007/trow-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1113169/000111316924000007/trow-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The legal and regulatory environment relating to AI is uncertain and rapidly evolving, in the U.S., and internationally, and includes regulation targeted specifically at AI technology, as well as provisions in intellectual property, privacy, consumer protection, employment and other laws applicable to the use of AI. For example, any failure to properly safeguard and maintain personal data in connection with our use of AI creates risk of us violating privacy laws and regulations in jurisdictions we operate in, and could subject us to disclosure obligations, regulatory investigations, actions or fines, and litigation.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "T. Rowe Price"}, {"html": "<div class=\"report-card\">      <h3>T. Rowe Price <span class=\"symbol\">(TROW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Asset Management & Custody Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1113169/000111316925000007/trow-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1113169/000111316924000007/trow-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI models, particularly generative AI models, may produce output or take action that is incorrect or outdated, that result in the release of personal, confidential or proprietary information, that reflect biases included in the data on which they are trained or introduced during the training or fine tuning process, that infringe on the intellectual property rights of others, or that is otherwise harmful.</span></div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Asset Management & Custody Banks", "company": "T. Rowe Price"}, {"html": "<div class=\"report-card\">      <h3>Take-Two Interactive <span class=\"symbol\">(TTWO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Interactive Home Entertainment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/946581/000162828024024623/ttwo-20240331.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/946581/000162828023019851/ttwo-20230331.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, intellectual property ownership surrounding AI technologies has not been fully addressed by U.S. courts or other federal or state laws or regulations, and the use or adoption of third-party AI technologies into our products and services may result in exposure to claims of copyright infringement or other intellectual property misappropriation.</span></div>    </div>", "risks": "Third Party", "sector": "Communication Services", "sub": "Interactive Home Entertainment", "company": "Take-Two Interactive"}, {"html": "<div class=\"report-card\">      <h3>Targa Resources <span class=\"symbol\">(TRGP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Energy</span>          <span class=\"tag\">Oil & Gas Storage & Transportation</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1389170/000095017025023983/trgp-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1389170/000095017024015841/trgp-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">As the breadth and complexity of the technologies we use continue to grow, including as a result of the use of <span style='color:green;'>artificial intelligence,</span> mobile devices, cloud <span style='color:red;text-decoration:line-through;'>services,</span> <span style='color:green;'>computing,</span> open source software, social media and the increased reliance on devices connected to the internet, the potential risk of security breaches and cybersecurity attacks also increases.</div>    </div>", "risks": "", "sector": "Energy", "sub": "Oil & Gas Storage & Transportation", "company": "Targa Resources"}, {"html": "<div class=\"report-card\">      <h3>Target Corporation <span class=\"symbol\">(TGT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Consumer Staples Merchandise Retail</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/27419/000002741925000018/tgt-20250201.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/27419/000002741924000032/tgt-20240203.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our ability to <span style='color:green;'>accurately</span> predict <span style='color:green;'>consumer demand</span> and adapt to changing consumer preferences depends on many factors, including obtaining accurate and relevant data on guest preferences, successfully implementing new technologies and capabilities <span style='color:green;'>(including artificial intelligence),</span> emphasizing relevant merchandise categories, effectively managing our inventory levels, and implementing competitive and effective pricing and promotion strategies.</div>    </div>", "risks": "", "sector": "Consumer Staples", "sub": "Consumer Staples Merchandise Retail", "company": "Target Corporation"}, {"html": "<div class=\"report-card\">      <h3>Target Corporation <span class=\"symbol\">(TGT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Consumer Staples Merchandise Retail</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/27419/000002741925000018/tgt-20250201.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/27419/000002741924000032/tgt-20240203.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, we may be unable to match or surpass the advances in technologies and capabilities (including artificial intelligence) that our competitors implement for consumer-facing platforms or for internal operations, which could adversely affect our competitive position. Furthermore, generative artificial intelligence presents emerging ethical issues and could negatively impact our guests and team members. If our use of generative artificial intelligence becomes controversial or is inaccurate or ineffective, our reputation and competitive position could be adversely affected.</span></div>    </div>", "risks": "Competition", "sector": "Consumer Staples", "sub": "Consumer Staples Merchandise Retail", "company": "Target Corporation"}, {"html": "<div class=\"report-card\">      <h3>Target Corporation <span class=\"symbol\">(TGT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Consumer Staples Merchandise Retail</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/27419/000002741925000018/tgt-20250201.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/27419/000002741924000032/tgt-20240203.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">However, we may be unable to anticipate security <span style='color:red;text-decoration:line-through;'>incidents</span> <span style='color:green;'>incidents, detect attacks,</span> or implement adequate preventive measures as cyber threats continue to evolve and cyberattacks become more sophisticated and frequent, including through the introduction of viruses and malware (such as ransomware) and the use of <span style='color:green;'>enhanced technologies and capabilities (including</span> artificial <span style='color:red;text-decoration:line-through;'>intelligence</span> <span style='color:green;'>intelligence)</span> by threat actors.</div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Staples", "sub": "Consumer Staples Merchandise Retail", "company": "Target Corporation"}, {"html": "<div class=\"report-card\">      <h3>TE Connectivity <span class=\"symbol\">(TEL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Electronic Manufacturing Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1385157/000155837024015227/tel-20240927x10k.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1385157/000155837023018833/tel-20230929x10k.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI algorithms and training methodologies may be flawed, and datasets may be overbroad, insufficient, or contain biased information. Moreover, the use of AI may give rise to risks related to harmful content, accuracy, bias, intellectual property infringement or misappropriation, defamation, data privacy, cybersecurity, and health and safety, among others, and also bring the possibility of new or enhanced governmental or regulatory scrutiny, litigation, or other legal liability, or ethical concerns that could adversely affect our business, reputation, or financial results.</span></div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Electronic Manufacturing Services", "company": "TE Connectivity"}, {"html": "<div class=\"report-card\">      <h3>TE Connectivity <span class=\"symbol\">(TEL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Electronic Manufacturing Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1385157/000155837024015227/tel-20240927x10k.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1385157/000155837023018833/tel-20230929x10k.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI technologies are complex and rapidly evolving, and we face significant competition, including from our own clients, who may develop their own internal AI-related capabilities, which can lead to reduced demand for our products.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Electronic Manufacturing Services", "company": "TE Connectivity"}, {"html": "<div class=\"report-card\">      <h3>Teradyne <span class=\"symbol\">(TER)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductor Materials & Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/97210/000095017025023784/ter-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/97210/000095017024018701/ter-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our competitors may be more successful in their use of AI tools, including by developing superior products or improving their operations with the assistance of AI.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Semiconductor Materials & Equipment", "company": "Teradyne"}, {"html": "<div class=\"report-card\">      <h3>Teradyne <span class=\"symbol\">(TER)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductor Materials & Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/97210/000095017025023784/ter-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/97210/000095017024018701/ter-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our use of AI tools, or our customers uses of our products that incorporate AI, could also result in the loss of confidential information or intellectual property or an inability to claim or enforce intellectual property rights, as well as subject us to risks related to intellectual property infringement or misappropriation, data privacy, cybersecurity, and the unauthorized use of our data.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Information Technology", "sub": "Semiconductor Materials & Equipment", "company": "Teradyne"}, {"html": "<div class=\"report-card\">      <h3>Teradyne <span class=\"symbol\">(TER)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductor Materials & Equipment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/97210/000095017025023784/ter-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/97210/000095017024018701/ter-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Although we are evaluating, and where we believe appropriate, incorporating AI tools into our products and operations, our use of AI tools may subject us to significant competitive, legal, regulatory and other risks, and there can be no assurance that our use of AI tools will enhance our products, business operations or result in a benefit to us.</span></div>    </div>", "risks": "Disillusionment", "sector": "Information Technology", "sub": "Semiconductor Materials & Equipment", "company": "Teradyne"}, {"html": "<div class=\"report-card\">      <h3>Tesla, Inc. <span class=\"symbol\">(TSLA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Automobile Manufacturers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Energy'>Energy</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1318605/000162828025003063/tsla-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1318605/000162828024002390/tsla-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, as we continue to develop our artificial intelligence services and products, we may face many additional challenges, including the availability and cost of energy, processing power limitations and the substantial power requirements for our data centers.</span></div>    </div>", "risks": "Energy", "sector": "Consumer Discretionary", "sub": "Automobile Manufacturers", "company": "Tesla, Inc."}, {"html": "<div class=\"report-card\">      <h3>Texas Instruments <span class=\"symbol\">(TXN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Semiconductors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/97476/000009747625000007/txn-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/97476/000009747624000007/txn-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Breaches, disruptions or other incidents relating to our information technology systems or the systems of our customers, suppliers and other third parties could be caused by factors such as computer viruses, ransomware, malware, <span style='color:green;'>software vulnerabilities,</span> system failures, restricted network access, unauthorized access, terrorism, nation-state espionage, employee malfeasance, <span style='color:green;'>use of artificial intelligence (AI) tools,</span> or human error.</div>    </div>", "risks": "Data and IP Protection", "sector": "Information Technology", "sub": "Semiconductors", "company": "Texas Instruments"}, {"html": "<div class=\"report-card\">      <h3>Textron <span class=\"symbol\">(TXT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Aerospace & Defense</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/217346/000021734625000017/txt-20241228.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/217346/000021734624000017/txt-20231230.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The threats we face vary from those common to most industries, to attacks by more advanced and persistent, highly organized adversaries, including nation state actors, which target us for the national security information in our possession, for our role in developing advanced technology systems or with the goal of committing fraudulent activity. Our customers, suppliers and subcontractors are likewise targeted, and attack methods continue to evolve. Some cyberattacks depend on human error or manipulation, including phishing attacks or schemes that use social engineering or artificial intelligence to gain access to systems or carry out disbursement of funds or other frauds. Developments in artificial intelligence and machine learning provide threat actors with the capability to use more sophisticated means to attack our systems and may exacerbate cybersecurity risk.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Industrials", "sub": "Aerospace & Defense", "company": "Textron"}, {"html": "<div class=\"report-card\">      <h3>Thermo Fisher Scientific <span class=\"symbol\">(TMO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Life Sciences Tools & Services</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/97745/000009774525000010/tmo-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/97745/000009774524000007/tmo-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>More recently, privacy and data protection regulators are paying special attention to emerging issues linked to new digital technologies, such as the use of artificial intelligence, biometrics, and surveillance technologies, which pose unique challenges to existing privacy and data protection paradigms.</span></div>    </div>", "risks": "", "sector": "Health Care", "sub": "Life Sciences Tools & Services", "company": "Thermo Fisher Scientific"}, {"html": "<div class=\"report-card\">      <h3>Thermo Fisher Scientific <span class=\"symbol\">(TMO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Life Sciences Tools & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/97745/000009774525000010/tmo-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/97745/000009774524000007/tmo-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Competitive factors include technological innovation, <span style='color:green;'>including the increased adoption and use of artificial intelligence,</span> price, service and delivery, breadth of product line, customer support, e-business capabilities and the ability to meet the special requirements of customers.</div>    </div>", "risks": "Competition", "sector": "Health Care", "sub": "Life Sciences Tools & Services", "company": "Thermo Fisher Scientific"}, {"html": "<div class=\"report-card\">      <h3>Trane Technologies <span class=\"symbol\">(TT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Building Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1466258/000146625825000039/tt-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1466258/000146625824000047/tt-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Hardware, <span style='color:red;text-decoration:line-through;'>software</span> <span style='color:green;'>software, artificial intelligence technology,</span> or applications we develop or obtain from third parties sometimes contain defects in design or deployment or other problems that could unexpectedly result in security breaches or disruptions.</div>    </div>", "risks": "Third Party", "sector": "Industrials", "sub": "Building Products", "company": "Trane Technologies"}, {"html": "<div class=\"report-card\">      <h3>Trane Technologies <span class=\"symbol\">(TT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Building Products</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1466258/000146625825000039/tt-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1466258/000146625824000047/tt-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Our information technology systems, <span style='color:red;text-decoration:line-through;'>networks</span> <span style='color:green;'>networks, connected services,</span> and infrastructure and <span style='color:red;text-decoration:line-through;'>technology</span> <span style='color:green;'>technology, including artificial intelligence technology,</span> embedded in certain of our control products have been and are at risk to cyber attacks and unauthorized <span style='color:red;text-decoration:line-through;'>security intrusions.</span> <span style='color:green;'>access.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Industrials", "sub": "Building Products", "company": "Trane Technologies"}, {"html": "<div class=\"report-card\">      <h3>TransDigm Group <span class=\"symbol\">(TDG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Aerospace & Defense</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1260221/000126022124000083/tdg-20240930.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1260221/000126022123000081/tdg-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">The interpretation and application of data protection laws in the U.S. and globally, including but not limited to the General Data Protection Regulation (the \u201cGDPR\u201d), the California Consumer Privacy Act (the <span style='color:red;text-decoration:line-through;'>\u201cCCPA\u201d) and</span> <span style='color:green;'>\u201cCCPA\u201d),</span> China\u2019s Personal Information Protection Law <span style='color:red;text-decoration:line-through;'>(\u201cPIPL\u201d),</span> <span style='color:green;'>(\u201cPIPL\u201d) and the EU AI Act,</span> are uncertain and evolving.</div>    </div>", "risks": "EU AI Act", "sector": "Industrials", "sub": "Aerospace & Defense", "company": "TransDigm Group"}, {"html": "<div class=\"report-card\">      <h3>TransDigm Group <span class=\"symbol\">(TDG)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Aerospace & Defense</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1260221/000126022124000083/tdg-20240930.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1260221/000126022123000081/tdg-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Further, although we have implemented internal controls and procedures designed to ensure compliance with the GDPR, CCPA, <span style='color:red;text-decoration:line-through;'>PIPL</span> <span style='color:green;'>PIPL, the EU AI Act</span> and other privacy-related laws, rules and regulations (collectively, the \u201cData Protection Laws\u201d), there can be no assurance that our controls and procedures will enable us to be fully compliant with all Data Protection Laws.</div>    </div>", "risks": "EU AI Act", "sector": "Industrials", "sub": "Aerospace & Defense", "company": "TransDigm Group"}, {"html": "<div class=\"report-card\">      <h3>Travelers Companies (The) <span class=\"symbol\">(TRV)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Property & Casualty Insurance</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/86312/000008631225000012/trv-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/86312/000008631224000012/trv-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">These risks could increase as additional functions move to the cloud and as dependencies and interconnections with the third parties with whom we do business <span style='color:red;text-decoration:line-through;'>increase.</span> <span style='color:green;'>increase and become more complex, particularly as those third parties incorporate new technologies, such as artificial intelligence.</span></div>    </div>", "risks": "", "sector": "Financials", "sub": "Property & Casualty Insurance", "company": "Travelers Companies (The)"}, {"html": "<div class=\"report-card\">      <h3>Truist Financial <span class=\"symbol\">(TFC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Diversified Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/92230/000009223025000020/tfc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/92230/000009223024000010/tfc-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>Bad actors have industrialized the execution of fraud attacks with ever increasing sophistication and speed. Bad actors increasingly use sophisticated applications and techniques</span> <span style='color:green;'>Many bad actors, often linked</span> to <span style='color:red;text-decoration:line-through;'>perpetrate the fraud. In some cases, these individuals are associated with</span> large criminal <span style='color:red;text-decoration:line-through;'>organizations that</span> <span style='color:green;'>organizations,</span> share <span style='color:red;text-decoration:line-through;'>tactics and strategies. Fraud schemes are wide ranging, including: counterfeit and forged checks;</span> <span style='color:green;'>strategies to execute schemes, such as</span> debit and credit card <span style='color:red;text-decoration:line-through;'>fraud;</span> <span style='color:green;'>fraud, peer-to-peer payment fraud, counterfeit checks,</span> social <span style='color:red;text-decoration:line-through;'>engineering;</span> <span style='color:green;'>engineering,</span> ATM <span style='color:red;text-decoration:line-through;'>attacks through the use of skimmers</span> <span style='color:green;'>skimming, and phishing, and recent advances in artificial intelligence may make it more difficult</span> to <span style='color:red;text-decoration:line-through;'>obtain client data; and phishing to obtain client account credentials.</span> <span style='color:green;'>detect fraud.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Diversified Banks", "company": "Truist Financial"}, {"html": "<div class=\"report-card\">      <h3>Tyler Technologies <span class=\"symbol\">(TYL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span><span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/860731/000086073125000007/tyl-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/860731/000086073124000006/tyl-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The development of next-generation solutions that utilize advanced features, including artificial intelligence and machine learning, may require us to make predictions about the willingness of the public sector market to adopt such offerings. As we choose to invest in such technologies, we may be required to commit significant resources to maintain the competitiveness of our offerings before knowing whether we have correctly predicted market receptiveness to them.</span></div>    </div>", "risks": "Competition; Disillusionment", "sector": "Information Technology", "sub": "Application Software", "company": "Tyler Technologies"}, {"html": "<div class=\"report-card\">      <h3>Tyler Technologies <span class=\"symbol\">(TYL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/860731/000086073125000007/tyl-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/860731/000086073124000006/tyl-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>As we assess the challenges and opportunities of incorporating AI technologies into our products and services, we may not successfully enhance our offerings in alignment with market demands or industry expectations at a pace that matches our competitors.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Application Software", "company": "Tyler Technologies"}, {"html": "<div class=\"report-card\">      <h3>Tyler Technologies <span class=\"symbol\">(TYL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/860731/000086073125000007/tyl-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/860731/000086073124000006/tyl-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, the evolving use of artificial intelligence (\u201cAI\u201d) increases the risk of cyberattacks and data breaches, which themselves can evolve more rapidly when artificial intelligence is used to facilitate the attack.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Application Software", "company": "Tyler Technologies"}, {"html": "<div class=\"report-card\">      <h3>Tyler Technologies <span class=\"symbol\">(TYL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/860731/000086073125000007/tyl-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/860731/000086073124000006/tyl-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The evolving threat landscape, including new technologies that leverage artificial intelligence, may increase the external threats to the data we store and process.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Application Software", "company": "Tyler Technologies"}, {"html": "<div class=\"report-card\">      <h3>Tyler Technologies <span class=\"symbol\">(TYL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/860731/000086073125000007/tyl-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/860731/000086073124000006/tyl-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We cannot be certain that we have taken all appropriate steps to deter misappropriation of our intellectual <span style='color:red;text-decoration:line-through;'>property.</span> <span style='color:green;'>property, including to the extent our data is consumed by generative artificial intelligence technology.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Information Technology", "sub": "Application Software", "company": "Tyler Technologies"}, {"html": "<div class=\"report-card\">      <h3>Tyler Technologies <span class=\"symbol\">(TYL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/860731/000086073125000007/tyl-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/860731/000086073124000006/tyl-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Use of artificial intelligence by our team members, whether authorized or unauthorized, could increase the risk that our intellectual property and other proprietary information may be unintentionally disclosed.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Information Technology", "sub": "Application Software", "company": "Tyler Technologies"}, {"html": "<div class=\"report-card\">      <h3>Tyson Foods <span class=\"symbol\">(TSN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Packaged Foods & Meats</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/100493/000010049324000119/tsn-20240928.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/100493/000010049323000105/tsn-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>Therefore, we</span> <span style='color:green;'>In addition, new technologies, such as artificial intelligence,</span> may <span style='color:green;'>present new technological risks or vulnerabilities. We may not</span> be <span style='color:red;text-decoration:line-through;'>unable</span> <span style='color:green;'>able</span> to anticipate <span style='color:red;text-decoration:line-through;'>these techniques,</span> <span style='color:green;'>or</span> react <span style='color:red;text-decoration:line-through;'>in a timely manner,</span> <span style='color:green;'>to new types of cyber attacks</span> or <span style='color:red;text-decoration:line-through;'>implement adequate preventive measures,</span> <span style='color:green;'>vulnerabilities</span> and we may face delays in our detection or remediation <span style='color:red;text-decoration:line-through;'>of, or other responses to,</span> <span style='color:green;'>of</span> security breaches and other <span style='color:red;text-decoration:line-through;'>security-related</span> <span style='color:green;'>security- related</span> incidents or vulnerabilities.</div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Staples", "sub": "Packaged Foods & Meats", "company": "Tyson Foods"}, {"html": "<div class=\"report-card\">      <h3>U.S. Bancorp <span class=\"symbol\">(USB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Diversified Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/36104/000003610425000016/usb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/36104/000003610424000018/usb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Malicious actors continue to develop increasingly sophisticated <span style='color:red;text-decoration:line-through;'>cyber attacks</span> <span style='color:green;'>methods of attack</span> that could impact the <span style='color:red;text-decoration:line-through;'>Company.</span> <span style='color:green;'>Company, including attack methods that are aided by advanced artificial intelligence (\u201cAI\u201d) models and other tools.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Diversified Banks", "company": "U.S. Bancorp"}, {"html": "<div class=\"report-card\">      <h3>U.S. Bancorp <span class=\"symbol\">(USB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Diversified Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/36104/000003610425000016/usb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/36104/000003610424000018/usb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For example, recent advances in AI may allow a bad actor to create so-called \u201cdeep fakes\u201d to impersonate the voice or likeness of another individual, which could be used in social engineering schemes that may be more difficult to detect than other social engineering efforts.</div>    </div>", "risks": "Deepfakes", "sector": "Financials", "sub": "Diversified Banks", "company": "U.S. Bancorp"}, {"html": "<div class=\"report-card\">      <h3>U.S. Bancorp <span class=\"symbol\">(USB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Diversified Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/36104/000003610425000016/usb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/36104/000003610424000018/usb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The Company's use of AI and machine learning is subject to risks that algorithms and datasets are flawed or may be insufficient or contain biased information.</div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Diversified Banks", "company": "U.S. Bancorp"}, {"html": "<div class=\"report-card\">      <h3>Uber <span class=\"symbol\">(UBER)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Passenger Ground Transportation</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1543151/000154315125000008/uber-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1543151/000154315124000012/uber-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">AI <span style='color:green;'>tools and</span> algorithms may use <span style='color:red;text-decoration:line-through;'>third-party</span> <span style='color:green;'>third- party</span> AI with unclear intellectual property rights or interests.</div>    </div>", "risks": "Third Party", "sector": "Industrials", "sub": "Passenger Ground Transportation", "company": "Uber"}, {"html": "<div class=\"report-card\">      <h3>Uber <span class=\"symbol\">(UBER)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Passenger Ground Transportation</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1543151/000154315125000008/uber-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1543151/000154315124000012/uber-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>The</span> <span style='color:green;'>Europe, the</span> United States and other countries <span style='color:green;'>are enacting or</span> may consider comprehensive legal compliance frameworks specifically for AI, which is a trend that may increase now that <span style='color:red;text-decoration:line-through;'>the</span> European <span style='color:red;text-decoration:line-through;'>Commission has proposed</span> <span style='color:green;'>lawmakers have passed</span> the first such <span style='color:red;text-decoration:line-through;'>framework.</span> <span style='color:green;'>framework, the European Artificial Intelligence Act (\u201cAI Act\u201d), which came into effect in August 2024.</span></div>    </div>", "risks": "EU AI Act", "sector": "Industrials", "sub": "Passenger Ground Transportation", "company": "Uber"}, {"html": "<div class=\"report-card\">      <h3>Uber <span class=\"symbol\">(UBER)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Passenger Ground Transportation</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1543151/000154315125000008/uber-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1543151/000154315124000012/uber-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">AI algorithms or automated <span style='color:green;'>decision-making or</span> processing of data may be flawed and datasets may be insufficient or contain <span style='color:green;'>inaccurate or</span> biased information, which can create inaccurate or discriminatory outcomes.</div>    </div>", "risks": "Bias", "sector": "Industrials", "sub": "Passenger Ground Transportation", "company": "Uber"}, {"html": "<div class=\"report-card\">      <h3>Uber <span class=\"symbol\">(UBER)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Passenger Ground Transportation</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1543151/000154315125000008/uber-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1543151/000154315124000012/uber-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">These and other deficiencies could also undermine the decisions, predictions or analysis AI applications produce, or lead to unintentional bias and discrimination, subjecting us to competitive harm, legal liability, and brand or reputational harm.</div>    </div>", "risks": "Bias", "sector": "Industrials", "sub": "Passenger Ground Transportation", "company": "Uber"}, {"html": "<div class=\"report-card\">      <h3>UDR, Inc. <span class=\"symbol\">(UDR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Multi-Family Residential REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/74208/000007420825000010/udr-20241231x10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/74208/000007420824000011/udr-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">_A Failure to Keep Pace with Developments in Technology Could Impair our Operations or Competitive Position._ Our business continues <span style='color:green;'>and will continue</span> to demand the use of sophisticated systems, software and <span style='color:red;text-decoration:line-through;'>technology.</span> <span style='color:green;'>technology, including artificial intelligence.</span></div>    </div>", "risks": "Competition", "sector": "Real Estate", "sub": "Multi-Family Residential REITs", "company": "UDR, Inc."}, {"html": "<div class=\"report-card\">      <h3>Union Pacific Corporation <span class=\"symbol\">(UNP)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Rail Transportation</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/100885/000010088525000042/unp-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/100885/000143774924003599/unp20231231_10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The rapid evolution and increased availability of artificial intelligence may intensify cybersecurity risks by making cyber-attacks more sophisticated and cybersecurity incidents more difficult to detect, contain, and mitigate.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Industrials", "sub": "Rail Transportation", "company": "Union Pacific Corporation"}, {"html": "<div class=\"report-card\">      <h3>United Airlines Holdings <span class=\"symbol\">(UAL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Passenger Airlines</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/100517/000010051725000046/ual-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/100517/000010051724000027/ual-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Additionally, <span style='color:green;'>if AI is improperly utilized, including</span> if the content, analyses, or recommendations that AI applications assist in producing are or are alleged to be deficient, inaccurate, or biased, <span style='color:green;'>we would be exposed to new or expanded risks and liabilities related to inaccuracies or errors in the output of such AI applications and</span> our business, reputation, financial condition, and results of operations may be adversely affected.</div>    </div>", "risks": "Bias", "sector": "Industrials", "sub": "Passenger Airlines", "company": "United Airlines Holdings"}, {"html": "<div class=\"report-card\">      <h3>United Rentals <span class=\"symbol\">(URI)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Trading Companies & Distributors</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1067701/000106770125000008/uri-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1067701/000106770124000007/uri-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Cyber threats are constantly evolving, especially given the advances in, and the rise of the use of, artificial intelligence, thereby increasing the difficulty of preventing, detecting and successfully defending against them.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Industrials", "sub": "Trading Companies & Distributors", "company": "United Rentals"}, {"html": "<div class=\"report-card\">      <h3>UnitedHealth Group <span class=\"symbol\">(UNH)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Managed Health Care</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/731766/000073176625000063/unh-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/731766/000073176624000081/unh-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Further, because the techniques used to obtain unauthorized access, disable or degrade service, or sabotage systems change frequently and are increasing in sophistication, in part due to use of evolving AI/ML technologies (including generative AI), and because our businesses are changing as well, we may be unable to anticipate these techniques and threats, <span style='color:green;'>timely</span> detect data security incidents or implement adequate preventive measures.</div>    </div>", "risks": "Malicious Actors", "sector": "Health Care", "sub": "Managed Health Care", "company": "UnitedHealth Group"}, {"html": "<div class=\"report-card\">      <h3>Valero Energy <span class=\"symbol\">(VLO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Energy</span>          <span class=\"tag\">Oil & Gas Refining & Marketing</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1035002/000103500225000005/vlo-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1035002/000103500224000007/vlo-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The continuing and evolving threat of cybersecurity incidents <span style='color:green;'>(including through AI)</span> has <span style='color:red;text-decoration:line-through;'>also</span> resulted in increased regulatory focus on prevention and disclosure, such as the directive issued by the U.S. Transportation Security Administration following the Colonial Pipeline cybersecurity incident, the obligations imposed by the U.S. Cyber Incident Reporting for Critical Infrastructure Act adopted in March 2022, and the SEC\u2019s cybersecurity and governance disclosure rules issued in 2023.</div>    </div>", "risks": "Malicious Actors", "sector": "Energy", "sub": "Oil & Gas Refining & Marketing", "company": "Valero Energy"}, {"html": "<div class=\"report-card\">      <h3>Valero Energy <span class=\"symbol\">(VLO)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Energy</span>          <span class=\"tag\">Oil & Gas Refining & Marketing</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Energy'>Energy</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1035002/000103500225000005/vlo-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1035002/000103500224000007/vlo-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Growing electrification and rapidly developing and increasing technology use (such as artificial <span style='color:red;text-decoration:line-through;'>intelligence,</span> <span style='color:green;'>intelligence (AI),</span> computer processing, cryptocurrency mining, and cloud storage, and the data centers and power supplies required to support these activities) will also likely increase the intermittency and decrease the reliability of electricity supplies, particularly for grids highly dependent upon wind and solar power, which would exacerbate the foregoing <span style='color:red;text-decoration:line-through;'>challenges.</span> <span style='color:green;'>challenges, including increasing costs.</span></div>    </div>", "risks": "Energy", "sector": "Energy", "sub": "Oil & Gas Refining & Marketing", "company": "Valero Energy"}, {"html": "<div class=\"report-card\">      <h3>Ventas <span class=\"symbol\">(VTR)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Health Care REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/740260/000074026025000052/vtr-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/740260/000074026024000067/vtr-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Such attempts can originate from a wide variety of sources, including organized crime, hackers, activists, <span style='color:green;'>insider threats,</span> terrorists, nation-states, <span style='color:red;text-decoration:line-through;'>state-sponsored</span> <span style='color:green;'>state- sponsored</span> actors and others, any of which may see their effectiveness enhanced by the use of artificial intelligence.</div>    </div>", "risks": "Malicious Actors", "sector": "Real Estate", "sub": "Health Care REITs", "company": "Ventas"}, {"html": "<div class=\"report-card\">      <h3>Verisign <span class=\"symbol\">(VRSN)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Internet Services & Infrastructure</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1014473/000101447325000006/vrsn-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1014473/000101447324000006/vrsn-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, applications using artificial intelligence could be transformational in ways that cannot be predicted at this time. To the extent such applications impact the demand for domain names, it could have a material impact on our business.</span></div>    </div>", "risks": "", "sector": "Information Technology", "sub": "Internet Services & Infrastructure", "company": "Verisign"}, {"html": "<div class=\"report-card\">      <h3>Verisk Analytics <span class=\"symbol\">(VRSK)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Research & Consulting Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1442145/000143774925005160/vrsk20241231_10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1442145/000143774924004939/vrsk20231231c_10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">_Our own use of AI, including but not limited to generative AI, to enhance our products could lead to unanticipated consequences such as ethical, compliance, privacy-observing, bias-reducing, and/or intellectual property issues._ Increasing use of AI, including but not limited to generative AI models, in our internal systems may create new attack methods for adversaries and raise ethical, technological, legal, regulatory, and other challenges, which may negatively impact our brands and demand for our products and services.</div>    </div>", "risks": "Bias", "sector": "Industrials", "sub": "Research & Consulting Services", "company": "Verisk Analytics"}, {"html": "<div class=\"report-card\">      <h3>Verizon <span class=\"symbol\">(VZ)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Integrated Telecommunication Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span><span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/732712/000073271225000006/vz-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/732712/000073271224000010/vz-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our investments in AI and related technologies may not result in the benefits we anticipate or enable us to obtain or maintain a competitive advantage.</span></div>    </div>", "risks": "Competition; Disillusionment", "sector": "Communication Services", "sub": "Integrated Telecommunication Services", "company": "Verizon"}, {"html": "<div class=\"report-card\">      <h3>Verizon <span class=\"symbol\">(VZ)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Integrated Telecommunication Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/732712/000073271225000006/vz-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/732712/000073271224000010/vz-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, the use of AI and machine learning by threat actors may increase the frequency and severity of cyberattacks against us or other companies.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Communication Services", "sub": "Integrated Telecommunication Services", "company": "Verizon"}, {"html": "<div class=\"report-card\">      <h3>Viatris <span class=\"symbol\">(VTRS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Pharmaceuticals</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1792044/000179204425000008/vtrs-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1792044/000179204424000008/vtrs-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Compliance with new or changing laws, regulations or industry standards relating to AI may impose significant operational costs and may limit our ability to develop, deploy or use AI technologies. Failure to appropriately respond to this evolving landscape may result in legal liability, regulatory action, loss of trade secrets or other intellectual property, brand and reputational harm, or lead to outcomes with unintended biases or other consequences.</div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Pharmaceuticals", "company": "Viatris"}, {"html": "<div class=\"report-card\">      <h3>Visa Inc. <span class=\"symbol\">(V)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Transaction & Payment Processing Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1403161/000140316124000058/v-20240930.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1403161/000140316123000099/v-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The EU has adopted a comprehensive AI Act that applies harmonized rules across Europe with the aim of fostering innovation and respecting fundamental rights. The EU AI Act comes into force in stages with the key provisions related to high risk AI coming into force in August 2026. There is still limited guidance on the EU AI Act, but it could, depending on how provisions are interpreted and enforced, limit the ability to create and deploy AI systems for uses deemed high-risk in the EU or add increased compliance costs associated with these systems.</span></div>    </div>", "risks": "EU AI Act", "sector": "Financials", "sub": "Transaction & Payment Processing Services", "company": "Visa Inc."}, {"html": "<div class=\"report-card\">      <h3>Visa Inc. <span class=\"symbol\">(V)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Transaction & Payment Processing Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1403161/000140316124000058/v-20240930.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1403161/000140316123000099/v-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">For example, cybercriminals have increasingly demonstrated advanced capabilities, such as use of zero-day vulnerabilities, and rapid integration of new technology such as generative <span style='color:red;text-decoration:line-through;'>AI.</span> <span style='color:green;'>AI are being used by threat actors to create sophisticated attacks that are increasingly automated, targeted, and more difficult to defend against.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Transaction & Payment Processing Services", "company": "Visa Inc."}, {"html": "<div class=\"report-card\">      <h3>Visa Inc. <span class=\"symbol\">(V)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Transaction & Payment Processing Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1403161/000140316124000058/v-20240930.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1403161/000140316123000099/v-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Numerous and evolving cybersecurity threats, including advanced and persistent <span style='color:red;text-decoration:line-through;'>cyber-attacks,</span> <span style='color:green;'>cyber attacks,</span> targeted attacks against our employees and trusted <span style='color:red;text-decoration:line-through;'>partners (i.e.,</span> <span style='color:green;'>partners,</span> insider <span style='color:red;text-decoration:line-through;'>threats), synthetic media threats</span> <span style='color:green;'>threats, social engineering threats,</span> such as <span style='color:red;text-decoration:line-through;'>phishing,</span> <span style='color:green;'>phishing or</span> deepfake <span style='color:red;text-decoration:line-through;'>or social engineering</span> schemes, <span style='color:red;text-decoration:line-through;'>particularly on our internet-facing applications,</span> <span style='color:green;'>including those using synthetic media,</span> could compromise the confidentiality, availability and integrity of data in our <span style='color:red;text-decoration:line-through;'>systems</span> <span style='color:green;'>systems, particularly on our internet-facing applications,</span> or the systems of our <span style='color:red;text-decoration:line-through;'>third-party</span> <span style='color:green;'>third- party</span> service providers.</div>    </div>", "risks": "Deepfakes; Malicious Actors", "sector": "Financials", "sub": "Transaction & Payment Processing Services", "company": "Visa Inc."}, {"html": "<div class=\"report-card\">      <h3>Visa Inc. <span class=\"symbol\">(V)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Transaction & Payment Processing Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1403161/000140316124000058/v-20240930.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1403161/000140316123000099/v-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Our cybersecurity and processing systems, as well as those of financial institutions, merchants and third-party service providers, have experienced and may continue to experience errors, interruptions, delays or damage from a number of causes, including power outages, hardware, software and network failures, computer viruses, ransomware, malware or other destructive software, <span style='color:green;'>AI technologies by bad actors,</span> internal design, manual or user errors, <span style='color:red;text-decoration:line-through;'>cyber-attacks,</span> <span style='color:green;'>cyber attacks,</span> terrorism, <span style='color:green;'>political tensions, war or other military conflicts, or civil unrest, security breaches of our physical premises,</span> workplace violence or wrongdoing, catastrophic events, natural disasters, severe weather conditions and other effects from climate change.</div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Transaction & Payment Processing Services", "company": "Visa Inc."}, {"html": "<div class=\"report-card\">      <h3>Vistra Corp. <span class=\"symbol\">(VST)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Electric Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1692819/000169281925000013/vistra-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1692819/000169281924000012/vistra-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Competitors may also incorporate <span style='color:green;'>emerging technology like generative</span> AI into their businesses, services, and products more quickly or more successfully than we do.</div>    </div>", "risks": "Competition", "sector": "Utilities", "sub": "Electric Utilities", "company": "Vistra Corp."}, {"html": "<div class=\"report-card\">      <h3>Vistra Corp. <span class=\"symbol\">(VST)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Electric Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Energy'>Energy</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1692819/000169281925000013/vistra-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1692819/000169281924000012/vistra-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We may potentially be affected by emerging technologies that may over time affect change in capacity markets and the energy industry overall including distributed generation and clean technology. Some of these emerging technologies are <span style='color:red;text-decoration:line-through;'>shale gas production,</span> distributed renewable energy technologies, energy efficiency, broad consumer adoption of electric vehicles, distributed <span style='color:red;text-decoration:line-through;'>generation and</span> <span style='color:green;'>generation,</span> energy storage <span style='color:red;text-decoration:line-through;'>devices.</span> <span style='color:green;'>devices, fuel cells, nuclear small modular reactors, and linear generators.</span> Additionally, large-scale cryptocurrency <span style='color:red;text-decoration:line-through;'>mining is</span> <span style='color:green;'>mining, AI data centers, and increased industrial electrification are</span> becoming increasingly prevalent in certain markets, including ERCOT, and many of these <span style='color:red;text-decoration:line-through;'>cryptocurrency mining</span> facilities are behind-the-meter. Such emerging technologies could affect the price of energy, levels of customer-owned generation, customer expectations and current business models and make portions of our electric system power supply and transmission and/or distribution facilities obsolete prior to the end of their useful lives. These emerging technologies may also affect the financial viability of utility counterparties and could have significant impacts on wholesale market prices, which could ultimately have a material adverse effect on our financial condition, results of operations and cash flows could be materially adversely affected.</div>    </div>", "risks": "Energy", "sector": "Utilities", "sub": "Electric Utilities", "company": "Vistra Corp."}, {"html": "<div class=\"report-card\">      <h3>Vistra Corp. <span class=\"symbol\">(VST)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Electric Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Energy'>Energy</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1692819/000169281925000013/vistra-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1692819/000169281924000012/vistra-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If electricity demand does not grow at the rate expected, or if we are unable to execute on large load offtake opportunities, our financial performance, growth opportunities, and stock price could be adversely impacted. Multiple demand drivers such as emergence of large load data centers, including in response to transformations in technologies like artificial intelligence (AI) and electrification of oil field operations (specifically in the Permian Basin of west Texas), have accelerated, and are expected to continue to accelerate, load growth in the geographic regions we serve. We continue to pursue opportunities for the potential sale of power from our existing or new nuclear and gas facilities pursuant to long-term agreements to supply large load facilities. Such potential transactions are subject to certain risks and uncertainties, including various currently contemplated or future potential regulatory actions, reviews, and/or approvals and legislative actions, which could impact the timing of, and our ability to consummate, a potential transaction. In addition, if demand does not continue to increase at a rate in line with market expectations due to various factors, such as changes in technology, more energy efficient AI solutions or slow adoption of AI products and services, economic downturns, or adverse government actions, or if we are unable to execute on such large load offtake opportunities, our opportunities for growth and stock price may be adversely impacted.</span></div>    </div>", "risks": "Energy", "sector": "Utilities", "sub": "Electric Utilities", "company": "Vistra Corp."}, {"html": "<div class=\"report-card\">      <h3>Vistra Corp. <span class=\"symbol\">(VST)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Electric Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1692819/000169281925000013/vistra-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1692819/000169281924000012/vistra-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">As we adopt new technologies, like AI, there is a risk that the content, analyses, recommendations, or judgments that AI applications assist in producing are alleged to be deficient, inaccurate, biased, or infringe on other\u2019s rights or property interests.</div>    </div>", "risks": "Bias", "sector": "Utilities", "sub": "Electric Utilities", "company": "Vistra Corp."}, {"html": "<div class=\"report-card\">      <h3>Vistra Corp. <span class=\"symbol\">(VST)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Electric Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1692819/000169281925000013/vistra-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1692819/000169281924000012/vistra-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">As we adopt new technologies, like artificial intelligence (AI), there is a risk that the content, analyses, recommendations, or judgments that AI applications assist in producing are alleged to be deficient, inaccurate, biased, or infringe on other's rights or property interests.</div>    </div>", "risks": "Bias", "sector": "Utilities", "sub": "Electric Utilities", "company": "Vistra Corp."}, {"html": "<div class=\"report-card\">      <h3>Vulcan Materials Company <span class=\"symbol\">(VMC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Materials</span>          <span class=\"tag\">Construction Materials</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1396009/000139600925000005/vmc-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1396009/000139600924000006/vmc-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">In addition, the rapid evolution and increased adoption of artificial intelligence <span style='color:green;'>and machine learning</span> technologies may intensify our cybersecurity risks.</div>    </div>", "risks": "", "sector": "Materials", "sub": "Construction Materials", "company": "Vulcan Materials Company"}, {"html": "<div class=\"report-card\">      <h3>W. R. Berkley Corporation <span class=\"symbol\">(WRB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Property & Casualty Insurance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/11544/000001154425000005/wrb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/11544/000001154424000005/wrb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI technologies may be misused, and that risk is increased by the relative newness of the technology, the speed at which it is being adopted, and ongoing uncertainty with respect to the laws, regulations, and standards governing its development and deployment federally, across states, and internationally. Such misuse, and a realization of the previously mentioned risks, could negatively impact our reputation, financial condition and results of operations, the demand for our products and services, otherwise cause competitive harm, and/or draw adverse legal and regulatory scrutiny.</span></div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Property & Casualty Insurance", "company": "W. R. Berkley Corporation"}, {"html": "<div class=\"report-card\">      <h3>W. R. Berkley Corporation <span class=\"symbol\">(WRB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Property & Casualty Insurance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/11544/000001154425000005/wrb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/11544/000001154424000005/wrb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Products or services offered that develop or adopt artificial intelligence (\u201cAI\u201d) technologies, including generative AI and machine learning, offer potential benefits (e.g., with respect to efficiency) but likewise may raise technological, security, legal and other risks and challenges that may adversely affect our operations, business, or reputation. Such risks include the misuse, inadvertent or otherwise, of personal data or other sensitive, confidential or proprietary information; flaws in our models or training datasets resulting in biased, inaccurate or unanticipated outcomes; ethical considerations regarding the use and deployment of AI technologies; potential infringement of third-party intellectual property rights or the dilution of our intellectual property; and our ability to implement appropriate governance controls to ensure the ongoing, safe deployment of AI systems.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Financials", "sub": "Property & Casualty Insurance", "company": "W. R. Berkley Corporation"}, {"html": "<div class=\"report-card\">      <h3>W. R. Berkley Corporation <span class=\"symbol\">(WRB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Property & Casualty Insurance</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/11544/000001154425000005/wrb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/11544/000001154424000005/wrb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Such risks include the misuse, inadvertent or otherwise, of personal data or other sensitive, confidential or proprietary information; flaws in our models or training datasets resulting in biased, inaccurate or unanticipated outcomes; ethical considerations regarding the use and deployment of AI technologies; potential infringement of third-party intellectual property rights or the dilution of our intellectual property; and our ability to implement appropriate governance controls to ensure the ongoing, safe deployment of AI systems.</span></div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Property & Casualty Insurance", "company": "W. R. Berkley Corporation"}, {"html": "<div class=\"report-card\">      <h3>W. W. Grainger <span class=\"symbol\">(GWW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Industrial Machinery & Supplies & Components</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/277135/000027713525000010/gww-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/277135/000027713524000011/gww-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The proliferation of AI may impact our industry and the markets in which we compete, and the development and use of AI presents competitive, reputational and liability risks.</span></div>    </div>", "risks": "Competition", "sector": "Industrials", "sub": "Industrial Machinery & Supplies & Components", "company": "W. W. Grainger"}, {"html": "<div class=\"report-card\">      <h3>W. W. Grainger <span class=\"symbol\">(GWW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Industrial Machinery & Supplies & Components</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/277135/000027713525000010/gww-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/277135/000027713524000011/gww-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If Grainger\u2019s digital platforms fail to operate as anticipated or as well as competing products or otherwise do not meet customer needs or if Grainger is unable to bring AI- enabled products and solutions to market as effectively, or with the same speed or in the same volumes, as our competitors, Grainger may fail to recoup its investments in AI or improve its financial performance, its competitive position may be harmed, and its business and reputation may be adversely impacted.</span></div>    </div>", "risks": "Competition", "sector": "Industrials", "sub": "Industrial Machinery & Supplies & Components", "company": "W. W. Grainger"}, {"html": "<div class=\"report-card\">      <h3>W. W. Grainger <span class=\"symbol\">(GWW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Industrial Machinery & Supplies & Components</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/277135/000027713525000010/gww-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/277135/000027713524000011/gww-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, AI algorithms may be flawed. Datasets may be insufficient or contain biased information.</span></div>    </div>", "risks": "Bias", "sector": "Industrials", "sub": "Industrial Machinery & Supplies & Components", "company": "W. W. Grainger"}, {"html": "<div class=\"report-card\">      <h3>W. W. Grainger <span class=\"symbol\">(GWW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Industrial Machinery & Supplies & Components</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/277135/000027713525000010/gww-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/277135/000027713524000011/gww-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>As with many innovations, AI presents risks, challenges, and unintended consequences that could affect its rate and success of adoption, and therefore Grainger\u2019s business, and there is no guarantee that Grainger\u2019s use of AI or incorporation of AI capabilities into its business will benefit its business operations or result in solutions that are preferred by its customers.</span></div>    </div>", "risks": "Disillusionment", "sector": "Industrials", "sub": "Industrial Machinery & Supplies & Components", "company": "W. W. Grainger"}, {"html": "<div class=\"report-card\">      <h3>W. W. Grainger <span class=\"symbol\">(GWW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Industrial Machinery & Supplies & Components</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/277135/000027713525000010/gww-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/277135/000027713524000011/gww-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Developing, upgrading, managing or implementing new technologies, <span style='color:green;'>including AI,</span> business applications, strategies and innovations may require significant investment of resources by Grainger, may result in unexpected costs and disruptions to operations, may take longer than expected, may increase Grainger's vulnerability to cyber breaches, attacks or intrusions, and may not provide all anticipated benefits.</div>    </div>", "risks": "Disillusionment", "sector": "Industrials", "sub": "Industrial Machinery & Supplies & Components", "company": "W. W. Grainger"}, {"html": "<div class=\"report-card\">      <h3>Walgreens Boots Alliance <span class=\"symbol\">(WBA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Drug Retail</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1618921/000161892124000084/wba-20240831.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1618921/000161892123000062/wba-20230831.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>There are also substantial risks associated with our continued integration of artificial intelligence and machine learning within our technology systems.</span></div>    </div>", "risks": "", "sector": "Consumer Staples", "sub": "Drug Retail", "company": "Walgreens Boots Alliance"}, {"html": "<div class=\"report-card\">      <h3>Walmart <span class=\"symbol\">(WMT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Staples</span>          <span class=\"tag\">Consumer Staples Merchandise Retail</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/104169/000010416925000021/wmt-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/104169/000010416924000056/wmt-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Moreover, the increasing sophistication of AI technologies poses a greater risk of identity fraud, as malicious actors may exploit AI to create convincing false identities or manipulate verification processes.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Staples", "sub": "Consumer Staples Merchandise Retail", "company": "Walmart"}, {"html": "<div class=\"report-card\">      <h3>Walt Disney Company (The) <span class=\"symbol\">(DIS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Movies & Entertainment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1744489/000174448924000276/dis-20240928.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1744489/000174448923000216/dis-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Rules governing new technological developments, such as developments in <span style='color:red;text-decoration:line-through;'>generative</span> artificial intelligence (AI), <span style='color:green;'>including generative AI and large language model tools,</span> remain unsettled, and these developments may affect aspects of our existing business model, including revenue streams for the use of our <span style='color:red;text-decoration:line-through;'>IP and</span> <span style='color:green;'>IP,</span> how we create our entertainment <span style='color:red;text-decoration:line-through;'>products.</span> <span style='color:green;'>products and the competition we face.</span></div>    </div>", "risks": "Competition", "sector": "Communication Services", "sub": "Movies & Entertainment", "company": "Walt Disney Company (The)"}, {"html": "<div class=\"report-card\">      <h3>Walt Disney Company (The) <span class=\"symbol\">(DIS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Movies & Entertainment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1744489/000174448924000276/dis-20240928.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1744489/000174448923000216/dis-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>Competition</span> <span style='color:green;'>Technological developments, including developments</span> in <span style='color:red;text-decoration:line-through;'>each of these areas may further increase as a result of technological developments</span> <span style='color:green;'>generative AI tools that can be used to create competing low-cost content,</span> and changes in market structure, including consolidation of suppliers of resources and distribution <span style='color:red;text-decoration:line-through;'>channels.</span> <span style='color:green;'>channels, increase competition in these areas.</span></div>    </div>", "risks": "Competition", "sector": "Communication Services", "sub": "Movies & Entertainment", "company": "Walt Disney Company (The)"}, {"html": "<div class=\"report-card\">      <h3>Walt Disney Company (The) <span class=\"symbol\">(DIS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Movies & Entertainment</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1744489/000174448924000276/dis-20240928.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1744489/000174448923000216/dis-20230930.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">We <span style='color:red;text-decoration:line-through;'>develop</span> <span style='color:green;'>have developed</span> and maintain an information security program to <span style='color:green;'>assess,</span> identify and <span style='color:red;text-decoration:line-through;'>mitigate</span> <span style='color:green;'>manage</span> cyber risks <span style='color:red;text-decoration:line-through;'>but</span> <span style='color:green;'>and</span> the <span style='color:green;'>continued</span> development and maintenance of this program is costly and requires ongoing monitoring and updating as technologies <span style='color:red;text-decoration:line-through;'>change</span> <span style='color:green;'>change, including as a result of the proliferation of AI tools,</span> and efforts to overcome security measures become more sophisticated.</div>    </div>", "risks": "Malicious Actors", "sector": "Communication Services", "sub": "Movies & Entertainment", "company": "Walt Disney Company (The)"}, {"html": "<div class=\"report-card\">      <h3>Warner Bros. Discovery <span class=\"symbol\">(WBD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Broadcasting</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1437107/000143710725000031/wbd-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1437107/000143710724000017/wbd-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">For example, <span style='color:red;text-decoration:line-through;'>new</span> domestic and international laws and regulations relating to environmental, social and governance matters, including environmental sustainability and climate change, human capital management, <span style='color:green;'>AI,</span> and cybersecurity, are under consideration or have been adopted.</div>    </div>", "risks": "", "sector": "Communication Services", "sub": "Broadcasting", "company": "Warner Bros. Discovery"}, {"html": "<div class=\"report-card\">      <h3>Warner Bros. Discovery <span class=\"symbol\">(WBD)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Communication Services</span>          <span class=\"tag\">Broadcasting</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1437107/000143710725000031/wbd-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1437107/000143710724000017/wbd-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The risk of cyberattacks may continue to increase as technologies evolve and cyber criminals conduct their attacks using more sophisticated methods, including those which use AI. <span style='color:green;'>We may be unable to anticipate these methods and implement adequate preventative measures.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Communication Services", "sub": "Broadcasting", "company": "Warner Bros. Discovery"}, {"html": "<div class=\"report-card\">      <h3>Waste Management <span class=\"symbol\">(WM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Environmental & Facilities Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/823768/000155837025001132/wm-20241231x10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/823768/000155837024001049/wm-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>AI</span> <span style='color:green;'>Inability to adapt to and manage the benefits and risks of artificial intelligence could expose us to liability or put us at a disadvantage. Artificial intelligence</span> could disrupt certain aspects of our business and <span style='color:red;text-decoration:line-through;'>evolve</span> <span style='color:green;'>change</span> use of technology in ways that are not yet known.</div>    </div>", "risks": "Competition", "sector": "Industrials", "sub": "Environmental & Facilities Services", "company": "Waste Management"}, {"html": "<div class=\"report-card\">      <h3>Waste Management <span class=\"symbol\">(WM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Environmental & Facilities Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/823768/000155837025001132/wm-20241231x10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/823768/000155837024001049/wm-20231231x10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Artificial intelligence technologies are subject to a variety of laws, including intellectual property, privacy, data protection and cybersecurity, consumer protection, competition, and equal opportunity laws, and are expected to be subject to increased regulation and new laws or new applications of existing laws. Such laws and regulations may present a variety of compliance risks. The use of artificial intelligence may also result in litigation, ethical concerns, and other legal and business risks.</span> If we are not able to adapt and effectively incorporate potential advantages of <span style='color:red;text-decoration:line-through;'>AI</span> <span style='color:green;'>artificial intelligence</span> in our business, it may negatively impact our ability to compete.</div>    </div>", "risks": "Competition", "sector": "Industrials", "sub": "Environmental & Facilities Services", "company": "Waste Management"}, {"html": "<div class=\"report-card\">      <h3>Waters Corporation <span class=\"symbol\">(WAT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Life Sciences Tools & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1000697/000119312525034579/d791800d10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1000697/000119312524047491/d691142d10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The premature use of inadequate AI or the use of deficient AI, including flawed or biased algorithms, could harm the Company\u2019s brand, reputation or competitive advantage or result in regulatory penalties or legal liability. Failures in AI functionality could result in delays in new product offerings and services and have an adverse impact on other business activities. Delays or disruptions in successfully developing and implementing AI as part of the Company\u2019s business activities, products or services could have a negative impact on the Company\u2019s competitiveness, particularly if competitors are successful in making and leveraging such advancements, and the development of adequate AI technology will require significant investment.</span></div>    </div>", "risks": "Competition", "sector": "Health Care", "sub": "Life Sciences Tools & Services", "company": "Waters Corporation"}, {"html": "<div class=\"report-card\">      <h3>Waters Corporation <span class=\"symbol\">(WAT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Life Sciences Tools & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1000697/000119312525034579/d791800d10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1000697/000119312524047491/d691142d10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The risk of damage or interruption to technology infrastructure as a result of cyber-attacks has generally increased as the number, intensity and sophistication of attempted attacks from around the world have increased, including through state- sponsored actors and/or the use of artificial intelligence.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Health Care", "sub": "Life Sciences Tools & Services", "company": "Waters Corporation"}, {"html": "<div class=\"report-card\">      <h3>Waters Corporation <span class=\"symbol\">(WAT)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Life Sciences Tools & Services</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1000697/000119312525034579/d791800d10k.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1000697/000119312524047491/d691142d10k.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The premature use of inadequate AI or the use of deficient AI, including flawed or biased algorithms, could harm the Company\u2019s brand, reputation or competitive advantage or result in regulatory penalties or legal liability.</span></div>    </div>", "risks": "Bias", "sector": "Health Care", "sub": "Life Sciences Tools & Services", "company": "Waters Corporation"}, {"html": "<div class=\"report-card\">      <h3>WEC Energy Group <span class=\"symbol\">(WEC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Electric Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/783325/000010781525000103/wec-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/783325/000010781524000095/wec-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Adoption of AI technologies could adversely affect our business, reputation, or financial results. We are using AI primarily through services provided by our third party vendors.</span></div>    </div>", "risks": "Third Party", "sector": "Utilities", "sub": "Electric Utilities", "company": "WEC Energy Group"}, {"html": "<div class=\"report-card\">      <h3>WEC Energy Group <span class=\"symbol\">(WEC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Electric Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/783325/000010781525000103/wec-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/783325/000010781524000095/wec-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>We implement procedures</span> <span style='color:green;'>Cybersecurity threats, including those leveraging AI, continue</span> to <span style='color:green;'>increase, and the security measures and preventative actions we take to reduce the risk of cybersecurity incidents and</span> protect our <span style='color:red;text-decoration:line-through;'>systems, but we cannot guarantee that the procedures we have implemented to protect</span> <span style='color:green;'>systems</span> against unauthorized access to secured data and systems <span style='color:red;text-decoration:line-through;'>are adequate</span> <span style='color:green;'>may be insufficient</span> to safeguard against all security breaches.</div>    </div>", "risks": "Malicious Actors", "sector": "Utilities", "sub": "Electric Utilities", "company": "WEC Energy Group"}, {"html": "<div class=\"report-card\">      <h3>WEC Energy Group <span class=\"symbol\">(WEC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Electric Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/783325/000010781525000103/wec-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/783325/000010781524000095/wec-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our AI-related efforts may give rise to risks related to accuracy, bias, discrimination, intellectual property infringement or misappropriation, data privacy, and cybersecurity, among others.</span></div>    </div>", "risks": "Bias", "sector": "Utilities", "sub": "Electric Utilities", "company": "WEC Energy Group"}, {"html": "<div class=\"report-card\">      <h3>WEC Energy Group <span class=\"symbol\">(WEC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Utilities</span>          <span class=\"tag\">Electric Utilities</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/783325/000010781525000103/wec-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/783325/000010781524000095/wec-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>There are significant risks involved in developing and deploying AI, and there can be no assurance that the use of AI will enhance our services or be beneficial to our business, including with respect to the efficiency and resiliency of our systems.</span></div>    </div>", "risks": "Disillusionment", "sector": "Utilities", "sub": "Electric Utilities", "company": "WEC Energy Group"}, {"html": "<div class=\"report-card\">      <h3>Wells Fargo <span class=\"symbol\">(WFC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Diversified Banks</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/72971/000007297124000064/wfc-20231231.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/72971/000007297123000071/wfc-20221231.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, the algorithms or datasets underlying our artificial intelligence may be inaccurate or include other weaknesses that could result in deficient or biased data outputs or other unintended consequences.</span></div>    </div>", "risks": "Bias", "sector": "Financials", "sub": "Diversified Banks", "company": "Wells Fargo"}, {"html": "<div class=\"report-card\">      <h3>Welltower <span class=\"symbol\">(WELL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Health Care REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/766704/000076670425000009/well-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/766704/000076670424000008/well-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our competitors or other third parties may incorporate AI in their business operations more quickly or more successfully than we do.</span></div>    </div>", "risks": "Competition", "sector": "Real Estate", "sub": "Health Care REITs", "company": "Welltower"}, {"html": "<div class=\"report-card\">      <h3>Welltower <span class=\"symbol\">(WELL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Health Care REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/766704/000076670425000009/well-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/766704/000076670424000008/well-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>In addition, the providers of our or our business partners\u2019 AI tools may not meet existing or rapidly evolving regulatory or industry standards with respect to privacy and data protection, compliance and transparency, among others, which could inhibit our or our or our business partners\u2019 ability to maintain an adequate level of functionality or service.</span></div>    </div>", "risks": "Third Party", "sector": "Real Estate", "sub": "Health Care REITs", "company": "Welltower"}, {"html": "<div class=\"report-card\">      <h3>Welltower <span class=\"symbol\">(WELL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Health Care REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/766704/000076670425000009/well-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/766704/000076670424000008/well-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, the use of AI by us or our business partners may create new cybersecurity vulnerabilities, including those which may not be recognized at the time, and malicious actors may employ AI to aid in launching more sophisticated and effective cybersecurity incidents.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Real Estate", "sub": "Health Care REITs", "company": "Welltower"}, {"html": "<div class=\"report-card\">      <h3>Welltower <span class=\"symbol\">(WELL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Health Care REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/766704/000076670425000009/well-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/766704/000076670424000008/well-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>The cybersecurity threat landscape is rapidly evolving and threat actors may leverage new and evolving technologies, such as AI, previously unknown vulnerabilities to perpetrate attacks, as well as sophisticated anti-forensics techniques to evade detection.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Real Estate", "sub": "Health Care REITs", "company": "Welltower"}, {"html": "<div class=\"report-card\">      <h3>Welltower <span class=\"symbol\">(WELL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Health Care REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/766704/000076670425000009/well-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/766704/000076670424000008/well-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Our approach to AI presents risks and challenges that can impact our business and could adversely affect our business AI presents risks and challenges that could impact our business, including perceived breaches or privacy or security incidents related to the use of AI.</span></div>    </div>", "risks": "Data and IP Protection", "sector": "Real Estate", "sub": "Health Care REITs", "company": "Welltower"}, {"html": "<div class=\"report-card\">      <h3>Welltower <span class=\"symbol\">(WELL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Health Care REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/766704/000076670425000009/well-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/766704/000076670424000008/well-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Uncertainty around the safety and security of new and emerging AI applications may require additional investment in the development of proprietary datasets, machine learning models and systems to test for security, accuracy, bias and other variables, which are often complex, may be costly and could impact our profit margin.</span></div>    </div>", "risks": "Bias", "sector": "Real Estate", "sub": "Health Care REITs", "company": "Welltower"}, {"html": "<div class=\"report-card\">      <h3>Welltower <span class=\"symbol\">(WELL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Real Estate</span>          <span class=\"tag\">Health Care REITs</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Disillusionment'>Disillusionment</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/766704/000076670425000009/well-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/766704/000076670424000008/well-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI solutions and features may become more important to our operations or to our future growth over time. Recent developments in AI, such as generative or agentic AI, may accelerate or exacerbate these effects, and industry trends and consumer expectations may influence the pace at which AI solutions are used in our business operations. There can be no assurance that we will realize the desired or anticipated benefits, or any benefits, and we may fail to properly implement such technology.</span></div>    </div>", "risks": "Disillusionment", "sector": "Real Estate", "sub": "Health Care REITs", "company": "Welltower"}, {"html": "<div class=\"report-card\">      <h3>Western Digital <span class=\"symbol\">(WDC)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Technology Hardware, Storage & Peripherals</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/106040/000010604024000031/wdc-20240628.htm\" target=\"_blank\">2024</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/106040/000010604023000024/wdc-20230630.htm\" target=\"_blank\">2023</a>        </p>      </div>      <div class=\"diff-box\">Demand for and prices of our products are influenced by, among other factors, <span style='color:green;'>the</span> actual and projected <span style='color:green;'>growth of</span> data <span style='color:red;text-decoration:line-through;'>growth,</span> <span style='color:green;'>to be stored,</span> the balance between supply and demand in the storage market, including the effects of new fab capacity, macroeconomic factors, business conditions, <span style='color:green;'>the emergence or growth of new or existing technologies (including AI),</span> technology transitions and other actions taken by us or our competitors.</div>    </div>", "risks": "", "sector": "Information Technology", "sub": "Technology Hardware, Storage & Peripherals", "company": "Western Digital"}, {"html": "<div class=\"report-card\">      <h3>Williams Companies <span class=\"symbol\">(WMB)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Energy</span>          <span class=\"tag\">Oil & Gas Storage & Transportation</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/107263/000010726325000031/wmb-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/107263/000010726324000019/wmb-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">While <span style='color:red;text-decoration:line-through;'>we believe</span> <span style='color:green;'>Williams believes</span> that <span style='color:red;text-decoration:line-through;'>we maintain</span> <span style='color:green;'>it maintains</span> appropriate information security policies, practices, and protocols, <span style='color:red;text-decoration:line-through;'>we</span> <span style='color:green;'>Williams</span> regularly <span style='color:red;text-decoration:line-through;'>face</span> <span style='color:green;'>faces</span> cybersecurity and other security threats to <span style='color:red;text-decoration:line-through;'>our</span> <span style='color:green;'>its</span> information technology infrastructure, <span style='color:green;'>including risks that may be enhanced through the use of artificial intelligence,</span> which could include threats to <span style='color:red;text-decoration:line-through;'>our</span> operational industrial control systems and safety systems that operate <span style='color:red;text-decoration:line-through;'>our</span> <span style='color:green;'>its</span> pipelines, plants, and assets.</div>    </div>", "risks": "Malicious Actors", "sector": "Energy", "sub": "Oil & Gas Storage & Transportation", "company": "Williams Companies"}, {"html": "<div class=\"report-card\">      <h3>Willis Towers Watson <span class=\"symbol\">(WTW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Insurance Brokers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1140536/000095017025026278/wtw-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1140536/000095017024018575/wtw-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, incorporating artificial intelligence (\u2018AI\u2019) into certain product offerings is becoming more important in our operations, particularly as our competitors, including new entrants focused on using technology and innovation, such as generative AI, digital platforms, data analytics, robotics and blockchain, seek to simplify and improve the client experience, increase efficiencies, alter business models and effect other potentially disruptive changes in the industries in which we operate.</span> If we fail to keep pace with rapidly evolving <span style='color:red;text-decoration:line-through;'>artificial intelligence</span> <span style='color:green;'>AI and other</span> technological developments, our competitive position and business results may be negatively impacted.</div>    </div>", "risks": "Competition", "sector": "Financials", "sub": "Insurance Brokers", "company": "Willis Towers Watson"}, {"html": "<div class=\"report-card\">      <h3>Willis Towers Watson <span class=\"symbol\">(WTW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Insurance Brokers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1140536/000095017025026278/wtw-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1140536/000095017024018575/wtw-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Because generative AI is a new field, our understanding of cybersecurity risks resulting from generative AI and protection methods continues to develop, and features that rely on generative AI, including in services provided to us by third parties, may be susceptible to unanticipated cybersecurity threats from sophisticated adversaries and other cybersecurity incidents.</span></div>    </div>", "risks": "Third Party", "sector": "Financials", "sub": "Insurance Brokers", "company": "Willis Towers Watson"}, {"html": "<div class=\"report-card\">      <h3>Willis Towers Watson <span class=\"symbol\">(WTW)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Financials</span>          <span class=\"tag\">Insurance Brokers</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1140536/000095017025026278/wtw-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1140536/000095017024018575/wtw-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Further, the advance of generative AI may give rise to additional vulnerabilities and potential entry points for cyber threats. With generative AI tools, threat actors may have additional tools to automate breaches or persistent attacks, evade detection, or generate sophisticated phishing emails or other forms of digital impersonation. In addition, increasing use of generative AI models in our internal systems may create new attack methods for adversaries. Because generative AI is a new field, our understanding of cybersecurity risks resulting from generative AI and protection methods continues to develop, and features that rely on generative AI, including in services provided to us by third parties, may be susceptible to unanticipated cybersecurity threats from sophisticated adversaries and other cybersecurity incidents.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Financials", "sub": "Insurance Brokers", "company": "Willis Towers Watson"}, {"html": "<div class=\"report-card\">      <h3>Workday, Inc. <span class=\"symbol\">(WDAY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1327811/000132781125000056/wday-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1327811/000132781124000044/wday-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">As the market matures and as existing and new market participants introduce new types of <span style='color:red;text-decoration:line-through;'>technologies</span> <span style='color:green;'>technologies, such as generative and agentic AI,</span> and different approaches that enable organizations to address their HCM and financial needs, we expect this competition to intensify in the future.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Application Software", "company": "Workday, Inc."}, {"html": "<div class=\"report-card\">      <h3>Workday, Inc. <span class=\"symbol\">(WDAY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1327811/000132781125000056/wday-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1327811/000132781124000044/wday-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">The markets for enterprise cloud <span style='color:red;text-decoration:line-through;'>applications</span> <span style='color:green;'>applications, including AI-powered solutions,</span> are highly competitive, with relatively low barriers to entry for some applications or services.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Application Software", "company": "Workday, Inc."}, {"html": "<div class=\"report-card\">      <h3>Workday, Inc. <span class=\"symbol\">(WDAY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1327811/000132781125000056/wday-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1327811/000132781124000044/wday-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">In addition, other cloud <span style='color:green;'>or AI platform</span> companies that provide services in different target markets or industries may develop applications or acquire companies that operate in our target markets or industries, and some potential customers may elect to develop their own internal applications.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Application Software", "company": "Workday, Inc."}, {"html": "<div class=\"report-card\">      <h3>Workday, Inc. <span class=\"symbol\">(WDAY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1327811/000132781125000056/wday-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1327811/000132781124000044/wday-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">We also face competition from other enterprise software vendors, from regional competitors that only operate in certain geographic markets, and from vendors of specific applications that address only one or a portion of our applications, some of which offer cloud-based <span style='color:green;'>or AI-powered</span> solutions.</div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Application Software", "company": "Workday, Inc."}, {"html": "<div class=\"report-card\">      <h3>Workday, Inc. <span class=\"symbol\">(WDAY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1327811/000132781125000056/wday-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1327811/000132781124000044/wday-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>To the extent that our products and technologies rely on the use of large language models provided by third parties, we may face additional uncertainties and liabilities.</span></div>    </div>", "risks": "Third Party", "sector": "Information Technology", "sub": "Application Software", "company": "Workday, Inc."}, {"html": "<div class=\"report-card\">      <h3>Workday, Inc. <span class=\"symbol\">(WDAY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1327811/000132781125000056/wday-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1327811/000132781124000044/wday-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, the European Union\u2019s (\u201cEU\u201d) AI Act (\u201cEU AI Act\u201d) puts new requirements on providers of AI technologies and we are currently analyzing the EU AI Act to ensure compliance in alignment with various deadlines in the coming years.</span></div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Application Software", "company": "Workday, Inc."}, {"html": "<div class=\"report-card\">      <h3>Workday, Inc. <span class=\"symbol\">(WDAY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1327811/000132781125000056/wday-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1327811/000132781124000044/wday-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI is the subject of ongoing review by various U.S. governmental and regulatory agencies, and various U.S. states and other foreign jurisdictions are applying, or are considering applying, their cybersecurity, data protection, and product safety laws to AI and its uses or are considering general legal frameworks for AI and its uses, such as the EU AI Act.</span></div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Application Software", "company": "Workday, Inc."}, {"html": "<div class=\"report-card\">      <h3>Workday, Inc. <span class=\"symbol\">(WDAY)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Application Software</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1327811/000132781125000056/wday-20250131.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1327811/000132781124000044/wday-20240131.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Additionally, as AI technologies, including generative AI models, develop rapidly, threat actors are using these technologies to create sophisticated new attack methods that are increasingly automated, targeted, and coordinated and more difficult to defend against.</span></div>    </div>", "risks": "Malicious Actors", "sector": "Information Technology", "sub": "Application Software", "company": "Workday, Inc."}, {"html": "<div class=\"report-card\">      <h3>Xylem Inc. <span class=\"symbol\">(XYL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Industrial Machinery & Supplies & Components</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1524472/000152447225000013/xyl-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1524472/000152447224000006/xyl-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>We</span> <span style='color:green;'>Additional challenges we face include that customers may be slow to adopt our new and innovative solutions and technologies. Pricing pressures, including as a result of new or additional tariffs on our products or goods used in the manufacture of our products, and/or the impact of disruptive or emerging technologies, such as artificial intelligence, and our efforts to optimize our productivity may require that we adjust the prices of certain products, services, solutions or projects or rationalize certain of our offerings to stay competitive or win large contracts. As a result of the foregoing, we</span> may not be successful in maintaining our competitive <span style='color:red;text-decoration:line-through;'>position,</span> <span style='color:green;'>position and market share,</span> which could adversely affect our business, financial condition, cash flows or results of operations.</div>    </div>", "risks": "Competition", "sector": "Industrials", "sub": "Industrial Machinery & Supplies & Components", "company": "Xylem Inc."}, {"html": "<div class=\"report-card\">      <h3>Xylem Inc. <span class=\"symbol\">(XYL)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Industrials</span>          <span class=\"tag\">Industrial Machinery & Supplies & Components</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Deepfakes'>Deepfakes</span><span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1524472/000152447225000013/xyl-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1524472/000152447224000006/xyl-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">Regardless of <span style='color:green;'>the</span> protection <span style='color:red;text-decoration:line-through;'>measures, all</span> <span style='color:green;'>measures we, or the third parties we rely on, have implemented,</span> information technology and communications networks <span style='color:red;text-decoration:line-through;'>are inherently</span> <span style='color:green;'>may be</span> susceptible to damage or disruption due to causes such as: equipment, system or application failure, including as a result of maintenance, obsolescence, unsupportability or age; human error or malfeasance; vandalism; natural disaster; fire; power, communication or other utility outage or failure; and cybersecurity incidents, including ransomware, denial-of-service, <span style='color:green;'>vendor e-mail compromise, deepfake attacks,</span> malware, phishing, and computer <span style='color:red;text-decoration:line-through;'>viruses.</span> <span style='color:green;'>viruses resulting from a wide ranging threat landscape, including attacks by nation states and others.</span></div>    </div>", "risks": "Deepfakes; Malicious Actors", "sector": "Industrials", "sub": "Industrial Machinery & Supplies & Components", "company": "Xylem Inc."}, {"html": "<div class=\"report-card\">      <h3>Yum! Brands <span class=\"symbol\">(YUM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Restaurants</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1041061/000104106125000013/yum-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1041061/000104106124000011/yum-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>If we were to fail to successfully or effectively implement AI initiatives, or we encounter other deficiencies or failures in our AI systems or initiatives, this could put us at a competitive disadvantage and result in legal and regulatory risk, and brand or reputational harm.</span></div>    </div>", "risks": "Competition", "sector": "Consumer Discretionary", "sub": "Restaurants", "company": "Yum! Brands"}, {"html": "<div class=\"report-card\">      <h3>Yum! Brands <span class=\"symbol\">(YUM)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Consumer Discretionary</span>          <span class=\"tag\">Restaurants</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Malicious Actors'>Malicious Actors</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1041061/000104106125000013/yum-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1041061/000104106124000011/yum-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>The</span> <span style='color:green;'>In addition, the</span> rapid evolution and increased adoption of <span style='color:red;text-decoration:line-through;'>artificial intelligence</span> <span style='color:green;'>AI and other emerging</span> technologies <span style='color:green;'>also</span> may <span style='color:red;text-decoration:line-through;'>also</span> heighten our cybersecurity risks by making cyber-attacks <span style='color:green;'>and social engineering</span> more difficult to detect, <span style='color:red;text-decoration:line-through;'>contain,</span> <span style='color:green;'>contain</span> and mitigate.</div>    </div>", "risks": "Malicious Actors", "sector": "Consumer Discretionary", "sub": "Restaurants", "company": "Yum! Brands"}, {"html": "<div class=\"report-card\">      <h3>Zebra Technologies <span class=\"symbol\">(ZBRA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Electronic Equipment & Instruments</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Competition'>Competition</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/877212/000087721225000027/zbra-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/877212/000087721224000029/zbra-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>We also face competition from other companies that are developing their own AI technologies. Other companies may develop AI technologies that are similar or superior to our technologies or are more cost-effective to develop and deploy.</span></div>    </div>", "risks": "Competition", "sector": "Information Technology", "sub": "Electronic Equipment & Instruments", "company": "Zebra Technologies"}, {"html": "<div class=\"report-card\">      <h3>Zebra Technologies <span class=\"symbol\">(ZBRA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Electronic Equipment & Instruments</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Data and IP Protection'>Data and IP Protection</span><span class='risk-tag' title='Risk: Third Party'>Third Party</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/877212/000087721225000027/zbra-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/877212/000087721224000029/zbra-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>AI technologies that we use to support our operations may carry inherent risks related to: data privacy and security, such as the intended or unintended transmission of personal data or of proprietary or sensitive information; copyright, such as the incorporation of third-party copyrighted materials into large language models; data quality and bias, such as the use of inaccurate, incomplete, outdated, or biased information; and challenges implementing and maintaining AI tools, such as the complications arising from integrating such tools with existing systems and practices, and from reliance on third-party AI vendors.</span></div>    </div>", "risks": "Data and IP Protection; Third Party", "sector": "Information Technology", "sub": "Electronic Equipment & Instruments", "company": "Zebra Technologies"}, {"html": "<div class=\"report-card\">      <h3>Zebra Technologies <span class=\"symbol\">(ZBRA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Electronic Equipment & Instruments</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/877212/000087721225000027/zbra-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/877212/000087721224000029/zbra-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>For example, in 2024 the European Artificial Intelligence Act (EU) 2024/1689 went into force and established requirements and obligations for developers and deployers of AI systems.</span></div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Electronic Equipment & Instruments", "company": "Zebra Technologies"}, {"html": "<div class=\"report-card\">      <h3>Zebra Technologies <span class=\"symbol\">(ZBRA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Electronic Equipment & Instruments</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: EU AI Act'>EU AI Act</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/877212/000087721225000027/zbra-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/877212/000087721224000029/zbra-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:red;text-decoration:line-through;'>For example, in 2023 the Biden Administration issued a new, executive order on safe, secure and trustworthy AI and the EU introduced the AI Act to establish rules for providers and users. Emerging regulations may pertain to data privacy, data protection, and the ethical use of AI, as well as clarifying intellectual property considerations.</span></div>    </div>", "risks": "EU AI Act", "sector": "Information Technology", "sub": "Electronic Equipment & Instruments", "company": "Zebra Technologies"}, {"html": "<div class=\"report-card\">      <h3>Zebra Technologies <span class=\"symbol\">(ZBRA)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Information Technology</span>          <span class=\"tag\">Electronic Equipment & Instruments</span>        </div>        <div class=\"risks-box\">          <span class='risk-tag' title='Risk: Bias'>Bias</span>        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/877212/000087721225000027/zbra-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/877212/000087721224000029/zbra-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\"><span style='color:green;'>Flaws in AI technologies that we develop might lead to decreased market acceptance with regard to certain of our offerings. AI technologies that we use to support our operations may carry inherent risks related to: data privacy and security, such as the intended or unintended transmission of personal data or of proprietary or sensitive information; copyright, such as the incorporation of third-party copyrighted materials into large language models; data quality and bias, such as the use of inaccurate, incomplete, outdated, or biased information; and challenges implementing and maintaining AI tools, such as the complications arising from integrating such tools with existing systems and practices, and from reliance on third-party AI vendors.</span></div>    </div>", "risks": "Bias", "sector": "Information Technology", "sub": "Electronic Equipment & Instruments", "company": "Zebra Technologies"}, {"html": "<div class=\"report-card\">      <h3>Zoetis <span class=\"symbol\">(ZTS)</span></h3>      <div class=\"meta\">        <div class=\"tags\">          <span class=\"tag\">Health Care</span>          <span class=\"tag\">Pharmaceuticals</span>        </div>        <div class=\"risks-box\">          &nbsp;        </div>        <p><strong>Reports:</strong>           <a href=\"https://www.sec.gov/Archives/edgar/data/1555280/000155528025000102/zts-20241231.htm\" target=\"_blank\">2025</a> /          <a href=\"https://www.sec.gov/Archives/edgar/data/1555280/000155528024000143/zts-20231231.htm\" target=\"_blank\">2024</a>        </p>      </div>      <div class=\"diff-box\">In addition, we have been investing in data and digital <span style='color:green;'>capabilities, including incorporating the use of certain AI</span> capabilities <span style='color:green;'>into the development of new technologies and products,</span> and have expanded our diagnostics portfolio, and as a result, there could be an increased likelihood of a cyberattack or breach of security that could negatively impact us or our customers.</div>    </div>", "risks": "", "sector": "Health Care", "sub": "Pharmaceuticals", "company": "Zoetis"}];
let filteredItems = [];
let index = 0;

function getUniqueValues(field, splitter = ';') {
  const values = new Set();
  for (const item of allItems) {
    if (field === 'risks') {
      if (item.risks) {
        for (const risk of item.risks.split(splitter)) {
          const cleanRisk = risk.trim();
          if (cleanRisk) values.add(cleanRisk);
        }
      }
    } else {
      const value = item[field]?.trim();
      if (value) values.add(value);
    }
  }
  return Array.from(values).sort();
}

function populateSelect(selectId, values) {
  const select = document.getElementById(selectId);
  select.innerHTML = "<option value='All'>All</option>";
  for (const v of values) {
    const option = document.createElement("option");
    option.value = v;
    option.textContent = v;
    select.appendChild(option);
  }
}

function filterOptions() {
  const risk = document.getElementById("risk-filter").value;
  const sector = document.getElementById("sector-filter").value;
  const sub = document.getElementById("sub-filter").value;
  const companySearch = document.getElementById("company-search").value.toLowerCase();

  filteredItems = allItems.filter(item =>
    (risk === "All" || (item.risks && item.risks.includes(risk))) &&
    (sector === "All" || item.sector === sector) &&
    (sub === "All" || item.sub === sub) &&
    item.company.toLowerCase().includes(companySearch)
  );

  index = 0;
  const slider = document.getElementById('index-slider');
  if (slider) {
    slider.max = Math.max(1, filteredItems.length);
    slider.value = 1;
  }
  updateDisplay();
}

function updateDisplay() {
  const out = document.getElementById("nav-output");
  const slider = document.getElementById("index-slider");

  if (filteredItems.length === 0) {
    out.innerHTML = `<div class="report-card"><div class="diff-box">No matching results.</div></div>`;
    if (slider) slider.value = 1;
    return;
  }

  index = Math.min(index, filteredItems.length - 1);
  const itemHTML = filteredItems[index].html;
  out.innerHTML = `
      <div class="report-card">
        <div class="title-row">
          ${itemHTML.match(/<h3>.*?<\/h3>/s)[0]}
          <div class="counter">${index + 1}/${filteredItems.length}</div>
        </div>
        ${itemHTML.split(/<\/h3>/s)[1]}
      </div>
    `;

  if (slider) {
    slider.max = Math.max(1, filteredItems.length);
    slider.value = index + 1;
  }
}

function nextItem() {
  if (index < filteredItems.length - 1) {
    index++;
    updateDisplay();
  }
}

function prevItem() {
  if (index > 0) {
    index--;
    updateDisplay();
  }
}

function slideTo(val) {
  index = Math.max(0, Math.min(filteredItems.length - 1, val - 1));
  updateDisplay();
}

// ---- Company search suggestions ----

const companyInput = document.getElementById('company-search');
const suggestionsBox = document.getElementById('suggestions');

companyInput.addEventListener('input', function() {
  const query = this.value.toLowerCase();
  suggestionsBox.innerHTML = '';

  if (!query) {
    suggestionsBox.style.display = 'none';
    filterOptions();  // <-- When cleared, re-filter without company constraint
    return;
  }

  const matches = Array.from(new Set(
  allItems
    .map(item => item.company)
    .filter(name => name.toLowerCase().startsWith(query))
)).slice(0, 10);

  if (matches.length > 0) {
    suggestionsBox.style.display = 'block';
    matches.forEach(name => {
      const div = document.createElement('div');
      div.textContent = name;
      div.addEventListener('click', function() {
        companyInput.value = name;
        suggestionsBox.style.display = 'none';
        filterOptions();
      });
      suggestionsBox.appendChild(div);
    });
  } else {
    suggestionsBox.style.display = 'none';
  }
});

// Hide suggestions when clicking outside
document.addEventListener('click', function(e) {
  if (!suggestionsBox.contains(e.target) && e.target !== companyInput) {
    suggestionsBox.style.display = 'none';
  }
});

// ---- Window load ----

window.onload = () => {
  populateSelect("risk-filter", getUniqueValues("risks"));
  populateSelect("sector-filter", getUniqueValues("sector"));
  populateSelect("sub-filter", getUniqueValues("sub"));
  filterOptions();
};
</script>

</div>
</div>
</section>
<section id="charts" class="level3">
<h3 class="anchored" data-anchor-id="charts">Charts</h3>
<div id="ddc298e6-8e7c-4963-b87f-39d5b4b31ca3" class="cell">
<div class="cell-output cell-output-display">

<div id="iframe-carousel" style="position: relative; width: 100%; height: 550px; overflow: hidden; text-align: center;">
  <div id="iframe-container" style="position: relative; width: 80%; height: 550px; margin: auto;">
    <iframe class="carousel-iframe active" src="assets/figure_4.html" style="position: absolute; top:0; left:0; width: 100%; height: 100%; border: none; visibility: hidden; pointer-events: none;"></iframe>
    <iframe class="carousel-iframe" src="assets/figure_1.html" style="position: absolute; top:0; left:0; width: 100%; height: 100%; border: none; visibility: hidden; pointer-events: none;"></iframe>
    <iframe class="carousel-iframe" src="assets/figure_2.html" style="position: absolute; top:0; left:0; width: 100%; height: 100%; border: none; visibility: hidden; pointer-events: none;"></iframe>
    <iframe class="carousel-iframe" src="assets/figure_3.html" style="position: absolute; top:0; left:0; width: 100%; height: 100%; border: none; visibility: hidden; pointer-events: none;"></iframe>
  </div>

  <button id="prevBtn" onclick="prevIframe()" style="position: absolute; top: 50%; left: 0; transform: translateY(-50%); z-index: 10; font-size: 1rem;">◀</button>
  <button id="nextBtn" onclick="nextIframe()" style="position: absolute; top: 50%; right: 0; transform: translateY(-50%); z-index: 10; font-size: 1rem;">▶</button>
</div>

<script>
const iframes = document.querySelectorAll(".carousel-iframe");
let currentIframe = 0;
let loadedCount = 0;

iframes.forEach((iframe, idx) => {
  iframe.addEventListener('load', () => {
    iframe.style.pointerEvents = 'auto';
    loadedCount += 1;
    if (loadedCount === iframes.length) {
      showIframe(0); // Only after ALL are loaded
    }
  });
});


function showIframe(index) {
  iframes.forEach((iframe, idx) => {
    if (idx === index) {
      iframe.style.display = "block";
      iframe.style.visibility = "visible";
    } else {
      iframe.style.display = "none";
      iframe.style.visibility = "hidden";
    }
  });
  currentIframe = index;
}

function prevIframe() {
  const newIndex = (currentIframe - 1 + iframes.length) % iframes.length;
  showIframe(newIndex);
}

function nextIframe() {
  const newIndex = (currentIframe + 1) % iframes.length;
  showIframe(newIndex);
}
</script>
</div>
</div>


</section>

 ]]></description>
  <category>Risk Extraction</category>
  <guid>https://adu.autonomy.work/posts/2025_05_21_ai_risk/</guid>
  <pubDate>Tue, 20 May 2025 23:00:00 GMT</pubDate>
  <media:content url="https://adu.autonomy.work/posts/2025_05_21_ai_risk/assets/openai.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>Crisis and Commerce</title>
  <dc:creator>Sean Greaves</dc:creator>
  <link>https://adu.autonomy.work/posts/2025_02_20_crisis-and-commerce/</link>
  <description><![CDATA[ 





<p><em>The findings in this post are part of an ongoing project to develop a methodology for extracting climate and geopolitical risk—as well as other critical data points—from vast amounts of unstructured data, such as company filings. This work is part of a broader research initiative to uncover signals in corporate disclosures that can inform research, policy, and strategy. Over the coming months, we will be publishing further results from this stream. We are also developing these methodologies into a service. For inquiries, contact us at: adu@autonomy.work</em></p>
<p>Reflecting upon the risks to business posed by the war in Ukraine, a Hampshire-based supplier of electronics to the defence sector, conceded in their latest annual report that <a href="https://find-and-update.company-information.service.gov.uk/company/02292621/filing-history/MzQzNzc4MzgzNGFkaXF6a2N4/document?format=xhtml&amp;download=0"><em>sadly the conflict may result in additional business</em></a>. When considering which companies see rising demand in wartime, military technology providers are perhaps the first that spring to mind. Yet as the impacts of conflict spread throughout the economy, some more unexpected areas of growth begin to emerge.</p>
<p>The energy crisis triggered by war in Europe pushed British consumers to find new ways of reducing their energy bills. Lifehacks like drying clothes with a dehumidifier instead of a tumble dryer, gained more traction amongst consumers than they ever had in peacetime. Even device manufacturers were caught off-guard. Meaco, the <a href="https://find-and-update.company-information.service.gov.uk/company/05000418/filing-history/MzQ0ODU0NzgwNmFkaXF6a2N4/document?format=xhtml&amp;download=0">UK’s leading supplier of dehumidifiers</a>, notes in their latest annual report that, <em>surprisingly</em>, high energy prices <em>resulted in increased sales</em>. Other consumer trends mentioned in last year’s corporate filings associated with the economic conditions of ongoing wars included a <a href="https://find-and-update.company-information.service.gov.uk/company/03314399/filing-history/MzQzNzUwNjc4NmFkaXF6a2N4/document?format=xhtml&amp;download=0"><em>surge in staycations</em></a>, a <a href="https://find-and-update.company-information.service.gov.uk/company/12081600/filing-history/MzQzNDQ4OTA1MWFkaXF6a2N4/document?format=xhtml&amp;download=0"><em>very strong</em> used-car market</a>, <a href="https://find-and-update.company-information.service.gov.uk/company/SC242506/filing-history/MzQzNDE4MjkwMGFkaXF6a2N4/document?format=xhtml&amp;download=0"><em>accelerated</em> buying of Palestinian goods</a> and <a href="https://find-and-update.company-information.service.gov.uk/company/00936960/filing-history/MzQxNjQxMzQ4OGFkaXF6a2N4/document?format=xhtml&amp;download=0">increased wood burning</a>.</p>
<figure style="text-align: center;" class="figure">
<img src="https://adu.autonomy.work/posts/2025_02_20_crisis-and-commerce/assets/meaco.png" style="border: 1px solid black; width: 60%; box-sizing: border-box; display: block; margin: auto;" class="figure-img">
<figcaption>
Meaco dehumidifier (source: <a href="https://blog.meaco.com/the-benefits-of-using-a-dehumidifier-to-dry-your-laundry/">Meaco blog</a>)
</figcaption>
</figure>
<p>We may recognize disparate trends like these through direct experience, peripheral awareness or common sense. Yet, encountering this phenomena through the stark, no-frills prose of an annual report offers a different kind of signal. One filtered through the dispassionate logic of financial materiality. When the impacts of war appear in these documents, it appears as a force shaping balance sheets. Its inclusion is usually there to justify financial shortcomings, and in rare instances financial gain. In this way, annual reports, taken in aggregate, offer a unique yet constrained lens on to the world.</p>
<p>To illustrate the ways in which geopolitical crisis are shifting the landscape for UK businesses, the following study presents a selection of British companies reporting increased demand, and in some cases, commercial gain, directly linked to the economic conditions of ongoing conflict. This research is drawn from the narrative data embedded wthin annual reports electronically submitted to <a href="https://download.companieshouse.gov.uk/en_monthlyaccountsdata.html">Companies House</a> throughout 2024 by 3,168,750 companies. This cohort represents the majority of UK-registered companies, though it excludes most of the largest firms, which still file their accounts in paper format.</p>
<section id="medicine" class="level2">
<h2 class="anchored" data-anchor-id="medicine">Medicine</h2>
<p>More pharmacies opened in Ukraine throughout 2024 than any other type of store. Data provided by the <a href="https://rau.ua/novyni/geografija-ritejlu-2024-09/">Retail Association of Ukraine</a> shows that pharmacies are the most common store type, making up 36% of the 22,073 retail premises tracked by the organisation. Food retail makes up 21% of trade for comparison. This growth in pharmaceutical retail amid war creates opportunities to exploit a supply chain historically vulnerable to corruption.</p>
<p>In 2014, government auditors estimated that Ukrainians were <a href="https://www.ft.com/content/3ac00315-c8ed-40cb-8733-0e42f2014553">overpaying for medicines</a> by up to 40%, largely due to a procurement system dominated by a few <a href="https://www.theguardian.com/world/2016/aug/23/uk-crown-agents-cuts-cost-medicines-quarter-ukraine-health-service">oligarchic intermediaries</a> who sourced cheap drugs through offshore shell companies and sold them at inflated prices. Ukraine’s Ministry of Health attempted to reform the system by employing international agencies such as the British development organisation Crown Agents alongside UNICEF and the UN Development Programme. Despite this attempt at reform saving the Ministry of Health tens of millions of dollars, it is still possible to find offshore intermediaries selling medicine into Ukraine with connections to the old system.</p>
<p><a href="https://find-and-update.company-information.service.gov.uk/company/04303458/filing-history/MzQzNzUyMjUzM2FkaXF6a2N4/document?format=xhtml&amp;download=0">Mili Healthcare</a> is a UK-registered company that operates solely in Ukraine, supplying hospitals and retail pharmacies with drugs, ranging from cold medicines to cancer treatments. From 2016-2019, the company was led by Borys Lytovsky, a businessman active in the pharmaceuticals sector since <a href="https://www.apteka.ua/article/10128">the 90s</a>. Though largely unknown outside Ukrainian and Russian media, investigative journalists from the Ukrainian anti-corruption project <a href="https://nashigroshi.org/">Nashi Groshi</a> (Our Money) have called Lytovsky the most underestimated <a href="https://nashigroshi.org/2011/04/27/v-ozhydanyy-proverky-na-vshyvost/"><em>pharmaceutical oligarch</em></a>.</p>
<p>Nashi Groshi alleges Lytovsky’s involvement in Ministry of Health <a href="https://nashigroshi.org/2011/09/07/baloha-za-doruchennyam-azarova-kupyv-liky-u-firmy-yaku-donetskyj-ministr-vidsunuv-vid-zakupivel/">procurement schemes</a> as far back as the early 2010s. In 2014, the outlet wrote of his connections to the Farmex Group that <a href="https://nashigroshi.org/2014/10/20/moz-skupyvsya-na-215-miljoniv-vaktsyny-vid-eks-hubernatora-moskoviji-podorozhchaly-vdvichi/">hiked the price of vaccines</a> by 60% over the course of a year. As recently as 2020, journalists have connected Lytovsky to Norton-Ukraine LLC, which sold <a href="https://covid.unian.ua/zhurnalisti-z-yasuvali-hto-prodav-likarnyam-neefektivni-aparati-dlya-testuvannya-na-covid-19-za-kosmichnimi-cinami-11011481.html">coronavirus testing machines</a> to hospitals at inflated prices. A number of scientists who used the machines found them to be ineffective.</p>
<p>In 2015, before Lytovsky became director of Mili Healthcare, international organizations supporting Ukraine’s pharmaceutical procurement reforms purchased oncology drugs from the company. When the list of purchased medicines was made public, concerns about the quality of Mili Healthcare’s drugs surfaced on social media, drawing criticism from prominent figures, including a well-known <a href="https://www.rbc.ua/rus/news/fonde-pomoshchi-onkobolnym-detyam-obvinili-1456833569.html">charity leader</a> and <a href="https://blogs.pravda.com.ua/authors/goncharenko/56d2fc774a50e/page_3/">investigative journalist</a>. At the same time, some argued that these concerns were orchestrated through a <a href="https://epravda.com.ua/columns/2016/03/4/584130/?fbclid=IwY2xjawINkYRleHRuA2FlbQIxMAABHZKxxL7ERz7TiTqXhlh-7V5zKdnPr4iB-itjLB8DVJs0yBApsACMQjN58g_aem_bIbuJQjuypxu5GsnJBUfEw">covert campaign</a> by the pharmaceutical oligarchy to undermine public confidence in the reforms and discredit the role of international agencies. Regardless of the controversy, Lytovsky’s appointment as director of Mili Healthcare in 2016 is notable for how closely it followed the company’s emergence as a supplier within the reformed system.</p>
<figure style="text-align: center;" class="figure">
<img src="https://adu.autonomy.work/posts/2025_02_20_crisis-and-commerce/assets/mili_h.png" style="border: 1px solid black; width: 60%; box-sizing: border-box; display: block; margin: auto;" class="figure-img">
<figcaption>
Etoposide Mili | Этопозид Мили (source: <a href="http://mili.ua/ru/produkty/47-onkologicheskaya-gruppa-preparatov/642-etoposide-mili-produkt">Mili Healthcare</a>)
</figcaption>
</figure>
<p>In 2019 Lytovsky ceded control of Mili Healthcare to Olga Lytovska, the current director of the company. According to Companies House filings she is, like Lytovsky, a Ukrainian national based in Monaco. Furthermore, according to investigative journalists from <a href="https://most.ks.ua/news/url/ljudi_iz_oboronki_hersontsy_farmmafija_i_rybnye_magnaty_kto_priezzhal_pozdravljat_matiosa_s_jubileem/?">Bihus</a>, Olga Lytovska is the name of Borys Lytovsky’s wife.</p>
<p>Mili Healthcare recently won Ministry of Health tenders to deliver <a href="https://find-and-update.company-information.service.gov.uk/company/04303458/filing-history/MzQzNzUyMjUzM2FkaXF6a2N4/document?format=xhtml&amp;download=0">oncology drugs</a> from 2024-2025 for around $7 million. The company occupies 0.4% of the market and grew its sales by 28% in 2023. Whilst British companies have previously attempted to aid Ukraine in reforming its procurement system, it is unclear to what extent the UK’s own corporate registry has and perhaps continues to facilitate some of this graft.</p>
</section>
<section id="defence" class="level2">
<h2 class="anchored" data-anchor-id="defence">Defence</h2>
<p>Global military expenditure has reached a record <a href="https://www.theguardian.com/world/2024/apr/22/global-defence-budget-jumps-to-record-high-of-2440bn">$2.4 trillion</a>, with Europe experiencing its <a href="https://www.sipri.org/media/press-release/2023/world-military-expenditure-reaches-new-record-high-european-spending-surges?utm_source=chatgpt.com">sharpest increase</a> in three decades. Against this backdrop, it’s no surprise that many suppliers to the UK’s armed forces anticipate rapid growth in demand, with some already reporting strong order books and increased turnover.</p>
<div id="f052c2c0-e603-477f-8a5b-4b588ee66fd6" class="cell">
<div class="cell-output cell-output-display">
<style type="text/css">
#T_d13a1 thead {
  background-color: lightgrey;
  font-weight: bold;
  vertical-align: middle;
  text-align: center;
}
#T_d13a1 th {
  text-align: center;
  vertical-align: middle;
}
#T_d13a1 td {
  text-align: left;
}
#T_d13a1_row0_col0, #T_d13a1_row1_col0, #T_d13a1_row2_col0, #T_d13a1_row3_col0, #T_d13a1_row4_col0, #T_d13a1_row5_col0, #T_d13a1_row6_col0, #T_d13a1_row7_col0, #T_d13a1_row8_col0, #T_d13a1_row9_col0, #T_d13a1_row10_col0, #T_d13a1_row11_col0, #T_d13a1_row12_col0, #T_d13a1_row13_col0, #T_d13a1_row14_col0, #T_d13a1_row15_col0, #T_d13a1_row16_col0, #T_d13a1_row17_col0, #T_d13a1_row18_col0, #T_d13a1_row19_col0, #T_d13a1_row20_col0, #T_d13a1_row21_col0, #T_d13a1_row22_col0, #T_d13a1_row23_col0, #T_d13a1_row24_col0, #T_d13a1_row25_col0 {
  text-align: left;
}
#T_d13a1_row0_col4, #T_d13a1_row1_col4, #T_d13a1_row2_col4, #T_d13a1_row3_col4, #T_d13a1_row4_col4, #T_d13a1_row5_col4, #T_d13a1_row6_col4, #T_d13a1_row7_col4, #T_d13a1_row8_col4, #T_d13a1_row9_col4, #T_d13a1_row10_col4, #T_d13a1_row11_col4, #T_d13a1_row12_col4, #T_d13a1_row13_col4, #T_d13a1_row16_col4, #T_d13a1_row18_col4, #T_d13a1_row19_col4, #T_d13a1_row20_col4, #T_d13a1_row22_col4, #T_d13a1_row23_col4 {
  background-color: lightgreen;
}
#T_d13a1_row14_col4, #T_d13a1_row15_col4, #T_d13a1_row17_col4, #T_d13a1_row21_col4, #T_d13a1_row24_col4, #T_d13a1_row25_col4 {
  background-color: lightcoral;
}
</style>

<table id="T_d13a1" class="caption-top table table-sm table-striped small" data-quarto-postprocess="true">
<thead>
<tr class="header">
<th id="T_d13a1_level0_col0" class="col_heading level0 col0" data-quarto-table-cell-role="th">Company Name</th>
<th id="T_d13a1_level0_col1" class="col_heading level0 col1" data-quarto-table-cell-role="th">Company Description</th>
<th id="T_d13a1_level0_col2" class="col_heading level0 col2" data-quarto-table-cell-role="th">Reported Impact</th>
<th id="T_d13a1_level0_col3" class="col_heading level0 col3" data-quarto-table-cell-role="th">Turnover Amount (£)</th>
<th id="T_d13a1_level0_col4" class="col_heading level0 col4" data-quarto-table-cell-role="th">Turnover Change (%)</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td id="T_d13a1_row0_col0" class="data row0 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/12109077/filing-history/MzQzNzc0ODAzMGFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Hamble Aerostructures Limited</a></td>
<td id="T_d13a1_row0_col1" class="data row0 col1">Advanced aerostructures</td>
<td id="T_d13a1_row0_col2" class="data row0 col2">Expects an increase in product demand from geopolitical challenges</td>
<td id="T_d13a1_row0_col3" class="data row0 col3">90.7M</td>
<td id="T_d13a1_row0_col4" class="data row0 col4">16</td>
</tr>
<tr class="even">
<td id="T_d13a1_row1_col0" class="data row1 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/01299452/filing-history/MzQzNzU0MjQxOGFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Sonardyne International Limited</a></td>
<td id="T_d13a1_row1_col1" class="data row1 col1">Underwater navigation, positioning, and communication systems</td>
<td id="T_d13a1_row1_col2" class="data row1 col2">Ukraine war increased interest in company products</td>
<td id="T_d13a1_row1_col3" class="data row1 col3">67.9M</td>
<td id="T_d13a1_row1_col4" class="data row1 col4">39</td>
</tr>
<tr class="odd">
<td id="T_d13a1_row2_col0" class="data row2 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/02292621/filing-history/MzQzNzc4MzgzNGFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Surface Technology International Limited</a></td>
<td id="T_d13a1_row2_col1" class="data row2 col1">PCB assembly and electronic manufacturing</td>
<td id="T_d13a1_row2_col2" class="data row2 col2">Ukraine war may result in additional business</td>
<td id="T_d13a1_row2_col3" class="data row2 col3">51.1M</td>
<td id="T_d13a1_row2_col4" class="data row2 col4">27</td>
</tr>
<tr class="even">
<td id="T_d13a1_row3_col0" class="data row3 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/02983376/filing-history/MzQxNjEyODIxN2FkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Axis Electronics Limited</a></td>
<td id="T_d13a1_row3_col1" class="data row3 col1">Electronic components</td>
<td id="T_d13a1_row3_col2" class="data row3 col2">Expects NATO to spend on projects involving the company</td>
<td id="T_d13a1_row3_col3" class="data row3 col3">41.7M</td>
<td id="T_d13a1_row3_col4" class="data row3 col4">100</td>
</tr>
<tr class="odd">
<td id="T_d13a1_row4_col0" class="data row4 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/01724399/filing-history/MzQ0ODU2OTg4MmFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">SAAB UK LTD</a></td>
<td id="T_d13a1_row4_col1" class="data row4 col1">Defence and security technologies</td>
<td id="T_d13a1_row4_col2" class="data row4 col2">World events created unprecedented demand for defence capabilities</td>
<td id="T_d13a1_row4_col3" class="data row4 col3">40.8M</td>
<td id="T_d13a1_row4_col4" class="data row4 col4">29</td>
</tr>
<tr class="even">
<td id="T_d13a1_row5_col0" class="data row5 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/01514084/filing-history/MzQxNzMwNTA2MWFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Supacat Limited</a></td>
<td id="T_d13a1_row5_col1" class="data row5 col1">Off-road vehicles</td>
<td id="T_d13a1_row5_col2" class="data row5 col2">Provides vehicles to MoD and also re-rolling vehicles for the Ukraine conflict</td>
<td id="T_d13a1_row5_col3" class="data row5 col3">38M</td>
<td id="T_d13a1_row5_col4" class="data row5 col4">181</td>
</tr>
<tr class="odd">
<td id="T_d13a1_row6_col0" class="data row6 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/06361441/filing-history/MzQxNjcxOTQ4N2FkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Callen-Lenz Associates Limited</a></td>
<td id="T_d13a1_row6_col1" class="data row6 col1">Uncrewed aerial systems (UAS)</td>
<td id="T_d13a1_row6_col2" class="data row6 col2">Geopolitical situation making UAS central to defence procurement</td>
<td id="T_d13a1_row6_col3" class="data row6 col3">37.1M</td>
<td id="T_d13a1_row6_col4" class="data row6 col4">332</td>
</tr>
<tr class="even">
<td id="T_d13a1_row7_col0" class="data row7 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/05208041/filing-history/MzQ0MjQwMjM2MmFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Satcom Global Limited</a></td>
<td id="T_d13a1_row7_col1" class="data row7 col1">Satellite communications services</td>
<td id="T_d13a1_row7_col2" class="data row7 col2">Global conflict may increase demand for satellite services</td>
<td id="T_d13a1_row7_col3" class="data row7 col3">35.2M</td>
<td id="T_d13a1_row7_col4" class="data row7 col4">3</td>
</tr>
<tr class="odd">
<td id="T_d13a1_row8_col0" class="data row8 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/07533695/filing-history/MzQyMzA0MDg2OGFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">L Jackson &amp; Co Limited</a></td>
<td id="T_d13a1_row8_col1" class="data row8 col1">Ex-military equipment</td>
<td id="T_d13a1_row8_col2" class="data row8 col2">Global insecurity is the primary reason for strong sales</td>
<td id="T_d13a1_row8_col3" class="data row8 col3">33.2M</td>
<td id="T_d13a1_row8_col4" class="data row8 col4">210</td>
</tr>
<tr class="even">
<td id="T_d13a1_row9_col0" class="data row9 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/08349831/filing-history/MzQzMjUxNjU3MmFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Micross UK Solutions Limited</a></td>
<td id="T_d13a1_row9_col1" class="data row9 col1">Microelectronics</td>
<td id="T_d13a1_row9_col2" class="data row9 col2">Ideally placed to support defence customers through asset modernisation</td>
<td id="T_d13a1_row9_col3" class="data row9 col3">32.6M</td>
<td id="T_d13a1_row9_col4" class="data row9 col4">25</td>
</tr>
<tr class="odd">
<td id="T_d13a1_row10_col0" class="data row10 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/02613471/filing-history/MzM4NDg2MTI3OWFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Alcon Components Limited</a></td>
<td id="T_d13a1_row10_col1" class="data row10 col1">Specialist automotive components</td>
<td id="T_d13a1_row10_col2" class="data row10 col2">Ukraine war led to demand uptick</td>
<td id="T_d13a1_row10_col3" class="data row10 col3">23.3M</td>
<td id="T_d13a1_row10_col4" class="data row10 col4">28</td>
</tr>
<tr class="even">
<td id="T_d13a1_row11_col0" class="data row11 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/00964834/filing-history/MzQyMDM3OTEzMGFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Oxley Group Limited</a></td>
<td id="T_d13a1_row11_col1" class="data row11 col1">Lighting and electro-optic systems</td>
<td id="T_d13a1_row11_col2" class="data row11 col2">Increased sales from increased global defence budgets</td>
<td id="T_d13a1_row11_col3" class="data row11 col3">20.7M</td>
<td id="T_d13a1_row11_col4" class="data row11 col4">11</td>
</tr>
<tr class="odd">
<td id="T_d13a1_row12_col0" class="data row12 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/01780818/filing-history/MzQ0Njk0MjE1NWFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Allan Webb Ltd</a></td>
<td id="T_d13a1_row12_col1" class="data row12 col1">Supportability services and documentation</td>
<td id="T_d13a1_row12_col2" class="data row12 col2">Significant opportunities in the defence market</td>
<td id="T_d13a1_row12_col3" class="data row12 col3">19.5M</td>
<td id="T_d13a1_row12_col4" class="data row12 col4">1</td>
</tr>
<tr class="even">
<td id="T_d13a1_row13_col0" class="data row13 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/04390226/filing-history/MzQyNzA2NTYzNGFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Marine Specialised Technology Limited</a></td>
<td id="T_d13a1_row13_col1" class="data row13 col1">Rigid inflatables and high-speed workboats</td>
<td id="T_d13a1_row13_col2" class="data row13 col2">Substantial turnover increases expected in next 3 years</td>
<td id="T_d13a1_row13_col3" class="data row13 col3">19.3M</td>
<td id="T_d13a1_row13_col4" class="data row13 col4">31</td>
</tr>
<tr class="odd">
<td id="T_d13a1_row14_col0" class="data row14 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/01185365/filing-history/MzQxMjA4NTc2OWFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">CHT UK Bridgwater Ltd</a></td>
<td id="T_d13a1_row14_col1" class="data row14 col1">Speciality silicone compounds</td>
<td id="T_d13a1_row14_col2" class="data row14 col2">Upturn expected in the sector due to global conflict</td>
<td id="T_d13a1_row14_col3" class="data row14 col3">18.7M</td>
<td id="T_d13a1_row14_col4" class="data row14 col4">-1</td>
</tr>
<tr class="even">
<td id="T_d13a1_row15_col0" class="data row15 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/09060509/filing-history/MzQ0ODE1NDIyM2FkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">E-PPL Holdings Limited</a></td>
<td id="T_d13a1_row15_col1" class="data row15 col1">Vehicle launch and rework</td>
<td id="T_d13a1_row15_col2" class="data row15 col2">Significant growth opportunity from increased defence spending by European and International governments</td>
<td id="T_d13a1_row15_col3" class="data row15 col3">16.6M</td>
<td id="T_d13a1_row15_col4" class="data row15 col4">-59</td>
</tr>
<tr class="odd">
<td id="T_d13a1_row16_col0" class="data row16 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/05136214/filing-history/MzQyMjQzMDUyMWFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Mabway Limited</a></td>
<td id="T_d13a1_row16_col1" class="data row16 col1">Training</td>
<td id="T_d13a1_row16_col2" class="data row16 col2">Significant contract recently won with British army</td>
<td id="T_d13a1_row16_col3" class="data row16 col3">16.5M</td>
<td id="T_d13a1_row16_col4" class="data row16 col4">9</td>
</tr>
<tr class="even">
<td id="T_d13a1_row17_col0" class="data row17 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/00568879/filing-history/MzQyMDI5OTYzNGFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Nasmyth Bulwell Limited</a></td>
<td id="T_d13a1_row17_col1" class="data row17 col1">Precision aerospace components and assemblies</td>
<td id="T_d13a1_row17_col2" class="data row17 col2">Defence is a key growth sector for the company</td>
<td id="T_d13a1_row17_col3" class="data row17 col3">16.5M</td>
<td id="T_d13a1_row17_col4" class="data row17 col4">-15</td>
</tr>
<tr class="odd">
<td id="T_d13a1_row18_col0" class="data row18 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/03734105/filing-history/MzQxNjQ5MjI4OGFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">AirBorn International Ltd</a></td>
<td id="T_d13a1_row18_col1" class="data row18 col1">Connectors and electronic components</td>
<td id="T_d13a1_row18_col2" class="data row18 col2">Expected demand increase for certain products due to Ukraine war</td>
<td id="T_d13a1_row18_col3" class="data row18 col3">13.4M</td>
<td id="T_d13a1_row18_col4" class="data row18 col4">55</td>
</tr>
<tr class="even">
<td id="T_d13a1_row19_col0" class="data row19 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/03734701/filing-history/MzQ0ODI4NTUxMWFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Merlin PCB Group Limited</a></td>
<td id="T_d13a1_row19_col1" class="data row19 col1">Printed Circuit Board (PCB) manufacturing</td>
<td id="T_d13a1_row19_col2" class="data row19 col2">Elevated demand for defence products will benefit the group</td>
<td id="T_d13a1_row19_col3" class="data row19 col3">12.3M</td>
<td id="T_d13a1_row19_col4" class="data row19 col4">24</td>
</tr>
<tr class="odd">
<td id="T_d13a1_row20_col0" class="data row20 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/02457981/filing-history/MzQ0ODI2OTAyNmFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Salt Separation Services Limited</a></td>
<td id="T_d13a1_row20_col1" class="data row20 col1">Reverse osmosis water treatment systems</td>
<td id="T_d13a1_row20_col2" class="data row20 col2">Geopolitical situation provides opportunities in defence sector</td>
<td id="T_d13a1_row20_col3" class="data row20 col3">10.9M</td>
<td id="T_d13a1_row20_col4" class="data row20 col4">3</td>
</tr>
<tr class="even">
<td id="T_d13a1_row21_col0" class="data row21 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/11353378/filing-history/MzQzNzgwNzU5OGFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Melius Holdings Limited</a></td>
<td id="T_d13a1_row21_col1" class="data row21 col1">Instrumentation design and manufacturing</td>
<td id="T_d13a1_row21_col2" class="data row21 col2">Very strong demand building in defence</td>
<td id="T_d13a1_row21_col3" class="data row21 col3">10.9M</td>
<td id="T_d13a1_row21_col4" class="data row21 col4">-15</td>
</tr>
<tr class="odd">
<td id="T_d13a1_row22_col0" class="data row22 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/02385991/filing-history/MzQ0MzU2NDE0MGFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Spectrum Technologies Limited</a></td>
<td id="T_d13a1_row22_col1" class="data row22 col1">Specialised industrial laser systems</td>
<td id="T_d13a1_row22_col2" class="data row22 col2">Ukraine war increased demand for fuel efficient aircraft</td>
<td id="T_d13a1_row22_col3" class="data row22 col3">10.2M</td>
<td id="T_d13a1_row22_col4" class="data row22 col4">48</td>
</tr>
<tr class="even">
<td id="T_d13a1_row23_col0" class="data row23 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/10408185/filing-history/MzQ1NTgwMjYzM2FkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Ubisecure Holdings Limited</a></td>
<td id="T_d13a1_row23_col1" class="data row23 col1">Identity services</td>
<td id="T_d13a1_row23_col2" class="data row23 col2">Ukraine war positively impacted digital identity and cybersecurity space</td>
<td id="T_d13a1_row23_col3" class="data row23 col3">8.7M</td>
<td id="T_d13a1_row23_col4" class="data row23 col4">25</td>
</tr>
<tr class="odd">
<td id="T_d13a1_row24_col0" class="data row24 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/00828340/filing-history/MzQzMDc4Mjg5MWFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Currock Engineering Company Limited</a></td>
<td id="T_d13a1_row24_col1" class="data row24 col1">Precision engineering</td>
<td id="T_d13a1_row24_col2" class="data row24 col2">Ukraine and Gaza leading to increased defence spending that company depends on</td>
<td id="T_d13a1_row24_col3" class="data row24 col3">5.8M</td>
<td id="T_d13a1_row24_col4" class="data row24 col4">-24</td>
</tr>
<tr class="even">
<td id="T_d13a1_row25_col0" class="data row25 col0"><a href="https://find-and-update.company-information.service.gov.uk/company/06201353/filing-history/MzQxNTkxNzEwN2FkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Amplicon Group Limited</a></td>
<td id="T_d13a1_row25_col1" class="data row25 col1">Industrial personal computers (PCs)</td>
<td id="T_d13a1_row25_col2" class="data row25 col2">Ukraine war increased opportunities</td>
<td id="T_d13a1_row25_col3" class="data row25 col3">218k</td>
<td id="T_d13a1_row25_col4" class="data row25 col4">-13</td>
</tr>
</tbody>
</table>
</div>
</div>
<p>Large defence contractors are the main beneficiaries of rising military spending, relying on governments as their primary clients. SAAB UK, a subsidiary of the Swedish defence firm SAAB AB, describes its <a href="https://find-and-update.company-information.service.gov.uk/company/01724399/filing-history/MzQ0ODU2OTg4MmFkaXF6a2N4/document?format=xhtml&amp;download=0">relationship with the Ministry of Defence (MoD)</a> and the Department for Business &amp; Trade as <em>very close</em>. This close proximity allows them to better anticipate government needs and navigate changes such as those that may follow the upcoming Defence Spending Review. SAAB’s <a href="https://www.saab.com/newsroom/press-releases/2025/saabs-advanced-uk-manufacturing-facility-opened-by-secretary-of-state">newly opened advanced manufacturing site</a> in Hampshire was inaugurated earlier this month by the Secretary of State for Business and Trade.</p>
<p>Rising demand for UK defence products is being driven not only by domestic needs but also through increased European investment. Merlin PCB Group, the UK’s largest printed circuit board (PCB) manufacturer, reports record-high order volumes, supplying electronics to <a href="https://find-and-update.company-information.service.gov.uk/company/03734701/filing-history/MzQ0ODI4NTUxMWFkaXF6a2N4/document?format=xhtml&amp;download=0">replenish EU and NATO stockpiles</a> while also supporting Ukraine. Elsewhere, Marine Specialised Technology, a manufacturer of <a href="https://www.adsadvance.co.uk/mst-s-frisc-craft-selected-for-german-f126-frigates.html">rigid hulled inflatable mission boats</a>, has secured significant orders through NATO contracts, including a <a href="https://find-and-update.company-information.service.gov.uk/company/04390226/filing-history/MzQyNzA2NTYzNGFkaXF6a2N4/document?format=xhtml&amp;download=0">landmark deal with the German Navy</a> under its F126 Frigate Programme; the largest procurement in the navy’s history.</p>
<p>The transformation of recent conflicts through drone warfare and AI is stimulating product development in the UK across legacy players and smaller SMEs. Over the past year, SAAB has focussed its UK operations towards autonomous systems, acquiring a start-up specializing in <a href="https://breakingdefense.com/2023/08/saab-makes-ai-statement-of-intent-with-bluebear-acquisition/">AI-driven drone swarms</a> and relocating production of its underwater robotics portfolio to the UK. Meanwhile, Callen-Lenz, a company developing in-house <a href="https://find-and-update.company-information.service.gov.uk/company/06361441/filing-history/MzQxNjcxOTQ4N2FkaXF6a2N4/document?format=xhtml&amp;download=0">uncrewed aerial systems</a> (UAS) that counts former Thales CEO Victor Chavez as a non-executive director, quadrupled its turnover. Notably, 97% of its turnover was generated in the UK, where it supports the Ministry of Defence (MoD) across R&amp;D and UAS supply. Callen-Lenz observe that the current geopolitical situation has accelerated uncrewed air systems to become a <em>central pillar of Defence Procurement</em>, giving the company what appears to be its most exceptional year of growth across 15 years of operation.</p>
<p>Many companies driving the defence sector’s growth develop dual-use technologies, serving both military and civilian markets. Such firms balance defence contracts with projects in other highly regulated industries such as marine science, aerospace and energy. These domains require extreme reliability in some of the world’s most hostile environments. Salt Separation Services, for instance, supplies reverse osmosis plants that provide drinking water to <a href="https://saltsep.co.uk/our-company-history">Royal Navy submarine crews</a> submerged for months, as well as to scientists stationed at <a href="https://saltsep.co.uk/project/reverse-osmosis-plant-spares-and-support-for-bas">Antarctica’s remote Rothera Research Station</a>. Likewise, Alcon Components’ bespoke braking systems are deployed in Supacat Jackal vehicles, a number of which are reportedly in use on <a href="https://armyrecognition.com/focus-analysis-conflicts/army/conflicts-in-the-world/russia-ukraine-war-2022/russia-captures-in-ukraine-state-of-the-art-british-made-hmt-extenda-mk2-special-forces-vehicle">Ukrainian battlefields</a>, while also servicing <a href="https://www.alcon.co.uk/alconequipped-aston-martin-valkyrie-amr-lmh-hypercar-hits-the-track/">Aston Martin hypercars</a> competing in prestigious 24-hour endurance races in Le Mans.</p>
<p>One of the key challenges of assembling highly sophisticated and expensive equipment in close proximity is ensuring its effective operation, maintenance and long-term viability. This places emphasis on training, military simulation, engineering education and technical documentation with providers such as <a href="https://find-and-update.company-information.service.gov.uk/company/01780818/filing-history/MzQ0Njk0MjE1NWFkaXF6a2N4/document?format=xhtml&amp;download=0">Allan Webb</a> reporting increased opportunities and <a href="https://find-and-update.company-information.service.gov.uk/company/05136214/filing-history/MzQyMjQzMDUyMWFkaXF6a2N4/document?format=xhtml&amp;download=0">Mabway</a> securing recent contracts with the British Army.</p>
<p>While investments in new hardware and training are essential for long-term military readiness, they must be balanced against the immediate demands of ongoing operations. With wars raging on multiple continents and new hardware taking years to develop, existing military equipment has been highly sought after. As a result, portions of defence budgets are being directed toward extending the lifespan of aging assets. The MoD recently funded vehicle manufacturer <a href="https://find-and-update.company-information.service.gov.uk/company/01514084/filing-history/MzQxNzMwNTA2MWFkaXF6a2N4/document?format=xhtml&amp;download=0">Supacat</a> to repurpose a number of its High Mobility Transporter (HMT) off-road vehicles for use in Ukraine.</p>
<p>It is striking that amongst all companies reporting financial uplift from ongoing conflict, the UK’s largest supplier of ex-military hardware, L Jackson &amp; Co, saw one of the steepest relative increases in turnover. The company, based at <em>The Rocket Site</em> in Doncaster (an old missile testing facility) reported its highest-ever sales growth, with turnover tripling to £33 million last year. The majority of its £18.4 million in revenue was generated domestically, but European sales reached £11.2 million, surpassing the company’s total global turnover from the previous year. L Jackson &amp; Co attributes its <a href="https://find-and-update.company-information.service.gov.uk/company/07533695/filing-history/MzQyMzA0MDg2OGFkaXF6a2N4/document?format=xhtml&amp;download=0">record sales growth</a> primarily to <em>ongoing global insecurity</em>. Data from <a href="https://www.importgenius.com/ukraine/suppliers/l-jackson-co-ltd">Import Genius</a> suggests the company has recently shipped a number of vehicles to Ukraine.</p>
<figure style="text-align: center;" class="figure">
<img src="https://adu.autonomy.work/posts/2025_02_20_crisis-and-commerce/assets/warthog.jpg" style="border: 1px solid black; width: 65%; box-sizing: border-box; display: block; margin: auto;" class="figure-img">
<figcaption>
Warthog Armoured All Terrain Command Variant (source: <a href="https://web.archive.org/web/20240920044825/https://ljacksonandco.com/product/warthog-armoured-all-terrain-command-variant-cv/">L Jackson &amp; Co</a>)
</figcaption>
</figure>
<p>L Jackson &amp; Co may export its equipment, that is largely if not solely derived from the MoD, to any foreign army for whom the UK government grants an export licence. Failure to comply with these regulations has led to legal trouble in the past. In 2009, the company’s owner was jailed for <a href="http://news.bbc.co.uk/1/hi/england/south_yorkshire/8343267.stm">bypassing government restrictions</a> and selling former military equipment to Sudan. Despite strong performance in 2023, the company has cautioned that procurement opportunities have declined over the past 12 to 18 months, suggesting that high demand may be catching up with the market for ex-military equipment.</p>
</section>
<section id="energy" class="level2">
<h2 class="anchored" data-anchor-id="energy">Energy</h2>
<p>Wholesale electricity and gas prices rocketed as the war in Ukraine stoked supply fears. These cost increases were largely passed on to households as oil and gas majors reported record earnings. ExxonMobil, North America’s largest producer, posted the <a href="https://www.bloomberg.com/news/articles/2022-10-28/exxon-profit-surpasses-expectations-on-natural-gas-export-surge?embedded-checkout=true">highest profit in its 152-year history</a>. This marked yet another extraordinary year in a series of extraordinary years for the energy sector, following the whiplash of lockdowns and economic recovery. The impacts of high prices extended across the broader industry, lifting companies throughout the supply chain.</p>
<p>Smaller independent businesses distributing oil products from major suppliers like ExxonMobil also reported increased turnover as a result of the oil price. Companies including <a href="https://find-and-update.company-information.service.gov.uk/company/02007756/filing-history/MzQ0NTY5MjYzOWFkaXF6a2N4/document?format=xhtml&amp;download=0">Country Oil Group</a>, <a href="https://find-and-update.company-information.service.gov.uk/company/01492318/filing-history/MzQyMDIzOTk1OWFkaXF6a2N4/document?format=xhtml&amp;download=0">Kinch Fuel Oils</a>, and <a href="https://find-and-update.company-information.service.gov.uk/company/07622278/filing-history/MzQxMjA0ODQyMGFkaXF6a2N4/document?format=xhtml&amp;download=0">Estuary Oils</a> operate fleets of fuel trucks that serve a diverse customer base, including commercial, agricultural and domestic sectors. 5% of British households, primarily in <a href="https://www.ons.gov.uk/peoplepopulationandcommunity/housing/articles/census2021howhomesareheatedinyourarea/2023-01-05?">rural areas</a>, still <a href="https://commonslibrary.parliament.uk/constituency-data-central-heating-2021-census/?">rely on oil for heating</a>, making these distributors essential. Many of those living in oil heated homes may join <em>oil clubs</em> to secure lower prices by purchasing in bulk for their village or collective. These buying groups may closely watch geopolitical developments to time their purchases strategically.</p>
<style>
  .twitter-container {
    display: flex;
    justify-content: center;
  }
</style>
<div class="twitter-container">
<blockquote class="twitter-tweet blockquote">
<p lang="en" dir="ltr">
EXCLUSIVE HEATING OIL SYNDICATE OFFER: 74.25 ppl +vat<br><br> JUST QUOTE 'KAREN COCKFIELD'<br> 'COMPASS ENERGY: 01432 381907 admin@compassenergy.co.uk<br><br> ORDER BEFORE 5.30 Tues 24 Oct.&nbsp;Del by Mon 3 Oct.<br>📷 strongly advise a top up before it goes up again with growing tensions in the M. EAST <a href="https://t.co/0Te50IJOke">pic.twitter.com/0Te50IJOke</a>
</p>
— Karen Cockfield Heating Oil Syndicate (<span class="citation" data-cites="St_Briavels_Mkt">@St_Briavels_Mkt</span>) <a href="https://twitter.com/St_Briavels_Mkt/status/1715362184434229623?ref_src=twsrc%5Etfw">October 20, 2023</a>
</blockquote>
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</div>
<p>Beyond responding to the immediate shock of high energy prices, the conflict refocused attention on long-term energy security, making it an urgent strategic priority. European countries began the painful process of reducing their reliance on Russian oil and gas, thereby minimizing their exposure to future supply disruptions and sanctions. This shift naturally opened up opportunities for those in the business of constructing and maintaining critical energy infrastructure. LFF (Scotland), an Aberdeen-based manufacturer of pipes, fittings, and flanges, <em>exceeded expectations</em>, reporting a substantial increase in turnover—rising to £54 million from £34 million, partially as a result of <a href="https://find-and-update.company-information.service.gov.uk/company/02490141/filing-history/MzQzMDM5MTI2NWFkaXF6a2N4/document?format=xhtml&amp;download=0">energy security concerns</a>. Similarly the offshore engineering consultancy London Marine Group, anticipated growing demand for projects that <a href="https://find-and-update.company-information.service.gov.uk/company/03480901/filing-history/MzQzNzQxMTYxOGFkaXF6a2N4/document?format=xhtml&amp;download=0">reduced reliance on Russian oil and gas</a>, from offshore windfarms to the construction of liquefied natural gas (LNG) terminals. However, recent events have reinforced the fact that energy security extends beyond shielding consumers from price volatility and reducing reliance on geopolitical adversaries.</p>
<p>Covert attacks on energy infrastructure are becoming more frequent and <a href="https://www.theguardian.com/environment/2022/sep/28/nord-stream-methane-gas-leaks-may-be-biggest-ever-with-warning-large-climate-risk">environmentally devastating</a>. Covelya Group, a consortium of companies specializing in bespoke sensor systems and software across defence and engineering, reported a record-high number of orders, with <a href="https://find-and-update.company-information.service.gov.uk/company/12493148/filing-history/MzQzNzU1NDgxN2FkaXF6a2N4/document?format=xhtml&amp;download=0">turnover jumping</a> from £70.4 million to £101 million. They primarily attribute their growth in the oil and gas sector to the shift away from Russian energy but observed a significant transition in demand from oil and gas exploration technologies to those focused more on <em>inspection, repair, and monitoring</em>. While this trend may be partly attributed to declining exploration in regions with depleted reserves like the North Sea, it also raises questions about the extent to which geopolitical concerns are driving increased investment in these technologies, particularly among companies operating at the intersection of energy and defence.</p>
<p>Protecting critical energy infrastructure from coordinated attacks also requires getting the basics right. High-performance security doors and locking systems will need to withstand everything from gunshots and explosions to fires. Such systems are likely necessary across a wide range of locations, including power plants, natural gas processing plants, LNG terminals, oil refineries, offshore oil and gas platforms and energy storage facilities. These measures may also be required to protect the many smaller, often unmanned remote sites across wider energy distribution networks. Surelock McGill, a provider of <a href="https://find-and-update.company-information.service.gov.uk/company/00684463/filing-history/MzQ0ODc3Njg5MGFkaXF6a2N4/document?format=xhtml&amp;download=0">advanced locking systems</a>, reported increased demand and revenue last year as customers across all its core markets attempt to secure themselves against terrorism and similar threats.</p>
<p>Broader energy security concerns have led some to invest in renewable infrastructure for greater energy independence. Harris &amp; Bailey, one of the UK’s largest building material suppliers, described the energy crisis as an event that fundamentally undermined their confidence in future pricing and supply. This prompted them to install <a href="https://find-and-update.company-information.service.gov.uk/company/00129871/filing-history/MzQxNjEzMjYyOWFkaXF6a2N4/document?format=xhtml&amp;download=0">500 solar panels</a> on their warehouse in Croydon, generating up to 198kW per hour at peak output. On sunny days, the company produces excess energy, which is fed back into the grid under a favourable export tariff with E.On Energy, providing additional passive income. During the energy crisis, those generating renewable energy, such as solar, and selling it on the market benefited from <a href="https://find-and-update.company-information.service.gov.uk/company/12020009/filing-history/MzQxMzAwNDc4OWFkaXF6a2N4/document?format=xhtml&amp;download=0">higher electricity prices</a>, boosting their turnover.</p>
<p>The shift toward energy security has also driven demand for the critical metals essential for developing the batteries that support renewable energy technologies. Revert Alloys and Metals, a company specializing in recycling nickel, cobalt, and complex superalloys, sees the conflict in Ukraine further amplifying an already <em>exceptionally strong forecasted demand</em> for these <a href="https://find-and-update.company-information.service.gov.uk/company/07691763/filing-history/MzQxNjQ4NjUyM2FkaXF6a2N4/document?format=xhtml&amp;download=0">critical metals</a>.</p>
<figure style="text-align: center;" class="figure">
<img src="https://adu.autonomy.work/posts/2025_02_20_crisis-and-commerce/assets/champion.jpg" style="border: 1px solid black; width: 60%; box-sizing: border-box; display: block; margin: auto;" class="figure-img">
<figcaption>
Champion power generator in Ukraine (source: <a href="https://www.instagram.com/championpowereq/p/C_ObfXiyp22/?img_index=6">Instagram</a>)
</figcaption>
</figure>
<p>The severity of energy security concerns in the UK pale in comparison to those experienced in Ukraine, where relentless attacks on infrastructure heightened the need for portable backup power as winter set in. In Germany, the government urged citizens to purchase generators in anticipation of potential power shortages as Russia threatened to cut off its energy supplies to the country. This urgent requirement for back-up power was met by businesses across Europe, including UK-based Bimson Power; the exclusive European distributor of Champion power generators. By servicing this brief spike in demand, the company <a href="https://find-and-update.company-information.service.gov.uk/company/12333092/filing-history/MzQzNzE3NzIzOGFkaXF6a2N4/document?format=xhtml&amp;download=0">doubled its sales</a> between August 2022 and January 2023.</p>
</section>
<section id="mobility" class="level2">
<h2 class="anchored" data-anchor-id="mobility">Mobility</h2>
<p>UK net migration hit <a href="https://www.theguardian.com/uk-news/2022/nov/24/uk-net-migration-figures-record-ons">record levels</a> in recent years, driven in part by government schemes for displaced populations from Hong Kong and Ukraine. This increased the need for a range of essential support functions to welcome newcomers and help them to integrate. A number of organisations providing language and education services reported significant increases in participation.</p>
<p><a href="https://find-and-update.company-information.service.gov.uk/company/04383491/filing-history/MzQzOTI3MzA4MmFkaXF6a2N4/document?format=xhtml&amp;download=0">Community centres</a> and <a href="https://find-and-update.company-information.service.gov.uk/company/06033909/filing-history/MzQzOTkyNjkxOWFkaXF6a2N4/document?format=xhtml&amp;download=0">religious groups</a> offering free English language courses have seen increased uptake from recent Ukrainian arrivals. As community-led initiatives, these organizations often offer a broader range of support services beyond language instruction, including assistance with paperwork and skills training in employability, first aid, and basic IT. Such spaces can serve as a bridge for newcomers, helping them to foster social connections before attempting to find work in the UK.</p>
<p>Increased participation in education also drives demand for testing and qualification services. A commercial entity that provides language tests and qualification recognition for UK visa applicants, reported a <a href="https://find-and-update.company-information.service.gov.uk/company/02405026/filing-history/MzQzMzk4ODMyMGFkaXF6a2N4/document?format=xhtml&amp;download=0">50% year-on-year increase</a> in turnover to £38.3 million, fuelled by rising transaction volumes partially due to displaced people from Hong Kong and Ukraine. However, any optimism surrounding these results was likely short-lived. It was recently revealed that the company had amassed £13 million in profits over the years while operating government visa services under a <a href="https://www.theguardian.com/uk-news/2025/jan/03/firm-led-by-ex-uk-envoy-on-ethics-made-13m-on-not-for-profit-visa-services">not-for-profit contract</a>. The company has since repaid these unlawful gains back into the government language test service and a number of executives resigned.</p>
<p>Ukrainian translation and interpretation skills have also been highly sought after, particularly within the MoD. Worldwide Language Resources, the government’s preferred linguistic service provider, saw <a href="https://find-and-update.company-information.service.gov.uk/company/08907272/filing-history/MzQzNjAyMjA4MWFkaXF6a2N4/document?format=xhtml&amp;download=0">revenue nearly triple</a> to £31.1 million in 2023. This significant boost in revenue is likely due to the company’s involvement in recruiting a large number of linguists to assist the British Army <a href="https://inews.co.uk/news/mod-struggles-to-fill-interpreter-roles-to-work-with-ukrainian-troops-training-with-uk-army-1742386?srsltid=AfmBOoq7RzH5AErFLMefUkJvbLca6vwfTl7hQK4soz497DOgJ5vHkvuT">train Ukrainian soldiers</a> in the UK.</p>
<p>Whilst conflict can open up special routes between countries, it more often disrupts and destroys existing mobility channels. Following the October 7th attack on Israel, international airlines suspended flights due to security concerns, leaving national airline El Al as one of the few still operating. To meet the reported shortages in <a href="https://www.jta.org/2024/06/14/israel/cost-of-shipping-donated-gear-to-israel-quadrupling-as-el-al-ends-oct-7-cargo-discount">medical and military supplies</a>, the airline swiftly retrofitted several Boeing passenger planes as exclusive cargo carriers.</p>
<figure style="text-align: center;" class="figure">
<img src="https://adu.autonomy.work/posts/2025_02_20_crisis-and-commerce/assets/elal.jpg" style="border: 1px solid black; width: 60%; box-sizing: border-box; display: block; margin: auto;" class="figure-img">
<figcaption>
Boeing 777 freighter retrofit (source: <a href="https://www.jpost.com/israel-news/article-771768">Jerusalem Post</a>)
</figcaption>
</figure>
<p>British cargo provider <a href="https://find-and-update.company-information.service.gov.uk/company/06759754/filing-history/MzQyNzgxMTU4NGFkaXF6a2N4/document?format=xhtml&amp;download=0">Airbridge International Agencies</a>, which worked with El Al, reported increased revenue margins tied to the processing of this increase in cargo being transported by the airline. Some of the transported supplies were donated by charities with El Al claiming to have delivered <a href="https://www.reuters.com/world/middle-east/israels-el-al-boosting-cargo-flights-war-hits-passenger-demand-2023-11-01/">first aid kits</a>, medical supplies, thermal clothing for soldiers and equipment purchased for families near Gaza.</p>


</section>

 ]]></description>
  <category>Risk Extraction</category>
  <guid>https://adu.autonomy.work/posts/2025_02_20_crisis-and-commerce/</guid>
  <pubDate>Thu, 20 Feb 2025 00:00:00 GMT</pubDate>
  <media:content url="https://adu.autonomy.work/posts/2025_02_20_crisis-and-commerce/assets/warthog.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>Exceptional Items</title>
  <dc:creator>Sean Greaves</dc:creator>
  <link>https://adu.autonomy.work/posts/2025_02_11_exceptional-items/</link>
  <description><![CDATA[ 





<p><em>The findings in this post are part of an ongoing project to develop a methodology for extracting climate and geopolitical risk—as well as other critical data points—from vast amounts of unstructured data, such as company filings. This work is part of a <a href="https://adu.autonomy.work/posts/2024_03_23_GERM/">broader research initiative</a> to uncover signals in corporate disclosures that can inform research, policy, and strategy. Over the coming months, we will be publishing further results from this stream. We are also developing these methodologies into a service. For inquiries, contact us at:</em> adu@autonomy.work</p>
<img src="https://adu.autonomy.work/posts/2025_02_11_exceptional-items/assets/exception.png" style="border: 1px solid black; width: 100%; box-sizing: border-box;">
<center>
<figcaption>
ICT Direct Europe Ltd accounts made up to 30 April 2023
</figcaption>
</center>
<p><br></p>
<p>The most comprehensive datasets on the impact of unlawful activity on UK businesses currently come from surveys. Examples include the government’s <a href="https://www.gov.uk/government/statistics/crime-against-businesses-findings-from-the-2023-commercial-victimisation-survey#documents">Commercial Victimisation Survey</a> and the British Retail Consortium’s <a href="https://brc.org.uk/media/hmkpy3nl/crime-survey_2025_final.pdf">Annual Crime Survey</a>, both of which have been useful in highlighting concerning trends—such as the <a href="https://www.theguardian.com/business/2025/jan/30/crime-stores-shoplifting-survey-british-retail-consortium?">recent rise</a> in violent and abusive incidents in shops. While these studies provide valuable, wide-ranging data for policymakers, the anonymity of their participants and standardized formats limit researchers’ ability to examine individual companies or explore specific impacts beyond the survey’s predefined scope. The structured nature of these surveys likely obscures some unique and interesting stories that deserve attention.</p>
<p>Annual reports offer an alternative, potentially underutilized source of narrative data on how illegal activity affects businesses. Companies disclose civil and criminal incidents in their financial statements when such events have a material impact on operations. However, the extent to which UK companies actually include this information in the reports they file with Companies House is unclear.</p>
<p>By processing all electronically filed accounts in Companies House throughout 2024 (<strong>3,168,750 companies</strong>), we identified <strong>123 companies</strong> that provided narrative data, and in some cases financial data, on the ways in which alleged illegal acts have impacted their operations. The dataset presented below is intended as a resource for researchers examining these risks.</p>
<p><strong>Disclaimer</strong>: The inclusion of any names, companies, or incidents in this analysis does not necessarily imply wrongdoing on the part of any individual or entity. All information presented is derived from annual reports that reflect the perspectives and statements of the reporting companies and do not constitute legal determinations of liability or criminal conduct. Readers should interpret the data as a reflection of corporate disclosures rather than verified legal findings.</p>
<section id="dataset" class="level2">
<h2 class="anchored" data-anchor-id="dataset">Dataset</h2>
<details>
<summary>
Notes
</summary>
<p><br></p>
<p>The dataset only included companies that submit accounts electronically to Companies House, as these filings are machine-readable and easily transcribed for analysis. While estimates vary, Companies House <a href="https://www.gov.uk/guidance/companies-house-data-products#accts-data">reports</a> that 60% of the 2.2M companies filing accounts submit electronically. Unfortunately, many of the UK’s largest companies, which tend to have more complex filings, submit scanned paper accounts and are therefore outside the scope of this analysis. As a result, the highest profile UK cases such as Arup’s <a href="https://www.thetimes.com/business-money/companies/article/hong-kong-cyberattack-cost-arup-25m-6n3bx5hhw">recent</a> £25M cyber incident, are not captured in our data. Fortunately, a shift toward mandatory electronic filings is expected in the <a href="https://changestoukcompanylaw.campaign.gov.uk/changes-to-accounts/">coming years</a>, which should significantly improve data accessibility and coverage. Therefore this study should serve as an indication of what may be possible to visualise in the not-so-distant future.</p>
<p>The dataset compiles reports of actual events that have occurred, rather than assessing the future risk of illegal activities occuring. This approach avoids including the boilerplate statements many companies include about potential illegal activity, particularly fraud, which are often generic and do not reflect the real impacts on business.</p>
<p>While every effort was made to capture all relevant disclosures throughout 2024 of an event impacting business, it’s possible that we have missed some items as we continue to experiment with our approach in searching and filtering annual reports for relevant data.</p>
When financial data related to illegal activity was provided, such as stolen assets or insurance pay-outs, we extracted those figures. The total recorded financial impact within the dataset amounts to <strong>£46.3M</strong>.
</details>
<details>
<summary>
Statistics
</summary>
<p><br></p>
<p>Financial irregularities were found to be the most commonly reported event with 34 mentions, accounting for £33.3M of the total reported costs. 31 instances of cyber attack (£5.5M) and 30 thefts (£3.5M) were also reported.</p>
<div id="332c6e51-fd8f-4993-b09b-df6cfd1f0a83" class="cell">
<div class="cell-output cell-output-display">
<div>
<figure class="figure">
<p><img src="https://adu.autonomy.work/posts/2025_02_11_exceptional-items/index_files/figure-html/cell-4-output-1.png" class="img-fluid figure-img"></p>
</figure>
</div>
</div>
</div>
<div id="e66ea5f7-e8ac-497c-990e-a5ee8be71309" class="cell">
<div class="cell-output cell-output-display">
<div>
<figure class="figure">
<p><img src="https://adu.autonomy.work/posts/2025_02_11_exceptional-items/index_files/figure-html/cell-5-output-1.png" class="img-fluid figure-img"></p>
</figure>
</div>
</div>
</div>
<p>The most common businesses reporting criminal events were wholesale retailers (17 companies) followed by manufacturing (14) and healthcare/social services (11).</p>
<div id="8b4d1e64-33b6-41b7-a186-e70a332d8f8e" class="cell">
<div class="cell-output cell-output-display">
<div>
<figure class="figure">
<p><img src="https://adu.autonomy.work/posts/2025_02_11_exceptional-items/index_files/figure-html/cell-6-output-1.png" class="img-fluid figure-img"></p>
</figure>
</div>
</div>
</div>
</details>
<div id="c3e72e6c-9b95-4c8c-b49f-8e6c1564b8cd" class="cell">
<div class="cell-output cell-output-display">
<script>
    let is_dark_theme = function () {
        // Jupyter Lab
        if ('jpThemeLight' in document.body.dataset)
            return (document.body.dataset.jpThemeLight === "false");

        // VS Code
        if ('vscodeThemeKind' in document.body.dataset)
            return document.body.dataset.vscodeThemeKind.includes('dark');

        // Jupyter Book
        if ('theme' in document.documentElement.dataset)
            return document.documentElement.dataset.theme.includes('dark');

        // Default
        return window.matchMedia('(prefers-color-scheme: dark)').matches;
    }

    if (is_dark_theme()) {
        document.documentElement.classList.add('dark');
    }
    else {
        document.documentElement.classList.remove('dark');
    }
</script>
</div>
<div class="cell-output cell-output-display">
<style>:root{--dt-row-selected: 13, 110, 253;--dt-row-selected-text: 255, 255, 255;--dt-row-selected-link: 9, 10, 11;--dt-row-stripe: 0, 0, 0;--dt-row-hover: 0, 0, 0;--dt-column-ordering: 0, 0, 0;--dt-html-background: white}:root.dark{--dt-html-background: rgb(33, 37, 41)}table.dataTable td.dt-control{text-align:center;cursor:pointer}table.dataTable td.dt-control:before{display:inline-block;box-sizing:border-box;content:"";border-top:5px solid transparent;border-left:10px solid rgba(0,0,0,.5);border-bottom:5px solid transparent;border-right:0px solid transparent}table.dataTable tr.dt-hasChild td.dt-control:before{border-top:10px solid rgba(0,0,0,.5);border-left:5px solid transparent;border-bottom:0px solid transparent;border-right:5px solid transparent}html.dark table.dataTable td.dt-control:before,:root[data-bs-theme=dark] table.dataTable td.dt-control:before,:root[data-theme=dark] table.dataTable td.dt-control:before{border-left-color:#ffffff80}html.dark table.dataTable tr.dt-hasChild td.dt-control:before,:root[data-bs-theme=dark] table.dataTable tr.dt-hasChild td.dt-control:before,:root[data-theme=dark] table.dataTable tr.dt-hasChild td.dt-control:before{border-top-color:#ffffff80;border-left-color:transparent}div.dt-scroll{width:100%}div.dt-scroll-body thead tr,div.dt-scroll-body tfoot tr{height:0}div.dt-scroll-body thead tr th,div.dt-scroll-body thead tr td,div.dt-scroll-body tfoot tr th,div.dt-scroll-body tfoot tr td{height:0!important;padding-top:0!important;padding-bottom:0!important;border-top-width:0px!important;border-bottom-width:0px!important}div.dt-scroll-body thead tr th div.dt-scroll-sizing,div.dt-scroll-body thead tr td div.dt-scroll-sizing,div.dt-scroll-body tfoot tr th div.dt-scroll-sizing,div.dt-scroll-body tfoot tr td div.dt-scroll-sizing{height:0!important;overflow:hidden!important}table.dataTable thead>tr>th.dt-orderable-asc span.dt-column-order:before,table.dataTable thead>tr>th.dt-ordering-asc span.dt-column-order:before,table.dataTable thead>tr>td.dt-orderable-asc span.dt-column-order:before,table.dataTable thead>tr>td.dt-ordering-asc span.dt-column-order:before{position:absolute;display:block;bottom:50%;content:"\25b2";content:"\25b2"/""}table.dataTable thead>tr>th.dt-orderable-desc span.dt-column-order:after,table.dataTable thead>tr>th.dt-ordering-desc span.dt-column-order:after,table.dataTable thead>tr>td.dt-orderable-desc span.dt-column-order:after,table.dataTable thead>tr>td.dt-ordering-desc span.dt-column-order:after{position:absolute;display:block;top:50%;content:"\25bc";content:"\25bc"/""}table.dataTable thead>tr>th.dt-orderable-asc,table.dataTable thead>tr>th.dt-orderable-desc,table.dataTable thead>tr>th.dt-ordering-asc,table.dataTable thead>tr>th.dt-ordering-desc,table.dataTable thead>tr>td.dt-orderable-asc,table.dataTable thead>tr>td.dt-orderable-desc,table.dataTable thead>tr>td.dt-ordering-asc,table.dataTable thead>tr>td.dt-ordering-desc{position:relative;padding-right:30px}table.dataTable thead>tr>th.dt-orderable-asc span.dt-column-order,table.dataTable thead>tr>th.dt-orderable-desc span.dt-column-order,table.dataTable thead>tr>th.dt-ordering-asc span.dt-column-order,table.dataTable thead>tr>th.dt-ordering-desc span.dt-column-order,table.dataTable thead>tr>td.dt-orderable-asc span.dt-column-order,table.dataTable thead>tr>td.dt-orderable-desc span.dt-column-order,table.dataTable thead>tr>td.dt-ordering-asc span.dt-column-order,table.dataTable thead>tr>td.dt-ordering-desc span.dt-column-order{position:absolute;right:12px;top:0;bottom:0;width:12px}table.dataTable thead>tr>th.dt-orderable-asc span.dt-column-order:before,table.dataTable thead>tr>th.dt-orderable-asc span.dt-column-order:after,table.dataTable thead>tr>th.dt-orderable-desc span.dt-column-order:before,table.dataTable thead>tr>th.dt-orderable-desc span.dt-column-order:after,table.dataTable thead>tr>th.dt-ordering-asc span.dt-column-order:before,table.dataTable thead>tr>th.dt-ordering-asc span.dt-column-order:after,table.dataTable thead>tr>th.dt-ordering-desc span.dt-column-order:before,table.dataTable thead>tr>th.dt-ordering-desc span.dt-column-order:after,table.dataTable thead>tr>td.dt-orderable-asc span.dt-column-order:before,table.dataTable thead>tr>td.dt-orderable-asc span.dt-column-order:after,table.dataTable thead>tr>td.dt-orderable-desc span.dt-column-order:before,table.dataTable thead>tr>td.dt-orderable-desc span.dt-column-order:after,table.dataTable thead>tr>td.dt-ordering-asc span.dt-column-order:before,table.dataTable thead>tr>td.dt-ordering-asc span.dt-column-order:after,table.dataTable thead>tr>td.dt-ordering-desc span.dt-column-order:before,table.dataTable thead>tr>td.dt-ordering-desc span.dt-column-order:after{left:0;opacity:.125;line-height:9px;font-size:.8em}table.dataTable thead>tr>th.dt-orderable-asc,table.dataTable thead>tr>th.dt-orderable-desc,table.dataTable thead>tr>td.dt-orderable-asc,table.dataTable thead>tr>td.dt-orderable-desc{cursor:pointer}table.dataTable thead>tr>th.dt-orderable-asc:hover,table.dataTable thead>tr>th.dt-orderable-desc:hover,table.dataTable thead>tr>td.dt-orderable-asc:hover,table.dataTable thead>tr>td.dt-orderable-desc:hover{outline:2px solid rgba(0,0,0,.05);outline-offset:-2px}table.dataTable thead>tr>th.dt-ordering-asc span.dt-column-order:before,table.dataTable thead>tr>th.dt-ordering-desc span.dt-column-order:after,table.dataTable thead>tr>td.dt-ordering-asc span.dt-column-order:before,table.dataTable thead>tr>td.dt-ordering-desc span.dt-column-order:after{opacity:.6}table.dataTable thead>tr>th.sorting_desc_disabled span.dt-column-order:after,table.dataTable thead>tr>th.sorting_asc_disabled span.dt-column-order:before,table.dataTable thead>tr>td.sorting_desc_disabled span.dt-column-order:after,table.dataTable thead>tr>td.sorting_asc_disabled span.dt-column-order:before{display:none}table.dataTable thead>tr>th:active,table.dataTable thead>tr>td:active{outline:none}div.dt-scroll-body>table.dataTable>thead>tr>th,div.dt-scroll-body>table.dataTable>thead>tr>td{overflow:hidden}:root.dark table.dataTable thead>tr>th.dt-orderable-asc:hover,:root.dark table.dataTable thead>tr>th.dt-orderable-desc:hover,:root.dark table.dataTable thead>tr>td.dt-orderable-asc:hover,:root.dark table.dataTable thead>tr>td.dt-orderable-desc:hover,:root[data-bs-theme=dark] table.dataTable thead>tr>th.dt-orderable-asc:hover,:root[data-bs-theme=dark] table.dataTable thead>tr>th.dt-orderable-desc:hover,:root[data-bs-theme=dark] table.dataTable thead>tr>td.dt-orderable-asc:hover,:root[data-bs-theme=dark] table.dataTable thead>tr>td.dt-orderable-desc:hover{outline:2px solid rgba(255,255,255,.05)}div.dt-processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-22px;text-align:center;padding:2px;z-index:10}div.dt-processing>div:last-child{position:relative;width:80px;height:15px;margin:1em auto}div.dt-processing>div:last-child>div{position:absolute;top:0;width:13px;height:13px;border-radius:50%;background:#0d6efd;background:rgb(var(--dt-row-selected));animation-timing-function:cubic-bezier(0,1,1,0)}div.dt-processing>div:last-child>div:nth-child(1){left:8px;animation:datatables-loader-1 .6s infinite}div.dt-processing>div:last-child>div:nth-child(2){left:8px;animation:datatables-loader-2 .6s infinite}div.dt-processing>div:last-child>div:nth-child(3){left:32px;animation:datatables-loader-2 .6s infinite}div.dt-processing>div:last-child>div:nth-child(4){left:56px;animation:datatables-loader-3 .6s infinite}@keyframes datatables-loader-1{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes datatables-loader-3{0%{transform:scale(1)}to{transform:scale(0)}}@keyframes datatables-loader-2{0%{transform:translate(0)}to{transform:translate(24px)}}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable th,table.dataTable td{box-sizing:border-box}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable th.dt-empty,table.dataTable td.dt-empty{text-align:center;vertical-align:top}table.dataTable th.dt-type-numeric,table.dataTable th.dt-type-date,table.dataTable td.dt-type-numeric,table.dataTable td.dt-type-date{text-align:right}table.dataTable thead th,table.dataTable thead td,table.dataTable tfoot th,table.dataTable tfoot td,table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable{width:100%;margin:0 auto;border-spacing:0}table.dataTable thead th,table.dataTable tfoot th{font-weight:700}table.dataTable>thead>tr>th,table.dataTable>thead>tr>td{padding:10px;border-bottom:1px solid rgba(0,0,0,.3)}table.dataTable>thead>tr>th:active,table.dataTable>thead>tr>td:active{outline:none}table.dataTable>tfoot>tr>th,table.dataTable>tfoot>tr>td{border-top:1px solid rgba(0,0,0,.3);padding:10px 10px 6px}table.dataTable>tbody>tr{background-color:transparent}table.dataTable>tbody>tr:first-child>*{border-top:none}table.dataTable>tbody>tr:last-child>*{border-bottom:none}table.dataTable>tbody>tr.selected>*{box-shadow:inset 0 0 0 9999px #0d6efde6;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.9);color:#fff;color:rgb(var(--dt-row-selected-text))}table.dataTable>tbody>tr.selected a{color:#090a0b;color:rgb(var(--dt-row-selected-link))}table.dataTable>tbody>tr>th,table.dataTable>tbody>tr>td{padding:8px 10px}table.dataTable.row-border>tbody>tr>*,table.dataTable.display>tbody>tr>*{border-top:1px solid rgba(0,0,0,.15)}table.dataTable.row-border>tbody>tr:first-child>*,table.dataTable.display>tbody>tr:first-child>*{border-top:none}table.dataTable.row-border>tbody>tr.selected+tr.selected>td,table.dataTable.display>tbody>tr.selected+tr.selected>td{border-top-color:#0d6efda6;border-top-color:rgba(var(--dt-row-selected),.65)}table.dataTable.cell-border>tbody>tr>*{border-top:1px solid rgba(0,0,0,.15);border-right:1px solid rgba(0,0,0,.15)}table.dataTable.cell-border>tbody>tr>*:first-child{border-left:1px solid rgba(0,0,0,.15)}table.dataTable.cell-border>tbody>tr:first-child>*{border-top:1px solid rgba(0,0,0,.3)}table.dataTable.stripe>tbody>tr:nth-child(odd)>*,table.dataTable.display>tbody>tr:nth-child(odd)>*{box-shadow:inset 0 0 0 9999px #00000006;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-stripe),.023)}table.dataTable.stripe>tbody>tr:nth-child(odd).selected>*,table.dataTable.display>tbody>tr:nth-child(odd).selected>*{box-shadow:inset 0 0 0 9999px #0d6efdeb;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.923)}table.dataTable.hover>tbody>tr:hover>*,table.dataTable.display>tbody>tr:hover>*{box-shadow:inset 0 0 0 9999px #00000009;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-hover),.035)}table.dataTable.hover>tbody>tr.selected:hover>*,table.dataTable.display>tbody>tr.selected:hover>*{box-shadow:inset 0 0 0 9999px #0d6efd!important;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),1)!important}table.dataTable.order-column>tbody tr>.sorting_1,table.dataTable.order-column>tbody tr>.sorting_2,table.dataTable.order-column>tbody tr>.sorting_3,table.dataTable.display>tbody tr>.sorting_1,table.dataTable.display>tbody tr>.sorting_2,table.dataTable.display>tbody tr>.sorting_3{box-shadow:inset 0 0 0 9999px #00000005;box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering),.019)}table.dataTable.order-column>tbody tr.selected>.sorting_1,table.dataTable.order-column>tbody tr.selected>.sorting_2,table.dataTable.order-column>tbody tr.selected>.sorting_3,table.dataTable.display>tbody tr.selected>.sorting_1,table.dataTable.display>tbody tr.selected>.sorting_2,table.dataTable.display>tbody tr.selected>.sorting_3{box-shadow:inset 0 0 0 9999px #0d6efdea;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.919)}table.dataTable.display>tbody>tr:nth-child(odd)>.sorting_1,table.dataTable.order-column.stripe>tbody>tr:nth-child(odd)>.sorting_1{box-shadow:inset 0 0 0 9999px #0000000e;box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering),.054)}table.dataTable.display>tbody>tr:nth-child(odd)>.sorting_2,table.dataTable.order-column.stripe>tbody>tr:nth-child(odd)>.sorting_2{box-shadow:inset 0 0 0 9999px #0000000c;box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering),.047)}table.dataTable.display>tbody>tr:nth-child(odd)>.sorting_3,table.dataTable.order-column.stripe>tbody>tr:nth-child(odd)>.sorting_3{box-shadow:inset 0 0 0 9999px #0000000a;box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering),.039)}table.dataTable.display>tbody>tr:nth-child(odd).selected>.sorting_1,table.dataTable.order-column.stripe>tbody>tr:nth-child(odd).selected>.sorting_1{box-shadow:inset 0 0 0 9999px #0d6efdf3;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.954)}table.dataTable.display>tbody>tr:nth-child(odd).selected>.sorting_2,table.dataTable.order-column.stripe>tbody>tr:nth-child(odd).selected>.sorting_2{box-shadow:inset 0 0 0 9999px #0d6efdf1;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.947)}table.dataTable.display>tbody>tr:nth-child(odd).selected>.sorting_3,table.dataTable.order-column.stripe>tbody>tr:nth-child(odd).selected>.sorting_3{box-shadow:inset 0 0 0 9999px #0d6efdef;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.939)}table.dataTable.display>tbody>tr.even>.sorting_1,table.dataTable.order-column.stripe>tbody>tr.even>.sorting_1{box-shadow:inset 0 0 0 9999px #00000005;box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering),.019)}table.dataTable.display>tbody>tr.even>.sorting_2,table.dataTable.order-column.stripe>tbody>tr.even>.sorting_2{box-shadow:inset 0 0 0 9999px #00000003;box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering),.011)}table.dataTable.display>tbody>tr.even>.sorting_3,table.dataTable.order-column.stripe>tbody>tr.even>.sorting_3{box-shadow:inset 0 0 0 9999px #00000001;box-shadow:inset 0 0 0 9999px rgba(var(--dt-column-ordering),.003)}table.dataTable.display>tbody>tr.even.selected>.sorting_1,table.dataTable.order-column.stripe>tbody>tr.even.selected>.sorting_1{box-shadow:inset 0 0 0 9999px #0d6efdea;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.919)}table.dataTable.display>tbody>tr.even.selected>.sorting_2,table.dataTable.order-column.stripe>tbody>tr.even.selected>.sorting_2{box-shadow:inset 0 0 0 9999px #0d6efde8;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.911)}table.dataTable.display>tbody>tr.even.selected>.sorting_3,table.dataTable.order-column.stripe>tbody>tr.even.selected>.sorting_3{box-shadow:inset 0 0 0 9999px #0d6efde6;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.903)}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{box-shadow:inset 0 0 0 9999px #00000015;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-hover),.082)}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{box-shadow:inset 0 0 0 9999px #00000013;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-hover),.074)}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{box-shadow:inset 0 0 0 9999px #00000010;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-hover),.062)}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{box-shadow:inset 0 0 0 9999px #0d6efdfa;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.982)}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{box-shadow:inset 0 0 0 9999px #0d6efdf8;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.974)}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{box-shadow:inset 0 0 0 9999px #0d6efdf5;box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.962)}table.dataTable.compact thead th,table.dataTable.compact thead td,table.dataTable.compact tfoot th,table.dataTable.compact tfoot td,table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:4px}div.dt-container div.dt-layout-row{display:flex;justify-content:space-between;align-items:center;width:100%;margin:.75em 0}div.dt-container div.dt-layout-row div.dt-layout-cell{display:flex;justify-content:space-between;align-items:center}div.dt-container div.dt-layout-row div.dt-layout-cell.dt-layout-start{justify-content:flex-start;margin-right:auto}div.dt-container div.dt-layout-row div.dt-layout-cell.dt-layout-end{justify-content:flex-end;margin-left:auto}div.dt-container div.dt-layout-row div.dt-layout-cell:empty{display:none}@media screen and (max-width: 767px){div.dt-container div.dt-layout-row:not(.dt-layout-table){display:block}div.dt-container div.dt-layout-row:not(.dt-layout-table) div.dt-layout-cell{display:block;text-align:center}div.dt-container div.dt-layout-row:not(.dt-layout-table) div.dt-layout-cell>*{margin:.5em 0}div.dt-container div.dt-layout-row:not(.dt-layout-table) div.dt-layout-cell.dt-layout-start{margin-right:0}div.dt-container div.dt-layout-row:not(.dt-layout-table) div.dt-layout-cell.dt-layout-end{margin-left:0}}div.dt-container div.dt-layout-start>*:not(:last-child){margin-right:1em}div.dt-container div.dt-layout-end>*:not(:first-child){margin-left:1em}div.dt-container div.dt-layout-full{width:100%}div.dt-container div.dt-layout-full>*:only-child{margin-left:auto;margin-right:auto}div.dt-container div.dt-layout-table>div{display:block!important}@media screen and (max-width: 767px){div.dt-container div.dt-layout-start>*:not(:last-child){margin-right:0}div.dt-container div.dt-layout-end>*:not(:first-child){margin-left:0}}div.dt-container{position:relative;clear:both}div.dt-container .dt-search input{border:1px solid #aaa;border-radius:3px;padding:5px;background-color:transparent;color:inherit;margin-left:3px}div.dt-container .dt-input{border:1px solid #aaa;border-radius:3px;padding:5px;background-color:transparent;color:inherit}div.dt-container select.dt-input{padding:4px}div.dt-container .dt-paging .dt-paging-button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:.5em 1em;margin-left:2px;text-align:center;text-decoration:none!important;cursor:pointer;color:inherit!important;border:1px solid transparent;border-radius:2px;background:transparent}div.dt-container .dt-paging .dt-paging-button.current,div.dt-container .dt-paging .dt-paging-button.current:hover{color:inherit!important;border:1px solid rgba(0,0,0,.3);background-color:#0000000d;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,rgba(230,230,230,.05)),color-stop(100%,rgba(0,0,0,.05)));background:-webkit-linear-gradient(top,rgba(230,230,230,.05) 0%,rgba(0,0,0,.05) 100%);background:-moz-linear-gradient(top,rgba(230,230,230,.05) 0%,rgba(0,0,0,.05) 100%);background:-ms-linear-gradient(top,rgba(230,230,230,.05) 0%,rgba(0,0,0,.05) 100%);background:-o-linear-gradient(top,rgba(230,230,230,.05) 0%,rgba(0,0,0,.05) 100%);background:linear-gradient(to bottom,#e6e6e60d,#0000000d)}div.dt-container .dt-paging .dt-paging-button.disabled,div.dt-container .dt-paging .dt-paging-button.disabled:hover,div.dt-container .dt-paging .dt-paging-button.disabled:active{cursor:default;color:#00000080!important;border:1px solid transparent;background:transparent;box-shadow:none}div.dt-container .dt-paging .dt-paging-button:hover{color:#fff!important;border:1px solid #111;background-color:#111;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#585858),color-stop(100%,#111));background:-webkit-linear-gradient(top,#585858 0%,#111 100%);background:-moz-linear-gradient(top,#585858 0%,#111 100%);background:-ms-linear-gradient(top,#585858 0%,#111 100%);background:-o-linear-gradient(top,#585858 0%,#111 100%);background:linear-gradient(to bottom,#585858,#111)}div.dt-container .dt-paging .dt-paging-button:active{outline:none;background-color:#0c0c0c;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#2b2b2b),color-stop(100%,#0c0c0c));background:-webkit-linear-gradient(top,#2b2b2b 0%,#0c0c0c 100%);background:-moz-linear-gradient(top,#2b2b2b 0%,#0c0c0c 100%);background:-ms-linear-gradient(top,#2b2b2b 0%,#0c0c0c 100%);background:-o-linear-gradient(top,#2b2b2b 0%,#0c0c0c 100%);background:linear-gradient(to bottom,#2b2b2b,#0c0c0c);box-shadow:inset 0 0 3px #111}div.dt-container .dt-paging .ellipsis{padding:0 1em}div.dt-container .dt-length,div.dt-container .dt-search,div.dt-container .dt-info,div.dt-container .dt-processing,div.dt-container .dt-paging{color:inherit}div.dt-container .dataTables_scroll{clear:both}div.dt-container .dataTables_scroll div.dt-scroll-body{-webkit-overflow-scrolling:touch}div.dt-container .dataTables_scroll div.dt-scroll-body>table>thead>tr>th,div.dt-container .dataTables_scroll div.dt-scroll-body>table>thead>tr>td,div.dt-container .dataTables_scroll div.dt-scroll-body>table>tbody>tr>th,div.dt-container .dataTables_scroll div.dt-scroll-body>table>tbody>tr>td{vertical-align:middle}div.dt-container .dataTables_scroll div.dt-scroll-body>table>thead>tr>th>div.dataTables_sizing,div.dt-container .dataTables_scroll div.dt-scroll-body>table>thead>tr>td>div.dataTables_sizing,div.dt-container .dataTables_scroll div.dt-scroll-body>table>tbody>tr>th>div.dataTables_sizing,div.dt-container .dataTables_scroll div.dt-scroll-body>table>tbody>tr>td>div.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}div.dt-container.dt-empty-footer tbody>tr:last-child>*{border-bottom:1px solid rgba(0,0,0,.3)}div.dt-container.dt-empty-footer .dt-scroll-body{border-bottom:1px solid rgba(0,0,0,.3)}div.dt-container.dt-empty-footer .dt-scroll-body tbody>tr:last-child>*{border-bottom:none}html.dark{--dt-row-hover: 255, 255, 255;--dt-row-stripe: 255, 255, 255;--dt-column-ordering: 255, 255, 255}html.dark table.dataTable>thead>tr>th,html.dark table.dataTable>thead>tr>td{border-bottom:1px solid rgb(89,91,94)}html.dark table.dataTable>thead>tr>th:active,html.dark table.dataTable>thead>tr>td:active{outline:none}html.dark table.dataTable>tfoot>tr>th,html.dark table.dataTable>tfoot>tr>td{border-top:1px solid rgb(89,91,94)}html.dark table.dataTable.row-border>tbody>tr>*,html.dark table.dataTable.display>tbody>tr>*{border-top:1px solid rgb(64,67,70)}html.dark table.dataTable.row-border>tbody>tr:first-child>*,html.dark table.dataTable.display>tbody>tr:first-child>*{border-top:none}html.dark table.dataTable.row-border>tbody>tr.selected+tr.selected>td,html.dark table.dataTable.display>tbody>tr.selected+tr.selected>td{border-top-color:#0d6efda6;border-top-color:rgba(var(--dt-row-selected),.65)}html.dark table.dataTable.cell-border>tbody>tr>th,html.dark table.dataTable.cell-border>tbody>tr>td{border-top:1px solid rgb(64,67,70);border-right:1px solid rgb(64,67,70)}html.dark table.dataTable.cell-border>tbody>tr>th:first-child,html.dark table.dataTable.cell-border>tbody>tr>td:first-child{border-left:1px solid rgb(64,67,70)}html.dark .dt-container.dt-empty-footer table.dataTable{border-bottom:1px solid rgb(89,91,94)}html.dark .dt-container .dt-search input,html.dark .dt-container .dt-length select{border:1px solid rgba(255,255,255,.2);background-color:var(--dt-html-background)}html.dark .dt-container .dt-paging .dt-paging-button.current,html.dark .dt-container .dt-paging .dt-paging-button.current:hover{border:1px solid rgb(89,91,94);background:#ffffff26}html.dark .dt-container .dt-paging .dt-paging-button.disabled,html.dark .dt-container .dt-paging .dt-paging-button.disabled:hover,html.dark .dt-container .dt-paging .dt-paging-button.disabled:active{color:#666!important}html.dark .dt-container .dt-paging .dt-paging-button:hover{border:1px solid rgb(53,53,53);background:#353535}html.dark .dt-container .dt-paging .dt-paging-button:active{background:#3a3a3a}*[dir=rtl] table.dataTable thead th,*[dir=rtl] table.dataTable thead td,*[dir=rtl] table.dataTable tfoot th,*[dir=rtl] table.dataTable tfoot td{text-align:right}*[dir=rtl] table.dataTable th.dt-type-numeric,*[dir=rtl] table.dataTable th.dt-type-date,*[dir=rtl] table.dataTable td.dt-type-numeric,*[dir=rtl] table.dataTable td.dt-type-date{text-align:left}*[dir=rtl] div.dt-container div.dt-layout-cell.dt-start{text-align:right}*[dir=rtl] div.dt-container div.dt-layout-cell.dt-end{text-align:left}*[dir=rtl] div.dt-container div.dt-search input{margin:0 3px 0 0}@keyframes dtb-spinner{to{transform:rotate(360deg)}}@-o-keyframes dtb-spinner{to{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes dtb-spinner{to{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dtb-spinner{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes dtb-spinner{to{-moz-transform:rotate(360deg);transform:rotate(360deg)}}div.dataTables_wrapper{position:relative}div.dt-buttons{position:initial}div.dt-buttons .dt-button{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}div.dt-button-info{position:fixed;top:50%;left:50%;width:400px;margin-top:-100px;margin-left:-200px;background-color:#fff;border-radius:.75em;box-shadow:3px 4px 10px 1px #000c;text-align:center;z-index:2003;overflow:hidden}div.dt-button-info h2{padding:2rem 2rem 1rem;margin:0;font-weight:400}div.dt-button-info>div{padding:1em 2em 2em}div.dtb-popover-close{position:absolute;top:6px;right:6px;width:22px;height:22px;text-align:center;border-radius:3px;cursor:pointer;z-index:2003}button.dtb-hide-drop{display:none!important}div.dt-button-collection-title{text-align:center;padding:.3em .5em .5em;margin-left:.5em;margin-right:.5em;font-size:.9em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}div.dt-button-collection-title:empty{display:none}span.dt-button-spacer{display:inline-block;margin:.5em;white-space:nowrap}span.dt-button-spacer.bar{border-left:1px solid rgba(0,0,0,.3);vertical-align:middle;padding-left:.5em}span.dt-button-spacer.bar:empty{height:1em;width:1px;padding-left:0}div.dt-button-collection .dt-button-active{padding-right:3em}div.dt-button-collection .dt-button-active:after{position:absolute;top:50%;margin-top:-10px;right:1em;display:inline-block;content:"\2713";color:inherit}div.dt-button-collection .dt-button-active.dt-button-split{padding-right:0}div.dt-button-collection .dt-button-active.dt-button-split:after{display:none}div.dt-button-collection .dt-button-active.dt-button-split>*:first-child{padding-right:3em}div.dt-button-collection .dt-button-active.dt-button-split>*:first-child:after{position:absolute;top:50%;margin-top:-10px;right:1em;display:inline-block;content:"\2713";color:inherit}div.dt-button-collection .dt-button-active-a a{padding-right:3em}div.dt-button-collection .dt-button-active-a a:after{position:absolute;right:1em;display:inline-block;content:"\2713";color:inherit}div.dt-button-collection span.dt-button-spacer{width:100%;font-size:.9em;text-align:center;margin:.5em 0}div.dt-button-collection span.dt-button-spacer:empty{height:0;width:100%}div.dt-button-collection span.dt-button-spacer.bar{border-left:none;border-bottom:1px solid rgba(0,0,0,.1);padding-left:0}@media print{table.dataTable tr>*{box-shadow:none!important}}html.dark div.dt-button-info{background-color:var(--dt-html-background);border:1px solid rgba(255,255,255,.15)}div.dt-buttons>.dt-button,div.dt-buttons>div.dt-button-split .dt-button{position:relative;display:inline-block;box-sizing:border-box;margin-left:.167em;margin-right:.167em;margin-bottom:.333em;padding:.5em 1em;border:1px solid rgba(0,0,0,.3);border-radius:2px;cursor:pointer;font-size:.88em;line-height:1.6em;color:inherit;white-space:nowrap;overflow:hidden;background-color:#0000001a;background:linear-gradient(to bottom,#e6e6e61a,#0000001a);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr="rgba(230, 230, 230, 0.1)",EndColorStr="rgba(0, 0, 0, 0.1)");-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;outline:none;text-overflow:ellipsis}div.dt-buttons>.dt-button:first-child,div.dt-buttons>div.dt-button-split .dt-button:first-child{margin-left:0}div.dt-buttons>.dt-button.disabled,div.dt-buttons>div.dt-button-split .dt-button.disabled{cursor:default;opacity:.4}div.dt-buttons>.dt-button.dt-button-active:not(.disabled),div.dt-buttons>div.dt-button-split .dt-button.dt-button-active:not(.disabled){background-color:#0000001a;background:linear-gradient(to bottom,#b3b3b31a,#0000001a);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr="rgba(179, 179, 179, 0.1)",EndColorStr="rgba(0, 0, 0, 0.1)");box-shadow:inset 1px 1px 3px #999}div.dt-buttons>.dt-button.dt-button-active:not(.disabled):hover:not(.disabled),div.dt-buttons>div.dt-button-split .dt-button.dt-button-active:not(.disabled):hover:not(.disabled){box-shadow:inset 1px 1px 3px #999;background-color:#0000001a;background:linear-gradient(to bottom,#8080801a,#0000001a);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr="rgba(128, 128, 128, 0.1)",EndColorStr="rgba(0, 0, 0, 0.1)")}div.dt-buttons>.dt-button:hover,div.dt-buttons>div.dt-button-split .dt-button:hover{text-decoration:none}div.dt-buttons>.dt-button:hover:not(.disabled),div.dt-buttons>div.dt-button-split .dt-button:hover:not(.disabled){border:1px solid #666;background-color:#0000001a;background:linear-gradient(to bottom,#9999991a,#0000001a);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr="rgba(153, 153, 153, 0.1)",EndColorStr="rgba(0, 0, 0, 0.1)")}div.dt-buttons>.dt-button:focus:not(.disabled),div.dt-buttons>div.dt-button-split .dt-button:focus:not(.disabled){outline:2px solid rgb(53,132,228)}div.dt-buttons>.dt-button embed,div.dt-buttons>div.dt-button-split .dt-button embed{outline:none}div.dt-buttons>div.dt-button-split .dt-button:first-child{border-right:1px solid rgba(0,0,0,.15);border-top-right-radius:0;border-bottom-right-radius:0}div.dt-buttons>div.dt-button-split .dt-button:first-child:hover{border-right:1px solid #666}div.dt-buttons>div.dt-button-split .dt-button:last-child{border-left:1px solid transparent;border-top-left-radius:0;border-bottom-left-radius:0}div.dt-buttons>div.dt-button-split .dt-button:last-child:hover{border-left:1px solid #666}div.dt-buttons span.dt-button-down-arrow{position:relative;top:-2px;font-size:10px;padding-left:10px;line-height:1em;opacity:.6}div.dt-buttons div.dt-button-split{display:inline-block}div.dt-buttons div.dt-button-split .dt-button:first-child{margin-right:0}div.dt-buttons div.dt-button-split .dt-button:last-child{margin-left:-1px;padding-left:.75em;padding-right:.75em;z-index:2}div.dt-buttons div.dt-button-split .dt-button:last-child span{padding-left:0}div.dt-button-collection{position:absolute;top:0;left:0;width:200px;margin-top:3px;margin-bottom:3px;padding:.75em 0;border:1px solid rgba(0,0,0,.4);background-color:#fff;overflow:hidden;z-index:2002;border-radius:5px;box-shadow:3px 4px 10px 1px #0000004d;box-sizing:border-box}div.dt-button-collection .dt-button{position:relative;left:0;right:0;width:100%;display:block;float:none;background:none;margin:0;padding:.5em 1em;border:none;text-align:left;cursor:pointer;color:inherit}div.dt-button-collection .dt-button.dt-button-active{background:none;box-shadow:none}div.dt-button-collection .dt-button.disabled{cursor:default;opacity:.4}div.dt-button-collection .dt-button:hover:not(.disabled){border:none;background:#9999991a;box-shadow:none}div.dt-button-collection div.dt-button-split{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;align-items:stretch}div.dt-button-collection div.dt-button-split button.dt-button{margin:0;display:inline-block;width:0;flex-grow:1;flex-shrink:0;flex-basis:50px}div.dt-button-collection div.dt-button-split button.dt-button-split-drop{min-width:33px;flex:0}div.dt-button-collection.fixed .dt-button{border-radius:.25em;background:#ffffff1a}div.dt-button-collection.fixed{position:fixed;display:block;top:50%;left:50%;margin-left:-75px;border-radius:5px;background-color:#fff;padding:.5em}div.dt-button-collection.fixed.two-column{margin-left:-200px}div.dt-button-collection.fixed.three-column{margin-left:-225px}div.dt-button-collection.fixed.four-column{margin-left:-300px}div.dt-button-collection.fixed.columns{margin-left:-409px}@media screen and (max-width: 1024px){div.dt-button-collection.fixed.columns{margin-left:-308px}}@media screen and (max-width: 640px){div.dt-button-collection.fixed.columns{margin-left:-203px}}@media screen and (max-width: 460px){div.dt-button-collection.fixed.columns{margin-left:-100px}}div.dt-button-collection.fixed>:last-child{max-height:100vh;overflow:auto}div.dt-button-collection.two-column>:last-child,div.dt-button-collection.three-column>:last-child,div.dt-button-collection.four-column>:last-child{display:block!important;-webkit-column-gap:8px;-moz-column-gap:8px;-ms-column-gap:8px;-o-column-gap:8px;column-gap:8px}div.dt-button-collection.two-column>:last-child>*,div.dt-button-collection.three-column>:last-child>*,div.dt-button-collection.four-column>:last-child>*{-webkit-column-break-inside:avoid;break-inside:avoid}div.dt-button-collection.two-column{width:400px}div.dt-button-collection.two-column>:last-child{padding-bottom:1px;column-count:2}div.dt-button-collection.three-column{width:450px}div.dt-button-collection.three-column>:last-child{padding-bottom:1px;column-count:3}div.dt-button-collection.four-column{width:600px}div.dt-button-collection.four-column>:last-child{padding-bottom:1px;column-count:4}div.dt-button-collection .dt-button{border-radius:0}div.dt-button-collection.columns{width:auto}div.dt-button-collection.columns>:last-child{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:6px;width:818px;padding-bottom:1px}div.dt-button-collection.columns>:last-child .dt-button{min-width:200px;flex:0 1;margin:0}div.dt-button-collection.columns.dtb-b3>:last-child,div.dt-button-collection.columns.dtb-b2>:last-child,div.dt-button-collection.columns.dtb-b1>:last-child{justify-content:space-between}div.dt-button-collection.columns.dtb-b3 .dt-button{flex:1 1 32%}div.dt-button-collection.columns.dtb-b2 .dt-button{flex:1 1 48%}div.dt-button-collection.columns.dtb-b1 .dt-button{flex:1 1 100%}@media screen and (max-width: 1024px){div.dt-button-collection.columns>:last-child{width:612px}}@media screen and (max-width: 640px){div.dt-button-collection.columns>:last-child{width:406px}div.dt-button-collection.columns.dtb-b3 .dt-button{flex:0 1 32%}}@media screen and (max-width: 460px){div.dt-button-collection.columns>:last-child{width:200px}}div.dt-button-background{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;background:radial-gradient(ellipse farthest-corner at center,#0000004d,#000000b3);z-index:2001}.dt-button.processing{color:#0003}.dt-button.processing:after{position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;box-sizing:border-box;display:block;content:" ";border:2px solid rgb(40,40,40);border-radius:50%;border-left-color:transparent;border-right-color:transparent;animation:dtb-spinner 1.5s infinite linear;-o-animation:dtb-spinner 1.5s infinite linear;-ms-animation:dtb-spinner 1.5s infinite linear;-webkit-animation:dtb-spinner 1.5s infinite linear;-moz-animation:dtb-spinner 1.5s infinite linear}@media screen and (max-width: 640px){div.dt-buttons{float:none!important;text-align:center}}html.dark div.dt-buttons>.dt-button,html.dark div.dt-buttons>div.dt-button-split .dt-button{border:1px solid rgb(89,91,94);background:#ffffff26}html.dark div.dt-buttons>.dt-button.dt-button-active:not(.disabled),html.dark div.dt-buttons>div.dt-button-split .dt-button.dt-button-active:not(.disabled){background:#b3b3b326;box-shadow:inset 1px 1px 2px #000}html.dark div.dt-buttons>.dt-button.dt-button-active:not(.disabled):hover:not(.disabled),html.dark div.dt-buttons>div.dt-button-split .dt-button.dt-button-active:not(.disabled):hover:not(.disabled){background:#80808026;box-shadow:inset 1px 1px 3px #000}html.dark div.dt-buttons>.dt-button:hover:not(.disabled),html.dark div.dt-buttons>div.dt-button-split .dt-button:hover:not(.disabled){background:#b3b3b326}html.dark div.dt-buttons>.dt-button:focus:not(.disabled),html.dark div.dt-buttons>div.dt-button-split .dt-button:focus:not(.disabled){outline:2px solid rgb(110,168,254)}html.dark div.dt-buttons>div.dt-button-split .dt-button:first-child{border-right:1px solid rgba(255,255,255,.1)}html.dark div.dt-buttons>div.dt-button-split .dt-button:first-child:hover{border-right:1px solid rgb(89,91,94)}html.dark div.dt-buttons>div.dt-button-split .dt-button:last-child:hover{border-left:1px solid rgb(89,91,94)}html.dark div.dt-button-collection{border:1px solid rgba(255,255,255,.15);background-color:#212529;box-shadow:3px 4px 10px 1px #000c}table.dataTable thead tr>.dtfc-fixed-start,table.dataTable thead tr>.dtfc-fixed-end,table.dataTable tfoot tr>.dtfc-fixed-start,table.dataTable tfoot tr>.dtfc-fixed-end{top:0;bottom:0;z-index:3;background-color:#fff}table.dataTable tbody tr>.dtfc-fixed-start,table.dataTable tbody tr>.dtfc-fixed-end{z-index:1;background-color:#fff}table.dataTable tr>.dtfc-fixed-left:after,table.dataTable tr>.dtfc-fixed-right:after{position:absolute;top:0;bottom:0;width:10px;transition:box-shadow .3s;content:"";pointer-events:none}table.dataTable tr>.dtfc-fixed-left:after{right:0;transform:translate(100%)}table.dataTable tr>.dtfc-fixed-right:after{left:0;transform:translate(-80%)}table.dataTable.dtfc-scrolling-left tr>.dtfc-fixed-left:after{box-shadow:inset 10px 0 8px -8px #0003}table.dataTable.dtfc-scrolling-right tr>.dtfc-fixed-right:after{box-shadow:inset -10px 0 8px -8px #0003}table.dataTable.dtfc-scrolling-right tr>.dtfc-fixed-right+.dtfc-fixed-right:after{box-shadow:none}div.dt-scroll,div.dtfh-floatingparent{position:relative}div.dt-scroll div.dtfc-top-blocker,div.dt-scroll div.dtfc-bottom-blocker,div.dtfh-floatingparent div.dtfc-top-blocker,div.dtfh-floatingparent div.dtfc-bottom-blocker{position:absolute;background-color:#fff}html.dark table.dataTable thead tr>.dtfc-fixed-start,html.dark table.dataTable thead tr>.dtfc-fixed-end,html.dark table.dataTable tfoot tr>.dtfc-fixed-start,html.dark table.dataTable tfoot tr>.dtfc-fixed-end{background-color:var(--dt-html-background)}html.dark table.dataTable tbody tr>.dtfc-fixed-start,html.dark table.dataTable tbody tr>.dtfc-fixed-end{background-color:var(--dt-html-background)}html.dark table.dataTable.dtfc-scrolling-left tbody>tr>.dtfc-fixed-left:after{box-shadow:inset 10px 0 8px -8px #0000004d}html.dark table.dataTable.dtfc-scrolling-right tbody>tr>.dtfc-fixed-right:after{box-shadow:inset -10px 0 8px -8px #0000004d}html.dark table.dataTable.dtfc-scrolling-right tbody>tr>.dtfc-fixed-right+.dtfc-fixed-right:after{box-shadow:none}html.dark div.dtfc-top-blocker,html.dark div.dtfc-bottom-blocker{background-color:var(--dt-html-background)}table.dataTable tbody th.focus,table.dataTable tbody td.focus{outline:2px solid #36f;outline-offset:-2px}table.dataTable tbody tr.selected th.focus,table.dataTable tbody tr.selected td.focus{outline-color:#03c}div.dtk-focus-alt table.dataTable tbody th.focus,div.dtk-focus-alt table.dataTable tbody td.focus{outline:2px solid #ff8b33;outline-offset:-2px}html.dark table.dataTable tbody th.focus,html.dark table.dataTable tbody td.focus{outline-color:#0d6efd}html.dark table.dataTable tbody tr.selected th.focus,html.dark table.dataTable tbody tr.selected td.focus{outline-color:#0143a3}html.dark div.dtk-focus-alt table.dataTable tbody th.focus,html.dark div.dtk-focus-alt table.dataTable tbody td.focus{outline-color:#ff8b33}table.dataTable tr.dtrg-group th{background-color:#0000001a;text-align:left}table.dataTable tr.dtrg-group.dtrg-level-0 th{font-weight:700}table.dataTable tr.dtrg-group.dtrg-level-1 th,table.dataTable tr.dtrg-group.dtrg-level-2 th,table.dataTable tr.dtrg-group.dtrg-level-3 th,table.dataTable tr.dtrg-group.dtrg-level-4 th,table.dataTable tr.dtrg-group.dtrg-level-5 th{background-color:#0000000d;padding-top:.25em;padding-bottom:.25em;padding-left:2em;font-size:.9em}table.dataTable tr.dtrg-group.dtrg-level-2 th{background-color:#00000003;padding-left:2.5em}table.dataTable tr.dtrg-group.dtrg-level-3 th{background-color:#00000003;padding-left:3em}table.dataTable tr.dtrg-group.dtrg-level-4 th{background-color:#00000003;padding-left:3.5em}table.dataTable tr.dtrg-group.dtrg-level-5 th{background-color:#00000003;padding-left:4em}html.dark table.dataTable tr.dtrg-group th{background-color:#ffffff1a}html.dark table.dataTable tr.dtrg-group.dtrg-level-1 th{background-color:#ffffff0d}html.dark table.dataTable tr.dtrg-group.dtrg-level-2 th,html.dark table.dataTable tr.dtrg-group.dtrg-level-3 th,html.dark table.dataTable tr.dtrg-group.dtrg-level-4 th,html.dark table.dataTable tr.dtrg-group.dtrg-level-5 th{background-color:#ffffff03}div.dt-datetime{position:absolute;background-color:#fff;z-index:2050;border:1px solid #ccc;box-shadow:0 5px 15px -5px #00000080;padding:6px 20px;width:275px;border-radius:5px}div.dt-datetime.inline{position:relative;box-shadow:none}div.dt-datetime div.dt-datetime-title{text-align:center;padding:5px 0 3px}div.dt-datetime div.dt-datetime-buttons{text-align:center}div.dt-datetime div.dt-datetime-buttons a{display:inline-block;padding:0 .5em .5em;margin:0;font-size:.9em}div.dt-datetime div.dt-datetime-buttons a:hover{text-decoration:underline}div.dt-datetime table{border-spacing:0;margin:12px 0;width:100%}div.dt-datetime table.dt-datetime-table-nospace{margin-top:-12px}div.dt-datetime table th{font-size:.8em;color:#777;font-weight:400;width:14.285714286%;padding:0 0 4px;text-align:center}div.dt-datetime table td{font-size:.9em;color:#444;padding:0}div.dt-datetime table td.selectable{text-align:center;background:#f5f5f5}div.dt-datetime table td.selectable.disabled,div.dt-datetime table td.selectable.disabled button:hover{color:#aaa;background:#fff}div.dt-datetime table td.selectable.now{background-color:#ddd}div.dt-datetime table td.selectable.now button{font-weight:700}div.dt-datetime table td.selectable.selected button{background:#4e6ca3;color:#fff;border-radius:2px}div.dt-datetime table td.selectable button:hover{background:#ff8000;color:#fff;border-radius:2px}div.dt-datetime table td.dt-datetime-week{font-size:.7em}div.dt-datetime table button{width:100%;box-sizing:border-box;border:none;background:transparent;font-size:inherit;color:inherit;text-align:center;padding:4px 0;cursor:pointer;margin:0}div.dt-datetime table button span{display:inline-block;min-width:14px;text-align:right}div.dt-datetime table.weekNumber th{width:12.5%}div.dt-datetime div.dt-datetime-calendar table{margin-top:0}div.dt-datetime div.dt-datetime-label{position:relative;display:inline-block;height:30px;padding:5px 6px;border:1px solid transparent;box-sizing:border-box;cursor:pointer}div.dt-datetime div.dt-datetime-label:hover{border:1px solid #ddd;border-radius:2px;background-color:#f5f5f5}div.dt-datetime div.dt-datetime-label select{position:absolute;top:6px;left:0;cursor:pointer;opacity:0}div.dt-datetime.horizontal{width:550px}div.dt-datetime.horizontal div.dt-datetime-date,div.dt-datetime.horizontal div.dt-datetime-time{width:48%}div.dt-datetime.horizontal div.dt-datetime-time{margin-left:4%}div.dt-datetime div.dt-datetime-date{position:relative;float:left;width:100%}div.dt-datetime div.dt-datetime-time{position:relative;float:left;width:100%;text-align:center}div.dt-datetime div.dt-datetime-time>span{vertical-align:middle}div.dt-datetime div.dt-datetime-time th{text-align:left}div.dt-datetime div.dt-datetime-time div.dt-datetime-timeblock{display:inline-block;vertical-align:middle}div.dt-datetime div.dt-datetime-iconLeft,div.dt-datetime div.dt-datetime-iconRight{width:30px;height:30px;background-position:center;background-repeat:no-repeat;opacity:.3;overflow:hidden;box-sizing:border-box;border:1px solid transparent}div.dt-datetime div.dt-datetime-iconLeft:hover,div.dt-datetime div.dt-datetime-iconRight:hover{border:1px solid #ccc;border-radius:2px;background-color:#f0f0f0;opacity:.6}div.dt-datetime div.dt-datetime-iconLeft button,div.dt-datetime div.dt-datetime-iconRight button{border:none;background:transparent;text-indent:30px;height:100%;width:100%;cursor:pointer}div.dt-datetime div.dt-datetime-iconLeft{position:absolute;top:5px;left:5px}div.dt-datetime div.dt-datetime-iconLeft button{position:relative;z-index:1}div.dt-datetime div.dt-datetime-iconLeft:after{position:absolute;top:7px;left:10px;display:block;content:"";border-top:7px solid transparent;border-right:7px solid black;border-bottom:7px solid transparent}div.dt-datetime div.dt-datetime-iconRight{position:absolute;top:5px;right:5px}div.dt-datetime div.dt-datetime-iconRight button{position:relative;z-index:1}div.dt-datetime div.dt-datetime-iconRight:after{position:absolute;top:7px;left:12px;display:block;content:"";border-top:7px solid transparent;border-left:7px solid black;border-bottom:7px solid transparent}div.dt-datetime-error{clear:both;padding:0 1em;max-width:240px;font-size:11px;line-height:1.25em;text-align:center;color:#b11f1f}html.dark input.dt-datetime{color-scheme:dark}html.dark div.dt-datetime{border:1px solid #595b5e;background-color:#212529;box-shadow:3px 4px 10px 1px #000c}html.dark div.dt-datetime table th{color:#ccc}html.dark div.dt-datetime table td{color:#eee}html.dark div.dt-datetime table td.selectable{background:#373c41}html.dark div.dt-datetime table td.selectable.disabled,html.dark div.dt-datetime table td.selectable.disabled button:hover{color:#aaa;background:#171b1f}html.dark div.dt-datetime table td.selectable.now{background:#4b5055}html.dark div.dt-datetime table td.selectable.selected button{background:#6ea8fe;color:#000}html.dark div.dt-datetime table td.selectable button:hover{background:#ff8000;color:#000}html.dark div.dt-datetime div.dt-datetime-label:hover,html.dark div.dt-datetime div.dt-datetime-iconLeft:hover,html.dark div.dt-datetime div.dt-datetime-iconRight:hover,html.dark div.dt-datetime div.dt-datetime-iconUp:hover,html.dark div.dt-datetime div.dt-datetime-iconDown:hover{border:1px solid transparent;background-color:#ffffff1a}html.dark div.dt-datetime div.dt-datetime-iconLeft:after{border-right-color:#fff}html.dark div.dt-datetime div.dt-datetime-iconRight:after{border-left-color:#fff}html.dark div.dt-datetime select{color-scheme:dark}html.dark div.dt-datetime-error{color:#b11f1f}div.dt-button-collection{overflow:visible!important;z-index:2002!important}div.dt-button-collection div.dtsb-searchBuilder{padding-left:1em!important;padding-right:1em!important}div.dt-button-collection.dtb-collection-closeable div.dtsb-titleRow{padding-right:40px}.dtsb-greyscale{border:1px solid #cecece!important}div.dtsb-logicContainer .dtsb-greyscale{border:none!important}div.dtsb-searchBuilder{justify-content:space-evenly;cursor:default;margin-bottom:1em;text-align:left;width:100%}div.dtsb-searchBuilder button.dtsb-button,div.dtsb-searchBuilder select{font-size:1em}div.dtsb-searchBuilder div.dtsb-titleRow{justify-content:space-evenly;margin-bottom:.5em}div.dtsb-searchBuilder div.dtsb-titleRow div.dtsb-title{display:inline-block;padding-top:14px}div.dtsb-searchBuilder div.dtsb-titleRow div.dtsb-title:empty{display:inline}div.dtsb-searchBuilder div.dtsb-titleRow button.dtsb-clearAll{float:right;margin-bottom:.8em}div.dtsb-searchBuilder div.dtsb-vertical .dtsb-value,div.dtsb-searchBuilder div.dtsb-vertical .dtsb-data,div.dtsb-searchBuilder div.dtsb-vertical .dtsb-condition{display:block}div.dtsb-searchBuilder div.dtsb-group{position:relative;clear:both;margin-bottom:.8em}div.dtsb-searchBuilder div.dtsb-group button.dtsb-search{float:right}div.dtsb-searchBuilder div.dtsb-group button.dtsb-clearGroup{margin:2px;text-align:center;padding:0}div.dtsb-searchBuilder div.dtsb-group div.dtsb-logicContainer{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-o-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);position:absolute;margin-top:.8em;margin-right:.8em}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria{margin-bottom:.8em;display:flex;justify-content:start;flex-flow:row wrap}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-dropDown,div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-input{padding:.4em;margin-right:.8em;min-width:5em;max-width:20em;color:inherit;font-size:1em}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-dropDown option.dtsb-notItalic,div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-input option.dtsb-notItalic{font-style:normal}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-italic{font-style:italic}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont{flex:1;white-space:nowrap}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont span.dtsb-joiner{margin-right:.8em}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont input.dtsb-value{width:33%}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont select,div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont input{height:100%;box-sizing:border-box}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer{margin-left:auto;display:inline-block}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button.dtsb-delete,div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button.dtsb-right,div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button.dtsb-left{margin-right:.8em}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button.dtsb-delete:last-child,div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button.dtsb-right:last-child,div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button.dtsb-left:last-child{margin-right:0}@media screen and (max-width: 550px){div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria{display:flex;flex-flow:none;flex-direction:column;justify-content:start;padding-right:calc(35px + .8em);margin-bottom:0}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:not(:first-child),div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:not(:nth-child(2)),div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:not(:last-child){padding-top:.8em}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:first-child,div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:nth-child(2),div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria:last-child{padding-top:0}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-dropDown,div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-input{max-width:none;width:100%;margin-bottom:.8em;margin-right:.8em}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-inputCont{margin-right:.8em}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer{position:absolute;width:35px;display:flex;flex-wrap:wrap-reverse;right:0}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria div.dtsb-buttonContainer button{margin-right:0!important}}div.dtsb-searchBuilder button,div.dtsb-searchBuilder select.dtsb-dropDown,div.dtsb-searchBuilder input{background-color:#f9f9f9}div.dtsb-searchBuilder button.dtsb-button{position:relative;display:inline-block;box-sizing:border-box;padding:.5em 1em;border:1px solid rgba(0,0,0,.3);border-radius:2px;cursor:pointer;font-size:.88em;line-height:1.6em;color:inherit;white-space:nowrap;overflow:hidden;background-color:#0000001a;background:linear-gradient(to bottom,#e6e6e61a,#0000001a);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;outline:none;text-overflow:ellipsis}div.dtsb-searchBuilder button.dtsb-button:hover{background-color:#cecece;cursor:pointer}div.dtsb-searchBuilder div.dtsb-logicContainer{border:1px solid rgba(0,0,0,.3);background-color:#0000001a;background:linear-gradient(to right,#e6e6e61a,#0000001a)}div.dtsb-searchBuilder div.dtsb-logicContainer button{border:1px solid transparent;background:transparent}div.dtsb-searchBuilder button.dtsb-clearGroup{min-width:2em;padding:0}div.dtsb-searchBuilder button.dtsb-iptbtn{min-width:100px;text-align:left}div.dtsb-searchBuilder div.dtsb-group div.dtsb-logicContainer{border:1px solid;border-color:#cecece;border-radius:3px;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}div.dtsb-searchBuilder div.dtsb-group div.dtsb-logicContainer button.dtsb-logic{border:none;border-radius:0;flex-grow:1;flex-shrink:0;flex-basis:3em;margin:0}div.dtsb-searchBuilder div.dtsb-group div.dtsb-logicContainer button.dtsb-clearGroup{border:none;border-radius:0;width:2em;margin:0}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-dropDown,div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-input{border:1px solid;border-radius:3px}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-condition{border-color:#48b13c}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-data{border-color:#e70f00}div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria select.dtsb-value,div.dtsb-searchBuilder div.dtsb-group div.dtsb-criteria input.dtsb-value{border-color:#0069ba}html.dark div.dtsb-searchBuilder button.dtsb-button,html.dark div.dtsb-searchBuilder select.dtsb-dropDown,html.dark div.dtsb-searchBuilder input.dtsb-input{background-color:#424549!important;color-scheme:dark}html.dark div.dtsb-searchBuilder button.dtsb-button{border:1px solid rgb(89,91,94);background:#ffffff26}html.dark div.dtsb-searchBuilder button.dtsb-button:hover{background:#b3b3b326}html.dark div.dtsb-searchBuilder div.dtsb-logicContainer{border:1px solid rgb(89,91,94)}html.dark div.dtsb-searchBuilder .dtsb-greyscale{border-color:#fff3!important}div.dtsp-topRow{display:flex;flex-direction:row;flex-wrap:nowrap;border:2px solid rgba(0,0,0,0);border-radius:3px;justify-content:space-around;align-content:flex-start;align-items:flex-start}div.dtsp-topRow input.dtsp-search{text-overflow:ellipsis;min-width:50px;flex-basis:90px;max-width:none}div.dtsp-topRow input.dtsp-search::placeholder{color:inherit}div.dtsp-topRow div.dtsp-subRow1{display:flex;flex-direction:row;flex-wrap:nowrap;flex:1 1 auto}div.dtsp-topRow div.dtsp-subRow1 div.dtsp-searchCont{position:relative;width:100%}div.dtsp-topRow div.dtsp-subRow1 input{padding-right:2em;width:100%!important;box-sizing:border-box;font-size:1em}div.dtsp-topRow div.dtsp-subRow1 input[disabled=disabled]{background-color:transparent;border:none;cursor:initial;box-shadow:none;padding-bottom:0;padding-top:0;min-height:1em;height:fit-content;box-sizing:content-box}div.dtsp-topRow div.dtsp-subRow1 input[disabled=disabled]::placeholder{color:initial;opacity:1}div.dtsp-topRow div.dtsp-subRow1 button.dtsp-searchIcon{position:absolute;top:0;right:0;bottom:0}div.dtsp-topRow div.dtsp-subRow1 button.dtsp-searchIcon span{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAABbmlDQ1BpY2MAACiRdZE7SwNBFIU/EyWikRRaiFhsoWKhEBREO42FTZAQFYza7G5eQhKX3QQJtoKNhWAh2vgq/AfaCrYKgqAIIhb+Al+NhPVOEkiQZJbZ+3FmzmXmDHjCGTPrtAYhm8vb0bmQthxb0Xzv+PHRxRSabjrWTCQSpun4eaRF1YdR1av5voajM55wTGhpF54wLTsvPC0c3sxbineFe8y0Hhc+ER6x5YDCt0o3KvymOFXhL8X2YnQWPKqnlqpjo47NtJ0VHhYeyGYKZvU86ib+RG5pQWqfzH4coswRQsOgwDoZ8oxKzUlmjX3Bsm+eDfGY8rcoYosjRVq8I6IWpGtCalL0hHwZiir3/3k6yfGxSnd/CNpeXfdzEHz7UNpz3d9T1y2dgfcFrnM1/4bkNPkt+l5NGziGwDZc3tQ04wCudqD32dJtvSx5ZXqSSfi4gK4YdN9Dx2olq+o650+wuCVPdAeHRzAk+wNrfw8JaBFXEnV+AAAACXBIWXMAAA9hAAAPYQGoP6dpAAABMUlEQVQoU6XRr0vDQRjH8akoM4iIjqGoOIZ5oIjB5XWxajaYDGLSIhhNYjcPRDSJwbQNw+L+BNGgYYo/5pT5/shz8vDlBgMPXux7z3N3z+25VOofYyCyd4ZYCavI4gXPsRp9LqiDdrEMH+8wv8Vh8gBfWclFPOEUN3hAHjlMoRa7wTzBS5xgKLFglPkZLjDic6HyDsEMNvGR2Nxifoci3tEI+X770JU0XmPXIlax+LTPh83fFox1X6kxyzdjm9UcdXi9S+Vti6svfyNULhNR9TVsYNhW6Ff9KKCNR7/Zv6eeaQ+6+qcdpu9BqGlp1HFgud+FYdzzUcUExu0Q/cdzHGEFetIlXKPjK/sbqYoOftMiS+j9jzEJPd1Wt+5+kdR/9EM9ucIC5jCbyPc01Q32kfsBppYz3hYFcCwAAAAASUVORK5CYII=)!important;background-repeat:no-repeat;background-position:center;background-size:12px}div.dtsp-topRow div.dtsp-subRow2{white-space:nowrap;flex:0 0 auto}div.dtsp-topRow button>span{display:inline-block;height:100%;width:100%}div.dtsp-topRow button.dtsp-nameButton span{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAABcGlDQ1BpY2MAACiRdZHNSwJBGMYftTDS8FCHkA57sOigIAXRMQzyYh3UIKvL7rirwe66zK6IdA26dBA6RF36OvQf1DXoWhAERRAR9B/0dQnZ3nEFJXSG2ffHs/O8zDwD+DM6M+yBJGCYDs+mU9JaYV0KviNMM4QoEjKzreXcUh59x88jfKI+JESv/vt6jlBRtRngGyKeYxZ3iBeIMzXHErxHPMbKcpH4hDjO6YDEt0JXPH4TXPL4SzDPZxcBv+gplbpY6WJW5gbxNHHM0KusfR5xk7BqruaoRmlNwEYWaaQgQUEVW9DhIEHVpMx6+5It3woq5GH0tVAHJ0cJZfLGSa1SV5WqRrpKU0dd5P4/T1ubnfG6h1PA4Kvrfk4CwX2g2XDd31PXbZ4BgRfg2uz4K5TT/DfpjY4WOwYiO8DlTUdTDoCrXWD82ZK53JICtPyaBnxcACMFYPQeGN7wsmr/x/kTkN+mJ7oDDo+AKdof2fwDCBRoDkL8UccAAAAJcEhZcwAAD2EAAA9hAag/p2kAAAK2SURBVFgJ7ZY9j41BFICvryCExrJBQ6HyEYVEIREaUZDQIRoR2ViJKCioxV+gkVXYTVZEQiEUhG2EQnxUCh0FKolY4ut5XnM2cyfva3Pt5m7EPcmzZ2bemTNnzjkzd1utnvQi0IvAfxiBy5z5FoxO89kPY+8mbMjtzs47RXs5/WVpbAG6bWExt5PuIibvhVkwmC+ck3eK9ln6/fAddFojYzBVuYSBpcnIEvRaqOw2RcaN18FPuJH0JvRUxbT3wWf4ltiKPgfVidWlbGZgPozDFfgAC+EA/K2EI4cwcAJ+gPaeQ+VQU2SOMMGcPgPl/m/V2p50rrbRsRgt9Iv5h6xtpP22Bz7Ce1C+gFFxfKzOmShcU+Qmyh2w3w8rIJfddHTck66EukL/xPhj+JM8rHNmFys0Pg4v0up3aFNlwR9NYyodd3OL/C64zpsymcTFcf6ElM4YzjAWKYrJkaq8kE/yUYNP4BoYvS1QRo+hNtF5xfkTUjoTheukSFFMjlTFm6PjceOca/SMpKfeCR1L6Uzk/y2WIkVhNFJlJAZhP+hYns7b9D3IPuhY5mYrIv8OrQJvR5NYyNaW4jsU8pSGNySiVx4o5tXq3JkoXE/mg5R/M8dGJCJpKhaDcjBRdbI/Rm8g69c122om33BHmj2CHoV5qa9jUXBraJ+G1fAVjIBO1klc87ro1K4JZ/K35SWW3TwcyDd6TecqnAEd8cGq2+w84xvBm1n3vS0izKkkwh5XNC/GmFPqqAtPF89AOScKuemaNzoTV1SD5dtSbmLf1/RV+tC0WTgcj6R7HEtrVGWaqu/lYDZ/2pvxQ/kIyw/gFByHC9AHw910hv1aUUumyd8yy0QfhmEkfiNod0Xusct68J1qc8Tdux0Z97Q+hsDb+AYGYEbF/4Guw2Q/qDPqZG/zXgT+3Qj8AtKnfWhFwmuAAAAAAElFTkSuQmCC)!important;background-repeat:no-repeat;background-position:center;background-size:23px;vertical-align:bottom}div.dtsp-topRow button.dtsp-countButton span{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABcGlDQ1BpY2MAACiRdZHNSwJBGMYftTDS8FCHkA57sOigIAXRMQzyYh3UIKvL7rirwe66zK6IdA26dBA6RF36OvQf1DXoWhAERRAR9B/0dQnZ3nEFJXSG2ffHs/O8zDwD+DM6M+yBJGCYDs+mU9JaYV0KviNMM4QoEjKzreXcUh59x88jfKI+JESv/vt6jlBRtRngGyKeYxZ3iBeIMzXHErxHPMbKcpH4hDjO6YDEt0JXPH4TXPL4SzDPZxcBv+gplbpY6WJW5gbxNHHM0KusfR5xk7BqruaoRmlNwEYWaaQgQUEVW9DhIEHVpMx6+5It3woq5GH0tVAHJ0cJZfLGSa1SV5WqRrpKU0dd5P4/T1ubnfG6h1PA4Kvrfk4CwX2g2XDd31PXbZ4BgRfg2uz4K5TT/DfpjY4WOwYiO8DlTUdTDoCrXWD82ZK53JICtPyaBnxcACMFYPQeGN7wsmr/x/kTkN+mJ7oDDo+AKdof2fwDCBRoDkL8UccAAAAJcEhZcwAAD2EAAA9hAag/p2kAAAG5SURBVEgN3VU9LwVBFF0fiYhofUSlEQkKhU7z/oBCQkIiGr9BgUbhVzy9BAnhFyjV/AYFiU5ICM7ZN+c5Zud5dm3lJmfmzrkz9+7cu3c3y/6jjOBSF8CxXS7FmTkbwqIJjDpJvTcmsJ4K3KPZUpyZsx0sxoB9J6mnAkyC7wGuuCFIipNtEcpcWExgXpOBc78vgj6N+QO4NVsjwdFM59tUIDxDrHMBOeIQ34C5ZDregXuAQm4YcI68nN9B3wr2PcwPAIPkN2EqtJH6b+QZm1ajjTx7BqwAr26Lb+C2Kvpbt0Mb2HAJ7NrGFGfmXO3DeA4UshDfQAVmH0gaUFg852TTTDvlxwBlCtxy9zXyBhQFaq0wMmIdRebrfgosA3zb2hKnqG0oqchp4QbuR8X0TjzABhbdOT8jnQ/atcgqpnfwOA7yqZyTU587ZkIGdesLTt2EkynOnbreMUUKMI/dA4B/QVOcO13CQh+5wWCgDwo/75u59odB/wjmfhbgvACcAOyZPHihMWAoIwxyCLgf1oxfgjzVbgBXSTzIN+f0pg6s5DkcesLMRpsBrgE2XO3CN64JFP7JtUeKHX4CKtRRXFZ+7dEAAAAASUVORK5CYII=)!important;background-repeat:no-repeat;background-position:center;background-size:18px;vertical-align:bottom}div.dtsp-topRow button.dtsp-collapseButton span.dtsp-caret{position:relative;top:9px;display:inline-block}div.dtsp-topRow button.dtsp-collapseButton.dtsp-rotated{transform:rotate(180deg)}div.dtsp-searchPane table thead th,div.dtsp-searchPane table thead td{width:100%!important}div.dt-button-collection{z-index:2002}div.dt-button-collection.dtb-collection-closeable div.dtsp-titleRow{padding-right:25px}div.dtsp-columns-1{max-width:100%;min-width:100%;margin:0!important}div.dtsp-columns-2{max-width:49%;min-width:49%;margin:0!important}div.dtsp-columns-3{max-width:32%;min-width:32%;margin:0!important}div.dtsp-columns-4{max-width:24%;min-width:24%;margin:0!important}div.dtsp-columns-5{max-width:19%;min-width:19%;margin:0!important}div.dtsp-columns-6{max-width:16%;min-width:16%;margin:0!important}div.dtsp-columns-7{max-width:14%;min-width:14%;margin:0!important}div.dtsp-columns-8{max-width:12%;min-width:12%;margin:0!important}div.dtsp-columns-9{max-width:10.5%;min-width:10.5%;margin:0!important}div.dtsp-narrow{flex-direction:column!important}div.dtsp-narrow div.dtsp-subRow1,div.dtsp-narrow div.dtsp-subRow2{width:100%}div.dtsp-narrow div.dtsp-subRow2 button{margin:0!important;width:25%!important}div.dt-button-collection div.dtsp-panesContainer{padding-left:1em;padding-right:1em;margin-bottom:0}div.dtsp-panesContainer{margin-bottom:1em}div.dtsp-searchPane div.dt-container,div.dtsp-searchPane div.dataTables_wrapper{width:100%}div.dtsp-searchPane div.dt-container div.dataTables_layout_cell,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_layout_cell{padding:0}div.dtsp-searchPane div.dt-container div.dt-scroll-head,div.dtsp-searchPane div.dt-container div.dataTables_scrollHead,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-head,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollHead{display:none!important}div.dtsp-searchPane div.dt-container div.dt-scroll-body,div.dtsp-searchPane div.dt-container div.dataTables_scrollBody,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody{background:#fff!important;border:none}div.dtsp-searchPane div.dt-container div.dt-scroll-body thead,div.dtsp-searchPane div.dt-container div.dataTables_scrollBody thead,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body thead,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody thead{display:none}div.dtsp-searchPane div.dt-container div.dt-scroll-body table tr>th,div.dtsp-searchPane div.dt-container div.dt-scroll-body table tr>td,div.dtsp-searchPane div.dt-container div.dataTables_scrollBody table tr>th,div.dtsp-searchPane div.dt-container div.dataTables_scrollBody table tr>td,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body table tr>th,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body table tr>td,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody table tr>th,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody table tr>td{padding:5px 10px}div.dtsp-searchPane div.dt-container div.dt-scroll-body td.dtsp-nameColumn,div.dtsp-searchPane div.dt-container div.dataTables_scrollBody td.dtsp-nameColumn,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body td.dtsp-nameColumn,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody td.dtsp-nameColumn{width:100%!important}div.dtsp-searchPane div.dt-container div.dt-scroll-body div.dtsp-nameCont,div.dtsp-searchPane div.dt-container div.dataTables_scrollBody div.dtsp-nameCont,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body div.dtsp-nameCont,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody div.dtsp-nameCont{width:100%;display:flex;flex-direction:row;justify-content:flex-start;align-content:flex-start;align-items:flex-start}div.dtsp-searchPane div.dt-container div.dt-scroll-body div.dtsp-nameCont span.dtsp-name,div.dtsp-searchPane div.dt-container div.dt-scroll-body div.dtsp-nameCont span.dtsp-pill,div.dtsp-searchPane div.dt-container div.dataTables_scrollBody div.dtsp-nameCont span.dtsp-name,div.dtsp-searchPane div.dt-container div.dataTables_scrollBody div.dtsp-nameCont span.dtsp-pill,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body div.dtsp-nameCont span.dtsp-name,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body div.dtsp-nameCont span.dtsp-pill,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody div.dtsp-nameCont span.dtsp-name,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody div.dtsp-nameCont span.dtsp-pill{cursor:default}div.dtsp-searchPane div.dt-container div.dt-scroll-body div.dtsp-nameCont span.dtsp-name,div.dtsp-searchPane div.dt-container div.dataTables_scrollBody div.dtsp-nameCont span.dtsp-name,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body div.dtsp-nameCont span.dtsp-name,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody div.dtsp-nameCont span.dtsp-name{text-overflow:ellipsis;overflow:hidden;display:inline-block;vertical-align:middle;white-space:nowrap;flex-grow:1;text-align:left}div.dtsp-searchPane div.dt-container div.dt-scroll-body div.dtsp-nameCont span.dtsp-pill,div.dtsp-searchPane div.dt-container div.dataTables_scrollBody div.dtsp-nameCont span.dtsp-pill,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body div.dtsp-nameCont span.dtsp-pill,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody div.dtsp-nameCont span.dtsp-pill{display:inline-block;background-color:#cfcfcf;text-align:center;border-radius:10px;width:auto;min-width:30px;color:#000;font-size:.9em;padding:0 4px}div.dtsp-searchPane div.dt-container div.dt-scroll-body div.dtsp-nameCont span.dtsp-pill:empty,div.dtsp-searchPane div.dt-container div.dataTables_scrollBody div.dtsp-nameCont span.dtsp-pill:empty,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body div.dtsp-nameCont span.dtsp-pill:empty,div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody div.dtsp-nameCont span.dtsp-pill:empty{display:none}div.dtsp-panesContainer{clear:both;padding-left:0;padding-right:0;text-align:center}div.dtsp-panesContainer div.dtsp-searchPanes{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-content:flex-start;align-items:stretch;clear:both;text-align:left}div.dtsp-panesContainer div.dtsp-searchPanes div.dtsp-searchPane{flex-grow:1;flex-shrink:0;font-size:.9em;margin-top:15px!important}div.dtsp-panesContainer div.dtsp-searchPanes div.dtsp-searchPane div.dt-container,div.dtsp-panesContainer div.dtsp-searchPanes div.dtsp-searchPane div.dataTables_wrapper{flex:1;box-sizing:border-box}div.dtsp-panesContainer div.dtsp-searchPanes div.dtsp-searchPane div.dt-container div.dt-search,div.dtsp-panesContainer div.dtsp-searchPanes div.dtsp-searchPane div.dt-container div.dataTables_filter,div.dtsp-panesContainer div.dtsp-searchPanes div.dtsp-searchPane div.dataTables_wrapper div.dt-search,div.dtsp-panesContainer div.dtsp-searchPanes div.dtsp-searchPane div.dataTables_wrapper div.dataTables_filter{display:none}div.dtsp-panesContainer div.dtsp-title{float:left;padding:10px 0}div.dtsp-panesContainer button.dtsp-clearAll,div.dtsp-panesContainer button.dtsp-collapseAll,div.dtsp-panesContainer button.dtsp-showAll{float:right}div.dtsp-hidden{display:none!important}html.dark div.dtsp-topRow div.dtsp-subRow1 div.dtsp-searchCont input[disabled=disabled]::placeholder,html[data-bs-theme=dark] div.dtsp-topRow div.dtsp-subRow1 div.dtsp-searchCont input[disabled=disabled]::placeholder{color:#fff}div.dtsp-searchPane div.dt-container,div.dtsp-searchPane div.dataTables_wrapper{border:1px solid #f0f0f0;border-radius:4px;overflow:hidden}div.dtsp-searchPane div.dt-container:hover,div.dtsp-searchPane div.dataTables_wrapper:hover{border:1px solid #cfcfcf}div.dtsp-searchPane div.dt-container div.dt-scroll,div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll{margin:-5px 0}div.dtsp-searchPane div.dt-container table.dataTable,div.dtsp-searchPane div.dataTables_wrapper table.dataTable{border-bottom:none!important}div.dtsp-searchPane div.dtsp-topRow{border:1px solid transparent}div.dtsp-searchPane div.dtsp-topRow div.dtsp-subRow1 input[disabled=disabled]{padding-bottom:5px}div.dtsp-searchPane div.dtsp-topRow div.dtsp-searchCont input.dtsp-search{border:none;padding-left:3px}div.dtsp-searchPane div.dtsp-topRow.dtsp-bordered{border:1px solid #f0f0f0;border-radius:3px}div.dtsp-searchPane div.dtsp-topRow.dtsp-bordered:hover{background-color:#f0f0f0}div.dtsp-searchPane input.dtsp-paneInputButton,div.dtsp-searchPane button.dtsp-paneButton{height:35px;width:35px;min-width:0;display:inline-block;margin:2px 2px 0;border:0px solid transparent;background-color:transparent}div.dtsp-searchPane input.dtsp-paneInputButton:hover,div.dtsp-searchPane button.dtsp-paneButton:hover{background-color:#f0f0f0;border-radius:2px;cursor:pointer}div.dtsp-searchPane button.dtsp-paneButton{vertical-align:middle;opacity:.6}div.dtsp-panesContainer button.dtsp-clearAll,div.dtsp-panesContainer button.dtsp-collapseAll,div.dtsp-panesContainer button.dtsp-showAll{border:1px solid transparent;background-color:transparent}div.dtsp-panesContainer button.dtsp-clearAll:hover,div.dtsp-panesContainer button.dtsp-collapseAll:hover,div.dtsp-panesContainer button.dtsp-showAll:hover{background-color:#f0f0f0;border-radius:2px;cursor:pointer}div.dtsp-panesContainer button.dtsp-disabledButton{cursor:default!important;color:#7c7c7c}div.dtsp-panesContainer button.dtsp-disabledButton:hover{background-color:transparent}div.dtsp-panesContainer button.dtsp-disabledButton:focus{outline:none}@media screen and (max-width: 767px){div.dtsp-columns-4,div.dtsp-columns-5,div.dtsp-columns-6{max-width:31%!important;min-width:31%!important}}@media screen and (max-width: 640px){div.dtsp-searchPanes{flex-direction:column!important}div.dtsp-searchPane{max-width:98%!important;min-width:98%!important}}html.dark div.dtsp-topRow div.dtsp-subRow1 button.dtsp-searchIcon span,html.dark div.dtsp-topRow button.dtsp-nameButton span,html.dark div.dtsp-topRow button.dtsp-countButton span{filter:invert(1)}html.dark div.dtsp-topRow input.dtsp-paneInputButton,html.dark div.dtsp-topRow button.dtsp-paneButton{color:inherit}html.dark div.dtsp-topRow input.dtsp-paneInputButton:hover,html.dark div.dtsp-topRow button.dtsp-paneButton:hover{background-color:#404549}html.dark div.dtsp-topRow.dtsp-bordered{border:1px solid rgba(255,255,255,.2);background:#2f3438!important}html.dark div.dtsp-topRow.dtsp-bordered:hover{border:1px solid rgba(255,255,255,.3)}html.dark div.dtsp-panesContainer button.dtsp-clearAll,html.dark div.dtsp-panesContainer button.dtsp-collapseAll,html.dark div.dtsp-panesContainer button.dtsp-showAll{color:inherit}html.dark div.dtsp-panesContainer button.dtsp-clearAll:hover,html.dark div.dtsp-panesContainer button.dtsp-collapseAll:hover,html.dark div.dtsp-panesContainer button.dtsp-showAll:hover{background-color:#404549}html.dark div.dtsp-panesContainer button.dtsp-disabledButton{color:#7c7c7c}html.dark div.dtsp-searchPane div.dt-container,html.dark div.dtsp-searchPane div.dataTables_wrapper{border:1px solid rgba(255,255,255,.2)}html.dark div.dtsp-searchPane div.dt-container:hover,html.dark div.dtsp-searchPane div.dataTables_wrapper:hover{border:1px solid rgba(255,255,255,.3)}html.dark div.dtsp-searchPane div.dt-container div.dt-scroll-body,html.dark div.dtsp-searchPane div.dt-container div.dataTables_scrollBody,html.dark div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body,html.dark div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody{background:#2f3438!important}html.dark div.dtsp-searchPane div.dt-container div.dt-scroll-body div.dtsp-nameCont span.dtsp-pill,html.dark div.dtsp-searchPane div.dt-container div.dataTables_scrollBody div.dtsp-nameCont span.dtsp-pill,html.dark div.dtsp-searchPane div.dataTables_wrapper div.dt-scroll-body div.dtsp-nameCont span.dtsp-pill,html.dark div.dtsp-searchPane div.dataTables_wrapper div.dataTables_scrollBody div.dtsp-nameCont span.dtsp-pill{background-color:#212529;color:inherit}table.dataTable>tbody>tr>.selected{background-color:#0d6efde6;color:#fff}table.dataTable>tbody>tr>.dt-select{text-align:center;vertical-align:middle}table.dataTable>thead>tr>.dt-select{text-align:center}table.dataTable input.dt-select-checkbox{appearance:none;position:relative;display:inline-block;width:12px;height:12px;border:1px solid;border-radius:3px;vertical-align:middle;margin-top:1px;color:inherit;font-size:20px;line-height:1em}table.dataTable input.dt-select-checkbox:checked:after{display:block;content:"\2713";margin-top:-8px}table.dataTable input.dt-select-checkbox:indeterminate:after{display:block;position:absolute;content:" ";top:3px;left:3px;height:4px;width:4px;background-color:#000;border-radius:2px}table.dataTable>tbody>tr.selected input.dt-select-checkbox:checked{border:1px solid}table.dataTable>tbody>tr>td.select-checkbox,table.dataTable>tbody>tr>th.select-checkbox{position:relative}table.dataTable>tbody>tr>td.select-checkbox:before,table.dataTable>tbody>tr>th.select-checkbox:before{display:block;position:absolute;top:50%;left:50%;width:12px;height:12px;box-sizing:border-box;content:" ";margin-top:-6px;margin-left:-6px;border:1px solid;border-radius:3px}table.dataTable>tbody>tr.selected>td.select-checkbox:before,table.dataTable>tbody>tr.selected>th.select-checkbox:before{border:1px solid;content:"\2713";font-size:20px;line-height:6px;text-align:center}table.dataTable.compact>tbody>tr>td.select-checkbox:before,table.dataTable.compact>tbody>tr>th.select-checkbox:before{margin-top:-12px}table.dataTable.compact>tbody>tr.selected>td.select-checkbox:after,table.dataTable.compact>tbody>tr.selected>th.select-checkbox:after{margin-top:-16px}div.dt-container span.select-info,div.dt-container span.select-item{margin-left:.5em}html.dark table.dataTable input.dt-select-checkbox:indeterminate:after,html[data-bs-theme=dark] table.dataTable input.dt-select-checkbox:indeterminate:after{background-color:#fff}@media screen and (max-width: 640px){div.dt-container span.select-info,div.dt-container span.select-item{margin-left:0;display:block}}div.dt-container{max-width:100%}div.dt-layout-table>div{overflow:auto;max-width:100%}
</style>
<div style="vertical-align:middle; text-align:left">
<script>
window._datatables_src_for_itables_2_2_4 = "data:text/javascript;base64,dmFyIHFvPU9iamVjdC5jcmVhdGU7dmFyIE5hPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgWG89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgWW89T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7dmFyICRvPU9iamVjdC5nZXRQcm90b3R5cGVPZixabz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBabj0odD0+dHlwZW9mIHJlcXVpcmU8InUiP3JlcXVpcmU6dHlwZW9mIFByb3h5PCJ1Ij9uZXcgUHJveHkodCx7Z2V0OihlLG4pPT4odHlwZW9mIHJlcXVpcmU8InUiP3JlcXVpcmU6ZSlbbl19KTp0KShmdW5jdGlvbih0KXtpZih0eXBlb2YgcmVxdWlyZTwidSIpcmV0dXJuIHJlcXVpcmUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3Rocm93IEVycm9yKCdEeW5hbWljIHJlcXVpcmUgb2YgIicrdCsnIiBpcyBub3Qgc3VwcG9ydGVkJyl9KTt2YXIgT2E9KHQsZSk9PigpPT4oZXx8dCgoZT17ZXhwb3J0czp7fX0pLmV4cG9ydHMsZSksZS5leHBvcnRzKTt2YXIgS289KHQsZSxuLHIpPT57aWYoZSYmdHlwZW9mIGU9PSJvYmplY3QifHx0eXBlb2YgZT09ImZ1bmN0aW9uIilmb3IobGV0IHMgb2YgWW8oZSkpIVpvLmNhbGwodCxzKSYmcyE9PW4mJk5hKHQscyx7Z2V0OigpPT5lW3NdLGVudW1lcmFibGU6IShyPVhvKGUscykpfHxyLmVudW1lcmFibGV9KTtyZXR1cm4gdH07dmFyIGllPSh0LGUsbik9PihuPXQhPW51bGw/cW8oJG8odCkpOnt9LEtvKGV8fCF0fHwhdC5fX2VzTW9kdWxlP05hKG4sImRlZmF1bHQiLHt2YWx1ZTp0LGVudW1lcmFibGU6ITB9KTpuLHQpKTt2YXIgUmE9T2EoKEVhLHBpKT0+eyhmdW5jdGlvbih0KXt0eXBlb2YgRWE9PSJvYmplY3QiJiZ0eXBlb2YgcGk8InUiP3BpLmV4cG9ydHM9dCgpOnR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJmRlZmluZS5hbWQ/ZGVmaW5lKFtdLHQpOih0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnRoaXMpLkpTWmlwPXQoKX0pKGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIHQoZSxuLHIpe2Z1bmN0aW9uIHModSxwKXtpZighblt1XSl7aWYoIWVbdV0pe3ZhciBiPXR5cGVvZiBabj09ImZ1bmN0aW9uIiYmWm47aWYoIXAmJmIpcmV0dXJuIGIodSwhMCk7aWYoaSlyZXR1cm4gaSh1LCEwKTt2YXIgZz1uZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIit1KyInIik7dGhyb3cgZy5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixnfXZhciBtPW5bdV09e2V4cG9ydHM6e319O2VbdV1bMF0uY2FsbChtLmV4cG9ydHMsZnVuY3Rpb24oQyl7dmFyIHk9ZVt1XVsxXVtDXTtyZXR1cm4gcyh5fHxDKX0sbSxtLmV4cG9ydHMsdCxlLG4scil9cmV0dXJuIG5bdV0uZXhwb3J0c31mb3IodmFyIGk9dHlwZW9mIFpuPT0iZnVuY3Rpb24iJiZabixvPTA7bzxyLmxlbmd0aDtvKyspcyhyW29dKTtyZXR1cm4gc30oezE6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9dCgiLi91dGlscyIpLHM9dCgiLi9zdXBwb3J0IiksaT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iO24uZW5jb2RlPWZ1bmN0aW9uKG8pe2Zvcih2YXIgdSxwLGIsZyxtLEMseSxUPVtdLFA9MCxjPW8ubGVuZ3RoLGw9YyxoPXIuZ2V0VHlwZU9mKG8pIT09InN0cmluZyI7UDxvLmxlbmd0aDspbD1jLVAsYj1oPyh1PW9bUCsrXSxwPVA8Yz9vW1ArK106MCxQPGM/b1tQKytdOjApOih1PW8uY2hhckNvZGVBdChQKyspLHA9UDxjP28uY2hhckNvZGVBdChQKyspOjAsUDxjP28uY2hhckNvZGVBdChQKyspOjApLGc9dT4+MixtPSgzJnUpPDw0fHA+PjQsQz0xPGw/KDE1JnApPDwyfGI+PjY6NjQseT0yPGw/NjMmYjo2NCxULnB1c2goaS5jaGFyQXQoZykraS5jaGFyQXQobSkraS5jaGFyQXQoQykraS5jaGFyQXQoeSkpO3JldHVybiBULmpvaW4oIiIpfSxuLmRlY29kZT1mdW5jdGlvbihvKXt2YXIgdSxwLGIsZyxtLEMseT0wLFQ9MCxQPSJkYXRhOiI7aWYoby5zdWJzdHIoMCxQLmxlbmd0aCk9PT1QKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBiYXNlNjQgaW5wdXQsIGl0IGxvb2tzIGxpa2UgYSBkYXRhIHVybC4iKTt2YXIgYyxsPTMqKG89by5yZXBsYWNlKC9bXkEtWmEtejAtOSsvPV0vZywiIikpLmxlbmd0aC80O2lmKG8uY2hhckF0KG8ubGVuZ3RoLTEpPT09aS5jaGFyQXQoNjQpJiZsLS0sby5jaGFyQXQoby5sZW5ndGgtMik9PT1pLmNoYXJBdCg2NCkmJmwtLSxsJTEhPTApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGJhc2U2NCBpbnB1dCwgYmFkIGNvbnRlbnQgbGVuZ3RoLiIpO2ZvcihjPXMudWludDhhcnJheT9uZXcgVWludDhBcnJheSgwfGwpOm5ldyBBcnJheSgwfGwpO3k8by5sZW5ndGg7KXU9aS5pbmRleE9mKG8uY2hhckF0KHkrKykpPDwyfChnPWkuaW5kZXhPZihvLmNoYXJBdCh5KyspKSk+PjQscD0oMTUmZyk8PDR8KG09aS5pbmRleE9mKG8uY2hhckF0KHkrKykpKT4+MixiPSgzJm0pPDw2fChDPWkuaW5kZXhPZihvLmNoYXJBdCh5KyspKSksY1tUKytdPXUsbSE9PTY0JiYoY1tUKytdPXApLEMhPT02NCYmKGNbVCsrXT1iKTtyZXR1cm4gY319LHsiLi9zdXBwb3J0IjozMCwiLi91dGlscyI6MzJ9XSwyOltmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPXQoIi4vZXh0ZXJuYWwiKSxzPXQoIi4vc3RyZWFtL0RhdGFXb3JrZXIiKSxpPXQoIi4vc3RyZWFtL0NyYzMyUHJvYmUiKSxvPXQoIi4vc3RyZWFtL0RhdGFMZW5ndGhQcm9iZSIpO2Z1bmN0aW9uIHUocCxiLGcsbSxDKXt0aGlzLmNvbXByZXNzZWRTaXplPXAsdGhpcy51bmNvbXByZXNzZWRTaXplPWIsdGhpcy5jcmMzMj1nLHRoaXMuY29tcHJlc3Npb249bSx0aGlzLmNvbXByZXNzZWRDb250ZW50PUN9dS5wcm90b3R5cGU9e2dldENvbnRlbnRXb3JrZXI6ZnVuY3Rpb24oKXt2YXIgcD1uZXcgcyhyLlByb21pc2UucmVzb2x2ZSh0aGlzLmNvbXByZXNzZWRDb250ZW50KSkucGlwZSh0aGlzLmNvbXByZXNzaW9uLnVuY29tcHJlc3NXb3JrZXIoKSkucGlwZShuZXcgbygiZGF0YV9sZW5ndGgiKSksYj10aGlzO3JldHVybiBwLm9uKCJlbmQiLGZ1bmN0aW9uKCl7aWYodGhpcy5zdHJlYW1JbmZvLmRhdGFfbGVuZ3RoIT09Yi51bmNvbXByZXNzZWRTaXplKXRocm93IG5ldyBFcnJvcigiQnVnIDogdW5jb21wcmVzc2VkIGRhdGEgc2l6ZSBtaXNtYXRjaCIpfSkscH0sZ2V0Q29tcHJlc3NlZFdvcmtlcjpmdW5jdGlvbigpe3JldHVybiBuZXcgcyhyLlByb21pc2UucmVzb2x2ZSh0aGlzLmNvbXByZXNzZWRDb250ZW50KSkud2l0aFN0cmVhbUluZm8oImNvbXByZXNzZWRTaXplIix0aGlzLmNvbXByZXNzZWRTaXplKS53aXRoU3RyZWFtSW5mbygidW5jb21wcmVzc2VkU2l6ZSIsdGhpcy51bmNvbXByZXNzZWRTaXplKS53aXRoU3RyZWFtSW5mbygiY3JjMzIiLHRoaXMuY3JjMzIpLndpdGhTdHJlYW1JbmZvKCJjb21wcmVzc2lvbiIsdGhpcy5jb21wcmVzc2lvbil9fSx1LmNyZWF0ZVdvcmtlckZyb209ZnVuY3Rpb24ocCxiLGcpe3JldHVybiBwLnBpcGUobmV3IGkpLnBpcGUobmV3IG8oInVuY29tcHJlc3NlZFNpemUiKSkucGlwZShiLmNvbXByZXNzV29ya2VyKGcpKS5waXBlKG5ldyBvKCJjb21wcmVzc2VkU2l6ZSIpKS53aXRoU3RyZWFtSW5mbygiY29tcHJlc3Npb24iLGIpfSxlLmV4cG9ydHM9dX0seyIuL2V4dGVybmFsIjo2LCIuL3N0cmVhbS9DcmMzMlByb2JlIjoyNSwiLi9zdHJlYW0vRGF0YUxlbmd0aFByb2JlIjoyNiwiLi9zdHJlYW0vRGF0YVdvcmtlciI6Mjd9XSwzOltmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPXQoIi4vc3RyZWFtL0dlbmVyaWNXb3JrZXIiKTtuLlNUT1JFPXttYWdpYzoiXDBcMCIsY29tcHJlc3NXb3JrZXI6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHIoIlNUT1JFIGNvbXByZXNzaW9uIil9LHVuY29tcHJlc3NXb3JrZXI6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHIoIlNUT1JFIGRlY29tcHJlc3Npb24iKX19LG4uREVGTEFURT10KCIuL2ZsYXRlIil9LHsiLi9mbGF0ZSI6NywiLi9zdHJlYW0vR2VuZXJpY1dvcmtlciI6Mjh9XSw0OltmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPXQoIi4vdXRpbHMiKSxzPWZ1bmN0aW9uKCl7Zm9yKHZhciBpLG89W10sdT0wO3U8MjU2O3UrKyl7aT11O2Zvcih2YXIgcD0wO3A8ODtwKyspaT0xJmk/Mzk4ODI5MjM4NF5pPj4+MTppPj4+MTtvW3VdPWl9cmV0dXJuIG99KCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGksbyl7cmV0dXJuIGkhPT12b2lkIDAmJmkubGVuZ3RoP3IuZ2V0VHlwZU9mKGkpIT09InN0cmluZyI/ZnVuY3Rpb24odSxwLGIsZyl7dmFyIG09cyxDPWcrYjt1Xj0tMTtmb3IodmFyIHk9Zzt5PEM7eSsrKXU9dT4+PjhebVsyNTUmKHVecFt5XSldO3JldHVybi0xXnV9KDB8byxpLGkubGVuZ3RoLDApOmZ1bmN0aW9uKHUscCxiLGcpe3ZhciBtPXMsQz1nK2I7dV49LTE7Zm9yKHZhciB5PWc7eTxDO3krKyl1PXU+Pj44Xm1bMjU1Jih1XnAuY2hhckNvZGVBdCh5KSldO3JldHVybi0xXnV9KDB8byxpLGkubGVuZ3RoLDApOjB9fSx7Ii4vdXRpbHMiOjMyfV0sNTpbZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmJhc2U2ND0hMSxuLmJpbmFyeT0hMSxuLmRpcj0hMSxuLmNyZWF0ZUZvbGRlcnM9ITAsbi5kYXRlPW51bGwsbi5jb21wcmVzc2lvbj1udWxsLG4uY29tcHJlc3Npb25PcHRpb25zPW51bGwsbi5jb21tZW50PW51bGwsbi51bml4UGVybWlzc2lvbnM9bnVsbCxuLmRvc1Blcm1pc3Npb25zPW51bGx9LHt9XSw2OltmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW51bGw7cj10eXBlb2YgUHJvbWlzZTwidSI/UHJvbWlzZTp0KCJsaWUiKSxlLmV4cG9ydHM9e1Byb21pc2U6cn19LHtsaWU6Mzd9XSw3OltmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPXR5cGVvZiBVaW50OEFycmF5PCJ1IiYmdHlwZW9mIFVpbnQxNkFycmF5PCJ1IiYmdHlwZW9mIFVpbnQzMkFycmF5PCJ1IixzPXQoInBha28iKSxpPXQoIi4vdXRpbHMiKSxvPXQoIi4vc3RyZWFtL0dlbmVyaWNXb3JrZXIiKSx1PXI/InVpbnQ4YXJyYXkiOiJhcnJheSI7ZnVuY3Rpb24gcChiLGcpe28uY2FsbCh0aGlzLCJGbGF0ZVdvcmtlci8iK2IpLHRoaXMuX3Bha289bnVsbCx0aGlzLl9wYWtvQWN0aW9uPWIsdGhpcy5fcGFrb09wdGlvbnM9Zyx0aGlzLm1ldGE9e319bi5tYWdpYz0iXGJcMCIsaS5pbmhlcml0cyhwLG8pLHAucHJvdG90eXBlLnByb2Nlc3NDaHVuaz1mdW5jdGlvbihiKXt0aGlzLm1ldGE9Yi5tZXRhLHRoaXMuX3Bha289PT1udWxsJiZ0aGlzLl9jcmVhdGVQYWtvKCksdGhpcy5fcGFrby5wdXNoKGkudHJhbnNmb3JtVG8odSxiLmRhdGEpLCExKX0scC5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtvLnByb3RvdHlwZS5mbHVzaC5jYWxsKHRoaXMpLHRoaXMuX3Bha289PT1udWxsJiZ0aGlzLl9jcmVhdGVQYWtvKCksdGhpcy5fcGFrby5wdXNoKFtdLCEwKX0scC5wcm90b3R5cGUuY2xlYW5VcD1mdW5jdGlvbigpe28ucHJvdG90eXBlLmNsZWFuVXAuY2FsbCh0aGlzKSx0aGlzLl9wYWtvPW51bGx9LHAucHJvdG90eXBlLl9jcmVhdGVQYWtvPWZ1bmN0aW9uKCl7dGhpcy5fcGFrbz1uZXcgc1t0aGlzLl9wYWtvQWN0aW9uXSh7cmF3OiEwLGxldmVsOnRoaXMuX3Bha29PcHRpb25zLmxldmVsfHwtMX0pO3ZhciBiPXRoaXM7dGhpcy5fcGFrby5vbkRhdGE9ZnVuY3Rpb24oZyl7Yi5wdXNoKHtkYXRhOmcsbWV0YTpiLm1ldGF9KX19LG4uY29tcHJlc3NXb3JrZXI9ZnVuY3Rpb24oYil7cmV0dXJuIG5ldyBwKCJEZWZsYXRlIixiKX0sbi51bmNvbXByZXNzV29ya2VyPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBwKCJJbmZsYXRlIix7fSl9fSx7Ii4vc3RyZWFtL0dlbmVyaWNXb3JrZXIiOjI4LCIuL3V0aWxzIjozMixwYWtvOjM4fV0sODpbZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKG0sQyl7dmFyIHksVD0iIjtmb3IoeT0wO3k8Qzt5KyspVCs9U3RyaW5nLmZyb21DaGFyQ29kZSgyNTUmbSksbT4+Pj04O3JldHVybiBUfWZ1bmN0aW9uIHMobSxDLHksVCxQLGMpe3ZhciBsLGgsXz1tLmZpbGUsRj1tLmNvbXByZXNzaW9uLE89YyE9PXUudXRmOGVuY29kZSxmPWkudHJhbnNmb3JtVG8oInN0cmluZyIsYyhfLm5hbWUpKSxVPWkudHJhbnNmb3JtVG8oInN0cmluZyIsdS51dGY4ZW5jb2RlKF8ubmFtZSkpLFg9Xy5jb21tZW50LFE9aS50cmFuc2Zvcm1Ubygic3RyaW5nIixjKFgpKSxFPWkudHJhbnNmb3JtVG8oInN0cmluZyIsdS51dGY4ZW5jb2RlKFgpKSwkPVUubGVuZ3RoIT09Xy5uYW1lLmxlbmd0aCx3PUUubGVuZ3RoIT09WC5sZW5ndGgsaz0iIixTPSIiLEI9IiIsTD1fLmRpcixSPV8uZGF0ZSxxPXtjcmMzMjowLGNvbXByZXNzZWRTaXplOjAsdW5jb21wcmVzc2VkU2l6ZTowfTtDJiYheXx8KHEuY3JjMzI9bS5jcmMzMixxLmNvbXByZXNzZWRTaXplPW0uY29tcHJlc3NlZFNpemUscS51bmNvbXByZXNzZWRTaXplPW0udW5jb21wcmVzc2VkU2l6ZSk7dmFyIHo9MDtDJiYoenw9OCksT3x8ISQmJiF3fHwoenw9MjA0OCk7dmFyIEc9MCxudD0wO0wmJihHfD0xNiksUD09PSJVTklYIj8obnQ9Nzk4LEd8PWZ1bmN0aW9uKGV0LHd0KXt2YXIgU3Q9ZXQ7cmV0dXJuIGV0fHwoU3Q9d3Q/MTY4OTM6MzMyMDQpLCg2NTUzNSZTdCk8PDE2fShfLnVuaXhQZXJtaXNzaW9ucyxMKSk6KG50PTIwLEd8PWZ1bmN0aW9uKGV0KXtyZXR1cm4gNjMmKGV0fHwwKX0oXy5kb3NQZXJtaXNzaW9ucykpLGw9Ui5nZXRVVENIb3VycygpLGw8PD02LGx8PVIuZ2V0VVRDTWludXRlcygpLGw8PD01LGx8PVIuZ2V0VVRDU2Vjb25kcygpLzIsaD1SLmdldFVUQ0Z1bGxZZWFyKCktMTk4MCxoPDw9NCxofD1SLmdldFVUQ01vbnRoKCkrMSxoPDw9NSxofD1SLmdldFVUQ0RhdGUoKSwkJiYoUz1yKDEsMSkrcihwKGYpLDQpK1Usays9InVwIityKFMubGVuZ3RoLDIpK1MpLHcmJihCPXIoMSwxKStyKHAoUSksNCkrRSxrKz0idWMiK3IoQi5sZW5ndGgsMikrQik7dmFyIHR0PSIiO3JldHVybiB0dCs9YApcMGAsdHQrPXIoeiwyKSx0dCs9Ri5tYWdpYyx0dCs9cihsLDIpLHR0Kz1yKGgsMiksdHQrPXIocS5jcmMzMiw0KSx0dCs9cihxLmNvbXByZXNzZWRTaXplLDQpLHR0Kz1yKHEudW5jb21wcmVzc2VkU2l6ZSw0KSx0dCs9cihmLmxlbmd0aCwyKSx0dCs9cihrLmxlbmd0aCwyKSx7ZmlsZVJlY29yZDpiLkxPQ0FMX0ZJTEVfSEVBREVSK3R0K2YrayxkaXJSZWNvcmQ6Yi5DRU5UUkFMX0ZJTEVfSEVBREVSK3IobnQsMikrdHQrcihRLmxlbmd0aCwyKSsiXDBcMFwwXDAiK3IoRyw0KStyKFQsNCkrZitrK1F9fXZhciBpPXQoIi4uL3V0aWxzIiksbz10KCIuLi9zdHJlYW0vR2VuZXJpY1dvcmtlciIpLHU9dCgiLi4vdXRmOCIpLHA9dCgiLi4vY3JjMzIiKSxiPXQoIi4uL3NpZ25hdHVyZSIpO2Z1bmN0aW9uIGcobSxDLHksVCl7by5jYWxsKHRoaXMsIlppcEZpbGVXb3JrZXIiKSx0aGlzLmJ5dGVzV3JpdHRlbj0wLHRoaXMuemlwQ29tbWVudD1DLHRoaXMuemlwUGxhdGZvcm09eSx0aGlzLmVuY29kZUZpbGVOYW1lPVQsdGhpcy5zdHJlYW1GaWxlcz1tLHRoaXMuYWNjdW11bGF0ZT0hMSx0aGlzLmNvbnRlbnRCdWZmZXI9W10sdGhpcy5kaXJSZWNvcmRzPVtdLHRoaXMuY3VycmVudFNvdXJjZU9mZnNldD0wLHRoaXMuZW50cmllc0NvdW50PTAsdGhpcy5jdXJyZW50RmlsZT1udWxsLHRoaXMuX3NvdXJjZXM9W119aS5pbmhlcml0cyhnLG8pLGcucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24obSl7dmFyIEM9bS5tZXRhLnBlcmNlbnR8fDAseT10aGlzLmVudHJpZXNDb3VudCxUPXRoaXMuX3NvdXJjZXMubGVuZ3RoO3RoaXMuYWNjdW11bGF0ZT90aGlzLmNvbnRlbnRCdWZmZXIucHVzaChtKToodGhpcy5ieXRlc1dyaXR0ZW4rPW0uZGF0YS5sZW5ndGgsby5wcm90b3R5cGUucHVzaC5jYWxsKHRoaXMse2RhdGE6bS5kYXRhLG1ldGE6e2N1cnJlbnRGaWxlOnRoaXMuY3VycmVudEZpbGUscGVyY2VudDp5PyhDKzEwMCooeS1ULTEpKS95OjEwMH19KSl9LGcucHJvdG90eXBlLm9wZW5lZFNvdXJjZT1mdW5jdGlvbihtKXt0aGlzLmN1cnJlbnRTb3VyY2VPZmZzZXQ9dGhpcy5ieXRlc1dyaXR0ZW4sdGhpcy5jdXJyZW50RmlsZT1tLmZpbGUubmFtZTt2YXIgQz10aGlzLnN0cmVhbUZpbGVzJiYhbS5maWxlLmRpcjtpZihDKXt2YXIgeT1zKG0sQywhMSx0aGlzLmN1cnJlbnRTb3VyY2VPZmZzZXQsdGhpcy56aXBQbGF0Zm9ybSx0aGlzLmVuY29kZUZpbGVOYW1lKTt0aGlzLnB1c2goe2RhdGE6eS5maWxlUmVjb3JkLG1ldGE6e3BlcmNlbnQ6MH19KX1lbHNlIHRoaXMuYWNjdW11bGF0ZT0hMH0sZy5wcm90b3R5cGUuY2xvc2VkU291cmNlPWZ1bmN0aW9uKG0pe3RoaXMuYWNjdW11bGF0ZT0hMTt2YXIgQz10aGlzLnN0cmVhbUZpbGVzJiYhbS5maWxlLmRpcix5PXMobSxDLCEwLHRoaXMuY3VycmVudFNvdXJjZU9mZnNldCx0aGlzLnppcFBsYXRmb3JtLHRoaXMuZW5jb2RlRmlsZU5hbWUpO2lmKHRoaXMuZGlyUmVjb3Jkcy5wdXNoKHkuZGlyUmVjb3JkKSxDKXRoaXMucHVzaCh7ZGF0YTpmdW5jdGlvbihUKXtyZXR1cm4gYi5EQVRBX0RFU0NSSVBUT1IrcihULmNyYzMyLDQpK3IoVC5jb21wcmVzc2VkU2l6ZSw0KStyKFQudW5jb21wcmVzc2VkU2l6ZSw0KX0obSksbWV0YTp7cGVyY2VudDoxMDB9fSk7ZWxzZSBmb3IodGhpcy5wdXNoKHtkYXRhOnkuZmlsZVJlY29yZCxtZXRhOntwZXJjZW50OjB9fSk7dGhpcy5jb250ZW50QnVmZmVyLmxlbmd0aDspdGhpcy5wdXNoKHRoaXMuY29udGVudEJ1ZmZlci5zaGlmdCgpKTt0aGlzLmN1cnJlbnRGaWxlPW51bGx9LGcucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7Zm9yKHZhciBtPXRoaXMuYnl0ZXNXcml0dGVuLEM9MDtDPHRoaXMuZGlyUmVjb3Jkcy5sZW5ndGg7QysrKXRoaXMucHVzaCh7ZGF0YTp0aGlzLmRpclJlY29yZHNbQ10sbWV0YTp7cGVyY2VudDoxMDB9fSk7dmFyIHk9dGhpcy5ieXRlc1dyaXR0ZW4tbSxUPWZ1bmN0aW9uKFAsYyxsLGgsXyl7dmFyIEY9aS50cmFuc2Zvcm1Ubygic3RyaW5nIixfKGgpKTtyZXR1cm4gYi5DRU5UUkFMX0RJUkVDVE9SWV9FTkQrIlwwXDBcMFwwIityKFAsMikrcihQLDIpK3IoYyw0KStyKGwsNCkrcihGLmxlbmd0aCwyKStGfSh0aGlzLmRpclJlY29yZHMubGVuZ3RoLHksbSx0aGlzLnppcENvbW1lbnQsdGhpcy5lbmNvZGVGaWxlTmFtZSk7dGhpcy5wdXNoKHtkYXRhOlQsbWV0YTp7cGVyY2VudDoxMDB9fSl9LGcucHJvdG90eXBlLnByZXBhcmVOZXh0U291cmNlPWZ1bmN0aW9uKCl7dGhpcy5wcmV2aW91cz10aGlzLl9zb3VyY2VzLnNoaWZ0KCksdGhpcy5vcGVuZWRTb3VyY2UodGhpcy5wcmV2aW91cy5zdHJlYW1JbmZvKSx0aGlzLmlzUGF1c2VkP3RoaXMucHJldmlvdXMucGF1c2UoKTp0aGlzLnByZXZpb3VzLnJlc3VtZSgpfSxnLnByb3RvdHlwZS5yZWdpc3RlclByZXZpb3VzPWZ1bmN0aW9uKG0pe3RoaXMuX3NvdXJjZXMucHVzaChtKTt2YXIgQz10aGlzO3JldHVybiBtLm9uKCJkYXRhIixmdW5jdGlvbih5KXtDLnByb2Nlc3NDaHVuayh5KX0pLG0ub24oImVuZCIsZnVuY3Rpb24oKXtDLmNsb3NlZFNvdXJjZShDLnByZXZpb3VzLnN0cmVhbUluZm8pLEMuX3NvdXJjZXMubGVuZ3RoP0MucHJlcGFyZU5leHRTb3VyY2UoKTpDLmVuZCgpfSksbS5vbigiZXJyb3IiLGZ1bmN0aW9uKHkpe0MuZXJyb3IoeSl9KSx0aGlzfSxnLnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24oKXtyZXR1cm4hIW8ucHJvdG90eXBlLnJlc3VtZS5jYWxsKHRoaXMpJiYoIXRoaXMucHJldmlvdXMmJnRoaXMuX3NvdXJjZXMubGVuZ3RoPyh0aGlzLnByZXBhcmVOZXh0U291cmNlKCksITApOnRoaXMucHJldmlvdXN8fHRoaXMuX3NvdXJjZXMubGVuZ3RofHx0aGlzLmdlbmVyYXRlZEVycm9yP3ZvaWQgMDoodGhpcy5lbmQoKSwhMCkpfSxnLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbihtKXt2YXIgQz10aGlzLl9zb3VyY2VzO2lmKCFvLnByb3RvdHlwZS5lcnJvci5jYWxsKHRoaXMsbSkpcmV0dXJuITE7Zm9yKHZhciB5PTA7eTxDLmxlbmd0aDt5KyspdHJ5e0NbeV0uZXJyb3IobSl9Y2F0Y2h7fXJldHVybiEwfSxnLnByb3RvdHlwZS5sb2NrPWZ1bmN0aW9uKCl7by5wcm90b3R5cGUubG9jay5jYWxsKHRoaXMpO2Zvcih2YXIgbT10aGlzLl9zb3VyY2VzLEM9MDtDPG0ubGVuZ3RoO0MrKyltW0NdLmxvY2soKX0sZS5leHBvcnRzPWd9LHsiLi4vY3JjMzIiOjQsIi4uL3NpZ25hdHVyZSI6MjMsIi4uL3N0cmVhbS9HZW5lcmljV29ya2VyIjoyOCwiLi4vdXRmOCI6MzEsIi4uL3V0aWxzIjozMn1dLDk6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9dCgiLi4vY29tcHJlc3Npb25zIikscz10KCIuL1ppcEZpbGVXb3JrZXIiKTtuLmdlbmVyYXRlV29ya2VyPWZ1bmN0aW9uKGksbyx1KXt2YXIgcD1uZXcgcyhvLnN0cmVhbUZpbGVzLHUsby5wbGF0Zm9ybSxvLmVuY29kZUZpbGVOYW1lKSxiPTA7dHJ5e2kuZm9yRWFjaChmdW5jdGlvbihnLG0pe2IrKzt2YXIgQz1mdW5jdGlvbihjLGwpe3ZhciBoPWN8fGwsXz1yW2hdO2lmKCFfKXRocm93IG5ldyBFcnJvcihoKyIgaXMgbm90IGEgdmFsaWQgY29tcHJlc3Npb24gbWV0aG9kICEiKTtyZXR1cm4gX30obS5vcHRpb25zLmNvbXByZXNzaW9uLG8uY29tcHJlc3Npb24pLHk9bS5vcHRpb25zLmNvbXByZXNzaW9uT3B0aW9uc3x8by5jb21wcmVzc2lvbk9wdGlvbnN8fHt9LFQ9bS5kaXIsUD1tLmRhdGU7bS5fY29tcHJlc3NXb3JrZXIoQyx5KS53aXRoU3RyZWFtSW5mbygiZmlsZSIse25hbWU6ZyxkaXI6VCxkYXRlOlAsY29tbWVudDptLmNvbW1lbnR8fCIiLHVuaXhQZXJtaXNzaW9uczptLnVuaXhQZXJtaXNzaW9ucyxkb3NQZXJtaXNzaW9uczptLmRvc1Blcm1pc3Npb25zfSkucGlwZShwKX0pLHAuZW50cmllc0NvdW50PWJ9Y2F0Y2goZyl7cC5lcnJvcihnKX1yZXR1cm4gcH19LHsiLi4vY29tcHJlc3Npb25zIjozLCIuL1ppcEZpbGVXb3JrZXIiOjh9XSwxMDpbZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgcikpcmV0dXJuIG5ldyByO2lmKGFyZ3VtZW50cy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJUaGUgY29uc3RydWN0b3Igd2l0aCBwYXJhbWV0ZXJzIGhhcyBiZWVuIHJlbW92ZWQgaW4gSlNaaXAgMy4wLCBwbGVhc2UgY2hlY2sgdGhlIHVwZ3JhZGUgZ3VpZGUuIik7dGhpcy5maWxlcz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuY29tbWVudD1udWxsLHRoaXMucm9vdD0iIix0aGlzLmNsb25lPWZ1bmN0aW9uKCl7dmFyIHM9bmV3IHI7Zm9yKHZhciBpIGluIHRoaXMpdHlwZW9mIHRoaXNbaV0hPSJmdW5jdGlvbiImJihzW2ldPXRoaXNbaV0pO3JldHVybiBzfX0oci5wcm90b3R5cGU9dCgiLi9vYmplY3QiKSkubG9hZEFzeW5jPXQoIi4vbG9hZCIpLHIuc3VwcG9ydD10KCIuL3N1cHBvcnQiKSxyLmRlZmF1bHRzPXQoIi4vZGVmYXVsdHMiKSxyLnZlcnNpb249IjMuMTAuMSIsci5sb2FkQXN5bmM9ZnVuY3Rpb24ocyxpKXtyZXR1cm4gbmV3IHIoKS5sb2FkQXN5bmMocyxpKX0sci5leHRlcm5hbD10KCIuL2V4dGVybmFsIiksZS5leHBvcnRzPXJ9LHsiLi9kZWZhdWx0cyI6NSwiLi9leHRlcm5hbCI6NiwiLi9sb2FkIjoxMSwiLi9vYmplY3QiOjE1LCIuL3N1cHBvcnQiOjMwfV0sMTE6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9dCgiLi91dGlscyIpLHM9dCgiLi9leHRlcm5hbCIpLGk9dCgiLi91dGY4Iiksbz10KCIuL3ppcEVudHJpZXMiKSx1PXQoIi4vc3RyZWFtL0NyYzMyUHJvYmUiKSxwPXQoIi4vbm9kZWpzVXRpbHMiKTtmdW5jdGlvbiBiKGcpe3JldHVybiBuZXcgcy5Qcm9taXNlKGZ1bmN0aW9uKG0sQyl7dmFyIHk9Zy5kZWNvbXByZXNzZWQuZ2V0Q29udGVudFdvcmtlcigpLnBpcGUobmV3IHUpO3kub24oImVycm9yIixmdW5jdGlvbihUKXtDKFQpfSkub24oImVuZCIsZnVuY3Rpb24oKXt5LnN0cmVhbUluZm8uY3JjMzIhPT1nLmRlY29tcHJlc3NlZC5jcmMzMj9DKG5ldyBFcnJvcigiQ29ycnVwdGVkIHppcCA6IENSQzMyIG1pc21hdGNoIikpOm0oKX0pLnJlc3VtZSgpfSl9ZS5leHBvcnRzPWZ1bmN0aW9uKGcsbSl7dmFyIEM9dGhpcztyZXR1cm4gbT1yLmV4dGVuZChtfHx7fSx7YmFzZTY0OiExLGNoZWNrQ1JDMzI6ITEsb3B0aW1pemVkQmluYXJ5U3RyaW5nOiExLGNyZWF0ZUZvbGRlcnM6ITEsZGVjb2RlRmlsZU5hbWU6aS51dGY4ZGVjb2RlfSkscC5pc05vZGUmJnAuaXNTdHJlYW0oZyk/cy5Qcm9taXNlLnJlamVjdChuZXcgRXJyb3IoIkpTWmlwIGNhbid0IGFjY2VwdCBhIHN0cmVhbSB3aGVuIGxvYWRpbmcgYSB6aXAgZmlsZS4iKSk6ci5wcmVwYXJlQ29udGVudCgidGhlIGxvYWRlZCB6aXAgZmlsZSIsZywhMCxtLm9wdGltaXplZEJpbmFyeVN0cmluZyxtLmJhc2U2NCkudGhlbihmdW5jdGlvbih5KXt2YXIgVD1uZXcgbyhtKTtyZXR1cm4gVC5sb2FkKHkpLFR9KS50aGVuKGZ1bmN0aW9uKHkpe3ZhciBUPVtzLlByb21pc2UucmVzb2x2ZSh5KV0sUD15LmZpbGVzO2lmKG0uY2hlY2tDUkMzMilmb3IodmFyIGM9MDtjPFAubGVuZ3RoO2MrKylULnB1c2goYihQW2NdKSk7cmV0dXJuIHMuUHJvbWlzZS5hbGwoVCl9KS50aGVuKGZ1bmN0aW9uKHkpe2Zvcih2YXIgVD15LnNoaWZ0KCksUD1ULmZpbGVzLGM9MDtjPFAubGVuZ3RoO2MrKyl7dmFyIGw9UFtjXSxoPWwuZmlsZU5hbWVTdHIsXz1yLnJlc29sdmUobC5maWxlTmFtZVN0cik7Qy5maWxlKF8sbC5kZWNvbXByZXNzZWQse2JpbmFyeTohMCxvcHRpbWl6ZWRCaW5hcnlTdHJpbmc6ITAsZGF0ZTpsLmRhdGUsZGlyOmwuZGlyLGNvbW1lbnQ6bC5maWxlQ29tbWVudFN0ci5sZW5ndGg/bC5maWxlQ29tbWVudFN0cjpudWxsLHVuaXhQZXJtaXNzaW9uczpsLnVuaXhQZXJtaXNzaW9ucyxkb3NQZXJtaXNzaW9uczpsLmRvc1Blcm1pc3Npb25zLGNyZWF0ZUZvbGRlcnM6bS5jcmVhdGVGb2xkZXJzfSksbC5kaXJ8fChDLmZpbGUoXykudW5zYWZlT3JpZ2luYWxOYW1lPWgpfXJldHVybiBULnppcENvbW1lbnQubGVuZ3RoJiYoQy5jb21tZW50PVQuemlwQ29tbWVudCksQ30pfX0seyIuL2V4dGVybmFsIjo2LCIuL25vZGVqc1V0aWxzIjoxNCwiLi9zdHJlYW0vQ3JjMzJQcm9iZSI6MjUsIi4vdXRmOCI6MzEsIi4vdXRpbHMiOjMyLCIuL3ppcEVudHJpZXMiOjMzfV0sMTI6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9dCgiLi4vdXRpbHMiKSxzPXQoIi4uL3N0cmVhbS9HZW5lcmljV29ya2VyIik7ZnVuY3Rpb24gaShvLHUpe3MuY2FsbCh0aGlzLCJOb2RlanMgc3RyZWFtIGlucHV0IGFkYXB0ZXIgZm9yICIrbyksdGhpcy5fdXBzdHJlYW1FbmRlZD0hMSx0aGlzLl9iaW5kU3RyZWFtKHUpfXIuaW5oZXJpdHMoaSxzKSxpLnByb3RvdHlwZS5fYmluZFN0cmVhbT1mdW5jdGlvbihvKXt2YXIgdT10aGlzOyh0aGlzLl9zdHJlYW09bykucGF1c2UoKSxvLm9uKCJkYXRhIixmdW5jdGlvbihwKXt1LnB1c2goe2RhdGE6cCxtZXRhOntwZXJjZW50OjB9fSl9KS5vbigiZXJyb3IiLGZ1bmN0aW9uKHApe3UuaXNQYXVzZWQ/dGhpcy5nZW5lcmF0ZWRFcnJvcj1wOnUuZXJyb3IocCl9KS5vbigiZW5kIixmdW5jdGlvbigpe3UuaXNQYXVzZWQ/dS5fdXBzdHJlYW1FbmRlZD0hMDp1LmVuZCgpfSl9LGkucHJvdG90eXBlLnBhdXNlPWZ1bmN0aW9uKCl7cmV0dXJuISFzLnByb3RvdHlwZS5wYXVzZS5jYWxsKHRoaXMpJiYodGhpcy5fc3RyZWFtLnBhdXNlKCksITApfSxpLnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24oKXtyZXR1cm4hIXMucHJvdG90eXBlLnJlc3VtZS5jYWxsKHRoaXMpJiYodGhpcy5fdXBzdHJlYW1FbmRlZD90aGlzLmVuZCgpOnRoaXMuX3N0cmVhbS5yZXN1bWUoKSwhMCl9LGUuZXhwb3J0cz1pfSx7Ii4uL3N0cmVhbS9HZW5lcmljV29ya2VyIjoyOCwiLi4vdXRpbHMiOjMyfV0sMTM6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9dCgicmVhZGFibGUtc3RyZWFtIikuUmVhZGFibGU7ZnVuY3Rpb24gcyhpLG8sdSl7ci5jYWxsKHRoaXMsbyksdGhpcy5faGVscGVyPWk7dmFyIHA9dGhpcztpLm9uKCJkYXRhIixmdW5jdGlvbihiLGcpe3AucHVzaChiKXx8cC5faGVscGVyLnBhdXNlKCksdSYmdShnKX0pLm9uKCJlcnJvciIsZnVuY3Rpb24oYil7cC5lbWl0KCJlcnJvciIsYil9KS5vbigiZW5kIixmdW5jdGlvbigpe3AucHVzaChudWxsKX0pfXQoIi4uL3V0aWxzIikuaW5oZXJpdHMocyxyKSxzLnByb3RvdHlwZS5fcmVhZD1mdW5jdGlvbigpe3RoaXMuX2hlbHBlci5yZXN1bWUoKX0sZS5leHBvcnRzPXN9LHsiLi4vdXRpbHMiOjMyLCJyZWFkYWJsZS1zdHJlYW0iOjE2fV0sMTQ6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtpc05vZGU6dHlwZW9mIEJ1ZmZlcjwidSIsbmV3QnVmZmVyRnJvbTpmdW5jdGlvbihyLHMpe2lmKEJ1ZmZlci5mcm9tJiZCdWZmZXIuZnJvbSE9PVVpbnQ4QXJyYXkuZnJvbSlyZXR1cm4gQnVmZmVyLmZyb20ocixzKTtpZih0eXBlb2Ygcj09Im51bWJlciIpdGhyb3cgbmV3IEVycm9yKCdUaGUgImRhdGEiIGFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyJyk7cmV0dXJuIG5ldyBCdWZmZXIocixzKX0sYWxsb2NCdWZmZXI6ZnVuY3Rpb24ocil7aWYoQnVmZmVyLmFsbG9jKXJldHVybiBCdWZmZXIuYWxsb2Mocik7dmFyIHM9bmV3IEJ1ZmZlcihyKTtyZXR1cm4gcy5maWxsKDApLHN9LGlzQnVmZmVyOmZ1bmN0aW9uKHIpe3JldHVybiBCdWZmZXIuaXNCdWZmZXIocil9LGlzU3RyZWFtOmZ1bmN0aW9uKHIpe3JldHVybiByJiZ0eXBlb2Ygci5vbj09ImZ1bmN0aW9uIiYmdHlwZW9mIHIucGF1c2U9PSJmdW5jdGlvbiImJnR5cGVvZiByLnJlc3VtZT09ImZ1bmN0aW9uIn19fSx7fV0sMTU6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihfLEYsTyl7dmFyIGYsVT1pLmdldFR5cGVPZihGKSxYPWkuZXh0ZW5kKE98fHt9LHApO1guZGF0ZT1YLmRhdGV8fG5ldyBEYXRlLFguY29tcHJlc3Npb24hPT1udWxsJiYoWC5jb21wcmVzc2lvbj1YLmNvbXByZXNzaW9uLnRvVXBwZXJDYXNlKCkpLHR5cGVvZiBYLnVuaXhQZXJtaXNzaW9ucz09InN0cmluZyImJihYLnVuaXhQZXJtaXNzaW9ucz1wYXJzZUludChYLnVuaXhQZXJtaXNzaW9ucyw4KSksWC51bml4UGVybWlzc2lvbnMmJjE2Mzg0JlgudW5peFBlcm1pc3Npb25zJiYoWC5kaXI9ITApLFguZG9zUGVybWlzc2lvbnMmJjE2JlguZG9zUGVybWlzc2lvbnMmJihYLmRpcj0hMCksWC5kaXImJihfPVAoXykpLFguY3JlYXRlRm9sZGVycyYmKGY9VChfKSkmJmMuY2FsbCh0aGlzLGYsITApO3ZhciBRPVU9PT0ic3RyaW5nIiYmWC5iaW5hcnk9PT0hMSYmWC5iYXNlNjQ9PT0hMTtPJiZPLmJpbmFyeSE9PXZvaWQgMHx8KFguYmluYXJ5PSFRKSwoRiBpbnN0YW5jZW9mIGImJkYudW5jb21wcmVzc2VkU2l6ZT09PTB8fFguZGlyfHwhRnx8Ri5sZW5ndGg9PT0wKSYmKFguYmFzZTY0PSExLFguYmluYXJ5PSEwLEY9IiIsWC5jb21wcmVzc2lvbj0iU1RPUkUiLFU9InN0cmluZyIpO3ZhciBFPW51bGw7RT1GIGluc3RhbmNlb2YgYnx8RiBpbnN0YW5jZW9mIG8/RjpDLmlzTm9kZSYmQy5pc1N0cmVhbShGKT9uZXcgeShfLEYpOmkucHJlcGFyZUNvbnRlbnQoXyxGLFguYmluYXJ5LFgub3B0aW1pemVkQmluYXJ5U3RyaW5nLFguYmFzZTY0KTt2YXIgJD1uZXcgZyhfLEUsWCk7dGhpcy5maWxlc1tfXT0kfXZhciBzPXQoIi4vdXRmOCIpLGk9dCgiLi91dGlscyIpLG89dCgiLi9zdHJlYW0vR2VuZXJpY1dvcmtlciIpLHU9dCgiLi9zdHJlYW0vU3RyZWFtSGVscGVyIikscD10KCIuL2RlZmF1bHRzIiksYj10KCIuL2NvbXByZXNzZWRPYmplY3QiKSxnPXQoIi4vemlwT2JqZWN0IiksbT10KCIuL2dlbmVyYXRlIiksQz10KCIuL25vZGVqc1V0aWxzIikseT10KCIuL25vZGVqcy9Ob2RlanNTdHJlYW1JbnB1dEFkYXB0ZXIiKSxUPWZ1bmN0aW9uKF8pe18uc2xpY2UoLTEpPT09Ii8iJiYoXz1fLnN1YnN0cmluZygwLF8ubGVuZ3RoLTEpKTt2YXIgRj1fLmxhc3RJbmRleE9mKCIvIik7cmV0dXJuIDA8Rj9fLnN1YnN0cmluZygwLEYpOiIifSxQPWZ1bmN0aW9uKF8pe3JldHVybiBfLnNsaWNlKC0xKSE9PSIvIiYmKF8rPSIvIiksX30sYz1mdW5jdGlvbihfLEYpe3JldHVybiBGPUYhPT12b2lkIDA/RjpwLmNyZWF0ZUZvbGRlcnMsXz1QKF8pLHRoaXMuZmlsZXNbX118fHIuY2FsbCh0aGlzLF8sbnVsbCx7ZGlyOiEwLGNyZWF0ZUZvbGRlcnM6Rn0pLHRoaXMuZmlsZXNbX119O2Z1bmN0aW9uIGwoXyl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChfKT09PSJbb2JqZWN0IFJlZ0V4cF0ifXZhciBoPXtsb2FkOmZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJUaGlzIG1ldGhvZCBoYXMgYmVlbiByZW1vdmVkIGluIEpTWmlwIDMuMCwgcGxlYXNlIGNoZWNrIHRoZSB1cGdyYWRlIGd1aWRlLiIpfSxmb3JFYWNoOmZ1bmN0aW9uKF8pe3ZhciBGLE8sZjtmb3IoRiBpbiB0aGlzLmZpbGVzKWY9dGhpcy5maWxlc1tGXSwoTz1GLnNsaWNlKHRoaXMucm9vdC5sZW5ndGgsRi5sZW5ndGgpKSYmRi5zbGljZSgwLHRoaXMucm9vdC5sZW5ndGgpPT09dGhpcy5yb290JiZfKE8sZil9LGZpbHRlcjpmdW5jdGlvbihfKXt2YXIgRj1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKE8sZil7XyhPLGYpJiZGLnB1c2goZil9KSxGfSxmaWxlOmZ1bmN0aW9uKF8sRixPKXtpZihhcmd1bWVudHMubGVuZ3RoIT09MSlyZXR1cm4gXz10aGlzLnJvb3QrXyxyLmNhbGwodGhpcyxfLEYsTyksdGhpcztpZihsKF8pKXt2YXIgZj1fO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbihYLFEpe3JldHVybiFRLmRpciYmZi50ZXN0KFgpfSl9dmFyIFU9dGhpcy5maWxlc1t0aGlzLnJvb3QrX107cmV0dXJuIFUmJiFVLmRpcj9VOm51bGx9LGZvbGRlcjpmdW5jdGlvbihfKXtpZighXylyZXR1cm4gdGhpcztpZihsKF8pKXJldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbihVLFgpe3JldHVybiBYLmRpciYmXy50ZXN0KFUpfSk7dmFyIEY9dGhpcy5yb290K18sTz1jLmNhbGwodGhpcyxGKSxmPXRoaXMuY2xvbmUoKTtyZXR1cm4gZi5yb290PU8ubmFtZSxmfSxyZW1vdmU6ZnVuY3Rpb24oXyl7Xz10aGlzLnJvb3QrXzt2YXIgRj10aGlzLmZpbGVzW19dO2lmKEZ8fChfLnNsaWNlKC0xKSE9PSIvIiYmKF8rPSIvIiksRj10aGlzLmZpbGVzW19dKSxGJiYhRi5kaXIpZGVsZXRlIHRoaXMuZmlsZXNbX107ZWxzZSBmb3IodmFyIE89dGhpcy5maWx0ZXIoZnVuY3Rpb24oVSxYKXtyZXR1cm4gWC5uYW1lLnNsaWNlKDAsXy5sZW5ndGgpPT09X30pLGY9MDtmPE8ubGVuZ3RoO2YrKylkZWxldGUgdGhpcy5maWxlc1tPW2ZdLm5hbWVdO3JldHVybiB0aGlzfSxnZW5lcmF0ZTpmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiVGhpcyBtZXRob2QgaGFzIGJlZW4gcmVtb3ZlZCBpbiBKU1ppcCAzLjAsIHBsZWFzZSBjaGVjayB0aGUgdXBncmFkZSBndWlkZS4iKX0sZ2VuZXJhdGVJbnRlcm5hbFN0cmVhbTpmdW5jdGlvbihfKXt2YXIgRixPPXt9O3RyeXtpZigoTz1pLmV4dGVuZChffHx7fSx7c3RyZWFtRmlsZXM6ITEsY29tcHJlc3Npb246IlNUT1JFIixjb21wcmVzc2lvbk9wdGlvbnM6bnVsbCx0eXBlOiIiLHBsYXRmb3JtOiJET1MiLGNvbW1lbnQ6bnVsbCxtaW1lVHlwZToiYXBwbGljYXRpb24vemlwIixlbmNvZGVGaWxlTmFtZTpzLnV0ZjhlbmNvZGV9KSkudHlwZT1PLnR5cGUudG9Mb3dlckNhc2UoKSxPLmNvbXByZXNzaW9uPU8uY29tcHJlc3Npb24udG9VcHBlckNhc2UoKSxPLnR5cGU9PT0iYmluYXJ5c3RyaW5nIiYmKE8udHlwZT0ic3RyaW5nIiksIU8udHlwZSl0aHJvdyBuZXcgRXJyb3IoIk5vIG91dHB1dCB0eXBlIHNwZWNpZmllZC4iKTtpLmNoZWNrU3VwcG9ydChPLnR5cGUpLE8ucGxhdGZvcm0hPT0iZGFyd2luIiYmTy5wbGF0Zm9ybSE9PSJmcmVlYnNkIiYmTy5wbGF0Zm9ybSE9PSJsaW51eCImJk8ucGxhdGZvcm0hPT0ic3Vub3MifHwoTy5wbGF0Zm9ybT0iVU5JWCIpLE8ucGxhdGZvcm09PT0id2luMzIiJiYoTy5wbGF0Zm9ybT0iRE9TIik7dmFyIGY9Ty5jb21tZW50fHx0aGlzLmNvbW1lbnR8fCIiO0Y9bS5nZW5lcmF0ZVdvcmtlcih0aGlzLE8sZil9Y2F0Y2goVSl7KEY9bmV3IG8oImVycm9yIikpLmVycm9yKFUpfXJldHVybiBuZXcgdShGLE8udHlwZXx8InN0cmluZyIsTy5taW1lVHlwZSl9LGdlbmVyYXRlQXN5bmM6ZnVuY3Rpb24oXyxGKXtyZXR1cm4gdGhpcy5nZW5lcmF0ZUludGVybmFsU3RyZWFtKF8pLmFjY3VtdWxhdGUoRil9LGdlbmVyYXRlTm9kZVN0cmVhbTpmdW5jdGlvbihfLEYpe3JldHVybihfPV98fHt9KS50eXBlfHwoXy50eXBlPSJub2RlYnVmZmVyIiksdGhpcy5nZW5lcmF0ZUludGVybmFsU3RyZWFtKF8pLnRvTm9kZWpzU3RyZWFtKEYpfX07ZS5leHBvcnRzPWh9LHsiLi9jb21wcmVzc2VkT2JqZWN0IjoyLCIuL2RlZmF1bHRzIjo1LCIuL2dlbmVyYXRlIjo5LCIuL25vZGVqcy9Ob2RlanNTdHJlYW1JbnB1dEFkYXB0ZXIiOjEyLCIuL25vZGVqc1V0aWxzIjoxNCwiLi9zdHJlYW0vR2VuZXJpY1dvcmtlciI6MjgsIi4vc3RyZWFtL1N0cmVhbUhlbHBlciI6MjksIi4vdXRmOCI6MzEsIi4vdXRpbHMiOjMyLCIuL3ppcE9iamVjdCI6MzV9XSwxNjpbZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgic3RyZWFtIil9LHtzdHJlYW06dm9pZCAwfV0sMTc6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9dCgiLi9EYXRhUmVhZGVyIik7ZnVuY3Rpb24gcyhpKXtyLmNhbGwodGhpcyxpKTtmb3IodmFyIG89MDtvPHRoaXMuZGF0YS5sZW5ndGg7bysrKWlbb109MjU1Jmlbb119dCgiLi4vdXRpbHMiKS5pbmhlcml0cyhzLHIpLHMucHJvdG90eXBlLmJ5dGVBdD1mdW5jdGlvbihpKXtyZXR1cm4gdGhpcy5kYXRhW3RoaXMuemVybytpXX0scy5wcm90b3R5cGUubGFzdEluZGV4T2ZTaWduYXR1cmU9ZnVuY3Rpb24oaSl7Zm9yKHZhciBvPWkuY2hhckNvZGVBdCgwKSx1PWkuY2hhckNvZGVBdCgxKSxwPWkuY2hhckNvZGVBdCgyKSxiPWkuY2hhckNvZGVBdCgzKSxnPXRoaXMubGVuZ3RoLTQ7MDw9ZzstLWcpaWYodGhpcy5kYXRhW2ddPT09byYmdGhpcy5kYXRhW2crMV09PT11JiZ0aGlzLmRhdGFbZysyXT09PXAmJnRoaXMuZGF0YVtnKzNdPT09YilyZXR1cm4gZy10aGlzLnplcm87cmV0dXJuLTF9LHMucHJvdG90eXBlLnJlYWRBbmRDaGVja1NpZ25hdHVyZT1mdW5jdGlvbihpKXt2YXIgbz1pLmNoYXJDb2RlQXQoMCksdT1pLmNoYXJDb2RlQXQoMSkscD1pLmNoYXJDb2RlQXQoMiksYj1pLmNoYXJDb2RlQXQoMyksZz10aGlzLnJlYWREYXRhKDQpO3JldHVybiBvPT09Z1swXSYmdT09PWdbMV0mJnA9PT1nWzJdJiZiPT09Z1szXX0scy5wcm90b3R5cGUucmVhZERhdGE9ZnVuY3Rpb24oaSl7aWYodGhpcy5jaGVja09mZnNldChpKSxpPT09MClyZXR1cm5bXTt2YXIgbz10aGlzLmRhdGEuc2xpY2UodGhpcy56ZXJvK3RoaXMuaW5kZXgsdGhpcy56ZXJvK3RoaXMuaW5kZXgraSk7cmV0dXJuIHRoaXMuaW5kZXgrPWksb30sZS5leHBvcnRzPXN9LHsiLi4vdXRpbHMiOjMyLCIuL0RhdGFSZWFkZXIiOjE4fV0sMTg6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9dCgiLi4vdXRpbHMiKTtmdW5jdGlvbiBzKGkpe3RoaXMuZGF0YT1pLHRoaXMubGVuZ3RoPWkubGVuZ3RoLHRoaXMuaW5kZXg9MCx0aGlzLnplcm89MH1zLnByb3RvdHlwZT17Y2hlY2tPZmZzZXQ6ZnVuY3Rpb24oaSl7dGhpcy5jaGVja0luZGV4KHRoaXMuaW5kZXgraSl9LGNoZWNrSW5kZXg6ZnVuY3Rpb24oaSl7aWYodGhpcy5sZW5ndGg8dGhpcy56ZXJvK2l8fGk8MCl0aHJvdyBuZXcgRXJyb3IoIkVuZCBvZiBkYXRhIHJlYWNoZWQgKGRhdGEgbGVuZ3RoID0gIit0aGlzLmxlbmd0aCsiLCBhc2tlZCBpbmRleCA9ICIraSsiKS4gQ29ycnVwdGVkIHppcCA/Iil9LHNldEluZGV4OmZ1bmN0aW9uKGkpe3RoaXMuY2hlY2tJbmRleChpKSx0aGlzLmluZGV4PWl9LHNraXA6ZnVuY3Rpb24oaSl7dGhpcy5zZXRJbmRleCh0aGlzLmluZGV4K2kpfSxieXRlQXQ6ZnVuY3Rpb24oKXt9LHJlYWRJbnQ6ZnVuY3Rpb24oaSl7dmFyIG8sdT0wO2Zvcih0aGlzLmNoZWNrT2Zmc2V0KGkpLG89dGhpcy5pbmRleCtpLTE7bz49dGhpcy5pbmRleDtvLS0pdT0odTw8OCkrdGhpcy5ieXRlQXQobyk7cmV0dXJuIHRoaXMuaW5kZXgrPWksdX0scmVhZFN0cmluZzpmdW5jdGlvbihpKXtyZXR1cm4gci50cmFuc2Zvcm1Ubygic3RyaW5nIix0aGlzLnJlYWREYXRhKGkpKX0scmVhZERhdGE6ZnVuY3Rpb24oKXt9LGxhc3RJbmRleE9mU2lnbmF0dXJlOmZ1bmN0aW9uKCl7fSxyZWFkQW5kQ2hlY2tTaWduYXR1cmU6ZnVuY3Rpb24oKXt9LHJlYWREYXRlOmZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5yZWFkSW50KDQpO3JldHVybiBuZXcgRGF0ZShEYXRlLlVUQygxOTgwKyhpPj4yNSYxMjcpLChpPj4yMSYxNSktMSxpPj4xNiYzMSxpPj4xMSYzMSxpPj41JjYzLCgzMSZpKTw8MSkpfX0sZS5leHBvcnRzPXN9LHsiLi4vdXRpbHMiOjMyfV0sMTk6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9dCgiLi9VaW50OEFycmF5UmVhZGVyIik7ZnVuY3Rpb24gcyhpKXtyLmNhbGwodGhpcyxpKX10KCIuLi91dGlscyIpLmluaGVyaXRzKHMscikscy5wcm90b3R5cGUucmVhZERhdGE9ZnVuY3Rpb24oaSl7dGhpcy5jaGVja09mZnNldChpKTt2YXIgbz10aGlzLmRhdGEuc2xpY2UodGhpcy56ZXJvK3RoaXMuaW5kZXgsdGhpcy56ZXJvK3RoaXMuaW5kZXgraSk7cmV0dXJuIHRoaXMuaW5kZXgrPWksb30sZS5leHBvcnRzPXN9LHsiLi4vdXRpbHMiOjMyLCIuL1VpbnQ4QXJyYXlSZWFkZXIiOjIxfV0sMjA6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9dCgiLi9EYXRhUmVhZGVyIik7ZnVuY3Rpb24gcyhpKXtyLmNhbGwodGhpcyxpKX10KCIuLi91dGlscyIpLmluaGVyaXRzKHMscikscy5wcm90b3R5cGUuYnl0ZUF0PWZ1bmN0aW9uKGkpe3JldHVybiB0aGlzLmRhdGEuY2hhckNvZGVBdCh0aGlzLnplcm8raSl9LHMucHJvdG90eXBlLmxhc3RJbmRleE9mU2lnbmF0dXJlPWZ1bmN0aW9uKGkpe3JldHVybiB0aGlzLmRhdGEubGFzdEluZGV4T2YoaSktdGhpcy56ZXJvfSxzLnByb3RvdHlwZS5yZWFkQW5kQ2hlY2tTaWduYXR1cmU9ZnVuY3Rpb24oaSl7cmV0dXJuIGk9PT10aGlzLnJlYWREYXRhKDQpfSxzLnByb3RvdHlwZS5yZWFkRGF0YT1mdW5jdGlvbihpKXt0aGlzLmNoZWNrT2Zmc2V0KGkpO3ZhciBvPXRoaXMuZGF0YS5zbGljZSh0aGlzLnplcm8rdGhpcy5pbmRleCx0aGlzLnplcm8rdGhpcy5pbmRleCtpKTtyZXR1cm4gdGhpcy5pbmRleCs9aSxvfSxlLmV4cG9ydHM9c30seyIuLi91dGlscyI6MzIsIi4vRGF0YVJlYWRlciI6MTh9XSwyMTpbZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj10KCIuL0FycmF5UmVhZGVyIik7ZnVuY3Rpb24gcyhpKXtyLmNhbGwodGhpcyxpKX10KCIuLi91dGlscyIpLmluaGVyaXRzKHMscikscy5wcm90b3R5cGUucmVhZERhdGE9ZnVuY3Rpb24oaSl7aWYodGhpcy5jaGVja09mZnNldChpKSxpPT09MClyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMCk7dmFyIG89dGhpcy5kYXRhLnN1YmFycmF5KHRoaXMuemVybyt0aGlzLmluZGV4LHRoaXMuemVybyt0aGlzLmluZGV4K2kpO3JldHVybiB0aGlzLmluZGV4Kz1pLG99LGUuZXhwb3J0cz1zfSx7Ii4uL3V0aWxzIjozMiwiLi9BcnJheVJlYWRlciI6MTd9XSwyMjpbZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj10KCIuLi91dGlscyIpLHM9dCgiLi4vc3VwcG9ydCIpLGk9dCgiLi9BcnJheVJlYWRlciIpLG89dCgiLi9TdHJpbmdSZWFkZXIiKSx1PXQoIi4vTm9kZUJ1ZmZlclJlYWRlciIpLHA9dCgiLi9VaW50OEFycmF5UmVhZGVyIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGIpe3ZhciBnPXIuZ2V0VHlwZU9mKGIpO3JldHVybiByLmNoZWNrU3VwcG9ydChnKSxnIT09InN0cmluZyJ8fHMudWludDhhcnJheT9nPT09Im5vZGVidWZmZXIiP25ldyB1KGIpOnMudWludDhhcnJheT9uZXcgcChyLnRyYW5zZm9ybVRvKCJ1aW50OGFycmF5IixiKSk6bmV3IGkoci50cmFuc2Zvcm1UbygiYXJyYXkiLGIpKTpuZXcgbyhiKX19LHsiLi4vc3VwcG9ydCI6MzAsIi4uL3V0aWxzIjozMiwiLi9BcnJheVJlYWRlciI6MTcsIi4vTm9kZUJ1ZmZlclJlYWRlciI6MTksIi4vU3RyaW5nUmVhZGVyIjoyMCwiLi9VaW50OEFycmF5UmVhZGVyIjoyMX1dLDIzOltmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uTE9DQUxfRklMRV9IRUFERVI9IlBLAwQiLG4uQ0VOVFJBTF9GSUxFX0hFQURFUj0iUEsBAiIsbi5DRU5UUkFMX0RJUkVDVE9SWV9FTkQ9IlBLBQYiLG4uWklQNjRfQ0VOVFJBTF9ESVJFQ1RPUllfTE9DQVRPUj0iUEsGXHgwNyIsbi5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9FTkQ9IlBLBgYiLG4uREFUQV9ERVNDUklQVE9SPSJQS1x4MDdcYiJ9LHt9XSwyNDpbZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj10KCIuL0dlbmVyaWNXb3JrZXIiKSxzPXQoIi4uL3V0aWxzIik7ZnVuY3Rpb24gaShvKXtyLmNhbGwodGhpcywiQ29udmVydFdvcmtlciB0byAiK28pLHRoaXMuZGVzdFR5cGU9b31zLmluaGVyaXRzKGksciksaS5wcm90b3R5cGUucHJvY2Vzc0NodW5rPWZ1bmN0aW9uKG8pe3RoaXMucHVzaCh7ZGF0YTpzLnRyYW5zZm9ybVRvKHRoaXMuZGVzdFR5cGUsby5kYXRhKSxtZXRhOm8ubWV0YX0pfSxlLmV4cG9ydHM9aX0seyIuLi91dGlscyI6MzIsIi4vR2VuZXJpY1dvcmtlciI6Mjh9XSwyNTpbZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj10KCIuL0dlbmVyaWNXb3JrZXIiKSxzPXQoIi4uL2NyYzMyIik7ZnVuY3Rpb24gaSgpe3IuY2FsbCh0aGlzLCJDcmMzMlByb2JlIiksdGhpcy53aXRoU3RyZWFtSW5mbygiY3JjMzIiLDApfXQoIi4uL3V0aWxzIikuaW5oZXJpdHMoaSxyKSxpLnByb3RvdHlwZS5wcm9jZXNzQ2h1bms9ZnVuY3Rpb24obyl7dGhpcy5zdHJlYW1JbmZvLmNyYzMyPXMoby5kYXRhLHRoaXMuc3RyZWFtSW5mby5jcmMzMnx8MCksdGhpcy5wdXNoKG8pfSxlLmV4cG9ydHM9aX0seyIuLi9jcmMzMiI6NCwiLi4vdXRpbHMiOjMyLCIuL0dlbmVyaWNXb3JrZXIiOjI4fV0sMjY6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9dCgiLi4vdXRpbHMiKSxzPXQoIi4vR2VuZXJpY1dvcmtlciIpO2Z1bmN0aW9uIGkobyl7cy5jYWxsKHRoaXMsIkRhdGFMZW5ndGhQcm9iZSBmb3IgIitvKSx0aGlzLnByb3BOYW1lPW8sdGhpcy53aXRoU3RyZWFtSW5mbyhvLDApfXIuaW5oZXJpdHMoaSxzKSxpLnByb3RvdHlwZS5wcm9jZXNzQ2h1bms9ZnVuY3Rpb24obyl7aWYobyl7dmFyIHU9dGhpcy5zdHJlYW1JbmZvW3RoaXMucHJvcE5hbWVdfHwwO3RoaXMuc3RyZWFtSW5mb1t0aGlzLnByb3BOYW1lXT11K28uZGF0YS5sZW5ndGh9cy5wcm90b3R5cGUucHJvY2Vzc0NodW5rLmNhbGwodGhpcyxvKX0sZS5leHBvcnRzPWl9LHsiLi4vdXRpbHMiOjMyLCIuL0dlbmVyaWNXb3JrZXIiOjI4fV0sMjc6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9dCgiLi4vdXRpbHMiKSxzPXQoIi4vR2VuZXJpY1dvcmtlciIpO2Z1bmN0aW9uIGkobyl7cy5jYWxsKHRoaXMsIkRhdGFXb3JrZXIiKTt2YXIgdT10aGlzO3RoaXMuZGF0YUlzUmVhZHk9ITEsdGhpcy5pbmRleD0wLHRoaXMubWF4PTAsdGhpcy5kYXRhPW51bGwsdGhpcy50eXBlPSIiLHRoaXMuX3RpY2tTY2hlZHVsZWQ9ITEsby50aGVuKGZ1bmN0aW9uKHApe3UuZGF0YUlzUmVhZHk9ITAsdS5kYXRhPXAsdS5tYXg9cCYmcC5sZW5ndGh8fDAsdS50eXBlPXIuZ2V0VHlwZU9mKHApLHUuaXNQYXVzZWR8fHUuX3RpY2tBbmRSZXBlYXQoKX0sZnVuY3Rpb24ocCl7dS5lcnJvcihwKX0pfXIuaW5oZXJpdHMoaSxzKSxpLnByb3RvdHlwZS5jbGVhblVwPWZ1bmN0aW9uKCl7cy5wcm90b3R5cGUuY2xlYW5VcC5jYWxsKHRoaXMpLHRoaXMuZGF0YT1udWxsfSxpLnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24oKXtyZXR1cm4hIXMucHJvdG90eXBlLnJlc3VtZS5jYWxsKHRoaXMpJiYoIXRoaXMuX3RpY2tTY2hlZHVsZWQmJnRoaXMuZGF0YUlzUmVhZHkmJih0aGlzLl90aWNrU2NoZWR1bGVkPSEwLHIuZGVsYXkodGhpcy5fdGlja0FuZFJlcGVhdCxbXSx0aGlzKSksITApfSxpLnByb3RvdHlwZS5fdGlja0FuZFJlcGVhdD1mdW5jdGlvbigpe3RoaXMuX3RpY2tTY2hlZHVsZWQ9ITEsdGhpcy5pc1BhdXNlZHx8dGhpcy5pc0ZpbmlzaGVkfHwodGhpcy5fdGljaygpLHRoaXMuaXNGaW5pc2hlZHx8KHIuZGVsYXkodGhpcy5fdGlja0FuZFJlcGVhdCxbXSx0aGlzKSx0aGlzLl90aWNrU2NoZWR1bGVkPSEwKSl9LGkucHJvdG90eXBlLl90aWNrPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1BhdXNlZHx8dGhpcy5pc0ZpbmlzaGVkKXJldHVybiExO3ZhciBvPW51bGwsdT1NYXRoLm1pbih0aGlzLm1heCx0aGlzLmluZGV4KzE2Mzg0KTtpZih0aGlzLmluZGV4Pj10aGlzLm1heClyZXR1cm4gdGhpcy5lbmQoKTtzd2l0Y2godGhpcy50eXBlKXtjYXNlInN0cmluZyI6bz10aGlzLmRhdGEuc3Vic3RyaW5nKHRoaXMuaW5kZXgsdSk7YnJlYWs7Y2FzZSJ1aW50OGFycmF5IjpvPXRoaXMuZGF0YS5zdWJhcnJheSh0aGlzLmluZGV4LHUpO2JyZWFrO2Nhc2UiYXJyYXkiOmNhc2Uibm9kZWJ1ZmZlciI6bz10aGlzLmRhdGEuc2xpY2UodGhpcy5pbmRleCx1KX1yZXR1cm4gdGhpcy5pbmRleD11LHRoaXMucHVzaCh7ZGF0YTpvLG1ldGE6e3BlcmNlbnQ6dGhpcy5tYXg/dGhpcy5pbmRleC90aGlzLm1heCoxMDA6MH19KX0sZS5leHBvcnRzPWl9LHsiLi4vdXRpbHMiOjMyLCIuL0dlbmVyaWNXb3JrZXIiOjI4fV0sMjg6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihzKXt0aGlzLm5hbWU9c3x8ImRlZmF1bHQiLHRoaXMuc3RyZWFtSW5mbz17fSx0aGlzLmdlbmVyYXRlZEVycm9yPW51bGwsdGhpcy5leHRyYVN0cmVhbUluZm89e30sdGhpcy5pc1BhdXNlZD0hMCx0aGlzLmlzRmluaXNoZWQ9ITEsdGhpcy5pc0xvY2tlZD0hMSx0aGlzLl9saXN0ZW5lcnM9e2RhdGE6W10sZW5kOltdLGVycm9yOltdfSx0aGlzLnByZXZpb3VzPW51bGx9ci5wcm90b3R5cGU9e3B1c2g6ZnVuY3Rpb24ocyl7dGhpcy5lbWl0KCJkYXRhIixzKX0sZW5kOmZ1bmN0aW9uKCl7aWYodGhpcy5pc0ZpbmlzaGVkKXJldHVybiExO3RoaXMuZmx1c2goKTt0cnl7dGhpcy5lbWl0KCJlbmQiKSx0aGlzLmNsZWFuVXAoKSx0aGlzLmlzRmluaXNoZWQ9ITB9Y2F0Y2gocyl7dGhpcy5lbWl0KCJlcnJvciIscyl9cmV0dXJuITB9LGVycm9yOmZ1bmN0aW9uKHMpe3JldHVybiF0aGlzLmlzRmluaXNoZWQmJih0aGlzLmlzUGF1c2VkP3RoaXMuZ2VuZXJhdGVkRXJyb3I9czoodGhpcy5pc0ZpbmlzaGVkPSEwLHRoaXMuZW1pdCgiZXJyb3IiLHMpLHRoaXMucHJldmlvdXMmJnRoaXMucHJldmlvdXMuZXJyb3IocyksdGhpcy5jbGVhblVwKCkpLCEwKX0sb246ZnVuY3Rpb24ocyxpKXtyZXR1cm4gdGhpcy5fbGlzdGVuZXJzW3NdLnB1c2goaSksdGhpc30sY2xlYW5VcDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtSW5mbz10aGlzLmdlbmVyYXRlZEVycm9yPXRoaXMuZXh0cmFTdHJlYW1JbmZvPW51bGwsdGhpcy5fbGlzdGVuZXJzPVtdfSxlbWl0OmZ1bmN0aW9uKHMsaSl7aWYodGhpcy5fbGlzdGVuZXJzW3NdKWZvcih2YXIgbz0wO288dGhpcy5fbGlzdGVuZXJzW3NdLmxlbmd0aDtvKyspdGhpcy5fbGlzdGVuZXJzW3NdW29dLmNhbGwodGhpcyxpKX0scGlwZTpmdW5jdGlvbihzKXtyZXR1cm4gcy5yZWdpc3RlclByZXZpb3VzKHRoaXMpfSxyZWdpc3RlclByZXZpb3VzOmZ1bmN0aW9uKHMpe2lmKHRoaXMuaXNMb2NrZWQpdGhyb3cgbmV3IEVycm9yKCJUaGUgc3RyZWFtICciK3RoaXMrIicgaGFzIGFscmVhZHkgYmVlbiB1c2VkLiIpO3RoaXMuc3RyZWFtSW5mbz1zLnN0cmVhbUluZm8sdGhpcy5tZXJnZVN0cmVhbUluZm8oKSx0aGlzLnByZXZpb3VzPXM7dmFyIGk9dGhpcztyZXR1cm4gcy5vbigiZGF0YSIsZnVuY3Rpb24obyl7aS5wcm9jZXNzQ2h1bmsobyl9KSxzLm9uKCJlbmQiLGZ1bmN0aW9uKCl7aS5lbmQoKX0pLHMub24oImVycm9yIixmdW5jdGlvbihvKXtpLmVycm9yKG8pfSksdGhpc30scGF1c2U6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5pc1BhdXNlZCYmIXRoaXMuaXNGaW5pc2hlZCYmKHRoaXMuaXNQYXVzZWQ9ITAsdGhpcy5wcmV2aW91cyYmdGhpcy5wcmV2aW91cy5wYXVzZSgpLCEwKX0scmVzdW1lOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaXNQYXVzZWR8fHRoaXMuaXNGaW5pc2hlZClyZXR1cm4hMTt2YXIgcz10aGlzLmlzUGF1c2VkPSExO3JldHVybiB0aGlzLmdlbmVyYXRlZEVycm9yJiYodGhpcy5lcnJvcih0aGlzLmdlbmVyYXRlZEVycm9yKSxzPSEwKSx0aGlzLnByZXZpb3VzJiZ0aGlzLnByZXZpb3VzLnJlc3VtZSgpLCFzfSxmbHVzaDpmdW5jdGlvbigpe30scHJvY2Vzc0NodW5rOmZ1bmN0aW9uKHMpe3RoaXMucHVzaChzKX0sd2l0aFN0cmVhbUluZm86ZnVuY3Rpb24ocyxpKXtyZXR1cm4gdGhpcy5leHRyYVN0cmVhbUluZm9bc109aSx0aGlzLm1lcmdlU3RyZWFtSW5mbygpLHRoaXN9LG1lcmdlU3RyZWFtSW5mbzpmdW5jdGlvbigpe2Zvcih2YXIgcyBpbiB0aGlzLmV4dHJhU3RyZWFtSW5mbylPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5leHRyYVN0cmVhbUluZm8scykmJih0aGlzLnN0cmVhbUluZm9bc109dGhpcy5leHRyYVN0cmVhbUluZm9bc10pfSxsb2NrOmZ1bmN0aW9uKCl7aWYodGhpcy5pc0xvY2tlZCl0aHJvdyBuZXcgRXJyb3IoIlRoZSBzdHJlYW0gJyIrdGhpcysiJyBoYXMgYWxyZWFkeSBiZWVuIHVzZWQuIik7dGhpcy5pc0xvY2tlZD0hMCx0aGlzLnByZXZpb3VzJiZ0aGlzLnByZXZpb3VzLmxvY2soKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXt2YXIgcz0iV29ya2VyICIrdGhpcy5uYW1lO3JldHVybiB0aGlzLnByZXZpb3VzP3RoaXMucHJldmlvdXMrIiAtPiAiK3M6c319LGUuZXhwb3J0cz1yfSx7fV0sMjk6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9dCgiLi4vdXRpbHMiKSxzPXQoIi4vQ29udmVydFdvcmtlciIpLGk9dCgiLi9HZW5lcmljV29ya2VyIiksbz10KCIuLi9iYXNlNjQiKSx1PXQoIi4uL3N1cHBvcnQiKSxwPXQoIi4uL2V4dGVybmFsIiksYj1udWxsO2lmKHUubm9kZXN0cmVhbSl0cnl7Yj10KCIuLi9ub2RlanMvTm9kZWpzU3RyZWFtT3V0cHV0QWRhcHRlciIpfWNhdGNoe31mdW5jdGlvbiBnKEMseSl7cmV0dXJuIG5ldyBwLlByb21pc2UoZnVuY3Rpb24oVCxQKXt2YXIgYz1bXSxsPUMuX2ludGVybmFsVHlwZSxoPUMuX291dHB1dFR5cGUsXz1DLl9taW1lVHlwZTtDLm9uKCJkYXRhIixmdW5jdGlvbihGLE8pe2MucHVzaChGKSx5JiZ5KE8pfSkub24oImVycm9yIixmdW5jdGlvbihGKXtjPVtdLFAoRil9KS5vbigiZW5kIixmdW5jdGlvbigpe3RyeXt2YXIgRj1mdW5jdGlvbihPLGYsVSl7c3dpdGNoKE8pe2Nhc2UiYmxvYiI6cmV0dXJuIHIubmV3QmxvYihyLnRyYW5zZm9ybVRvKCJhcnJheWJ1ZmZlciIsZiksVSk7Y2FzZSJiYXNlNjQiOnJldHVybiBvLmVuY29kZShmKTtkZWZhdWx0OnJldHVybiByLnRyYW5zZm9ybVRvKE8sZil9fShoLGZ1bmN0aW9uKE8sZil7dmFyIFUsWD0wLFE9bnVsbCxFPTA7Zm9yKFU9MDtVPGYubGVuZ3RoO1UrKylFKz1mW1VdLmxlbmd0aDtzd2l0Y2goTyl7Y2FzZSJzdHJpbmciOnJldHVybiBmLmpvaW4oIiIpO2Nhc2UiYXJyYXkiOnJldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLGYpO2Nhc2UidWludDhhcnJheSI6Zm9yKFE9bmV3IFVpbnQ4QXJyYXkoRSksVT0wO1U8Zi5sZW5ndGg7VSsrKVEuc2V0KGZbVV0sWCksWCs9ZltVXS5sZW5ndGg7cmV0dXJuIFE7Y2FzZSJub2RlYnVmZmVyIjpyZXR1cm4gQnVmZmVyLmNvbmNhdChmKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiY29uY2F0IDogdW5zdXBwb3J0ZWQgdHlwZSAnIitPKyInIil9fShsLGMpLF8pO1QoRil9Y2F0Y2goTyl7UChPKX1jPVtdfSkucmVzdW1lKCl9KX1mdW5jdGlvbiBtKEMseSxUKXt2YXIgUD15O3N3aXRjaCh5KXtjYXNlImJsb2IiOmNhc2UiYXJyYXlidWZmZXIiOlA9InVpbnQ4YXJyYXkiO2JyZWFrO2Nhc2UiYmFzZTY0IjpQPSJzdHJpbmcifXRyeXt0aGlzLl9pbnRlcm5hbFR5cGU9UCx0aGlzLl9vdXRwdXRUeXBlPXksdGhpcy5fbWltZVR5cGU9VCxyLmNoZWNrU3VwcG9ydChQKSx0aGlzLl93b3JrZXI9Qy5waXBlKG5ldyBzKFApKSxDLmxvY2soKX1jYXRjaChjKXt0aGlzLl93b3JrZXI9bmV3IGkoImVycm9yIiksdGhpcy5fd29ya2VyLmVycm9yKGMpfX1tLnByb3RvdHlwZT17YWNjdW11bGF0ZTpmdW5jdGlvbihDKXtyZXR1cm4gZyh0aGlzLEMpfSxvbjpmdW5jdGlvbihDLHkpe3ZhciBUPXRoaXM7cmV0dXJuIEM9PT0iZGF0YSI/dGhpcy5fd29ya2VyLm9uKEMsZnVuY3Rpb24oUCl7eS5jYWxsKFQsUC5kYXRhLFAubWV0YSl9KTp0aGlzLl93b3JrZXIub24oQyxmdW5jdGlvbigpe3IuZGVsYXkoeSxhcmd1bWVudHMsVCl9KSx0aGlzfSxyZXN1bWU6ZnVuY3Rpb24oKXtyZXR1cm4gci5kZWxheSh0aGlzLl93b3JrZXIucmVzdW1lLFtdLHRoaXMuX3dvcmtlciksdGhpc30scGF1c2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd29ya2VyLnBhdXNlKCksdGhpc30sdG9Ob2RlanNTdHJlYW06ZnVuY3Rpb24oQyl7aWYoci5jaGVja1N1cHBvcnQoIm5vZGVzdHJlYW0iKSx0aGlzLl9vdXRwdXRUeXBlIT09Im5vZGVidWZmZXIiKXRocm93IG5ldyBFcnJvcih0aGlzLl9vdXRwdXRUeXBlKyIgaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIG1ldGhvZCIpO3JldHVybiBuZXcgYih0aGlzLHtvYmplY3RNb2RlOnRoaXMuX291dHB1dFR5cGUhPT0ibm9kZWJ1ZmZlciJ9LEMpfX0sZS5leHBvcnRzPW19LHsiLi4vYmFzZTY0IjoxLCIuLi9leHRlcm5hbCI6NiwiLi4vbm9kZWpzL05vZGVqc1N0cmVhbU91dHB1dEFkYXB0ZXIiOjEzLCIuLi9zdXBwb3J0IjozMCwiLi4vdXRpbHMiOjMyLCIuL0NvbnZlcnRXb3JrZXIiOjI0LCIuL0dlbmVyaWNXb3JrZXIiOjI4fV0sMzA6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7aWYobi5iYXNlNjQ9ITAsbi5hcnJheT0hMCxuLnN0cmluZz0hMCxuLmFycmF5YnVmZmVyPXR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJnR5cGVvZiBVaW50OEFycmF5PCJ1IixuLm5vZGVidWZmZXI9dHlwZW9mIEJ1ZmZlcjwidSIsbi51aW50OGFycmF5PXR5cGVvZiBVaW50OEFycmF5PCJ1Iix0eXBlb2YgQXJyYXlCdWZmZXI+InUiKW4uYmxvYj0hMTtlbHNle3ZhciByPW5ldyBBcnJheUJ1ZmZlcigwKTt0cnl7bi5ibG9iPW5ldyBCbG9iKFtyXSx7dHlwZToiYXBwbGljYXRpb24vemlwIn0pLnNpemU9PT0wfWNhdGNoe3RyeXt2YXIgcz1uZXcoc2VsZi5CbG9iQnVpbGRlcnx8c2VsZi5XZWJLaXRCbG9iQnVpbGRlcnx8c2VsZi5Nb3pCbG9iQnVpbGRlcnx8c2VsZi5NU0Jsb2JCdWlsZGVyKTtzLmFwcGVuZChyKSxuLmJsb2I9cy5nZXRCbG9iKCJhcHBsaWNhdGlvbi96aXAiKS5zaXplPT09MH1jYXRjaHtuLmJsb2I9ITF9fX10cnl7bi5ub2Rlc3RyZWFtPSEhdCgicmVhZGFibGUtc3RyZWFtIikuUmVhZGFibGV9Y2F0Y2h7bi5ub2Rlc3RyZWFtPSExfX0seyJyZWFkYWJsZS1zdHJlYW0iOjE2fV0sMzE6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7Zm9yKHZhciByPXQoIi4vdXRpbHMiKSxzPXQoIi4vc3VwcG9ydCIpLGk9dCgiLi9ub2RlanNVdGlscyIpLG89dCgiLi9zdHJlYW0vR2VuZXJpY1dvcmtlciIpLHU9bmV3IEFycmF5KDI1NikscD0wO3A8MjU2O3ArKyl1W3BdPTI1Mjw9cD82OjI0ODw9cD81OjI0MDw9cD80OjIyNDw9cD8zOjE5Mjw9cD8yOjE7dVsyNTRdPXVbMjU0XT0xO2Z1bmN0aW9uIGIoKXtvLmNhbGwodGhpcywidXRmLTggZGVjb2RlIiksdGhpcy5sZWZ0T3Zlcj1udWxsfWZ1bmN0aW9uIGcoKXtvLmNhbGwodGhpcywidXRmLTggZW5jb2RlIil9bi51dGY4ZW5jb2RlPWZ1bmN0aW9uKG0pe3JldHVybiBzLm5vZGVidWZmZXI/aS5uZXdCdWZmZXJGcm9tKG0sInV0Zi04Iik6ZnVuY3Rpb24oQyl7dmFyIHksVCxQLGMsbCxoPUMubGVuZ3RoLF89MDtmb3IoYz0wO2M8aDtjKyspKDY0NTEyJihUPUMuY2hhckNvZGVBdChjKSkpPT01NTI5NiYmYysxPGgmJig2NDUxMiYoUD1DLmNoYXJDb2RlQXQoYysxKSkpPT01NjMyMCYmKFQ9NjU1MzYrKFQtNTUyOTY8PDEwKSsoUC01NjMyMCksYysrKSxfKz1UPDEyOD8xOlQ8MjA0OD8yOlQ8NjU1MzY/Mzo0O2Zvcih5PXMudWludDhhcnJheT9uZXcgVWludDhBcnJheShfKTpuZXcgQXJyYXkoXyksYz1sPTA7bDxfO2MrKykoNjQ1MTImKFQ9Qy5jaGFyQ29kZUF0KGMpKSk9PTU1Mjk2JiZjKzE8aCYmKDY0NTEyJihQPUMuY2hhckNvZGVBdChjKzEpKSk9PTU2MzIwJiYoVD02NTUzNisoVC01NTI5Njw8MTApKyhQLTU2MzIwKSxjKyspLFQ8MTI4P3lbbCsrXT1UOihUPDIwNDg/eVtsKytdPTE5MnxUPj4+NjooVDw2NTUzNj95W2wrK109MjI0fFQ+Pj4xMjooeVtsKytdPTI0MHxUPj4+MTgseVtsKytdPTEyOHxUPj4+MTImNjMpLHlbbCsrXT0xMjh8VD4+PjYmNjMpLHlbbCsrXT0xMjh8NjMmVCk7cmV0dXJuIHl9KG0pfSxuLnV0ZjhkZWNvZGU9ZnVuY3Rpb24obSl7cmV0dXJuIHMubm9kZWJ1ZmZlcj9yLnRyYW5zZm9ybVRvKCJub2RlYnVmZmVyIixtKS50b1N0cmluZygidXRmLTgiKTpmdW5jdGlvbihDKXt2YXIgeSxULFAsYyxsPUMubGVuZ3RoLGg9bmV3IEFycmF5KDIqbCk7Zm9yKHk9VD0wO3k8bDspaWYoKFA9Q1t5KytdKTwxMjgpaFtUKytdPVA7ZWxzZSBpZig0PChjPXVbUF0pKWhbVCsrXT02NTUzMyx5Kz1jLTE7ZWxzZXtmb3IoUCY9Yz09PTI/MzE6Yz09PTM/MTU6NzsxPGMmJnk8bDspUD1QPDw2fDYzJkNbeSsrXSxjLS07MTxjP2hbVCsrXT02NTUzMzpQPDY1NTM2P2hbVCsrXT1QOihQLT02NTUzNixoW1QrK109NTUyOTZ8UD4+MTAmMTAyMyxoW1QrK109NTYzMjB8MTAyMyZQKX1yZXR1cm4gaC5sZW5ndGghPT1UJiYoaC5zdWJhcnJheT9oPWguc3ViYXJyYXkoMCxUKTpoLmxlbmd0aD1UKSxyLmFwcGx5RnJvbUNoYXJDb2RlKGgpfShtPXIudHJhbnNmb3JtVG8ocy51aW50OGFycmF5PyJ1aW50OGFycmF5IjoiYXJyYXkiLG0pKX0sci5pbmhlcml0cyhiLG8pLGIucHJvdG90eXBlLnByb2Nlc3NDaHVuaz1mdW5jdGlvbihtKXt2YXIgQz1yLnRyYW5zZm9ybVRvKHMudWludDhhcnJheT8idWludDhhcnJheSI6ImFycmF5IixtLmRhdGEpO2lmKHRoaXMubGVmdE92ZXImJnRoaXMubGVmdE92ZXIubGVuZ3RoKXtpZihzLnVpbnQ4YXJyYXkpe3ZhciB5PUM7KEM9bmV3IFVpbnQ4QXJyYXkoeS5sZW5ndGgrdGhpcy5sZWZ0T3Zlci5sZW5ndGgpKS5zZXQodGhpcy5sZWZ0T3ZlciwwKSxDLnNldCh5LHRoaXMubGVmdE92ZXIubGVuZ3RoKX1lbHNlIEM9dGhpcy5sZWZ0T3Zlci5jb25jYXQoQyk7dGhpcy5sZWZ0T3Zlcj1udWxsfXZhciBUPWZ1bmN0aW9uKGMsbCl7dmFyIGg7Zm9yKChsPWx8fGMubGVuZ3RoKT5jLmxlbmd0aCYmKGw9Yy5sZW5ndGgpLGg9bC0xOzA8PWgmJigxOTImY1toXSk9PTEyODspaC0tO3JldHVybiBoPDB8fGg9PT0wP2w6aCt1W2NbaF1dPmw/aDpsfShDKSxQPUM7VCE9PUMubGVuZ3RoJiYocy51aW50OGFycmF5PyhQPUMuc3ViYXJyYXkoMCxUKSx0aGlzLmxlZnRPdmVyPUMuc3ViYXJyYXkoVCxDLmxlbmd0aCkpOihQPUMuc2xpY2UoMCxUKSx0aGlzLmxlZnRPdmVyPUMuc2xpY2UoVCxDLmxlbmd0aCkpKSx0aGlzLnB1c2goe2RhdGE6bi51dGY4ZGVjb2RlKFApLG1ldGE6bS5tZXRhfSl9LGIucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7dGhpcy5sZWZ0T3ZlciYmdGhpcy5sZWZ0T3Zlci5sZW5ndGgmJih0aGlzLnB1c2goe2RhdGE6bi51dGY4ZGVjb2RlKHRoaXMubGVmdE92ZXIpLG1ldGE6e319KSx0aGlzLmxlZnRPdmVyPW51bGwpfSxuLlV0ZjhEZWNvZGVXb3JrZXI9YixyLmluaGVyaXRzKGcsbyksZy5wcm90b3R5cGUucHJvY2Vzc0NodW5rPWZ1bmN0aW9uKG0pe3RoaXMucHVzaCh7ZGF0YTpuLnV0ZjhlbmNvZGUobS5kYXRhKSxtZXRhOm0ubWV0YX0pfSxuLlV0ZjhFbmNvZGVXb3JrZXI9Z30seyIuL25vZGVqc1V0aWxzIjoxNCwiLi9zdHJlYW0vR2VuZXJpY1dvcmtlciI6MjgsIi4vc3VwcG9ydCI6MzAsIi4vdXRpbHMiOjMyfV0sMzI6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9dCgiLi9zdXBwb3J0Iikscz10KCIuL2Jhc2U2NCIpLGk9dCgiLi9ub2RlanNVdGlscyIpLG89dCgiLi9leHRlcm5hbCIpO2Z1bmN0aW9uIHUoeSl7cmV0dXJuIHl9ZnVuY3Rpb24gcCh5LFQpe2Zvcih2YXIgUD0wO1A8eS5sZW5ndGg7KytQKVRbUF09MjU1JnkuY2hhckNvZGVBdChQKTtyZXR1cm4gVH10KCJzZXRpbW1lZGlhdGUiKSxuLm5ld0Jsb2I9ZnVuY3Rpb24oeSxUKXtuLmNoZWNrU3VwcG9ydCgiYmxvYiIpO3RyeXtyZXR1cm4gbmV3IEJsb2IoW3ldLHt0eXBlOlR9KX1jYXRjaHt0cnl7dmFyIFA9bmV3KHNlbGYuQmxvYkJ1aWxkZXJ8fHNlbGYuV2ViS2l0QmxvYkJ1aWxkZXJ8fHNlbGYuTW96QmxvYkJ1aWxkZXJ8fHNlbGYuTVNCbG9iQnVpbGRlcik7cmV0dXJuIFAuYXBwZW5kKHkpLFAuZ2V0QmxvYihUKX1jYXRjaHt0aHJvdyBuZXcgRXJyb3IoIkJ1ZyA6IGNhbid0IGNvbnN0cnVjdCB0aGUgQmxvYi4iKX19fTt2YXIgYj17c3RyaW5naWZ5QnlDaHVuazpmdW5jdGlvbih5LFQsUCl7dmFyIGM9W10sbD0wLGg9eS5sZW5ndGg7aWYoaDw9UClyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLHkpO2Zvcig7bDxoOylUPT09ImFycmF5Inx8VD09PSJub2RlYnVmZmVyIj9jLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLHkuc2xpY2UobCxNYXRoLm1pbihsK1AsaCkpKSk6Yy5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCx5LnN1YmFycmF5KGwsTWF0aC5taW4obCtQLGgpKSkpLGwrPVA7cmV0dXJuIGMuam9pbigiIil9LHN0cmluZ2lmeUJ5Q2hhcjpmdW5jdGlvbih5KXtmb3IodmFyIFQ9IiIsUD0wO1A8eS5sZW5ndGg7UCsrKVQrPVN0cmluZy5mcm9tQ2hhckNvZGUoeVtQXSk7cmV0dXJuIFR9LGFwcGx5Q2FuQmVVc2VkOnt1aW50OGFycmF5OmZ1bmN0aW9uKCl7dHJ5e3JldHVybiByLnVpbnQ4YXJyYXkmJlN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxuZXcgVWludDhBcnJheSgxKSkubGVuZ3RoPT09MX1jYXRjaHtyZXR1cm4hMX19KCksbm9kZWJ1ZmZlcjpmdW5jdGlvbigpe3RyeXtyZXR1cm4gci5ub2RlYnVmZmVyJiZTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsaS5hbGxvY0J1ZmZlcigxKSkubGVuZ3RoPT09MX1jYXRjaHtyZXR1cm4hMX19KCl9fTtmdW5jdGlvbiBnKHkpe3ZhciBUPTY1NTM2LFA9bi5nZXRUeXBlT2YoeSksYz0hMDtpZihQPT09InVpbnQ4YXJyYXkiP2M9Yi5hcHBseUNhbkJlVXNlZC51aW50OGFycmF5OlA9PT0ibm9kZWJ1ZmZlciImJihjPWIuYXBwbHlDYW5CZVVzZWQubm9kZWJ1ZmZlciksYylmb3IoOzE8VDspdHJ5e3JldHVybiBiLnN0cmluZ2lmeUJ5Q2h1bmsoeSxQLFQpfWNhdGNoe1Q9TWF0aC5mbG9vcihULzIpfXJldHVybiBiLnN0cmluZ2lmeUJ5Q2hhcih5KX1mdW5jdGlvbiBtKHksVCl7Zm9yKHZhciBQPTA7UDx5Lmxlbmd0aDtQKyspVFtQXT15W1BdO3JldHVybiBUfW4uYXBwbHlGcm9tQ2hhckNvZGU9Zzt2YXIgQz17fTtDLnN0cmluZz17c3RyaW5nOnUsYXJyYXk6ZnVuY3Rpb24oeSl7cmV0dXJuIHAoeSxuZXcgQXJyYXkoeS5sZW5ndGgpKX0sYXJyYXlidWZmZXI6ZnVuY3Rpb24oeSl7cmV0dXJuIEMuc3RyaW5nLnVpbnQ4YXJyYXkoeSkuYnVmZmVyfSx1aW50OGFycmF5OmZ1bmN0aW9uKHkpe3JldHVybiBwKHksbmV3IFVpbnQ4QXJyYXkoeS5sZW5ndGgpKX0sbm9kZWJ1ZmZlcjpmdW5jdGlvbih5KXtyZXR1cm4gcCh5LGkuYWxsb2NCdWZmZXIoeS5sZW5ndGgpKX19LEMuYXJyYXk9e3N0cmluZzpnLGFycmF5OnUsYXJyYXlidWZmZXI6ZnVuY3Rpb24oeSl7cmV0dXJuIG5ldyBVaW50OEFycmF5KHkpLmJ1ZmZlcn0sdWludDhhcnJheTpmdW5jdGlvbih5KXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoeSl9LG5vZGVidWZmZXI6ZnVuY3Rpb24oeSl7cmV0dXJuIGkubmV3QnVmZmVyRnJvbSh5KX19LEMuYXJyYXlidWZmZXI9e3N0cmluZzpmdW5jdGlvbih5KXtyZXR1cm4gZyhuZXcgVWludDhBcnJheSh5KSl9LGFycmF5OmZ1bmN0aW9uKHkpe3JldHVybiBtKG5ldyBVaW50OEFycmF5KHkpLG5ldyBBcnJheSh5LmJ5dGVMZW5ndGgpKX0sYXJyYXlidWZmZXI6dSx1aW50OGFycmF5OmZ1bmN0aW9uKHkpe3JldHVybiBuZXcgVWludDhBcnJheSh5KX0sbm9kZWJ1ZmZlcjpmdW5jdGlvbih5KXtyZXR1cm4gaS5uZXdCdWZmZXJGcm9tKG5ldyBVaW50OEFycmF5KHkpKX19LEMudWludDhhcnJheT17c3RyaW5nOmcsYXJyYXk6ZnVuY3Rpb24oeSl7cmV0dXJuIG0oeSxuZXcgQXJyYXkoeS5sZW5ndGgpKX0sYXJyYXlidWZmZXI6ZnVuY3Rpb24oeSl7cmV0dXJuIHkuYnVmZmVyfSx1aW50OGFycmF5OnUsbm9kZWJ1ZmZlcjpmdW5jdGlvbih5KXtyZXR1cm4gaS5uZXdCdWZmZXJGcm9tKHkpfX0sQy5ub2RlYnVmZmVyPXtzdHJpbmc6ZyxhcnJheTpmdW5jdGlvbih5KXtyZXR1cm4gbSh5LG5ldyBBcnJheSh5Lmxlbmd0aCkpfSxhcnJheWJ1ZmZlcjpmdW5jdGlvbih5KXtyZXR1cm4gQy5ub2RlYnVmZmVyLnVpbnQ4YXJyYXkoeSkuYnVmZmVyfSx1aW50OGFycmF5OmZ1bmN0aW9uKHkpe3JldHVybiBtKHksbmV3IFVpbnQ4QXJyYXkoeS5sZW5ndGgpKX0sbm9kZWJ1ZmZlcjp1fSxuLnRyYW5zZm9ybVRvPWZ1bmN0aW9uKHksVCl7aWYoVD1UfHwiIiwheSlyZXR1cm4gVDtuLmNoZWNrU3VwcG9ydCh5KTt2YXIgUD1uLmdldFR5cGVPZihUKTtyZXR1cm4gQ1tQXVt5XShUKX0sbi5yZXNvbHZlPWZ1bmN0aW9uKHkpe2Zvcih2YXIgVD15LnNwbGl0KCIvIiksUD1bXSxjPTA7YzxULmxlbmd0aDtjKyspe3ZhciBsPVRbY107bD09PSIuInx8bD09PSIiJiZjIT09MCYmYyE9PVQubGVuZ3RoLTF8fChsPT09Ii4uIj9QLnBvcCgpOlAucHVzaChsKSl9cmV0dXJuIFAuam9pbigiLyIpfSxuLmdldFR5cGVPZj1mdW5jdGlvbih5KXtyZXR1cm4gdHlwZW9mIHk9PSJzdHJpbmciPyJzdHJpbmciOk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh5KT09PSJbb2JqZWN0IEFycmF5XSI/ImFycmF5IjpyLm5vZGVidWZmZXImJmkuaXNCdWZmZXIoeSk/Im5vZGVidWZmZXIiOnIudWludDhhcnJheSYmeSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/InVpbnQ4YXJyYXkiOnIuYXJyYXlidWZmZXImJnkgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj8iYXJyYXlidWZmZXIiOnZvaWQgMH0sbi5jaGVja1N1cHBvcnQ9ZnVuY3Rpb24oeSl7aWYoIXJbeS50b0xvd2VyQ2FzZSgpXSl0aHJvdyBuZXcgRXJyb3IoeSsiIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBwbGF0Zm9ybSIpfSxuLk1BWF9WQUxVRV8xNkJJVFM9NjU1MzUsbi5NQVhfVkFMVUVfMzJCSVRTPS0xLG4ucHJldHR5PWZ1bmN0aW9uKHkpe3ZhciBULFAsYz0iIjtmb3IoUD0wO1A8KHl8fCIiKS5sZW5ndGg7UCsrKWMrPSJcXHgiKygoVD15LmNoYXJDb2RlQXQoUCkpPDE2PyIwIjoiIikrVC50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtyZXR1cm4gY30sbi5kZWxheT1mdW5jdGlvbih5LFQsUCl7c2V0SW1tZWRpYXRlKGZ1bmN0aW9uKCl7eS5hcHBseShQfHxudWxsLFR8fFtdKX0pfSxuLmluaGVyaXRzPWZ1bmN0aW9uKHksVCl7ZnVuY3Rpb24gUCgpe31QLnByb3RvdHlwZT1ULnByb3RvdHlwZSx5LnByb3RvdHlwZT1uZXcgUH0sbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgeSxULFA9e307Zm9yKHk9MDt5PGFyZ3VtZW50cy5sZW5ndGg7eSsrKWZvcihUIGluIGFyZ3VtZW50c1t5XSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYXJndW1lbnRzW3ldLFQpJiZQW1RdPT09dm9pZCAwJiYoUFtUXT1hcmd1bWVudHNbeV1bVF0pO3JldHVybiBQfSxuLnByZXBhcmVDb250ZW50PWZ1bmN0aW9uKHksVCxQLGMsbCl7cmV0dXJuIG8uUHJvbWlzZS5yZXNvbHZlKFQpLnRoZW4oZnVuY3Rpb24oaCl7cmV0dXJuIHIuYmxvYiYmKGggaW5zdGFuY2VvZiBCbG9ifHxbIltvYmplY3QgRmlsZV0iLCJbb2JqZWN0IEJsb2JdIl0uaW5kZXhPZihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaCkpIT09LTEpJiZ0eXBlb2YgRmlsZVJlYWRlcjwidSI/bmV3IG8uUHJvbWlzZShmdW5jdGlvbihfLEYpe3ZhciBPPW5ldyBGaWxlUmVhZGVyO08ub25sb2FkPWZ1bmN0aW9uKGYpe18oZi50YXJnZXQucmVzdWx0KX0sTy5vbmVycm9yPWZ1bmN0aW9uKGYpe0YoZi50YXJnZXQuZXJyb3IpfSxPLnJlYWRBc0FycmF5QnVmZmVyKGgpfSk6aH0pLnRoZW4oZnVuY3Rpb24oaCl7dmFyIF89bi5nZXRUeXBlT2YoaCk7cmV0dXJuIF8/KF89PT0iYXJyYXlidWZmZXIiP2g9bi50cmFuc2Zvcm1UbygidWludDhhcnJheSIsaCk6Xz09PSJzdHJpbmciJiYobD9oPXMuZGVjb2RlKGgpOlAmJmMhPT0hMCYmKGg9ZnVuY3Rpb24oRil7cmV0dXJuIHAoRixyLnVpbnQ4YXJyYXk/bmV3IFVpbnQ4QXJyYXkoRi5sZW5ndGgpOm5ldyBBcnJheShGLmxlbmd0aCkpfShoKSkpLGgpOm8uUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCJDYW4ndCByZWFkIHRoZSBkYXRhIG9mICciK3krIicuIElzIGl0IGluIGEgc3VwcG9ydGVkIEphdmFTY3JpcHQgdHlwZSAoU3RyaW5nLCBCbG9iLCBBcnJheUJ1ZmZlciwgZXRjKSA/IikpfSl9fSx7Ii4vYmFzZTY0IjoxLCIuL2V4dGVybmFsIjo2LCIuL25vZGVqc1V0aWxzIjoxNCwiLi9zdXBwb3J0IjozMCxzZXRpbW1lZGlhdGU6NTR9XSwzMzpbZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj10KCIuL3JlYWRlci9yZWFkZXJGb3IiKSxzPXQoIi4vdXRpbHMiKSxpPXQoIi4vc2lnbmF0dXJlIiksbz10KCIuL3ppcEVudHJ5IiksdT10KCIuL3N1cHBvcnQiKTtmdW5jdGlvbiBwKGIpe3RoaXMuZmlsZXM9W10sdGhpcy5sb2FkT3B0aW9ucz1ifXAucHJvdG90eXBlPXtjaGVja1NpZ25hdHVyZTpmdW5jdGlvbihiKXtpZighdGhpcy5yZWFkZXIucmVhZEFuZENoZWNrU2lnbmF0dXJlKGIpKXt0aGlzLnJlYWRlci5pbmRleC09NDt2YXIgZz10aGlzLnJlYWRlci5yZWFkU3RyaW5nKDQpO3Rocm93IG5ldyBFcnJvcigiQ29ycnVwdGVkIHppcCBvciBidWc6IHVuZXhwZWN0ZWQgc2lnbmF0dXJlICgiK3MucHJldHR5KGcpKyIsIGV4cGVjdGVkICIrcy5wcmV0dHkoYikrIikiKX19LGlzU2lnbmF0dXJlOmZ1bmN0aW9uKGIsZyl7dmFyIG09dGhpcy5yZWFkZXIuaW5kZXg7dGhpcy5yZWFkZXIuc2V0SW5kZXgoYik7dmFyIEM9dGhpcy5yZWFkZXIucmVhZFN0cmluZyg0KT09PWc7cmV0dXJuIHRoaXMucmVhZGVyLnNldEluZGV4KG0pLEN9LHJlYWRCbG9ja0VuZE9mQ2VudHJhbDpmdW5jdGlvbigpe3RoaXMuZGlza051bWJlcj10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuZGlza1dpdGhDZW50cmFsRGlyU3RhcnQ9dGhpcy5yZWFkZXIucmVhZEludCgyKSx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzT25UaGlzRGlzaz10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuY2VudHJhbERpclJlY29yZHM9dGhpcy5yZWFkZXIucmVhZEludCgyKSx0aGlzLmNlbnRyYWxEaXJTaXplPXRoaXMucmVhZGVyLnJlYWRJbnQoNCksdGhpcy5jZW50cmFsRGlyT2Zmc2V0PXRoaXMucmVhZGVyLnJlYWRJbnQoNCksdGhpcy56aXBDb21tZW50TGVuZ3RoPXRoaXMucmVhZGVyLnJlYWRJbnQoMik7dmFyIGI9dGhpcy5yZWFkZXIucmVhZERhdGEodGhpcy56aXBDb21tZW50TGVuZ3RoKSxnPXUudWludDhhcnJheT8idWludDhhcnJheSI6ImFycmF5IixtPXMudHJhbnNmb3JtVG8oZyxiKTt0aGlzLnppcENvbW1lbnQ9dGhpcy5sb2FkT3B0aW9ucy5kZWNvZGVGaWxlTmFtZShtKX0scmVhZEJsb2NrWmlwNjRFbmRPZkNlbnRyYWw6ZnVuY3Rpb24oKXt0aGlzLnppcDY0RW5kT2ZDZW50cmFsU2l6ZT10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMucmVhZGVyLnNraXAoNCksdGhpcy5kaXNrTnVtYmVyPXRoaXMucmVhZGVyLnJlYWRJbnQoNCksdGhpcy5kaXNrV2l0aENlbnRyYWxEaXJTdGFydD10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuY2VudHJhbERpclJlY29yZHNPblRoaXNEaXNrPXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy5jZW50cmFsRGlyUmVjb3Jkcz10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMuY2VudHJhbERpclNpemU9dGhpcy5yZWFkZXIucmVhZEludCg4KSx0aGlzLmNlbnRyYWxEaXJPZmZzZXQ9dGhpcy5yZWFkZXIucmVhZEludCg4KSx0aGlzLnppcDY0RXh0ZW5zaWJsZURhdGE9e307Zm9yKHZhciBiLGcsbSxDPXRoaXMuemlwNjRFbmRPZkNlbnRyYWxTaXplLTQ0OzA8QzspYj10aGlzLnJlYWRlci5yZWFkSW50KDIpLGc9dGhpcy5yZWFkZXIucmVhZEludCg0KSxtPXRoaXMucmVhZGVyLnJlYWREYXRhKGcpLHRoaXMuemlwNjRFeHRlbnNpYmxlRGF0YVtiXT17aWQ6YixsZW5ndGg6Zyx2YWx1ZTptfX0scmVhZEJsb2NrWmlwNjRFbmRPZkNlbnRyYWxMb2NhdG9yOmZ1bmN0aW9uKCl7aWYodGhpcy5kaXNrV2l0aFppcDY0Q2VudHJhbERpclN0YXJ0PXRoaXMucmVhZGVyLnJlYWRJbnQoNCksdGhpcy5yZWxhdGl2ZU9mZnNldEVuZE9mWmlwNjRDZW50cmFsRGlyPXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy5kaXNrc0NvdW50PXRoaXMucmVhZGVyLnJlYWRJbnQoNCksMTx0aGlzLmRpc2tzQ291bnQpdGhyb3cgbmV3IEVycm9yKCJNdWx0aS12b2x1bWVzIHppcCBhcmUgbm90IHN1cHBvcnRlZCIpfSxyZWFkTG9jYWxGaWxlczpmdW5jdGlvbigpe3ZhciBiLGc7Zm9yKGI9MDtiPHRoaXMuZmlsZXMubGVuZ3RoO2IrKylnPXRoaXMuZmlsZXNbYl0sdGhpcy5yZWFkZXIuc2V0SW5kZXgoZy5sb2NhbEhlYWRlck9mZnNldCksdGhpcy5jaGVja1NpZ25hdHVyZShpLkxPQ0FMX0ZJTEVfSEVBREVSKSxnLnJlYWRMb2NhbFBhcnQodGhpcy5yZWFkZXIpLGcuaGFuZGxlVVRGOCgpLGcucHJvY2Vzc0F0dHJpYnV0ZXMoKX0scmVhZENlbnRyYWxEaXI6ZnVuY3Rpb24oKXt2YXIgYjtmb3IodGhpcy5yZWFkZXIuc2V0SW5kZXgodGhpcy5jZW50cmFsRGlyT2Zmc2V0KTt0aGlzLnJlYWRlci5yZWFkQW5kQ2hlY2tTaWduYXR1cmUoaS5DRU5UUkFMX0ZJTEVfSEVBREVSKTspKGI9bmV3IG8oe3ppcDY0OnRoaXMuemlwNjR9LHRoaXMubG9hZE9wdGlvbnMpKS5yZWFkQ2VudHJhbFBhcnQodGhpcy5yZWFkZXIpLHRoaXMuZmlsZXMucHVzaChiKTtpZih0aGlzLmNlbnRyYWxEaXJSZWNvcmRzIT09dGhpcy5maWxlcy5sZW5ndGgmJnRoaXMuY2VudHJhbERpclJlY29yZHMhPT0wJiZ0aGlzLmZpbGVzLmxlbmd0aD09PTApdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwIG9yIGJ1ZzogZXhwZWN0ZWQgIit0aGlzLmNlbnRyYWxEaXJSZWNvcmRzKyIgcmVjb3JkcyBpbiBjZW50cmFsIGRpciwgZ290ICIrdGhpcy5maWxlcy5sZW5ndGgpfSxyZWFkRW5kT2ZDZW50cmFsOmZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5yZWFkZXIubGFzdEluZGV4T2ZTaWduYXR1cmUoaS5DRU5UUkFMX0RJUkVDVE9SWV9FTkQpO2lmKGI8MCl0aHJvdyB0aGlzLmlzU2lnbmF0dXJlKDAsaS5MT0NBTF9GSUxFX0hFQURFUik/bmV3IEVycm9yKCJDb3JydXB0ZWQgemlwOiBjYW4ndCBmaW5kIGVuZCBvZiBjZW50cmFsIGRpcmVjdG9yeSIpOm5ldyBFcnJvcigiQ2FuJ3QgZmluZCBlbmQgb2YgY2VudHJhbCBkaXJlY3RvcnkgOiBpcyB0aGlzIGEgemlwIGZpbGUgPyBJZiBpdCBpcywgc2VlIGh0dHBzOi8vc3R1ay5naXRodWIuaW8vanN6aXAvZG9jdW1lbnRhdGlvbi9ob3d0by9yZWFkX3ppcC5odG1sIik7dGhpcy5yZWFkZXIuc2V0SW5kZXgoYik7dmFyIGc9YjtpZih0aGlzLmNoZWNrU2lnbmF0dXJlKGkuQ0VOVFJBTF9ESVJFQ1RPUllfRU5EKSx0aGlzLnJlYWRCbG9ja0VuZE9mQ2VudHJhbCgpLHRoaXMuZGlza051bWJlcj09PXMuTUFYX1ZBTFVFXzE2QklUU3x8dGhpcy5kaXNrV2l0aENlbnRyYWxEaXJTdGFydD09PXMuTUFYX1ZBTFVFXzE2QklUU3x8dGhpcy5jZW50cmFsRGlyUmVjb3Jkc09uVGhpc0Rpc2s9PT1zLk1BWF9WQUxVRV8xNkJJVFN8fHRoaXMuY2VudHJhbERpclJlY29yZHM9PT1zLk1BWF9WQUxVRV8xNkJJVFN8fHRoaXMuY2VudHJhbERpclNpemU9PT1zLk1BWF9WQUxVRV8zMkJJVFN8fHRoaXMuY2VudHJhbERpck9mZnNldD09PXMuTUFYX1ZBTFVFXzMyQklUUyl7aWYodGhpcy56aXA2ND0hMCwoYj10aGlzLnJlYWRlci5sYXN0SW5kZXhPZlNpZ25hdHVyZShpLlpJUDY0X0NFTlRSQUxfRElSRUNUT1JZX0xPQ0FUT1IpKTwwKXRocm93IG5ldyBFcnJvcigiQ29ycnVwdGVkIHppcDogY2FuJ3QgZmluZCB0aGUgWklQNjQgZW5kIG9mIGNlbnRyYWwgZGlyZWN0b3J5IGxvY2F0b3IiKTtpZih0aGlzLnJlYWRlci5zZXRJbmRleChiKSx0aGlzLmNoZWNrU2lnbmF0dXJlKGkuWklQNjRfQ0VOVFJBTF9ESVJFQ1RPUllfTE9DQVRPUiksdGhpcy5yZWFkQmxvY2taaXA2NEVuZE9mQ2VudHJhbExvY2F0b3IoKSwhdGhpcy5pc1NpZ25hdHVyZSh0aGlzLnJlbGF0aXZlT2Zmc2V0RW5kT2ZaaXA2NENlbnRyYWxEaXIsaS5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9FTkQpJiYodGhpcy5yZWxhdGl2ZU9mZnNldEVuZE9mWmlwNjRDZW50cmFsRGlyPXRoaXMucmVhZGVyLmxhc3RJbmRleE9mU2lnbmF0dXJlKGkuWklQNjRfQ0VOVFJBTF9ESVJFQ1RPUllfRU5EKSx0aGlzLnJlbGF0aXZlT2Zmc2V0RW5kT2ZaaXA2NENlbnRyYWxEaXI8MCkpdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwOiBjYW4ndCBmaW5kIHRoZSBaSVA2NCBlbmQgb2YgY2VudHJhbCBkaXJlY3RvcnkiKTt0aGlzLnJlYWRlci5zZXRJbmRleCh0aGlzLnJlbGF0aXZlT2Zmc2V0RW5kT2ZaaXA2NENlbnRyYWxEaXIpLHRoaXMuY2hlY2tTaWduYXR1cmUoaS5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9FTkQpLHRoaXMucmVhZEJsb2NrWmlwNjRFbmRPZkNlbnRyYWwoKX12YXIgbT10aGlzLmNlbnRyYWxEaXJPZmZzZXQrdGhpcy5jZW50cmFsRGlyU2l6ZTt0aGlzLnppcDY0JiYobSs9MjAsbSs9MTIrdGhpcy56aXA2NEVuZE9mQ2VudHJhbFNpemUpO3ZhciBDPWctbTtpZigwPEMpdGhpcy5pc1NpZ25hdHVyZShnLGkuQ0VOVFJBTF9GSUxFX0hFQURFUil8fCh0aGlzLnJlYWRlci56ZXJvPUMpO2Vsc2UgaWYoQzwwKXRocm93IG5ldyBFcnJvcigiQ29ycnVwdGVkIHppcDogbWlzc2luZyAiK01hdGguYWJzKEMpKyIgYnl0ZXMuIil9LHByZXBhcmVSZWFkZXI6ZnVuY3Rpb24oYil7dGhpcy5yZWFkZXI9cihiKX0sbG9hZDpmdW5jdGlvbihiKXt0aGlzLnByZXBhcmVSZWFkZXIoYiksdGhpcy5yZWFkRW5kT2ZDZW50cmFsKCksdGhpcy5yZWFkQ2VudHJhbERpcigpLHRoaXMucmVhZExvY2FsRmlsZXMoKX19LGUuZXhwb3J0cz1wfSx7Ii4vcmVhZGVyL3JlYWRlckZvciI6MjIsIi4vc2lnbmF0dXJlIjoyMywiLi9zdXBwb3J0IjozMCwiLi91dGlscyI6MzIsIi4vemlwRW50cnkiOjM0fV0sMzQ6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9dCgiLi9yZWFkZXIvcmVhZGVyRm9yIikscz10KCIuL3V0aWxzIiksaT10KCIuL2NvbXByZXNzZWRPYmplY3QiKSxvPXQoIi4vY3JjMzIiKSx1PXQoIi4vdXRmOCIpLHA9dCgiLi9jb21wcmVzc2lvbnMiKSxiPXQoIi4vc3VwcG9ydCIpO2Z1bmN0aW9uIGcobSxDKXt0aGlzLm9wdGlvbnM9bSx0aGlzLmxvYWRPcHRpb25zPUN9Zy5wcm90b3R5cGU9e2lzRW5jcnlwdGVkOmZ1bmN0aW9uKCl7cmV0dXJuKDEmdGhpcy5iaXRGbGFnKT09MX0sdXNlVVRGODpmdW5jdGlvbigpe3JldHVybigyMDQ4JnRoaXMuYml0RmxhZyk9PTIwNDh9LHJlYWRMb2NhbFBhcnQ6ZnVuY3Rpb24obSl7dmFyIEMseTtpZihtLnNraXAoMjIpLHRoaXMuZmlsZU5hbWVMZW5ndGg9bS5yZWFkSW50KDIpLHk9bS5yZWFkSW50KDIpLHRoaXMuZmlsZU5hbWU9bS5yZWFkRGF0YSh0aGlzLmZpbGVOYW1lTGVuZ3RoKSxtLnNraXAoeSksdGhpcy5jb21wcmVzc2VkU2l6ZT09PS0xfHx0aGlzLnVuY29tcHJlc3NlZFNpemU9PT0tMSl0aHJvdyBuZXcgRXJyb3IoIkJ1ZyBvciBjb3JydXB0ZWQgemlwIDogZGlkbid0IGdldCBlbm91Z2ggaW5mb3JtYXRpb24gZnJvbSB0aGUgY2VudHJhbCBkaXJlY3RvcnkgKGNvbXByZXNzZWRTaXplID09PSAtMSB8fCB1bmNvbXByZXNzZWRTaXplID09PSAtMSkiKTtpZigoQz1mdW5jdGlvbihUKXtmb3IodmFyIFAgaW4gcClpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocCxQKSYmcFtQXS5tYWdpYz09PVQpcmV0dXJuIHBbUF07cmV0dXJuIG51bGx9KHRoaXMuY29tcHJlc3Npb25NZXRob2QpKT09PW51bGwpdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwIDogY29tcHJlc3Npb24gIitzLnByZXR0eSh0aGlzLmNvbXByZXNzaW9uTWV0aG9kKSsiIHVua25vd24gKGlubmVyIGZpbGUgOiAiK3MudHJhbnNmb3JtVG8oInN0cmluZyIsdGhpcy5maWxlTmFtZSkrIikiKTt0aGlzLmRlY29tcHJlc3NlZD1uZXcgaSh0aGlzLmNvbXByZXNzZWRTaXplLHRoaXMudW5jb21wcmVzc2VkU2l6ZSx0aGlzLmNyYzMyLEMsbS5yZWFkRGF0YSh0aGlzLmNvbXByZXNzZWRTaXplKSl9LHJlYWRDZW50cmFsUGFydDpmdW5jdGlvbihtKXt0aGlzLnZlcnNpb25NYWRlQnk9bS5yZWFkSW50KDIpLG0uc2tpcCgyKSx0aGlzLmJpdEZsYWc9bS5yZWFkSW50KDIpLHRoaXMuY29tcHJlc3Npb25NZXRob2Q9bS5yZWFkU3RyaW5nKDIpLHRoaXMuZGF0ZT1tLnJlYWREYXRlKCksdGhpcy5jcmMzMj1tLnJlYWRJbnQoNCksdGhpcy5jb21wcmVzc2VkU2l6ZT1tLnJlYWRJbnQoNCksdGhpcy51bmNvbXByZXNzZWRTaXplPW0ucmVhZEludCg0KTt2YXIgQz1tLnJlYWRJbnQoMik7aWYodGhpcy5leHRyYUZpZWxkc0xlbmd0aD1tLnJlYWRJbnQoMiksdGhpcy5maWxlQ29tbWVudExlbmd0aD1tLnJlYWRJbnQoMiksdGhpcy5kaXNrTnVtYmVyU3RhcnQ9bS5yZWFkSW50KDIpLHRoaXMuaW50ZXJuYWxGaWxlQXR0cmlidXRlcz1tLnJlYWRJbnQoMiksdGhpcy5leHRlcm5hbEZpbGVBdHRyaWJ1dGVzPW0ucmVhZEludCg0KSx0aGlzLmxvY2FsSGVhZGVyT2Zmc2V0PW0ucmVhZEludCg0KSx0aGlzLmlzRW5jcnlwdGVkKCkpdGhyb3cgbmV3IEVycm9yKCJFbmNyeXB0ZWQgemlwIGFyZSBub3Qgc3VwcG9ydGVkIik7bS5za2lwKEMpLHRoaXMucmVhZEV4dHJhRmllbGRzKG0pLHRoaXMucGFyc2VaSVA2NEV4dHJhRmllbGQobSksdGhpcy5maWxlQ29tbWVudD1tLnJlYWREYXRhKHRoaXMuZmlsZUNvbW1lbnRMZW5ndGgpfSxwcm9jZXNzQXR0cmlidXRlczpmdW5jdGlvbigpe3RoaXMudW5peFBlcm1pc3Npb25zPW51bGwsdGhpcy5kb3NQZXJtaXNzaW9ucz1udWxsO3ZhciBtPXRoaXMudmVyc2lvbk1hZGVCeT4+ODt0aGlzLmRpcj0hISgxNiZ0aGlzLmV4dGVybmFsRmlsZUF0dHJpYnV0ZXMpLG09PTAmJih0aGlzLmRvc1Blcm1pc3Npb25zPTYzJnRoaXMuZXh0ZXJuYWxGaWxlQXR0cmlidXRlcyksbT09MyYmKHRoaXMudW5peFBlcm1pc3Npb25zPXRoaXMuZXh0ZXJuYWxGaWxlQXR0cmlidXRlcz4+MTYmNjU1MzUpLHRoaXMuZGlyfHx0aGlzLmZpbGVOYW1lU3RyLnNsaWNlKC0xKSE9PSIvInx8KHRoaXMuZGlyPSEwKX0scGFyc2VaSVA2NEV4dHJhRmllbGQ6ZnVuY3Rpb24oKXtpZih0aGlzLmV4dHJhRmllbGRzWzFdKXt2YXIgbT1yKHRoaXMuZXh0cmFGaWVsZHNbMV0udmFsdWUpO3RoaXMudW5jb21wcmVzc2VkU2l6ZT09PXMuTUFYX1ZBTFVFXzMyQklUUyYmKHRoaXMudW5jb21wcmVzc2VkU2l6ZT1tLnJlYWRJbnQoOCkpLHRoaXMuY29tcHJlc3NlZFNpemU9PT1zLk1BWF9WQUxVRV8zMkJJVFMmJih0aGlzLmNvbXByZXNzZWRTaXplPW0ucmVhZEludCg4KSksdGhpcy5sb2NhbEhlYWRlck9mZnNldD09PXMuTUFYX1ZBTFVFXzMyQklUUyYmKHRoaXMubG9jYWxIZWFkZXJPZmZzZXQ9bS5yZWFkSW50KDgpKSx0aGlzLmRpc2tOdW1iZXJTdGFydD09PXMuTUFYX1ZBTFVFXzMyQklUUyYmKHRoaXMuZGlza051bWJlclN0YXJ0PW0ucmVhZEludCg0KSl9fSxyZWFkRXh0cmFGaWVsZHM6ZnVuY3Rpb24obSl7dmFyIEMseSxULFA9bS5pbmRleCt0aGlzLmV4dHJhRmllbGRzTGVuZ3RoO2Zvcih0aGlzLmV4dHJhRmllbGRzfHwodGhpcy5leHRyYUZpZWxkcz17fSk7bS5pbmRleCs0PFA7KUM9bS5yZWFkSW50KDIpLHk9bS5yZWFkSW50KDIpLFQ9bS5yZWFkRGF0YSh5KSx0aGlzLmV4dHJhRmllbGRzW0NdPXtpZDpDLGxlbmd0aDp5LHZhbHVlOlR9O20uc2V0SW5kZXgoUCl9LGhhbmRsZVVURjg6ZnVuY3Rpb24oKXt2YXIgbT1iLnVpbnQ4YXJyYXk/InVpbnQ4YXJyYXkiOiJhcnJheSI7aWYodGhpcy51c2VVVEY4KCkpdGhpcy5maWxlTmFtZVN0cj11LnV0ZjhkZWNvZGUodGhpcy5maWxlTmFtZSksdGhpcy5maWxlQ29tbWVudFN0cj11LnV0ZjhkZWNvZGUodGhpcy5maWxlQ29tbWVudCk7ZWxzZXt2YXIgQz10aGlzLmZpbmRFeHRyYUZpZWxkVW5pY29kZVBhdGgoKTtpZihDIT09bnVsbCl0aGlzLmZpbGVOYW1lU3RyPUM7ZWxzZXt2YXIgeT1zLnRyYW5zZm9ybVRvKG0sdGhpcy5maWxlTmFtZSk7dGhpcy5maWxlTmFtZVN0cj10aGlzLmxvYWRPcHRpb25zLmRlY29kZUZpbGVOYW1lKHkpfXZhciBUPXRoaXMuZmluZEV4dHJhRmllbGRVbmljb2RlQ29tbWVudCgpO2lmKFQhPT1udWxsKXRoaXMuZmlsZUNvbW1lbnRTdHI9VDtlbHNle3ZhciBQPXMudHJhbnNmb3JtVG8obSx0aGlzLmZpbGVDb21tZW50KTt0aGlzLmZpbGVDb21tZW50U3RyPXRoaXMubG9hZE9wdGlvbnMuZGVjb2RlRmlsZU5hbWUoUCl9fX0sZmluZEV4dHJhRmllbGRVbmljb2RlUGF0aDpmdW5jdGlvbigpe3ZhciBtPXRoaXMuZXh0cmFGaWVsZHNbMjg3ODldO2lmKG0pe3ZhciBDPXIobS52YWx1ZSk7cmV0dXJuIEMucmVhZEludCgxKSE9PTF8fG8odGhpcy5maWxlTmFtZSkhPT1DLnJlYWRJbnQoNCk/bnVsbDp1LnV0ZjhkZWNvZGUoQy5yZWFkRGF0YShtLmxlbmd0aC01KSl9cmV0dXJuIG51bGx9LGZpbmRFeHRyYUZpZWxkVW5pY29kZUNvbW1lbnQ6ZnVuY3Rpb24oKXt2YXIgbT10aGlzLmV4dHJhRmllbGRzWzI1NDYxXTtpZihtKXt2YXIgQz1yKG0udmFsdWUpO3JldHVybiBDLnJlYWRJbnQoMSkhPT0xfHxvKHRoaXMuZmlsZUNvbW1lbnQpIT09Qy5yZWFkSW50KDQpP251bGw6dS51dGY4ZGVjb2RlKEMucmVhZERhdGEobS5sZW5ndGgtNSkpfXJldHVybiBudWxsfX0sZS5leHBvcnRzPWd9LHsiLi9jb21wcmVzc2VkT2JqZWN0IjoyLCIuL2NvbXByZXNzaW9ucyI6MywiLi9jcmMzMiI6NCwiLi9yZWFkZXIvcmVhZGVyRm9yIjoyMiwiLi9zdXBwb3J0IjozMCwiLi91dGY4IjozMSwiLi91dGlscyI6MzJ9XSwzNTpbZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKEMseSxUKXt0aGlzLm5hbWU9Qyx0aGlzLmRpcj1ULmRpcix0aGlzLmRhdGU9VC5kYXRlLHRoaXMuY29tbWVudD1ULmNvbW1lbnQsdGhpcy51bml4UGVybWlzc2lvbnM9VC51bml4UGVybWlzc2lvbnMsdGhpcy5kb3NQZXJtaXNzaW9ucz1ULmRvc1Blcm1pc3Npb25zLHRoaXMuX2RhdGE9eSx0aGlzLl9kYXRhQmluYXJ5PVQuYmluYXJ5LHRoaXMub3B0aW9ucz17Y29tcHJlc3Npb246VC5jb21wcmVzc2lvbixjb21wcmVzc2lvbk9wdGlvbnM6VC5jb21wcmVzc2lvbk9wdGlvbnN9fXZhciBzPXQoIi4vc3RyZWFtL1N0cmVhbUhlbHBlciIpLGk9dCgiLi9zdHJlYW0vRGF0YVdvcmtlciIpLG89dCgiLi91dGY4IiksdT10KCIuL2NvbXByZXNzZWRPYmplY3QiKSxwPXQoIi4vc3RyZWFtL0dlbmVyaWNXb3JrZXIiKTtyLnByb3RvdHlwZT17aW50ZXJuYWxTdHJlYW06ZnVuY3Rpb24oQyl7dmFyIHk9bnVsbCxUPSJzdHJpbmciO3RyeXtpZighQyl0aHJvdyBuZXcgRXJyb3IoIk5vIG91dHB1dCB0eXBlIHNwZWNpZmllZC4iKTt2YXIgUD0oVD1DLnRvTG93ZXJDYXNlKCkpPT09InN0cmluZyJ8fFQ9PT0idGV4dCI7VCE9PSJiaW5hcnlzdHJpbmciJiZUIT09InRleHQifHwoVD0ic3RyaW5nIikseT10aGlzLl9kZWNvbXByZXNzV29ya2VyKCk7dmFyIGM9IXRoaXMuX2RhdGFCaW5hcnk7YyYmIVAmJih5PXkucGlwZShuZXcgby5VdGY4RW5jb2RlV29ya2VyKSksIWMmJlAmJih5PXkucGlwZShuZXcgby5VdGY4RGVjb2RlV29ya2VyKSl9Y2F0Y2gobCl7KHk9bmV3IHAoImVycm9yIikpLmVycm9yKGwpfXJldHVybiBuZXcgcyh5LFQsIiIpfSxhc3luYzpmdW5jdGlvbihDLHkpe3JldHVybiB0aGlzLmludGVybmFsU3RyZWFtKEMpLmFjY3VtdWxhdGUoeSl9LG5vZGVTdHJlYW06ZnVuY3Rpb24oQyx5KXtyZXR1cm4gdGhpcy5pbnRlcm5hbFN0cmVhbShDfHwibm9kZWJ1ZmZlciIpLnRvTm9kZWpzU3RyZWFtKHkpfSxfY29tcHJlc3NXb3JrZXI6ZnVuY3Rpb24oQyx5KXtpZih0aGlzLl9kYXRhIGluc3RhbmNlb2YgdSYmdGhpcy5fZGF0YS5jb21wcmVzc2lvbi5tYWdpYz09PUMubWFnaWMpcmV0dXJuIHRoaXMuX2RhdGEuZ2V0Q29tcHJlc3NlZFdvcmtlcigpO3ZhciBUPXRoaXMuX2RlY29tcHJlc3NXb3JrZXIoKTtyZXR1cm4gdGhpcy5fZGF0YUJpbmFyeXx8KFQ9VC5waXBlKG5ldyBvLlV0ZjhFbmNvZGVXb3JrZXIpKSx1LmNyZWF0ZVdvcmtlckZyb20oVCxDLHkpfSxfZGVjb21wcmVzc1dvcmtlcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kYXRhIGluc3RhbmNlb2YgdT90aGlzLl9kYXRhLmdldENvbnRlbnRXb3JrZXIoKTp0aGlzLl9kYXRhIGluc3RhbmNlb2YgcD90aGlzLl9kYXRhOm5ldyBpKHRoaXMuX2RhdGEpfX07Zm9yKHZhciBiPVsiYXNUZXh0IiwiYXNCaW5hcnkiLCJhc05vZGVCdWZmZXIiLCJhc1VpbnQ4QXJyYXkiLCJhc0FycmF5QnVmZmVyIl0sZz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiVGhpcyBtZXRob2QgaGFzIGJlZW4gcmVtb3ZlZCBpbiBKU1ppcCAzLjAsIHBsZWFzZSBjaGVjayB0aGUgdXBncmFkZSBndWlkZS4iKX0sbT0wO208Yi5sZW5ndGg7bSsrKXIucHJvdG90eXBlW2JbbV1dPWc7ZS5leHBvcnRzPXJ9LHsiLi9jb21wcmVzc2VkT2JqZWN0IjoyLCIuL3N0cmVhbS9EYXRhV29ya2VyIjoyNywiLi9zdHJlYW0vR2VuZXJpY1dvcmtlciI6MjgsIi4vc3RyZWFtL1N0cmVhbUhlbHBlciI6MjksIi4vdXRmOCI6MzF9XSwzNjpbZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbihyKXsidXNlIHN0cmljdCI7dmFyIHMsaSxvPXIuTXV0YXRpb25PYnNlcnZlcnx8ci5XZWJLaXRNdXRhdGlvbk9ic2VydmVyO2lmKG8pe3ZhciB1PTAscD1uZXcgbyhDKSxiPXIuZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIpO3Aub2JzZXJ2ZShiLHtjaGFyYWN0ZXJEYXRhOiEwfSkscz1mdW5jdGlvbigpe2IuZGF0YT11PSsrdSUyfX1lbHNlIGlmKHIuc2V0SW1tZWRpYXRlfHxyLk1lc3NhZ2VDaGFubmVsPT09dm9pZCAwKXM9ImRvY3VtZW50ImluIHImJiJvbnJlYWR5c3RhdGVjaGFuZ2UiaW4gci5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKT9mdW5jdGlvbigpe3ZhciB5PXIuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7eS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtDKCkseS5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCx5LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoeSkseT1udWxsfSxyLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZCh5KX06ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KEMsMCl9O2Vsc2V7dmFyIGc9bmV3IHIuTWVzc2FnZUNoYW5uZWw7Zy5wb3J0MS5vbm1lc3NhZ2U9QyxzPWZ1bmN0aW9uKCl7Zy5wb3J0Mi5wb3N0TWVzc2FnZSgwKX19dmFyIG09W107ZnVuY3Rpb24gQygpe3ZhciB5LFQ7aT0hMDtmb3IodmFyIFA9bS5sZW5ndGg7UDspe2ZvcihUPW0sbT1bXSx5PS0xOysreTxQOylUW3ldKCk7UD1tLmxlbmd0aH1pPSExfWUuZXhwb3J0cz1mdW5jdGlvbih5KXttLnB1c2goeSkhPT0xfHxpfHxzKCl9fSkuY2FsbCh0aGlzLHR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6e30pfSx7fV0sMzc6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9dCgiaW1tZWRpYXRlIik7ZnVuY3Rpb24gcygpe312YXIgaT17fSxvPVsiUkVKRUNURUQiXSx1PVsiRlVMRklMTEVEIl0scD1bIlBFTkRJTkciXTtmdW5jdGlvbiBiKFApe2lmKHR5cGVvZiBQIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoInJlc29sdmVyIG11c3QgYmUgYSBmdW5jdGlvbiIpO3RoaXMuc3RhdGU9cCx0aGlzLnF1ZXVlPVtdLHRoaXMub3V0Y29tZT12b2lkIDAsUCE9PXMmJnkodGhpcyxQKX1mdW5jdGlvbiBnKFAsYyxsKXt0aGlzLnByb21pc2U9UCx0eXBlb2YgYz09ImZ1bmN0aW9uIiYmKHRoaXMub25GdWxmaWxsZWQ9Yyx0aGlzLmNhbGxGdWxmaWxsZWQ9dGhpcy5vdGhlckNhbGxGdWxmaWxsZWQpLHR5cGVvZiBsPT0iZnVuY3Rpb24iJiYodGhpcy5vblJlamVjdGVkPWwsdGhpcy5jYWxsUmVqZWN0ZWQ9dGhpcy5vdGhlckNhbGxSZWplY3RlZCl9ZnVuY3Rpb24gbShQLGMsbCl7cihmdW5jdGlvbigpe3ZhciBoO3RyeXtoPWMobCl9Y2F0Y2goXyl7cmV0dXJuIGkucmVqZWN0KFAsXyl9aD09PVA/aS5yZWplY3QoUCxuZXcgVHlwZUVycm9yKCJDYW5ub3QgcmVzb2x2ZSBwcm9taXNlIHdpdGggaXRzZWxmIikpOmkucmVzb2x2ZShQLGgpfSl9ZnVuY3Rpb24gQyhQKXt2YXIgYz1QJiZQLnRoZW47aWYoUCYmKHR5cGVvZiBQPT0ib2JqZWN0Inx8dHlwZW9mIFA9PSJmdW5jdGlvbiIpJiZ0eXBlb2YgYz09ImZ1bmN0aW9uIilyZXR1cm4gZnVuY3Rpb24oKXtjLmFwcGx5KFAsYXJndW1lbnRzKX19ZnVuY3Rpb24geShQLGMpe3ZhciBsPSExO2Z1bmN0aW9uIGgoTyl7bHx8KGw9ITAsaS5yZWplY3QoUCxPKSl9ZnVuY3Rpb24gXyhPKXtsfHwobD0hMCxpLnJlc29sdmUoUCxPKSl9dmFyIEY9VChmdW5jdGlvbigpe2MoXyxoKX0pO0Yuc3RhdHVzPT09ImVycm9yIiYmaChGLnZhbHVlKX1mdW5jdGlvbiBUKFAsYyl7dmFyIGw9e307dHJ5e2wudmFsdWU9UChjKSxsLnN0YXR1cz0ic3VjY2VzcyJ9Y2F0Y2goaCl7bC5zdGF0dXM9ImVycm9yIixsLnZhbHVlPWh9cmV0dXJuIGx9KGUuZXhwb3J0cz1iKS5wcm90b3R5cGUuZmluYWxseT1mdW5jdGlvbihQKXtpZih0eXBlb2YgUCE9ImZ1bmN0aW9uIilyZXR1cm4gdGhpczt2YXIgYz10aGlzLmNvbnN0cnVjdG9yO3JldHVybiB0aGlzLnRoZW4oZnVuY3Rpb24obCl7cmV0dXJuIGMucmVzb2x2ZShQKCkpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbH0pfSxmdW5jdGlvbihsKXtyZXR1cm4gYy5yZXNvbHZlKFAoKSkudGhlbihmdW5jdGlvbigpe3Rocm93IGx9KX0pfSxiLnByb3RvdHlwZS5jYXRjaD1mdW5jdGlvbihQKXtyZXR1cm4gdGhpcy50aGVuKG51bGwsUCl9LGIucHJvdG90eXBlLnRoZW49ZnVuY3Rpb24oUCxjKXtpZih0eXBlb2YgUCE9ImZ1bmN0aW9uIiYmdGhpcy5zdGF0ZT09PXV8fHR5cGVvZiBjIT0iZnVuY3Rpb24iJiZ0aGlzLnN0YXRlPT09bylyZXR1cm4gdGhpczt2YXIgbD1uZXcgdGhpcy5jb25zdHJ1Y3RvcihzKTtyZXR1cm4gdGhpcy5zdGF0ZSE9PXA/bShsLHRoaXMuc3RhdGU9PT11P1A6Yyx0aGlzLm91dGNvbWUpOnRoaXMucXVldWUucHVzaChuZXcgZyhsLFAsYykpLGx9LGcucHJvdG90eXBlLmNhbGxGdWxmaWxsZWQ9ZnVuY3Rpb24oUCl7aS5yZXNvbHZlKHRoaXMucHJvbWlzZSxQKX0sZy5wcm90b3R5cGUub3RoZXJDYWxsRnVsZmlsbGVkPWZ1bmN0aW9uKFApe20odGhpcy5wcm9taXNlLHRoaXMub25GdWxmaWxsZWQsUCl9LGcucHJvdG90eXBlLmNhbGxSZWplY3RlZD1mdW5jdGlvbihQKXtpLnJlamVjdCh0aGlzLnByb21pc2UsUCl9LGcucHJvdG90eXBlLm90aGVyQ2FsbFJlamVjdGVkPWZ1bmN0aW9uKFApe20odGhpcy5wcm9taXNlLHRoaXMub25SZWplY3RlZCxQKX0saS5yZXNvbHZlPWZ1bmN0aW9uKFAsYyl7dmFyIGw9VChDLGMpO2lmKGwuc3RhdHVzPT09ImVycm9yIilyZXR1cm4gaS5yZWplY3QoUCxsLnZhbHVlKTt2YXIgaD1sLnZhbHVlO2lmKGgpeShQLGgpO2Vsc2V7UC5zdGF0ZT11LFAub3V0Y29tZT1jO2Zvcih2YXIgXz0tMSxGPVAucXVldWUubGVuZ3RoOysrXzxGOylQLnF1ZXVlW19dLmNhbGxGdWxmaWxsZWQoYyl9cmV0dXJuIFB9LGkucmVqZWN0PWZ1bmN0aW9uKFAsYyl7UC5zdGF0ZT1vLFAub3V0Y29tZT1jO2Zvcih2YXIgbD0tMSxoPVAucXVldWUubGVuZ3RoOysrbDxoOylQLnF1ZXVlW2xdLmNhbGxSZWplY3RlZChjKTtyZXR1cm4gUH0sYi5yZXNvbHZlPWZ1bmN0aW9uKFApe3JldHVybiBQIGluc3RhbmNlb2YgdGhpcz9QOmkucmVzb2x2ZShuZXcgdGhpcyhzKSxQKX0sYi5yZWplY3Q9ZnVuY3Rpb24oUCl7dmFyIGM9bmV3IHRoaXMocyk7cmV0dXJuIGkucmVqZWN0KGMsUCl9LGIuYWxsPWZ1bmN0aW9uKFApe3ZhciBjPXRoaXM7aWYoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFApIT09IltvYmplY3QgQXJyYXldIilyZXR1cm4gdGhpcy5yZWplY3QobmV3IFR5cGVFcnJvcigibXVzdCBiZSBhbiBhcnJheSIpKTt2YXIgbD1QLmxlbmd0aCxoPSExO2lmKCFsKXJldHVybiB0aGlzLnJlc29sdmUoW10pO2Zvcih2YXIgXz1uZXcgQXJyYXkobCksRj0wLE89LTEsZj1uZXcgdGhpcyhzKTsrK088bDspVShQW09dLE8pO3JldHVybiBmO2Z1bmN0aW9uIFUoWCxRKXtjLnJlc29sdmUoWCkudGhlbihmdW5jdGlvbihFKXtfW1FdPUUsKytGIT09bHx8aHx8KGg9ITAsaS5yZXNvbHZlKGYsXykpfSxmdW5jdGlvbihFKXtofHwoaD0hMCxpLnJlamVjdChmLEUpKX0pfX0sYi5yYWNlPWZ1bmN0aW9uKFApe3ZhciBjPXRoaXM7aWYoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFApIT09IltvYmplY3QgQXJyYXldIilyZXR1cm4gdGhpcy5yZWplY3QobmV3IFR5cGVFcnJvcigibXVzdCBiZSBhbiBhcnJheSIpKTt2YXIgbD1QLmxlbmd0aCxoPSExO2lmKCFsKXJldHVybiB0aGlzLnJlc29sdmUoW10pO2Zvcih2YXIgXz0tMSxGPW5ldyB0aGlzKHMpOysrXzxsOylPPVBbX10sYy5yZXNvbHZlKE8pLnRoZW4oZnVuY3Rpb24oZil7aHx8KGg9ITAsaS5yZXNvbHZlKEYsZikpfSxmdW5jdGlvbihmKXtofHwoaD0hMCxpLnJlamVjdChGLGYpKX0pO3ZhciBPO3JldHVybiBGfX0se2ltbWVkaWF0ZTozNn1dLDM4OltmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPXt9OygwLHQoIi4vbGliL3V0aWxzL2NvbW1vbiIpLmFzc2lnbikocix0KCIuL2xpYi9kZWZsYXRlIiksdCgiLi9saWIvaW5mbGF0ZSIpLHQoIi4vbGliL3psaWIvY29uc3RhbnRzIikpLGUuZXhwb3J0cz1yfSx7Ii4vbGliL2RlZmxhdGUiOjM5LCIuL2xpYi9pbmZsYXRlIjo0MCwiLi9saWIvdXRpbHMvY29tbW9uIjo0MSwiLi9saWIvemxpYi9jb25zdGFudHMiOjQ0fV0sMzk6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9dCgiLi96bGliL2RlZmxhdGUiKSxzPXQoIi4vdXRpbHMvY29tbW9uIiksaT10KCIuL3V0aWxzL3N0cmluZ3MiKSxvPXQoIi4vemxpYi9tZXNzYWdlcyIpLHU9dCgiLi96bGliL3pzdHJlYW0iKSxwPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsYj0wLGc9LTEsbT0wLEM9ODtmdW5jdGlvbiB5KFApe2lmKCEodGhpcyBpbnN0YW5jZW9mIHkpKXJldHVybiBuZXcgeShQKTt0aGlzLm9wdGlvbnM9cy5hc3NpZ24oe2xldmVsOmcsbWV0aG9kOkMsY2h1bmtTaXplOjE2Mzg0LHdpbmRvd0JpdHM6MTUsbWVtTGV2ZWw6OCxzdHJhdGVneTptLHRvOiIifSxQfHx7fSk7dmFyIGM9dGhpcy5vcHRpb25zO2MucmF3JiYwPGMud2luZG93Qml0cz9jLndpbmRvd0JpdHM9LWMud2luZG93Qml0czpjLmd6aXAmJjA8Yy53aW5kb3dCaXRzJiZjLndpbmRvd0JpdHM8MTYmJihjLndpbmRvd0JpdHMrPTE2KSx0aGlzLmVycj0wLHRoaXMubXNnPSIiLHRoaXMuZW5kZWQ9ITEsdGhpcy5jaHVua3M9W10sdGhpcy5zdHJtPW5ldyB1LHRoaXMuc3RybS5hdmFpbF9vdXQ9MDt2YXIgbD1yLmRlZmxhdGVJbml0Mih0aGlzLnN0cm0sYy5sZXZlbCxjLm1ldGhvZCxjLndpbmRvd0JpdHMsYy5tZW1MZXZlbCxjLnN0cmF0ZWd5KTtpZihsIT09Yil0aHJvdyBuZXcgRXJyb3Iob1tsXSk7aWYoYy5oZWFkZXImJnIuZGVmbGF0ZVNldEhlYWRlcih0aGlzLnN0cm0sYy5oZWFkZXIpLGMuZGljdGlvbmFyeSl7dmFyIGg7aWYoaD10eXBlb2YgYy5kaWN0aW9uYXJ5PT0ic3RyaW5nIj9pLnN0cmluZzJidWYoYy5kaWN0aW9uYXJ5KTpwLmNhbGwoYy5kaWN0aW9uYXJ5KT09PSJbb2JqZWN0IEFycmF5QnVmZmVyXSI/bmV3IFVpbnQ4QXJyYXkoYy5kaWN0aW9uYXJ5KTpjLmRpY3Rpb25hcnksKGw9ci5kZWZsYXRlU2V0RGljdGlvbmFyeSh0aGlzLnN0cm0saCkpIT09Yil0aHJvdyBuZXcgRXJyb3Iob1tsXSk7dGhpcy5fZGljdF9zZXQ9ITB9fWZ1bmN0aW9uIFQoUCxjKXt2YXIgbD1uZXcgeShjKTtpZihsLnB1c2goUCwhMCksbC5lcnIpdGhyb3cgbC5tc2d8fG9bbC5lcnJdO3JldHVybiBsLnJlc3VsdH15LnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKFAsYyl7dmFyIGwsaCxfPXRoaXMuc3RybSxGPXRoaXMub3B0aW9ucy5jaHVua1NpemU7aWYodGhpcy5lbmRlZClyZXR1cm4hMTtoPWM9PT1+fmM/YzpjPT09ITA/NDowLHR5cGVvZiBQPT0ic3RyaW5nIj9fLmlucHV0PWkuc3RyaW5nMmJ1ZihQKTpwLmNhbGwoUCk9PT0iW29iamVjdCBBcnJheUJ1ZmZlcl0iP18uaW5wdXQ9bmV3IFVpbnQ4QXJyYXkoUCk6Xy5pbnB1dD1QLF8ubmV4dF9pbj0wLF8uYXZhaWxfaW49Xy5pbnB1dC5sZW5ndGg7ZG97aWYoXy5hdmFpbF9vdXQ9PT0wJiYoXy5vdXRwdXQ9bmV3IHMuQnVmOChGKSxfLm5leHRfb3V0PTAsXy5hdmFpbF9vdXQ9RiksKGw9ci5kZWZsYXRlKF8saCkpIT09MSYmbCE9PWIpcmV0dXJuIHRoaXMub25FbmQobCksISh0aGlzLmVuZGVkPSEwKTtfLmF2YWlsX291dCE9PTAmJihfLmF2YWlsX2luIT09MHx8aCE9PTQmJmghPT0yKXx8KHRoaXMub3B0aW9ucy50bz09PSJzdHJpbmciP3RoaXMub25EYXRhKGkuYnVmMmJpbnN0cmluZyhzLnNocmlua0J1ZihfLm91dHB1dCxfLm5leHRfb3V0KSkpOnRoaXMub25EYXRhKHMuc2hyaW5rQnVmKF8ub3V0cHV0LF8ubmV4dF9vdXQpKSl9d2hpbGUoKDA8Xy5hdmFpbF9pbnx8Xy5hdmFpbF9vdXQ9PT0wKSYmbCE9PTEpO3JldHVybiBoPT09ND8obD1yLmRlZmxhdGVFbmQodGhpcy5zdHJtKSx0aGlzLm9uRW5kKGwpLHRoaXMuZW5kZWQ9ITAsbD09PWIpOmghPT0yfHwodGhpcy5vbkVuZChiKSwhKF8uYXZhaWxfb3V0PTApKX0seS5wcm90b3R5cGUub25EYXRhPWZ1bmN0aW9uKFApe3RoaXMuY2h1bmtzLnB1c2goUCl9LHkucHJvdG90eXBlLm9uRW5kPWZ1bmN0aW9uKFApe1A9PT1iJiYodGhpcy5vcHRpb25zLnRvPT09InN0cmluZyI/dGhpcy5yZXN1bHQ9dGhpcy5jaHVua3Muam9pbigiIik6dGhpcy5yZXN1bHQ9cy5mbGF0dGVuQ2h1bmtzKHRoaXMuY2h1bmtzKSksdGhpcy5jaHVua3M9W10sdGhpcy5lcnI9UCx0aGlzLm1zZz10aGlzLnN0cm0ubXNnfSxuLkRlZmxhdGU9eSxuLmRlZmxhdGU9VCxuLmRlZmxhdGVSYXc9ZnVuY3Rpb24oUCxjKXtyZXR1cm4oYz1jfHx7fSkucmF3PSEwLFQoUCxjKX0sbi5nemlwPWZ1bmN0aW9uKFAsYyl7cmV0dXJuKGM9Y3x8e30pLmd6aXA9ITAsVChQLGMpfX0seyIuL3V0aWxzL2NvbW1vbiI6NDEsIi4vdXRpbHMvc3RyaW5ncyI6NDIsIi4vemxpYi9kZWZsYXRlIjo0NiwiLi96bGliL21lc3NhZ2VzIjo1MSwiLi96bGliL3pzdHJlYW0iOjUzfV0sNDA6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9dCgiLi96bGliL2luZmxhdGUiKSxzPXQoIi4vdXRpbHMvY29tbW9uIiksaT10KCIuL3V0aWxzL3N0cmluZ3MiKSxvPXQoIi4vemxpYi9jb25zdGFudHMiKSx1PXQoIi4vemxpYi9tZXNzYWdlcyIpLHA9dCgiLi96bGliL3pzdHJlYW0iKSxiPXQoIi4vemxpYi9nemhlYWRlciIpLGc9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBtKHkpe2lmKCEodGhpcyBpbnN0YW5jZW9mIG0pKXJldHVybiBuZXcgbSh5KTt0aGlzLm9wdGlvbnM9cy5hc3NpZ24oe2NodW5rU2l6ZToxNjM4NCx3aW5kb3dCaXRzOjAsdG86IiJ9LHl8fHt9KTt2YXIgVD10aGlzLm9wdGlvbnM7VC5yYXcmJjA8PVQud2luZG93Qml0cyYmVC53aW5kb3dCaXRzPDE2JiYoVC53aW5kb3dCaXRzPS1ULndpbmRvd0JpdHMsVC53aW5kb3dCaXRzPT09MCYmKFQud2luZG93Qml0cz0tMTUpKSwhKDA8PVQud2luZG93Qml0cyYmVC53aW5kb3dCaXRzPDE2KXx8eSYmeS53aW5kb3dCaXRzfHwoVC53aW5kb3dCaXRzKz0zMiksMTU8VC53aW5kb3dCaXRzJiZULndpbmRvd0JpdHM8NDgmJiEoMTUmVC53aW5kb3dCaXRzKSYmKFQud2luZG93Qml0c3w9MTUpLHRoaXMuZXJyPTAsdGhpcy5tc2c9IiIsdGhpcy5lbmRlZD0hMSx0aGlzLmNodW5rcz1bXSx0aGlzLnN0cm09bmV3IHAsdGhpcy5zdHJtLmF2YWlsX291dD0wO3ZhciBQPXIuaW5mbGF0ZUluaXQyKHRoaXMuc3RybSxULndpbmRvd0JpdHMpO2lmKFAhPT1vLlpfT0spdGhyb3cgbmV3IEVycm9yKHVbUF0pO3RoaXMuaGVhZGVyPW5ldyBiLHIuaW5mbGF0ZUdldEhlYWRlcih0aGlzLnN0cm0sdGhpcy5oZWFkZXIpfWZ1bmN0aW9uIEMoeSxUKXt2YXIgUD1uZXcgbShUKTtpZihQLnB1c2goeSwhMCksUC5lcnIpdGhyb3cgUC5tc2d8fHVbUC5lcnJdO3JldHVybiBQLnJlc3VsdH1tLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKHksVCl7dmFyIFAsYyxsLGgsXyxGLE89dGhpcy5zdHJtLGY9dGhpcy5vcHRpb25zLmNodW5rU2l6ZSxVPXRoaXMub3B0aW9ucy5kaWN0aW9uYXJ5LFg9ITE7aWYodGhpcy5lbmRlZClyZXR1cm4hMTtjPVQ9PT1+flQ/VDpUPT09ITA/by5aX0ZJTklTSDpvLlpfTk9fRkxVU0gsdHlwZW9mIHk9PSJzdHJpbmciP08uaW5wdXQ9aS5iaW5zdHJpbmcyYnVmKHkpOmcuY2FsbCh5KT09PSJbb2JqZWN0IEFycmF5QnVmZmVyXSI/Ty5pbnB1dD1uZXcgVWludDhBcnJheSh5KTpPLmlucHV0PXksTy5uZXh0X2luPTAsTy5hdmFpbF9pbj1PLmlucHV0Lmxlbmd0aDtkb3tpZihPLmF2YWlsX291dD09PTAmJihPLm91dHB1dD1uZXcgcy5CdWY4KGYpLE8ubmV4dF9vdXQ9MCxPLmF2YWlsX291dD1mKSwoUD1yLmluZmxhdGUoTyxvLlpfTk9fRkxVU0gpKT09PW8uWl9ORUVEX0RJQ1QmJlUmJihGPXR5cGVvZiBVPT0ic3RyaW5nIj9pLnN0cmluZzJidWYoVSk6Zy5jYWxsKFUpPT09IltvYmplY3QgQXJyYXlCdWZmZXJdIj9uZXcgVWludDhBcnJheShVKTpVLFA9ci5pbmZsYXRlU2V0RGljdGlvbmFyeSh0aGlzLnN0cm0sRikpLFA9PT1vLlpfQlVGX0VSUk9SJiZYPT09ITAmJihQPW8uWl9PSyxYPSExKSxQIT09by5aX1NUUkVBTV9FTkQmJlAhPT1vLlpfT0spcmV0dXJuIHRoaXMub25FbmQoUCksISh0aGlzLmVuZGVkPSEwKTtPLm5leHRfb3V0JiYoTy5hdmFpbF9vdXQhPT0wJiZQIT09by5aX1NUUkVBTV9FTkQmJihPLmF2YWlsX2luIT09MHx8YyE9PW8uWl9GSU5JU0gmJmMhPT1vLlpfU1lOQ19GTFVTSCl8fCh0aGlzLm9wdGlvbnMudG89PT0ic3RyaW5nIj8obD1pLnV0Zjhib3JkZXIoTy5vdXRwdXQsTy5uZXh0X291dCksaD1PLm5leHRfb3V0LWwsXz1pLmJ1ZjJzdHJpbmcoTy5vdXRwdXQsbCksTy5uZXh0X291dD1oLE8uYXZhaWxfb3V0PWYtaCxoJiZzLmFycmF5U2V0KE8ub3V0cHV0LE8ub3V0cHV0LGwsaCwwKSx0aGlzLm9uRGF0YShfKSk6dGhpcy5vbkRhdGEocy5zaHJpbmtCdWYoTy5vdXRwdXQsTy5uZXh0X291dCkpKSksTy5hdmFpbF9pbj09PTAmJk8uYXZhaWxfb3V0PT09MCYmKFg9ITApfXdoaWxlKCgwPE8uYXZhaWxfaW58fE8uYXZhaWxfb3V0PT09MCkmJlAhPT1vLlpfU1RSRUFNX0VORCk7cmV0dXJuIFA9PT1vLlpfU1RSRUFNX0VORCYmKGM9by5aX0ZJTklTSCksYz09PW8uWl9GSU5JU0g/KFA9ci5pbmZsYXRlRW5kKHRoaXMuc3RybSksdGhpcy5vbkVuZChQKSx0aGlzLmVuZGVkPSEwLFA9PT1vLlpfT0spOmMhPT1vLlpfU1lOQ19GTFVTSHx8KHRoaXMub25FbmQoby5aX09LKSwhKE8uYXZhaWxfb3V0PTApKX0sbS5wcm90b3R5cGUub25EYXRhPWZ1bmN0aW9uKHkpe3RoaXMuY2h1bmtzLnB1c2goeSl9LG0ucHJvdG90eXBlLm9uRW5kPWZ1bmN0aW9uKHkpe3k9PT1vLlpfT0smJih0aGlzLm9wdGlvbnMudG89PT0ic3RyaW5nIj90aGlzLnJlc3VsdD10aGlzLmNodW5rcy5qb2luKCIiKTp0aGlzLnJlc3VsdD1zLmZsYXR0ZW5DaHVua3ModGhpcy5jaHVua3MpKSx0aGlzLmNodW5rcz1bXSx0aGlzLmVycj15LHRoaXMubXNnPXRoaXMuc3RybS5tc2d9LG4uSW5mbGF0ZT1tLG4uaW5mbGF0ZT1DLG4uaW5mbGF0ZVJhdz1mdW5jdGlvbih5LFQpe3JldHVybihUPVR8fHt9KS5yYXc9ITAsQyh5LFQpfSxuLnVuZ3ppcD1DfSx7Ii4vdXRpbHMvY29tbW9uIjo0MSwiLi91dGlscy9zdHJpbmdzIjo0MiwiLi96bGliL2NvbnN0YW50cyI6NDQsIi4vemxpYi9nemhlYWRlciI6NDcsIi4vemxpYi9pbmZsYXRlIjo0OSwiLi96bGliL21lc3NhZ2VzIjo1MSwiLi96bGliL3pzdHJlYW0iOjUzfV0sNDE6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9dHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZ0eXBlb2YgVWludDE2QXJyYXk8InUiJiZ0eXBlb2YgSW50MzJBcnJheTwidSI7bi5hc3NpZ249ZnVuY3Rpb24obyl7Zm9yKHZhciB1PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTt1Lmxlbmd0aDspe3ZhciBwPXUuc2hpZnQoKTtpZihwKXtpZih0eXBlb2YgcCE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcihwKyJtdXN0IGJlIG5vbi1vYmplY3QiKTtmb3IodmFyIGIgaW4gcClwLmhhc093blByb3BlcnR5KGIpJiYob1tiXT1wW2JdKX19cmV0dXJuIG99LG4uc2hyaW5rQnVmPWZ1bmN0aW9uKG8sdSl7cmV0dXJuIG8ubGVuZ3RoPT09dT9vOm8uc3ViYXJyYXk/by5zdWJhcnJheSgwLHUpOihvLmxlbmd0aD11LG8pfTt2YXIgcz17YXJyYXlTZXQ6ZnVuY3Rpb24obyx1LHAsYixnKXtpZih1LnN1YmFycmF5JiZvLnN1YmFycmF5KW8uc2V0KHUuc3ViYXJyYXkocCxwK2IpLGcpO2Vsc2UgZm9yKHZhciBtPTA7bTxiO20rKylvW2crbV09dVtwK21dfSxmbGF0dGVuQ2h1bmtzOmZ1bmN0aW9uKG8pe3ZhciB1LHAsYixnLG0sQztmb3IodT1iPTAscD1vLmxlbmd0aDt1PHA7dSsrKWIrPW9bdV0ubGVuZ3RoO2ZvcihDPW5ldyBVaW50OEFycmF5KGIpLHU9Zz0wLHA9by5sZW5ndGg7dTxwO3UrKyltPW9bdV0sQy5zZXQobSxnKSxnKz1tLmxlbmd0aDtyZXR1cm4gQ319LGk9e2FycmF5U2V0OmZ1bmN0aW9uKG8sdSxwLGIsZyl7Zm9yKHZhciBtPTA7bTxiO20rKylvW2crbV09dVtwK21dfSxmbGF0dGVuQ2h1bmtzOmZ1bmN0aW9uKG8pe3JldHVybltdLmNvbmNhdC5hcHBseShbXSxvKX19O24uc2V0VHlwZWQ9ZnVuY3Rpb24obyl7bz8obi5CdWY4PVVpbnQ4QXJyYXksbi5CdWYxNj1VaW50MTZBcnJheSxuLkJ1ZjMyPUludDMyQXJyYXksbi5hc3NpZ24obixzKSk6KG4uQnVmOD1BcnJheSxuLkJ1ZjE2PUFycmF5LG4uQnVmMzI9QXJyYXksbi5hc3NpZ24obixpKSl9LG4uc2V0VHlwZWQocil9LHt9XSw0MjpbZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj10KCIuL2NvbW1vbiIpLHM9ITAsaT0hMDt0cnl7U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLFswXSl9Y2F0Y2h7cz0hMX10cnl7U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLG5ldyBVaW50OEFycmF5KDEpKX1jYXRjaHtpPSExfWZvcih2YXIgbz1uZXcgci5CdWY4KDI1NiksdT0wO3U8MjU2O3UrKylvW3VdPTI1Mjw9dT82OjI0ODw9dT81OjI0MDw9dT80OjIyNDw9dT8zOjE5Mjw9dT8yOjE7ZnVuY3Rpb24gcChiLGcpe2lmKGc8NjU1MzcmJihiLnN1YmFycmF5JiZpfHwhYi5zdWJhcnJheSYmcykpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxyLnNocmlua0J1ZihiLGcpKTtmb3IodmFyIG09IiIsQz0wO0M8ZztDKyspbSs9U3RyaW5nLmZyb21DaGFyQ29kZShiW0NdKTtyZXR1cm4gbX1vWzI1NF09b1syNTRdPTEsbi5zdHJpbmcyYnVmPWZ1bmN0aW9uKGIpe3ZhciBnLG0sQyx5LFQsUD1iLmxlbmd0aCxjPTA7Zm9yKHk9MDt5PFA7eSsrKSg2NDUxMiYobT1iLmNoYXJDb2RlQXQoeSkpKT09NTUyOTYmJnkrMTxQJiYoNjQ1MTImKEM9Yi5jaGFyQ29kZUF0KHkrMSkpKT09NTYzMjAmJihtPTY1NTM2KyhtLTU1Mjk2PDwxMCkrKEMtNTYzMjApLHkrKyksYys9bTwxMjg/MTptPDIwNDg/MjptPDY1NTM2PzM6NDtmb3IoZz1uZXcgci5CdWY4KGMpLHk9VD0wO1Q8Yzt5KyspKDY0NTEyJihtPWIuY2hhckNvZGVBdCh5KSkpPT01NTI5NiYmeSsxPFAmJig2NDUxMiYoQz1iLmNoYXJDb2RlQXQoeSsxKSkpPT01NjMyMCYmKG09NjU1MzYrKG0tNTUyOTY8PDEwKSsoQy01NjMyMCkseSsrKSxtPDEyOD9nW1QrK109bToobTwyMDQ4P2dbVCsrXT0xOTJ8bT4+PjY6KG08NjU1MzY/Z1tUKytdPTIyNHxtPj4+MTI6KGdbVCsrXT0yNDB8bT4+PjE4LGdbVCsrXT0xMjh8bT4+PjEyJjYzKSxnW1QrK109MTI4fG0+Pj42JjYzKSxnW1QrK109MTI4fDYzJm0pO3JldHVybiBnfSxuLmJ1ZjJiaW5zdHJpbmc9ZnVuY3Rpb24oYil7cmV0dXJuIHAoYixiLmxlbmd0aCl9LG4uYmluc3RyaW5nMmJ1Zj1mdW5jdGlvbihiKXtmb3IodmFyIGc9bmV3IHIuQnVmOChiLmxlbmd0aCksbT0wLEM9Zy5sZW5ndGg7bTxDO20rKylnW21dPWIuY2hhckNvZGVBdChtKTtyZXR1cm4gZ30sbi5idWYyc3RyaW5nPWZ1bmN0aW9uKGIsZyl7dmFyIG0sQyx5LFQsUD1nfHxiLmxlbmd0aCxjPW5ldyBBcnJheSgyKlApO2ZvcihtPUM9MDttPFA7KWlmKCh5PWJbbSsrXSk8MTI4KWNbQysrXT15O2Vsc2UgaWYoNDwoVD1vW3ldKSljW0MrK109NjU1MzMsbSs9VC0xO2Vsc2V7Zm9yKHkmPVQ9PT0yPzMxOlQ9PT0zPzE1Ojc7MTxUJiZtPFA7KXk9eTw8Nnw2MyZiW20rK10sVC0tOzE8VD9jW0MrK109NjU1MzM6eTw2NTUzNj9jW0MrK109eTooeS09NjU1MzYsY1tDKytdPTU1Mjk2fHk+PjEwJjEwMjMsY1tDKytdPTU2MzIwfDEwMjMmeSl9cmV0dXJuIHAoYyxDKX0sbi51dGY4Ym9yZGVyPWZ1bmN0aW9uKGIsZyl7dmFyIG07Zm9yKChnPWd8fGIubGVuZ3RoKT5iLmxlbmd0aCYmKGc9Yi5sZW5ndGgpLG09Zy0xOzA8PW0mJigxOTImYlttXSk9PTEyODspbS0tO3JldHVybiBtPDB8fG09PT0wP2c6bStvW2JbbV1dPmc/bTpnfX0seyIuL2NvbW1vbiI6NDF9XSw0MzpbZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24ocixzLGksbyl7Zm9yKHZhciB1PTY1NTM1JnJ8MCxwPXI+Pj4xNiY2NTUzNXwwLGI9MDtpIT09MDspe2ZvcihpLT1iPTJlMzxpPzJlMzppO3A9cCsodT11K3NbbysrXXwwKXwwLC0tYjspO3UlPTY1NTIxLHAlPTY1NTIxfXJldHVybiB1fHA8PDE2fDB9fSx7fV0sNDQ6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtaX05PX0ZMVVNIOjAsWl9QQVJUSUFMX0ZMVVNIOjEsWl9TWU5DX0ZMVVNIOjIsWl9GVUxMX0ZMVVNIOjMsWl9GSU5JU0g6NCxaX0JMT0NLOjUsWl9UUkVFUzo2LFpfT0s6MCxaX1NUUkVBTV9FTkQ6MSxaX05FRURfRElDVDoyLFpfRVJSTk86LTEsWl9TVFJFQU1fRVJST1I6LTIsWl9EQVRBX0VSUk9SOi0zLFpfQlVGX0VSUk9SOi01LFpfTk9fQ09NUFJFU1NJT046MCxaX0JFU1RfU1BFRUQ6MSxaX0JFU1RfQ09NUFJFU1NJT046OSxaX0RFRkFVTFRfQ09NUFJFU1NJT046LTEsWl9GSUxURVJFRDoxLFpfSFVGRk1BTl9PTkxZOjIsWl9STEU6MyxaX0ZJWEVEOjQsWl9ERUZBVUxUX1NUUkFURUdZOjAsWl9CSU5BUlk6MCxaX1RFWFQ6MSxaX1VOS05PV046MixaX0RFRkxBVEVEOjh9fSx7fV0sNDU6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9ZnVuY3Rpb24oKXtmb3IodmFyIHMsaT1bXSxvPTA7bzwyNTY7bysrKXtzPW87Zm9yKHZhciB1PTA7dTw4O3UrKylzPTEmcz8zOTg4MjkyMzg0XnM+Pj4xOnM+Pj4xO2lbb109c31yZXR1cm4gaX0oKTtlLmV4cG9ydHM9ZnVuY3Rpb24ocyxpLG8sdSl7dmFyIHA9cixiPXUrbztzXj0tMTtmb3IodmFyIGc9dTtnPGI7ZysrKXM9cz4+PjhecFsyNTUmKHNeaVtnXSldO3JldHVybi0xXnN9fSx7fV0sNDY6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHIscz10KCIuLi91dGlscy9jb21tb24iKSxpPXQoIi4vdHJlZXMiKSxvPXQoIi4vYWRsZXIzMiIpLHU9dCgiLi9jcmMzMiIpLHA9dCgiLi9tZXNzYWdlcyIpLGI9MCxnPTQsbT0wLEM9LTIseT0tMSxUPTQsUD0yLGM9OCxsPTksaD0yODYsXz0zMCxGPTE5LE89MipoKzEsZj0xNSxVPTMsWD0yNTgsUT1YK1UrMSxFPTQyLCQ9MTEzLHc9MSxrPTIsUz0zLEI9NDtmdW5jdGlvbiBMKEQsdXQpe3JldHVybiBELm1zZz1wW3V0XSx1dH1mdW5jdGlvbiBSKEQpe3JldHVybihEPDwxKS0oNDxEPzk6MCl9ZnVuY3Rpb24gcShEKXtmb3IodmFyIHV0PUQubGVuZ3RoOzA8PS0tdXQ7KURbdXRdPTB9ZnVuY3Rpb24geihEKXt2YXIgdXQ9RC5zdGF0ZSxvdD11dC5wZW5kaW5nO290PkQuYXZhaWxfb3V0JiYob3Q9RC5hdmFpbF9vdXQpLG90IT09MCYmKHMuYXJyYXlTZXQoRC5vdXRwdXQsdXQucGVuZGluZ19idWYsdXQucGVuZGluZ19vdXQsb3QsRC5uZXh0X291dCksRC5uZXh0X291dCs9b3QsdXQucGVuZGluZ19vdXQrPW90LEQudG90YWxfb3V0Kz1vdCxELmF2YWlsX291dC09b3QsdXQucGVuZGluZy09b3QsdXQucGVuZGluZz09PTAmJih1dC5wZW5kaW5nX291dD0wKSl9ZnVuY3Rpb24gRyhELHV0KXtpLl90cl9mbHVzaF9ibG9jayhELDA8PUQuYmxvY2tfc3RhcnQ/RC5ibG9ja19zdGFydDotMSxELnN0cnN0YXJ0LUQuYmxvY2tfc3RhcnQsdXQpLEQuYmxvY2tfc3RhcnQ9RC5zdHJzdGFydCx6KEQuc3RybSl9ZnVuY3Rpb24gbnQoRCx1dCl7RC5wZW5kaW5nX2J1ZltELnBlbmRpbmcrK109dXR9ZnVuY3Rpb24gdHQoRCx1dCl7RC5wZW5kaW5nX2J1ZltELnBlbmRpbmcrK109dXQ+Pj44JjI1NSxELnBlbmRpbmdfYnVmW0QucGVuZGluZysrXT0yNTUmdXR9ZnVuY3Rpb24gZXQoRCx1dCl7dmFyIG90LFYsaj1ELm1heF9jaGFpbl9sZW5ndGgsSz1ELnN0cnN0YXJ0LHB0PUQucHJldl9sZW5ndGgsdnQ9RC5uaWNlX21hdGNoLHJ0PUQuc3Ryc3RhcnQ+RC53X3NpemUtUT9ELnN0cnN0YXJ0LShELndfc2l6ZS1RKTowLGd0PUQud2luZG93LEN0PUQud19tYXNrLHh0PUQucHJldixtdD1ELnN0cnN0YXJ0K1gsenQ9Z3RbSytwdC0xXSxHdD1ndFtLK3B0XTtELnByZXZfbGVuZ3RoPj1ELmdvb2RfbWF0Y2gmJihqPj49MiksdnQ+RC5sb29rYWhlYWQmJih2dD1ELmxvb2thaGVhZCk7ZG8gaWYoZ3RbKG90PXV0KStwdF09PT1HdCYmZ3Rbb3QrcHQtMV09PT16dCYmZ3Rbb3RdPT09Z3RbS10mJmd0Wysrb3RdPT09Z3RbSysxXSl7Sys9MixvdCsrO2RvO3doaWxlKGd0WysrS109PT1ndFsrK290XSYmZ3RbKytLXT09PWd0Wysrb3RdJiZndFsrK0tdPT09Z3RbKytvdF0mJmd0WysrS109PT1ndFsrK290XSYmZ3RbKytLXT09PWd0Wysrb3RdJiZndFsrK0tdPT09Z3RbKytvdF0mJmd0WysrS109PT1ndFsrK290XSYmZ3RbKytLXT09PWd0Wysrb3RdJiZLPG10KTtpZihWPVgtKG10LUspLEs9bXQtWCxwdDxWKXtpZihELm1hdGNoX3N0YXJ0PXV0LHZ0PD0ocHQ9VikpYnJlYWs7enQ9Z3RbSytwdC0xXSxHdD1ndFtLK3B0XX19d2hpbGUoKHV0PXh0W3V0JkN0XSk+cnQmJi0taiE9MCk7cmV0dXJuIHB0PD1ELmxvb2thaGVhZD9wdDpELmxvb2thaGVhZH1mdW5jdGlvbiB3dChEKXt2YXIgdXQsb3QsVixqLEsscHQsdnQscnQsZ3QsQ3QseHQ9RC53X3NpemU7ZG97aWYoaj1ELndpbmRvd19zaXplLUQubG9va2FoZWFkLUQuc3Ryc3RhcnQsRC5zdHJzdGFydD49eHQrKHh0LVEpKXtmb3Iocy5hcnJheVNldChELndpbmRvdyxELndpbmRvdyx4dCx4dCwwKSxELm1hdGNoX3N0YXJ0LT14dCxELnN0cnN0YXJ0LT14dCxELmJsb2NrX3N0YXJ0LT14dCx1dD1vdD1ELmhhc2hfc2l6ZTtWPUQuaGVhZFstLXV0XSxELmhlYWRbdXRdPXh0PD1WP1YteHQ6MCwtLW90Oyk7Zm9yKHV0PW90PXh0O1Y9RC5wcmV2Wy0tdXRdLEQucHJldlt1dF09eHQ8PVY/Vi14dDowLC0tb3Q7KTtqKz14dH1pZihELnN0cm0uYXZhaWxfaW49PT0wKWJyZWFrO2lmKHB0PUQuc3RybSx2dD1ELndpbmRvdyxydD1ELnN0cnN0YXJ0K0QubG9va2FoZWFkLGd0PWosQ3Q9dm9pZCAwLEN0PXB0LmF2YWlsX2luLGd0PEN0JiYoQ3Q9Z3QpLG90PUN0PT09MD8wOihwdC5hdmFpbF9pbi09Q3Qscy5hcnJheVNldCh2dCxwdC5pbnB1dCxwdC5uZXh0X2luLEN0LHJ0KSxwdC5zdGF0ZS53cmFwPT09MT9wdC5hZGxlcj1vKHB0LmFkbGVyLHZ0LEN0LHJ0KTpwdC5zdGF0ZS53cmFwPT09MiYmKHB0LmFkbGVyPXUocHQuYWRsZXIsdnQsQ3QscnQpKSxwdC5uZXh0X2luKz1DdCxwdC50b3RhbF9pbis9Q3QsQ3QpLEQubG9va2FoZWFkKz1vdCxELmxvb2thaGVhZCtELmluc2VydD49VSlmb3IoSz1ELnN0cnN0YXJ0LUQuaW5zZXJ0LEQuaW5zX2g9RC53aW5kb3dbS10sRC5pbnNfaD0oRC5pbnNfaDw8RC5oYXNoX3NoaWZ0XkQud2luZG93W0srMV0pJkQuaGFzaF9tYXNrO0QuaW5zZXJ0JiYoRC5pbnNfaD0oRC5pbnNfaDw8RC5oYXNoX3NoaWZ0XkQud2luZG93W0srVS0xXSkmRC5oYXNoX21hc2ssRC5wcmV2W0smRC53X21hc2tdPUQuaGVhZFtELmluc19oXSxELmhlYWRbRC5pbnNfaF09SyxLKyssRC5pbnNlcnQtLSwhKEQubG9va2FoZWFkK0QuaW5zZXJ0PFUpKTspO313aGlsZShELmxvb2thaGVhZDxRJiZELnN0cm0uYXZhaWxfaW4hPT0wKX1mdW5jdGlvbiBTdChELHV0KXtmb3IodmFyIG90LFY7Oyl7aWYoRC5sb29rYWhlYWQ8USl7aWYod3QoRCksRC5sb29rYWhlYWQ8USYmdXQ9PT1iKXJldHVybiB3O2lmKEQubG9va2FoZWFkPT09MClicmVha31pZihvdD0wLEQubG9va2FoZWFkPj1VJiYoRC5pbnNfaD0oRC5pbnNfaDw8RC5oYXNoX3NoaWZ0XkQud2luZG93W0Quc3Ryc3RhcnQrVS0xXSkmRC5oYXNoX21hc2ssb3Q9RC5wcmV2W0Quc3Ryc3RhcnQmRC53X21hc2tdPUQuaGVhZFtELmluc19oXSxELmhlYWRbRC5pbnNfaF09RC5zdHJzdGFydCksb3QhPT0wJiZELnN0cnN0YXJ0LW90PD1ELndfc2l6ZS1RJiYoRC5tYXRjaF9sZW5ndGg9ZXQoRCxvdCkpLEQubWF0Y2hfbGVuZ3RoPj1VKWlmKFY9aS5fdHJfdGFsbHkoRCxELnN0cnN0YXJ0LUQubWF0Y2hfc3RhcnQsRC5tYXRjaF9sZW5ndGgtVSksRC5sb29rYWhlYWQtPUQubWF0Y2hfbGVuZ3RoLEQubWF0Y2hfbGVuZ3RoPD1ELm1heF9sYXp5X21hdGNoJiZELmxvb2thaGVhZD49VSl7Zm9yKEQubWF0Y2hfbGVuZ3RoLS07RC5zdHJzdGFydCsrLEQuaW5zX2g9KEQuaW5zX2g8PEQuaGFzaF9zaGlmdF5ELndpbmRvd1tELnN0cnN0YXJ0K1UtMV0pJkQuaGFzaF9tYXNrLG90PUQucHJldltELnN0cnN0YXJ0JkQud19tYXNrXT1ELmhlYWRbRC5pbnNfaF0sRC5oZWFkW0QuaW5zX2hdPUQuc3Ryc3RhcnQsLS1ELm1hdGNoX2xlbmd0aCE9MDspO0Quc3Ryc3RhcnQrK31lbHNlIEQuc3Ryc3RhcnQrPUQubWF0Y2hfbGVuZ3RoLEQubWF0Y2hfbGVuZ3RoPTAsRC5pbnNfaD1ELndpbmRvd1tELnN0cnN0YXJ0XSxELmluc19oPShELmluc19oPDxELmhhc2hfc2hpZnReRC53aW5kb3dbRC5zdHJzdGFydCsxXSkmRC5oYXNoX21hc2s7ZWxzZSBWPWkuX3RyX3RhbGx5KEQsMCxELndpbmRvd1tELnN0cnN0YXJ0XSksRC5sb29rYWhlYWQtLSxELnN0cnN0YXJ0Kys7aWYoViYmKEcoRCwhMSksRC5zdHJtLmF2YWlsX291dD09PTApKXJldHVybiB3fXJldHVybiBELmluc2VydD1ELnN0cnN0YXJ0PFUtMT9ELnN0cnN0YXJ0OlUtMSx1dD09PWc/KEcoRCwhMCksRC5zdHJtLmF2YWlsX291dD09PTA/UzpCKTpELmxhc3RfbGl0JiYoRyhELCExKSxELnN0cm0uYXZhaWxfb3V0PT09MCk/dzprfWZ1bmN0aW9uIFR0KEQsdXQpe2Zvcih2YXIgb3QsVixqOzspe2lmKEQubG9va2FoZWFkPFEpe2lmKHd0KEQpLEQubG9va2FoZWFkPFEmJnV0PT09YilyZXR1cm4gdztpZihELmxvb2thaGVhZD09PTApYnJlYWt9aWYob3Q9MCxELmxvb2thaGVhZD49VSYmKEQuaW5zX2g9KEQuaW5zX2g8PEQuaGFzaF9zaGlmdF5ELndpbmRvd1tELnN0cnN0YXJ0K1UtMV0pJkQuaGFzaF9tYXNrLG90PUQucHJldltELnN0cnN0YXJ0JkQud19tYXNrXT1ELmhlYWRbRC5pbnNfaF0sRC5oZWFkW0QuaW5zX2hdPUQuc3Ryc3RhcnQpLEQucHJldl9sZW5ndGg9RC5tYXRjaF9sZW5ndGgsRC5wcmV2X21hdGNoPUQubWF0Y2hfc3RhcnQsRC5tYXRjaF9sZW5ndGg9VS0xLG90IT09MCYmRC5wcmV2X2xlbmd0aDxELm1heF9sYXp5X21hdGNoJiZELnN0cnN0YXJ0LW90PD1ELndfc2l6ZS1RJiYoRC5tYXRjaF9sZW5ndGg9ZXQoRCxvdCksRC5tYXRjaF9sZW5ndGg8PTUmJihELnN0cmF0ZWd5PT09MXx8RC5tYXRjaF9sZW5ndGg9PT1VJiY0MDk2PEQuc3Ryc3RhcnQtRC5tYXRjaF9zdGFydCkmJihELm1hdGNoX2xlbmd0aD1VLTEpKSxELnByZXZfbGVuZ3RoPj1VJiZELm1hdGNoX2xlbmd0aDw9RC5wcmV2X2xlbmd0aCl7Zm9yKGo9RC5zdHJzdGFydCtELmxvb2thaGVhZC1VLFY9aS5fdHJfdGFsbHkoRCxELnN0cnN0YXJ0LTEtRC5wcmV2X21hdGNoLEQucHJldl9sZW5ndGgtVSksRC5sb29rYWhlYWQtPUQucHJldl9sZW5ndGgtMSxELnByZXZfbGVuZ3RoLT0yOysrRC5zdHJzdGFydDw9aiYmKEQuaW5zX2g9KEQuaW5zX2g8PEQuaGFzaF9zaGlmdF5ELndpbmRvd1tELnN0cnN0YXJ0K1UtMV0pJkQuaGFzaF9tYXNrLG90PUQucHJldltELnN0cnN0YXJ0JkQud19tYXNrXT1ELmhlYWRbRC5pbnNfaF0sRC5oZWFkW0QuaW5zX2hdPUQuc3Ryc3RhcnQpLC0tRC5wcmV2X2xlbmd0aCE9MDspO2lmKEQubWF0Y2hfYXZhaWxhYmxlPTAsRC5tYXRjaF9sZW5ndGg9VS0xLEQuc3Ryc3RhcnQrKyxWJiYoRyhELCExKSxELnN0cm0uYXZhaWxfb3V0PT09MCkpcmV0dXJuIHd9ZWxzZSBpZihELm1hdGNoX2F2YWlsYWJsZSl7aWYoKFY9aS5fdHJfdGFsbHkoRCwwLEQud2luZG93W0Quc3Ryc3RhcnQtMV0pKSYmRyhELCExKSxELnN0cnN0YXJ0KyssRC5sb29rYWhlYWQtLSxELnN0cm0uYXZhaWxfb3V0PT09MClyZXR1cm4gd31lbHNlIEQubWF0Y2hfYXZhaWxhYmxlPTEsRC5zdHJzdGFydCsrLEQubG9va2FoZWFkLS19cmV0dXJuIEQubWF0Y2hfYXZhaWxhYmxlJiYoVj1pLl90cl90YWxseShELDAsRC53aW5kb3dbRC5zdHJzdGFydC0xXSksRC5tYXRjaF9hdmFpbGFibGU9MCksRC5pbnNlcnQ9RC5zdHJzdGFydDxVLTE/RC5zdHJzdGFydDpVLTEsdXQ9PT1nPyhHKEQsITApLEQuc3RybS5hdmFpbF9vdXQ9PT0wP1M6Qik6RC5sYXN0X2xpdCYmKEcoRCwhMSksRC5zdHJtLmF2YWlsX291dD09PTApP3c6a31mdW5jdGlvbiBrdChELHV0LG90LFYsail7dGhpcy5nb29kX2xlbmd0aD1ELHRoaXMubWF4X2xhenk9dXQsdGhpcy5uaWNlX2xlbmd0aD1vdCx0aGlzLm1heF9jaGFpbj1WLHRoaXMuZnVuYz1qfWZ1bmN0aW9uIEx0KCl7dGhpcy5zdHJtPW51bGwsdGhpcy5zdGF0dXM9MCx0aGlzLnBlbmRpbmdfYnVmPW51bGwsdGhpcy5wZW5kaW5nX2J1Zl9zaXplPTAsdGhpcy5wZW5kaW5nX291dD0wLHRoaXMucGVuZGluZz0wLHRoaXMud3JhcD0wLHRoaXMuZ3poZWFkPW51bGwsdGhpcy5nemluZGV4PTAsdGhpcy5tZXRob2Q9Yyx0aGlzLmxhc3RfZmx1c2g9LTEsdGhpcy53X3NpemU9MCx0aGlzLndfYml0cz0wLHRoaXMud19tYXNrPTAsdGhpcy53aW5kb3c9bnVsbCx0aGlzLndpbmRvd19zaXplPTAsdGhpcy5wcmV2PW51bGwsdGhpcy5oZWFkPW51bGwsdGhpcy5pbnNfaD0wLHRoaXMuaGFzaF9zaXplPTAsdGhpcy5oYXNoX2JpdHM9MCx0aGlzLmhhc2hfbWFzaz0wLHRoaXMuaGFzaF9zaGlmdD0wLHRoaXMuYmxvY2tfc3RhcnQ9MCx0aGlzLm1hdGNoX2xlbmd0aD0wLHRoaXMucHJldl9tYXRjaD0wLHRoaXMubWF0Y2hfYXZhaWxhYmxlPTAsdGhpcy5zdHJzdGFydD0wLHRoaXMubWF0Y2hfc3RhcnQ9MCx0aGlzLmxvb2thaGVhZD0wLHRoaXMucHJldl9sZW5ndGg9MCx0aGlzLm1heF9jaGFpbl9sZW5ndGg9MCx0aGlzLm1heF9sYXp5X21hdGNoPTAsdGhpcy5sZXZlbD0wLHRoaXMuc3RyYXRlZ3k9MCx0aGlzLmdvb2RfbWF0Y2g9MCx0aGlzLm5pY2VfbWF0Y2g9MCx0aGlzLmR5bl9sdHJlZT1uZXcgcy5CdWYxNigyKk8pLHRoaXMuZHluX2R0cmVlPW5ldyBzLkJ1ZjE2KDIqKDIqXysxKSksdGhpcy5ibF90cmVlPW5ldyBzLkJ1ZjE2KDIqKDIqRisxKSkscSh0aGlzLmR5bl9sdHJlZSkscSh0aGlzLmR5bl9kdHJlZSkscSh0aGlzLmJsX3RyZWUpLHRoaXMubF9kZXNjPW51bGwsdGhpcy5kX2Rlc2M9bnVsbCx0aGlzLmJsX2Rlc2M9bnVsbCx0aGlzLmJsX2NvdW50PW5ldyBzLkJ1ZjE2KGYrMSksdGhpcy5oZWFwPW5ldyBzLkJ1ZjE2KDIqaCsxKSxxKHRoaXMuaGVhcCksdGhpcy5oZWFwX2xlbj0wLHRoaXMuaGVhcF9tYXg9MCx0aGlzLmRlcHRoPW5ldyBzLkJ1ZjE2KDIqaCsxKSxxKHRoaXMuZGVwdGgpLHRoaXMubF9idWY9MCx0aGlzLmxpdF9idWZzaXplPTAsdGhpcy5sYXN0X2xpdD0wLHRoaXMuZF9idWY9MCx0aGlzLm9wdF9sZW49MCx0aGlzLnN0YXRpY19sZW49MCx0aGlzLm1hdGNoZXM9MCx0aGlzLmluc2VydD0wLHRoaXMuYmlfYnVmPTAsdGhpcy5iaV92YWxpZD0wfWZ1bmN0aW9uIEJ0KEQpe3ZhciB1dDtyZXR1cm4gRCYmRC5zdGF0ZT8oRC50b3RhbF9pbj1ELnRvdGFsX291dD0wLEQuZGF0YV90eXBlPVAsKHV0PUQuc3RhdGUpLnBlbmRpbmc9MCx1dC5wZW5kaW5nX291dD0wLHV0LndyYXA8MCYmKHV0LndyYXA9LXV0LndyYXApLHV0LnN0YXR1cz11dC53cmFwP0U6JCxELmFkbGVyPXV0LndyYXA9PT0yPzA6MSx1dC5sYXN0X2ZsdXNoPWIsaS5fdHJfaW5pdCh1dCksbSk6TChELEMpfWZ1bmN0aW9uICR0KEQpe3ZhciB1dD1CdChEKTtyZXR1cm4gdXQ9PT1tJiZmdW5jdGlvbihvdCl7b3Qud2luZG93X3NpemU9MipvdC53X3NpemUscShvdC5oZWFkKSxvdC5tYXhfbGF6eV9tYXRjaD1yW290LmxldmVsXS5tYXhfbGF6eSxvdC5nb29kX21hdGNoPXJbb3QubGV2ZWxdLmdvb2RfbGVuZ3RoLG90Lm5pY2VfbWF0Y2g9cltvdC5sZXZlbF0ubmljZV9sZW5ndGgsb3QubWF4X2NoYWluX2xlbmd0aD1yW290LmxldmVsXS5tYXhfY2hhaW4sb3Quc3Ryc3RhcnQ9MCxvdC5ibG9ja19zdGFydD0wLG90Lmxvb2thaGVhZD0wLG90Lmluc2VydD0wLG90Lm1hdGNoX2xlbmd0aD1vdC5wcmV2X2xlbmd0aD1VLTEsb3QubWF0Y2hfYXZhaWxhYmxlPTAsb3QuaW5zX2g9MH0oRC5zdGF0ZSksdXR9ZnVuY3Rpb24gS3QoRCx1dCxvdCxWLGosSyl7aWYoIUQpcmV0dXJuIEM7dmFyIHB0PTE7aWYodXQ9PT15JiYodXQ9NiksVjwwPyhwdD0wLFY9LVYpOjE1PFYmJihwdD0yLFYtPTE2KSxqPDF8fGw8anx8b3QhPT1jfHxWPDh8fDE1PFZ8fHV0PDB8fDk8dXR8fEs8MHx8VDxLKXJldHVybiBMKEQsQyk7Vj09PTgmJihWPTkpO3ZhciB2dD1uZXcgTHQ7cmV0dXJuKEQuc3RhdGU9dnQpLnN0cm09RCx2dC53cmFwPXB0LHZ0Lmd6aGVhZD1udWxsLHZ0LndfYml0cz1WLHZ0Lndfc2l6ZT0xPDx2dC53X2JpdHMsdnQud19tYXNrPXZ0Lndfc2l6ZS0xLHZ0Lmhhc2hfYml0cz1qKzcsdnQuaGFzaF9zaXplPTE8PHZ0Lmhhc2hfYml0cyx2dC5oYXNoX21hc2s9dnQuaGFzaF9zaXplLTEsdnQuaGFzaF9zaGlmdD1+figodnQuaGFzaF9iaXRzK1UtMSkvVSksdnQud2luZG93PW5ldyBzLkJ1ZjgoMip2dC53X3NpemUpLHZ0LmhlYWQ9bmV3IHMuQnVmMTYodnQuaGFzaF9zaXplKSx2dC5wcmV2PW5ldyBzLkJ1ZjE2KHZ0Lndfc2l6ZSksdnQubGl0X2J1ZnNpemU9MTw8ais2LHZ0LnBlbmRpbmdfYnVmX3NpemU9NCp2dC5saXRfYnVmc2l6ZSx2dC5wZW5kaW5nX2J1Zj1uZXcgcy5CdWY4KHZ0LnBlbmRpbmdfYnVmX3NpemUpLHZ0LmRfYnVmPTEqdnQubGl0X2J1ZnNpemUsdnQubF9idWY9Myp2dC5saXRfYnVmc2l6ZSx2dC5sZXZlbD11dCx2dC5zdHJhdGVneT1LLHZ0Lm1ldGhvZD1vdCwkdChEKX1yPVtuZXcga3QoMCwwLDAsMCxmdW5jdGlvbihELHV0KXt2YXIgb3Q9NjU1MzU7Zm9yKG90PkQucGVuZGluZ19idWZfc2l6ZS01JiYob3Q9RC5wZW5kaW5nX2J1Zl9zaXplLTUpOzspe2lmKEQubG9va2FoZWFkPD0xKXtpZih3dChEKSxELmxvb2thaGVhZD09PTAmJnV0PT09YilyZXR1cm4gdztpZihELmxvb2thaGVhZD09PTApYnJlYWt9RC5zdHJzdGFydCs9RC5sb29rYWhlYWQsRC5sb29rYWhlYWQ9MDt2YXIgVj1ELmJsb2NrX3N0YXJ0K290O2lmKChELnN0cnN0YXJ0PT09MHx8RC5zdHJzdGFydD49VikmJihELmxvb2thaGVhZD1ELnN0cnN0YXJ0LVYsRC5zdHJzdGFydD1WLEcoRCwhMSksRC5zdHJtLmF2YWlsX291dD09PTApfHxELnN0cnN0YXJ0LUQuYmxvY2tfc3RhcnQ+PUQud19zaXplLVEmJihHKEQsITEpLEQuc3RybS5hdmFpbF9vdXQ9PT0wKSlyZXR1cm4gd31yZXR1cm4gRC5pbnNlcnQ9MCx1dD09PWc/KEcoRCwhMCksRC5zdHJtLmF2YWlsX291dD09PTA/UzpCKTooRC5zdHJzdGFydD5ELmJsb2NrX3N0YXJ0JiYoRyhELCExKSxELnN0cm0uYXZhaWxfb3V0KSx3KX0pLG5ldyBrdCg0LDQsOCw0LFN0KSxuZXcga3QoNCw1LDE2LDgsU3QpLG5ldyBrdCg0LDYsMzIsMzIsU3QpLG5ldyBrdCg0LDQsMTYsMTYsVHQpLG5ldyBrdCg4LDE2LDMyLDMyLFR0KSxuZXcga3QoOCwxNiwxMjgsMTI4LFR0KSxuZXcga3QoOCwzMiwxMjgsMjU2LFR0KSxuZXcga3QoMzIsMTI4LDI1OCwxMDI0LFR0KSxuZXcga3QoMzIsMjU4LDI1OCw0MDk2LFR0KV0sbi5kZWZsYXRlSW5pdD1mdW5jdGlvbihELHV0KXtyZXR1cm4gS3QoRCx1dCxjLDE1LDgsMCl9LG4uZGVmbGF0ZUluaXQyPUt0LG4uZGVmbGF0ZVJlc2V0PSR0LG4uZGVmbGF0ZVJlc2V0S2VlcD1CdCxuLmRlZmxhdGVTZXRIZWFkZXI9ZnVuY3Rpb24oRCx1dCl7cmV0dXJuIEQmJkQuc3RhdGU/RC5zdGF0ZS53cmFwIT09Mj9DOihELnN0YXRlLmd6aGVhZD11dCxtKTpDfSxuLmRlZmxhdGU9ZnVuY3Rpb24oRCx1dCl7dmFyIG90LFYsaixLO2lmKCFEfHwhRC5zdGF0ZXx8NTx1dHx8dXQ8MClyZXR1cm4gRD9MKEQsQyk6QztpZihWPUQuc3RhdGUsIUQub3V0cHV0fHwhRC5pbnB1dCYmRC5hdmFpbF9pbiE9PTB8fFYuc3RhdHVzPT09NjY2JiZ1dCE9PWcpcmV0dXJuIEwoRCxELmF2YWlsX291dD09PTA/LTU6Qyk7aWYoVi5zdHJtPUQsb3Q9Vi5sYXN0X2ZsdXNoLFYubGFzdF9mbHVzaD11dCxWLnN0YXR1cz09PUUpaWYoVi53cmFwPT09MilELmFkbGVyPTAsbnQoViwzMSksbnQoViwxMzkpLG50KFYsOCksVi5nemhlYWQ/KG50KFYsKFYuZ3poZWFkLnRleHQ/MTowKSsoVi5nemhlYWQuaGNyYz8yOjApKyhWLmd6aGVhZC5leHRyYT80OjApKyhWLmd6aGVhZC5uYW1lPzg6MCkrKFYuZ3poZWFkLmNvbW1lbnQ/MTY6MCkpLG50KFYsMjU1JlYuZ3poZWFkLnRpbWUpLG50KFYsVi5nemhlYWQudGltZT4+OCYyNTUpLG50KFYsVi5nemhlYWQudGltZT4+MTYmMjU1KSxudChWLFYuZ3poZWFkLnRpbWU+PjI0JjI1NSksbnQoVixWLmxldmVsPT09OT8yOjI8PVYuc3RyYXRlZ3l8fFYubGV2ZWw8Mj80OjApLG50KFYsMjU1JlYuZ3poZWFkLm9zKSxWLmd6aGVhZC5leHRyYSYmVi5nemhlYWQuZXh0cmEubGVuZ3RoJiYobnQoViwyNTUmVi5nemhlYWQuZXh0cmEubGVuZ3RoKSxudChWLFYuZ3poZWFkLmV4dHJhLmxlbmd0aD4+OCYyNTUpKSxWLmd6aGVhZC5oY3JjJiYoRC5hZGxlcj11KEQuYWRsZXIsVi5wZW5kaW5nX2J1ZixWLnBlbmRpbmcsMCkpLFYuZ3ppbmRleD0wLFYuc3RhdHVzPTY5KToobnQoViwwKSxudChWLDApLG50KFYsMCksbnQoViwwKSxudChWLDApLG50KFYsVi5sZXZlbD09PTk/MjoyPD1WLnN0cmF0ZWd5fHxWLmxldmVsPDI/NDowKSxudChWLDMpLFYuc3RhdHVzPSQpO2Vsc2V7dmFyIHB0PWMrKFYud19iaXRzLTg8PDQpPDw4O3B0fD0oMjw9Vi5zdHJhdGVneXx8Vi5sZXZlbDwyPzA6Vi5sZXZlbDw2PzE6Vi5sZXZlbD09PTY/MjozKTw8NixWLnN0cnN0YXJ0IT09MCYmKHB0fD0zMikscHQrPTMxLXB0JTMxLFYuc3RhdHVzPSQsdHQoVixwdCksVi5zdHJzdGFydCE9PTAmJih0dChWLEQuYWRsZXI+Pj4xNiksdHQoViw2NTUzNSZELmFkbGVyKSksRC5hZGxlcj0xfWlmKFYuc3RhdHVzPT09NjkpaWYoVi5nemhlYWQuZXh0cmEpe2ZvcihqPVYucGVuZGluZztWLmd6aW5kZXg8KDY1NTM1JlYuZ3poZWFkLmV4dHJhLmxlbmd0aCkmJihWLnBlbmRpbmchPT1WLnBlbmRpbmdfYnVmX3NpemV8fChWLmd6aGVhZC5oY3JjJiZWLnBlbmRpbmc+aiYmKEQuYWRsZXI9dShELmFkbGVyLFYucGVuZGluZ19idWYsVi5wZW5kaW5nLWosaikpLHooRCksaj1WLnBlbmRpbmcsVi5wZW5kaW5nIT09Vi5wZW5kaW5nX2J1Zl9zaXplKSk7KW50KFYsMjU1JlYuZ3poZWFkLmV4dHJhW1YuZ3ppbmRleF0pLFYuZ3ppbmRleCsrO1YuZ3poZWFkLmhjcmMmJlYucGVuZGluZz5qJiYoRC5hZGxlcj11KEQuYWRsZXIsVi5wZW5kaW5nX2J1ZixWLnBlbmRpbmctaixqKSksVi5nemluZGV4PT09Vi5nemhlYWQuZXh0cmEubGVuZ3RoJiYoVi5nemluZGV4PTAsVi5zdGF0dXM9NzMpfWVsc2UgVi5zdGF0dXM9NzM7aWYoVi5zdGF0dXM9PT03MylpZihWLmd6aGVhZC5uYW1lKXtqPVYucGVuZGluZztkb3tpZihWLnBlbmRpbmc9PT1WLnBlbmRpbmdfYnVmX3NpemUmJihWLmd6aGVhZC5oY3JjJiZWLnBlbmRpbmc+aiYmKEQuYWRsZXI9dShELmFkbGVyLFYucGVuZGluZ19idWYsVi5wZW5kaW5nLWosaikpLHooRCksaj1WLnBlbmRpbmcsVi5wZW5kaW5nPT09Vi5wZW5kaW5nX2J1Zl9zaXplKSl7Sz0xO2JyZWFrfUs9Vi5nemluZGV4PFYuZ3poZWFkLm5hbWUubGVuZ3RoPzI1NSZWLmd6aGVhZC5uYW1lLmNoYXJDb2RlQXQoVi5nemluZGV4KyspOjAsbnQoVixLKX13aGlsZShLIT09MCk7Vi5nemhlYWQuaGNyYyYmVi5wZW5kaW5nPmomJihELmFkbGVyPXUoRC5hZGxlcixWLnBlbmRpbmdfYnVmLFYucGVuZGluZy1qLGopKSxLPT09MCYmKFYuZ3ppbmRleD0wLFYuc3RhdHVzPTkxKX1lbHNlIFYuc3RhdHVzPTkxO2lmKFYuc3RhdHVzPT09OTEpaWYoVi5nemhlYWQuY29tbWVudCl7aj1WLnBlbmRpbmc7ZG97aWYoVi5wZW5kaW5nPT09Vi5wZW5kaW5nX2J1Zl9zaXplJiYoVi5nemhlYWQuaGNyYyYmVi5wZW5kaW5nPmomJihELmFkbGVyPXUoRC5hZGxlcixWLnBlbmRpbmdfYnVmLFYucGVuZGluZy1qLGopKSx6KEQpLGo9Vi5wZW5kaW5nLFYucGVuZGluZz09PVYucGVuZGluZ19idWZfc2l6ZSkpe0s9MTticmVha31LPVYuZ3ppbmRleDxWLmd6aGVhZC5jb21tZW50Lmxlbmd0aD8yNTUmVi5nemhlYWQuY29tbWVudC5jaGFyQ29kZUF0KFYuZ3ppbmRleCsrKTowLG50KFYsSyl9d2hpbGUoSyE9PTApO1YuZ3poZWFkLmhjcmMmJlYucGVuZGluZz5qJiYoRC5hZGxlcj11KEQuYWRsZXIsVi5wZW5kaW5nX2J1ZixWLnBlbmRpbmctaixqKSksSz09PTAmJihWLnN0YXR1cz0xMDMpfWVsc2UgVi5zdGF0dXM9MTAzO2lmKFYuc3RhdHVzPT09MTAzJiYoVi5nemhlYWQuaGNyYz8oVi5wZW5kaW5nKzI+Vi5wZW5kaW5nX2J1Zl9zaXplJiZ6KEQpLFYucGVuZGluZysyPD1WLnBlbmRpbmdfYnVmX3NpemUmJihudChWLDI1NSZELmFkbGVyKSxudChWLEQuYWRsZXI+PjgmMjU1KSxELmFkbGVyPTAsVi5zdGF0dXM9JCkpOlYuc3RhdHVzPSQpLFYucGVuZGluZyE9PTApe2lmKHooRCksRC5hdmFpbF9vdXQ9PT0wKXJldHVybiBWLmxhc3RfZmx1c2g9LTEsbX1lbHNlIGlmKEQuYXZhaWxfaW49PT0wJiZSKHV0KTw9UihvdCkmJnV0IT09ZylyZXR1cm4gTChELC01KTtpZihWLnN0YXR1cz09PTY2NiYmRC5hdmFpbF9pbiE9PTApcmV0dXJuIEwoRCwtNSk7aWYoRC5hdmFpbF9pbiE9PTB8fFYubG9va2FoZWFkIT09MHx8dXQhPT1iJiZWLnN0YXR1cyE9PTY2Nil7dmFyIHZ0PVYuc3RyYXRlZ3k9PT0yP2Z1bmN0aW9uKHJ0LGd0KXtmb3IodmFyIEN0Ozspe2lmKHJ0Lmxvb2thaGVhZD09PTAmJih3dChydCkscnQubG9va2FoZWFkPT09MCkpe2lmKGd0PT09YilyZXR1cm4gdzticmVha31pZihydC5tYXRjaF9sZW5ndGg9MCxDdD1pLl90cl90YWxseShydCwwLHJ0LndpbmRvd1tydC5zdHJzdGFydF0pLHJ0Lmxvb2thaGVhZC0tLHJ0LnN0cnN0YXJ0KyssQ3QmJihHKHJ0LCExKSxydC5zdHJtLmF2YWlsX291dD09PTApKXJldHVybiB3fXJldHVybiBydC5pbnNlcnQ9MCxndD09PWc/KEcocnQsITApLHJ0LnN0cm0uYXZhaWxfb3V0PT09MD9TOkIpOnJ0Lmxhc3RfbGl0JiYoRyhydCwhMSkscnQuc3RybS5hdmFpbF9vdXQ9PT0wKT93Omt9KFYsdXQpOlYuc3RyYXRlZ3k9PT0zP2Z1bmN0aW9uKHJ0LGd0KXtmb3IodmFyIEN0LHh0LG10LHp0LEd0PXJ0LndpbmRvdzs7KXtpZihydC5sb29rYWhlYWQ8PVgpe2lmKHd0KHJ0KSxydC5sb29rYWhlYWQ8PVgmJmd0PT09YilyZXR1cm4gdztpZihydC5sb29rYWhlYWQ9PT0wKWJyZWFrfWlmKHJ0Lm1hdGNoX2xlbmd0aD0wLHJ0Lmxvb2thaGVhZD49VSYmMDxydC5zdHJzdGFydCYmKHh0PUd0W210PXJ0LnN0cnN0YXJ0LTFdKT09PUd0WysrbXRdJiZ4dD09PUd0WysrbXRdJiZ4dD09PUd0WysrbXRdKXt6dD1ydC5zdHJzdGFydCtYO2RvO3doaWxlKHh0PT09R3RbKyttdF0mJnh0PT09R3RbKyttdF0mJnh0PT09R3RbKyttdF0mJnh0PT09R3RbKyttdF0mJnh0PT09R3RbKyttdF0mJnh0PT09R3RbKyttdF0mJnh0PT09R3RbKyttdF0mJnh0PT09R3RbKyttdF0mJm10PHp0KTtydC5tYXRjaF9sZW5ndGg9WC0oenQtbXQpLHJ0Lm1hdGNoX2xlbmd0aD5ydC5sb29rYWhlYWQmJihydC5tYXRjaF9sZW5ndGg9cnQubG9va2FoZWFkKX1pZihydC5tYXRjaF9sZW5ndGg+PVU/KEN0PWkuX3RyX3RhbGx5KHJ0LDEscnQubWF0Y2hfbGVuZ3RoLVUpLHJ0Lmxvb2thaGVhZC09cnQubWF0Y2hfbGVuZ3RoLHJ0LnN0cnN0YXJ0Kz1ydC5tYXRjaF9sZW5ndGgscnQubWF0Y2hfbGVuZ3RoPTApOihDdD1pLl90cl90YWxseShydCwwLHJ0LndpbmRvd1tydC5zdHJzdGFydF0pLHJ0Lmxvb2thaGVhZC0tLHJ0LnN0cnN0YXJ0KyspLEN0JiYoRyhydCwhMSkscnQuc3RybS5hdmFpbF9vdXQ9PT0wKSlyZXR1cm4gd31yZXR1cm4gcnQuaW5zZXJ0PTAsZ3Q9PT1nPyhHKHJ0LCEwKSxydC5zdHJtLmF2YWlsX291dD09PTA/UzpCKTpydC5sYXN0X2xpdCYmKEcocnQsITEpLHJ0LnN0cm0uYXZhaWxfb3V0PT09MCk/dzprfShWLHV0KTpyW1YubGV2ZWxdLmZ1bmMoVix1dCk7aWYodnQhPT1TJiZ2dCE9PUJ8fChWLnN0YXR1cz02NjYpLHZ0PT09d3x8dnQ9PT1TKXJldHVybiBELmF2YWlsX291dD09PTAmJihWLmxhc3RfZmx1c2g9LTEpLG07aWYodnQ9PT1rJiYodXQ9PT0xP2kuX3RyX2FsaWduKFYpOnV0IT09NSYmKGkuX3RyX3N0b3JlZF9ibG9jayhWLDAsMCwhMSksdXQ9PT0zJiYocShWLmhlYWQpLFYubG9va2FoZWFkPT09MCYmKFYuc3Ryc3RhcnQ9MCxWLmJsb2NrX3N0YXJ0PTAsVi5pbnNlcnQ9MCkpKSx6KEQpLEQuYXZhaWxfb3V0PT09MCkpcmV0dXJuIFYubGFzdF9mbHVzaD0tMSxtfXJldHVybiB1dCE9PWc/bTpWLndyYXA8PTA/MTooVi53cmFwPT09Mj8obnQoViwyNTUmRC5hZGxlciksbnQoVixELmFkbGVyPj44JjI1NSksbnQoVixELmFkbGVyPj4xNiYyNTUpLG50KFYsRC5hZGxlcj4+MjQmMjU1KSxudChWLDI1NSZELnRvdGFsX2luKSxudChWLEQudG90YWxfaW4+PjgmMjU1KSxudChWLEQudG90YWxfaW4+PjE2JjI1NSksbnQoVixELnRvdGFsX2luPj4yNCYyNTUpKToodHQoVixELmFkbGVyPj4+MTYpLHR0KFYsNjU1MzUmRC5hZGxlcikpLHooRCksMDxWLndyYXAmJihWLndyYXA9LVYud3JhcCksVi5wZW5kaW5nIT09MD9tOjEpfSxuLmRlZmxhdGVFbmQ9ZnVuY3Rpb24oRCl7dmFyIHV0O3JldHVybiBEJiZELnN0YXRlPyh1dD1ELnN0YXRlLnN0YXR1cykhPT1FJiZ1dCE9PTY5JiZ1dCE9PTczJiZ1dCE9PTkxJiZ1dCE9PTEwMyYmdXQhPT0kJiZ1dCE9PTY2Nj9MKEQsQyk6KEQuc3RhdGU9bnVsbCx1dD09PSQ/TChELC0zKTptKTpDfSxuLmRlZmxhdGVTZXREaWN0aW9uYXJ5PWZ1bmN0aW9uKEQsdXQpe3ZhciBvdCxWLGosSyxwdCx2dCxydCxndCxDdD11dC5sZW5ndGg7aWYoIUR8fCFELnN0YXRlfHwoSz0ob3Q9RC5zdGF0ZSkud3JhcCk9PT0yfHxLPT09MSYmb3Quc3RhdHVzIT09RXx8b3QubG9va2FoZWFkKXJldHVybiBDO2ZvcihLPT09MSYmKEQuYWRsZXI9byhELmFkbGVyLHV0LEN0LDApKSxvdC53cmFwPTAsQ3Q+PW90Lndfc2l6ZSYmKEs9PT0wJiYocShvdC5oZWFkKSxvdC5zdHJzdGFydD0wLG90LmJsb2NrX3N0YXJ0PTAsb3QuaW5zZXJ0PTApLGd0PW5ldyBzLkJ1Zjgob3Qud19zaXplKSxzLmFycmF5U2V0KGd0LHV0LEN0LW90Lndfc2l6ZSxvdC53X3NpemUsMCksdXQ9Z3QsQ3Q9b3Qud19zaXplKSxwdD1ELmF2YWlsX2luLHZ0PUQubmV4dF9pbixydD1ELmlucHV0LEQuYXZhaWxfaW49Q3QsRC5uZXh0X2luPTAsRC5pbnB1dD11dCx3dChvdCk7b3QubG9va2FoZWFkPj1VOyl7Zm9yKFY9b3Quc3Ryc3RhcnQsaj1vdC5sb29rYWhlYWQtKFUtMSk7b3QuaW5zX2g9KG90Lmluc19oPDxvdC5oYXNoX3NoaWZ0Xm90LndpbmRvd1tWK1UtMV0pJm90Lmhhc2hfbWFzayxvdC5wcmV2W1Ymb3Qud19tYXNrXT1vdC5oZWFkW290Lmluc19oXSxvdC5oZWFkW290Lmluc19oXT1WLFYrKywtLWo7KTtvdC5zdHJzdGFydD1WLG90Lmxvb2thaGVhZD1VLTEsd3Qob3QpfXJldHVybiBvdC5zdHJzdGFydCs9b3QubG9va2FoZWFkLG90LmJsb2NrX3N0YXJ0PW90LnN0cnN0YXJ0LG90Lmluc2VydD1vdC5sb29rYWhlYWQsb3QubG9va2FoZWFkPTAsb3QubWF0Y2hfbGVuZ3RoPW90LnByZXZfbGVuZ3RoPVUtMSxvdC5tYXRjaF9hdmFpbGFibGU9MCxELm5leHRfaW49dnQsRC5pbnB1dD1ydCxELmF2YWlsX2luPXB0LG90LndyYXA9SyxtfSxuLmRlZmxhdGVJbmZvPSJwYWtvIGRlZmxhdGUgKGZyb20gTm9kZWNhIHByb2plY3QpIn0seyIuLi91dGlscy9jb21tb24iOjQxLCIuL2FkbGVyMzIiOjQzLCIuL2NyYzMyIjo0NSwiLi9tZXNzYWdlcyI6NTEsIi4vdHJlZXMiOjUyfV0sNDc6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dGhpcy50ZXh0PTAsdGhpcy50aW1lPTAsdGhpcy54ZmxhZ3M9MCx0aGlzLm9zPTAsdGhpcy5leHRyYT1udWxsLHRoaXMuZXh0cmFfbGVuPTAsdGhpcy5uYW1lPSIiLHRoaXMuY29tbWVudD0iIix0aGlzLmhjcmM9MCx0aGlzLmRvbmU9ITF9fSx7fV0sNDg6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHIscyl7dmFyIGksbyx1LHAsYixnLG0sQyx5LFQsUCxjLGwsaCxfLEYsTyxmLFUsWCxRLEUsJCx3LGs7aT1yLnN0YXRlLG89ci5uZXh0X2luLHc9ci5pbnB1dCx1PW8rKHIuYXZhaWxfaW4tNSkscD1yLm5leHRfb3V0LGs9ci5vdXRwdXQsYj1wLShzLXIuYXZhaWxfb3V0KSxnPXArKHIuYXZhaWxfb3V0LTI1NyksbT1pLmRtYXgsQz1pLndzaXplLHk9aS53aGF2ZSxUPWkud25leHQsUD1pLndpbmRvdyxjPWkuaG9sZCxsPWkuYml0cyxoPWkubGVuY29kZSxfPWkuZGlzdGNvZGUsRj0oMTw8aS5sZW5iaXRzKS0xLE89KDE8PGkuZGlzdGJpdHMpLTE7dDpkb3tsPDE1JiYoYys9d1tvKytdPDxsLGwrPTgsYys9d1tvKytdPDxsLGwrPTgpLGY9aFtjJkZdO2U6Zm9yKDs7KXtpZihjPj4+PVU9Zj4+PjI0LGwtPVUsKFU9Zj4+PjE2JjI1NSk9PT0wKWtbcCsrXT02NTUzNSZmO2Vsc2V7aWYoISgxNiZVKSl7aWYoISg2NCZVKSl7Zj1oWyg2NTUzNSZmKSsoYyYoMTw8VSktMSldO2NvbnRpbnVlIGV9aWYoMzImVSl7aS5tb2RlPTEyO2JyZWFrIHR9ci5tc2c9ImludmFsaWQgbGl0ZXJhbC9sZW5ndGggY29kZSIsaS5tb2RlPTMwO2JyZWFrIHR9WD02NTUzNSZmLChVJj0xNSkmJihsPFUmJihjKz13W28rK108PGwsbCs9OCksWCs9YyYoMTw8VSktMSxjPj4+PVUsbC09VSksbDwxNSYmKGMrPXdbbysrXTw8bCxsKz04LGMrPXdbbysrXTw8bCxsKz04KSxmPV9bYyZPXTtuOmZvcig7Oyl7aWYoYz4+Pj1VPWY+Pj4yNCxsLT1VLCEoMTYmKFU9Zj4+PjE2JjI1NSkpKXtpZighKDY0JlUpKXtmPV9bKDY1NTM1JmYpKyhjJigxPDxVKS0xKV07Y29udGludWUgbn1yLm1zZz0iaW52YWxpZCBkaXN0YW5jZSBjb2RlIixpLm1vZGU9MzA7YnJlYWsgdH1pZihRPTY1NTM1JmYsbDwoVSY9MTUpJiYoYys9d1tvKytdPDxsLChsKz04KTxVJiYoYys9d1tvKytdPDxsLGwrPTgpKSxtPChRKz1jJigxPDxVKS0xKSl7ci5tc2c9ImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrIixpLm1vZGU9MzA7YnJlYWsgdH1pZihjPj4+PVUsbC09VSwoVT1wLWIpPFEpe2lmKHk8KFU9US1VKSYmaS5zYW5lKXtyLm1zZz0iaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2siLGkubW9kZT0zMDticmVhayB0fWlmKCQ9UCwoRT0wKT09PVQpe2lmKEUrPUMtVSxVPFgpe2ZvcihYLT1VO2tbcCsrXT1QW0UrK10sLS1VOyk7RT1wLVEsJD1rfX1lbHNlIGlmKFQ8VSl7aWYoRSs9QytULVUsKFUtPVQpPFgpe2ZvcihYLT1VO2tbcCsrXT1QW0UrK10sLS1VOyk7aWYoRT0wLFQ8WCl7Zm9yKFgtPVU9VDtrW3ArK109UFtFKytdLC0tVTspO0U9cC1RLCQ9a319fWVsc2UgaWYoRSs9VC1VLFU8WCl7Zm9yKFgtPVU7a1twKytdPVBbRSsrXSwtLVU7KTtFPXAtUSwkPWt9Zm9yKDsyPFg7KWtbcCsrXT0kW0UrK10sa1twKytdPSRbRSsrXSxrW3ArK109JFtFKytdLFgtPTM7WCYmKGtbcCsrXT0kW0UrK10sMTxYJiYoa1twKytdPSRbRSsrXSkpfWVsc2V7Zm9yKEU9cC1RO2tbcCsrXT1rW0UrK10sa1twKytdPWtbRSsrXSxrW3ArK109a1tFKytdLDI8KFgtPTMpOyk7WCYmKGtbcCsrXT1rW0UrK10sMTxYJiYoa1twKytdPWtbRSsrXSkpfWJyZWFrfX1icmVha319d2hpbGUobzx1JiZwPGcpO28tPVg9bD4+MyxjJj0oMTw8KGwtPVg8PDMpKS0xLHIubmV4dF9pbj1vLHIubmV4dF9vdXQ9cCxyLmF2YWlsX2luPW88dT91LW8rNTo1LShvLXUpLHIuYXZhaWxfb3V0PXA8Zz9nLXArMjU3OjI1Ny0ocC1nKSxpLmhvbGQ9YyxpLmJpdHM9bH19LHt9XSw0OTpbZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj10KCIuLi91dGlscy9jb21tb24iKSxzPXQoIi4vYWRsZXIzMiIpLGk9dCgiLi9jcmMzMiIpLG89dCgiLi9pbmZmYXN0IiksdT10KCIuL2luZnRyZWVzIikscD0xLGI9MixnPTAsbT0tMixDPTEseT04NTIsVD01OTI7ZnVuY3Rpb24gUChFKXtyZXR1cm4oRT4+PjI0JjI1NSkrKEU+Pj44JjY1MjgwKSsoKDY1MjgwJkUpPDw4KSsoKDI1NSZFKTw8MjQpfWZ1bmN0aW9uIGMoKXt0aGlzLm1vZGU9MCx0aGlzLmxhc3Q9ITEsdGhpcy53cmFwPTAsdGhpcy5oYXZlZGljdD0hMSx0aGlzLmZsYWdzPTAsdGhpcy5kbWF4PTAsdGhpcy5jaGVjaz0wLHRoaXMudG90YWw9MCx0aGlzLmhlYWQ9bnVsbCx0aGlzLndiaXRzPTAsdGhpcy53c2l6ZT0wLHRoaXMud2hhdmU9MCx0aGlzLnduZXh0PTAsdGhpcy53aW5kb3c9bnVsbCx0aGlzLmhvbGQ9MCx0aGlzLmJpdHM9MCx0aGlzLmxlbmd0aD0wLHRoaXMub2Zmc2V0PTAsdGhpcy5leHRyYT0wLHRoaXMubGVuY29kZT1udWxsLHRoaXMuZGlzdGNvZGU9bnVsbCx0aGlzLmxlbmJpdHM9MCx0aGlzLmRpc3RiaXRzPTAsdGhpcy5uY29kZT0wLHRoaXMubmxlbj0wLHRoaXMubmRpc3Q9MCx0aGlzLmhhdmU9MCx0aGlzLm5leHQ9bnVsbCx0aGlzLmxlbnM9bmV3IHIuQnVmMTYoMzIwKSx0aGlzLndvcms9bmV3IHIuQnVmMTYoMjg4KSx0aGlzLmxlbmR5bj1udWxsLHRoaXMuZGlzdGR5bj1udWxsLHRoaXMuc2FuZT0wLHRoaXMuYmFjaz0wLHRoaXMud2FzPTB9ZnVuY3Rpb24gbChFKXt2YXIgJDtyZXR1cm4gRSYmRS5zdGF0ZT8oJD1FLnN0YXRlLEUudG90YWxfaW49RS50b3RhbF9vdXQ9JC50b3RhbD0wLEUubXNnPSIiLCQud3JhcCYmKEUuYWRsZXI9MSYkLndyYXApLCQubW9kZT1DLCQubGFzdD0wLCQuaGF2ZWRpY3Q9MCwkLmRtYXg9MzI3NjgsJC5oZWFkPW51bGwsJC5ob2xkPTAsJC5iaXRzPTAsJC5sZW5jb2RlPSQubGVuZHluPW5ldyByLkJ1ZjMyKHkpLCQuZGlzdGNvZGU9JC5kaXN0ZHluPW5ldyByLkJ1ZjMyKFQpLCQuc2FuZT0xLCQuYmFjaz0tMSxnKTptfWZ1bmN0aW9uIGgoRSl7dmFyICQ7cmV0dXJuIEUmJkUuc3RhdGU/KCgkPUUuc3RhdGUpLndzaXplPTAsJC53aGF2ZT0wLCQud25leHQ9MCxsKEUpKTptfWZ1bmN0aW9uIF8oRSwkKXt2YXIgdyxrO3JldHVybiBFJiZFLnN0YXRlPyhrPUUuc3RhdGUsJDwwPyh3PTAsJD0tJCk6KHc9MSsoJD4+NCksJDw0OCYmKCQmPTE1KSksJCYmKCQ8OHx8MTU8JCk/bTooay53aW5kb3chPT1udWxsJiZrLndiaXRzIT09JCYmKGsud2luZG93PW51bGwpLGsud3JhcD13LGsud2JpdHM9JCxoKEUpKSk6bX1mdW5jdGlvbiBGKEUsJCl7dmFyIHcsaztyZXR1cm4gRT8oaz1uZXcgYywoRS5zdGF0ZT1rKS53aW5kb3c9bnVsbCwodz1fKEUsJCkpIT09ZyYmKEUuc3RhdGU9bnVsbCksdyk6bX12YXIgTyxmLFU9ITA7ZnVuY3Rpb24gWChFKXtpZihVKXt2YXIgJDtmb3IoTz1uZXcgci5CdWYzMig1MTIpLGY9bmV3IHIuQnVmMzIoMzIpLCQ9MDskPDE0NDspRS5sZW5zWyQrK109ODtmb3IoOyQ8MjU2OylFLmxlbnNbJCsrXT05O2Zvcig7JDwyODA7KUUubGVuc1skKytdPTc7Zm9yKDskPDI4ODspRS5sZW5zWyQrK109ODtmb3IodShwLEUubGVucywwLDI4OCxPLDAsRS53b3JrLHtiaXRzOjl9KSwkPTA7JDwzMjspRS5sZW5zWyQrK109NTt1KGIsRS5sZW5zLDAsMzIsZiwwLEUud29yayx7Yml0czo1fSksVT0hMX1FLmxlbmNvZGU9TyxFLmxlbmJpdHM9OSxFLmRpc3Rjb2RlPWYsRS5kaXN0Yml0cz01fWZ1bmN0aW9uIFEoRSwkLHcsayl7dmFyIFMsQj1FLnN0YXRlO3JldHVybiBCLndpbmRvdz09PW51bGwmJihCLndzaXplPTE8PEIud2JpdHMsQi53bmV4dD0wLEIud2hhdmU9MCxCLndpbmRvdz1uZXcgci5CdWY4KEIud3NpemUpKSxrPj1CLndzaXplPyhyLmFycmF5U2V0KEIud2luZG93LCQsdy1CLndzaXplLEIud3NpemUsMCksQi53bmV4dD0wLEIud2hhdmU9Qi53c2l6ZSk6KGs8KFM9Qi53c2l6ZS1CLnduZXh0KSYmKFM9ayksci5hcnJheVNldChCLndpbmRvdywkLHctayxTLEIud25leHQpLChrLT1TKT8oci5hcnJheVNldChCLndpbmRvdywkLHctayxrLDApLEIud25leHQ9ayxCLndoYXZlPUIud3NpemUpOihCLnduZXh0Kz1TLEIud25leHQ9PT1CLndzaXplJiYoQi53bmV4dD0wKSxCLndoYXZlPEIud3NpemUmJihCLndoYXZlKz1TKSkpLDB9bi5pbmZsYXRlUmVzZXQ9aCxuLmluZmxhdGVSZXNldDI9XyxuLmluZmxhdGVSZXNldEtlZXA9bCxuLmluZmxhdGVJbml0PWZ1bmN0aW9uKEUpe3JldHVybiBGKEUsMTUpfSxuLmluZmxhdGVJbml0Mj1GLG4uaW5mbGF0ZT1mdW5jdGlvbihFLCQpe3ZhciB3LGssUyxCLEwsUixxLHosRyxudCx0dCxldCx3dCxTdCxUdCxrdCxMdCxCdCwkdCxLdCxELHV0LG90LFYsaj0wLEs9bmV3IHIuQnVmOCg0KSxwdD1bMTYsMTcsMTgsMCw4LDcsOSw2LDEwLDUsMTEsNCwxMiwzLDEzLDIsMTQsMSwxNV07aWYoIUV8fCFFLnN0YXRlfHwhRS5vdXRwdXR8fCFFLmlucHV0JiZFLmF2YWlsX2luIT09MClyZXR1cm4gbTsodz1FLnN0YXRlKS5tb2RlPT09MTImJih3Lm1vZGU9MTMpLEw9RS5uZXh0X291dCxTPUUub3V0cHV0LHE9RS5hdmFpbF9vdXQsQj1FLm5leHRfaW4saz1FLmlucHV0LFI9RS5hdmFpbF9pbix6PXcuaG9sZCxHPXcuYml0cyxudD1SLHR0PXEsdXQ9Zzt0OmZvcig7Oylzd2l0Y2gody5tb2RlKXtjYXNlIEM6aWYody53cmFwPT09MCl7dy5tb2RlPTEzO2JyZWFrfWZvcig7RzwxNjspe2lmKFI9PT0wKWJyZWFrIHQ7Ui0tLHorPWtbQisrXTw8RyxHKz04fWlmKDImdy53cmFwJiZ6PT09MzU2MTUpe0tbdy5jaGVjaz0wXT0yNTUmeixLWzFdPXo+Pj44JjI1NSx3LmNoZWNrPWkody5jaGVjayxLLDIsMCksRz16PTAsdy5tb2RlPTI7YnJlYWt9aWYody5mbGFncz0wLHcuaGVhZCYmKHcuaGVhZC5kb25lPSExKSwhKDEmdy53cmFwKXx8KCgoMjU1JnopPDw4KSsoej4+OCkpJTMxKXtFLm1zZz0iaW5jb3JyZWN0IGhlYWRlciBjaGVjayIsdy5tb2RlPTMwO2JyZWFrfWlmKCgxNSZ6KSE9OCl7RS5tc2c9InVua25vd24gY29tcHJlc3Npb24gbWV0aG9kIix3Lm1vZGU9MzA7YnJlYWt9aWYoRy09NCxEPTgrKDE1Jih6Pj4+PTQpKSx3LndiaXRzPT09MCl3LndiaXRzPUQ7ZWxzZSBpZihEPncud2JpdHMpe0UubXNnPSJpbnZhbGlkIHdpbmRvdyBzaXplIix3Lm1vZGU9MzA7YnJlYWt9dy5kbWF4PTE8PEQsRS5hZGxlcj13LmNoZWNrPTEsdy5tb2RlPTUxMiZ6PzEwOjEyLEc9ej0wO2JyZWFrO2Nhc2UgMjpmb3IoO0c8MTY7KXtpZihSPT09MClicmVhayB0O1ItLSx6Kz1rW0IrK108PEcsRys9OH1pZih3LmZsYWdzPXosKDI1NSZ3LmZsYWdzKSE9OCl7RS5tc2c9InVua25vd24gY29tcHJlc3Npb24gbWV0aG9kIix3Lm1vZGU9MzA7YnJlYWt9aWYoNTczNDQmdy5mbGFncyl7RS5tc2c9InVua25vd24gaGVhZGVyIGZsYWdzIHNldCIsdy5tb2RlPTMwO2JyZWFrfXcuaGVhZCYmKHcuaGVhZC50ZXh0PXo+PjgmMSksNTEyJncuZmxhZ3MmJihLWzBdPTI1NSZ6LEtbMV09ej4+PjgmMjU1LHcuY2hlY2s9aSh3LmNoZWNrLEssMiwwKSksRz16PTAsdy5tb2RlPTM7Y2FzZSAzOmZvcig7RzwzMjspe2lmKFI9PT0wKWJyZWFrIHQ7Ui0tLHorPWtbQisrXTw8RyxHKz04fXcuaGVhZCYmKHcuaGVhZC50aW1lPXopLDUxMiZ3LmZsYWdzJiYoS1swXT0yNTUmeixLWzFdPXo+Pj44JjI1NSxLWzJdPXo+Pj4xNiYyNTUsS1szXT16Pj4+MjQmMjU1LHcuY2hlY2s9aSh3LmNoZWNrLEssNCwwKSksRz16PTAsdy5tb2RlPTQ7Y2FzZSA0OmZvcig7RzwxNjspe2lmKFI9PT0wKWJyZWFrIHQ7Ui0tLHorPWtbQisrXTw8RyxHKz04fXcuaGVhZCYmKHcuaGVhZC54ZmxhZ3M9MjU1Jnosdy5oZWFkLm9zPXo+PjgpLDUxMiZ3LmZsYWdzJiYoS1swXT0yNTUmeixLWzFdPXo+Pj44JjI1NSx3LmNoZWNrPWkody5jaGVjayxLLDIsMCkpLEc9ej0wLHcubW9kZT01O2Nhc2UgNTppZigxMDI0JncuZmxhZ3Mpe2Zvcig7RzwxNjspe2lmKFI9PT0wKWJyZWFrIHQ7Ui0tLHorPWtbQisrXTw8RyxHKz04fXcubGVuZ3RoPXosdy5oZWFkJiYody5oZWFkLmV4dHJhX2xlbj16KSw1MTImdy5mbGFncyYmKEtbMF09MjU1JnosS1sxXT16Pj4+OCYyNTUsdy5jaGVjaz1pKHcuY2hlY2ssSywyLDApKSxHPXo9MH1lbHNlIHcuaGVhZCYmKHcuaGVhZC5leHRyYT1udWxsKTt3Lm1vZGU9NjtjYXNlIDY6aWYoMTAyNCZ3LmZsYWdzJiYoUjwoZXQ9dy5sZW5ndGgpJiYoZXQ9UiksZXQmJih3LmhlYWQmJihEPXcuaGVhZC5leHRyYV9sZW4tdy5sZW5ndGgsdy5oZWFkLmV4dHJhfHwody5oZWFkLmV4dHJhPW5ldyBBcnJheSh3LmhlYWQuZXh0cmFfbGVuKSksci5hcnJheVNldCh3LmhlYWQuZXh0cmEsayxCLGV0LEQpKSw1MTImdy5mbGFncyYmKHcuY2hlY2s9aSh3LmNoZWNrLGssZXQsQikpLFItPWV0LEIrPWV0LHcubGVuZ3RoLT1ldCksdy5sZW5ndGgpKWJyZWFrIHQ7dy5sZW5ndGg9MCx3Lm1vZGU9NztjYXNlIDc6aWYoMjA0OCZ3LmZsYWdzKXtpZihSPT09MClicmVhayB0O2ZvcihldD0wO0Q9a1tCK2V0KytdLHcuaGVhZCYmRCYmdy5sZW5ndGg8NjU1MzYmJih3LmhlYWQubmFtZSs9U3RyaW5nLmZyb21DaGFyQ29kZShEKSksRCYmZXQ8UjspO2lmKDUxMiZ3LmZsYWdzJiYody5jaGVjaz1pKHcuY2hlY2ssayxldCxCKSksUi09ZXQsQis9ZXQsRClicmVhayB0fWVsc2Ugdy5oZWFkJiYody5oZWFkLm5hbWU9bnVsbCk7dy5sZW5ndGg9MCx3Lm1vZGU9ODtjYXNlIDg6aWYoNDA5NiZ3LmZsYWdzKXtpZihSPT09MClicmVhayB0O2ZvcihldD0wO0Q9a1tCK2V0KytdLHcuaGVhZCYmRCYmdy5sZW5ndGg8NjU1MzYmJih3LmhlYWQuY29tbWVudCs9U3RyaW5nLmZyb21DaGFyQ29kZShEKSksRCYmZXQ8UjspO2lmKDUxMiZ3LmZsYWdzJiYody5jaGVjaz1pKHcuY2hlY2ssayxldCxCKSksUi09ZXQsQis9ZXQsRClicmVhayB0fWVsc2Ugdy5oZWFkJiYody5oZWFkLmNvbW1lbnQ9bnVsbCk7dy5tb2RlPTk7Y2FzZSA5OmlmKDUxMiZ3LmZsYWdzKXtmb3IoO0c8MTY7KXtpZihSPT09MClicmVhayB0O1ItLSx6Kz1rW0IrK108PEcsRys9OH1pZih6IT09KDY1NTM1JncuY2hlY2spKXtFLm1zZz0iaGVhZGVyIGNyYyBtaXNtYXRjaCIsdy5tb2RlPTMwO2JyZWFrfUc9ej0wfXcuaGVhZCYmKHcuaGVhZC5oY3JjPXcuZmxhZ3M+PjkmMSx3LmhlYWQuZG9uZT0hMCksRS5hZGxlcj13LmNoZWNrPTAsdy5tb2RlPTEyO2JyZWFrO2Nhc2UgMTA6Zm9yKDtHPDMyOyl7aWYoUj09PTApYnJlYWsgdDtSLS0seis9a1tCKytdPDxHLEcrPTh9RS5hZGxlcj13LmNoZWNrPVAoeiksRz16PTAsdy5tb2RlPTExO2Nhc2UgMTE6aWYody5oYXZlZGljdD09PTApcmV0dXJuIEUubmV4dF9vdXQ9TCxFLmF2YWlsX291dD1xLEUubmV4dF9pbj1CLEUuYXZhaWxfaW49Uix3LmhvbGQ9eix3LmJpdHM9RywyO0UuYWRsZXI9dy5jaGVjaz0xLHcubW9kZT0xMjtjYXNlIDEyOmlmKCQ9PT01fHwkPT09NilicmVhayB0O2Nhc2UgMTM6aWYody5sYXN0KXt6Pj4+PTcmRyxHLT03Jkcsdy5tb2RlPTI3O2JyZWFrfWZvcig7RzwzOyl7aWYoUj09PTApYnJlYWsgdDtSLS0seis9a1tCKytdPDxHLEcrPTh9c3dpdGNoKHcubGFzdD0xJnosRy09MSwzJih6Pj4+PTEpKXtjYXNlIDA6dy5tb2RlPTE0O2JyZWFrO2Nhc2UgMTppZihYKHcpLHcubW9kZT0yMCwkIT09NilicmVhazt6Pj4+PTIsRy09MjticmVhayB0O2Nhc2UgMjp3Lm1vZGU9MTc7YnJlYWs7Y2FzZSAzOkUubXNnPSJpbnZhbGlkIGJsb2NrIHR5cGUiLHcubW9kZT0zMH16Pj4+PTIsRy09MjticmVhaztjYXNlIDE0OmZvcih6Pj4+PTcmRyxHLT03Jkc7RzwzMjspe2lmKFI9PT0wKWJyZWFrIHQ7Ui0tLHorPWtbQisrXTw8RyxHKz04fWlmKCg2NTUzNSZ6KSE9KHo+Pj4xNl42NTUzNSkpe0UubXNnPSJpbnZhbGlkIHN0b3JlZCBibG9jayBsZW5ndGhzIix3Lm1vZGU9MzA7YnJlYWt9aWYody5sZW5ndGg9NjU1MzUmeixHPXo9MCx3Lm1vZGU9MTUsJD09PTYpYnJlYWsgdDtjYXNlIDE1OncubW9kZT0xNjtjYXNlIDE2OmlmKGV0PXcubGVuZ3RoKXtpZihSPGV0JiYoZXQ9UikscTxldCYmKGV0PXEpLGV0PT09MClicmVhayB0O3IuYXJyYXlTZXQoUyxrLEIsZXQsTCksUi09ZXQsQis9ZXQscS09ZXQsTCs9ZXQsdy5sZW5ndGgtPWV0O2JyZWFrfXcubW9kZT0xMjticmVhaztjYXNlIDE3OmZvcig7RzwxNDspe2lmKFI9PT0wKWJyZWFrIHQ7Ui0tLHorPWtbQisrXTw8RyxHKz04fWlmKHcubmxlbj0yNTcrKDMxJnopLHo+Pj49NSxHLT01LHcubmRpc3Q9MSsoMzEmeiksej4+Pj01LEctPTUsdy5uY29kZT00KygxNSZ6KSx6Pj4+PTQsRy09NCwyODY8dy5ubGVufHwzMDx3Lm5kaXN0KXtFLm1zZz0idG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMiLHcubW9kZT0zMDticmVha313LmhhdmU9MCx3Lm1vZGU9MTg7Y2FzZSAxODpmb3IoO3cuaGF2ZTx3Lm5jb2RlOyl7Zm9yKDtHPDM7KXtpZihSPT09MClicmVhayB0O1ItLSx6Kz1rW0IrK108PEcsRys9OH13LmxlbnNbcHRbdy5oYXZlKytdXT03Jnosej4+Pj0zLEctPTN9Zm9yKDt3LmhhdmU8MTk7KXcubGVuc1twdFt3LmhhdmUrK11dPTA7aWYody5sZW5jb2RlPXcubGVuZHluLHcubGVuYml0cz03LG90PXtiaXRzOncubGVuYml0c30sdXQ9dSgwLHcubGVucywwLDE5LHcubGVuY29kZSwwLHcud29yayxvdCksdy5sZW5iaXRzPW90LmJpdHMsdXQpe0UubXNnPSJpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQiLHcubW9kZT0zMDticmVha313LmhhdmU9MCx3Lm1vZGU9MTk7Y2FzZSAxOTpmb3IoO3cuaGF2ZTx3Lm5sZW4rdy5uZGlzdDspe2Zvcig7a3Q9KGo9dy5sZW5jb2RlW3omKDE8PHcubGVuYml0cyktMV0pPj4+MTYmMjU1LEx0PTY1NTM1JmosISgoVHQ9aj4+PjI0KTw9Ryk7KXtpZihSPT09MClicmVhayB0O1ItLSx6Kz1rW0IrK108PEcsRys9OH1pZihMdDwxNil6Pj4+PVR0LEctPVR0LHcubGVuc1t3LmhhdmUrK109THQ7ZWxzZXtpZihMdD09PTE2KXtmb3IoVj1UdCsyO0c8Vjspe2lmKFI9PT0wKWJyZWFrIHQ7Ui0tLHorPWtbQisrXTw8RyxHKz04fWlmKHo+Pj49VHQsRy09VHQsdy5oYXZlPT09MCl7RS5tc2c9ImludmFsaWQgYml0IGxlbmd0aCByZXBlYXQiLHcubW9kZT0zMDticmVha31EPXcubGVuc1t3LmhhdmUtMV0sZXQ9MysoMyZ6KSx6Pj4+PTIsRy09Mn1lbHNlIGlmKEx0PT09MTcpe2ZvcihWPVR0KzM7RzxWOyl7aWYoUj09PTApYnJlYWsgdDtSLS0seis9a1tCKytdPDxHLEcrPTh9Ry09VHQsRD0wLGV0PTMrKDcmKHo+Pj49VHQpKSx6Pj4+PTMsRy09M31lbHNle2ZvcihWPVR0Kzc7RzxWOyl7aWYoUj09PTApYnJlYWsgdDtSLS0seis9a1tCKytdPDxHLEcrPTh9Ry09VHQsRD0wLGV0PTExKygxMjcmKHo+Pj49VHQpKSx6Pj4+PTcsRy09N31pZih3LmhhdmUrZXQ+dy5ubGVuK3cubmRpc3Qpe0UubXNnPSJpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0Iix3Lm1vZGU9MzA7YnJlYWt9Zm9yKDtldC0tOyl3LmxlbnNbdy5oYXZlKytdPUR9fWlmKHcubW9kZT09PTMwKWJyZWFrO2lmKHcubGVuc1syNTZdPT09MCl7RS5tc2c9ImludmFsaWQgY29kZSAtLSBtaXNzaW5nIGVuZC1vZi1ibG9jayIsdy5tb2RlPTMwO2JyZWFrfWlmKHcubGVuYml0cz05LG90PXtiaXRzOncubGVuYml0c30sdXQ9dShwLHcubGVucywwLHcubmxlbix3LmxlbmNvZGUsMCx3Lndvcmssb3QpLHcubGVuYml0cz1vdC5iaXRzLHV0KXtFLm1zZz0iaW52YWxpZCBsaXRlcmFsL2xlbmd0aHMgc2V0Iix3Lm1vZGU9MzA7YnJlYWt9aWYody5kaXN0Yml0cz02LHcuZGlzdGNvZGU9dy5kaXN0ZHluLG90PXtiaXRzOncuZGlzdGJpdHN9LHV0PXUoYix3LmxlbnMsdy5ubGVuLHcubmRpc3Qsdy5kaXN0Y29kZSwwLHcud29yayxvdCksdy5kaXN0Yml0cz1vdC5iaXRzLHV0KXtFLm1zZz0iaW52YWxpZCBkaXN0YW5jZXMgc2V0Iix3Lm1vZGU9MzA7YnJlYWt9aWYody5tb2RlPTIwLCQ9PT02KWJyZWFrIHQ7Y2FzZSAyMDp3Lm1vZGU9MjE7Y2FzZSAyMTppZig2PD1SJiYyNTg8PXEpe0UubmV4dF9vdXQ9TCxFLmF2YWlsX291dD1xLEUubmV4dF9pbj1CLEUuYXZhaWxfaW49Uix3LmhvbGQ9eix3LmJpdHM9RyxvKEUsdHQpLEw9RS5uZXh0X291dCxTPUUub3V0cHV0LHE9RS5hdmFpbF9vdXQsQj1FLm5leHRfaW4saz1FLmlucHV0LFI9RS5hdmFpbF9pbix6PXcuaG9sZCxHPXcuYml0cyx3Lm1vZGU9PT0xMiYmKHcuYmFjaz0tMSk7YnJlYWt9Zm9yKHcuYmFjaz0wO2t0PShqPXcubGVuY29kZVt6JigxPDx3LmxlbmJpdHMpLTFdKT4+PjE2JjI1NSxMdD02NTUzNSZqLCEoKFR0PWo+Pj4yNCk8PUcpOyl7aWYoUj09PTApYnJlYWsgdDtSLS0seis9a1tCKytdPDxHLEcrPTh9aWYoa3QmJiEoMjQwJmt0KSl7Zm9yKEJ0PVR0LCR0PWt0LEt0PUx0O2t0PShqPXcubGVuY29kZVtLdCsoKHomKDE8PEJ0KyR0KS0xKT4+QnQpXSk+Pj4xNiYyNTUsTHQ9NjU1MzUmaiwhKEJ0KyhUdD1qPj4+MjQpPD1HKTspe2lmKFI9PT0wKWJyZWFrIHQ7Ui0tLHorPWtbQisrXTw8RyxHKz04fXo+Pj49QnQsRy09QnQsdy5iYWNrKz1CdH1pZih6Pj4+PVR0LEctPVR0LHcuYmFjays9VHQsdy5sZW5ndGg9THQsa3Q9PT0wKXt3Lm1vZGU9MjY7YnJlYWt9aWYoMzIma3Qpe3cuYmFjaz0tMSx3Lm1vZGU9MTI7YnJlYWt9aWYoNjQma3Qpe0UubXNnPSJpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUiLHcubW9kZT0zMDticmVha313LmV4dHJhPTE1Jmt0LHcubW9kZT0yMjtjYXNlIDIyOmlmKHcuZXh0cmEpe2ZvcihWPXcuZXh0cmE7RzxWOyl7aWYoUj09PTApYnJlYWsgdDtSLS0seis9a1tCKytdPDxHLEcrPTh9dy5sZW5ndGgrPXomKDE8PHcuZXh0cmEpLTEsej4+Pj13LmV4dHJhLEctPXcuZXh0cmEsdy5iYWNrKz13LmV4dHJhfXcud2FzPXcubGVuZ3RoLHcubW9kZT0yMztjYXNlIDIzOmZvcig7a3Q9KGo9dy5kaXN0Y29kZVt6JigxPDx3LmRpc3RiaXRzKS0xXSk+Pj4xNiYyNTUsTHQ9NjU1MzUmaiwhKChUdD1qPj4+MjQpPD1HKTspe2lmKFI9PT0wKWJyZWFrIHQ7Ui0tLHorPWtbQisrXTw8RyxHKz04fWlmKCEoMjQwJmt0KSl7Zm9yKEJ0PVR0LCR0PWt0LEt0PUx0O2t0PShqPXcuZGlzdGNvZGVbS3QrKCh6JigxPDxCdCskdCktMSk+PkJ0KV0pPj4+MTYmMjU1LEx0PTY1NTM1JmosIShCdCsoVHQ9aj4+PjI0KTw9Ryk7KXtpZihSPT09MClicmVhayB0O1ItLSx6Kz1rW0IrK108PEcsRys9OH16Pj4+PUJ0LEctPUJ0LHcuYmFjays9QnR9aWYoej4+Pj1UdCxHLT1UdCx3LmJhY2srPVR0LDY0Jmt0KXtFLm1zZz0iaW52YWxpZCBkaXN0YW5jZSBjb2RlIix3Lm1vZGU9MzA7YnJlYWt9dy5vZmZzZXQ9THQsdy5leHRyYT0xNSZrdCx3Lm1vZGU9MjQ7Y2FzZSAyNDppZih3LmV4dHJhKXtmb3IoVj13LmV4dHJhO0c8Vjspe2lmKFI9PT0wKWJyZWFrIHQ7Ui0tLHorPWtbQisrXTw8RyxHKz04fXcub2Zmc2V0Kz16JigxPDx3LmV4dHJhKS0xLHo+Pj49dy5leHRyYSxHLT13LmV4dHJhLHcuYmFjays9dy5leHRyYX1pZih3Lm9mZnNldD53LmRtYXgpe0UubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIsdy5tb2RlPTMwO2JyZWFrfXcubW9kZT0yNTtjYXNlIDI1OmlmKHE9PT0wKWJyZWFrIHQ7aWYoZXQ9dHQtcSx3Lm9mZnNldD5ldCl7aWYoKGV0PXcub2Zmc2V0LWV0KT53LndoYXZlJiZ3LnNhbmUpe0UubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIsdy5tb2RlPTMwO2JyZWFrfXd0PWV0Pncud25leHQ/KGV0LT13LnduZXh0LHcud3NpemUtZXQpOncud25leHQtZXQsZXQ+dy5sZW5ndGgmJihldD13Lmxlbmd0aCksU3Q9dy53aW5kb3d9ZWxzZSBTdD1TLHd0PUwtdy5vZmZzZXQsZXQ9dy5sZW5ndGg7Zm9yKHE8ZXQmJihldD1xKSxxLT1ldCx3Lmxlbmd0aC09ZXQ7U1tMKytdPVN0W3d0KytdLC0tZXQ7KTt3Lmxlbmd0aD09PTAmJih3Lm1vZGU9MjEpO2JyZWFrO2Nhc2UgMjY6aWYocT09PTApYnJlYWsgdDtTW0wrK109dy5sZW5ndGgscS0tLHcubW9kZT0yMTticmVhaztjYXNlIDI3OmlmKHcud3JhcCl7Zm9yKDtHPDMyOyl7aWYoUj09PTApYnJlYWsgdDtSLS0senw9a1tCKytdPDxHLEcrPTh9aWYodHQtPXEsRS50b3RhbF9vdXQrPXR0LHcudG90YWwrPXR0LHR0JiYoRS5hZGxlcj13LmNoZWNrPXcuZmxhZ3M/aSh3LmNoZWNrLFMsdHQsTC10dCk6cyh3LmNoZWNrLFMsdHQsTC10dCkpLHR0PXEsKHcuZmxhZ3M/ejpQKHopKSE9PXcuY2hlY2spe0UubXNnPSJpbmNvcnJlY3QgZGF0YSBjaGVjayIsdy5tb2RlPTMwO2JyZWFrfUc9ej0wfXcubW9kZT0yODtjYXNlIDI4OmlmKHcud3JhcCYmdy5mbGFncyl7Zm9yKDtHPDMyOyl7aWYoUj09PTApYnJlYWsgdDtSLS0seis9a1tCKytdPDxHLEcrPTh9aWYoeiE9PSg0Mjk0OTY3Mjk1JncudG90YWwpKXtFLm1zZz0iaW5jb3JyZWN0IGxlbmd0aCBjaGVjayIsdy5tb2RlPTMwO2JyZWFrfUc9ej0wfXcubW9kZT0yOTtjYXNlIDI5OnV0PTE7YnJlYWsgdDtjYXNlIDMwOnV0PS0zO2JyZWFrIHQ7Y2FzZSAzMTpyZXR1cm4tNDtjYXNlIDMyOmRlZmF1bHQ6cmV0dXJuIG19cmV0dXJuIEUubmV4dF9vdXQ9TCxFLmF2YWlsX291dD1xLEUubmV4dF9pbj1CLEUuYXZhaWxfaW49Uix3LmhvbGQ9eix3LmJpdHM9Rywody53c2l6ZXx8dHQhPT1FLmF2YWlsX291dCYmdy5tb2RlPDMwJiYody5tb2RlPDI3fHwkIT09NCkpJiZRKEUsRS5vdXRwdXQsRS5uZXh0X291dCx0dC1FLmF2YWlsX291dCk/KHcubW9kZT0zMSwtNCk6KG50LT1FLmF2YWlsX2luLHR0LT1FLmF2YWlsX291dCxFLnRvdGFsX2luKz1udCxFLnRvdGFsX291dCs9dHQsdy50b3RhbCs9dHQsdy53cmFwJiZ0dCYmKEUuYWRsZXI9dy5jaGVjaz13LmZsYWdzP2kody5jaGVjayxTLHR0LEUubmV4dF9vdXQtdHQpOnMody5jaGVjayxTLHR0LEUubmV4dF9vdXQtdHQpKSxFLmRhdGFfdHlwZT13LmJpdHMrKHcubGFzdD82NDowKSsody5tb2RlPT09MTI/MTI4OjApKyh3Lm1vZGU9PT0yMHx8dy5tb2RlPT09MTU/MjU2OjApLChudD09MCYmdHQ9PT0wfHwkPT09NCkmJnV0PT09ZyYmKHV0PS01KSx1dCl9LG4uaW5mbGF0ZUVuZD1mdW5jdGlvbihFKXtpZighRXx8IUUuc3RhdGUpcmV0dXJuIG07dmFyICQ9RS5zdGF0ZTtyZXR1cm4gJC53aW5kb3cmJigkLndpbmRvdz1udWxsKSxFLnN0YXRlPW51bGwsZ30sbi5pbmZsYXRlR2V0SGVhZGVyPWZ1bmN0aW9uKEUsJCl7dmFyIHc7cmV0dXJuIEUmJkUuc3RhdGUmJjImKHc9RS5zdGF0ZSkud3JhcD8oKHcuaGVhZD0kKS5kb25lPSExLGcpOm19LG4uaW5mbGF0ZVNldERpY3Rpb25hcnk9ZnVuY3Rpb24oRSwkKXt2YXIgdyxrPSQubGVuZ3RoO3JldHVybiBFJiZFLnN0YXRlPyh3PUUuc3RhdGUpLndyYXAhPT0wJiZ3Lm1vZGUhPT0xMT9tOncubW9kZT09PTExJiZzKDEsJCxrLDApIT09dy5jaGVjaz8tMzpRKEUsJCxrLGspPyh3Lm1vZGU9MzEsLTQpOih3LmhhdmVkaWN0PTEsZyk6bX0sbi5pbmZsYXRlSW5mbz0icGFrbyBpbmZsYXRlIChmcm9tIE5vZGVjYSBwcm9qZWN0KSJ9LHsiLi4vdXRpbHMvY29tbW9uIjo0MSwiLi9hZGxlcjMyIjo0MywiLi9jcmMzMiI6NDUsIi4vaW5mZmFzdCI6NDgsIi4vaW5mdHJlZXMiOjUwfV0sNTA6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9dCgiLi4vdXRpbHMvY29tbW9uIikscz1bMyw0LDUsNiw3LDgsOSwxMCwxMSwxMywxNSwxNywxOSwyMywyNywzMSwzNSw0Myw1MSw1OSw2Nyw4Myw5OSwxMTUsMTMxLDE2MywxOTUsMjI3LDI1OCwwLDBdLGk9WzE2LDE2LDE2LDE2LDE2LDE2LDE2LDE2LDE3LDE3LDE3LDE3LDE4LDE4LDE4LDE4LDE5LDE5LDE5LDE5LDIwLDIwLDIwLDIwLDIxLDIxLDIxLDIxLDE2LDcyLDc4XSxvPVsxLDIsMyw0LDUsNyw5LDEzLDE3LDI1LDMzLDQ5LDY1LDk3LDEyOSwxOTMsMjU3LDM4NSw1MTMsNzY5LDEwMjUsMTUzNywyMDQ5LDMwNzMsNDA5Nyw2MTQ1LDgxOTMsMTIyODksMTYzODUsMjQ1NzcsMCwwXSx1PVsxNiwxNiwxNiwxNiwxNywxNywxOCwxOCwxOSwxOSwyMCwyMCwyMSwyMSwyMiwyMiwyMywyMywyNCwyNCwyNSwyNSwyNiwyNiwyNywyNywyOCwyOCwyOSwyOSw2NCw2NF07ZS5leHBvcnRzPWZ1bmN0aW9uKHAsYixnLG0sQyx5LFQsUCl7dmFyIGMsbCxoLF8sRixPLGYsVSxYLFE9UC5iaXRzLEU9MCwkPTAsdz0wLGs9MCxTPTAsQj0wLEw9MCxSPTAscT0wLHo9MCxHPW51bGwsbnQ9MCx0dD1uZXcgci5CdWYxNigxNiksZXQ9bmV3IHIuQnVmMTYoMTYpLHd0PW51bGwsU3Q9MDtmb3IoRT0wO0U8PTE1O0UrKyl0dFtFXT0wO2ZvcigkPTA7JDxtOyQrKyl0dFtiW2crJF1dKys7Zm9yKFM9USxrPTE1OzE8PWsmJnR0W2tdPT09MDtrLS0pO2lmKGs8UyYmKFM9ayksaz09PTApcmV0dXJuIENbeSsrXT0yMDk3MTUyMCxDW3krK109MjA5NzE1MjAsUC5iaXRzPTEsMDtmb3Iodz0xO3c8ayYmdHRbd109PT0wO3crKyk7Zm9yKFM8dyYmKFM9dyksRT1SPTE7RTw9MTU7RSsrKWlmKFI8PD0xLChSLT10dFtFXSk8MClyZXR1cm4tMTtpZigwPFImJihwPT09MHx8ayE9PTEpKXJldHVybi0xO2ZvcihldFsxXT0wLEU9MTtFPDE1O0UrKylldFtFKzFdPWV0W0VdK3R0W0VdO2ZvcigkPTA7JDxtOyQrKyliW2crJF0hPT0wJiYoVFtldFtiW2crJF1dKytdPSQpO2lmKE89cD09PTA/KEc9d3Q9VCwxOSk6cD09PTE/KEc9cyxudC09MjU3LHd0PWksU3QtPTI1NywyNTYpOihHPW8sd3Q9dSwtMSksRT13LEY9eSxMPSQ9ej0wLGg9LTEsXz0ocT0xPDwoQj1TKSktMSxwPT09MSYmODUyPHF8fHA9PT0yJiY1OTI8cSlyZXR1cm4gMTtmb3IoOzspe2ZvcihmPUUtTCxYPVRbJF08Tz8oVT0wLFRbJF0pOlRbJF0+Tz8oVT13dFtTdCtUWyRdXSxHW250K1RbJF1dKTooVT05NiwwKSxjPTE8PEUtTCx3PWw9MTw8QjtDW0YrKHo+PkwpKyhsLT1jKV09Zjw8MjR8VTw8MTZ8WHwwLGwhPT0wOyk7Zm9yKGM9MTw8RS0xO3omYzspYz4+PTE7aWYoYyE9PTA/KHomPWMtMSx6Kz1jKTp6PTAsJCsrLC0tdHRbRV09PTApe2lmKEU9PT1rKWJyZWFrO0U9YltnK1RbJF1dfWlmKFM8RSYmKHomXykhPT1oKXtmb3IoTD09PTAmJihMPVMpLEYrPXcsUj0xPDwoQj1FLUwpO0IrTDxrJiYhKChSLT10dFtCK0xdKTw9MCk7KUIrKyxSPDw9MTtpZihxKz0xPDxCLHA9PT0xJiY4NTI8cXx8cD09PTImJjU5MjxxKXJldHVybiAxO0NbaD16Jl9dPVM8PDI0fEI8PDE2fEYteXwwfX1yZXR1cm4geiE9PTAmJihDW0Yrel09RS1MPDwyNHw2NDw8MTZ8MCksUC5iaXRzPVMsMH19LHsiLi4vdXRpbHMvY29tbW9uIjo0MX1dLDUxOltmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17MjoibmVlZCBkaWN0aW9uYXJ5IiwxOiJzdHJlYW0gZW5kIiwwOiIiLCItMSI6ImZpbGUgZXJyb3IiLCItMiI6InN0cmVhbSBlcnJvciIsIi0zIjoiZGF0YSBlcnJvciIsIi00IjoiaW5zdWZmaWNpZW50IG1lbW9yeSIsIi01IjoiYnVmZmVyIGVycm9yIiwiLTYiOiJpbmNvbXBhdGlibGUgdmVyc2lvbiJ9fSx7fV0sNTI6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9dCgiLi4vdXRpbHMvY29tbW9uIikscz0wLGk9MTtmdW5jdGlvbiBvKGope2Zvcih2YXIgSz1qLmxlbmd0aDswPD0tLUs7KWpbS109MH12YXIgdT0wLHA9MjksYj0yNTYsZz1iKzErcCxtPTMwLEM9MTkseT0yKmcrMSxUPTE1LFA9MTYsYz03LGw9MjU2LGg9MTYsXz0xNyxGPTE4LE89WzAsMCwwLDAsMCwwLDAsMCwxLDEsMSwxLDIsMiwyLDIsMywzLDMsMyw0LDQsNCw0LDUsNSw1LDUsMF0sZj1bMCwwLDAsMCwxLDEsMiwyLDMsMyw0LDQsNSw1LDYsNiw3LDcsOCw4LDksOSwxMCwxMCwxMSwxMSwxMiwxMiwxMywxM10sVT1bMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyLDMsN10sWD1bMTYsMTcsMTgsMCw4LDcsOSw2LDEwLDUsMTEsNCwxMiwzLDEzLDIsMTQsMSwxNV0sUT1uZXcgQXJyYXkoMiooZysyKSk7byhRKTt2YXIgRT1uZXcgQXJyYXkoMiptKTtvKEUpO3ZhciAkPW5ldyBBcnJheSg1MTIpO28oJCk7dmFyIHc9bmV3IEFycmF5KDI1Nik7byh3KTt2YXIgaz1uZXcgQXJyYXkocCk7byhrKTt2YXIgUyxCLEwsUj1uZXcgQXJyYXkobSk7ZnVuY3Rpb24gcShqLEsscHQsdnQscnQpe3RoaXMuc3RhdGljX3RyZWU9aix0aGlzLmV4dHJhX2JpdHM9Syx0aGlzLmV4dHJhX2Jhc2U9cHQsdGhpcy5lbGVtcz12dCx0aGlzLm1heF9sZW5ndGg9cnQsdGhpcy5oYXNfc3RyZWU9aiYmai5sZW5ndGh9ZnVuY3Rpb24geihqLEspe3RoaXMuZHluX3RyZWU9aix0aGlzLm1heF9jb2RlPTAsdGhpcy5zdGF0X2Rlc2M9S31mdW5jdGlvbiBHKGope3JldHVybiBqPDI1Nj8kW2pdOiRbMjU2KyhqPj4+NyldfWZ1bmN0aW9uIG50KGosSyl7ai5wZW5kaW5nX2J1ZltqLnBlbmRpbmcrK109MjU1Jkssai5wZW5kaW5nX2J1ZltqLnBlbmRpbmcrK109Sz4+PjgmMjU1fWZ1bmN0aW9uIHR0KGosSyxwdCl7ai5iaV92YWxpZD5QLXB0PyhqLmJpX2J1Znw9Szw8ai5iaV92YWxpZCY2NTUzNSxudChqLGouYmlfYnVmKSxqLmJpX2J1Zj1LPj5QLWouYmlfdmFsaWQsai5iaV92YWxpZCs9cHQtUCk6KGouYmlfYnVmfD1LPDxqLmJpX3ZhbGlkJjY1NTM1LGouYmlfdmFsaWQrPXB0KX1mdW5jdGlvbiBldChqLEsscHQpe3R0KGoscHRbMipLXSxwdFsyKksrMV0pfWZ1bmN0aW9uIHd0KGosSyl7Zm9yKHZhciBwdD0wO3B0fD0xJmosaj4+Pj0xLHB0PDw9MSwwPC0tSzspO3JldHVybiBwdD4+PjF9ZnVuY3Rpb24gU3QoaixLLHB0KXt2YXIgdnQscnQsZ3Q9bmV3IEFycmF5KFQrMSksQ3Q9MDtmb3IodnQ9MTt2dDw9VDt2dCsrKWd0W3Z0XT1DdD1DdCtwdFt2dC0xXTw8MTtmb3IocnQ9MDtydDw9SztydCsrKXt2YXIgeHQ9alsyKnJ0KzFdO3h0IT09MCYmKGpbMipydF09d3QoZ3RbeHRdKysseHQpKX19ZnVuY3Rpb24gVHQoail7dmFyIEs7Zm9yKEs9MDtLPGc7SysrKWouZHluX2x0cmVlWzIqS109MDtmb3IoSz0wO0s8bTtLKyspai5keW5fZHRyZWVbMipLXT0wO2ZvcihLPTA7SzxDO0srKylqLmJsX3RyZWVbMipLXT0wO2ouZHluX2x0cmVlWzIqbF09MSxqLm9wdF9sZW49ai5zdGF0aWNfbGVuPTAsai5sYXN0X2xpdD1qLm1hdGNoZXM9MH1mdW5jdGlvbiBrdChqKXs4PGouYmlfdmFsaWQ/bnQoaixqLmJpX2J1Zik6MDxqLmJpX3ZhbGlkJiYoai5wZW5kaW5nX2J1ZltqLnBlbmRpbmcrK109ai5iaV9idWYpLGouYmlfYnVmPTAsai5iaV92YWxpZD0wfWZ1bmN0aW9uIEx0KGosSyxwdCx2dCl7dmFyIHJ0PTIqSyxndD0yKnB0O3JldHVybiBqW3J0XTxqW2d0XXx8altydF09PT1qW2d0XSYmdnRbS108PXZ0W3B0XX1mdW5jdGlvbiBCdChqLEsscHQpe2Zvcih2YXIgdnQ9ai5oZWFwW3B0XSxydD1wdDw8MTtydDw9ai5oZWFwX2xlbiYmKHJ0PGouaGVhcF9sZW4mJkx0KEssai5oZWFwW3J0KzFdLGouaGVhcFtydF0sai5kZXB0aCkmJnJ0KyssIUx0KEssdnQsai5oZWFwW3J0XSxqLmRlcHRoKSk7KWouaGVhcFtwdF09ai5oZWFwW3J0XSxwdD1ydCxydDw8PTE7ai5oZWFwW3B0XT12dH1mdW5jdGlvbiAkdChqLEsscHQpe3ZhciB2dCxydCxndCxDdCx4dD0wO2lmKGoubGFzdF9saXQhPT0wKWZvcig7dnQ9ai5wZW5kaW5nX2J1ZltqLmRfYnVmKzIqeHRdPDw4fGoucGVuZGluZ19idWZbai5kX2J1ZisyKnh0KzFdLHJ0PWoucGVuZGluZ19idWZbai5sX2J1Zit4dF0seHQrKyx2dD09PTA/ZXQoaixydCxLKTooZXQoaiwoZ3Q9d1tydF0pK2IrMSxLKSwoQ3Q9T1tndF0pIT09MCYmdHQoaixydC09a1tndF0sQ3QpLGV0KGosZ3Q9RygtLXZ0KSxwdCksKEN0PWZbZ3RdKSE9PTAmJnR0KGosdnQtPVJbZ3RdLEN0KSkseHQ8ai5sYXN0X2xpdDspO2V0KGosbCxLKX1mdW5jdGlvbiBLdChqLEspe3ZhciBwdCx2dCxydCxndD1LLmR5bl90cmVlLEN0PUsuc3RhdF9kZXNjLnN0YXRpY190cmVlLHh0PUsuc3RhdF9kZXNjLmhhc19zdHJlZSxtdD1LLnN0YXRfZGVzYy5lbGVtcyx6dD0tMTtmb3Ioai5oZWFwX2xlbj0wLGouaGVhcF9tYXg9eSxwdD0wO3B0PG10O3B0KyspZ3RbMipwdF0hPT0wPyhqLmhlYXBbKytqLmhlYXBfbGVuXT16dD1wdCxqLmRlcHRoW3B0XT0wKTpndFsyKnB0KzFdPTA7Zm9yKDtqLmhlYXBfbGVuPDI7KWd0WzIqKHJ0PWouaGVhcFsrK2ouaGVhcF9sZW5dPXp0PDI/Kyt6dDowKV09MSxqLmRlcHRoW3J0XT0wLGoub3B0X2xlbi0tLHh0JiYoai5zdGF0aWNfbGVuLT1DdFsyKnJ0KzFdKTtmb3IoSy5tYXhfY29kZT16dCxwdD1qLmhlYXBfbGVuPj4xOzE8PXB0O3B0LS0pQnQoaixndCxwdCk7Zm9yKHJ0PW10O3B0PWouaGVhcFsxXSxqLmhlYXBbMV09ai5oZWFwW2ouaGVhcF9sZW4tLV0sQnQoaixndCwxKSx2dD1qLmhlYXBbMV0sai5oZWFwWy0tai5oZWFwX21heF09cHQsai5oZWFwWy0tai5oZWFwX21heF09dnQsZ3RbMipydF09Z3RbMipwdF0rZ3RbMip2dF0sai5kZXB0aFtydF09KGouZGVwdGhbcHRdPj1qLmRlcHRoW3Z0XT9qLmRlcHRoW3B0XTpqLmRlcHRoW3Z0XSkrMSxndFsyKnB0KzFdPWd0WzIqdnQrMV09cnQsai5oZWFwWzFdPXJ0KyssQnQoaixndCwxKSwyPD1qLmhlYXBfbGVuOyk7ai5oZWFwWy0tai5oZWFwX21heF09ai5oZWFwWzFdLGZ1bmN0aW9uKEd0LHZlKXt2YXIgZm4sVGUsdG4sZWUsZ2UsamUsZmU9dmUuZHluX3RyZWUsZHI9dmUubWF4X2NvZGUsVG49dmUuc3RhdF9kZXNjLnN0YXRpY190cmVlLHVyPXZlLnN0YXRfZGVzYy5oYXNfc3RyZWUsY3I9dmUuc3RhdF9kZXNjLmV4dHJhX2JpdHMsZnI9dmUuc3RhdF9kZXNjLmV4dHJhX2Jhc2UsQWU9dmUuc3RhdF9kZXNjLm1heF9sZW5ndGgsV2U9MDtmb3IoZWU9MDtlZTw9VDtlZSsrKUd0LmJsX2NvdW50W2VlXT0wO2ZvcihmZVsyKkd0LmhlYXBbR3QuaGVhcF9tYXhdKzFdPTAsZm49R3QuaGVhcF9tYXgrMTtmbjx5O2ZuKyspQWU8KGVlPWZlWzIqZmVbMiooVGU9R3QuaGVhcFtmbl0pKzFdKzFdKzEpJiYoZWU9QWUsV2UrKyksZmVbMipUZSsxXT1lZSxkcjxUZXx8KEd0LmJsX2NvdW50W2VlXSsrLGdlPTAsZnI8PVRlJiYoZ2U9Y3JbVGUtZnJdKSxqZT1mZVsyKlRlXSxHdC5vcHRfbGVuKz1qZSooZWUrZ2UpLHVyJiYoR3Quc3RhdGljX2xlbis9amUqKFRuWzIqVGUrMV0rZ2UpKSk7aWYoV2UhPT0wKXtkb3tmb3IoZWU9QWUtMTtHdC5ibF9jb3VudFtlZV09PT0wOyllZS0tO0d0LmJsX2NvdW50W2VlXS0tLEd0LmJsX2NvdW50W2VlKzFdKz0yLEd0LmJsX2NvdW50W0FlXS0tLFdlLT0yfXdoaWxlKDA8V2UpO2ZvcihlZT1BZTtlZSE9PTA7ZWUtLSlmb3IoVGU9R3QuYmxfY291bnRbZWVdO1RlIT09MDspZHI8KHRuPUd0LmhlYXBbLS1mbl0pfHwoZmVbMip0bisxXSE9PWVlJiYoR3Qub3B0X2xlbis9KGVlLWZlWzIqdG4rMV0pKmZlWzIqdG5dLGZlWzIqdG4rMV09ZWUpLFRlLS0pfX0oaixLKSxTdChndCx6dCxqLmJsX2NvdW50KX1mdW5jdGlvbiBEKGosSyxwdCl7dmFyIHZ0LHJ0LGd0PS0xLEN0PUtbMV0seHQ9MCxtdD03LHp0PTQ7Zm9yKEN0PT09MCYmKG10PTEzOCx6dD0zKSxLWzIqKHB0KzEpKzFdPTY1NTM1LHZ0PTA7dnQ8PXB0O3Z0KyspcnQ9Q3QsQ3Q9S1syKih2dCsxKSsxXSwrK3h0PG10JiZydD09PUN0fHwoeHQ8enQ/ai5ibF90cmVlWzIqcnRdKz14dDpydCE9PTA/KHJ0IT09Z3QmJmouYmxfdHJlZVsyKnJ0XSsrLGouYmxfdHJlZVsyKmhdKyspOnh0PD0xMD9qLmJsX3RyZWVbMipfXSsrOmouYmxfdHJlZVsyKkZdKyssZ3Q9cnQsenQ9KHh0PTApPT09Q3Q/KG10PTEzOCwzKTpydD09PUN0PyhtdD02LDMpOihtdD03LDQpKX1mdW5jdGlvbiB1dChqLEsscHQpe3ZhciB2dCxydCxndD0tMSxDdD1LWzFdLHh0PTAsbXQ9Nyx6dD00O2ZvcihDdD09PTAmJihtdD0xMzgsenQ9MyksdnQ9MDt2dDw9cHQ7dnQrKylpZihydD1DdCxDdD1LWzIqKHZ0KzEpKzFdLCEoKyt4dDxtdCYmcnQ9PT1DdCkpe2lmKHh0PHp0KWZvcig7ZXQoaixydCxqLmJsX3RyZWUpLC0teHQhPTA7KTtlbHNlIHJ0IT09MD8ocnQhPT1ndCYmKGV0KGoscnQsai5ibF90cmVlKSx4dC0tKSxldChqLGgsai5ibF90cmVlKSx0dChqLHh0LTMsMikpOnh0PD0xMD8oZXQoaixfLGouYmxfdHJlZSksdHQoaix4dC0zLDMpKTooZXQoaixGLGouYmxfdHJlZSksdHQoaix4dC0xMSw3KSk7Z3Q9cnQsenQ9KHh0PTApPT09Q3Q/KG10PTEzOCwzKTpydD09PUN0PyhtdD02LDMpOihtdD03LDQpfX1vKFIpO3ZhciBvdD0hMTtmdW5jdGlvbiBWKGosSyxwdCx2dCl7dHQoaiwodTw8MSkrKHZ0PzE6MCksMyksZnVuY3Rpb24ocnQsZ3QsQ3QseHQpe2t0KHJ0KSx4dCYmKG50KHJ0LEN0KSxudChydCx+Q3QpKSxyLmFycmF5U2V0KHJ0LnBlbmRpbmdfYnVmLHJ0LndpbmRvdyxndCxDdCxydC5wZW5kaW5nKSxydC5wZW5kaW5nKz1DdH0oaixLLHB0LCEwKX1uLl90cl9pbml0PWZ1bmN0aW9uKGope290fHwoZnVuY3Rpb24oKXt2YXIgSyxwdCx2dCxydCxndCxDdD1uZXcgQXJyYXkoVCsxKTtmb3IocnQ9dnQ9MDtydDxwLTE7cnQrKylmb3Ioa1tydF09dnQsSz0wO0s8MTw8T1tydF07SysrKXdbdnQrK109cnQ7Zm9yKHdbdnQtMV09cnQscnQ9Z3Q9MDtydDwxNjtydCsrKWZvcihSW3J0XT1ndCxLPTA7SzwxPDxmW3J0XTtLKyspJFtndCsrXT1ydDtmb3IoZ3Q+Pj03O3J0PG07cnQrKylmb3IoUltydF09Z3Q8PDcsSz0wO0s8MTw8ZltydF0tNztLKyspJFsyNTYrZ3QrK109cnQ7Zm9yKHB0PTA7cHQ8PVQ7cHQrKylDdFtwdF09MDtmb3IoSz0wO0s8PTE0MzspUVsyKksrMV09OCxLKyssQ3RbOF0rKztmb3IoO0s8PTI1NTspUVsyKksrMV09OSxLKyssQ3RbOV0rKztmb3IoO0s8PTI3OTspUVsyKksrMV09NyxLKyssQ3RbN10rKztmb3IoO0s8PTI4NzspUVsyKksrMV09OCxLKyssQ3RbOF0rKztmb3IoU3QoUSxnKzEsQ3QpLEs9MDtLPG07SysrKUVbMipLKzFdPTUsRVsyKktdPXd0KEssNSk7Uz1uZXcgcShRLE8sYisxLGcsVCksQj1uZXcgcShFLGYsMCxtLFQpLEw9bmV3IHEobmV3IEFycmF5KDApLFUsMCxDLGMpfSgpLG90PSEwKSxqLmxfZGVzYz1uZXcgeihqLmR5bl9sdHJlZSxTKSxqLmRfZGVzYz1uZXcgeihqLmR5bl9kdHJlZSxCKSxqLmJsX2Rlc2M9bmV3IHooai5ibF90cmVlLEwpLGouYmlfYnVmPTAsai5iaV92YWxpZD0wLFR0KGopfSxuLl90cl9zdG9yZWRfYmxvY2s9VixuLl90cl9mbHVzaF9ibG9jaz1mdW5jdGlvbihqLEsscHQsdnQpe3ZhciBydCxndCxDdD0wOzA8ai5sZXZlbD8oai5zdHJtLmRhdGFfdHlwZT09PTImJihqLnN0cm0uZGF0YV90eXBlPWZ1bmN0aW9uKHh0KXt2YXIgbXQsenQ9NDA5MzYyNDQ0Nztmb3IobXQ9MDttdDw9MzE7bXQrKyx6dD4+Pj0xKWlmKDEmenQmJnh0LmR5bl9sdHJlZVsyKm10XSE9PTApcmV0dXJuIHM7aWYoeHQuZHluX2x0cmVlWzE4XSE9PTB8fHh0LmR5bl9sdHJlZVsyMF0hPT0wfHx4dC5keW5fbHRyZWVbMjZdIT09MClyZXR1cm4gaTtmb3IobXQ9MzI7bXQ8YjttdCsrKWlmKHh0LmR5bl9sdHJlZVsyKm10XSE9PTApcmV0dXJuIGk7cmV0dXJuIHN9KGopKSxLdChqLGoubF9kZXNjKSxLdChqLGouZF9kZXNjKSxDdD1mdW5jdGlvbih4dCl7dmFyIG10O2ZvcihEKHh0LHh0LmR5bl9sdHJlZSx4dC5sX2Rlc2MubWF4X2NvZGUpLEQoeHQseHQuZHluX2R0cmVlLHh0LmRfZGVzYy5tYXhfY29kZSksS3QoeHQseHQuYmxfZGVzYyksbXQ9Qy0xOzM8PW10JiZ4dC5ibF90cmVlWzIqWFttdF0rMV09PT0wO210LS0pO3JldHVybiB4dC5vcHRfbGVuKz0zKihtdCsxKSs1KzUrNCxtdH0oaikscnQ9ai5vcHRfbGVuKzMrNz4+PjMsKGd0PWouc3RhdGljX2xlbiszKzc+Pj4zKTw9cnQmJihydD1ndCkpOnJ0PWd0PXB0KzUscHQrNDw9cnQmJkshPT0tMT9WKGosSyxwdCx2dCk6ai5zdHJhdGVneT09PTR8fGd0PT09cnQ/KHR0KGosMisodnQ/MTowKSwzKSwkdChqLFEsRSkpOih0dChqLDQrKHZ0PzE6MCksMyksZnVuY3Rpb24oeHQsbXQsenQsR3Qpe3ZhciB2ZTtmb3IodHQoeHQsbXQtMjU3LDUpLHR0KHh0LHp0LTEsNSksdHQoeHQsR3QtNCw0KSx2ZT0wO3ZlPEd0O3ZlKyspdHQoeHQseHQuYmxfdHJlZVsyKlhbdmVdKzFdLDMpO3V0KHh0LHh0LmR5bl9sdHJlZSxtdC0xKSx1dCh4dCx4dC5keW5fZHRyZWUsenQtMSl9KGosai5sX2Rlc2MubWF4X2NvZGUrMSxqLmRfZGVzYy5tYXhfY29kZSsxLEN0KzEpLCR0KGosai5keW5fbHRyZWUsai5keW5fZHRyZWUpKSxUdChqKSx2dCYma3Qoail9LG4uX3RyX3RhbGx5PWZ1bmN0aW9uKGosSyxwdCl7cmV0dXJuIGoucGVuZGluZ19idWZbai5kX2J1ZisyKmoubGFzdF9saXRdPUs+Pj44JjI1NSxqLnBlbmRpbmdfYnVmW2ouZF9idWYrMipqLmxhc3RfbGl0KzFdPTI1NSZLLGoucGVuZGluZ19idWZbai5sX2J1ZitqLmxhc3RfbGl0XT0yNTUmcHQsai5sYXN0X2xpdCsrLEs9PT0wP2ouZHluX2x0cmVlWzIqcHRdKys6KGoubWF0Y2hlcysrLEstLSxqLmR5bl9sdHJlZVsyKih3W3B0XStiKzEpXSsrLGouZHluX2R0cmVlWzIqRyhLKV0rKyksai5sYXN0X2xpdD09PWoubGl0X2J1ZnNpemUtMX0sbi5fdHJfYWxpZ249ZnVuY3Rpb24oail7dHQoaiwyLDMpLGV0KGosbCxRKSxmdW5jdGlvbihLKXtLLmJpX3ZhbGlkPT09MTY/KG50KEssSy5iaV9idWYpLEsuYmlfYnVmPTAsSy5iaV92YWxpZD0wKTo4PD1LLmJpX3ZhbGlkJiYoSy5wZW5kaW5nX2J1ZltLLnBlbmRpbmcrK109MjU1JksuYmlfYnVmLEsuYmlfYnVmPj49OCxLLmJpX3ZhbGlkLT04KX0oail9fSx7Ii4uL3V0aWxzL2NvbW1vbiI6NDF9XSw1MzpbZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt0aGlzLmlucHV0PW51bGwsdGhpcy5uZXh0X2luPTAsdGhpcy5hdmFpbF9pbj0wLHRoaXMudG90YWxfaW49MCx0aGlzLm91dHB1dD1udWxsLHRoaXMubmV4dF9vdXQ9MCx0aGlzLmF2YWlsX291dD0wLHRoaXMudG90YWxfb3V0PTAsdGhpcy5tc2c9IiIsdGhpcy5zdGF0ZT1udWxsLHRoaXMuZGF0YV90eXBlPTIsdGhpcy5hZGxlcj0wfX0se31dLDU0OltmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHIpeyhmdW5jdGlvbihzLGkpeyJ1c2Ugc3RyaWN0IjtpZighcy5zZXRJbW1lZGlhdGUpe3ZhciBvLHUscCxiLGc9MSxtPXt9LEM9ITEseT1zLmRvY3VtZW50LFQ9T2JqZWN0LmdldFByb3RvdHlwZU9mJiZPYmplY3QuZ2V0UHJvdG90eXBlT2Yocyk7VD1UJiZULnNldFRpbWVvdXQ/VDpzLG89e30udG9TdHJpbmcuY2FsbChzLnByb2Nlc3MpPT09IltvYmplY3QgcHJvY2Vzc10iP2Z1bmN0aW9uKGgpe3Byb2Nlc3MubmV4dFRpY2soZnVuY3Rpb24oKXtjKGgpfSl9OmZ1bmN0aW9uKCl7aWYocy5wb3N0TWVzc2FnZSYmIXMuaW1wb3J0U2NyaXB0cyl7dmFyIGg9ITAsXz1zLm9ubWVzc2FnZTtyZXR1cm4gcy5vbm1lc3NhZ2U9ZnVuY3Rpb24oKXtoPSExfSxzLnBvc3RNZXNzYWdlKCIiLCIqIikscy5vbm1lc3NhZ2U9XyxofX0oKT8oYj0ic2V0SW1tZWRpYXRlJCIrTWF0aC5yYW5kb20oKSsiJCIscy5hZGRFdmVudExpc3RlbmVyP3MuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsbCwhMSk6cy5hdHRhY2hFdmVudCgib25tZXNzYWdlIixsKSxmdW5jdGlvbihoKXtzLnBvc3RNZXNzYWdlKGIraCwiKiIpfSk6cy5NZXNzYWdlQ2hhbm5lbD8oKHA9bmV3IE1lc3NhZ2VDaGFubmVsKS5wb3J0MS5vbm1lc3NhZ2U9ZnVuY3Rpb24oaCl7YyhoLmRhdGEpfSxmdW5jdGlvbihoKXtwLnBvcnQyLnBvc3RNZXNzYWdlKGgpfSk6eSYmIm9ucmVhZHlzdGF0ZWNoYW5nZSJpbiB5LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpPyh1PXkuZG9jdW1lbnRFbGVtZW50LGZ1bmN0aW9uKGgpe3ZhciBfPXkuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7Xy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtjKGgpLF8ub25yZWFkeXN0YXRlY2hhbmdlPW51bGwsdS5yZW1vdmVDaGlsZChfKSxfPW51bGx9LHUuYXBwZW5kQ2hpbGQoXyl9KTpmdW5jdGlvbihoKXtzZXRUaW1lb3V0KGMsMCxoKX0sVC5zZXRJbW1lZGlhdGU9ZnVuY3Rpb24oaCl7dHlwZW9mIGghPSJmdW5jdGlvbiImJihoPW5ldyBGdW5jdGlvbigiIitoKSk7Zm9yKHZhciBfPW5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoLTEpLEY9MDtGPF8ubGVuZ3RoO0YrKylfW0ZdPWFyZ3VtZW50c1tGKzFdO3ZhciBPPXtjYWxsYmFjazpoLGFyZ3M6X307cmV0dXJuIG1bZ109TyxvKGcpLGcrK30sVC5jbGVhckltbWVkaWF0ZT1QfWZ1bmN0aW9uIFAoaCl7ZGVsZXRlIG1baF19ZnVuY3Rpb24gYyhoKXtpZihDKXNldFRpbWVvdXQoYywwLGgpO2Vsc2V7dmFyIF89bVtoXTtpZihfKXtDPSEwO3RyeXsoZnVuY3Rpb24oRil7dmFyIE89Ri5jYWxsYmFjayxmPUYuYXJncztzd2l0Y2goZi5sZW5ndGgpe2Nhc2UgMDpPKCk7YnJlYWs7Y2FzZSAxOk8oZlswXSk7YnJlYWs7Y2FzZSAyOk8oZlswXSxmWzFdKTticmVhaztjYXNlIDM6TyhmWzBdLGZbMV0sZlsyXSk7YnJlYWs7ZGVmYXVsdDpPLmFwcGx5KGksZil9fSkoXyl9ZmluYWxseXtQKGgpLEM9ITF9fX19ZnVuY3Rpb24gbChoKXtoLnNvdXJjZT09PXMmJnR5cGVvZiBoLmRhdGE9PSJzdHJpbmciJiZoLmRhdGEuaW5kZXhPZihiKT09PTAmJmMoK2guZGF0YS5zbGljZShiLmxlbmd0aCkpfX0pKHR5cGVvZiBzZWxmPiJ1Ij9yPT09dm9pZCAwP3RoaXM6cjpzZWxmKX0pLmNhbGwodGhpcyx0eXBlb2YgZ2xvYmFsPCJ1Ij9nbG9iYWw6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Ont9KX0se31dfSx7fSxbMTBdKSgxMCl9KX0pO3ZhciBhZT1PYSgoTGEseHIpPT57KGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO3R5cGVvZiB4cj09Im9iamVjdCImJnR5cGVvZiB4ci5leHBvcnRzPT0ib2JqZWN0Ij94ci5leHBvcnRzPXQuZG9jdW1lbnQ/ZSh0LCEwKTpmdW5jdGlvbihuKXtpZighbi5kb2N1bWVudCl0aHJvdyBuZXcgRXJyb3IoImpRdWVyeSByZXF1aXJlcyBhIHdpbmRvdyB3aXRoIGEgZG9jdW1lbnQiKTtyZXR1cm4gZShuKX06ZSh0KX0pKHR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzpMYSxmdW5jdGlvbih0LGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1bXSxyPU9iamVjdC5nZXRQcm90b3R5cGVPZixzPW4uc2xpY2UsaT1uLmZsYXQ/ZnVuY3Rpb24oYSl7cmV0dXJuIG4uZmxhdC5jYWxsKGEpfTpmdW5jdGlvbihhKXtyZXR1cm4gbi5jb25jYXQuYXBwbHkoW10sYSl9LG89bi5wdXNoLHU9bi5pbmRleE9mLHA9e30sYj1wLnRvU3RyaW5nLGc9cC5oYXNPd25Qcm9wZXJ0eSxtPWcudG9TdHJpbmcsQz1tLmNhbGwoT2JqZWN0KSx5PXt9LFQ9ZnVuY3Rpb24oZCl7cmV0dXJuIHR5cGVvZiBkPT0iZnVuY3Rpb24iJiZ0eXBlb2YgZC5ub2RlVHlwZSE9Im51bWJlciImJnR5cGVvZiBkLml0ZW0hPSJmdW5jdGlvbiJ9LFA9ZnVuY3Rpb24oZCl7cmV0dXJuIGQhPW51bGwmJmQ9PT1kLndpbmRvd30sYz10LmRvY3VtZW50LGw9e3R5cGU6ITAsc3JjOiEwLG5vbmNlOiEwLG5vTW9kdWxlOiEwfTtmdW5jdGlvbiBoKGEsZCx2KXt2PXZ8fGM7dmFyIHgsQSxJPXYuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7aWYoSS50ZXh0PWEsZClmb3IoeCBpbiBsKUE9ZFt4XXx8ZC5nZXRBdHRyaWJ1dGUmJmQuZ2V0QXR0cmlidXRlKHgpLEEmJkkuc2V0QXR0cmlidXRlKHgsQSk7di5oZWFkLmFwcGVuZENoaWxkKEkpLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoSSl9ZnVuY3Rpb24gXyhhKXtyZXR1cm4gYT09bnVsbD9hKyIiOnR5cGVvZiBhPT0ib2JqZWN0Inx8dHlwZW9mIGE9PSJmdW5jdGlvbiI/cFtiLmNhbGwoYSldfHwib2JqZWN0Ijp0eXBlb2YgYX12YXIgRj0iMy43LjEiLE89L0hUTUwkL2ksZj1mdW5jdGlvbihhLGQpe3JldHVybiBuZXcgZi5mbi5pbml0KGEsZCl9O2YuZm49Zi5wcm90b3R5cGU9e2pxdWVyeTpGLGNvbnN0cnVjdG9yOmYsbGVuZ3RoOjAsdG9BcnJheTpmdW5jdGlvbigpe3JldHVybiBzLmNhbGwodGhpcyl9LGdldDpmdW5jdGlvbihhKXtyZXR1cm4gYT09bnVsbD9zLmNhbGwodGhpcyk6YTwwP3RoaXNbYSt0aGlzLmxlbmd0aF06dGhpc1thXX0scHVzaFN0YWNrOmZ1bmN0aW9uKGEpe3ZhciBkPWYubWVyZ2UodGhpcy5jb25zdHJ1Y3RvcigpLGEpO3JldHVybiBkLnByZXZPYmplY3Q9dGhpcyxkfSxlYWNoOmZ1bmN0aW9uKGEpe3JldHVybiBmLmVhY2godGhpcyxhKX0sbWFwOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayhmLm1hcCh0aGlzLGZ1bmN0aW9uKGQsdil7cmV0dXJuIGEuY2FsbChkLHYsZCl9KSl9LHNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHMuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0sZmlyc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgwKX0sbGFzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKC0xKX0sZXZlbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhmLmdyZXAodGhpcyxmdW5jdGlvbihhLGQpe3JldHVybihkKzEpJTJ9KSl9LG9kZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhmLmdyZXAodGhpcyxmdW5jdGlvbihhLGQpe3JldHVybiBkJTJ9KSl9LGVxOmZ1bmN0aW9uKGEpe3ZhciBkPXRoaXMubGVuZ3RoLHY9K2ErKGE8MD9kOjApO3JldHVybiB0aGlzLnB1c2hTdGFjayh2Pj0wJiZ2PGQ/W3RoaXNbdl1dOltdKX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8dGhpcy5jb25zdHJ1Y3RvcigpfSxwdXNoOm8sc29ydDpuLnNvcnQsc3BsaWNlOm4uc3BsaWNlfSxmLmV4dGVuZD1mLmZuLmV4dGVuZD1mdW5jdGlvbigpe3ZhciBhLGQsdix4LEEsSSxOPWFyZ3VtZW50c1swXXx8e30sWT0xLFc9YXJndW1lbnRzLmxlbmd0aCxKPSExO2Zvcih0eXBlb2YgTj09ImJvb2xlYW4iJiYoSj1OLE49YXJndW1lbnRzW1ldfHx7fSxZKyspLHR5cGVvZiBOIT0ib2JqZWN0IiYmIVQoTikmJihOPXt9KSxZPT09VyYmKE49dGhpcyxZLS0pO1k8VztZKyspaWYoKGE9YXJndW1lbnRzW1ldKSE9bnVsbClmb3IoZCBpbiBhKXg9YVtkXSwhKGQ9PT0iX19wcm90b19fInx8Tj09PXgpJiYoSiYmeCYmKGYuaXNQbGFpbk9iamVjdCh4KXx8KEE9QXJyYXkuaXNBcnJheSh4KSkpPyh2PU5bZF0sQSYmIUFycmF5LmlzQXJyYXkodik/ST1bXTohQSYmIWYuaXNQbGFpbk9iamVjdCh2KT9JPXt9Okk9dixBPSExLE5bZF09Zi5leHRlbmQoSixJLHgpKTp4IT09dm9pZCAwJiYoTltkXT14KSk7cmV0dXJuIE59LGYuZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKyhGK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLGlzUmVhZHk6ITAsZXJyb3I6ZnVuY3Rpb24oYSl7dGhyb3cgbmV3IEVycm9yKGEpfSxub29wOmZ1bmN0aW9uKCl7fSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGEpe3ZhciBkLHY7cmV0dXJuIWF8fGIuY2FsbChhKSE9PSJbb2JqZWN0IE9iamVjdF0iPyExOihkPXIoYSksZD8odj1nLmNhbGwoZCwiY29uc3RydWN0b3IiKSYmZC5jb25zdHJ1Y3Rvcix0eXBlb2Ygdj09ImZ1bmN0aW9uIiYmbS5jYWxsKHYpPT09Qyk6ITApfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGEpe3ZhciBkO2ZvcihkIGluIGEpcmV0dXJuITE7cmV0dXJuITB9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oYSxkLHYpe2goYSx7bm9uY2U6ZCYmZC5ub25jZX0sdil9LGVhY2g6ZnVuY3Rpb24oYSxkKXt2YXIgdix4PTA7aWYoVShhKSlmb3Iodj1hLmxlbmd0aDt4PHYmJmQuY2FsbChhW3hdLHgsYVt4XSkhPT0hMTt4KyspO2Vsc2UgZm9yKHggaW4gYSlpZihkLmNhbGwoYVt4XSx4LGFbeF0pPT09ITEpYnJlYWs7cmV0dXJuIGF9LHRleHQ6ZnVuY3Rpb24oYSl7dmFyIGQsdj0iIix4PTAsQT1hLm5vZGVUeXBlO2lmKCFBKWZvcig7ZD1hW3grK107KXYrPWYudGV4dChkKTtyZXR1cm4gQT09PTF8fEE9PT0xMT9hLnRleHRDb250ZW50OkE9PT05P2EuZG9jdW1lbnRFbGVtZW50LnRleHRDb250ZW50OkE9PT0zfHxBPT09ND9hLm5vZGVWYWx1ZTp2fSxtYWtlQXJyYXk6ZnVuY3Rpb24oYSxkKXt2YXIgdj1kfHxbXTtyZXR1cm4gYSE9bnVsbCYmKFUoT2JqZWN0KGEpKT9mLm1lcmdlKHYsdHlwZW9mIGE9PSJzdHJpbmciP1thXTphKTpvLmNhbGwodixhKSksdn0saW5BcnJheTpmdW5jdGlvbihhLGQsdil7cmV0dXJuIGQ9PW51bGw/LTE6dS5jYWxsKGQsYSx2KX0saXNYTUxEb2M6ZnVuY3Rpb24oYSl7dmFyIGQ9YSYmYS5uYW1lc3BhY2VVUkksdj1hJiYoYS5vd25lckRvY3VtZW50fHxhKS5kb2N1bWVudEVsZW1lbnQ7cmV0dXJuIU8udGVzdChkfHx2JiZ2Lm5vZGVOYW1lfHwiSFRNTCIpfSxtZXJnZTpmdW5jdGlvbihhLGQpe2Zvcih2YXIgdj0rZC5sZW5ndGgseD0wLEE9YS5sZW5ndGg7eDx2O3grKylhW0ErK109ZFt4XTtyZXR1cm4gYS5sZW5ndGg9QSxhfSxncmVwOmZ1bmN0aW9uKGEsZCx2KXtmb3IodmFyIHgsQT1bXSxJPTAsTj1hLmxlbmd0aCxZPSF2O0k8TjtJKyspeD0hZChhW0ldLEkpLHghPT1ZJiZBLnB1c2goYVtJXSk7cmV0dXJuIEF9LG1hcDpmdW5jdGlvbihhLGQsdil7dmFyIHgsQSxJPTAsTj1bXTtpZihVKGEpKWZvcih4PWEubGVuZ3RoO0k8eDtJKyspQT1kKGFbSV0sSSx2KSxBIT1udWxsJiZOLnB1c2goQSk7ZWxzZSBmb3IoSSBpbiBhKUE9ZChhW0ldLEksdiksQSE9bnVsbCYmTi5wdXNoKEEpO3JldHVybiBpKE4pfSxndWlkOjEsc3VwcG9ydDp5fSksdHlwZW9mIFN5bWJvbD09ImZ1bmN0aW9uIiYmKGYuZm5bU3ltYm9sLml0ZXJhdG9yXT1uW1N5bWJvbC5pdGVyYXRvcl0pLGYuZWFjaCgiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCBFcnJvciBTeW1ib2wiLnNwbGl0KCIgIiksZnVuY3Rpb24oYSxkKXtwWyJbb2JqZWN0ICIrZCsiXSJdPWQudG9Mb3dlckNhc2UoKX0pO2Z1bmN0aW9uIFUoYSl7dmFyIGQ9ISFhJiYibGVuZ3RoImluIGEmJmEubGVuZ3RoLHY9XyhhKTtyZXR1cm4gVChhKXx8UChhKT8hMTp2PT09ImFycmF5Inx8ZD09PTB8fHR5cGVvZiBkPT0ibnVtYmVyIiYmZD4wJiZkLTEgaW4gYX1mdW5jdGlvbiBYKGEsZCl7cmV0dXJuIGEubm9kZU5hbWUmJmEubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWQudG9Mb3dlckNhc2UoKX12YXIgUT1uLnBvcCxFPW4uc29ydCwkPW4uc3BsaWNlLHc9IltcXHgyMFxcdFxcclxcblxcZl0iLGs9bmV3IFJlZ0V4cCgiXiIrdysiK3woKD86XnxbXlxcXFxdKSg/OlxcXFwuKSopIit3KyIrJCIsImciKTtmLmNvbnRhaW5zPWZ1bmN0aW9uKGEsZCl7dmFyIHY9ZCYmZC5wYXJlbnROb2RlO3JldHVybiBhPT09dnx8ISEodiYmdi5ub2RlVHlwZT09PTEmJihhLmNvbnRhaW5zP2EuY29udGFpbnModik6YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiYmYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih2KSYxNikpfTt2YXIgUz0vKFtcMC1ceDFmXHg3Zl18Xi0/XGQpfF4tJHxbXlx4ODAtXHVGRkZGXHctXS9nO2Z1bmN0aW9uIEIoYSxkKXtyZXR1cm4gZD9hPT09IlwwIj8iXHVGRkZEIjphLnNsaWNlKDAsLTEpKyJcXCIrYS5jaGFyQ29kZUF0KGEubGVuZ3RoLTEpLnRvU3RyaW5nKDE2KSsiICI6IlxcIithfWYuZXNjYXBlU2VsZWN0b3I9ZnVuY3Rpb24oYSl7cmV0dXJuKGErIiIpLnJlcGxhY2UoUyxCKX07dmFyIEw9YyxSPW87KGZ1bmN0aW9uKCl7dmFyIGEsZCx2LHgsQSxJPVIsTixZLFcsSixkdCxmdD1mLmV4cGFuZG8sc3Q9MCx5dD0wLE90PXZyKCksWHQ9dnIoKSxWdD12cigpLHVlPXZyKCksb2U9ZnVuY3Rpb24oTSxaKXtyZXR1cm4gTT09PVomJihBPSEwKSwwfSxHZT0iY2hlY2tlZHxzZWxlY3RlZHxhc3luY3xhdXRvZm9jdXN8YXV0b3BsYXl8Y29udHJvbHN8ZGVmZXJ8ZGlzYWJsZWR8aGlkZGVufGlzbWFwfGxvb3B8bXVsdGlwbGV8b3BlbnxyZWFkb25seXxyZXF1aXJlZHxzY29wZWQiLHFlPSIoPzpcXFxcW1xcZGEtZkEtRl17MSw2fSIrdysiP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlwwLVxceDdmXSkrIixxdD0iXFxbIit3KyIqKCIrcWUrIikoPzoiK3crIiooWypeJHwhfl0/PSkiK3crYCooPzonKCg/OlxcXFwufFteXFxcXCddKSopJ3wiKCg/OlxcXFwufFteXFxcXCJdKSopInwoYCtxZSsiKSl8KSIrdysiKlxcXSIsYm49IjooIitxZStgKSg/OlxcKCgoJygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8IigoPzpcXFxcLnxbXlxcXFwiXSkqKSIpfCgoPzpcXFxcLnxbXlxcXFwoKVtcXF1dfGArcXQrIikqKXwuKilcXCl8KSIsWXQ9bmV3IFJlZ0V4cCh3KyIrIiwiZyIpLHJlPW5ldyBSZWdFeHAoIl4iK3crIiosIit3KyIqIiksWG49bmV3IFJlZ0V4cCgiXiIrdysiKihbPit+XXwiK3crIikiK3crIioiKSxvaT1uZXcgUmVnRXhwKHcrInw+IiksWGU9bmV3IFJlZ0V4cChibiksWW49bmV3IFJlZ0V4cCgiXiIrcWUrIiQiKSxZZT17SUQ6bmV3IFJlZ0V4cCgiXiMoIitxZSsiKSIpLENMQVNTOm5ldyBSZWdFeHAoIl5cXC4oIitxZSsiKSIpLFRBRzpuZXcgUmVnRXhwKCJeKCIrcWUrInxbKl0pIiksQVRUUjpuZXcgUmVnRXhwKCJeIitxdCksUFNFVURPOm5ldyBSZWdFeHAoIl4iK2JuKSxDSElMRDpuZXcgUmVnRXhwKCJeOihvbmx5fGZpcnN0fGxhc3R8bnRofG50aC1sYXN0KS0oY2hpbGR8b2YtdHlwZSkoPzpcXCgiK3crIiooZXZlbnxvZGR8KChbKy1dfCkoXFxkKilufCkiK3crIiooPzooWystXXwpIit3KyIqKFxcZCspfCkpIit3KyIqXFwpfCkiLCJpIiksYm9vbDpuZXcgUmVnRXhwKCJeKD86IitHZSsiKSQiLCJpIiksbmVlZHNDb250ZXh0Om5ldyBSZWdFeHAoIl4iK3crIipbPit+XXw6KGV2ZW58b2RkfGVxfGd0fGx0fG50aHxmaXJzdHxsYXN0KSg/OlxcKCIrdysiKigoPzotXFxkKT9cXGQqKSIrdysiKlxcKXwpKD89W14tXXwkKSIsImkiKX0sZW49L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSxubj0vXmhcZCQvaSxQZT0vXig/OiMoW1x3LV0rKXwoXHcrKXxcLihbXHctXSspKSQvLGxpPS9bK35dLyxKZT1uZXcgUmVnRXhwKCJcXFxcW1xcZGEtZkEtRl17MSw2fSIrdysiP3xcXFxcKFteXFxyXFxuXFxmXSkiLCJnIiksUWU9ZnVuY3Rpb24oTSxaKXt2YXIgaXQ9IjB4IitNLnNsaWNlKDEpLTY1NTM2O3JldHVybiBafHwoaXQ8MD9TdHJpbmcuZnJvbUNoYXJDb2RlKGl0KzY1NTM2KTpTdHJpbmcuZnJvbUNoYXJDb2RlKGl0Pj4xMHw1NTI5NixpdCYxMDIzfDU2MzIwKSl9LGpvPWZ1bmN0aW9uKCl7cm4oKX0sTW89eXIoZnVuY3Rpb24oTSl7cmV0dXJuIE0uZGlzYWJsZWQ9PT0hMCYmWChNLCJmaWVsZHNldCIpfSx7ZGlyOiJwYXJlbnROb2RlIixuZXh0OiJsZWdlbmQifSk7ZnVuY3Rpb24gVm8oKXt0cnl7cmV0dXJuIE4uYWN0aXZlRWxlbWVudH1jYXRjaHt9fXRyeXtJLmFwcGx5KG49cy5jYWxsKEwuY2hpbGROb2RlcyksTC5jaGlsZE5vZGVzKSxuW0wuY2hpbGROb2Rlcy5sZW5ndGhdLm5vZGVUeXBlfWNhdGNoe0k9e2FwcGx5OmZ1bmN0aW9uKFosaXQpe1IuYXBwbHkoWixzLmNhbGwoaXQpKX0sY2FsbDpmdW5jdGlvbihaKXtSLmFwcGx5KFoscy5jYWxsKGFyZ3VtZW50cywxKSl9fX1mdW5jdGlvbiBKdChNLFosaXQsbHQpe3ZhciBjdCxfdCxEdCxQdCxBdCxIdCxOdCxSdD1aJiZaLm93bmVyRG9jdW1lbnQsVXQ9Wj9aLm5vZGVUeXBlOjk7aWYoaXQ9aXR8fFtdLHR5cGVvZiBNIT0ic3RyaW5nInx8IU18fFV0IT09MSYmVXQhPT05JiZVdCE9PTExKXJldHVybiBpdDtpZighbHQmJihybihaKSxaPVp8fE4sVykpe2lmKFV0IT09MTEmJihBdD1QZS5leGVjKE0pKSlpZihjdD1BdFsxXSl7aWYoVXQ9PT05KWlmKER0PVouZ2V0RWxlbWVudEJ5SWQoY3QpKXtpZihEdC5pZD09PWN0KXJldHVybiBJLmNhbGwoaXQsRHQpLGl0fWVsc2UgcmV0dXJuIGl0O2Vsc2UgaWYoUnQmJihEdD1SdC5nZXRFbGVtZW50QnlJZChjdCkpJiZKdC5jb250YWlucyhaLER0KSYmRHQuaWQ9PT1jdClyZXR1cm4gSS5jYWxsKGl0LER0KSxpdH1lbHNle2lmKEF0WzJdKXJldHVybiBJLmFwcGx5KGl0LFouZ2V0RWxlbWVudHNCeVRhZ05hbWUoTSkpLGl0O2lmKChjdD1BdFszXSkmJlouZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSlyZXR1cm4gSS5hcHBseShpdCxaLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoY3QpKSxpdH1pZighdWVbTSsiICJdJiYoIUp8fCFKLnRlc3QoTSkpKXtpZihOdD1NLFJ0PVosVXQ9PT0xJiYob2kudGVzdChNKXx8WG4udGVzdChNKSkpe2ZvcihSdD1saS50ZXN0KE0pJiZkaShaLnBhcmVudE5vZGUpfHxaLChSdCE9Wnx8IXkuc2NvcGUpJiYoKFB0PVouZ2V0QXR0cmlidXRlKCJpZCIpKT9QdD1mLmVzY2FwZVNlbGVjdG9yKFB0KTpaLnNldEF0dHJpYnV0ZSgiaWQiLFB0PWZ0KSksSHQ9JG4oTSksX3Q9SHQubGVuZ3RoO190LS07KUh0W190XT0oUHQ/IiMiK1B0OiI6c2NvcGUiKSsiICIrZ3IoSHRbX3RdKTtOdD1IdC5qb2luKCIsIil9dHJ5e3JldHVybiBJLmFwcGx5KGl0LFJ0LnF1ZXJ5U2VsZWN0b3JBbGwoTnQpKSxpdH1jYXRjaHt1ZShNLCEwKX1maW5hbGx5e1B0PT09ZnQmJloucmVtb3ZlQXR0cmlidXRlKCJpZCIpfX19cmV0dXJuIEJhKE0ucmVwbGFjZShrLCIkMSIpLFosaXQsbHQpfWZ1bmN0aW9uIHZyKCl7dmFyIE09W107ZnVuY3Rpb24gWihpdCxsdCl7cmV0dXJuIE0ucHVzaChpdCsiICIpPmQuY2FjaGVMZW5ndGgmJmRlbGV0ZSBaW00uc2hpZnQoKV0sWltpdCsiICJdPWx0fXJldHVybiBafWZ1bmN0aW9uIFZlKE0pe3JldHVybiBNW2Z0XT0hMCxNfWZ1bmN0aW9uIEluKE0pe3ZhciBaPU4uY3JlYXRlRWxlbWVudCgiZmllbGRzZXQiKTt0cnl7cmV0dXJuISFNKFopfWNhdGNoe3JldHVybiExfWZpbmFsbHl7Wi5wYXJlbnROb2RlJiZaLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoWiksWj1udWxsfX1mdW5jdGlvbiBIbyhNKXtyZXR1cm4gZnVuY3Rpb24oWil7cmV0dXJuIFgoWiwiaW5wdXQiKSYmWi50eXBlPT09TX19ZnVuY3Rpb24gVW8oTSl7cmV0dXJuIGZ1bmN0aW9uKFope3JldHVybihYKFosImlucHV0Iil8fFgoWiwiYnV0dG9uIikpJiZaLnR5cGU9PT1NfX1mdW5jdGlvbiBQYShNKXtyZXR1cm4gZnVuY3Rpb24oWil7cmV0dXJuImZvcm0iaW4gWj9aLnBhcmVudE5vZGUmJlouZGlzYWJsZWQ9PT0hMT8ibGFiZWwiaW4gWj8ibGFiZWwiaW4gWi5wYXJlbnROb2RlP1oucGFyZW50Tm9kZS5kaXNhYmxlZD09PU06Wi5kaXNhYmxlZD09PU06Wi5pc0Rpc2FibGVkPT09TXx8Wi5pc0Rpc2FibGVkIT09IU0mJk1vKFopPT09TTpaLmRpc2FibGVkPT09TToibGFiZWwiaW4gWj9aLmRpc2FibGVkPT09TTohMX19ZnVuY3Rpb24gbW4oTSl7cmV0dXJuIFZlKGZ1bmN0aW9uKFope3JldHVybiBaPStaLFZlKGZ1bmN0aW9uKGl0LGx0KXtmb3IodmFyIGN0LF90PU0oW10saXQubGVuZ3RoLFopLER0PV90Lmxlbmd0aDtEdC0tOylpdFtjdD1fdFtEdF1dJiYoaXRbY3RdPSEobHRbY3RdPWl0W2N0XSkpfSl9KX1mdW5jdGlvbiBkaShNKXtyZXR1cm4gTSYmdHlwZW9mIE0uZ2V0RWxlbWVudHNCeVRhZ05hbWU8InUiJiZNfWZ1bmN0aW9uIHJuKE0pe3ZhciBaLGl0PU0/TS5vd25lckRvY3VtZW50fHxNOkw7cmV0dXJuIGl0PT1OfHxpdC5ub2RlVHlwZSE9PTl8fCFpdC5kb2N1bWVudEVsZW1lbnR8fChOPWl0LFk9Ti5kb2N1bWVudEVsZW1lbnQsVz0hZi5pc1hNTERvYyhOKSxkdD1ZLm1hdGNoZXN8fFkud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxZLm1zTWF0Y2hlc1NlbGVjdG9yLFkubXNNYXRjaGVzU2VsZWN0b3ImJkwhPU4mJihaPU4uZGVmYXVsdFZpZXcpJiZaLnRvcCE9PVomJlouYWRkRXZlbnRMaXN0ZW5lcigidW5sb2FkIixqbykseS5nZXRCeUlkPUluKGZ1bmN0aW9uKGx0KXtyZXR1cm4gWS5hcHBlbmRDaGlsZChsdCkuaWQ9Zi5leHBhbmRvLCFOLmdldEVsZW1lbnRzQnlOYW1lfHwhTi5nZXRFbGVtZW50c0J5TmFtZShmLmV4cGFuZG8pLmxlbmd0aH0pLHkuZGlzY29ubmVjdGVkTWF0Y2g9SW4oZnVuY3Rpb24obHQpe3JldHVybiBkdC5jYWxsKGx0LCIqIil9KSx5LnNjb3BlPUluKGZ1bmN0aW9uKCl7cmV0dXJuIE4ucXVlcnlTZWxlY3RvckFsbCgiOnNjb3BlIil9KSx5LmNzc0hhcz1JbihmdW5jdGlvbigpe3RyeXtyZXR1cm4gTi5xdWVyeVNlbGVjdG9yKCI6aGFzKCosOmpxZmFrZSkiKSwhMX1jYXRjaHtyZXR1cm4hMH19KSx5LmdldEJ5SWQ/KGQuZmlsdGVyLklEPWZ1bmN0aW9uKGx0KXt2YXIgY3Q9bHQucmVwbGFjZShKZSxRZSk7cmV0dXJuIGZ1bmN0aW9uKF90KXtyZXR1cm4gX3QuZ2V0QXR0cmlidXRlKCJpZCIpPT09Y3R9fSxkLmZpbmQuSUQ9ZnVuY3Rpb24obHQsY3Qpe2lmKHR5cGVvZiBjdC5nZXRFbGVtZW50QnlJZDwidSImJlcpe3ZhciBfdD1jdC5nZXRFbGVtZW50QnlJZChsdCk7cmV0dXJuIF90P1tfdF06W119fSk6KGQuZmlsdGVyLklEPWZ1bmN0aW9uKGx0KXt2YXIgY3Q9bHQucmVwbGFjZShKZSxRZSk7cmV0dXJuIGZ1bmN0aW9uKF90KXt2YXIgRHQ9dHlwZW9mIF90LmdldEF0dHJpYnV0ZU5vZGU8InUiJiZfdC5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpO3JldHVybiBEdCYmRHQudmFsdWU9PT1jdH19LGQuZmluZC5JRD1mdW5jdGlvbihsdCxjdCl7aWYodHlwZW9mIGN0LmdldEVsZW1lbnRCeUlkPCJ1IiYmVyl7dmFyIF90LER0LFB0LEF0PWN0LmdldEVsZW1lbnRCeUlkKGx0KTtpZihBdCl7aWYoX3Q9QXQuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKSxfdCYmX3QudmFsdWU9PT1sdClyZXR1cm5bQXRdO2ZvcihQdD1jdC5nZXRFbGVtZW50c0J5TmFtZShsdCksRHQ9MDtBdD1QdFtEdCsrXTspaWYoX3Q9QXQuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKSxfdCYmX3QudmFsdWU9PT1sdClyZXR1cm5bQXRdfXJldHVybltdfX0pLGQuZmluZC5UQUc9ZnVuY3Rpb24obHQsY3Qpe3JldHVybiB0eXBlb2YgY3QuZ2V0RWxlbWVudHNCeVRhZ05hbWU8InUiP2N0LmdldEVsZW1lbnRzQnlUYWdOYW1lKGx0KTpjdC5xdWVyeVNlbGVjdG9yQWxsKGx0KX0sZC5maW5kLkNMQVNTPWZ1bmN0aW9uKGx0LGN0KXtpZih0eXBlb2YgY3QuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZTwidSImJlcpcmV0dXJuIGN0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUobHQpfSxKPVtdLEluKGZ1bmN0aW9uKGx0KXt2YXIgY3Q7WS5hcHBlbmRDaGlsZChsdCkuaW5uZXJIVE1MPSI8YSBpZD0nIitmdCsiJyBocmVmPScnIGRpc2FibGVkPSdkaXNhYmxlZCc+PC9hPjxzZWxlY3QgaWQ9JyIrZnQrIi1cclxcJyBkaXNhYmxlZD0nZGlzYWJsZWQnPjxvcHRpb24gc2VsZWN0ZWQ9Jyc+PC9vcHRpb24+PC9zZWxlY3Q+IixsdC5xdWVyeVNlbGVjdG9yQWxsKCJbc2VsZWN0ZWRdIikubGVuZ3RofHxKLnB1c2goIlxcWyIrdysiKig/OnZhbHVlfCIrR2UrIikiKSxsdC5xdWVyeVNlbGVjdG9yQWxsKCJbaWR+PSIrZnQrIi1dIikubGVuZ3RofHxKLnB1c2goIn49IiksbHQucXVlcnlTZWxlY3RvckFsbCgiYSMiK2Z0KyIrKiIpLmxlbmd0aHx8Si5wdXNoKCIuIy4rWyt+XSIpLGx0LnF1ZXJ5U2VsZWN0b3JBbGwoIjpjaGVja2VkIikubGVuZ3RofHxKLnB1c2goIjpjaGVja2VkIiksY3Q9Ti5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLGN0LnNldEF0dHJpYnV0ZSgidHlwZSIsImhpZGRlbiIpLGx0LmFwcGVuZENoaWxkKGN0KS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJEIiksWS5hcHBlbmRDaGlsZChsdCkuZGlzYWJsZWQ9ITAsbHQucXVlcnlTZWxlY3RvckFsbCgiOmRpc2FibGVkIikubGVuZ3RoIT09MiYmSi5wdXNoKCI6ZW5hYmxlZCIsIjpkaXNhYmxlZCIpLGN0PU4uY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCIiKSxsdC5hcHBlbmRDaGlsZChjdCksbHQucXVlcnlTZWxlY3RvckFsbCgiW25hbWU9JyddIikubGVuZ3RofHxKLnB1c2goIlxcWyIrdysiKm5hbWUiK3crIio9Iit3K2AqKD86Jyd8IiIpYCl9KSx5LmNzc0hhc3x8Si5wdXNoKCI6aGFzIiksSj1KLmxlbmd0aCYmbmV3IFJlZ0V4cChKLmpvaW4oInwiKSksb2U9ZnVuY3Rpb24obHQsY3Qpe2lmKGx0PT09Y3QpcmV0dXJuIEE9ITAsMDt2YXIgX3Q9IWx0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uLSFjdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjtyZXR1cm4gX3R8fChfdD0obHQub3duZXJEb2N1bWVudHx8bHQpPT0oY3Qub3duZXJEb2N1bWVudHx8Y3QpP2x0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGN0KToxLF90JjF8fCF5LnNvcnREZXRhY2hlZCYmY3QuY29tcGFyZURvY3VtZW50UG9zaXRpb24obHQpPT09X3Q/bHQ9PT1OfHxsdC5vd25lckRvY3VtZW50PT1MJiZKdC5jb250YWlucyhMLGx0KT8tMTpjdD09PU58fGN0Lm93bmVyRG9jdW1lbnQ9PUwmJkp0LmNvbnRhaW5zKEwsY3QpPzE6eD91LmNhbGwoeCxsdCktdS5jYWxsKHgsY3QpOjA6X3QmND8tMToxKX0pLE59SnQubWF0Y2hlcz1mdW5jdGlvbihNLFope3JldHVybiBKdChNLG51bGwsbnVsbCxaKX0sSnQubWF0Y2hlc1NlbGVjdG9yPWZ1bmN0aW9uKE0sWil7aWYocm4oTSksVyYmIXVlW1orIiAiXSYmKCFKfHwhSi50ZXN0KFopKSl0cnl7dmFyIGl0PWR0LmNhbGwoTSxaKTtpZihpdHx8eS5kaXNjb25uZWN0ZWRNYXRjaHx8TS5kb2N1bWVudCYmTS5kb2N1bWVudC5ub2RlVHlwZSE9PTExKXJldHVybiBpdH1jYXRjaHt1ZShaLCEwKX1yZXR1cm4gSnQoWixOLG51bGwsW01dKS5sZW5ndGg+MH0sSnQuY29udGFpbnM9ZnVuY3Rpb24oTSxaKXtyZXR1cm4oTS5vd25lckRvY3VtZW50fHxNKSE9TiYmcm4oTSksZi5jb250YWlucyhNLFopfSxKdC5hdHRyPWZ1bmN0aW9uKE0sWil7KE0ub3duZXJEb2N1bWVudHx8TSkhPU4mJnJuKE0pO3ZhciBpdD1kLmF0dHJIYW5kbGVbWi50b0xvd2VyQ2FzZSgpXSxsdD1pdCYmZy5jYWxsKGQuYXR0ckhhbmRsZSxaLnRvTG93ZXJDYXNlKCkpP2l0KE0sWiwhVyk6dm9pZCAwO3JldHVybiBsdCE9PXZvaWQgMD9sdDpNLmdldEF0dHJpYnV0ZShaKX0sSnQuZXJyb3I9ZnVuY3Rpb24oTSl7dGhyb3cgbmV3IEVycm9yKCJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNzaW9uOiAiK00pfSxmLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oTSl7dmFyIFosaXQ9W10sbHQ9MCxjdD0wO2lmKEE9IXkuc29ydFN0YWJsZSx4PSF5LnNvcnRTdGFibGUmJnMuY2FsbChNLDApLEUuY2FsbChNLG9lKSxBKXtmb3IoO1o9TVtjdCsrXTspWj09PU1bY3RdJiYobHQ9aXQucHVzaChjdCkpO2Zvcig7bHQtLTspJC5jYWxsKE0saXRbbHRdLDEpfXJldHVybiB4PW51bGwsTX0sZi5mbi51bmlxdWVTb3J0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGYudW5pcXVlU29ydChzLmFwcGx5KHRoaXMpKSl9LGQ9Zi5leHByPXtjYWNoZUxlbmd0aDo1MCxjcmVhdGVQc2V1ZG86VmUsbWF0Y2g6WWUsYXR0ckhhbmRsZTp7fSxmaW5kOnt9LHJlbGF0aXZlOnsiPiI6e2RpcjoicGFyZW50Tm9kZSIsZmlyc3Q6ITB9LCIgIjp7ZGlyOiJwYXJlbnROb2RlIn0sIisiOntkaXI6InByZXZpb3VzU2libGluZyIsZmlyc3Q6ITB9LCJ+Ijp7ZGlyOiJwcmV2aW91c1NpYmxpbmcifX0scHJlRmlsdGVyOntBVFRSOmZ1bmN0aW9uKE0pe3JldHVybiBNWzFdPU1bMV0ucmVwbGFjZShKZSxRZSksTVszXT0oTVszXXx8TVs0XXx8TVs1XXx8IiIpLnJlcGxhY2UoSmUsUWUpLE1bMl09PT0ifj0iJiYoTVszXT0iICIrTVszXSsiICIpLE0uc2xpY2UoMCw0KX0sQ0hJTEQ6ZnVuY3Rpb24oTSl7cmV0dXJuIE1bMV09TVsxXS50b0xvd2VyQ2FzZSgpLE1bMV0uc2xpY2UoMCwzKT09PSJudGgiPyhNWzNdfHxKdC5lcnJvcihNWzBdKSxNWzRdPSsoTVs0XT9NWzVdKyhNWzZdfHwxKToyKihNWzNdPT09ImV2ZW4ifHxNWzNdPT09Im9kZCIpKSxNWzVdPSsoTVs3XStNWzhdfHxNWzNdPT09Im9kZCIpKTpNWzNdJiZKdC5lcnJvcihNWzBdKSxNfSxQU0VVRE86ZnVuY3Rpb24oTSl7dmFyIFosaXQ9IU1bNl0mJk1bMl07cmV0dXJuIFllLkNISUxELnRlc3QoTVswXSk/bnVsbDooTVszXT9NWzJdPU1bNF18fE1bNV18fCIiOml0JiZYZS50ZXN0KGl0KSYmKFo9JG4oaXQsITApKSYmKFo9aXQuaW5kZXhPZigiKSIsaXQubGVuZ3RoLVopLWl0Lmxlbmd0aCkmJihNWzBdPU1bMF0uc2xpY2UoMCxaKSxNWzJdPWl0LnNsaWNlKDAsWikpLE0uc2xpY2UoMCwzKSl9fSxmaWx0ZXI6e1RBRzpmdW5jdGlvbihNKXt2YXIgWj1NLnJlcGxhY2UoSmUsUWUpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIE09PT0iKiI/ZnVuY3Rpb24oKXtyZXR1cm4hMH06ZnVuY3Rpb24oaXQpe3JldHVybiBYKGl0LFopfX0sQ0xBU1M6ZnVuY3Rpb24oTSl7dmFyIFo9T3RbTSsiICJdO3JldHVybiBafHwoWj1uZXcgUmVnRXhwKCIoXnwiK3crIikiK00rIigiK3crInwkKSIpKSYmT3QoTSxmdW5jdGlvbihpdCl7cmV0dXJuIFoudGVzdCh0eXBlb2YgaXQuY2xhc3NOYW1lPT0ic3RyaW5nIiYmaXQuY2xhc3NOYW1lfHx0eXBlb2YgaXQuZ2V0QXR0cmlidXRlPCJ1IiYmaXQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9KX0sQVRUUjpmdW5jdGlvbihNLFosaXQpe3JldHVybiBmdW5jdGlvbihsdCl7dmFyIGN0PUp0LmF0dHIobHQsTSk7cmV0dXJuIGN0PT1udWxsP1o9PT0iIT0iOlo/KGN0Kz0iIixaPT09Ij0iP2N0PT09aXQ6Wj09PSIhPSI/Y3QhPT1pdDpaPT09Il49Ij9pdCYmY3QuaW5kZXhPZihpdCk9PT0wOlo9PT0iKj0iP2l0JiZjdC5pbmRleE9mKGl0KT4tMTpaPT09IiQ9Ij9pdCYmY3Quc2xpY2UoLWl0Lmxlbmd0aCk9PT1pdDpaPT09In49Ij8oIiAiK2N0LnJlcGxhY2UoWXQsIiAiKSsiICIpLmluZGV4T2YoaXQpPi0xOlo9PT0ifD0iP2N0PT09aXR8fGN0LnNsaWNlKDAsaXQubGVuZ3RoKzEpPT09aXQrIi0iOiExKTohMH19LENISUxEOmZ1bmN0aW9uKE0sWixpdCxsdCxjdCl7dmFyIF90PU0uc2xpY2UoMCwzKSE9PSJudGgiLER0PU0uc2xpY2UoLTQpIT09Imxhc3QiLFB0PVo9PT0ib2YtdHlwZSI7cmV0dXJuIGx0PT09MSYmY3Q9PT0wP2Z1bmN0aW9uKEF0KXtyZXR1cm4hIUF0LnBhcmVudE5vZGV9OmZ1bmN0aW9uKEF0LEh0LE50KXt2YXIgUnQsVXQsRnQsbmUseGUsaGU9X3QhPT1EdD8ibmV4dFNpYmxpbmciOiJwcmV2aW91c1NpYmxpbmciLEZlPUF0LnBhcmVudE5vZGUsJGU9UHQmJkF0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksUG49IU50JiYhUHQscGU9ITE7aWYoRmUpe2lmKF90KXtmb3IoO2hlOyl7Zm9yKEZ0PUF0O0Z0PUZ0W2hlXTspaWYoUHQ/WChGdCwkZSk6RnQubm9kZVR5cGU9PT0xKXJldHVybiExO3hlPWhlPU09PT0ib25seSImJiF4ZSYmIm5leHRTaWJsaW5nIn1yZXR1cm4hMH1pZih4ZT1bRHQ/RmUuZmlyc3RDaGlsZDpGZS5sYXN0Q2hpbGRdLER0JiZQbil7Zm9yKFV0PUZlW2Z0XXx8KEZlW2Z0XT17fSksUnQ9VXRbTV18fFtdLG5lPVJ0WzBdPT09c3QmJlJ0WzFdLHBlPW5lJiZSdFsyXSxGdD1uZSYmRmUuY2hpbGROb2Rlc1tuZV07RnQ9KytuZSYmRnQmJkZ0W2hlXXx8KHBlPW5lPTApfHx4ZS5wb3AoKTspaWYoRnQubm9kZVR5cGU9PT0xJiYrK3BlJiZGdD09PUF0KXtVdFtNXT1bc3QsbmUscGVdO2JyZWFrfX1lbHNlIGlmKFBuJiYoVXQ9QXRbZnRdfHwoQXRbZnRdPXt9KSxSdD1VdFtNXXx8W10sbmU9UnRbMF09PT1zdCYmUnRbMV0scGU9bmUpLHBlPT09ITEpZm9yKDsoRnQ9KytuZSYmRnQmJkZ0W2hlXXx8KHBlPW5lPTApfHx4ZS5wb3AoKSkmJiEoKFB0P1goRnQsJGUpOkZ0Lm5vZGVUeXBlPT09MSkmJisrcGUmJihQbiYmKFV0PUZ0W2Z0XXx8KEZ0W2Z0XT17fSksVXRbTV09W3N0LHBlXSksRnQ9PT1BdCkpOyk7cmV0dXJuIHBlLT1jdCxwZT09PWx0fHxwZSVsdD09PTAmJnBlL2x0Pj0wfX19LFBTRVVETzpmdW5jdGlvbihNLFope3ZhciBpdCxsdD1kLnBzZXVkb3NbTV18fGQuc2V0RmlsdGVyc1tNLnRvTG93ZXJDYXNlKCldfHxKdC5lcnJvcigidW5zdXBwb3J0ZWQgcHNldWRvOiAiK00pO3JldHVybiBsdFtmdF0/bHQoWik6bHQubGVuZ3RoPjE/KGl0PVtNLE0sIiIsWl0sZC5zZXRGaWx0ZXJzLmhhc093blByb3BlcnR5KE0udG9Mb3dlckNhc2UoKSk/VmUoZnVuY3Rpb24oY3QsX3Qpe2Zvcih2YXIgRHQsUHQ9bHQoY3QsWiksQXQ9UHQubGVuZ3RoO0F0LS07KUR0PXUuY2FsbChjdCxQdFtBdF0pLGN0W0R0XT0hKF90W0R0XT1QdFtBdF0pfSk6ZnVuY3Rpb24oY3Qpe3JldHVybiBsdChjdCwwLGl0KX0pOmx0fX0scHNldWRvczp7bm90OlZlKGZ1bmN0aW9uKE0pe3ZhciBaPVtdLGl0PVtdLGx0PWhpKE0ucmVwbGFjZShrLCIkMSIpKTtyZXR1cm4gbHRbZnRdP1ZlKGZ1bmN0aW9uKGN0LF90LER0LFB0KXtmb3IodmFyIEF0LEh0PWx0KGN0LG51bGwsUHQsW10pLE50PWN0Lmxlbmd0aDtOdC0tOykoQXQ9SHRbTnRdKSYmKGN0W050XT0hKF90W050XT1BdCkpfSk6ZnVuY3Rpb24oY3QsX3QsRHQpe3JldHVybiBaWzBdPWN0LGx0KFosbnVsbCxEdCxpdCksWlswXT1udWxsLCFpdC5wb3AoKX19KSxoYXM6VmUoZnVuY3Rpb24oTSl7cmV0dXJuIGZ1bmN0aW9uKFope3JldHVybiBKdChNLFopLmxlbmd0aD4wfX0pLGNvbnRhaW5zOlZlKGZ1bmN0aW9uKE0pe3JldHVybiBNPU0ucmVwbGFjZShKZSxRZSksZnVuY3Rpb24oWil7cmV0dXJuKFoudGV4dENvbnRlbnR8fGYudGV4dChaKSkuaW5kZXhPZihNKT4tMX19KSxsYW5nOlZlKGZ1bmN0aW9uKE0pe3JldHVybiBZbi50ZXN0KE18fCIiKXx8SnQuZXJyb3IoInVuc3VwcG9ydGVkIGxhbmc6ICIrTSksTT1NLnJlcGxhY2UoSmUsUWUpLnRvTG93ZXJDYXNlKCksZnVuY3Rpb24oWil7dmFyIGl0O2RvIGlmKGl0PVc/Wi5sYW5nOlouZ2V0QXR0cmlidXRlKCJ4bWw6bGFuZyIpfHxaLmdldEF0dHJpYnV0ZSgibGFuZyIpKXJldHVybiBpdD1pdC50b0xvd2VyQ2FzZSgpLGl0PT09TXx8aXQuaW5kZXhPZihNKyItIik9PT0wO3doaWxlKChaPVoucGFyZW50Tm9kZSkmJloubm9kZVR5cGU9PT0xKTtyZXR1cm4hMX19KSx0YXJnZXQ6ZnVuY3Rpb24oTSl7dmFyIFo9dC5sb2NhdGlvbiYmdC5sb2NhdGlvbi5oYXNoO3JldHVybiBaJiZaLnNsaWNlKDEpPT09TS5pZH0scm9vdDpmdW5jdGlvbihNKXtyZXR1cm4gTT09PVl9LGZvY3VzOmZ1bmN0aW9uKE0pe3JldHVybiBNPT09Vm8oKSYmTi5oYXNGb2N1cygpJiYhIShNLnR5cGV8fE0uaHJlZnx8fk0udGFiSW5kZXgpfSxlbmFibGVkOlBhKCExKSxkaXNhYmxlZDpQYSghMCksY2hlY2tlZDpmdW5jdGlvbihNKXtyZXR1cm4gWChNLCJpbnB1dCIpJiYhIU0uY2hlY2tlZHx8WChNLCJvcHRpb24iKSYmISFNLnNlbGVjdGVkfSxzZWxlY3RlZDpmdW5jdGlvbihNKXtyZXR1cm4gTS5wYXJlbnROb2RlJiZNLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCxNLnNlbGVjdGVkPT09ITB9LGVtcHR5OmZ1bmN0aW9uKE0pe2ZvcihNPU0uZmlyc3RDaGlsZDtNO009TS5uZXh0U2libGluZylpZihNLm5vZGVUeXBlPDYpcmV0dXJuITE7cmV0dXJuITB9LHBhcmVudDpmdW5jdGlvbihNKXtyZXR1cm4hZC5wc2V1ZG9zLmVtcHR5KE0pfSxoZWFkZXI6ZnVuY3Rpb24oTSl7cmV0dXJuIG5uLnRlc3QoTS5ub2RlTmFtZSl9LGlucHV0OmZ1bmN0aW9uKE0pe3JldHVybiBlbi50ZXN0KE0ubm9kZU5hbWUpfSxidXR0b246ZnVuY3Rpb24oTSl7cmV0dXJuIFgoTSwiaW5wdXQiKSYmTS50eXBlPT09ImJ1dHRvbiJ8fFgoTSwiYnV0dG9uIil9LHRleHQ6ZnVuY3Rpb24oTSl7dmFyIFo7cmV0dXJuIFgoTSwiaW5wdXQiKSYmTS50eXBlPT09InRleHQiJiYoKFo9TS5nZXRBdHRyaWJ1dGUoInR5cGUiKSk9PW51bGx8fFoudG9Mb3dlckNhc2UoKT09PSJ0ZXh0Iil9LGZpcnN0Om1uKGZ1bmN0aW9uKCl7cmV0dXJuWzBdfSksbGFzdDptbihmdW5jdGlvbihNLFope3JldHVybltaLTFdfSksZXE6bW4oZnVuY3Rpb24oTSxaLGl0KXtyZXR1cm5baXQ8MD9pdCtaOml0XX0pLGV2ZW46bW4oZnVuY3Rpb24oTSxaKXtmb3IodmFyIGl0PTA7aXQ8WjtpdCs9MilNLnB1c2goaXQpO3JldHVybiBNfSksb2RkOm1uKGZ1bmN0aW9uKE0sWil7Zm9yKHZhciBpdD0xO2l0PFo7aXQrPTIpTS5wdXNoKGl0KTtyZXR1cm4gTX0pLGx0Om1uKGZ1bmN0aW9uKE0sWixpdCl7dmFyIGx0O2ZvcihpdDwwP2x0PWl0K1o6aXQ+Wj9sdD1aOmx0PWl0Oy0tbHQ+PTA7KU0ucHVzaChsdCk7cmV0dXJuIE19KSxndDptbihmdW5jdGlvbihNLFosaXQpe2Zvcih2YXIgbHQ9aXQ8MD9pdCtaOml0OysrbHQ8WjspTS5wdXNoKGx0KTtyZXR1cm4gTX0pfX0sZC5wc2V1ZG9zLm50aD1kLnBzZXVkb3MuZXE7Zm9yKGEgaW57cmFkaW86ITAsY2hlY2tib3g6ITAsZmlsZTohMCxwYXNzd29yZDohMCxpbWFnZTohMH0pZC5wc2V1ZG9zW2FdPUhvKGEpO2ZvcihhIGlue3N1Ym1pdDohMCxyZXNldDohMH0pZC5wc2V1ZG9zW2FdPVVvKGEpO2Z1bmN0aW9uIEZhKCl7fUZhLnByb3RvdHlwZT1kLmZpbHRlcnM9ZC5wc2V1ZG9zLGQuc2V0RmlsdGVycz1uZXcgRmE7ZnVuY3Rpb24gJG4oTSxaKXt2YXIgaXQsbHQsY3QsX3QsRHQsUHQsQXQsSHQ9WHRbTSsiICJdO2lmKEh0KXJldHVybiBaPzA6SHQuc2xpY2UoMCk7Zm9yKER0PU0sUHQ9W10sQXQ9ZC5wcmVGaWx0ZXI7RHQ7KXsoIWl0fHwobHQ9cmUuZXhlYyhEdCkpKSYmKGx0JiYoRHQ9RHQuc2xpY2UobHRbMF0ubGVuZ3RoKXx8RHQpLFB0LnB1c2goY3Q9W10pKSxpdD0hMSwobHQ9WG4uZXhlYyhEdCkpJiYoaXQ9bHQuc2hpZnQoKSxjdC5wdXNoKHt2YWx1ZTppdCx0eXBlOmx0WzBdLnJlcGxhY2UoaywiICIpfSksRHQ9RHQuc2xpY2UoaXQubGVuZ3RoKSk7Zm9yKF90IGluIGQuZmlsdGVyKShsdD1ZZVtfdF0uZXhlYyhEdCkpJiYoIUF0W190XXx8KGx0PUF0W190XShsdCkpKSYmKGl0PWx0LnNoaWZ0KCksY3QucHVzaCh7dmFsdWU6aXQsdHlwZTpfdCxtYXRjaGVzOmx0fSksRHQ9RHQuc2xpY2UoaXQubGVuZ3RoKSk7aWYoIWl0KWJyZWFrfXJldHVybiBaP0R0Lmxlbmd0aDpEdD9KdC5lcnJvcihNKTpYdChNLFB0KS5zbGljZSgwKX1mdW5jdGlvbiBncihNKXtmb3IodmFyIFo9MCxpdD1NLmxlbmd0aCxsdD0iIjtaPGl0O1orKylsdCs9TVtaXS52YWx1ZTtyZXR1cm4gbHR9ZnVuY3Rpb24geXIoTSxaLGl0KXt2YXIgbHQ9Wi5kaXIsY3Q9Wi5uZXh0LF90PWN0fHxsdCxEdD1pdCYmX3Q9PT0icGFyZW50Tm9kZSIsUHQ9eXQrKztyZXR1cm4gWi5maXJzdD9mdW5jdGlvbihBdCxIdCxOdCl7Zm9yKDtBdD1BdFtsdF07KWlmKEF0Lm5vZGVUeXBlPT09MXx8RHQpcmV0dXJuIE0oQXQsSHQsTnQpO3JldHVybiExfTpmdW5jdGlvbihBdCxIdCxOdCl7dmFyIFJ0LFV0LEZ0PVtzdCxQdF07aWYoTnQpe2Zvcig7QXQ9QXRbbHRdOylpZigoQXQubm9kZVR5cGU9PT0xfHxEdCkmJk0oQXQsSHQsTnQpKXJldHVybiEwfWVsc2UgZm9yKDtBdD1BdFtsdF07KWlmKEF0Lm5vZGVUeXBlPT09MXx8RHQpaWYoVXQ9QXRbZnRdfHwoQXRbZnRdPXt9KSxjdCYmWChBdCxjdCkpQXQ9QXRbbHRdfHxBdDtlbHNle2lmKChSdD1VdFtfdF0pJiZSdFswXT09PXN0JiZSdFsxXT09PVB0KXJldHVybiBGdFsyXT1SdFsyXTtpZihVdFtfdF09RnQsRnRbMl09TShBdCxIdCxOdCkpcmV0dXJuITB9cmV0dXJuITF9fWZ1bmN0aW9uIHVpKE0pe3JldHVybiBNLmxlbmd0aD4xP2Z1bmN0aW9uKFosaXQsbHQpe2Zvcih2YXIgY3Q9TS5sZW5ndGg7Y3QtLTspaWYoIU1bY3RdKFosaXQsbHQpKXJldHVybiExO3JldHVybiEwfTpNWzBdfWZ1bmN0aW9uIFdvKE0sWixpdCl7Zm9yKHZhciBsdD0wLGN0PVoubGVuZ3RoO2x0PGN0O2x0KyspSnQoTSxaW2x0XSxpdCk7cmV0dXJuIGl0fWZ1bmN0aW9uIHdyKE0sWixpdCxsdCxjdCl7Zm9yKHZhciBfdCxEdD1bXSxQdD0wLEF0PU0ubGVuZ3RoLEh0PVohPW51bGw7UHQ8QXQ7UHQrKykoX3Q9TVtQdF0pJiYoIWl0fHxpdChfdCxsdCxjdCkpJiYoRHQucHVzaChfdCksSHQmJloucHVzaChQdCkpO3JldHVybiBEdH1mdW5jdGlvbiBjaShNLFosaXQsbHQsY3QsX3Qpe3JldHVybiBsdCYmIWx0W2Z0XSYmKGx0PWNpKGx0KSksY3QmJiFjdFtmdF0mJihjdD1jaShjdCxfdCkpLFZlKGZ1bmN0aW9uKER0LFB0LEF0LEh0KXt2YXIgTnQsUnQsVXQsRnQsbmU9W10seGU9W10saGU9UHQubGVuZ3RoLEZlPUR0fHxXbyhafHwiKiIsQXQubm9kZVR5cGU/W0F0XTpBdCxbXSksJGU9TSYmKER0fHwhWik/d3IoRmUsbmUsTSxBdCxIdCk6RmU7aWYoaXQ/KEZ0PWN0fHwoRHQ/TTpoZXx8bHQpP1tdOlB0LGl0KCRlLEZ0LEF0LEh0KSk6RnQ9JGUsbHQpZm9yKE50PXdyKEZ0LHhlKSxsdChOdCxbXSxBdCxIdCksUnQ9TnQubGVuZ3RoO1J0LS07KShVdD1OdFtSdF0pJiYoRnRbeGVbUnRdXT0hKCRlW3hlW1J0XV09VXQpKTtpZihEdCl7aWYoY3R8fE0pe2lmKGN0KXtmb3IoTnQ9W10sUnQ9RnQubGVuZ3RoO1J0LS07KShVdD1GdFtSdF0pJiZOdC5wdXNoKCRlW1J0XT1VdCk7Y3QobnVsbCxGdD1bXSxOdCxIdCl9Zm9yKFJ0PUZ0Lmxlbmd0aDtSdC0tOykoVXQ9RnRbUnRdKSYmKE50PWN0P3UuY2FsbChEdCxVdCk6bmVbUnRdKT4tMSYmKER0W050XT0hKFB0W050XT1VdCkpfX1lbHNlIEZ0PXdyKEZ0PT09UHQ/RnQuc3BsaWNlKGhlLEZ0Lmxlbmd0aCk6RnQpLGN0P2N0KG51bGwsUHQsRnQsSHQpOkkuYXBwbHkoUHQsRnQpfSl9ZnVuY3Rpb24gZmkoTSl7Zm9yKHZhciBaLGl0LGx0LGN0PU0ubGVuZ3RoLF90PWQucmVsYXRpdmVbTVswXS50eXBlXSxEdD1fdHx8ZC5yZWxhdGl2ZVsiICJdLFB0PV90PzE6MCxBdD15cihmdW5jdGlvbihSdCl7cmV0dXJuIFJ0PT09Wn0sRHQsITApLEh0PXlyKGZ1bmN0aW9uKFJ0KXtyZXR1cm4gdS5jYWxsKFosUnQpPi0xfSxEdCwhMCksTnQ9W2Z1bmN0aW9uKFJ0LFV0LEZ0KXt2YXIgbmU9IV90JiYoRnR8fFV0IT12KXx8KChaPVV0KS5ub2RlVHlwZT9BdChSdCxVdCxGdCk6SHQoUnQsVXQsRnQpKTtyZXR1cm4gWj1udWxsLG5lfV07UHQ8Y3Q7UHQrKylpZihpdD1kLnJlbGF0aXZlW01bUHRdLnR5cGVdKU50PVt5cih1aShOdCksaXQpXTtlbHNle2lmKGl0PWQuZmlsdGVyW01bUHRdLnR5cGVdLmFwcGx5KG51bGwsTVtQdF0ubWF0Y2hlcyksaXRbZnRdKXtmb3IobHQ9KytQdDtsdDxjdCYmIWQucmVsYXRpdmVbTVtsdF0udHlwZV07bHQrKyk7cmV0dXJuIGNpKFB0PjEmJnVpKE50KSxQdD4xJiZncihNLnNsaWNlKDAsUHQtMSkuY29uY2F0KHt2YWx1ZTpNW1B0LTJdLnR5cGU9PT0iICI/IioiOiIifSkpLnJlcGxhY2UoaywiJDEiKSxpdCxQdDxsdCYmZmkoTS5zbGljZShQdCxsdCkpLGx0PGN0JiZmaShNPU0uc2xpY2UobHQpKSxsdDxjdCYmZ3IoTSkpfU50LnB1c2goaXQpfXJldHVybiB1aShOdCl9ZnVuY3Rpb24gR28oTSxaKXt2YXIgaXQ9Wi5sZW5ndGg+MCxsdD1NLmxlbmd0aD4wLGN0PWZ1bmN0aW9uKF90LER0LFB0LEF0LEh0KXt2YXIgTnQsUnQsVXQsRnQ9MCxuZT0iMCIseGU9X3QmJltdLGhlPVtdLEZlPXYsJGU9X3R8fGx0JiZkLmZpbmQuVEFHKCIqIixIdCksUG49c3QrPUZlPT1udWxsPzE6TWF0aC5yYW5kb20oKXx8LjEscGU9JGUubGVuZ3RoO2ZvcihIdCYmKHY9RHQ9PU58fER0fHxIdCk7bmUhPT1wZSYmKE50PSRlW25lXSkhPW51bGw7bmUrKyl7aWYobHQmJk50KXtmb3IoUnQ9MCwhRHQmJk50Lm93bmVyRG9jdW1lbnQhPU4mJihybihOdCksUHQ9IVcpO1V0PU1bUnQrK107KWlmKFV0KE50LER0fHxOLFB0KSl7SS5jYWxsKEF0LE50KTticmVha31IdCYmKHN0PVBuKX1pdCYmKChOdD0hVXQmJk50KSYmRnQtLSxfdCYmeGUucHVzaChOdCkpfWlmKEZ0Kz1uZSxpdCYmbmUhPT1GdCl7Zm9yKFJ0PTA7VXQ9WltSdCsrXTspVXQoeGUsaGUsRHQsUHQpO2lmKF90KXtpZihGdD4wKWZvcig7bmUtLTspeGVbbmVdfHxoZVtuZV18fChoZVtuZV09US5jYWxsKEF0KSk7aGU9d3IoaGUpfUkuYXBwbHkoQXQsaGUpLEh0JiYhX3QmJmhlLmxlbmd0aD4wJiZGdCtaLmxlbmd0aD4xJiZmLnVuaXF1ZVNvcnQoQXQpfXJldHVybiBIdCYmKHN0PVBuLHY9RmUpLHhlfTtyZXR1cm4gaXQ/VmUoY3QpOmN0fWZ1bmN0aW9uIGhpKE0sWil7dmFyIGl0LGx0PVtdLGN0PVtdLF90PVZ0W00rIiAiXTtpZighX3Qpe2ZvcihafHwoWj0kbihNKSksaXQ9Wi5sZW5ndGg7aXQtLTspX3Q9ZmkoWltpdF0pLF90W2Z0XT9sdC5wdXNoKF90KTpjdC5wdXNoKF90KTtfdD1WdChNLEdvKGN0LGx0KSksX3Quc2VsZWN0b3I9TX1yZXR1cm4gX3R9ZnVuY3Rpb24gQmEoTSxaLGl0LGx0KXt2YXIgY3QsX3QsRHQsUHQsQXQsSHQ9dHlwZW9mIE09PSJmdW5jdGlvbiImJk0sTnQ9IWx0JiYkbihNPUh0LnNlbGVjdG9yfHxNKTtpZihpdD1pdHx8W10sTnQubGVuZ3RoPT09MSl7aWYoX3Q9TnRbMF09TnRbMF0uc2xpY2UoMCksX3QubGVuZ3RoPjImJihEdD1fdFswXSkudHlwZT09PSJJRCImJloubm9kZVR5cGU9PT05JiZXJiZkLnJlbGF0aXZlW190WzFdLnR5cGVdKXtpZihaPShkLmZpbmQuSUQoRHQubWF0Y2hlc1swXS5yZXBsYWNlKEplLFFlKSxaKXx8W10pWzBdLFopSHQmJihaPVoucGFyZW50Tm9kZSk7ZWxzZSByZXR1cm4gaXQ7TT1NLnNsaWNlKF90LnNoaWZ0KCkudmFsdWUubGVuZ3RoKX1mb3IoY3Q9WWUubmVlZHNDb250ZXh0LnRlc3QoTSk/MDpfdC5sZW5ndGg7Y3QtLSYmKER0PV90W2N0XSwhZC5yZWxhdGl2ZVtQdD1EdC50eXBlXSk7KWlmKChBdD1kLmZpbmRbUHRdKSYmKGx0PUF0KER0Lm1hdGNoZXNbMF0ucmVwbGFjZShKZSxRZSksbGkudGVzdChfdFswXS50eXBlKSYmZGkoWi5wYXJlbnROb2RlKXx8WikpKXtpZihfdC5zcGxpY2UoY3QsMSksTT1sdC5sZW5ndGgmJmdyKF90KSwhTSlyZXR1cm4gSS5hcHBseShpdCxsdCksaXQ7YnJlYWt9fXJldHVybihIdHx8aGkoTSxOdCkpKGx0LFosIVcsaXQsIVp8fGxpLnRlc3QoTSkmJmRpKFoucGFyZW50Tm9kZSl8fFopLGl0fXkuc29ydFN0YWJsZT1mdC5zcGxpdCgiIikuc29ydChvZSkuam9pbigiIik9PT1mdCxybigpLHkuc29ydERldGFjaGVkPUluKGZ1bmN0aW9uKE0pe3JldHVybiBNLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKE4uY3JlYXRlRWxlbWVudCgiZmllbGRzZXQiKSkmMX0pLGYuZmluZD1KdCxmLmV4cHJbIjoiXT1mLmV4cHIucHNldWRvcyxmLnVuaXF1ZT1mLnVuaXF1ZVNvcnQsSnQuY29tcGlsZT1oaSxKdC5zZWxlY3Q9QmEsSnQuc2V0RG9jdW1lbnQ9cm4sSnQudG9rZW5pemU9JG4sSnQuZXNjYXBlPWYuZXNjYXBlU2VsZWN0b3IsSnQuZ2V0VGV4dD1mLnRleHQsSnQuaXNYTUw9Zi5pc1hNTERvYyxKdC5zZWxlY3RvcnM9Zi5leHByLEp0LnN1cHBvcnQ9Zi5zdXBwb3J0LEp0LnVuaXF1ZVNvcnQ9Zi51bmlxdWVTb3J0fSkoKTt2YXIgcT1mdW5jdGlvbihhLGQsdil7Zm9yKHZhciB4PVtdLEE9diE9PXZvaWQgMDsoYT1hW2RdKSYmYS5ub2RlVHlwZSE9PTk7KWlmKGEubm9kZVR5cGU9PT0xKXtpZihBJiZmKGEpLmlzKHYpKWJyZWFrO3gucHVzaChhKX1yZXR1cm4geH0sej1mdW5jdGlvbihhLGQpe2Zvcih2YXIgdj1bXTthO2E9YS5uZXh0U2libGluZylhLm5vZGVUeXBlPT09MSYmYSE9PWQmJnYucHVzaChhKTtyZXR1cm4gdn0sRz1mLmV4cHIubWF0Y2gubmVlZHNDb250ZXh0LG50PS9ePChbYS16XVteXC9cMD46XHgyMFx0XHJcblxmXSopW1x4MjBcdFxyXG5cZl0qXC8/Pig/OjxcL1wxPnwpJC9pO2Z1bmN0aW9uIHR0KGEsZCx2KXtyZXR1cm4gVChkKT9mLmdyZXAoYSxmdW5jdGlvbih4LEEpe3JldHVybiEhZC5jYWxsKHgsQSx4KSE9PXZ9KTpkLm5vZGVUeXBlP2YuZ3JlcChhLGZ1bmN0aW9uKHgpe3JldHVybiB4PT09ZCE9PXZ9KTp0eXBlb2YgZCE9InN0cmluZyI/Zi5ncmVwKGEsZnVuY3Rpb24oeCl7cmV0dXJuIHUuY2FsbChkLHgpPi0xIT09dn0pOmYuZmlsdGVyKGQsYSx2KX1mLmZpbHRlcj1mdW5jdGlvbihhLGQsdil7dmFyIHg9ZFswXTtyZXR1cm4gdiYmKGE9Ijpub3QoIithKyIpIiksZC5sZW5ndGg9PT0xJiZ4Lm5vZGVUeXBlPT09MT9mLmZpbmQubWF0Y2hlc1NlbGVjdG9yKHgsYSk/W3hdOltdOmYuZmluZC5tYXRjaGVzKGEsZi5ncmVwKGQsZnVuY3Rpb24oQSl7cmV0dXJuIEEubm9kZVR5cGU9PT0xfSkpfSxmLmZuLmV4dGVuZCh7ZmluZDpmdW5jdGlvbihhKXt2YXIgZCx2LHg9dGhpcy5sZW5ndGgsQT10aGlzO2lmKHR5cGVvZiBhIT0ic3RyaW5nIilyZXR1cm4gdGhpcy5wdXNoU3RhY2soZihhKS5maWx0ZXIoZnVuY3Rpb24oKXtmb3IoZD0wO2Q8eDtkKyspaWYoZi5jb250YWlucyhBW2RdLHRoaXMpKXJldHVybiEwfSkpO2Zvcih2PXRoaXMucHVzaFN0YWNrKFtdKSxkPTA7ZDx4O2QrKylmLmZpbmQoYSxBW2RdLHYpO3JldHVybiB4PjE/Zi51bmlxdWVTb3J0KHYpOnZ9LGZpbHRlcjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sodHQodGhpcyxhfHxbXSwhMSkpfSxub3Q6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHR0KHRoaXMsYXx8W10sITApKX0saXM6ZnVuY3Rpb24oYSl7cmV0dXJuISF0dCh0aGlzLHR5cGVvZiBhPT0ic3RyaW5nIiYmRy50ZXN0KGEpP2YoYSk6YXx8W10sITEpLmxlbmd0aH19KTt2YXIgZXQsd3Q9L14oPzpccyooPFtcd1xXXSs+KVtePl0qfCMoW1x3LV0rKSkkLyxTdD1mLmZuLmluaXQ9ZnVuY3Rpb24oYSxkLHYpe3ZhciB4LEE7aWYoIWEpcmV0dXJuIHRoaXM7aWYodj12fHxldCx0eXBlb2YgYT09InN0cmluZyIpaWYoYVswXT09PSI8IiYmYVthLmxlbmd0aC0xXT09PSI+IiYmYS5sZW5ndGg+PTM/eD1bbnVsbCxhLG51bGxdOng9d3QuZXhlYyhhKSx4JiYoeFsxXXx8IWQpKWlmKHhbMV0pe2lmKGQ9ZCBpbnN0YW5jZW9mIGY/ZFswXTpkLGYubWVyZ2UodGhpcyxmLnBhcnNlSFRNTCh4WzFdLGQmJmQubm9kZVR5cGU/ZC5vd25lckRvY3VtZW50fHxkOmMsITApKSxudC50ZXN0KHhbMV0pJiZmLmlzUGxhaW5PYmplY3QoZCkpZm9yKHggaW4gZClUKHRoaXNbeF0pP3RoaXNbeF0oZFt4XSk6dGhpcy5hdHRyKHgsZFt4XSk7cmV0dXJuIHRoaXN9ZWxzZSByZXR1cm4gQT1jLmdldEVsZW1lbnRCeUlkKHhbMl0pLEEmJih0aGlzWzBdPUEsdGhpcy5sZW5ndGg9MSksdGhpcztlbHNlIHJldHVybiFkfHxkLmpxdWVyeT8oZHx8dikuZmluZChhKTp0aGlzLmNvbnN0cnVjdG9yKGQpLmZpbmQoYSk7ZWxzZXtpZihhLm5vZGVUeXBlKXJldHVybiB0aGlzWzBdPWEsdGhpcy5sZW5ndGg9MSx0aGlzO2lmKFQoYSkpcmV0dXJuIHYucmVhZHkhPT12b2lkIDA/di5yZWFkeShhKTphKGYpfXJldHVybiBmLm1ha2VBcnJheShhLHRoaXMpfTtTdC5wcm90b3R5cGU9Zi5mbixldD1mKGMpO3ZhciBUdD0vXig/OnBhcmVudHN8cHJldig/OlVudGlsfEFsbCkpLyxrdD17Y2hpbGRyZW46ITAsY29udGVudHM6ITAsbmV4dDohMCxwcmV2OiEwfTtmLmZuLmV4dGVuZCh7aGFzOmZ1bmN0aW9uKGEpe3ZhciBkPWYoYSx0aGlzKSx2PWQubGVuZ3RoO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbigpe2Zvcih2YXIgeD0wO3g8djt4KyspaWYoZi5jb250YWlucyh0aGlzLGRbeF0pKXJldHVybiEwfSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oYSxkKXt2YXIgdix4PTAsQT10aGlzLmxlbmd0aCxJPVtdLE49dHlwZW9mIGEhPSJzdHJpbmciJiZmKGEpO2lmKCFHLnRlc3QoYSkpe2Zvcig7eDxBO3grKylmb3Iodj10aGlzW3hdO3YmJnYhPT1kO3Y9di5wYXJlbnROb2RlKWlmKHYubm9kZVR5cGU8MTEmJihOP04uaW5kZXgodik+LTE6di5ub2RlVHlwZT09PTEmJmYuZmluZC5tYXRjaGVzU2VsZWN0b3IodixhKSkpe0kucHVzaCh2KTticmVha319cmV0dXJuIHRoaXMucHVzaFN0YWNrKEkubGVuZ3RoPjE/Zi51bmlxdWVTb3J0KEkpOkkpfSxpbmRleDpmdW5jdGlvbihhKXtyZXR1cm4gYT90eXBlb2YgYT09InN0cmluZyI/dS5jYWxsKGYoYSksdGhpc1swXSk6dS5jYWxsKHRoaXMsYS5qcXVlcnk/YVswXTphKTp0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGU/dGhpcy5maXJzdCgpLnByZXZBbGwoKS5sZW5ndGg6LTF9LGFkZDpmdW5jdGlvbihhLGQpe3JldHVybiB0aGlzLnB1c2hTdGFjayhmLnVuaXF1ZVNvcnQoZi5tZXJnZSh0aGlzLmdldCgpLGYoYSxkKSkpKX0sYWRkQmFjazpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hZGQoYT09bnVsbD90aGlzLnByZXZPYmplY3Q6dGhpcy5wcmV2T2JqZWN0LmZpbHRlcihhKSl9fSk7ZnVuY3Rpb24gTHQoYSxkKXtmb3IoOyhhPWFbZF0pJiZhLm5vZGVUeXBlIT09MTspO3JldHVybiBhfWYuZWFjaCh7cGFyZW50OmZ1bmN0aW9uKGEpe3ZhciBkPWEucGFyZW50Tm9kZTtyZXR1cm4gZCYmZC5ub2RlVHlwZSE9PTExP2Q6bnVsbH0scGFyZW50czpmdW5jdGlvbihhKXtyZXR1cm4gcShhLCJwYXJlbnROb2RlIil9LHBhcmVudHNVbnRpbDpmdW5jdGlvbihhLGQsdil7cmV0dXJuIHEoYSwicGFyZW50Tm9kZSIsdil9LG5leHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIEx0KGEsIm5leHRTaWJsaW5nIil9LHByZXY6ZnVuY3Rpb24oYSl7cmV0dXJuIEx0KGEsInByZXZpb3VzU2libGluZyIpfSxuZXh0QWxsOmZ1bmN0aW9uKGEpe3JldHVybiBxKGEsIm5leHRTaWJsaW5nIil9LHByZXZBbGw6ZnVuY3Rpb24oYSl7cmV0dXJuIHEoYSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRVbnRpbDpmdW5jdGlvbihhLGQsdil7cmV0dXJuIHEoYSwibmV4dFNpYmxpbmciLHYpfSxwcmV2VW50aWw6ZnVuY3Rpb24oYSxkLHYpe3JldHVybiBxKGEsInByZXZpb3VzU2libGluZyIsdil9LHNpYmxpbmdzOmZ1bmN0aW9uKGEpe3JldHVybiB6KChhLnBhcmVudE5vZGV8fHt9KS5maXJzdENoaWxkLGEpfSxjaGlsZHJlbjpmdW5jdGlvbihhKXtyZXR1cm4geihhLmZpcnN0Q2hpbGQpfSxjb250ZW50czpmdW5jdGlvbihhKXtyZXR1cm4gYS5jb250ZW50RG9jdW1lbnQhPW51bGwmJnIoYS5jb250ZW50RG9jdW1lbnQpP2EuY29udGVudERvY3VtZW50OihYKGEsInRlbXBsYXRlIikmJihhPWEuY29udGVudHx8YSksZi5tZXJnZShbXSxhLmNoaWxkTm9kZXMpKX19LGZ1bmN0aW9uKGEsZCl7Zi5mblthXT1mdW5jdGlvbih2LHgpe3ZhciBBPWYubWFwKHRoaXMsZCx2KTtyZXR1cm4gYS5zbGljZSgtNSkhPT0iVW50aWwiJiYoeD12KSx4JiZ0eXBlb2YgeD09InN0cmluZyImJihBPWYuZmlsdGVyKHgsQSkpLHRoaXMubGVuZ3RoPjEmJihrdFthXXx8Zi51bmlxdWVTb3J0KEEpLFR0LnRlc3QoYSkmJkEucmV2ZXJzZSgpKSx0aGlzLnB1c2hTdGFjayhBKX19KTt2YXIgQnQ9L1teXHgyMFx0XHJcblxmXSsvZztmdW5jdGlvbiAkdChhKXt2YXIgZD17fTtyZXR1cm4gZi5lYWNoKGEubWF0Y2goQnQpfHxbXSxmdW5jdGlvbih2LHgpe2RbeF09ITB9KSxkfWYuQ2FsbGJhY2tzPWZ1bmN0aW9uKGEpe2E9dHlwZW9mIGE9PSJzdHJpbmciPyR0KGEpOmYuZXh0ZW5kKHt9LGEpO3ZhciBkLHYseCxBLEk9W10sTj1bXSxZPS0xLFc9ZnVuY3Rpb24oKXtmb3IoQT1BfHxhLm9uY2UseD1kPSEwO04ubGVuZ3RoO1k9LTEpZm9yKHY9Ti5zaGlmdCgpOysrWTxJLmxlbmd0aDspSVtZXS5hcHBseSh2WzBdLHZbMV0pPT09ITEmJmEuc3RvcE9uRmFsc2UmJihZPUkubGVuZ3RoLHY9ITEpO2EubWVtb3J5fHwodj0hMSksZD0hMSxBJiYodj9JPVtdOkk9IiIpfSxKPXthZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gSSYmKHYmJiFkJiYoWT1JLmxlbmd0aC0xLE4ucHVzaCh2KSksZnVuY3Rpb24gZHQoZnQpe2YuZWFjaChmdCxmdW5jdGlvbihzdCx5dCl7VCh5dCk/KCFhLnVuaXF1ZXx8IUouaGFzKHl0KSkmJkkucHVzaCh5dCk6eXQmJnl0Lmxlbmd0aCYmXyh5dCkhPT0ic3RyaW5nIiYmZHQoeXQpfSl9KGFyZ3VtZW50cyksdiYmIWQmJlcoKSksdGhpc30scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIGYuZWFjaChhcmd1bWVudHMsZnVuY3Rpb24oZHQsZnQpe2Zvcih2YXIgc3Q7KHN0PWYuaW5BcnJheShmdCxJLHN0KSk+LTE7KUkuc3BsaWNlKHN0LDEpLHN0PD1ZJiZZLS19KSx0aGlzfSxoYXM6ZnVuY3Rpb24oZHQpe3JldHVybiBkdD9mLmluQXJyYXkoZHQsSSk+LTE6SS5sZW5ndGg+MH0sZW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4gSSYmKEk9W10pLHRoaXN9LGRpc2FibGU6ZnVuY3Rpb24oKXtyZXR1cm4gQT1OPVtdLEk9dj0iIix0aGlzfSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiFJfSxsb2NrOmZ1bmN0aW9uKCl7cmV0dXJuIEE9Tj1bXSwhdiYmIWQmJihJPXY9IiIpLHRoaXN9LGxvY2tlZDpmdW5jdGlvbigpe3JldHVybiEhQX0sZmlyZVdpdGg6ZnVuY3Rpb24oZHQsZnQpe3JldHVybiBBfHwoZnQ9ZnR8fFtdLGZ0PVtkdCxmdC5zbGljZT9mdC5zbGljZSgpOmZ0XSxOLnB1c2goZnQpLGR8fFcoKSksdGhpc30sZmlyZTpmdW5jdGlvbigpe3JldHVybiBKLmZpcmVXaXRoKHRoaXMsYXJndW1lbnRzKSx0aGlzfSxmaXJlZDpmdW5jdGlvbigpe3JldHVybiEheH19O3JldHVybiBKfTtmdW5jdGlvbiBLdChhKXtyZXR1cm4gYX1mdW5jdGlvbiBEKGEpe3Rocm93IGF9ZnVuY3Rpb24gdXQoYSxkLHYseCl7dmFyIEE7dHJ5e2EmJlQoQT1hLnByb21pc2UpP0EuY2FsbChhKS5kb25lKGQpLmZhaWwodik6YSYmVChBPWEudGhlbik/QS5jYWxsKGEsZCx2KTpkLmFwcGx5KHZvaWQgMCxbYV0uc2xpY2UoeCkpfWNhdGNoKEkpe3YuYXBwbHkodm9pZCAwLFtJXSl9fWYuZXh0ZW5kKHtEZWZlcnJlZDpmdW5jdGlvbihhKXt2YXIgZD1bWyJub3RpZnkiLCJwcm9ncmVzcyIsZi5DYWxsYmFja3MoIm1lbW9yeSIpLGYuQ2FsbGJhY2tzKCJtZW1vcnkiKSwyXSxbInJlc29sdmUiLCJkb25lIixmLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxmLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwwLCJyZXNvbHZlZCJdLFsicmVqZWN0IiwiZmFpbCIsZi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksZi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksMSwicmVqZWN0ZWQiXV0sdj0icGVuZGluZyIseD17c3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gdn0sYWx3YXlzOmZ1bmN0aW9uKCl7cmV0dXJuIEEuZG9uZShhcmd1bWVudHMpLmZhaWwoYXJndW1lbnRzKSx0aGlzfSxjYXRjaDpmdW5jdGlvbihJKXtyZXR1cm4geC50aGVuKG51bGwsSSl9LHBpcGU6ZnVuY3Rpb24oKXt2YXIgST1hcmd1bWVudHM7cmV0dXJuIGYuRGVmZXJyZWQoZnVuY3Rpb24oTil7Zi5lYWNoKGQsZnVuY3Rpb24oWSxXKXt2YXIgSj1UKElbV1s0XV0pJiZJW1dbNF1dO0FbV1sxXV0oZnVuY3Rpb24oKXt2YXIgZHQ9SiYmSi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZHQmJlQoZHQucHJvbWlzZSk/ZHQucHJvbWlzZSgpLnByb2dyZXNzKE4ubm90aWZ5KS5kb25lKE4ucmVzb2x2ZSkuZmFpbChOLnJlamVjdCk6TltXWzBdKyJXaXRoIl0odGhpcyxKP1tkdF06YXJndW1lbnRzKX0pfSksST1udWxsfSkucHJvbWlzZSgpfSx0aGVuOmZ1bmN0aW9uKEksTixZKXt2YXIgVz0wO2Z1bmN0aW9uIEooZHQsZnQsc3QseXQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBPdD10aGlzLFh0PWFyZ3VtZW50cyxWdD1mdW5jdGlvbigpe3ZhciBvZSxHZTtpZighKGR0PFcpKXtpZihvZT1zdC5hcHBseShPdCxYdCksb2U9PT1mdC5wcm9taXNlKCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlbmFibGUgc2VsZi1yZXNvbHV0aW9uIik7R2U9b2UmJih0eXBlb2Ygb2U9PSJvYmplY3QifHx0eXBlb2Ygb2U9PSJmdW5jdGlvbiIpJiZvZS50aGVuLFQoR2UpP3l0P0dlLmNhbGwob2UsSihXLGZ0LEt0LHl0KSxKKFcsZnQsRCx5dCkpOihXKyssR2UuY2FsbChvZSxKKFcsZnQsS3QseXQpLEooVyxmdCxELHl0KSxKKFcsZnQsS3QsZnQubm90aWZ5V2l0aCkpKTooc3QhPT1LdCYmKE90PXZvaWQgMCxYdD1bb2VdKSwoeXR8fGZ0LnJlc29sdmVXaXRoKShPdCxYdCkpfX0sdWU9eXQ/VnQ6ZnVuY3Rpb24oKXt0cnl7VnQoKX1jYXRjaChvZSl7Zi5EZWZlcnJlZC5leGNlcHRpb25Ib29rJiZmLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2sob2UsdWUuZXJyb3IpLGR0KzE+PVcmJihzdCE9PUQmJihPdD12b2lkIDAsWHQ9W29lXSksZnQucmVqZWN0V2l0aChPdCxYdCkpfX07ZHQ/dWUoKTooZi5EZWZlcnJlZC5nZXRFcnJvckhvb2s/dWUuZXJyb3I9Zi5EZWZlcnJlZC5nZXRFcnJvckhvb2soKTpmLkRlZmVycmVkLmdldFN0YWNrSG9vayYmKHVlLmVycm9yPWYuRGVmZXJyZWQuZ2V0U3RhY2tIb29rKCkpLHQuc2V0VGltZW91dCh1ZSkpfX1yZXR1cm4gZi5EZWZlcnJlZChmdW5jdGlvbihkdCl7ZFswXVszXS5hZGQoSigwLGR0LFQoWSk/WTpLdCxkdC5ub3RpZnlXaXRoKSksZFsxXVszXS5hZGQoSigwLGR0LFQoSSk/STpLdCkpLGRbMl1bM10uYWRkKEooMCxkdCxUKE4pP046RCkpfSkucHJvbWlzZSgpfSxwcm9taXNlOmZ1bmN0aW9uKEkpe3JldHVybiBJIT1udWxsP2YuZXh0ZW5kKEkseCk6eH19LEE9e307cmV0dXJuIGYuZWFjaChkLGZ1bmN0aW9uKEksTil7dmFyIFk9TlsyXSxXPU5bNV07eFtOWzFdXT1ZLmFkZCxXJiZZLmFkZChmdW5jdGlvbigpe3Y9V30sZFszLUldWzJdLmRpc2FibGUsZFszLUldWzNdLmRpc2FibGUsZFswXVsyXS5sb2NrLGRbMF1bM10ubG9jayksWS5hZGQoTlszXS5maXJlKSxBW05bMF1dPWZ1bmN0aW9uKCl7cmV0dXJuIEFbTlswXSsiV2l0aCJdKHRoaXM9PT1BP3ZvaWQgMDp0aGlzLGFyZ3VtZW50cyksdGhpc30sQVtOWzBdKyJXaXRoIl09WS5maXJlV2l0aH0pLHgucHJvbWlzZShBKSxhJiZhLmNhbGwoQSxBKSxBfSx3aGVuOmZ1bmN0aW9uKGEpe3ZhciBkPWFyZ3VtZW50cy5sZW5ndGgsdj1kLHg9QXJyYXkodiksQT1zLmNhbGwoYXJndW1lbnRzKSxJPWYuRGVmZXJyZWQoKSxOPWZ1bmN0aW9uKFkpe3JldHVybiBmdW5jdGlvbihXKXt4W1ldPXRoaXMsQVtZXT1hcmd1bWVudHMubGVuZ3RoPjE/cy5jYWxsKGFyZ3VtZW50cyk6VywtLWR8fEkucmVzb2x2ZVdpdGgoeCxBKX19O2lmKGQ8PTEmJih1dChhLEkuZG9uZShOKHYpKS5yZXNvbHZlLEkucmVqZWN0LCFkKSxJLnN0YXRlKCk9PT0icGVuZGluZyJ8fFQoQVt2XSYmQVt2XS50aGVuKSkpcmV0dXJuIEkudGhlbigpO2Zvcig7di0tOyl1dChBW3ZdLE4odiksSS5yZWplY3QpO3JldHVybiBJLnByb21pc2UoKX19KTt2YXIgb3Q9L14oRXZhbHxJbnRlcm5hbHxSYW5nZXxSZWZlcmVuY2V8U3ludGF4fFR5cGV8VVJJKUVycm9yJC87Zi5EZWZlcnJlZC5leGNlcHRpb25Ib29rPWZ1bmN0aW9uKGEsZCl7dC5jb25zb2xlJiZ0LmNvbnNvbGUud2FybiYmYSYmb3QudGVzdChhLm5hbWUpJiZ0LmNvbnNvbGUud2FybigialF1ZXJ5LkRlZmVycmVkIGV4Y2VwdGlvbjogIithLm1lc3NhZ2UsYS5zdGFjayxkKX0sZi5yZWFkeUV4Y2VwdGlvbj1mdW5jdGlvbihhKXt0LnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBhfSl9O3ZhciBWPWYuRGVmZXJyZWQoKTtmLmZuLnJlYWR5PWZ1bmN0aW9uKGEpe3JldHVybiBWLnRoZW4oYSkuY2F0Y2goZnVuY3Rpb24oZCl7Zi5yZWFkeUV4Y2VwdGlvbihkKX0pLHRoaXN9LGYuZXh0ZW5kKHtpc1JlYWR5OiExLHJlYWR5V2FpdDoxLHJlYWR5OmZ1bmN0aW9uKGEpeyhhPT09ITA/LS1mLnJlYWR5V2FpdDpmLmlzUmVhZHkpfHwoZi5pc1JlYWR5PSEwLCEoYSE9PSEwJiYtLWYucmVhZHlXYWl0PjApJiZWLnJlc29sdmVXaXRoKGMsW2ZdKSl9fSksZi5yZWFkeS50aGVuPVYudGhlbjtmdW5jdGlvbiBqKCl7Yy5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixqKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLGopLGYucmVhZHkoKX1jLnJlYWR5U3RhdGU9PT0iY29tcGxldGUifHxjLnJlYWR5U3RhdGUhPT0ibG9hZGluZyImJiFjLmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbD90LnNldFRpbWVvdXQoZi5yZWFkeSk6KGMuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsaiksdC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixqKSk7dmFyIEs9ZnVuY3Rpb24oYSxkLHYseCxBLEksTil7dmFyIFk9MCxXPWEubGVuZ3RoLEo9dj09bnVsbDtpZihfKHYpPT09Im9iamVjdCIpe0E9ITA7Zm9yKFkgaW4gdilLKGEsZCxZLHZbWV0sITAsSSxOKX1lbHNlIGlmKHghPT12b2lkIDAmJihBPSEwLFQoeCl8fChOPSEwKSxKJiYoTj8oZC5jYWxsKGEseCksZD1udWxsKTooSj1kLGQ9ZnVuY3Rpb24oZHQsZnQsc3Qpe3JldHVybiBKLmNhbGwoZihkdCksc3QpfSkpLGQpKWZvcig7WTxXO1krKylkKGFbWV0sdixOP3g6eC5jYWxsKGFbWV0sWSxkKGFbWV0sdikpKTtyZXR1cm4gQT9hOko/ZC5jYWxsKGEpOlc/ZChhWzBdLHYpOkl9LHB0PS9eLW1zLS8sdnQ9Ly0oW2Etel0pL2c7ZnVuY3Rpb24gcnQoYSxkKXtyZXR1cm4gZC50b1VwcGVyQ2FzZSgpfWZ1bmN0aW9uIGd0KGEpe3JldHVybiBhLnJlcGxhY2UocHQsIm1zLSIpLnJlcGxhY2UodnQscnQpfXZhciBDdD1mdW5jdGlvbihhKXtyZXR1cm4gYS5ub2RlVHlwZT09PTF8fGEubm9kZVR5cGU9PT05fHwhK2Eubm9kZVR5cGV9O2Z1bmN0aW9uIHh0KCl7dGhpcy5leHBhbmRvPWYuZXhwYW5kbyt4dC51aWQrK314dC51aWQ9MSx4dC5wcm90b3R5cGU9e2NhY2hlOmZ1bmN0aW9uKGEpe3ZhciBkPWFbdGhpcy5leHBhbmRvXTtyZXR1cm4gZHx8KGQ9e30sQ3QoYSkmJihhLm5vZGVUeXBlP2FbdGhpcy5leHBhbmRvXT1kOk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLHRoaXMuZXhwYW5kbyx7dmFsdWU6ZCxjb25maWd1cmFibGU6ITB9KSkpLGR9LHNldDpmdW5jdGlvbihhLGQsdil7dmFyIHgsQT10aGlzLmNhY2hlKGEpO2lmKHR5cGVvZiBkPT0ic3RyaW5nIilBW2d0KGQpXT12O2Vsc2UgZm9yKHggaW4gZClBW2d0KHgpXT1kW3hdO3JldHVybiBBfSxnZXQ6ZnVuY3Rpb24oYSxkKXtyZXR1cm4gZD09PXZvaWQgMD90aGlzLmNhY2hlKGEpOmFbdGhpcy5leHBhbmRvXSYmYVt0aGlzLmV4cGFuZG9dW2d0KGQpXX0sYWNjZXNzOmZ1bmN0aW9uKGEsZCx2KXtyZXR1cm4gZD09PXZvaWQgMHx8ZCYmdHlwZW9mIGQ9PSJzdHJpbmciJiZ2PT09dm9pZCAwP3RoaXMuZ2V0KGEsZCk6KHRoaXMuc2V0KGEsZCx2KSx2IT09dm9pZCAwP3Y6ZCl9LHJlbW92ZTpmdW5jdGlvbihhLGQpe3ZhciB2LHg9YVt0aGlzLmV4cGFuZG9dO2lmKHghPT12b2lkIDApe2lmKGQhPT12b2lkIDApZm9yKEFycmF5LmlzQXJyYXkoZCk/ZD1kLm1hcChndCk6KGQ9Z3QoZCksZD1kIGluIHg/W2RdOmQubWF0Y2goQnQpfHxbXSksdj1kLmxlbmd0aDt2LS07KWRlbGV0ZSB4W2Rbdl1dOyhkPT09dm9pZCAwfHxmLmlzRW1wdHlPYmplY3QoeCkpJiYoYS5ub2RlVHlwZT9hW3RoaXMuZXhwYW5kb109dm9pZCAwOmRlbGV0ZSBhW3RoaXMuZXhwYW5kb10pfX0saGFzRGF0YTpmdW5jdGlvbihhKXt2YXIgZD1hW3RoaXMuZXhwYW5kb107cmV0dXJuIGQhPT12b2lkIDAmJiFmLmlzRW1wdHlPYmplY3QoZCl9fTt2YXIgbXQ9bmV3IHh0LHp0PW5ldyB4dCxHdD0vXig/Olx7W1x3XFddKlx9fFxbW1x3XFddKlxdKSQvLHZlPS9bQS1aXS9nO2Z1bmN0aW9uIGZuKGEpe3JldHVybiBhPT09InRydWUiPyEwOmE9PT0iZmFsc2UiPyExOmE9PT0ibnVsbCI/bnVsbDphPT09K2ErIiI/K2E6R3QudGVzdChhKT9KU09OLnBhcnNlKGEpOmF9ZnVuY3Rpb24gVGUoYSxkLHYpe3ZhciB4O2lmKHY9PT12b2lkIDAmJmEubm9kZVR5cGU9PT0xKWlmKHg9ImRhdGEtIitkLnJlcGxhY2UodmUsIi0kJiIpLnRvTG93ZXJDYXNlKCksdj1hLmdldEF0dHJpYnV0ZSh4KSx0eXBlb2Ygdj09InN0cmluZyIpe3RyeXt2PWZuKHYpfWNhdGNoe316dC5zZXQoYSxkLHYpfWVsc2Ugdj12b2lkIDA7cmV0dXJuIHZ9Zi5leHRlbmQoe2hhc0RhdGE6ZnVuY3Rpb24oYSl7cmV0dXJuIHp0Lmhhc0RhdGEoYSl8fG10Lmhhc0RhdGEoYSl9LGRhdGE6ZnVuY3Rpb24oYSxkLHYpe3JldHVybiB6dC5hY2Nlc3MoYSxkLHYpfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEsZCl7enQucmVtb3ZlKGEsZCl9LF9kYXRhOmZ1bmN0aW9uKGEsZCx2KXtyZXR1cm4gbXQuYWNjZXNzKGEsZCx2KX0sX3JlbW92ZURhdGE6ZnVuY3Rpb24oYSxkKXttdC5yZW1vdmUoYSxkKX19KSxmLmZuLmV4dGVuZCh7ZGF0YTpmdW5jdGlvbihhLGQpe3ZhciB2LHgsQSxJPXRoaXNbMF0sTj1JJiZJLmF0dHJpYnV0ZXM7aWYoYT09PXZvaWQgMCl7aWYodGhpcy5sZW5ndGgmJihBPXp0LmdldChJKSxJLm5vZGVUeXBlPT09MSYmIW10LmdldChJLCJoYXNEYXRhQXR0cnMiKSkpe2Zvcih2PU4ubGVuZ3RoO3YtLTspTlt2XSYmKHg9Tlt2XS5uYW1lLHguaW5kZXhPZigiZGF0YS0iKT09PTAmJih4PWd0KHguc2xpY2UoNSkpLFRlKEkseCxBW3hdKSkpO210LnNldChJLCJoYXNEYXRhQXR0cnMiLCEwKX1yZXR1cm4gQX1yZXR1cm4gdHlwZW9mIGE9PSJvYmplY3QiP3RoaXMuZWFjaChmdW5jdGlvbigpe3p0LnNldCh0aGlzLGEpfSk6Syh0aGlzLGZ1bmN0aW9uKFkpe3ZhciBXO2lmKEkmJlk9PT12b2lkIDApcmV0dXJuIFc9enQuZ2V0KEksYSksVyE9PXZvaWQgMHx8KFc9VGUoSSxhKSxXIT09dm9pZCAwKT9XOnZvaWQgMDt0aGlzLmVhY2goZnVuY3Rpb24oKXt6dC5zZXQodGhpcyxhLFkpfSl9LG51bGwsZCxhcmd1bWVudHMubGVuZ3RoPjEsbnVsbCwhMCl9LHJlbW92ZURhdGE6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3p0LnJlbW92ZSh0aGlzLGEpfSl9fSksZi5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGEsZCx2KXt2YXIgeDtpZihhKXJldHVybiBkPShkfHwiZngiKSsicXVldWUiLHg9bXQuZ2V0KGEsZCksdiYmKCF4fHxBcnJheS5pc0FycmF5KHYpP3g9bXQuYWNjZXNzKGEsZCxmLm1ha2VBcnJheSh2KSk6eC5wdXNoKHYpKSx4fHxbXX0sZGVxdWV1ZTpmdW5jdGlvbihhLGQpe2Q9ZHx8ImZ4Ijt2YXIgdj1mLnF1ZXVlKGEsZCkseD12Lmxlbmd0aCxBPXYuc2hpZnQoKSxJPWYuX3F1ZXVlSG9va3MoYSxkKSxOPWZ1bmN0aW9uKCl7Zi5kZXF1ZXVlKGEsZCl9O0E9PT0iaW5wcm9ncmVzcyImJihBPXYuc2hpZnQoKSx4LS0pLEEmJihkPT09ImZ4IiYmdi51bnNoaWZ0KCJpbnByb2dyZXNzIiksZGVsZXRlIEkuc3RvcCxBLmNhbGwoYSxOLEkpKSwheCYmSSYmSS5lbXB0eS5maXJlKCl9LF9xdWV1ZUhvb2tzOmZ1bmN0aW9uKGEsZCl7dmFyIHY9ZCsicXVldWVIb29rcyI7cmV0dXJuIG10LmdldChhLHYpfHxtdC5hY2Nlc3MoYSx2LHtlbXB0eTpmLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKS5hZGQoZnVuY3Rpb24oKXttdC5yZW1vdmUoYSxbZCsicXVldWUiLHZdKX0pfSl9fSksZi5mbi5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGEsZCl7dmFyIHY9MjtyZXR1cm4gdHlwZW9mIGEhPSJzdHJpbmciJiYoZD1hLGE9ImZ4Iix2LS0pLGFyZ3VtZW50cy5sZW5ndGg8dj9mLnF1ZXVlKHRoaXNbMF0sYSk6ZD09PXZvaWQgMD90aGlzOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB4PWYucXVldWUodGhpcyxhLGQpO2YuX3F1ZXVlSG9va3ModGhpcyxhKSxhPT09ImZ4IiYmeFswXSE9PSJpbnByb2dyZXNzIiYmZi5kZXF1ZXVlKHRoaXMsYSl9KX0sZGVxdWV1ZTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Zi5kZXF1ZXVlKHRoaXMsYSl9KX0sY2xlYXJRdWV1ZTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5xdWV1ZShhfHwiZngiLFtdKX0scHJvbWlzZTpmdW5jdGlvbihhLGQpe3ZhciB2LHg9MSxBPWYuRGVmZXJyZWQoKSxJPXRoaXMsTj10aGlzLmxlbmd0aCxZPWZ1bmN0aW9uKCl7LS14fHxBLnJlc29sdmVXaXRoKEksW0ldKX07Zm9yKHR5cGVvZiBhIT0ic3RyaW5nIiYmKGQ9YSxhPXZvaWQgMCksYT1hfHwiZngiO04tLTspdj1tdC5nZXQoSVtOXSxhKyJxdWV1ZUhvb2tzIiksdiYmdi5lbXB0eSYmKHgrKyx2LmVtcHR5LmFkZChZKSk7cmV0dXJuIFkoKSxBLnByb21pc2UoZCl9fSk7dmFyIHRuPS9bKy1dPyg/OlxkKlwufClcZCsoPzpbZUVdWystXT9cZCt8KS8uc291cmNlLGVlPW5ldyBSZWdFeHAoIl4oPzooWystXSk9fCkoIit0bisiKShbYS16JV0qKSQiLCJpIiksZ2U9WyJUb3AiLCJSaWdodCIsIkJvdHRvbSIsIkxlZnQiXSxqZT1jLmRvY3VtZW50RWxlbWVudCxmZT1mdW5jdGlvbihhKXtyZXR1cm4gZi5jb250YWlucyhhLm93bmVyRG9jdW1lbnQsYSl9LGRyPXtjb21wb3NlZDohMH07amUuZ2V0Um9vdE5vZGUmJihmZT1mdW5jdGlvbihhKXtyZXR1cm4gZi5jb250YWlucyhhLm93bmVyRG9jdW1lbnQsYSl8fGEuZ2V0Um9vdE5vZGUoZHIpPT09YS5vd25lckRvY3VtZW50fSk7dmFyIFRuPWZ1bmN0aW9uKGEsZCl7cmV0dXJuIGE9ZHx8YSxhLnN0eWxlLmRpc3BsYXk9PT0ibm9uZSJ8fGEuc3R5bGUuZGlzcGxheT09PSIiJiZmZShhKSYmZi5jc3MoYSwiZGlzcGxheSIpPT09Im5vbmUifTtmdW5jdGlvbiB1cihhLGQsdix4KXt2YXIgQSxJLE49MjAsWT14P2Z1bmN0aW9uKCl7cmV0dXJuIHguY3VyKCl9OmZ1bmN0aW9uKCl7cmV0dXJuIGYuY3NzKGEsZCwiIil9LFc9WSgpLEo9diYmdlszXXx8KGYuY3NzTnVtYmVyW2RdPyIiOiJweCIpLGR0PWEubm9kZVR5cGUmJihmLmNzc051bWJlcltkXXx8SiE9PSJweCImJitXKSYmZWUuZXhlYyhmLmNzcyhhLGQpKTtpZihkdCYmZHRbM10hPT1KKXtmb3IoVz1XLzIsSj1KfHxkdFszXSxkdD0rV3x8MTtOLS07KWYuc3R5bGUoYSxkLGR0K0opLCgxLUkpKigxLShJPVkoKS9XfHwuNSkpPD0wJiYoTj0wKSxkdD1kdC9JO2R0PWR0KjIsZi5zdHlsZShhLGQsZHQrSiksdj12fHxbXX1yZXR1cm4gdiYmKGR0PStkdHx8K1d8fDAsQT12WzFdP2R0Kyh2WzFdKzEpKnZbMl06K3ZbMl0seCYmKHgudW5pdD1KLHguc3RhcnQ9ZHQseC5lbmQ9QSkpLEF9dmFyIGNyPXt9O2Z1bmN0aW9uIGZyKGEpe3ZhciBkLHY9YS5vd25lckRvY3VtZW50LHg9YS5ub2RlTmFtZSxBPWNyW3hdO3JldHVybiBBfHwoZD12LmJvZHkuYXBwZW5kQ2hpbGQodi5jcmVhdGVFbGVtZW50KHgpKSxBPWYuY3NzKGQsImRpc3BsYXkiKSxkLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZCksQT09PSJub25lIiYmKEE9ImJsb2NrIiksY3JbeF09QSxBKX1mdW5jdGlvbiBBZShhLGQpe2Zvcih2YXIgdix4LEE9W10sST0wLE49YS5sZW5ndGg7STxOO0krKyl4PWFbSV0seC5zdHlsZSYmKHY9eC5zdHlsZS5kaXNwbGF5LGQ/KHY9PT0ibm9uZSImJihBW0ldPW10LmdldCh4LCJkaXNwbGF5Iil8fG51bGwsQVtJXXx8KHguc3R5bGUuZGlzcGxheT0iIikpLHguc3R5bGUuZGlzcGxheT09PSIiJiZUbih4KSYmKEFbSV09ZnIoeCkpKTp2IT09Im5vbmUiJiYoQVtJXT0ibm9uZSIsbXQuc2V0KHgsImRpc3BsYXkiLHYpKSk7Zm9yKEk9MDtJPE47SSsrKUFbSV0hPW51bGwmJihhW0ldLnN0eWxlLmRpc3BsYXk9QVtJXSk7cmV0dXJuIGF9Zi5mbi5leHRlbmQoe3Nob3c6ZnVuY3Rpb24oKXtyZXR1cm4gQWUodGhpcywhMCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gQWUodGhpcyl9LHRvZ2dsZTpmdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PSJib29sZWFuIj9hP3RoaXMuc2hvdygpOnRoaXMuaGlkZSgpOnRoaXMuZWFjaChmdW5jdGlvbigpe1RuKHRoaXMpP2YodGhpcykuc2hvdygpOmYodGhpcykuaGlkZSgpfSl9fSk7dmFyIFdlPS9eKD86Y2hlY2tib3h8cmFkaW8pJC9pLHJhPS88KFthLXpdW15cL1wwPlx4MjBcdFxyXG5cZl0qKS9pLGlhPS9eJHxebW9kdWxlJHxcLyg/OmphdmF8ZWNtYSlzY3JpcHQvaTsoZnVuY3Rpb24oKXt2YXIgYT1jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxkPWEuYXBwZW5kQ2hpbGQoYy5jcmVhdGVFbGVtZW50KCJkaXYiKSksdj1jLmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7di5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpLHYuc2V0QXR0cmlidXRlKCJjaGVja2VkIiwiY2hlY2tlZCIpLHYuc2V0QXR0cmlidXRlKCJuYW1lIiwidCIpLGQuYXBwZW5kQ2hpbGQodikseS5jaGVja0Nsb25lPWQuY2xvbmVOb2RlKCEwKS5jbG9uZU5vZGUoITApLmxhc3RDaGlsZC5jaGVja2VkLGQuaW5uZXJIVE1MPSI8dGV4dGFyZWE+eDwvdGV4dGFyZWE+Iix5Lm5vQ2xvbmVDaGVja2VkPSEhZC5jbG9uZU5vZGUoITApLmxhc3RDaGlsZC5kZWZhdWx0VmFsdWUsZC5pbm5lckhUTUw9IjxvcHRpb24+PC9vcHRpb24+Iix5Lm9wdGlvbj0hIWQubGFzdENoaWxkfSkoKTt2YXIgSWU9e3RoZWFkOlsxLCI8dGFibGU+IiwiPC90YWJsZT4iXSxjb2w6WzIsIjx0YWJsZT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdLHRyOlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSx0ZDpbMywiPHRhYmxlPjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il0sX2RlZmF1bHQ6WzAsIiIsIiJdfTtJZS50Ym9keT1JZS50Zm9vdD1JZS5jb2xncm91cD1JZS5jYXB0aW9uPUllLnRoZWFkLEllLnRoPUllLnRkLHkub3B0aW9ufHwoSWUub3B0Z3JvdXA9SWUub3B0aW9uPVsxLCI8c2VsZWN0IG11bHRpcGxlPSdtdWx0aXBsZSc+IiwiPC9zZWxlY3Q+Il0pO2Z1bmN0aW9uIHllKGEsZCl7dmFyIHY7cmV0dXJuIHR5cGVvZiBhLmdldEVsZW1lbnRzQnlUYWdOYW1lPCJ1Ij92PWEuZ2V0RWxlbWVudHNCeVRhZ05hbWUoZHx8IioiKTp0eXBlb2YgYS5xdWVyeVNlbGVjdG9yQWxsPCJ1Ij92PWEucXVlcnlTZWxlY3RvckFsbChkfHwiKiIpOnY9W10sZD09PXZvaWQgMHx8ZCYmWChhLGQpP2YubWVyZ2UoW2FdLHYpOnZ9ZnVuY3Rpb24gWHIoYSxkKXtmb3IodmFyIHY9MCx4PWEubGVuZ3RoO3Y8eDt2KyspbXQuc2V0KGFbdl0sImdsb2JhbEV2YWwiLCFkfHxtdC5nZXQoZFt2XSwiZ2xvYmFsRXZhbCIpKX12YXIgaW89Lzx8JiM/XHcrOy87ZnVuY3Rpb24gYWEoYSxkLHYseCxBKXtmb3IodmFyIEksTixZLFcsSixkdCxmdD1kLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxzdD1bXSx5dD0wLE90PWEubGVuZ3RoO3l0PE90O3l0KyspaWYoST1hW3l0XSxJfHxJPT09MClpZihfKEkpPT09Im9iamVjdCIpZi5tZXJnZShzdCxJLm5vZGVUeXBlP1tJXTpJKTtlbHNlIGlmKCFpby50ZXN0KEkpKXN0LnB1c2goZC5jcmVhdGVUZXh0Tm9kZShJKSk7ZWxzZXtmb3IoTj1OfHxmdC5hcHBlbmRDaGlsZChkLmNyZWF0ZUVsZW1lbnQoImRpdiIpKSxZPShyYS5leGVjKEkpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpLFc9SWVbWV18fEllLl9kZWZhdWx0LE4uaW5uZXJIVE1MPVdbMV0rZi5odG1sUHJlZmlsdGVyKEkpK1dbMl0sZHQ9V1swXTtkdC0tOylOPU4ubGFzdENoaWxkO2YubWVyZ2Uoc3QsTi5jaGlsZE5vZGVzKSxOPWZ0LmZpcnN0Q2hpbGQsTi50ZXh0Q29udGVudD0iIn1mb3IoZnQudGV4dENvbnRlbnQ9IiIseXQ9MDtJPXN0W3l0KytdOyl7aWYoeCYmZi5pbkFycmF5KEkseCk+LTEpe0EmJkEucHVzaChJKTtjb250aW51ZX1pZihKPWZlKEkpLE49eWUoZnQuYXBwZW5kQ2hpbGQoSSksInNjcmlwdCIpLEomJlhyKE4pLHYpZm9yKGR0PTA7ST1OW2R0KytdOylpYS50ZXN0KEkudHlwZXx8IiIpJiZ2LnB1c2goSSl9cmV0dXJuIGZ0fXZhciBzYT0vXihbXi5dKikoPzpcLiguKyl8KS87ZnVuY3Rpb24ga24oKXtyZXR1cm4hMH1mdW5jdGlvbiBTbigpe3JldHVybiExfWZ1bmN0aW9uIFlyKGEsZCx2LHgsQSxJKXt2YXIgTixZO2lmKHR5cGVvZiBkPT0ib2JqZWN0Iil7dHlwZW9mIHYhPSJzdHJpbmciJiYoeD14fHx2LHY9dm9pZCAwKTtmb3IoWSBpbiBkKVlyKGEsWSx2LHgsZFtZXSxJKTtyZXR1cm4gYX1pZih4PT1udWxsJiZBPT1udWxsPyhBPXYseD12PXZvaWQgMCk6QT09bnVsbCYmKHR5cGVvZiB2PT0ic3RyaW5nIj8oQT14LHg9dm9pZCAwKTooQT14LHg9dix2PXZvaWQgMCkpLEE9PT0hMSlBPVNuO2Vsc2UgaWYoIUEpcmV0dXJuIGE7cmV0dXJuIEk9PT0xJiYoTj1BLEE9ZnVuY3Rpb24oVyl7cmV0dXJuIGYoKS5vZmYoVyksTi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LEEuZ3VpZD1OLmd1aWR8fChOLmd1aWQ9Zi5ndWlkKyspKSxhLmVhY2goZnVuY3Rpb24oKXtmLmV2ZW50LmFkZCh0aGlzLGQsQSx4LHYpfSl9Zi5ldmVudD17Z2xvYmFsOnt9LGFkZDpmdW5jdGlvbihhLGQsdix4LEEpe3ZhciBJLE4sWSxXLEosZHQsZnQsc3QseXQsT3QsWHQsVnQ9bXQuZ2V0KGEpO2lmKEN0KGEpKWZvcih2LmhhbmRsZXImJihJPXYsdj1JLmhhbmRsZXIsQT1JLnNlbGVjdG9yKSxBJiZmLmZpbmQubWF0Y2hlc1NlbGVjdG9yKGplLEEpLHYuZ3VpZHx8KHYuZ3VpZD1mLmd1aWQrKyksKFc9VnQuZXZlbnRzKXx8KFc9VnQuZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCkpLChOPVZ0LmhhbmRsZSl8fChOPVZ0LmhhbmRsZT1mdW5jdGlvbih1ZSl7cmV0dXJuIHR5cGVvZiBmPCJ1IiYmZi5ldmVudC50cmlnZ2VyZWQhPT11ZS50eXBlP2YuZXZlbnQuZGlzcGF0Y2guYXBwbHkoYSxhcmd1bWVudHMpOnZvaWQgMH0pLGQ9KGR8fCIiKS5tYXRjaChCdCl8fFsiIl0sSj1kLmxlbmd0aDtKLS07KVk9c2EuZXhlYyhkW0pdKXx8W10seXQ9WHQ9WVsxXSxPdD0oWVsyXXx8IiIpLnNwbGl0KCIuIikuc29ydCgpLHl0JiYoZnQ9Zi5ldmVudC5zcGVjaWFsW3l0XXx8e30seXQ9KEE/ZnQuZGVsZWdhdGVUeXBlOmZ0LmJpbmRUeXBlKXx8eXQsZnQ9Zi5ldmVudC5zcGVjaWFsW3l0XXx8e30sZHQ9Zi5leHRlbmQoe3R5cGU6eXQsb3JpZ1R5cGU6WHQsZGF0YTp4LGhhbmRsZXI6dixndWlkOnYuZ3VpZCxzZWxlY3RvcjpBLG5lZWRzQ29udGV4dDpBJiZmLmV4cHIubWF0Y2gubmVlZHNDb250ZXh0LnRlc3QoQSksbmFtZXNwYWNlOk90LmpvaW4oIi4iKX0sSSksKHN0PVdbeXRdKXx8KHN0PVdbeXRdPVtdLHN0LmRlbGVnYXRlQ291bnQ9MCwoIWZ0LnNldHVwfHxmdC5zZXR1cC5jYWxsKGEseCxPdCxOKT09PSExKSYmYS5hZGRFdmVudExpc3RlbmVyJiZhLmFkZEV2ZW50TGlzdGVuZXIoeXQsTikpLGZ0LmFkZCYmKGZ0LmFkZC5jYWxsKGEsZHQpLGR0LmhhbmRsZXIuZ3VpZHx8KGR0LmhhbmRsZXIuZ3VpZD12Lmd1aWQpKSxBP3N0LnNwbGljZShzdC5kZWxlZ2F0ZUNvdW50KyssMCxkdCk6c3QucHVzaChkdCksZi5ldmVudC5nbG9iYWxbeXRdPSEwKX0scmVtb3ZlOmZ1bmN0aW9uKGEsZCx2LHgsQSl7dmFyIEksTixZLFcsSixkdCxmdCxzdCx5dCxPdCxYdCxWdD1tdC5oYXNEYXRhKGEpJiZtdC5nZXQoYSk7aWYoISghVnR8fCEoVz1WdC5ldmVudHMpKSl7Zm9yKGQ9KGR8fCIiKS5tYXRjaChCdCl8fFsiIl0sSj1kLmxlbmd0aDtKLS07KXtpZihZPXNhLmV4ZWMoZFtKXSl8fFtdLHl0PVh0PVlbMV0sT3Q9KFlbMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSwheXQpe2Zvcih5dCBpbiBXKWYuZXZlbnQucmVtb3ZlKGEseXQrZFtKXSx2LHgsITApO2NvbnRpbnVlfWZvcihmdD1mLmV2ZW50LnNwZWNpYWxbeXRdfHx7fSx5dD0oeD9mdC5kZWxlZ2F0ZVR5cGU6ZnQuYmluZFR5cGUpfHx5dCxzdD1XW3l0XXx8W10sWT1ZWzJdJiZuZXcgUmVnRXhwKCIoXnxcXC4pIitPdC5qb2luKCJcXC4oPzouKlxcLnwpIikrIihcXC58JCkiKSxOPUk9c3QubGVuZ3RoO0ktLTspZHQ9c3RbSV0sKEF8fFh0PT09ZHQub3JpZ1R5cGUpJiYoIXZ8fHYuZ3VpZD09PWR0Lmd1aWQpJiYoIVl8fFkudGVzdChkdC5uYW1lc3BhY2UpKSYmKCF4fHx4PT09ZHQuc2VsZWN0b3J8fHg9PT0iKioiJiZkdC5zZWxlY3RvcikmJihzdC5zcGxpY2UoSSwxKSxkdC5zZWxlY3RvciYmc3QuZGVsZWdhdGVDb3VudC0tLGZ0LnJlbW92ZSYmZnQucmVtb3ZlLmNhbGwoYSxkdCkpO04mJiFzdC5sZW5ndGgmJigoIWZ0LnRlYXJkb3dufHxmdC50ZWFyZG93bi5jYWxsKGEsT3QsVnQuaGFuZGxlKT09PSExKSYmZi5yZW1vdmVFdmVudChhLHl0LFZ0LmhhbmRsZSksZGVsZXRlIFdbeXRdKX1mLmlzRW1wdHlPYmplY3QoVykmJm10LnJlbW92ZShhLCJoYW5kbGUgZXZlbnRzIil9fSxkaXNwYXRjaDpmdW5jdGlvbihhKXt2YXIgZCx2LHgsQSxJLE4sWT1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCksVz1mLmV2ZW50LmZpeChhKSxKPShtdC5nZXQodGhpcywiZXZlbnRzIil8fE9iamVjdC5jcmVhdGUobnVsbCkpW1cudHlwZV18fFtdLGR0PWYuZXZlbnQuc3BlY2lhbFtXLnR5cGVdfHx7fTtmb3IoWVswXT1XLGQ9MTtkPGFyZ3VtZW50cy5sZW5ndGg7ZCsrKVlbZF09YXJndW1lbnRzW2RdO2lmKFcuZGVsZWdhdGVUYXJnZXQ9dGhpcywhKGR0LnByZURpc3BhdGNoJiZkdC5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsVyk9PT0hMSkpe2ZvcihOPWYuZXZlbnQuaGFuZGxlcnMuY2FsbCh0aGlzLFcsSiksZD0wOyhBPU5bZCsrXSkmJiFXLmlzUHJvcGFnYXRpb25TdG9wcGVkKCk7KWZvcihXLmN1cnJlbnRUYXJnZXQ9QS5lbGVtLHY9MDsoST1BLmhhbmRsZXJzW3YrK10pJiYhVy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpOykoIVcucm5hbWVzcGFjZXx8SS5uYW1lc3BhY2U9PT0hMXx8Vy5ybmFtZXNwYWNlLnRlc3QoSS5uYW1lc3BhY2UpKSYmKFcuaGFuZGxlT2JqPUksVy5kYXRhPUkuZGF0YSx4PSgoZi5ldmVudC5zcGVjaWFsW0kub3JpZ1R5cGVdfHx7fSkuaGFuZGxlfHxJLmhhbmRsZXIpLmFwcGx5KEEuZWxlbSxZKSx4IT09dm9pZCAwJiYoVy5yZXN1bHQ9eCk9PT0hMSYmKFcucHJldmVudERlZmF1bHQoKSxXLnN0b3BQcm9wYWdhdGlvbigpKSk7cmV0dXJuIGR0LnBvc3REaXNwYXRjaCYmZHQucG9zdERpc3BhdGNoLmNhbGwodGhpcyxXKSxXLnJlc3VsdH19LGhhbmRsZXJzOmZ1bmN0aW9uKGEsZCl7dmFyIHYseCxBLEksTixZPVtdLFc9ZC5kZWxlZ2F0ZUNvdW50LEo9YS50YXJnZXQ7aWYoVyYmSi5ub2RlVHlwZSYmIShhLnR5cGU9PT0iY2xpY2siJiZhLmJ1dHRvbj49MSkpe2Zvcig7SiE9PXRoaXM7Sj1KLnBhcmVudE5vZGV8fHRoaXMpaWYoSi5ub2RlVHlwZT09PTEmJiEoYS50eXBlPT09ImNsaWNrIiYmSi5kaXNhYmxlZD09PSEwKSl7Zm9yKEk9W10sTj17fSx2PTA7djxXO3YrKyl4PWRbdl0sQT14LnNlbGVjdG9yKyIgIixOW0FdPT09dm9pZCAwJiYoTltBXT14Lm5lZWRzQ29udGV4dD9mKEEsdGhpcykuaW5kZXgoSik+LTE6Zi5maW5kKEEsdGhpcyxudWxsLFtKXSkubGVuZ3RoKSxOW0FdJiZJLnB1c2goeCk7SS5sZW5ndGgmJlkucHVzaCh7ZWxlbTpKLGhhbmRsZXJzOkl9KX19cmV0dXJuIEo9dGhpcyxXPGQubGVuZ3RoJiZZLnB1c2goe2VsZW06SixoYW5kbGVyczpkLnNsaWNlKFcpfSksWX0sYWRkUHJvcDpmdW5jdGlvbihhLGQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShmLkV2ZW50LnByb3RvdHlwZSxhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6VChkKT9mdW5jdGlvbigpe2lmKHRoaXMub3JpZ2luYWxFdmVudClyZXR1cm4gZCh0aGlzLm9yaWdpbmFsRXZlbnQpfTpmdW5jdGlvbigpe2lmKHRoaXMub3JpZ2luYWxFdmVudClyZXR1cm4gdGhpcy5vcmlnaW5hbEV2ZW50W2FdfSxzZXQ6ZnVuY3Rpb24odil7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsYSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dn0pfX0pfSxmaXg6ZnVuY3Rpb24oYSl7cmV0dXJuIGFbZi5leHBhbmRvXT9hOm5ldyBmLkV2ZW50KGEpfSxzcGVjaWFsOntsb2FkOntub0J1YmJsZTohMH0sY2xpY2s6e3NldHVwOmZ1bmN0aW9uKGEpe3ZhciBkPXRoaXN8fGE7cmV0dXJuIFdlLnRlc3QoZC50eXBlKSYmZC5jbGljayYmWChkLCJpbnB1dCIpJiZocihkLCJjbGljayIsITApLCExfSx0cmlnZ2VyOmZ1bmN0aW9uKGEpe3ZhciBkPXRoaXN8fGE7cmV0dXJuIFdlLnRlc3QoZC50eXBlKSYmZC5jbGljayYmWChkLCJpbnB1dCIpJiZocihkLCJjbGljayIpLCEwfSxfZGVmYXVsdDpmdW5jdGlvbihhKXt2YXIgZD1hLnRhcmdldDtyZXR1cm4gV2UudGVzdChkLnR5cGUpJiZkLmNsaWNrJiZYKGQsImlucHV0IikmJm10LmdldChkLCJjbGljayIpfHxYKGQsImEiKX19LGJlZm9yZXVubG9hZDp7cG9zdERpc3BhdGNoOmZ1bmN0aW9uKGEpe2EucmVzdWx0IT09dm9pZCAwJiZhLm9yaWdpbmFsRXZlbnQmJihhLm9yaWdpbmFsRXZlbnQucmV0dXJuVmFsdWU9YS5yZXN1bHQpfX19fTtmdW5jdGlvbiBocihhLGQsdil7aWYoIXYpe210LmdldChhLGQpPT09dm9pZCAwJiZmLmV2ZW50LmFkZChhLGQsa24pO3JldHVybn1tdC5zZXQoYSxkLCExKSxmLmV2ZW50LmFkZChhLGQse25hbWVzcGFjZTohMSxoYW5kbGVyOmZ1bmN0aW9uKHgpe3ZhciBBLEk9bXQuZ2V0KHRoaXMsZCk7aWYoeC5pc1RyaWdnZXImMSYmdGhpc1tkXSl7aWYoSSkoZi5ldmVudC5zcGVjaWFsW2RdfHx7fSkuZGVsZWdhdGVUeXBlJiZ4LnN0b3BQcm9wYWdhdGlvbigpO2Vsc2UgaWYoST1zLmNhbGwoYXJndW1lbnRzKSxtdC5zZXQodGhpcyxkLEkpLHRoaXNbZF0oKSxBPW10LmdldCh0aGlzLGQpLG10LnNldCh0aGlzLGQsITEpLEkhPT1BKXJldHVybiB4LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLHgucHJldmVudERlZmF1bHQoKSxBfWVsc2UgSSYmKG10LnNldCh0aGlzLGQsZi5ldmVudC50cmlnZ2VyKElbMF0sSS5zbGljZSgxKSx0aGlzKSkseC5zdG9wUHJvcGFnYXRpb24oKSx4LmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkPWtuKX19KX1mLnJlbW92ZUV2ZW50PWZ1bmN0aW9uKGEsZCx2KXthLnJlbW92ZUV2ZW50TGlzdGVuZXImJmEucmVtb3ZlRXZlbnRMaXN0ZW5lcihkLHYpfSxmLkV2ZW50PWZ1bmN0aW9uKGEsZCl7aWYoISh0aGlzIGluc3RhbmNlb2YgZi5FdmVudCkpcmV0dXJuIG5ldyBmLkV2ZW50KGEsZCk7YSYmYS50eXBlPyh0aGlzLm9yaWdpbmFsRXZlbnQ9YSx0aGlzLnR5cGU9YS50eXBlLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPWEuZGVmYXVsdFByZXZlbnRlZHx8YS5kZWZhdWx0UHJldmVudGVkPT09dm9pZCAwJiZhLnJldHVyblZhbHVlPT09ITE/a246U24sdGhpcy50YXJnZXQ9YS50YXJnZXQmJmEudGFyZ2V0Lm5vZGVUeXBlPT09Mz9hLnRhcmdldC5wYXJlbnROb2RlOmEudGFyZ2V0LHRoaXMuY3VycmVudFRhcmdldD1hLmN1cnJlbnRUYXJnZXQsdGhpcy5yZWxhdGVkVGFyZ2V0PWEucmVsYXRlZFRhcmdldCk6dGhpcy50eXBlPWEsZCYmZi5leHRlbmQodGhpcyxkKSx0aGlzLnRpbWVTdGFtcD1hJiZhLnRpbWVTdGFtcHx8RGF0ZS5ub3coKSx0aGlzW2YuZXhwYW5kb109ITB9LGYuRXZlbnQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpmLkV2ZW50LGlzRGVmYXVsdFByZXZlbnRlZDpTbixpc1Byb3BhZ2F0aW9uU3RvcHBlZDpTbixpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDpTbixpc1NpbXVsYXRlZDohMSxwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1rbixhJiYhdGhpcy5pc1NpbXVsYXRlZCYmYS5wcmV2ZW50RGVmYXVsdCgpfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1rbixhJiYhdGhpcy5pc1NpbXVsYXRlZCYmYS5zdG9wUHJvcGFnYXRpb24oKX0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ9a24sYSYmIXRoaXMuaXNTaW11bGF0ZWQmJmEuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksdGhpcy5zdG9wUHJvcGFnYXRpb24oKX19LGYuZWFjaCh7YWx0S2V5OiEwLGJ1YmJsZXM6ITAsY2FuY2VsYWJsZTohMCxjaGFuZ2VkVG91Y2hlczohMCxjdHJsS2V5OiEwLGRldGFpbDohMCxldmVudFBoYXNlOiEwLG1ldGFLZXk6ITAscGFnZVg6ITAscGFnZVk6ITAsc2hpZnRLZXk6ITAsdmlldzohMCxjaGFyOiEwLGNvZGU6ITAsY2hhckNvZGU6ITAsa2V5OiEwLGtleUNvZGU6ITAsYnV0dG9uOiEwLGJ1dHRvbnM6ITAsY2xpZW50WDohMCxjbGllbnRZOiEwLG9mZnNldFg6ITAsb2Zmc2V0WTohMCxwb2ludGVySWQ6ITAscG9pbnRlclR5cGU6ITAsc2NyZWVuWDohMCxzY3JlZW5ZOiEwLHRhcmdldFRvdWNoZXM6ITAsdG9FbGVtZW50OiEwLHRvdWNoZXM6ITAsd2hpY2g6ITB9LGYuZXZlbnQuYWRkUHJvcCksZi5lYWNoKHtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9jdXNvdXQifSxmdW5jdGlvbihhLGQpe2Z1bmN0aW9uIHYoeCl7aWYoYy5kb2N1bWVudE1vZGUpe3ZhciBBPW10LmdldCh0aGlzLCJoYW5kbGUiKSxJPWYuZXZlbnQuZml4KHgpO0kudHlwZT14LnR5cGU9PT0iZm9jdXNpbiI/ImZvY3VzIjoiYmx1ciIsSS5pc1NpbXVsYXRlZD0hMCxBKHgpLEkudGFyZ2V0PT09SS5jdXJyZW50VGFyZ2V0JiZBKEkpfWVsc2UgZi5ldmVudC5zaW11bGF0ZShkLHgudGFyZ2V0LGYuZXZlbnQuZml4KHgpKX1mLmV2ZW50LnNwZWNpYWxbYV09e3NldHVwOmZ1bmN0aW9uKCl7dmFyIHg7aWYoaHIodGhpcyxhLCEwKSxjLmRvY3VtZW50TW9kZSl4PW10LmdldCh0aGlzLGQpLHh8fHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihkLHYpLG10LnNldCh0aGlzLGQsKHh8fDApKzEpO2Vsc2UgcmV0dXJuITF9LHRyaWdnZXI6ZnVuY3Rpb24oKXtyZXR1cm4gaHIodGhpcyxhKSwhMH0sdGVhcmRvd246ZnVuY3Rpb24oKXt2YXIgeDtpZihjLmRvY3VtZW50TW9kZSl4PW10LmdldCh0aGlzLGQpLTEseD9tdC5zZXQodGhpcyxkLHgpOih0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZCx2KSxtdC5yZW1vdmUodGhpcyxkKSk7ZWxzZSByZXR1cm4hMX0sX2RlZmF1bHQ6ZnVuY3Rpb24oeCl7cmV0dXJuIG10LmdldCh4LnRhcmdldCxhKX0sZGVsZWdhdGVUeXBlOmR9LGYuZXZlbnQuc3BlY2lhbFtkXT17c2V0dXA6ZnVuY3Rpb24oKXt2YXIgeD10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMuZG9jdW1lbnR8fHRoaXMsQT1jLmRvY3VtZW50TW9kZT90aGlzOngsST1tdC5nZXQoQSxkKTtJfHwoYy5kb2N1bWVudE1vZGU/dGhpcy5hZGRFdmVudExpc3RlbmVyKGQsdik6eC5hZGRFdmVudExpc3RlbmVyKGEsdiwhMCkpLG10LnNldChBLGQsKEl8fDApKzEpfSx0ZWFyZG93bjpmdW5jdGlvbigpe3ZhciB4PXRoaXMub3duZXJEb2N1bWVudHx8dGhpcy5kb2N1bWVudHx8dGhpcyxBPWMuZG9jdW1lbnRNb2RlP3RoaXM6eCxJPW10LmdldChBLGQpLTE7ST9tdC5zZXQoQSxkLEkpOihjLmRvY3VtZW50TW9kZT90aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZCx2KTp4LnJlbW92ZUV2ZW50TGlzdGVuZXIoYSx2LCEwKSxtdC5yZW1vdmUoQSxkKSl9fX0pLGYuZWFjaCh7bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCIscG9pbnRlcmVudGVyOiJwb2ludGVyb3ZlciIscG9pbnRlcmxlYXZlOiJwb2ludGVyb3V0In0sZnVuY3Rpb24oYSxkKXtmLmV2ZW50LnNwZWNpYWxbYV09e2RlbGVnYXRlVHlwZTpkLGJpbmRUeXBlOmQsaGFuZGxlOmZ1bmN0aW9uKHYpe3ZhciB4LEE9dGhpcyxJPXYucmVsYXRlZFRhcmdldCxOPXYuaGFuZGxlT2JqO3JldHVybighSXx8SSE9PUEmJiFmLmNvbnRhaW5zKEEsSSkpJiYodi50eXBlPU4ub3JpZ1R5cGUseD1OLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHYudHlwZT1kKSx4fX19KSxmLmZuLmV4dGVuZCh7b246ZnVuY3Rpb24oYSxkLHYseCl7cmV0dXJuIFlyKHRoaXMsYSxkLHYseCl9LG9uZTpmdW5jdGlvbihhLGQsdix4KXtyZXR1cm4gWXIodGhpcyxhLGQsdix4LDEpfSxvZmY6ZnVuY3Rpb24oYSxkLHYpe3ZhciB4LEE7aWYoYSYmYS5wcmV2ZW50RGVmYXVsdCYmYS5oYW5kbGVPYmopcmV0dXJuIHg9YS5oYW5kbGVPYmosZihhLmRlbGVnYXRlVGFyZ2V0KS5vZmYoeC5uYW1lc3BhY2U/eC5vcmlnVHlwZSsiLiIreC5uYW1lc3BhY2U6eC5vcmlnVHlwZSx4LnNlbGVjdG9yLHguaGFuZGxlciksdGhpcztpZih0eXBlb2YgYT09Im9iamVjdCIpe2ZvcihBIGluIGEpdGhpcy5vZmYoQSxkLGFbQV0pO3JldHVybiB0aGlzfXJldHVybihkPT09ITF8fHR5cGVvZiBkPT0iZnVuY3Rpb24iKSYmKHY9ZCxkPXZvaWQgMCksdj09PSExJiYodj1TbiksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Zi5ldmVudC5yZW1vdmUodGhpcyxhLHYsZCl9KX19KTt2YXIgYW89LzxzY3JpcHR8PHN0eWxlfDxsaW5rL2ksc289L2NoZWNrZWRccyooPzpbXj1dfD1ccyouY2hlY2tlZC4pL2ksb289L15ccyo8IVxbQ0RBVEFcW3xcXVxdPlxzKiQvZztmdW5jdGlvbiBvYShhLGQpe3JldHVybiBYKGEsInRhYmxlIikmJlgoZC5ub2RlVHlwZSE9PTExP2Q6ZC5maXJzdENoaWxkLCJ0ciIpJiZmKGEpLmNoaWxkcmVuKCJ0Ym9keSIpWzBdfHxhfWZ1bmN0aW9uIGxvKGEpe3JldHVybiBhLnR5cGU9KGEuZ2V0QXR0cmlidXRlKCJ0eXBlIikhPT1udWxsKSsiLyIrYS50eXBlLGF9ZnVuY3Rpb24gdW8oYSl7cmV0dXJuKGEudHlwZXx8IiIpLnNsaWNlKDAsNSk9PT0idHJ1ZS8iP2EudHlwZT1hLnR5cGUuc2xpY2UoNSk6YS5yZW1vdmVBdHRyaWJ1dGUoInR5cGUiKSxhfWZ1bmN0aW9uIGxhKGEsZCl7dmFyIHYseCxBLEksTixZLFc7aWYoZC5ub2RlVHlwZT09PTEpe2lmKG10Lmhhc0RhdGEoYSkmJihJPW10LmdldChhKSxXPUkuZXZlbnRzLFcpKXttdC5yZW1vdmUoZCwiaGFuZGxlIGV2ZW50cyIpO2ZvcihBIGluIFcpZm9yKHY9MCx4PVdbQV0ubGVuZ3RoO3Y8eDt2KyspZi5ldmVudC5hZGQoZCxBLFdbQV1bdl0pfXp0Lmhhc0RhdGEoYSkmJihOPXp0LmFjY2VzcyhhKSxZPWYuZXh0ZW5kKHt9LE4pLHp0LnNldChkLFkpKX19ZnVuY3Rpb24gY28oYSxkKXt2YXIgdj1kLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7dj09PSJpbnB1dCImJldlLnRlc3QoYS50eXBlKT9kLmNoZWNrZWQ9YS5jaGVja2VkOih2PT09ImlucHV0Inx8dj09PSJ0ZXh0YXJlYSIpJiYoZC5kZWZhdWx0VmFsdWU9YS5kZWZhdWx0VmFsdWUpfWZ1bmN0aW9uIERuKGEsZCx2LHgpe2Q9aShkKTt2YXIgQSxJLE4sWSxXLEosZHQ9MCxmdD1hLmxlbmd0aCxzdD1mdC0xLHl0PWRbMF0sT3Q9VCh5dCk7aWYoT3R8fGZ0PjEmJnR5cGVvZiB5dD09InN0cmluZyImJiF5LmNoZWNrQ2xvbmUmJnNvLnRlc3QoeXQpKXJldHVybiBhLmVhY2goZnVuY3Rpb24oWHQpe3ZhciBWdD1hLmVxKFh0KTtPdCYmKGRbMF09eXQuY2FsbCh0aGlzLFh0LFZ0Lmh0bWwoKSkpLERuKFZ0LGQsdix4KX0pO2lmKGZ0JiYoQT1hYShkLGFbMF0ub3duZXJEb2N1bWVudCwhMSxhLHgpLEk9QS5maXJzdENoaWxkLEEuY2hpbGROb2Rlcy5sZW5ndGg9PT0xJiYoQT1JKSxJfHx4KSl7Zm9yKE49Zi5tYXAoeWUoQSwic2NyaXB0IiksbG8pLFk9Ti5sZW5ndGg7ZHQ8ZnQ7ZHQrKylXPUEsZHQhPT1zdCYmKFc9Zi5jbG9uZShXLCEwLCEwKSxZJiZmLm1lcmdlKE4seWUoVywic2NyaXB0IikpKSx2LmNhbGwoYVtkdF0sVyxkdCk7aWYoWSlmb3IoSj1OW04ubGVuZ3RoLTFdLm93bmVyRG9jdW1lbnQsZi5tYXAoTix1byksZHQ9MDtkdDxZO2R0KyspVz1OW2R0XSxpYS50ZXN0KFcudHlwZXx8IiIpJiYhbXQuYWNjZXNzKFcsImdsb2JhbEV2YWwiKSYmZi5jb250YWlucyhKLFcpJiYoVy5zcmMmJihXLnR5cGV8fCIiKS50b0xvd2VyQ2FzZSgpIT09Im1vZHVsZSI/Zi5fZXZhbFVybCYmIVcubm9Nb2R1bGUmJmYuX2V2YWxVcmwoVy5zcmMse25vbmNlOlcubm9uY2V8fFcuZ2V0QXR0cmlidXRlKCJub25jZSIpfSxKKTpoKFcudGV4dENvbnRlbnQucmVwbGFjZShvbywiIiksVyxKKSl9cmV0dXJuIGF9ZnVuY3Rpb24gZGEoYSxkLHYpe2Zvcih2YXIgeCxBPWQ/Zi5maWx0ZXIoZCxhKTphLEk9MDsoeD1BW0ldKSE9bnVsbDtJKyspIXYmJngubm9kZVR5cGU9PT0xJiZmLmNsZWFuRGF0YSh5ZSh4KSkseC5wYXJlbnROb2RlJiYodiYmZmUoeCkmJlhyKHllKHgsInNjcmlwdCIpKSx4LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoeCkpO3JldHVybiBhfWYuZXh0ZW5kKHtodG1sUHJlZmlsdGVyOmZ1bmN0aW9uKGEpe3JldHVybiBhfSxjbG9uZTpmdW5jdGlvbihhLGQsdil7dmFyIHgsQSxJLE4sWT1hLmNsb25lTm9kZSghMCksVz1mZShhKTtpZigheS5ub0Nsb25lQ2hlY2tlZCYmKGEubm9kZVR5cGU9PT0xfHxhLm5vZGVUeXBlPT09MTEpJiYhZi5pc1hNTERvYyhhKSlmb3IoTj15ZShZKSxJPXllKGEpLHg9MCxBPUkubGVuZ3RoO3g8QTt4KyspY28oSVt4XSxOW3hdKTtpZihkKWlmKHYpZm9yKEk9SXx8eWUoYSksTj1OfHx5ZShZKSx4PTAsQT1JLmxlbmd0aDt4PEE7eCsrKWxhKElbeF0sTlt4XSk7ZWxzZSBsYShhLFkpO3JldHVybiBOPXllKFksInNjcmlwdCIpLE4ubGVuZ3RoPjAmJlhyKE4sIVcmJnllKGEsInNjcmlwdCIpKSxZfSxjbGVhbkRhdGE6ZnVuY3Rpb24oYSl7Zm9yKHZhciBkLHYseCxBPWYuZXZlbnQuc3BlY2lhbCxJPTA7KHY9YVtJXSkhPT12b2lkIDA7SSsrKWlmKEN0KHYpKXtpZihkPXZbbXQuZXhwYW5kb10pe2lmKGQuZXZlbnRzKWZvcih4IGluIGQuZXZlbnRzKUFbeF0/Zi5ldmVudC5yZW1vdmUodix4KTpmLnJlbW92ZUV2ZW50KHYseCxkLmhhbmRsZSk7dlttdC5leHBhbmRvXT12b2lkIDB9dlt6dC5leHBhbmRvXSYmKHZbenQuZXhwYW5kb109dm9pZCAwKX19fSksZi5mbi5leHRlbmQoe2RldGFjaDpmdW5jdGlvbihhKXtyZXR1cm4gZGEodGhpcyxhLCEwKX0scmVtb3ZlOmZ1bmN0aW9uKGEpe3JldHVybiBkYSh0aGlzLGEpfSx0ZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBLKHRoaXMsZnVuY3Rpb24oZCl7cmV0dXJuIGQ9PT12b2lkIDA/Zi50ZXh0KHRoaXMpOnRoaXMuZW1wdHkoKS5lYWNoKGZ1bmN0aW9uKCl7KHRoaXMubm9kZVR5cGU9PT0xfHx0aGlzLm5vZGVUeXBlPT09MTF8fHRoaXMubm9kZVR5cGU9PT05KSYmKHRoaXMudGV4dENvbnRlbnQ9ZCl9KX0sbnVsbCxhLGFyZ3VtZW50cy5sZW5ndGgpfSxhcHBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gRG4odGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7aWYodGhpcy5ub2RlVHlwZT09PTF8fHRoaXMubm9kZVR5cGU9PT0xMXx8dGhpcy5ub2RlVHlwZT09PTkpe3ZhciBkPW9hKHRoaXMsYSk7ZC5hcHBlbmRDaGlsZChhKX19KX0scHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiBEbih0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihhKXtpZih0aGlzLm5vZGVUeXBlPT09MXx8dGhpcy5ub2RlVHlwZT09PTExfHx0aGlzLm5vZGVUeXBlPT09OSl7dmFyIGQ9b2EodGhpcyxhKTtkLmluc2VydEJlZm9yZShhLGQuZmlyc3RDaGlsZCl9fSl9LGJlZm9yZTpmdW5jdGlvbigpe3JldHVybiBEbih0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihhKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSx0aGlzKX0pfSxhZnRlcjpmdW5jdGlvbigpe3JldHVybiBEbih0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihhKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSx0aGlzLm5leHRTaWJsaW5nKX0pfSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgYSxkPTA7KGE9dGhpc1tkXSkhPW51bGw7ZCsrKWEubm9kZVR5cGU9PT0xJiYoZi5jbGVhbkRhdGEoeWUoYSwhMSkpLGEudGV4dENvbnRlbnQ9IiIpO3JldHVybiB0aGlzfSxjbG9uZTpmdW5jdGlvbihhLGQpe3JldHVybiBhPWE/PyExLGQ9ZD8/YSx0aGlzLm1hcChmdW5jdGlvbigpe3JldHVybiBmLmNsb25lKHRoaXMsYSxkKX0pfSxodG1sOmZ1bmN0aW9uKGEpe3JldHVybiBLKHRoaXMsZnVuY3Rpb24oZCl7dmFyIHY9dGhpc1swXXx8e30seD0wLEE9dGhpcy5sZW5ndGg7aWYoZD09PXZvaWQgMCYmdi5ub2RlVHlwZT09PTEpcmV0dXJuIHYuaW5uZXJIVE1MO2lmKHR5cGVvZiBkPT0ic3RyaW5nIiYmIWFvLnRlc3QoZCkmJiFJZVsocmEuZXhlYyhkKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKV0pe2Q9Zi5odG1sUHJlZmlsdGVyKGQpO3RyeXtmb3IoO3g8QTt4Kyspdj10aGlzW3hdfHx7fSx2Lm5vZGVUeXBlPT09MSYmKGYuY2xlYW5EYXRhKHllKHYsITEpKSx2LmlubmVySFRNTD1kKTt2PTB9Y2F0Y2h7fX12JiZ0aGlzLmVtcHR5KCkuYXBwZW5kKGQpfSxudWxsLGEsYXJndW1lbnRzLmxlbmd0aCl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKCl7dmFyIGE9W107cmV0dXJuIERuKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGQpe3ZhciB2PXRoaXMucGFyZW50Tm9kZTtmLmluQXJyYXkodGhpcyxhKTwwJiYoZi5jbGVhbkRhdGEoeWUodGhpcykpLHYmJnYucmVwbGFjZUNoaWxkKGQsdGhpcykpfSxhKX19KSxmLmVhY2goe2FwcGVuZFRvOiJhcHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFmdGVyOiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihhLGQpe2YuZm5bYV09ZnVuY3Rpb24odil7Zm9yKHZhciB4LEE9W10sST1mKHYpLE49SS5sZW5ndGgtMSxZPTA7WTw9TjtZKyspeD1ZPT09Tj90aGlzOnRoaXMuY2xvbmUoITApLGYoSVtZXSlbZF0oeCksby5hcHBseShBLHguZ2V0KCkpO3JldHVybiB0aGlzLnB1c2hTdGFjayhBKX19KTt2YXIgJHI9bmV3IFJlZ0V4cCgiXigiK3RuKyIpKD8hcHgpW2EteiVdKyQiLCJpIiksWnI9L14tLS8scHI9ZnVuY3Rpb24oYSl7dmFyIGQ9YS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3O3JldHVybighZHx8IWQub3BlbmVyKSYmKGQ9dCksZC5nZXRDb21wdXRlZFN0eWxlKGEpfSx1YT1mdW5jdGlvbihhLGQsdil7dmFyIHgsQSxJPXt9O2ZvcihBIGluIGQpSVtBXT1hLnN0eWxlW0FdLGEuc3R5bGVbQV09ZFtBXTt4PXYuY2FsbChhKTtmb3IoQSBpbiBkKWEuc3R5bGVbQV09SVtBXTtyZXR1cm4geH0sZm89bmV3IFJlZ0V4cChnZS5qb2luKCJ8IiksImkiKTsoZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7aWYoSil7Vy5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMTExMXB4O3dpZHRoOjYwcHg7bWFyZ2luLXRvcDoxcHg7cGFkZGluZzowO2JvcmRlcjowIixKLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OnNjcm9sbDttYXJnaW46YXV0bztib3JkZXI6MXB4O3BhZGRpbmc6MXB4O3dpZHRoOjYwJTt0b3A6MSUiLGplLmFwcGVuZENoaWxkKFcpLmFwcGVuZENoaWxkKEopO3ZhciBkdD10LmdldENvbXB1dGVkU3R5bGUoSik7dj1kdC50b3AhPT0iMSUiLFk9ZChkdC5tYXJnaW5MZWZ0KT09PTEyLEouc3R5bGUucmlnaHQ9IjYwJSIsST1kKGR0LnJpZ2h0KT09PTM2LHg9ZChkdC53aWR0aCk9PT0zNixKLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsQT1kKEoub2Zmc2V0V2lkdGgvMyk9PT0xMixqZS5yZW1vdmVDaGlsZChXKSxKPW51bGx9fWZ1bmN0aW9uIGQoZHQpe3JldHVybiBNYXRoLnJvdW5kKHBhcnNlRmxvYXQoZHQpKX12YXIgdix4LEEsSSxOLFksVz1jLmNyZWF0ZUVsZW1lbnQoImRpdiIpLEo9Yy5jcmVhdGVFbGVtZW50KCJkaXYiKTtKLnN0eWxlJiYoSi5zdHlsZS5iYWNrZ3JvdW5kQ2xpcD0iY29udGVudC1ib3giLEouY2xvbmVOb2RlKCEwKS5zdHlsZS5iYWNrZ3JvdW5kQ2xpcD0iIix5LmNsZWFyQ2xvbmVTdHlsZT1KLnN0eWxlLmJhY2tncm91bmRDbGlwPT09ImNvbnRlbnQtYm94IixmLmV4dGVuZCh5LHtib3hTaXppbmdSZWxpYWJsZTpmdW5jdGlvbigpe3JldHVybiBhKCkseH0scGl4ZWxCb3hTdHlsZXM6ZnVuY3Rpb24oKXtyZXR1cm4gYSgpLEl9LHBpeGVsUG9zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gYSgpLHZ9LHJlbGlhYmxlTWFyZ2luTGVmdDpmdW5jdGlvbigpe3JldHVybiBhKCksWX0sc2Nyb2xsYm94U2l6ZTpmdW5jdGlvbigpe3JldHVybiBhKCksQX0scmVsaWFibGVUckRpbWVuc2lvbnM6ZnVuY3Rpb24oKXt2YXIgZHQsZnQsc3QseXQ7cmV0dXJuIE49PW51bGwmJihkdD1jLmNyZWF0ZUVsZW1lbnQoInRhYmxlIiksZnQ9Yy5jcmVhdGVFbGVtZW50KCJ0ciIpLHN0PWMuY3JlYXRlRWxlbWVudCgiZGl2IiksZHQuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7bGVmdDotMTExMTFweDtib3JkZXItY29sbGFwc2U6c2VwYXJhdGUiLGZ0LnN0eWxlLmNzc1RleHQ9ImJveC1zaXppbmc6Y29udGVudC1ib3g7Ym9yZGVyOjFweCBzb2xpZCIsZnQuc3R5bGUuaGVpZ2h0PSIxcHgiLHN0LnN0eWxlLmhlaWdodD0iOXB4IixzdC5zdHlsZS5kaXNwbGF5PSJibG9jayIsamUuYXBwZW5kQ2hpbGQoZHQpLmFwcGVuZENoaWxkKGZ0KS5hcHBlbmRDaGlsZChzdCkseXQ9dC5nZXRDb21wdXRlZFN0eWxlKGZ0KSxOPXBhcnNlSW50KHl0LmhlaWdodCwxMCkrcGFyc2VJbnQoeXQuYm9yZGVyVG9wV2lkdGgsMTApK3BhcnNlSW50KHl0LmJvcmRlckJvdHRvbVdpZHRoLDEwKT09PWZ0Lm9mZnNldEhlaWdodCxqZS5yZW1vdmVDaGlsZChkdCkpLE59fSkpfSkoKTtmdW5jdGlvbiBVbihhLGQsdil7dmFyIHgsQSxJLE4sWT1aci50ZXN0KGQpLFc9YS5zdHlsZTtyZXR1cm4gdj12fHxwcihhKSx2JiYoTj12LmdldFByb3BlcnR5VmFsdWUoZCl8fHZbZF0sWSYmTiYmKE49Ti5yZXBsYWNlKGssIiQxIil8fHZvaWQgMCksTj09PSIiJiYhZmUoYSkmJihOPWYuc3R5bGUoYSxkKSksIXkucGl4ZWxCb3hTdHlsZXMoKSYmJHIudGVzdChOKSYmZm8udGVzdChkKSYmKHg9Vy53aWR0aCxBPVcubWluV2lkdGgsST1XLm1heFdpZHRoLFcubWluV2lkdGg9Vy5tYXhXaWR0aD1XLndpZHRoPU4sTj12LndpZHRoLFcud2lkdGg9eCxXLm1pbldpZHRoPUEsVy5tYXhXaWR0aD1JKSksTiE9PXZvaWQgMD9OKyIiOk59ZnVuY3Rpb24gY2EoYSxkKXtyZXR1cm57Z2V0OmZ1bmN0aW9uKCl7aWYoYSgpKXtkZWxldGUgdGhpcy5nZXQ7cmV0dXJufXJldHVybih0aGlzLmdldD1kKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fX12YXIgZmE9WyJXZWJraXQiLCJNb3oiLCJtcyJdLGhhPWMuY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGUscGE9e307ZnVuY3Rpb24gaG8oYSl7Zm9yKHZhciBkPWFbMF0udG9VcHBlckNhc2UoKSthLnNsaWNlKDEpLHY9ZmEubGVuZ3RoO3YtLTspaWYoYT1mYVt2XStkLGEgaW4gaGEpcmV0dXJuIGF9ZnVuY3Rpb24gS3IoYSl7dmFyIGQ9Zi5jc3NQcm9wc1thXXx8cGFbYV07cmV0dXJuIGR8fChhIGluIGhhP2E6cGFbYV09aG8oYSl8fGEpfXZhciBwbz0vXihub25lfHRhYmxlKD8hLWNbZWFdKS4rKS8sYm89e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdmlzaWJpbGl0eToiaGlkZGVuIixkaXNwbGF5OiJibG9jayJ9LGJhPXtsZXR0ZXJTcGFjaW5nOiIwIixmb250V2VpZ2h0OiI0MDAifTtmdW5jdGlvbiBtYShhLGQsdil7dmFyIHg9ZWUuZXhlYyhkKTtyZXR1cm4geD9NYXRoLm1heCgwLHhbMl0tKHZ8fDApKSsoeFszXXx8InB4Iik6ZH1mdW5jdGlvbiBKcihhLGQsdix4LEEsSSl7dmFyIE49ZD09PSJ3aWR0aCI/MTowLFk9MCxXPTAsSj0wO2lmKHY9PT0oeD8iYm9yZGVyIjoiY29udGVudCIpKXJldHVybiAwO2Zvcig7Tjw0O04rPTIpdj09PSJtYXJnaW4iJiYoSis9Zi5jc3MoYSx2K2dlW05dLCEwLEEpKSx4Pyh2PT09ImNvbnRlbnQiJiYoVy09Zi5jc3MoYSwicGFkZGluZyIrZ2VbTl0sITAsQSkpLHYhPT0ibWFyZ2luIiYmKFctPWYuY3NzKGEsImJvcmRlciIrZ2VbTl0rIldpZHRoIiwhMCxBKSkpOihXKz1mLmNzcyhhLCJwYWRkaW5nIitnZVtOXSwhMCxBKSx2IT09InBhZGRpbmciP1crPWYuY3NzKGEsImJvcmRlciIrZ2VbTl0rIldpZHRoIiwhMCxBKTpZKz1mLmNzcyhhLCJib3JkZXIiK2dlW05dKyJXaWR0aCIsITAsQSkpO3JldHVybiF4JiZJPj0wJiYoVys9TWF0aC5tYXgoMCxNYXRoLmNlaWwoYVsib2Zmc2V0IitkWzBdLnRvVXBwZXJDYXNlKCkrZC5zbGljZSgxKV0tSS1XLVktLjUpKXx8MCksVytKfWZ1bmN0aW9uIHZhKGEsZCx2KXt2YXIgeD1wcihhKSxBPSF5LmJveFNpemluZ1JlbGlhYmxlKCl8fHYsST1BJiZmLmNzcyhhLCJib3hTaXppbmciLCExLHgpPT09ImJvcmRlci1ib3giLE49SSxZPVVuKGEsZCx4KSxXPSJvZmZzZXQiK2RbMF0udG9VcHBlckNhc2UoKStkLnNsaWNlKDEpO2lmKCRyLnRlc3QoWSkpe2lmKCF2KXJldHVybiBZO1k9ImF1dG8ifXJldHVybigheS5ib3hTaXppbmdSZWxpYWJsZSgpJiZJfHwheS5yZWxpYWJsZVRyRGltZW5zaW9ucygpJiZYKGEsInRyIil8fFk9PT0iYXV0byJ8fCFwYXJzZUZsb2F0KFkpJiZmLmNzcyhhLCJkaXNwbGF5IiwhMSx4KT09PSJpbmxpbmUiKSYmYS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCYmKEk9Zi5jc3MoYSwiYm94U2l6aW5nIiwhMSx4KT09PSJib3JkZXItYm94IixOPVcgaW4gYSxOJiYoWT1hW1ddKSksWT1wYXJzZUZsb2F0KFkpfHwwLFkrSnIoYSxkLHZ8fChJPyJib3JkZXIiOiJjb250ZW50IiksTix4LFkpKyJweCJ9Zi5leHRlbmQoe2Nzc0hvb2tzOntvcGFjaXR5OntnZXQ6ZnVuY3Rpb24oYSxkKXtpZihkKXt2YXIgdj1VbihhLCJvcGFjaXR5Iik7cmV0dXJuIHY9PT0iIj8iMSI6dn19fX0sY3NzTnVtYmVyOnthbmltYXRpb25JdGVyYXRpb25Db3VudDohMCxhc3BlY3RSYXRpbzohMCxib3JkZXJJbWFnZVNsaWNlOiEwLGNvbHVtbkNvdW50OiEwLGZsZXhHcm93OiEwLGZsZXhTaHJpbms6ITAsZm9udFdlaWdodDohMCxncmlkQXJlYTohMCxncmlkQ29sdW1uOiEwLGdyaWRDb2x1bW5FbmQ6ITAsZ3JpZENvbHVtblN0YXJ0OiEwLGdyaWRSb3c6ITAsZ3JpZFJvd0VuZDohMCxncmlkUm93U3RhcnQ6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsc2NhbGU6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwLGZpbGxPcGFjaXR5OiEwLGZsb29kT3BhY2l0eTohMCxzdG9wT3BhY2l0eTohMCxzdHJva2VNaXRlcmxpbWl0OiEwLHN0cm9rZU9wYWNpdHk6ITB9LGNzc1Byb3BzOnt9LHN0eWxlOmZ1bmN0aW9uKGEsZCx2LHgpe2lmKCEoIWF8fGEubm9kZVR5cGU9PT0zfHxhLm5vZGVUeXBlPT09OHx8IWEuc3R5bGUpKXt2YXIgQSxJLE4sWT1ndChkKSxXPVpyLnRlc3QoZCksSj1hLnN0eWxlO2lmKFd8fChkPUtyKFkpKSxOPWYuY3NzSG9va3NbZF18fGYuY3NzSG9va3NbWV0sdiE9PXZvaWQgMCl7aWYoST10eXBlb2YgdixJPT09InN0cmluZyImJihBPWVlLmV4ZWModikpJiZBWzFdJiYodj11cihhLGQsQSksST0ibnVtYmVyIiksdj09bnVsbHx8diE9PXYpcmV0dXJuO0k9PT0ibnVtYmVyIiYmIVcmJih2Kz1BJiZBWzNdfHwoZi5jc3NOdW1iZXJbWV0/IiI6InB4IikpLCF5LmNsZWFyQ2xvbmVTdHlsZSYmdj09PSIiJiZkLmluZGV4T2YoImJhY2tncm91bmQiKT09PTAmJihKW2RdPSJpbmhlcml0IiksKCFOfHwhKCJzZXQiaW4gTil8fCh2PU4uc2V0KGEsdix4KSkhPT12b2lkIDApJiYoVz9KLnNldFByb3BlcnR5KGQsdik6SltkXT12KX1lbHNlIHJldHVybiBOJiYiZ2V0ImluIE4mJihBPU4uZ2V0KGEsITEseCkpIT09dm9pZCAwP0E6SltkXX19LGNzczpmdW5jdGlvbihhLGQsdix4KXt2YXIgQSxJLE4sWT1ndChkKSxXPVpyLnRlc3QoZCk7cmV0dXJuIFd8fChkPUtyKFkpKSxOPWYuY3NzSG9va3NbZF18fGYuY3NzSG9va3NbWV0sTiYmImdldCJpbiBOJiYoQT1OLmdldChhLCEwLHYpKSxBPT09dm9pZCAwJiYoQT1VbihhLGQseCkpLEE9PT0ibm9ybWFsIiYmZCBpbiBiYSYmKEE9YmFbZF0pLHY9PT0iInx8dj8oST1wYXJzZUZsb2F0KEEpLHY9PT0hMHx8aXNGaW5pdGUoSSk/SXx8MDpBKTpBfX0pLGYuZWFjaChbImhlaWdodCIsIndpZHRoIl0sZnVuY3Rpb24oYSxkKXtmLmNzc0hvb2tzW2RdPXtnZXQ6ZnVuY3Rpb24odix4LEEpe2lmKHgpcmV0dXJuIHBvLnRlc3QoZi5jc3ModiwiZGlzcGxheSIpKSYmKCF2LmdldENsaWVudFJlY3RzKCkubGVuZ3RofHwhdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCk/dWEodixibyxmdW5jdGlvbigpe3JldHVybiB2YSh2LGQsQSl9KTp2YSh2LGQsQSl9LHNldDpmdW5jdGlvbih2LHgsQSl7dmFyIEksTj1wcih2KSxZPSF5LnNjcm9sbGJveFNpemUoKSYmTi5wb3NpdGlvbj09PSJhYnNvbHV0ZSIsVz1ZfHxBLEo9VyYmZi5jc3ModiwiYm94U2l6aW5nIiwhMSxOKT09PSJib3JkZXItYm94IixkdD1BP0pyKHYsZCxBLEosTik6MDtyZXR1cm4gSiYmWSYmKGR0LT1NYXRoLmNlaWwodlsib2Zmc2V0IitkWzBdLnRvVXBwZXJDYXNlKCkrZC5zbGljZSgxKV0tcGFyc2VGbG9hdChOW2RdKS1Kcih2LGQsImJvcmRlciIsITEsTiktLjUpKSxkdCYmKEk9ZWUuZXhlYyh4KSkmJihJWzNdfHwicHgiKSE9PSJweCImJih2LnN0eWxlW2RdPXgseD1mLmNzcyh2LGQpKSxtYSh2LHgsZHQpfX19KSxmLmNzc0hvb2tzLm1hcmdpbkxlZnQ9Y2EoeS5yZWxpYWJsZU1hcmdpbkxlZnQsZnVuY3Rpb24oYSxkKXtpZihkKXJldHVybihwYXJzZUZsb2F0KFVuKGEsIm1hcmdpbkxlZnQiKSl8fGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdC11YShhLHttYXJnaW5MZWZ0OjB9LGZ1bmN0aW9uKCl7cmV0dXJuIGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdH0pKSsicHgifSksZi5lYWNoKHttYXJnaW46IiIscGFkZGluZzoiIixib3JkZXI6IldpZHRoIn0sZnVuY3Rpb24oYSxkKXtmLmNzc0hvb2tzW2ErZF09e2V4cGFuZDpmdW5jdGlvbih2KXtmb3IodmFyIHg9MCxBPXt9LEk9dHlwZW9mIHY9PSJzdHJpbmciP3Yuc3BsaXQoIiAiKTpbdl07eDw0O3grKylBW2ErZ2VbeF0rZF09SVt4XXx8SVt4LTJdfHxJWzBdO3JldHVybiBBfX0sYSE9PSJtYXJnaW4iJiYoZi5jc3NIb29rc1thK2RdLnNldD1tYSl9KSxmLmZuLmV4dGVuZCh7Y3NzOmZ1bmN0aW9uKGEsZCl7cmV0dXJuIEsodGhpcyxmdW5jdGlvbih2LHgsQSl7dmFyIEksTixZPXt9LFc9MDtpZihBcnJheS5pc0FycmF5KHgpKXtmb3IoST1wcih2KSxOPXgubGVuZ3RoO1c8TjtXKyspWVt4W1ddXT1mLmNzcyh2LHhbV10sITEsSSk7cmV0dXJuIFl9cmV0dXJuIEEhPT12b2lkIDA/Zi5zdHlsZSh2LHgsQSk6Zi5jc3Modix4KX0sYSxkLGFyZ3VtZW50cy5sZW5ndGg+MSl9fSk7ZnVuY3Rpb24gd2UoYSxkLHYseCxBKXtyZXR1cm4gbmV3IHdlLnByb3RvdHlwZS5pbml0KGEsZCx2LHgsQSl9Zi5Ud2Vlbj13ZSx3ZS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOndlLGluaXQ6ZnVuY3Rpb24oYSxkLHYseCxBLEkpe3RoaXMuZWxlbT1hLHRoaXMucHJvcD12LHRoaXMuZWFzaW5nPUF8fGYuZWFzaW5nLl9kZWZhdWx0LHRoaXMub3B0aW9ucz1kLHRoaXMuc3RhcnQ9dGhpcy5ub3c9dGhpcy5jdXIoKSx0aGlzLmVuZD14LHRoaXMudW5pdD1JfHwoZi5jc3NOdW1iZXJbdl0/IiI6InB4Iil9LGN1cjpmdW5jdGlvbigpe3ZhciBhPXdlLnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiBhJiZhLmdldD9hLmdldCh0aGlzKTp3ZS5wcm9wSG9va3MuX2RlZmF1bHQuZ2V0KHRoaXMpfSxydW46ZnVuY3Rpb24oYSl7dmFyIGQsdj13ZS5wcm9wSG9va3NbdGhpcy5wcm9wXTtyZXR1cm4gdGhpcy5vcHRpb25zLmR1cmF0aW9uP3RoaXMucG9zPWQ9Zi5lYXNpbmdbdGhpcy5lYXNpbmddKGEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKmEsMCwxLHRoaXMub3B0aW9ucy5kdXJhdGlvbik6dGhpcy5wb3M9ZD1hLHRoaXMubm93PSh0aGlzLmVuZC10aGlzLnN0YXJ0KSpkK3RoaXMuc3RhcnQsdGhpcy5vcHRpb25zLnN0ZXAmJnRoaXMub3B0aW9ucy5zdGVwLmNhbGwodGhpcy5lbGVtLHRoaXMubm93LHRoaXMpLHYmJnYuc2V0P3Yuc2V0KHRoaXMpOndlLnByb3BIb29rcy5fZGVmYXVsdC5zZXQodGhpcyksdGhpc319LHdlLnByb3RvdHlwZS5pbml0LnByb3RvdHlwZT13ZS5wcm90b3R5cGUsd2UucHJvcEhvb2tzPXtfZGVmYXVsdDp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBkO3JldHVybiBhLmVsZW0ubm9kZVR5cGUhPT0xfHxhLmVsZW1bYS5wcm9wXSE9bnVsbCYmYS5lbGVtLnN0eWxlW2EucHJvcF09PW51bGw/YS5lbGVtW2EucHJvcF06KGQ9Zi5jc3MoYS5lbGVtLGEucHJvcCwiIiksIWR8fGQ9PT0iYXV0byI/MDpkKX0sc2V0OmZ1bmN0aW9uKGEpe2YuZnguc3RlcFthLnByb3BdP2YuZnguc3RlcFthLnByb3BdKGEpOmEuZWxlbS5ub2RlVHlwZT09PTEmJihmLmNzc0hvb2tzW2EucHJvcF18fGEuZWxlbS5zdHlsZVtLcihhLnByb3ApXSE9bnVsbCk/Zi5zdHlsZShhLmVsZW0sYS5wcm9wLGEubm93K2EudW5pdCk6YS5lbGVtW2EucHJvcF09YS5ub3d9fX0sd2UucHJvcEhvb2tzLnNjcm9sbFRvcD13ZS5wcm9wSG9va3Muc2Nyb2xsTGVmdD17c2V0OmZ1bmN0aW9uKGEpe2EuZWxlbS5ub2RlVHlwZSYmYS5lbGVtLnBhcmVudE5vZGUmJihhLmVsZW1bYS5wcm9wXT1hLm5vdyl9fSxmLmVhc2luZz17bGluZWFyOmZ1bmN0aW9uKGEpe3JldHVybiBhfSxzd2luZzpmdW5jdGlvbihhKXtyZXR1cm4gLjUtTWF0aC5jb3MoYSpNYXRoLlBJKS8yfSxfZGVmYXVsdDoic3dpbmcifSxmLmZ4PXdlLnByb3RvdHlwZS5pbml0LGYuZnguc3RlcD17fTt2YXIgQW4sYnIsbW89L14oPzp0b2dnbGV8c2hvd3xoaWRlKSQvLHZvPS9xdWV1ZUhvb2tzJC87ZnVuY3Rpb24gUXIoKXticiYmKGMuaGlkZGVuPT09ITEmJnQucmVxdWVzdEFuaW1hdGlvbkZyYW1lP3QucmVxdWVzdEFuaW1hdGlvbkZyYW1lKFFyKTp0LnNldFRpbWVvdXQoUXIsZi5meC5pbnRlcnZhbCksZi5meC50aWNrKCkpfWZ1bmN0aW9uIGdhKCl7cmV0dXJuIHQuc2V0VGltZW91dChmdW5jdGlvbigpe0FuPXZvaWQgMH0pLEFuPURhdGUubm93KCl9ZnVuY3Rpb24gbXIoYSxkKXt2YXIgdix4PTAsQT17aGVpZ2h0OmF9O2ZvcihkPWQ/MTowO3g8NDt4Kz0yLWQpdj1nZVt4XSxBWyJtYXJnaW4iK3ZdPUFbInBhZGRpbmciK3ZdPWE7cmV0dXJuIGQmJihBLm9wYWNpdHk9QS53aWR0aD1hKSxBfWZ1bmN0aW9uIHlhKGEsZCx2KXtmb3IodmFyIHgsQT0oTWUudHdlZW5lcnNbZF18fFtdKS5jb25jYXQoTWUudHdlZW5lcnNbIioiXSksST0wLE49QS5sZW5ndGg7STxOO0krKylpZih4PUFbSV0uY2FsbCh2LGQsYSkpcmV0dXJuIHh9ZnVuY3Rpb24gZ28oYSxkLHYpe3ZhciB4LEEsSSxOLFksVyxKLGR0LGZ0PSJ3aWR0aCJpbiBkfHwiaGVpZ2h0ImluIGQsc3Q9dGhpcyx5dD17fSxPdD1hLnN0eWxlLFh0PWEubm9kZVR5cGUmJlRuKGEpLFZ0PW10LmdldChhLCJmeHNob3ciKTt2LnF1ZXVlfHwoTj1mLl9xdWV1ZUhvb2tzKGEsImZ4IiksTi51bnF1ZXVlZD09bnVsbCYmKE4udW5xdWV1ZWQ9MCxZPU4uZW1wdHkuZmlyZSxOLmVtcHR5LmZpcmU9ZnVuY3Rpb24oKXtOLnVucXVldWVkfHxZKCl9KSxOLnVucXVldWVkKyssc3QuYWx3YXlzKGZ1bmN0aW9uKCl7c3QuYWx3YXlzKGZ1bmN0aW9uKCl7Ti51bnF1ZXVlZC0tLGYucXVldWUoYSwiZngiKS5sZW5ndGh8fE4uZW1wdHkuZmlyZSgpfSl9KSk7Zm9yKHggaW4gZClpZihBPWRbeF0sbW8udGVzdChBKSl7aWYoZGVsZXRlIGRbeF0sST1JfHxBPT09InRvZ2dsZSIsQT09PShYdD8iaGlkZSI6InNob3ciKSlpZihBPT09InNob3ciJiZWdCYmVnRbeF0hPT12b2lkIDApWHQ9ITA7ZWxzZSBjb250aW51ZTt5dFt4XT1WdCYmVnRbeF18fGYuc3R5bGUoYSx4KX1pZihXPSFmLmlzRW1wdHlPYmplY3QoZCksISghVyYmZi5pc0VtcHR5T2JqZWN0KHl0KSkpe2Z0JiZhLm5vZGVUeXBlPT09MSYmKHYub3ZlcmZsb3c9W090Lm92ZXJmbG93LE90Lm92ZXJmbG93WCxPdC5vdmVyZmxvd1ldLEo9VnQmJlZ0LmRpc3BsYXksSj09bnVsbCYmKEo9bXQuZ2V0KGEsImRpc3BsYXkiKSksZHQ9Zi5jc3MoYSwiZGlzcGxheSIpLGR0PT09Im5vbmUiJiYoSj9kdD1KOihBZShbYV0sITApLEo9YS5zdHlsZS5kaXNwbGF5fHxKLGR0PWYuY3NzKGEsImRpc3BsYXkiKSxBZShbYV0pKSksKGR0PT09ImlubGluZSJ8fGR0PT09ImlubGluZS1ibG9jayImJkohPW51bGwpJiZmLmNzcyhhLCJmbG9hdCIpPT09Im5vbmUiJiYoV3x8KHN0LmRvbmUoZnVuY3Rpb24oKXtPdC5kaXNwbGF5PUp9KSxKPT1udWxsJiYoZHQ9T3QuZGlzcGxheSxKPWR0PT09Im5vbmUiPyIiOmR0KSksT3QuZGlzcGxheT0iaW5saW5lLWJsb2NrIikpLHYub3ZlcmZsb3cmJihPdC5vdmVyZmxvdz0iaGlkZGVuIixzdC5hbHdheXMoZnVuY3Rpb24oKXtPdC5vdmVyZmxvdz12Lm92ZXJmbG93WzBdLE90Lm92ZXJmbG93WD12Lm92ZXJmbG93WzFdLE90Lm92ZXJmbG93WT12Lm92ZXJmbG93WzJdfSkpLFc9ITE7Zm9yKHggaW4geXQpV3x8KFZ0PyJoaWRkZW4iaW4gVnQmJihYdD1WdC5oaWRkZW4pOlZ0PW10LmFjY2VzcyhhLCJmeHNob3ciLHtkaXNwbGF5Okp9KSxJJiYoVnQuaGlkZGVuPSFYdCksWHQmJkFlKFthXSwhMCksc3QuZG9uZShmdW5jdGlvbigpe1h0fHxBZShbYV0pLG10LnJlbW92ZShhLCJmeHNob3ciKTtmb3IoeCBpbiB5dClmLnN0eWxlKGEseCx5dFt4XSl9KSksVz15YShYdD9WdFt4XTowLHgsc3QpLHggaW4gVnR8fChWdFt4XT1XLnN0YXJ0LFh0JiYoVy5lbmQ9Vy5zdGFydCxXLnN0YXJ0PTApKX19ZnVuY3Rpb24geW8oYSxkKXt2YXIgdix4LEEsSSxOO2Zvcih2IGluIGEpaWYoeD1ndCh2KSxBPWRbeF0sST1hW3ZdLEFycmF5LmlzQXJyYXkoSSkmJihBPUlbMV0sST1hW3ZdPUlbMF0pLHYhPT14JiYoYVt4XT1JLGRlbGV0ZSBhW3ZdKSxOPWYuY3NzSG9va3NbeF0sTiYmImV4cGFuZCJpbiBOKXtJPU4uZXhwYW5kKEkpLGRlbGV0ZSBhW3hdO2Zvcih2IGluIEkpdiBpbiBhfHwoYVt2XT1JW3ZdLGRbdl09QSl9ZWxzZSBkW3hdPUF9ZnVuY3Rpb24gTWUoYSxkLHYpe3ZhciB4LEEsST0wLE49TWUucHJlZmlsdGVycy5sZW5ndGgsWT1mLkRlZmVycmVkKCkuYWx3YXlzKGZ1bmN0aW9uKCl7ZGVsZXRlIFcuZWxlbX0pLFc9ZnVuY3Rpb24oKXtpZihBKXJldHVybiExO2Zvcih2YXIgZnQ9QW58fGdhKCksc3Q9TWF0aC5tYXgoMCxKLnN0YXJ0VGltZStKLmR1cmF0aW9uLWZ0KSx5dD1zdC9KLmR1cmF0aW9ufHwwLE90PTEteXQsWHQ9MCxWdD1KLnR3ZWVucy5sZW5ndGg7WHQ8VnQ7WHQrKylKLnR3ZWVuc1tYdF0ucnVuKE90KTtyZXR1cm4gWS5ub3RpZnlXaXRoKGEsW0osT3Qsc3RdKSxPdDwxJiZWdD9zdDooVnR8fFkubm90aWZ5V2l0aChhLFtKLDEsMF0pLFkucmVzb2x2ZVdpdGgoYSxbSl0pLCExKX0sSj1ZLnByb21pc2Uoe2VsZW06YSxwcm9wczpmLmV4dGVuZCh7fSxkKSxvcHRzOmYuZXh0ZW5kKCEwLHtzcGVjaWFsRWFzaW5nOnt9LGVhc2luZzpmLmVhc2luZy5fZGVmYXVsdH0sdiksb3JpZ2luYWxQcm9wZXJ0aWVzOmQsb3JpZ2luYWxPcHRpb25zOnYsc3RhcnRUaW1lOkFufHxnYSgpLGR1cmF0aW9uOnYuZHVyYXRpb24sdHdlZW5zOltdLGNyZWF0ZVR3ZWVuOmZ1bmN0aW9uKGZ0LHN0KXt2YXIgeXQ9Zi5Ud2VlbihhLEoub3B0cyxmdCxzdCxKLm9wdHMuc3BlY2lhbEVhc2luZ1tmdF18fEoub3B0cy5lYXNpbmcpO3JldHVybiBKLnR3ZWVucy5wdXNoKHl0KSx5dH0sc3RvcDpmdW5jdGlvbihmdCl7dmFyIHN0PTAseXQ9ZnQ/Si50d2VlbnMubGVuZ3RoOjA7aWYoQSlyZXR1cm4gdGhpcztmb3IoQT0hMDtzdDx5dDtzdCsrKUoudHdlZW5zW3N0XS5ydW4oMSk7cmV0dXJuIGZ0PyhZLm5vdGlmeVdpdGgoYSxbSiwxLDBdKSxZLnJlc29sdmVXaXRoKGEsW0osZnRdKSk6WS5yZWplY3RXaXRoKGEsW0osZnRdKSx0aGlzfX0pLGR0PUoucHJvcHM7Zm9yKHlvKGR0LEoub3B0cy5zcGVjaWFsRWFzaW5nKTtJPE47SSsrKWlmKHg9TWUucHJlZmlsdGVyc1tJXS5jYWxsKEosYSxkdCxKLm9wdHMpLHgpcmV0dXJuIFQoeC5zdG9wKSYmKGYuX3F1ZXVlSG9va3MoSi5lbGVtLEoub3B0cy5xdWV1ZSkuc3RvcD14LnN0b3AuYmluZCh4KSkseDtyZXR1cm4gZi5tYXAoZHQseWEsSiksVChKLm9wdHMuc3RhcnQpJiZKLm9wdHMuc3RhcnQuY2FsbChhLEopLEoucHJvZ3Jlc3MoSi5vcHRzLnByb2dyZXNzKS5kb25lKEoub3B0cy5kb25lLEoub3B0cy5jb21wbGV0ZSkuZmFpbChKLm9wdHMuZmFpbCkuYWx3YXlzKEoub3B0cy5hbHdheXMpLGYuZngudGltZXIoZi5leHRlbmQoVyx7ZWxlbTphLGFuaW06SixxdWV1ZTpKLm9wdHMucXVldWV9KSksSn1mLkFuaW1hdGlvbj1mLmV4dGVuZChNZSx7dHdlZW5lcnM6eyIqIjpbZnVuY3Rpb24oYSxkKXt2YXIgdj10aGlzLmNyZWF0ZVR3ZWVuKGEsZCk7cmV0dXJuIHVyKHYuZWxlbSxhLGVlLmV4ZWMoZCksdiksdn1dfSx0d2VlbmVyOmZ1bmN0aW9uKGEsZCl7VChhKT8oZD1hLGE9WyIqIl0pOmE9YS5tYXRjaChCdCk7Zm9yKHZhciB2LHg9MCxBPWEubGVuZ3RoO3g8QTt4Kyspdj1hW3hdLE1lLnR3ZWVuZXJzW3ZdPU1lLnR3ZWVuZXJzW3ZdfHxbXSxNZS50d2VlbmVyc1t2XS51bnNoaWZ0KGQpfSxwcmVmaWx0ZXJzOltnb10scHJlZmlsdGVyOmZ1bmN0aW9uKGEsZCl7ZD9NZS5wcmVmaWx0ZXJzLnVuc2hpZnQoYSk6TWUucHJlZmlsdGVycy5wdXNoKGEpfX0pLGYuc3BlZWQ9ZnVuY3Rpb24oYSxkLHYpe3ZhciB4PWEmJnR5cGVvZiBhPT0ib2JqZWN0Ij9mLmV4dGVuZCh7fSxhKTp7Y29tcGxldGU6dnx8IXYmJmR8fFQoYSkmJmEsZHVyYXRpb246YSxlYXNpbmc6diYmZHx8ZCYmIVQoZCkmJmR9O3JldHVybiBmLmZ4Lm9mZj94LmR1cmF0aW9uPTA6dHlwZW9mIHguZHVyYXRpb24hPSJudW1iZXIiJiYoeC5kdXJhdGlvbiBpbiBmLmZ4LnNwZWVkcz94LmR1cmF0aW9uPWYuZnguc3BlZWRzW3guZHVyYXRpb25dOnguZHVyYXRpb249Zi5meC5zcGVlZHMuX2RlZmF1bHQpLCh4LnF1ZXVlPT1udWxsfHx4LnF1ZXVlPT09ITApJiYoeC5xdWV1ZT0iZngiKSx4Lm9sZD14LmNvbXBsZXRlLHguY29tcGxldGU9ZnVuY3Rpb24oKXtUKHgub2xkKSYmeC5vbGQuY2FsbCh0aGlzKSx4LnF1ZXVlJiZmLmRlcXVldWUodGhpcyx4LnF1ZXVlKX0seH0sZi5mbi5leHRlbmQoe2ZhZGVUbzpmdW5jdGlvbihhLGQsdix4KXtyZXR1cm4gdGhpcy5maWx0ZXIoVG4pLmNzcygib3BhY2l0eSIsMCkuc2hvdygpLmVuZCgpLmFuaW1hdGUoe29wYWNpdHk6ZH0sYSx2LHgpfSxhbmltYXRlOmZ1bmN0aW9uKGEsZCx2LHgpe3ZhciBBPWYuaXNFbXB0eU9iamVjdChhKSxJPWYuc3BlZWQoZCx2LHgpLE49ZnVuY3Rpb24oKXt2YXIgWT1NZSh0aGlzLGYuZXh0ZW5kKHt9LGEpLEkpOyhBfHxtdC5nZXQodGhpcywiZmluaXNoIikpJiZZLnN0b3AoITApfTtyZXR1cm4gTi5maW5pc2g9TixBfHxJLnF1ZXVlPT09ITE/dGhpcy5lYWNoKE4pOnRoaXMucXVldWUoSS5xdWV1ZSxOKX0sc3RvcDpmdW5jdGlvbihhLGQsdil7dmFyIHg9ZnVuY3Rpb24oQSl7dmFyIEk9QS5zdG9wO2RlbGV0ZSBBLnN0b3AsSSh2KX07cmV0dXJuIHR5cGVvZiBhIT0ic3RyaW5nIiYmKHY9ZCxkPWEsYT12b2lkIDApLGQmJnRoaXMucXVldWUoYXx8ImZ4IixbXSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIEE9ITAsST1hIT1udWxsJiZhKyJxdWV1ZUhvb2tzIixOPWYudGltZXJzLFk9bXQuZ2V0KHRoaXMpO2lmKEkpWVtJXSYmWVtJXS5zdG9wJiZ4KFlbSV0pO2Vsc2UgZm9yKEkgaW4gWSlZW0ldJiZZW0ldLnN0b3AmJnZvLnRlc3QoSSkmJngoWVtJXSk7Zm9yKEk9Ti5sZW5ndGg7SS0tOylOW0ldLmVsZW09PT10aGlzJiYoYT09bnVsbHx8TltJXS5xdWV1ZT09PWEpJiYoTltJXS5hbmltLnN0b3AodiksQT0hMSxOLnNwbGljZShJLDEpKTsoQXx8IXYpJiZmLmRlcXVldWUodGhpcyxhKX0pfSxmaW5pc2g6ZnVuY3Rpb24oYSl7cmV0dXJuIGEhPT0hMSYmKGE9YXx8ImZ4IiksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQsdj1tdC5nZXQodGhpcykseD12W2ErInF1ZXVlIl0sQT12W2ErInF1ZXVlSG9va3MiXSxJPWYudGltZXJzLE49eD94Lmxlbmd0aDowO2Zvcih2LmZpbmlzaD0hMCxmLnF1ZXVlKHRoaXMsYSxbXSksQSYmQS5zdG9wJiZBLnN0b3AuY2FsbCh0aGlzLCEwKSxkPUkubGVuZ3RoO2QtLTspSVtkXS5lbGVtPT09dGhpcyYmSVtkXS5xdWV1ZT09PWEmJihJW2RdLmFuaW0uc3RvcCghMCksSS5zcGxpY2UoZCwxKSk7Zm9yKGQ9MDtkPE47ZCsrKXhbZF0mJnhbZF0uZmluaXNoJiZ4W2RdLmZpbmlzaC5jYWxsKHRoaXMpO2RlbGV0ZSB2LmZpbmlzaH0pfX0pLGYuZWFjaChbInRvZ2dsZSIsInNob3ciLCJoaWRlIl0sZnVuY3Rpb24oYSxkKXt2YXIgdj1mLmZuW2RdO2YuZm5bZF09ZnVuY3Rpb24oeCxBLEkpe3JldHVybiB4PT1udWxsfHx0eXBlb2YgeD09ImJvb2xlYW4iP3YuYXBwbHkodGhpcyxhcmd1bWVudHMpOnRoaXMuYW5pbWF0ZShtcihkLCEwKSx4LEEsSSl9fSksZi5lYWNoKHtzbGlkZURvd246bXIoInNob3ciKSxzbGlkZVVwOm1yKCJoaWRlIiksc2xpZGVUb2dnbGU6bXIoInRvZ2dsZSIpLGZhZGVJbjp7b3BhY2l0eToic2hvdyJ9LGZhZGVPdXQ6e29wYWNpdHk6ImhpZGUifSxmYWRlVG9nZ2xlOntvcGFjaXR5OiJ0b2dnbGUifX0sZnVuY3Rpb24oYSxkKXtmLmZuW2FdPWZ1bmN0aW9uKHYseCxBKXtyZXR1cm4gdGhpcy5hbmltYXRlKGQsdix4LEEpfX0pLGYudGltZXJzPVtdLGYuZngudGljaz1mdW5jdGlvbigpe3ZhciBhLGQ9MCx2PWYudGltZXJzO2ZvcihBbj1EYXRlLm5vdygpO2Q8di5sZW5ndGg7ZCsrKWE9dltkXSwhYSgpJiZ2W2RdPT09YSYmdi5zcGxpY2UoZC0tLDEpO3YubGVuZ3RofHxmLmZ4LnN0b3AoKSxBbj12b2lkIDB9LGYuZngudGltZXI9ZnVuY3Rpb24oYSl7Zi50aW1lcnMucHVzaChhKSxmLmZ4LnN0YXJ0KCl9LGYuZnguaW50ZXJ2YWw9MTMsZi5meC5zdGFydD1mdW5jdGlvbigpe2JyfHwoYnI9ITAsUXIoKSl9LGYuZnguc3RvcD1mdW5jdGlvbigpe2JyPW51bGx9LGYuZnguc3BlZWRzPXtzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9LGYuZm4uZGVsYXk9ZnVuY3Rpb24oYSxkKXtyZXR1cm4gYT1mLmZ4JiZmLmZ4LnNwZWVkc1thXXx8YSxkPWR8fCJmeCIsdGhpcy5xdWV1ZShkLGZ1bmN0aW9uKHYseCl7dmFyIEE9dC5zZXRUaW1lb3V0KHYsYSk7eC5zdG9wPWZ1bmN0aW9uKCl7dC5jbGVhclRpbWVvdXQoQSl9fSl9LGZ1bmN0aW9uKCl7dmFyIGE9Yy5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLGQ9Yy5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKSx2PWQuYXBwZW5kQ2hpbGQoYy5jcmVhdGVFbGVtZW50KCJvcHRpb24iKSk7YS50eXBlPSJjaGVja2JveCIseS5jaGVja09uPWEudmFsdWUhPT0iIix5Lm9wdFNlbGVjdGVkPXYuc2VsZWN0ZWQsYT1jLmNyZWF0ZUVsZW1lbnQoImlucHV0IiksYS52YWx1ZT0idCIsYS50eXBlPSJyYWRpbyIseS5yYWRpb1ZhbHVlPWEudmFsdWU9PT0idCJ9KCk7dmFyIHdhLFduPWYuZXhwci5hdHRySGFuZGxlO2YuZm4uZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGEsZCl7cmV0dXJuIEsodGhpcyxmLmF0dHIsYSxkLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHJlbW92ZUF0dHI6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2YucmVtb3ZlQXR0cih0aGlzLGEpfSl9fSksZi5leHRlbmQoe2F0dHI6ZnVuY3Rpb24oYSxkLHYpe3ZhciB4LEEsST1hLm5vZGVUeXBlO2lmKCEoST09PTN8fEk9PT04fHxJPT09Mikpe2lmKHR5cGVvZiBhLmdldEF0dHJpYnV0ZT4idSIpcmV0dXJuIGYucHJvcChhLGQsdik7aWYoKEkhPT0xfHwhZi5pc1hNTERvYyhhKSkmJihBPWYuYXR0ckhvb2tzW2QudG9Mb3dlckNhc2UoKV18fChmLmV4cHIubWF0Y2guYm9vbC50ZXN0KGQpP3dhOnZvaWQgMCkpLHYhPT12b2lkIDApe2lmKHY9PT1udWxsKXtmLnJlbW92ZUF0dHIoYSxkKTtyZXR1cm59cmV0dXJuIEEmJiJzZXQiaW4gQSYmKHg9QS5zZXQoYSx2LGQpKSE9PXZvaWQgMD94OihhLnNldEF0dHJpYnV0ZShkLHYrIiIpLHYpfXJldHVybiBBJiYiZ2V0ImluIEEmJih4PUEuZ2V0KGEsZCkpIT09bnVsbD94Oih4PWYuZmluZC5hdHRyKGEsZCkseD8/dm9pZCAwKX19LGF0dHJIb29rczp7dHlwZTp7c2V0OmZ1bmN0aW9uKGEsZCl7aWYoIXkucmFkaW9WYWx1ZSYmZD09PSJyYWRpbyImJlgoYSwiaW5wdXQiKSl7dmFyIHY9YS52YWx1ZTtyZXR1cm4gYS5zZXRBdHRyaWJ1dGUoInR5cGUiLGQpLHYmJihhLnZhbHVlPXYpLGR9fX19LHJlbW92ZUF0dHI6ZnVuY3Rpb24oYSxkKXt2YXIgdix4PTAsQT1kJiZkLm1hdGNoKEJ0KTtpZihBJiZhLm5vZGVUeXBlPT09MSlmb3IoO3Y9QVt4KytdOylhLnJlbW92ZUF0dHJpYnV0ZSh2KX19KSx3YT17c2V0OmZ1bmN0aW9uKGEsZCx2KXtyZXR1cm4gZD09PSExP2YucmVtb3ZlQXR0cihhLHYpOmEuc2V0QXR0cmlidXRlKHYsdiksdn19LGYuZWFjaChmLmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goL1x3Ky9nKSxmdW5jdGlvbihhLGQpe3ZhciB2PVduW2RdfHxmLmZpbmQuYXR0cjtXbltkXT1mdW5jdGlvbih4LEEsSSl7dmFyIE4sWSxXPUEudG9Mb3dlckNhc2UoKTtyZXR1cm4gSXx8KFk9V25bV10sV25bV109TixOPXYoeCxBLEkpIT1udWxsP1c6bnVsbCxXbltXXT1ZKSxOfX0pO3ZhciB3bz0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLHhvPS9eKD86YXxhcmVhKSQvaTtmLmZuLmV4dGVuZCh7cHJvcDpmdW5jdGlvbihhLGQpe3JldHVybiBLKHRoaXMsZi5wcm9wLGEsZCxhcmd1bWVudHMubGVuZ3RoPjEpfSxyZW1vdmVQcm9wOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtkZWxldGUgdGhpc1tmLnByb3BGaXhbYV18fGFdfSl9fSksZi5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oYSxkLHYpe3ZhciB4LEEsST1hLm5vZGVUeXBlO2lmKCEoST09PTN8fEk9PT04fHxJPT09MikpcmV0dXJuKEkhPT0xfHwhZi5pc1hNTERvYyhhKSkmJihkPWYucHJvcEZpeFtkXXx8ZCxBPWYucHJvcEhvb2tzW2RdKSx2IT09dm9pZCAwP0EmJiJzZXQiaW4gQSYmKHg9QS5zZXQoYSx2LGQpKSE9PXZvaWQgMD94OmFbZF09djpBJiYiZ2V0ImluIEEmJih4PUEuZ2V0KGEsZCkpIT09bnVsbD94OmFbZF19LHByb3BIb29rczp7dGFiSW5kZXg6e2dldDpmdW5jdGlvbihhKXt2YXIgZD1mLmZpbmQuYXR0cihhLCJ0YWJpbmRleCIpO3JldHVybiBkP3BhcnNlSW50KGQsMTApOndvLnRlc3QoYS5ub2RlTmFtZSl8fHhvLnRlc3QoYS5ub2RlTmFtZSkmJmEuaHJlZj8wOi0xfX19LHByb3BGaXg6e2ZvcjoiaHRtbEZvciIsY2xhc3M6ImNsYXNzTmFtZSJ9fSkseS5vcHRTZWxlY3RlZHx8KGYucHJvcEhvb2tzLnNlbGVjdGVkPXtnZXQ6ZnVuY3Rpb24oYSl7dmFyIGQ9YS5wYXJlbnROb2RlO3JldHVybiBkJiZkLnBhcmVudE5vZGUmJmQucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4LG51bGx9LHNldDpmdW5jdGlvbihhKXt2YXIgZD1hLnBhcmVudE5vZGU7ZCYmKGQuc2VsZWN0ZWRJbmRleCxkLnBhcmVudE5vZGUmJmQucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4KX19KSxmLmVhY2goWyJ0YWJJbmRleCIsInJlYWRPbmx5IiwibWF4TGVuZ3RoIiwiY2VsbFNwYWNpbmciLCJjZWxsUGFkZGluZyIsInJvd1NwYW4iLCJjb2xTcGFuIiwidXNlTWFwIiwiZnJhbWVCb3JkZXIiLCJjb250ZW50RWRpdGFibGUiXSxmdW5jdGlvbigpe2YucHJvcEZpeFt0aGlzLnRvTG93ZXJDYXNlKCldPXRoaXN9KTtmdW5jdGlvbiBobihhKXt2YXIgZD1hLm1hdGNoKEJ0KXx8W107cmV0dXJuIGQuam9pbigiICIpfWZ1bmN0aW9uIHBuKGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZSYmYS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIifWZ1bmN0aW9uIHRpKGEpe3JldHVybiBBcnJheS5pc0FycmF5KGEpP2E6dHlwZW9mIGE9PSJzdHJpbmciP2EubWF0Y2goQnQpfHxbXTpbXX1mLmZuLmV4dGVuZCh7YWRkQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGQsdix4LEEsSSxOO3JldHVybiBUKGEpP3RoaXMuZWFjaChmdW5jdGlvbihZKXtmKHRoaXMpLmFkZENsYXNzKGEuY2FsbCh0aGlzLFkscG4odGhpcykpKX0pOihkPXRpKGEpLGQubGVuZ3RoP3RoaXMuZWFjaChmdW5jdGlvbigpe2lmKHg9cG4odGhpcyksdj10aGlzLm5vZGVUeXBlPT09MSYmIiAiK2huKHgpKyIgIix2KXtmb3IoST0wO0k8ZC5sZW5ndGg7SSsrKUE9ZFtJXSx2LmluZGV4T2YoIiAiK0ErIiAiKTwwJiYodis9QSsiICIpO049aG4odikseCE9PU4mJnRoaXMuc2V0QXR0cmlidXRlKCJjbGFzcyIsTil9fSk6dGhpcyl9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKGEpe3ZhciBkLHYseCxBLEksTjtyZXR1cm4gVChhKT90aGlzLmVhY2goZnVuY3Rpb24oWSl7Zih0aGlzKS5yZW1vdmVDbGFzcyhhLmNhbGwodGhpcyxZLHBuKHRoaXMpKSl9KTphcmd1bWVudHMubGVuZ3RoPyhkPXRpKGEpLGQubGVuZ3RoP3RoaXMuZWFjaChmdW5jdGlvbigpe2lmKHg9cG4odGhpcyksdj10aGlzLm5vZGVUeXBlPT09MSYmIiAiK2huKHgpKyIgIix2KXtmb3IoST0wO0k8ZC5sZW5ndGg7SSsrKWZvcihBPWRbSV07di5pbmRleE9mKCIgIitBKyIgIik+LTE7KXY9di5yZXBsYWNlKCIgIitBKyIgIiwiICIpO049aG4odikseCE9PU4mJnRoaXMuc2V0QXR0cmlidXRlKCJjbGFzcyIsTil9fSk6dGhpcyk6dGhpcy5hdHRyKCJjbGFzcyIsIiIpfSx0b2dnbGVDbGFzczpmdW5jdGlvbihhLGQpe3ZhciB2LHgsQSxJLE49dHlwZW9mIGEsWT1OPT09InN0cmluZyJ8fEFycmF5LmlzQXJyYXkoYSk7cmV0dXJuIFQoYSk/dGhpcy5lYWNoKGZ1bmN0aW9uKFcpe2YodGhpcykudG9nZ2xlQ2xhc3MoYS5jYWxsKHRoaXMsVyxwbih0aGlzKSxkKSxkKX0pOnR5cGVvZiBkPT0iYm9vbGVhbiImJlk/ZD90aGlzLmFkZENsYXNzKGEpOnRoaXMucmVtb3ZlQ2xhc3MoYSk6KHY9dGkoYSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYoWSlmb3IoST1mKHRoaXMpLEE9MDtBPHYubGVuZ3RoO0ErKyl4PXZbQV0sSS5oYXNDbGFzcyh4KT9JLnJlbW92ZUNsYXNzKHgpOkkuYWRkQ2xhc3MoeCk7ZWxzZShhPT09dm9pZCAwfHxOPT09ImJvb2xlYW4iKSYmKHg9cG4odGhpcykseCYmbXQuc2V0KHRoaXMsIl9fY2xhc3NOYW1lX18iLHgpLHRoaXMuc2V0QXR0cmlidXRlJiZ0aGlzLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHh8fGE9PT0hMT8iIjptdC5nZXQodGhpcywiX19jbGFzc05hbWVfXyIpfHwiIikpfSkpfSxoYXNDbGFzczpmdW5jdGlvbihhKXt2YXIgZCx2LHg9MDtmb3IoZD0iICIrYSsiICI7dj10aGlzW3grK107KWlmKHYubm9kZVR5cGU9PT0xJiYoIiAiK2huKHBuKHYpKSsiICIpLmluZGV4T2YoZCk+LTEpcmV0dXJuITA7cmV0dXJuITF9fSk7dmFyIF9vPS9cci9nO2YuZm4uZXh0ZW5kKHt2YWw6ZnVuY3Rpb24oYSl7dmFyIGQsdix4LEE9dGhpc1swXTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oeD1UKGEpLHRoaXMuZWFjaChmdW5jdGlvbihJKXt2YXIgTjt0aGlzLm5vZGVUeXBlPT09MSYmKHg/Tj1hLmNhbGwodGhpcyxJLGYodGhpcykudmFsKCkpOk49YSxOPT1udWxsP049IiI6dHlwZW9mIE49PSJudW1iZXIiP04rPSIiOkFycmF5LmlzQXJyYXkoTikmJihOPWYubWFwKE4sZnVuY3Rpb24oWSl7cmV0dXJuIFk9PW51bGw/IiI6WSsiIn0pKSxkPWYudmFsSG9va3NbdGhpcy50eXBlXXx8Zi52YWxIb29rc1t0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldLCghZHx8ISgic2V0ImluIGQpfHxkLnNldCh0aGlzLE4sInZhbHVlIik9PT12b2lkIDApJiYodGhpcy52YWx1ZT1OKSl9KSk6QT8oZD1mLnZhbEhvb2tzW0EudHlwZV18fGYudmFsSG9va3NbQS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSxkJiYiZ2V0ImluIGQmJih2PWQuZ2V0KEEsInZhbHVlIikpIT09dm9pZCAwP3Y6KHY9QS52YWx1ZSx0eXBlb2Ygdj09InN0cmluZyI/di5yZXBsYWNlKF9vLCIiKTp2Pz8iIikpOnZvaWQgMH19KSxmLmV4dGVuZCh7dmFsSG9va3M6e29wdGlvbjp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBkPWYuZmluZC5hdHRyKGEsInZhbHVlIik7cmV0dXJuIGQ/P2huKGYudGV4dChhKSl9fSxzZWxlY3Q6e2dldDpmdW5jdGlvbihhKXt2YXIgZCx2LHgsQT1hLm9wdGlvbnMsST1hLnNlbGVjdGVkSW5kZXgsTj1hLnR5cGU9PT0ic2VsZWN0LW9uZSIsWT1OP251bGw6W10sVz1OP0krMTpBLmxlbmd0aDtmb3IoSTwwP3g9Vzp4PU4/STowO3g8Vzt4KyspaWYodj1BW3hdLCh2LnNlbGVjdGVkfHx4PT09SSkmJiF2LmRpc2FibGVkJiYoIXYucGFyZW50Tm9kZS5kaXNhYmxlZHx8IVgodi5wYXJlbnROb2RlLCJvcHRncm91cCIpKSl7aWYoZD1mKHYpLnZhbCgpLE4pcmV0dXJuIGQ7WS5wdXNoKGQpfXJldHVybiBZfSxzZXQ6ZnVuY3Rpb24oYSxkKXtmb3IodmFyIHYseCxBPWEub3B0aW9ucyxJPWYubWFrZUFycmF5KGQpLE49QS5sZW5ndGg7Ti0tOyl4PUFbTl0sKHguc2VsZWN0ZWQ9Zi5pbkFycmF5KGYudmFsSG9va3Mub3B0aW9uLmdldCh4KSxJKT4tMSkmJih2PSEwKTtyZXR1cm4gdnx8KGEuc2VsZWN0ZWRJbmRleD0tMSksSX19fX0pLGYuZWFjaChbInJhZGlvIiwiY2hlY2tib3giXSxmdW5jdGlvbigpe2YudmFsSG9va3NbdGhpc109e3NldDpmdW5jdGlvbihhLGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGEuY2hlY2tlZD1mLmluQXJyYXkoZihhKS52YWwoKSxkKT4tMX19LHkuY2hlY2tPbnx8KGYudmFsSG9va3NbdGhpc10uZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZSgidmFsdWUiKT09PW51bGw/Im9uIjphLnZhbHVlfSl9KTt2YXIgR249dC5sb2NhdGlvbix4YT17Z3VpZDpEYXRlLm5vdygpfSxlaT0vXD8vO2YucGFyc2VYTUw9ZnVuY3Rpb24oYSl7dmFyIGQsdjtpZighYXx8dHlwZW9mIGEhPSJzdHJpbmciKXJldHVybiBudWxsO3RyeXtkPW5ldyB0LkRPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhhLCJ0ZXh0L3htbCIpfWNhdGNoe31yZXR1cm4gdj1kJiZkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJzZXJlcnJvciIpWzBdLCghZHx8dikmJmYuZXJyb3IoIkludmFsaWQgWE1MOiAiKyh2P2YubWFwKHYuY2hpbGROb2RlcyxmdW5jdGlvbih4KXtyZXR1cm4geC50ZXh0Q29udGVudH0pLmpvaW4oYApgKTphKSksZH07dmFyIF9hPS9eKD86Zm9jdXNpbmZvY3VzfGZvY3Vzb3V0Ymx1cikkLyxDYT1mdW5jdGlvbihhKXthLnN0b3BQcm9wYWdhdGlvbigpfTtmLmV4dGVuZChmLmV2ZW50LHt0cmlnZ2VyOmZ1bmN0aW9uKGEsZCx2LHgpe3ZhciBBLEksTixZLFcsSixkdCxmdCxzdD1bdnx8Y10seXQ9Zy5jYWxsKGEsInR5cGUiKT9hLnR5cGU6YSxPdD1nLmNhbGwoYSwibmFtZXNwYWNlIik/YS5uYW1lc3BhY2Uuc3BsaXQoIi4iKTpbXTtpZihJPWZ0PU49dj12fHxjLCEodi5ub2RlVHlwZT09PTN8fHYubm9kZVR5cGU9PT04KSYmIV9hLnRlc3QoeXQrZi5ldmVudC50cmlnZ2VyZWQpJiYoeXQuaW5kZXhPZigiLiIpPi0xJiYoT3Q9eXQuc3BsaXQoIi4iKSx5dD1PdC5zaGlmdCgpLE90LnNvcnQoKSksVz15dC5pbmRleE9mKCI6Iik8MCYmIm9uIit5dCxhPWFbZi5leHBhbmRvXT9hOm5ldyBmLkV2ZW50KHl0LHR5cGVvZiBhPT0ib2JqZWN0IiYmYSksYS5pc1RyaWdnZXI9eD8yOjMsYS5uYW1lc3BhY2U9T3Quam9pbigiLiIpLGEucm5hbWVzcGFjZT1hLm5hbWVzcGFjZT9uZXcgUmVnRXhwKCIoXnxcXC4pIitPdC5qb2luKCJcXC4oPzouKlxcLnwpIikrIihcXC58JCkiKTpudWxsLGEucmVzdWx0PXZvaWQgMCxhLnRhcmdldHx8KGEudGFyZ2V0PXYpLGQ9ZD09bnVsbD9bYV06Zi5tYWtlQXJyYXkoZCxbYV0pLGR0PWYuZXZlbnQuc3BlY2lhbFt5dF18fHt9LCEoIXgmJmR0LnRyaWdnZXImJmR0LnRyaWdnZXIuYXBwbHkodixkKT09PSExKSkpe2lmKCF4JiYhZHQubm9CdWJibGUmJiFQKHYpKXtmb3IoWT1kdC5kZWxlZ2F0ZVR5cGV8fHl0LF9hLnRlc3QoWSt5dCl8fChJPUkucGFyZW50Tm9kZSk7STtJPUkucGFyZW50Tm9kZSlzdC5wdXNoKEkpLE49STtOPT09KHYub3duZXJEb2N1bWVudHx8YykmJnN0LnB1c2goTi5kZWZhdWx0Vmlld3x8Ti5wYXJlbnRXaW5kb3d8fHQpfWZvcihBPTA7KEk9c3RbQSsrXSkmJiFhLmlzUHJvcGFnYXRpb25TdG9wcGVkKCk7KWZ0PUksYS50eXBlPUE+MT9ZOmR0LmJpbmRUeXBlfHx5dCxKPShtdC5nZXQoSSwiZXZlbnRzIil8fE9iamVjdC5jcmVhdGUobnVsbCkpW2EudHlwZV0mJm10LmdldChJLCJoYW5kbGUiKSxKJiZKLmFwcGx5KEksZCksSj1XJiZJW1ddLEomJkouYXBwbHkmJkN0KEkpJiYoYS5yZXN1bHQ9Si5hcHBseShJLGQpLGEucmVzdWx0PT09ITEmJmEucHJldmVudERlZmF1bHQoKSk7cmV0dXJuIGEudHlwZT15dCwheCYmIWEuaXNEZWZhdWx0UHJldmVudGVkKCkmJighZHQuX2RlZmF1bHR8fGR0Ll9kZWZhdWx0LmFwcGx5KHN0LnBvcCgpLGQpPT09ITEpJiZDdCh2KSYmVyYmVCh2W3l0XSkmJiFQKHYpJiYoTj12W1ddLE4mJih2W1ddPW51bGwpLGYuZXZlbnQudHJpZ2dlcmVkPXl0LGEuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSYmZnQuYWRkRXZlbnRMaXN0ZW5lcih5dCxDYSksdlt5dF0oKSxhLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkmJmZ0LnJlbW92ZUV2ZW50TGlzdGVuZXIoeXQsQ2EpLGYuZXZlbnQudHJpZ2dlcmVkPXZvaWQgMCxOJiYodltXXT1OKSksYS5yZXN1bHR9fSxzaW11bGF0ZTpmdW5jdGlvbihhLGQsdil7dmFyIHg9Zi5leHRlbmQobmV3IGYuRXZlbnQsdix7dHlwZTphLGlzU2ltdWxhdGVkOiEwfSk7Zi5ldmVudC50cmlnZ2VyKHgsbnVsbCxkKX19KSxmLmZuLmV4dGVuZCh7dHJpZ2dlcjpmdW5jdGlvbihhLGQpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtmLmV2ZW50LnRyaWdnZXIoYSxkLHRoaXMpfSl9LHRyaWdnZXJIYW5kbGVyOmZ1bmN0aW9uKGEsZCl7dmFyIHY9dGhpc1swXTtpZih2KXJldHVybiBmLmV2ZW50LnRyaWdnZXIoYSxkLHYsITApfX0pO3ZhciBDbz0vXFtcXSQvLFRhPS9ccj9cbi9nLFRvPS9eKD86c3VibWl0fGJ1dHRvbnxpbWFnZXxyZXNldHxmaWxlKSQvaSxrbz0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxrZXlnZW4pL2k7ZnVuY3Rpb24gbmkoYSxkLHYseCl7dmFyIEE7aWYoQXJyYXkuaXNBcnJheShkKSlmLmVhY2goZCxmdW5jdGlvbihJLE4pe3Z8fENvLnRlc3QoYSk/eChhLE4pOm5pKGErIlsiKyh0eXBlb2YgTj09Im9iamVjdCImJk4hPW51bGw/SToiIikrIl0iLE4sdix4KX0pO2Vsc2UgaWYoIXYmJl8oZCk9PT0ib2JqZWN0Iilmb3IoQSBpbiBkKW5pKGErIlsiK0ErIl0iLGRbQV0sdix4KTtlbHNlIHgoYSxkKX1mLnBhcmFtPWZ1bmN0aW9uKGEsZCl7dmFyIHYseD1bXSxBPWZ1bmN0aW9uKEksTil7dmFyIFk9VChOKT9OKCk6Tjt4W3gubGVuZ3RoXT1lbmNvZGVVUklDb21wb25lbnQoSSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChZPz8iIil9O2lmKGE9PW51bGwpcmV0dXJuIiI7aWYoQXJyYXkuaXNBcnJheShhKXx8YS5qcXVlcnkmJiFmLmlzUGxhaW5PYmplY3QoYSkpZi5lYWNoKGEsZnVuY3Rpb24oKXtBKHRoaXMubmFtZSx0aGlzLnZhbHVlKX0pO2Vsc2UgZm9yKHYgaW4gYSluaSh2LGFbdl0sZCxBKTtyZXR1cm4geC5qb2luKCImIil9LGYuZm4uZXh0ZW5kKHtzZXJpYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gZi5wYXJhbSh0aGlzLnNlcmlhbGl6ZUFycmF5KCkpfSxzZXJpYWxpemVBcnJheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3ZhciBhPWYucHJvcCh0aGlzLCJlbGVtZW50cyIpO3JldHVybiBhP2YubWFrZUFycmF5KGEpOnRoaXN9KS5maWx0ZXIoZnVuY3Rpb24oKXt2YXIgYT10aGlzLnR5cGU7cmV0dXJuIHRoaXMubmFtZSYmIWYodGhpcykuaXMoIjpkaXNhYmxlZCIpJiZrby50ZXN0KHRoaXMubm9kZU5hbWUpJiYhVG8udGVzdChhKSYmKHRoaXMuY2hlY2tlZHx8IVdlLnRlc3QoYSkpfSkubWFwKGZ1bmN0aW9uKGEsZCl7dmFyIHY9Zih0aGlzKS52YWwoKTtyZXR1cm4gdj09bnVsbD9udWxsOkFycmF5LmlzQXJyYXkodik/Zi5tYXAodixmdW5jdGlvbih4KXtyZXR1cm57bmFtZTpkLm5hbWUsdmFsdWU6eC5yZXBsYWNlKFRhLGBccgpgKX19KTp7bmFtZTpkLm5hbWUsdmFsdWU6di5yZXBsYWNlKFRhLGBccgpgKX19KS5nZXQoKX19KTt2YXIgU289LyUyMC9nLERvPS8jLiokLyxBbz0vKFs/Jl0pXz1bXiZdKi8sSW89L14oLio/KTpbIFx0XSooW15cclxuXSopJC9tZyxQbz0vXig/OmFib3V0fGFwcHxhcHAtc3RvcmFnZXwuKy1leHRlbnNpb258ZmlsZXxyZXN8d2lkZ2V0KTokLyxGbz0vXig/OkdFVHxIRUFEKSQvLEJvPS9eXC9cLy8sa2E9e30scmk9e30sU2E9IiovIi5jb25jYXQoIioiKSxpaT1jLmNyZWF0ZUVsZW1lbnQoImEiKTtpaS5ocmVmPUduLmhyZWY7ZnVuY3Rpb24gRGEoYSl7cmV0dXJuIGZ1bmN0aW9uKGQsdil7dHlwZW9mIGQhPSJzdHJpbmciJiYodj1kLGQ9IioiKTt2YXIgeCxBPTAsST1kLnRvTG93ZXJDYXNlKCkubWF0Y2goQnQpfHxbXTtpZihUKHYpKWZvcig7eD1JW0ErK107KXhbMF09PT0iKyI/KHg9eC5zbGljZSgxKXx8IioiLChhW3hdPWFbeF18fFtdKS51bnNoaWZ0KHYpKTooYVt4XT1hW3hdfHxbXSkucHVzaCh2KX19ZnVuY3Rpb24gQWEoYSxkLHYseCl7dmFyIEE9e30sST1hPT09cmk7ZnVuY3Rpb24gTihZKXt2YXIgVztyZXR1cm4gQVtZXT0hMCxmLmVhY2goYVtZXXx8W10sZnVuY3Rpb24oSixkdCl7dmFyIGZ0PWR0KGQsdix4KTtpZih0eXBlb2YgZnQ9PSJzdHJpbmciJiYhSSYmIUFbZnRdKXJldHVybiBkLmRhdGFUeXBlcy51bnNoaWZ0KGZ0KSxOKGZ0KSwhMTtpZihJKXJldHVybiEoVz1mdCl9KSxXfXJldHVybiBOKGQuZGF0YVR5cGVzWzBdKXx8IUFbIioiXSYmTigiKiIpfWZ1bmN0aW9uIGFpKGEsZCl7dmFyIHYseCxBPWYuYWpheFNldHRpbmdzLmZsYXRPcHRpb25zfHx7fTtmb3IodiBpbiBkKWRbdl0hPT12b2lkIDAmJigoQVt2XT9hOnh8fCh4PXt9KSlbdl09ZFt2XSk7cmV0dXJuIHgmJmYuZXh0ZW5kKCEwLGEseCksYX1mdW5jdGlvbiBObyhhLGQsdil7Zm9yKHZhciB4LEEsSSxOLFk9YS5jb250ZW50cyxXPWEuZGF0YVR5cGVzO1dbMF09PT0iKiI7KVcuc2hpZnQoKSx4PT09dm9pZCAwJiYoeD1hLm1pbWVUeXBlfHxkLmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LVR5cGUiKSk7aWYoeCl7Zm9yKEEgaW4gWSlpZihZW0FdJiZZW0FdLnRlc3QoeCkpe1cudW5zaGlmdChBKTticmVha319aWYoV1swXWluIHYpST1XWzBdO2Vsc2V7Zm9yKEEgaW4gdil7aWYoIVdbMF18fGEuY29udmVydGVyc1tBKyIgIitXWzBdXSl7ST1BO2JyZWFrfU58fChOPUEpfUk9SXx8Tn1pZihJKXJldHVybiBJIT09V1swXSYmVy51bnNoaWZ0KEkpLHZbSV19ZnVuY3Rpb24gT28oYSxkLHYseCl7dmFyIEEsSSxOLFksVyxKPXt9LGR0PWEuZGF0YVR5cGVzLnNsaWNlKCk7aWYoZHRbMV0pZm9yKE4gaW4gYS5jb252ZXJ0ZXJzKUpbTi50b0xvd2VyQ2FzZSgpXT1hLmNvbnZlcnRlcnNbTl07Zm9yKEk9ZHQuc2hpZnQoKTtJOylpZihhLnJlc3BvbnNlRmllbGRzW0ldJiYodlthLnJlc3BvbnNlRmllbGRzW0ldXT1kKSwhVyYmeCYmYS5kYXRhRmlsdGVyJiYoZD1hLmRhdGFGaWx0ZXIoZCxhLmRhdGFUeXBlKSksVz1JLEk9ZHQuc2hpZnQoKSxJKXtpZihJPT09IioiKUk9VztlbHNlIGlmKFchPT0iKiImJlchPT1JKXtpZihOPUpbVysiICIrSV18fEpbIiogIitJXSwhTil7Zm9yKEEgaW4gSilpZihZPUEuc3BsaXQoIiAiKSxZWzFdPT09SSYmKE49SltXKyIgIitZWzBdXXx8SlsiKiAiK1lbMF1dLE4pKXtOPT09ITA/Tj1KW0FdOkpbQV0hPT0hMCYmKEk9WVswXSxkdC51bnNoaWZ0KFlbMV0pKTticmVha319aWYoTiE9PSEwKWlmKE4mJmEudGhyb3dzKWQ9TihkKTtlbHNlIHRyeXtkPU4oZCl9Y2F0Y2goZnQpe3JldHVybntzdGF0ZToicGFyc2VyZXJyb3IiLGVycm9yOk4/ZnQ6Ik5vIGNvbnZlcnNpb24gZnJvbSAiK1crIiB0byAiK0l9fX19cmV0dXJue3N0YXRlOiJzdWNjZXNzIixkYXRhOmR9fWYuZXh0ZW5kKHthY3RpdmU6MCxsYXN0TW9kaWZpZWQ6e30sZXRhZzp7fSxhamF4U2V0dGluZ3M6e3VybDpHbi5ocmVmLHR5cGU6IkdFVCIsaXNMb2NhbDpQby50ZXN0KEduLnByb3RvY29sKSxnbG9iYWw6ITAscHJvY2Vzc0RhdGE6ITAsYXN5bmM6ITAsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsgY2hhcnNldD1VVEYtOCIsYWNjZXB0czp7IioiOlNhLHRleHQ6InRleHQvcGxhaW4iLGh0bWw6InRleHQvaHRtbCIseG1sOiJhcHBsaWNhdGlvbi94bWwsIHRleHQveG1sIixqc29uOiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L2phdmFzY3JpcHQifSxjb250ZW50czp7eG1sOi9cYnhtbFxiLyxodG1sOi9cYmh0bWwvLGpzb246L1xianNvblxiL30scmVzcG9uc2VGaWVsZHM6e3htbDoicmVzcG9uc2VYTUwiLHRleHQ6InJlc3BvbnNlVGV4dCIsanNvbjoicmVzcG9uc2VKU09OIn0sY29udmVydGVyczp7IiogdGV4dCI6U3RyaW5nLCJ0ZXh0IGh0bWwiOiEwLCJ0ZXh0IGpzb24iOkpTT04ucGFyc2UsInRleHQgeG1sIjpmLnBhcnNlWE1MfSxmbGF0T3B0aW9uczp7dXJsOiEwLGNvbnRleHQ6ITB9fSxhamF4U2V0dXA6ZnVuY3Rpb24oYSxkKXtyZXR1cm4gZD9haShhaShhLGYuYWpheFNldHRpbmdzKSxkKTphaShmLmFqYXhTZXR0aW5ncyxhKX0sYWpheFByZWZpbHRlcjpEYShrYSksYWpheFRyYW5zcG9ydDpEYShyaSksYWpheDpmdW5jdGlvbihhLGQpe3R5cGVvZiBhPT0ib2JqZWN0IiYmKGQ9YSxhPXZvaWQgMCksZD1kfHx7fTt2YXIgdix4LEEsSSxOLFksVyxKLGR0LGZ0LHN0PWYuYWpheFNldHVwKHt9LGQpLHl0PXN0LmNvbnRleHR8fHN0LE90PXN0LmNvbnRleHQmJih5dC5ub2RlVHlwZXx8eXQuanF1ZXJ5KT9mKHl0KTpmLmV2ZW50LFh0PWYuRGVmZXJyZWQoKSxWdD1mLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSx1ZT1zdC5zdGF0dXNDb2RlfHx7fSxvZT17fSxHZT17fSxxZT0iY2FuY2VsZWQiLHF0PXtyZWFkeVN0YXRlOjAsZ2V0UmVzcG9uc2VIZWFkZXI6ZnVuY3Rpb24oWXQpe3ZhciByZTtpZihXKXtpZighSSlmb3IoST17fTtyZT1Jby5leGVjKEEpOylJW3JlWzFdLnRvTG93ZXJDYXNlKCkrIiAiXT0oSVtyZVsxXS50b0xvd2VyQ2FzZSgpKyIgIl18fFtdKS5jb25jYXQocmVbMl0pO3JlPUlbWXQudG9Mb3dlckNhc2UoKSsiICJdfXJldHVybiByZT09bnVsbD9udWxsOnJlLmpvaW4oIiwgIil9LGdldEFsbFJlc3BvbnNlSGVhZGVyczpmdW5jdGlvbigpe3JldHVybiBXP0E6bnVsbH0sc2V0UmVxdWVzdEhlYWRlcjpmdW5jdGlvbihZdCxyZSl7cmV0dXJuIFc9PW51bGwmJihZdD1HZVtZdC50b0xvd2VyQ2FzZSgpXT1HZVtZdC50b0xvd2VyQ2FzZSgpXXx8WXQsb2VbWXRdPXJlKSx0aGlzfSxvdmVycmlkZU1pbWVUeXBlOmZ1bmN0aW9uKFl0KXtyZXR1cm4gVz09bnVsbCYmKHN0Lm1pbWVUeXBlPVl0KSx0aGlzfSxzdGF0dXNDb2RlOmZ1bmN0aW9uKFl0KXt2YXIgcmU7aWYoWXQpaWYoVylxdC5hbHdheXMoWXRbcXQuc3RhdHVzXSk7ZWxzZSBmb3IocmUgaW4gWXQpdWVbcmVdPVt1ZVtyZV0sWXRbcmVdXTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVuY3Rpb24oWXQpe3ZhciByZT1ZdHx8cWU7cmV0dXJuIHYmJnYuYWJvcnQocmUpLGJuKDAscmUpLHRoaXN9fTtpZihYdC5wcm9taXNlKHF0KSxzdC51cmw9KChhfHxzdC51cmx8fEduLmhyZWYpKyIiKS5yZXBsYWNlKEJvLEduLnByb3RvY29sKyIvLyIpLHN0LnR5cGU9ZC5tZXRob2R8fGQudHlwZXx8c3QubWV0aG9kfHxzdC50eXBlLHN0LmRhdGFUeXBlcz0oc3QuZGF0YVR5cGV8fCIqIikudG9Mb3dlckNhc2UoKS5tYXRjaChCdCl8fFsiIl0sc3QuY3Jvc3NEb21haW49PW51bGwpe1k9Yy5jcmVhdGVFbGVtZW50KCJhIik7dHJ5e1kuaHJlZj1zdC51cmwsWS5ocmVmPVkuaHJlZixzdC5jcm9zc0RvbWFpbj1paS5wcm90b2NvbCsiLy8iK2lpLmhvc3QhPVkucHJvdG9jb2wrIi8vIitZLmhvc3R9Y2F0Y2h7c3QuY3Jvc3NEb21haW49ITB9fWlmKHN0LmRhdGEmJnN0LnByb2Nlc3NEYXRhJiZ0eXBlb2Ygc3QuZGF0YSE9InN0cmluZyImJihzdC5kYXRhPWYucGFyYW0oc3QuZGF0YSxzdC50cmFkaXRpb25hbCkpLEFhKGthLHN0LGQscXQpLFcpcmV0dXJuIHF0O0o9Zi5ldmVudCYmc3QuZ2xvYmFsLEomJmYuYWN0aXZlKys9PT0wJiZmLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpLHN0LnR5cGU9c3QudHlwZS50b1VwcGVyQ2FzZSgpLHN0Lmhhc0NvbnRlbnQ9IUZvLnRlc3Qoc3QudHlwZSkseD1zdC51cmwucmVwbGFjZShEbywiIiksc3QuaGFzQ29udGVudD9zdC5kYXRhJiZzdC5wcm9jZXNzRGF0YSYmKHN0LmNvbnRlbnRUeXBlfHwiIikuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik9PT0wJiYoc3QuZGF0YT1zdC5kYXRhLnJlcGxhY2UoU28sIisiKSk6KGZ0PXN0LnVybC5zbGljZSh4Lmxlbmd0aCksc3QuZGF0YSYmKHN0LnByb2Nlc3NEYXRhfHx0eXBlb2Ygc3QuZGF0YT09InN0cmluZyIpJiYoeCs9KGVpLnRlc3QoeCk/IiYiOiI/Iikrc3QuZGF0YSxkZWxldGUgc3QuZGF0YSksc3QuY2FjaGU9PT0hMSYmKHg9eC5yZXBsYWNlKEFvLCIkMSIpLGZ0PShlaS50ZXN0KHgpPyImIjoiPyIpKyJfPSIreGEuZ3VpZCsrK2Z0KSxzdC51cmw9eCtmdCksc3QuaWZNb2RpZmllZCYmKGYubGFzdE1vZGlmaWVkW3hdJiZxdC5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Nb2RpZmllZC1TaW5jZSIsZi5sYXN0TW9kaWZpZWRbeF0pLGYuZXRhZ1t4XSYmcXQuc2V0UmVxdWVzdEhlYWRlcigiSWYtTm9uZS1NYXRjaCIsZi5ldGFnW3hdKSksKHN0LmRhdGEmJnN0Lmhhc0NvbnRlbnQmJnN0LmNvbnRlbnRUeXBlIT09ITF8fGQuY29udGVudFR5cGUpJiZxdC5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLHN0LmNvbnRlbnRUeXBlKSxxdC5zZXRSZXF1ZXN0SGVhZGVyKCJBY2NlcHQiLHN0LmRhdGFUeXBlc1swXSYmc3QuYWNjZXB0c1tzdC5kYXRhVHlwZXNbMF1dP3N0LmFjY2VwdHNbc3QuZGF0YVR5cGVzWzBdXSsoc3QuZGF0YVR5cGVzWzBdIT09IioiPyIsICIrU2ErIjsgcT0wLjAxIjoiIik6c3QuYWNjZXB0c1siKiJdKTtmb3IoZHQgaW4gc3QuaGVhZGVycylxdC5zZXRSZXF1ZXN0SGVhZGVyKGR0LHN0LmhlYWRlcnNbZHRdKTtpZihzdC5iZWZvcmVTZW5kJiYoc3QuYmVmb3JlU2VuZC5jYWxsKHl0LHF0LHN0KT09PSExfHxXKSlyZXR1cm4gcXQuYWJvcnQoKTtpZihxZT0iYWJvcnQiLFZ0LmFkZChzdC5jb21wbGV0ZSkscXQuZG9uZShzdC5zdWNjZXNzKSxxdC5mYWlsKHN0LmVycm9yKSx2PUFhKHJpLHN0LGQscXQpLCF2KWJuKC0xLCJObyBUcmFuc3BvcnQiKTtlbHNle2lmKHF0LnJlYWR5U3RhdGU9MSxKJiZPdC50cmlnZ2VyKCJhamF4U2VuZCIsW3F0LHN0XSksVylyZXR1cm4gcXQ7c3QuYXN5bmMmJnN0LnRpbWVvdXQ+MCYmKE49dC5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cXQuYWJvcnQoInRpbWVvdXQiKX0sc3QudGltZW91dCkpO3RyeXtXPSExLHYuc2VuZChvZSxibil9Y2F0Y2goWXQpe2lmKFcpdGhyb3cgWXQ7Ym4oLTEsWXQpfX1mdW5jdGlvbiBibihZdCxyZSxYbixvaSl7dmFyIFhlLFluLFllLGVuLG5uLFBlPXJlO1d8fChXPSEwLE4mJnQuY2xlYXJUaW1lb3V0KE4pLHY9dm9pZCAwLEE9b2l8fCIiLHF0LnJlYWR5U3RhdGU9WXQ+MD80OjAsWGU9WXQ+PTIwMCYmWXQ8MzAwfHxZdD09PTMwNCxYbiYmKGVuPU5vKHN0LHF0LFhuKSksIVhlJiZmLmluQXJyYXkoInNjcmlwdCIsc3QuZGF0YVR5cGVzKT4tMSYmZi5pbkFycmF5KCJqc29uIixzdC5kYXRhVHlwZXMpPDAmJihzdC5jb252ZXJ0ZXJzWyJ0ZXh0IHNjcmlwdCJdPWZ1bmN0aW9uKCl7fSksZW49T28oc3QsZW4scXQsWGUpLFhlPyhzdC5pZk1vZGlmaWVkJiYobm49cXQuZ2V0UmVzcG9uc2VIZWFkZXIoIkxhc3QtTW9kaWZpZWQiKSxubiYmKGYubGFzdE1vZGlmaWVkW3hdPW5uKSxubj1xdC5nZXRSZXNwb25zZUhlYWRlcigiZXRhZyIpLG5uJiYoZi5ldGFnW3hdPW5uKSksWXQ9PT0yMDR8fHN0LnR5cGU9PT0iSEVBRCI/UGU9Im5vY29udGVudCI6WXQ9PT0zMDQ/UGU9Im5vdG1vZGlmaWVkIjooUGU9ZW4uc3RhdGUsWW49ZW4uZGF0YSxZZT1lbi5lcnJvcixYZT0hWWUpKTooWWU9UGUsKFl0fHwhUGUpJiYoUGU9ImVycm9yIixZdDwwJiYoWXQ9MCkpKSxxdC5zdGF0dXM9WXQscXQuc3RhdHVzVGV4dD0ocmV8fFBlKSsiIixYZT9YdC5yZXNvbHZlV2l0aCh5dCxbWW4sUGUscXRdKTpYdC5yZWplY3RXaXRoKHl0LFtxdCxQZSxZZV0pLHF0LnN0YXR1c0NvZGUodWUpLHVlPXZvaWQgMCxKJiZPdC50cmlnZ2VyKFhlPyJhamF4U3VjY2VzcyI6ImFqYXhFcnJvciIsW3F0LHN0LFhlP1luOlllXSksVnQuZmlyZVdpdGgoeXQsW3F0LFBlXSksSiYmKE90LnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW3F0LHN0XSksLS1mLmFjdGl2ZXx8Zi5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIpKSl9cmV0dXJuIHF0fSxnZXRKU09OOmZ1bmN0aW9uKGEsZCx2KXtyZXR1cm4gZi5nZXQoYSxkLHYsImpzb24iKX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKGEsZCl7cmV0dXJuIGYuZ2V0KGEsdm9pZCAwLGQsInNjcmlwdCIpfX0pLGYuZWFjaChbImdldCIsInBvc3QiXSxmdW5jdGlvbihhLGQpe2ZbZF09ZnVuY3Rpb24odix4LEEsSSl7cmV0dXJuIFQoeCkmJihJPUl8fEEsQT14LHg9dm9pZCAwKSxmLmFqYXgoZi5leHRlbmQoe3VybDp2LHR5cGU6ZCxkYXRhVHlwZTpJLGRhdGE6eCxzdWNjZXNzOkF9LGYuaXNQbGFpbk9iamVjdCh2KSYmdikpfX0pLGYuYWpheFByZWZpbHRlcihmdW5jdGlvbihhKXt2YXIgZDtmb3IoZCBpbiBhLmhlYWRlcnMpZC50b0xvd2VyQ2FzZSgpPT09ImNvbnRlbnQtdHlwZSImJihhLmNvbnRlbnRUeXBlPWEuaGVhZGVyc1tkXXx8IiIpfSksZi5fZXZhbFVybD1mdW5jdGlvbihhLGQsdil7cmV0dXJuIGYuYWpheCh7dXJsOmEsdHlwZToiR0VUIixkYXRhVHlwZToic2NyaXB0IixjYWNoZTohMCxhc3luYzohMSxnbG9iYWw6ITEsY29udmVydGVyczp7InRleHQgc2NyaXB0IjpmdW5jdGlvbigpe319LGRhdGFGaWx0ZXI6ZnVuY3Rpb24oeCl7Zi5nbG9iYWxFdmFsKHgsZCx2KX19KX0sZi5mbi5leHRlbmQoe3dyYXBBbGw6ZnVuY3Rpb24oYSl7dmFyIGQ7cmV0dXJuIHRoaXNbMF0mJihUKGEpJiYoYT1hLmNhbGwodGhpc1swXSkpLGQ9ZihhLHRoaXNbMF0ub3duZXJEb2N1bWVudCkuZXEoMCkuY2xvbmUoITApLHRoaXNbMF0ucGFyZW50Tm9kZSYmZC5pbnNlcnRCZWZvcmUodGhpc1swXSksZC5tYXAoZnVuY3Rpb24oKXtmb3IodmFyIHY9dGhpczt2LmZpcnN0RWxlbWVudENoaWxkOyl2PXYuZmlyc3RFbGVtZW50Q2hpbGQ7cmV0dXJuIHZ9KS5hcHBlbmQodGhpcykpLHRoaXN9LHdyYXBJbm5lcjpmdW5jdGlvbihhKXtyZXR1cm4gVChhKT90aGlzLmVhY2goZnVuY3Rpb24oZCl7Zih0aGlzKS53cmFwSW5uZXIoYS5jYWxsKHRoaXMsZCkpfSk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9Zih0aGlzKSx2PWQuY29udGVudHMoKTt2Lmxlbmd0aD92LndyYXBBbGwoYSk6ZC5hcHBlbmQoYSl9KX0sd3JhcDpmdW5jdGlvbihhKXt2YXIgZD1UKGEpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24odil7Zih0aGlzKS53cmFwQWxsKGQ/YS5jYWxsKHRoaXMsdik6YSl9KX0sdW53cmFwOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnBhcmVudChhKS5ub3QoImJvZHkiKS5lYWNoKGZ1bmN0aW9uKCl7Zih0aGlzKS5yZXBsYWNlV2l0aCh0aGlzLmNoaWxkTm9kZXMpfSksdGhpc319KSxmLmV4cHIucHNldWRvcy5oaWRkZW49ZnVuY3Rpb24oYSl7cmV0dXJuIWYuZXhwci5wc2V1ZG9zLnZpc2libGUoYSl9LGYuZXhwci5wc2V1ZG9zLnZpc2libGU9ZnVuY3Rpb24oYSl7cmV0dXJuISEoYS5vZmZzZXRXaWR0aHx8YS5vZmZzZXRIZWlnaHR8fGEuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgpfSxmLmFqYXhTZXR0aW5ncy54aHI9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIG5ldyB0LlhNTEh0dHBSZXF1ZXN0fWNhdGNoe319O3ZhciBFbz17MDoyMDAsMTIyMzoyMDR9LHFuPWYuYWpheFNldHRpbmdzLnhocigpO3kuY29ycz0hIXFuJiYid2l0aENyZWRlbnRpYWxzImluIHFuLHkuYWpheD1xbj0hIXFuLGYuYWpheFRyYW5zcG9ydChmdW5jdGlvbihhKXt2YXIgZCx2O2lmKHkuY29yc3x8cW4mJiFhLmNyb3NzRG9tYWluKXJldHVybntzZW5kOmZ1bmN0aW9uKHgsQSl7dmFyIEksTj1hLnhocigpO2lmKE4ub3BlbihhLnR5cGUsYS51cmwsYS5hc3luYyxhLnVzZXJuYW1lLGEucGFzc3dvcmQpLGEueGhyRmllbGRzKWZvcihJIGluIGEueGhyRmllbGRzKU5bSV09YS54aHJGaWVsZHNbSV07YS5taW1lVHlwZSYmTi5vdmVycmlkZU1pbWVUeXBlJiZOLm92ZXJyaWRlTWltZVR5cGUoYS5taW1lVHlwZSksIWEuY3Jvc3NEb21haW4mJiF4WyJYLVJlcXVlc3RlZC1XaXRoIl0mJih4WyJYLVJlcXVlc3RlZC1XaXRoIl09IlhNTEh0dHBSZXF1ZXN0Iik7Zm9yKEkgaW4geClOLnNldFJlcXVlc3RIZWFkZXIoSSx4W0ldKTtkPWZ1bmN0aW9uKFkpe3JldHVybiBmdW5jdGlvbigpe2QmJihkPXY9Ti5vbmxvYWQ9Ti5vbmVycm9yPU4ub25hYm9ydD1OLm9udGltZW91dD1OLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLFk9PT0iYWJvcnQiP04uYWJvcnQoKTpZPT09ImVycm9yIj90eXBlb2YgTi5zdGF0dXMhPSJudW1iZXIiP0EoMCwiZXJyb3IiKTpBKE4uc3RhdHVzLE4uc3RhdHVzVGV4dCk6QShFb1tOLnN0YXR1c118fE4uc3RhdHVzLE4uc3RhdHVzVGV4dCwoTi5yZXNwb25zZVR5cGV8fCJ0ZXh0IikhPT0idGV4dCJ8fHR5cGVvZiBOLnJlc3BvbnNlVGV4dCE9InN0cmluZyI/e2JpbmFyeTpOLnJlc3BvbnNlfTp7dGV4dDpOLnJlc3BvbnNlVGV4dH0sTi5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSkpfX0sTi5vbmxvYWQ9ZCgpLHY9Ti5vbmVycm9yPU4ub250aW1lb3V0PWQoImVycm9yIiksTi5vbmFib3J0IT09dm9pZCAwP04ub25hYm9ydD12Ok4ub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7Ti5yZWFkeVN0YXRlPT09NCYmdC5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZCYmdigpfSl9LGQ9ZCgiYWJvcnQiKTt0cnl7Ti5zZW5kKGEuaGFzQ29udGVudCYmYS5kYXRhfHxudWxsKX1jYXRjaChZKXtpZihkKXRocm93IFl9fSxhYm9ydDpmdW5jdGlvbigpe2QmJmQoKX19fSksZi5hamF4UHJlZmlsdGVyKGZ1bmN0aW9uKGEpe2EuY3Jvc3NEb21haW4mJihhLmNvbnRlbnRzLnNjcmlwdD0hMSl9KSxmLmFqYXhTZXR1cCh7YWNjZXB0czp7c2NyaXB0OiJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdCJ9LGNvbnRlbnRzOntzY3JpcHQ6L1xiKD86amF2YXxlY21hKXNjcmlwdFxiL30sY29udmVydGVyczp7InRleHQgc2NyaXB0IjpmdW5jdGlvbihhKXtyZXR1cm4gZi5nbG9iYWxFdmFsKGEpLGF9fX0pLGYuYWpheFByZWZpbHRlcigic2NyaXB0IixmdW5jdGlvbihhKXthLmNhY2hlPT09dm9pZCAwJiYoYS5jYWNoZT0hMSksYS5jcm9zc0RvbWFpbiYmKGEudHlwZT0iR0VUIil9KSxmLmFqYXhUcmFuc3BvcnQoInNjcmlwdCIsZnVuY3Rpb24oYSl7aWYoYS5jcm9zc0RvbWFpbnx8YS5zY3JpcHRBdHRycyl7dmFyIGQsdjtyZXR1cm57c2VuZDpmdW5jdGlvbih4LEEpe2Q9ZigiPHNjcmlwdD4iKS5hdHRyKGEuc2NyaXB0QXR0cnN8fHt9KS5wcm9wKHtjaGFyc2V0OmEuc2NyaXB0Q2hhcnNldCxzcmM6YS51cmx9KS5vbigibG9hZCBlcnJvciIsdj1mdW5jdGlvbihJKXtkLnJlbW92ZSgpLHY9bnVsbCxJJiZBKEkudHlwZT09PSJlcnJvciI/NDA0OjIwMCxJLnR5cGUpfSksYy5oZWFkLmFwcGVuZENoaWxkKGRbMF0pfSxhYm9ydDpmdW5jdGlvbigpe3YmJnYoKX19fX0pO3ZhciBJYT1bXSxzaT0vKD0pXD8oPz0mfCQpfFw/XD8vO2YuYWpheFNldHVwKHtqc29ucDoiY2FsbGJhY2siLGpzb25wQ2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgYT1JYS5wb3AoKXx8Zi5leHBhbmRvKyJfIit4YS5ndWlkKys7cmV0dXJuIHRoaXNbYV09ITAsYX19KSxmLmFqYXhQcmVmaWx0ZXIoImpzb24ganNvbnAiLGZ1bmN0aW9uKGEsZCx2KXt2YXIgeCxBLEksTj1hLmpzb25wIT09ITEmJihzaS50ZXN0KGEudXJsKT8idXJsIjp0eXBlb2YgYS5kYXRhPT0ic3RyaW5nIiYmKGEuY29udGVudFR5cGV8fCIiKS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKT09PTAmJnNpLnRlc3QoYS5kYXRhKSYmImRhdGEiKTtpZihOfHxhLmRhdGFUeXBlc1swXT09PSJqc29ucCIpcmV0dXJuIHg9YS5qc29ucENhbGxiYWNrPVQoYS5qc29ucENhbGxiYWNrKT9hLmpzb25wQ2FsbGJhY2soKTphLmpzb25wQ2FsbGJhY2ssTj9hW05dPWFbTl0ucmVwbGFjZShzaSwiJDEiK3gpOmEuanNvbnAhPT0hMSYmKGEudXJsKz0oZWkudGVzdChhLnVybCk/IiYiOiI/IikrYS5qc29ucCsiPSIreCksYS5jb252ZXJ0ZXJzWyJzY3JpcHQganNvbiJdPWZ1bmN0aW9uKCl7cmV0dXJuIEl8fGYuZXJyb3IoeCsiIHdhcyBub3QgY2FsbGVkIiksSVswXX0sYS5kYXRhVHlwZXNbMF09Impzb24iLEE9dFt4XSx0W3hdPWZ1bmN0aW9uKCl7ST1hcmd1bWVudHN9LHYuYWx3YXlzKGZ1bmN0aW9uKCl7QT09PXZvaWQgMD9mKHQpLnJlbW92ZVByb3AoeCk6dFt4XT1BLGFbeF0mJihhLmpzb25wQ2FsbGJhY2s9ZC5qc29ucENhbGxiYWNrLElhLnB1c2goeCkpLEkmJlQoQSkmJkEoSVswXSksST1BPXZvaWQgMH0pLCJzY3JpcHQifSkseS5jcmVhdGVIVE1MRG9jdW1lbnQ9ZnVuY3Rpb24oKXt2YXIgYT1jLmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIikuYm9keTtyZXR1cm4gYS5pbm5lckhUTUw9Ijxmb3JtPjwvZm9ybT48Zm9ybT48L2Zvcm0+IixhLmNoaWxkTm9kZXMubGVuZ3RoPT09Mn0oKSxmLnBhcnNlSFRNTD1mdW5jdGlvbihhLGQsdil7aWYodHlwZW9mIGEhPSJzdHJpbmciKXJldHVybltdO3R5cGVvZiBkPT0iYm9vbGVhbiImJih2PWQsZD0hMSk7dmFyIHgsQSxJO3JldHVybiBkfHwoeS5jcmVhdGVIVE1MRG9jdW1lbnQ/KGQ9Yy5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpLHg9ZC5jcmVhdGVFbGVtZW50KCJiYXNlIikseC5ocmVmPWMubG9jYXRpb24uaHJlZixkLmhlYWQuYXBwZW5kQ2hpbGQoeCkpOmQ9YyksQT1udC5leGVjKGEpLEk9IXYmJltdLEE/W2QuY3JlYXRlRWxlbWVudChBWzFdKV06KEE9YWEoW2FdLGQsSSksSSYmSS5sZW5ndGgmJmYoSSkucmVtb3ZlKCksZi5tZXJnZShbXSxBLmNoaWxkTm9kZXMpKX0sZi5mbi5sb2FkPWZ1bmN0aW9uKGEsZCx2KXt2YXIgeCxBLEksTj10aGlzLFk9YS5pbmRleE9mKCIgIik7cmV0dXJuIFk+LTEmJih4PWhuKGEuc2xpY2UoWSkpLGE9YS5zbGljZSgwLFkpKSxUKGQpPyh2PWQsZD12b2lkIDApOmQmJnR5cGVvZiBkPT0ib2JqZWN0IiYmKEE9IlBPU1QiKSxOLmxlbmd0aD4wJiZmLmFqYXgoe3VybDphLHR5cGU6QXx8IkdFVCIsZGF0YVR5cGU6Imh0bWwiLGRhdGE6ZH0pLmRvbmUoZnVuY3Rpb24oVyl7ST1hcmd1bWVudHMsTi5odG1sKHg/ZigiPGRpdj4iKS5hcHBlbmQoZi5wYXJzZUhUTUwoVykpLmZpbmQoeCk6Vyl9KS5hbHdheXModiYmZnVuY3Rpb24oVyxKKXtOLmVhY2goZnVuY3Rpb24oKXt2LmFwcGx5KHRoaXMsSXx8W1cucmVzcG9uc2VUZXh0LEosV10pfSl9KSx0aGlzfSxmLmV4cHIucHNldWRvcy5hbmltYXRlZD1mdW5jdGlvbihhKXtyZXR1cm4gZi5ncmVwKGYudGltZXJzLGZ1bmN0aW9uKGQpe3JldHVybiBhPT09ZC5lbGVtfSkubGVuZ3RofSxmLm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGEsZCx2KXt2YXIgeCxBLEksTixZLFcsSixkdD1mLmNzcyhhLCJwb3NpdGlvbiIpLGZ0PWYoYSksc3Q9e307ZHQ9PT0ic3RhdGljIiYmKGEuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIiksWT1mdC5vZmZzZXQoKSxJPWYuY3NzKGEsInRvcCIpLFc9Zi5jc3MoYSwibGVmdCIpLEo9KGR0PT09ImFic29sdXRlInx8ZHQ9PT0iZml4ZWQiKSYmKEkrVykuaW5kZXhPZigiYXV0byIpPi0xLEo/KHg9ZnQucG9zaXRpb24oKSxOPXgudG9wLEE9eC5sZWZ0KTooTj1wYXJzZUZsb2F0KEkpfHwwLEE9cGFyc2VGbG9hdChXKXx8MCksVChkKSYmKGQ9ZC5jYWxsKGEsdixmLmV4dGVuZCh7fSxZKSkpLGQudG9wIT1udWxsJiYoc3QudG9wPWQudG9wLVkudG9wK04pLGQubGVmdCE9bnVsbCYmKHN0LmxlZnQ9ZC5sZWZ0LVkubGVmdCtBKSwidXNpbmciaW4gZD9kLnVzaW5nLmNhbGwoYSxzdCk6ZnQuY3NzKHN0KX19LGYuZm4uZXh0ZW5kKHtvZmZzZXQ6ZnVuY3Rpb24oYSl7aWYoYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gYT09PXZvaWQgMD90aGlzOnRoaXMuZWFjaChmdW5jdGlvbihBKXtmLm9mZnNldC5zZXRPZmZzZXQodGhpcyxhLEEpfSk7dmFyIGQsdix4PXRoaXNbMF07aWYoeClyZXR1cm4geC5nZXRDbGllbnRSZWN0cygpLmxlbmd0aD8oZD14LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHY9eC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LHt0b3A6ZC50b3Ardi5wYWdlWU9mZnNldCxsZWZ0OmQubGVmdCt2LnBhZ2VYT2Zmc2V0fSk6e3RvcDowLGxlZnQ6MH19LHBvc2l0aW9uOmZ1bmN0aW9uKCl7aWYodGhpc1swXSl7dmFyIGEsZCx2LHg9dGhpc1swXSxBPXt0b3A6MCxsZWZ0OjB9O2lmKGYuY3NzKHgsInBvc2l0aW9uIik9PT0iZml4ZWQiKWQ9eC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlbHNle2ZvcihkPXRoaXMub2Zmc2V0KCksdj14Lm93bmVyRG9jdW1lbnQsYT14Lm9mZnNldFBhcmVudHx8di5kb2N1bWVudEVsZW1lbnQ7YSYmKGE9PT12LmJvZHl8fGE9PT12LmRvY3VtZW50RWxlbWVudCkmJmYuY3NzKGEsInBvc2l0aW9uIik9PT0ic3RhdGljIjspYT1hLnBhcmVudE5vZGU7YSYmYSE9PXgmJmEubm9kZVR5cGU9PT0xJiYoQT1mKGEpLm9mZnNldCgpLEEudG9wKz1mLmNzcyhhLCJib3JkZXJUb3BXaWR0aCIsITApLEEubGVmdCs9Zi5jc3MoYSwiYm9yZGVyTGVmdFdpZHRoIiwhMCkpfXJldHVybnt0b3A6ZC50b3AtQS50b3AtZi5jc3MoeCwibWFyZ2luVG9wIiwhMCksbGVmdDpkLmxlZnQtQS5sZWZ0LWYuY3NzKHgsIm1hcmdpbkxlZnQiLCEwKX19fSxvZmZzZXRQYXJlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcy5vZmZzZXRQYXJlbnQ7YSYmZi5jc3MoYSwicG9zaXRpb24iKT09PSJzdGF0aWMiOylhPWEub2Zmc2V0UGFyZW50O3JldHVybiBhfHxqZX0pfX0pLGYuZWFjaCh7c2Nyb2xsTGVmdDoicGFnZVhPZmZzZXQiLHNjcm9sbFRvcDoicGFnZVlPZmZzZXQifSxmdW5jdGlvbihhLGQpe3ZhciB2PWQ9PT0icGFnZVlPZmZzZXQiO2YuZm5bYV09ZnVuY3Rpb24oeCl7cmV0dXJuIEsodGhpcyxmdW5jdGlvbihBLEksTil7dmFyIFk7aWYoUChBKT9ZPUE6QS5ub2RlVHlwZT09PTkmJihZPUEuZGVmYXVsdFZpZXcpLE49PT12b2lkIDApcmV0dXJuIFk/WVtkXTpBW0ldO1k/WS5zY3JvbGxUbyh2P1kucGFnZVhPZmZzZXQ6Tix2P046WS5wYWdlWU9mZnNldCk6QVtJXT1OfSxhLHgsYXJndW1lbnRzLmxlbmd0aCl9fSksZi5lYWNoKFsidG9wIiwibGVmdCJdLGZ1bmN0aW9uKGEsZCl7Zi5jc3NIb29rc1tkXT1jYSh5LnBpeGVsUG9zaXRpb24sZnVuY3Rpb24odix4KXtpZih4KXJldHVybiB4PVVuKHYsZCksJHIudGVzdCh4KT9mKHYpLnBvc2l0aW9uKClbZF0rInB4Ijp4fSl9KSxmLmVhY2goe0hlaWdodDoiaGVpZ2h0IixXaWR0aDoid2lkdGgifSxmdW5jdGlvbihhLGQpe2YuZWFjaCh7cGFkZGluZzoiaW5uZXIiK2EsY29udGVudDpkLCIiOiJvdXRlciIrYX0sZnVuY3Rpb24odix4KXtmLmZuW3hdPWZ1bmN0aW9uKEEsSSl7dmFyIE49YXJndW1lbnRzLmxlbmd0aCYmKHZ8fHR5cGVvZiBBIT0iYm9vbGVhbiIpLFk9dnx8KEE9PT0hMHx8ST09PSEwPyJtYXJnaW4iOiJib3JkZXIiKTtyZXR1cm4gSyh0aGlzLGZ1bmN0aW9uKFcsSixkdCl7dmFyIGZ0O3JldHVybiBQKFcpP3guaW5kZXhPZigib3V0ZXIiKT09PTA/V1siaW5uZXIiK2FdOlcuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK2FdOlcubm9kZVR5cGU9PT05PyhmdD1XLmRvY3VtZW50RWxlbWVudCxNYXRoLm1heChXLmJvZHlbInNjcm9sbCIrYV0sZnRbInNjcm9sbCIrYV0sVy5ib2R5WyJvZmZzZXQiK2FdLGZ0WyJvZmZzZXQiK2FdLGZ0WyJjbGllbnQiK2FdKSk6ZHQ9PT12b2lkIDA/Zi5jc3MoVyxKLFkpOmYuc3R5bGUoVyxKLGR0LFkpfSxkLE4/QTp2b2lkIDAsTil9fSl9KSxmLmVhY2goWyJhamF4U3RhcnQiLCJhamF4U3RvcCIsImFqYXhDb21wbGV0ZSIsImFqYXhFcnJvciIsImFqYXhTdWNjZXNzIiwiYWpheFNlbmQiXSxmdW5jdGlvbihhLGQpe2YuZm5bZF09ZnVuY3Rpb24odil7cmV0dXJuIHRoaXMub24oZCx2KX19KSxmLmZuLmV4dGVuZCh7YmluZDpmdW5jdGlvbihhLGQsdil7cmV0dXJuIHRoaXMub24oYSxudWxsLGQsdil9LHVuYmluZDpmdW5jdGlvbihhLGQpe3JldHVybiB0aGlzLm9mZihhLG51bGwsZCl9LGRlbGVnYXRlOmZ1bmN0aW9uKGEsZCx2LHgpe3JldHVybiB0aGlzLm9uKGQsYSx2LHgpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKGEsZCx2KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD09PTE/dGhpcy5vZmYoYSwiKioiKTp0aGlzLm9mZihkLGF8fCIqKiIsdil9LGhvdmVyOmZ1bmN0aW9uKGEsZCl7cmV0dXJuIHRoaXMub24oIm1vdXNlZW50ZXIiLGEpLm9uKCJtb3VzZWxlYXZlIixkfHxhKX19KSxmLmVhY2goImJsdXIgZm9jdXMgZm9jdXNpbiBmb2N1c291dCByZXNpemUgc2Nyb2xsIGNsaWNrIGRibGNsaWNrIG1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlIGNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgY29udGV4dG1lbnUiLnNwbGl0KCIgIiksZnVuY3Rpb24oYSxkKXtmLmZuW2RdPWZ1bmN0aW9uKHYseCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MD90aGlzLm9uKGQsbnVsbCx2LHgpOnRoaXMudHJpZ2dlcihkKX19KTt2YXIgUm89L15bXHNcdUZFRkZceEEwXSt8KFteXHNcdUZFRkZceEEwXSlbXHNcdUZFRkZceEEwXSskL2c7Zi5wcm94eT1mdW5jdGlvbihhLGQpe3ZhciB2LHgsQTtpZih0eXBlb2YgZD09InN0cmluZyImJih2PWFbZF0sZD1hLGE9diksISFUKGEpKXJldHVybiB4PXMuY2FsbChhcmd1bWVudHMsMiksQT1mdW5jdGlvbigpe3JldHVybiBhLmFwcGx5KGR8fHRoaXMseC5jb25jYXQocy5jYWxsKGFyZ3VtZW50cykpKX0sQS5ndWlkPWEuZ3VpZD1hLmd1aWR8fGYuZ3VpZCsrLEF9LGYuaG9sZFJlYWR5PWZ1bmN0aW9uKGEpe2E/Zi5yZWFkeVdhaXQrKzpmLnJlYWR5KCEwKX0sZi5pc0FycmF5PUFycmF5LmlzQXJyYXksZi5wYXJzZUpTT049SlNPTi5wYXJzZSxmLm5vZGVOYW1lPVgsZi5pc0Z1bmN0aW9uPVQsZi5pc1dpbmRvdz1QLGYuY2FtZWxDYXNlPWd0LGYudHlwZT1fLGYubm93PURhdGUubm93LGYuaXNOdW1lcmljPWZ1bmN0aW9uKGEpe3ZhciBkPWYudHlwZShhKTtyZXR1cm4oZD09PSJudW1iZXIifHxkPT09InN0cmluZyIpJiYhaXNOYU4oYS1wYXJzZUZsb2F0KGEpKX0sZi50cmltPWZ1bmN0aW9uKGEpe3JldHVybiBhPT1udWxsPyIiOihhKyIiKS5yZXBsYWNlKFJvLCIkMSIpfSx0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kJiZkZWZpbmUoImpxdWVyeSIsW10sZnVuY3Rpb24oKXtyZXR1cm4gZn0pO3ZhciBMbz10LmpRdWVyeSx6bz10LiQ7cmV0dXJuIGYubm9Db25mbGljdD1mdW5jdGlvbihhKXtyZXR1cm4gdC4kPT09ZiYmKHQuJD16byksYSYmdC5qUXVlcnk9PT1mJiYodC5qUXVlcnk9TG8pLGZ9LHR5cGVvZiBlPiJ1IiYmKHQualF1ZXJ5PXQuJD1mKSxmfSl9KTt2YXIgcm89aWUoUmEoKSksdWQ9aWUoYWUoKSk7dmFyIFVsPWllKGFlKCksMSk7dmFyIEthPWllKGFlKCksMSk7dmFyIEg9S2EuZGVmYXVsdCxidD1mdW5jdGlvbih0LGUpe2lmKGJ0LmZhY3RvcnkodCxlKSlyZXR1cm4gYnQ7aWYodGhpcyBpbnN0YW5jZW9mIGJ0KXJldHVybiBIKHQpLkRhdGFUYWJsZShlKTtlPXQ7dmFyIG49dGhpcyxyPWU9PT12b2lkIDAscz10aGlzLmxlbmd0aDtyZXR1cm4gciYmKGU9e30pLHRoaXMuYXBpPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBXdCh0aGlzKX0sdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGk9e30sbz1zPjE/cWEoaSxlLCEwKTplLHU9MCxwLGI9dGhpcy5nZXRBdHRyaWJ1dGUoImlkIiksZz1idC5kZWZhdWx0cyxtPUgodGhpcyk7aWYodGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIT0idGFibGUiKXtPZShudWxsLDAsIk5vbi10YWJsZSBub2RlIGluaXRpYWxpc2F0aW9uICgiK3RoaXMubm9kZU5hbWUrIikiLDIpO3JldHVybn1IKHRoaXMpLnRyaWdnZXIoIm9wdGlvbnMuZHQiLG8pLGphKGcpLGVzKGcuY29sdW1uKSxzbihnLGcsITApLHNuKGcuY29sdW1uLGcuY29sdW1uLCEwKSxzbihnLEguZXh0ZW5kKG8sbS5kYXRhKCkpLCEwKTt2YXIgQz1idC5zZXR0aW5ncztmb3IodT0wLHA9Qy5sZW5ndGg7dTxwO3UrKyl7dmFyIHk9Q1t1XTtpZih5Lm5UYWJsZT09dGhpc3x8eS5uVEhlYWQmJnkublRIZWFkLnBhcmVudE5vZGU9PXRoaXN8fHkublRGb290JiZ5Lm5URm9vdC5wYXJlbnROb2RlPT10aGlzKXt2YXIgVD1vLmJSZXRyaWV2ZSE9PXZvaWQgMD9vLmJSZXRyaWV2ZTpnLmJSZXRyaWV2ZSxQPW8uYkRlc3Ryb3khPT12b2lkIDA/by5iRGVzdHJveTpnLmJEZXN0cm95O2lmKHJ8fFQpcmV0dXJuIHkub0luc3RhbmNlO2lmKFApe25ldyBidC5BcGkoeSkuZGVzdHJveSgpO2JyZWFrfWVsc2V7T2UoeSwwLCJDYW5ub3QgcmVpbml0aWFsaXNlIERhdGFUYWJsZSIsMyk7cmV0dXJufX1pZih5LnNUYWJsZUlkPT10aGlzLmlkKXtDLnNwbGljZSh1LDEpO2JyZWFrfX0oYj09PW51bGx8fGI9PT0iIikmJihiPSJEYXRhVGFibGVzX1RhYmxlXyIrYnQuZXh0Ll91bmlxdWUrKyx0aGlzLmlkPWIpO3ZhciBjPUguZXh0ZW5kKCEwLHt9LGJ0Lm1vZGVscy5vU2V0dGluZ3Mse3NEZXN0cm95V2lkdGg6bVswXS5zdHlsZS53aWR0aCxzSW5zdGFuY2U6YixzVGFibGVJZDpiLGNvbGdyb3VwOkgoIjxjb2xncm91cD4iKS5wcmVwZW5kVG8odGhpcyksZmFzdERhdGE6ZnVuY3Rpb24oQixMLFIpe3JldHVybiBSZShjLEIsTCxSKX19KTtjLm5UYWJsZT10aGlzLGMub0luaXQ9byxDLnB1c2goYyksYy5hcGk9bmV3IFd0KGMpLGMub0luc3RhbmNlPW4ubGVuZ3RoPT09MT9uOm0uZGF0YVRhYmxlKCksamEobyksby5hTGVuZ3RoTWVudSYmIW8uaURpc3BsYXlMZW5ndGgmJihvLmlEaXNwbGF5TGVuZ3RoPUFycmF5LmlzQXJyYXkoby5hTGVuZ3RoTWVudVswXSk/by5hTGVuZ3RoTWVudVswXVswXTpILmlzUGxhaW5PYmplY3Qoby5hTGVuZ3RoTWVudVswXSk/by5hTGVuZ3RoTWVudVswXS52YWx1ZTpvLmFMZW5ndGhNZW51WzBdKSxvPXFhKEguZXh0ZW5kKCEwLHt9LGcpLG8pLGxuKGMub0ZlYXR1cmVzLG8sWyJiUGFnaW5hdGUiLCJiTGVuZ3RoQ2hhbmdlIiwiYkZpbHRlciIsImJTb3J0IiwiYlNvcnRNdWx0aSIsImJJbmZvIiwiYlByb2Nlc3NpbmciLCJiQXV0b1dpZHRoIiwiYlNvcnRDbGFzc2VzIiwiYlNlcnZlclNpZGUiLCJiRGVmZXJSZW5kZXIiXSksbG4oYyxvLFsiYWpheCIsImZuRm9ybWF0TnVtYmVyIiwic1NlcnZlck1ldGhvZCIsImFhU29ydGluZyIsImFhU29ydGluZ0ZpeGVkIiwiYUxlbmd0aE1lbnUiLCJzUGFnaW5hdGlvblR5cGUiLCJpU3RhdGVEdXJhdGlvbiIsImJTb3J0Q2VsbHNUb3AiLCJpVGFiSW5kZXgiLCJzRG9tIiwiZm5TdGF0ZUxvYWRDYWxsYmFjayIsImZuU3RhdGVTYXZlQ2FsbGJhY2siLCJyZW5kZXJlciIsInNlYXJjaERlbGF5Iiwicm93SWQiLCJjYXB0aW9uIiwibGF5b3V0Iiwib3JkZXJEZXNjUmV2ZXJzZSIsInR5cGVEZXRlY3QiLFsiaUNvb2tpZUR1cmF0aW9uIiwiaVN0YXRlRHVyYXRpb24iXSxbIm9TZWFyY2giLCJvUHJldmlvdXNTZWFyY2giXSxbImFvU2VhcmNoQ29scyIsImFvUHJlU2VhcmNoQ29scyJdLFsiaURpc3BsYXlMZW5ndGgiLCJfaURpc3BsYXlMZW5ndGgiXV0pLGxuKGMub1Njcm9sbCxvLFtbInNTY3JvbGxYIiwic1giXSxbInNTY3JvbGxYSW5uZXIiLCJzWElubmVyIl0sWyJzU2Nyb2xsWSIsInNZIl0sWyJiU2Nyb2xsQ29sbGFwc2UiLCJiQ29sbGFwc2UiXV0pLGxuKGMub0xhbmd1YWdlLG8sImZuSW5mb0NhbGxiYWNrIiksQmUoYywiYW9EcmF3Q2FsbGJhY2siLG8uZm5EcmF3Q2FsbGJhY2spLEJlKGMsImFvU3RhdGVTYXZlUGFyYW1zIixvLmZuU3RhdGVTYXZlUGFyYW1zKSxCZShjLCJhb1N0YXRlTG9hZFBhcmFtcyIsby5mblN0YXRlTG9hZFBhcmFtcyksQmUoYywiYW9TdGF0ZUxvYWRlZCIsby5mblN0YXRlTG9hZGVkKSxCZShjLCJhb1Jvd0NhbGxiYWNrIixvLmZuUm93Q2FsbGJhY2spLEJlKGMsImFvUm93Q3JlYXRlZENhbGxiYWNrIixvLmZuQ3JlYXRlZFJvdyksQmUoYywiYW9IZWFkZXJDYWxsYmFjayIsby5mbkhlYWRlckNhbGxiYWNrKSxCZShjLCJhb0Zvb3RlckNhbGxiYWNrIixvLmZuRm9vdGVyQ2FsbGJhY2spLEJlKGMsImFvSW5pdENvbXBsZXRlIixvLmZuSW5pdENvbXBsZXRlKSxCZShjLCJhb1ByZURyYXdDYWxsYmFjayIsby5mblByZURyYXdDYWxsYmFjayksYy5yb3dJZEZuPUVuKG8ucm93SWQpLHJsKGMpO3ZhciBsPWMub0NsYXNzZXM7SC5leHRlbmQobCxidC5leHQuY2xhc3NlcyxvLm9DbGFzc2VzKSxtLmFkZENsYXNzKGwudGFibGUpLGMub0ZlYXR1cmVzLmJQYWdpbmF0ZXx8KG8uaURpc3BsYXlTdGFydD0wKSxjLmlJbml0RGlzcGxheVN0YXJ0PT09dm9pZCAwJiYoYy5pSW5pdERpc3BsYXlTdGFydD1vLmlEaXNwbGF5U3RhcnQsYy5faURpc3BsYXlTdGFydD1vLmlEaXNwbGF5U3RhcnQpO3ZhciBoPW8uaURlZmVyTG9hZGluZztpZihoIT09bnVsbCl7Yy5kZWZlckxvYWRpbmc9ITA7dmFyIF89QXJyYXkuaXNBcnJheShoKTtjLl9pUmVjb3Jkc0Rpc3BsYXk9Xz9oWzBdOmgsYy5faVJlY29yZHNUb3RhbD1fP2hbMV06aH12YXIgRj1bXSxPPXRoaXMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRoZWFkIiksZj1scyhjLE9bMF0pO2lmKG8uYW9Db2x1bW5zKUY9by5hb0NvbHVtbnM7ZWxzZSBpZihmLmxlbmd0aClmb3IodT0wLHA9ZlswXS5sZW5ndGg7dTxwO3UrKylGLnB1c2gobnVsbCk7Zm9yKHU9MCxwPUYubGVuZ3RoO3U8cDt1KyspbnMoYyk7c2woYyxvLmFvQ29sdW1uRGVmcyxGLGYsZnVuY3Rpb24oQixMKXt4aShjLEIsTCl9KTt2YXIgVT1tLmNoaWxkcmVuKCJ0Ym9keSIpLmZpbmQoInRyIikuZXEoMCk7aWYoVS5sZW5ndGgpe3ZhciBYPWZ1bmN0aW9uKEIsTCl7cmV0dXJuIEIuZ2V0QXR0cmlidXRlKCJkYXRhLSIrTCkhPT1udWxsP0w6bnVsbH07SChVWzBdKS5jaGlsZHJlbigidGgsIHRkIikuZWFjaChmdW5jdGlvbihCLEwpe3ZhciBSPWMuYW9Db2x1bW5zW0JdO2lmKFJ8fE9lKGMsMCwiSW5jb3JyZWN0IGNvbHVtbiBjb3VudCIsMTgpLFIubURhdGE9PT1CKXt2YXIgcT1YKEwsInNvcnQiKXx8WChMLCJvcmRlciIpLHo9WChMLCJmaWx0ZXIiKXx8WChMLCJzZWFyY2giKTsocSE9PW51bGx8fHohPT1udWxsKSYmKFIubURhdGE9e186QisiLmRpc3BsYXkiLHNvcnQ6cSE9PW51bGw/QisiLkBkYXRhLSIrcTp2b2lkIDAsdHlwZTpxIT09bnVsbD9CKyIuQGRhdGEtIitxOnZvaWQgMCxmaWx0ZXI6eiE9PW51bGw/QisiLkBkYXRhLSIrejp2b2lkIDB9LFIuX2lzQXJyYXlIb3N0PSEwLHhpKGMsQikpfX0pfUJlKGMsImFvRHJhd0NhbGxiYWNrIixqcik7dmFyIFE9Yy5vRmVhdHVyZXM7aWYoby5iU3RhdGVTYXZlJiYoUS5iU3RhdGVTYXZlPSEwKSxvLmFhU29ydGluZz09PXZvaWQgMCl7dmFyIEU9Yy5hYVNvcnRpbmc7Zm9yKHU9MCxwPUUubGVuZ3RoO3U8cDt1KyspRVt1XVsxXT1jLmFvQ29sdW1uc1t1XS5hc1NvcnRpbmdbMF19VGkoYyksQmUoYywiYW9EcmF3Q2FsbGJhY2siLGZ1bmN0aW9uKCl7KGMuYlNvcnRlZHx8RWUoYyk9PT0ic3NwInx8US5iRGVmZXJSZW5kZXIpJiZUaShjKX0pO3ZhciAkPW0uY2hpbGRyZW4oImNhcHRpb24iKTtjLmNhcHRpb24mJigkLmxlbmd0aD09PTAmJigkPUgoIjxjYXB0aW9uLz4iKS5hcHBlbmRUbyhtKSksJC5odG1sKGMuY2FwdGlvbikpLCQubGVuZ3RoJiYoJFswXS5fY2FwdGlvblNpZGU9JC5jc3MoImNhcHRpb24tc2lkZSIpLGMuY2FwdGlvbk5vZGU9JFswXSksTy5sZW5ndGg9PT0wJiYoTz1IKCI8dGhlYWQvPiIpLmFwcGVuZFRvKG0pKSxjLm5USGVhZD1PWzBdLEgoInRyIixPKS5hZGRDbGFzcyhsLnRoZWFkLnJvdyk7dmFyIHc9bS5jaGlsZHJlbigidGJvZHkiKTt3Lmxlbmd0aD09PTAmJih3PUgoIjx0Ym9keS8+IikuaW5zZXJ0QWZ0ZXIoTykpLGMublRCb2R5PXdbMF07dmFyIGs9bS5jaGlsZHJlbigidGZvb3QiKTtrLmxlbmd0aD09PTAmJihrPUgoIjx0Zm9vdC8+IikuYXBwZW5kVG8obSkpLGMublRGb290PWtbMF0sSCgidHIiLGspLmFkZENsYXNzKGwudGZvb3Qucm93KSxjLmFpRGlzcGxheT1jLmFpRGlzcGxheU1hc3Rlci5zbGljZSgpLGMuYkluaXRpYWxpc2VkPSEwO3ZhciBTPWMub0xhbmd1YWdlO0guZXh0ZW5kKCEwLFMsby5vTGFuZ3VhZ2UpLFMuc1VybD9ILmFqYXgoe2RhdGFUeXBlOiJqc29uIix1cmw6Uy5zVXJsLHN1Y2Nlc3M6ZnVuY3Rpb24oQil7c24oZy5vTGFuZ3VhZ2UsQiksSC5leHRlbmQoITAsUyxCLGMub0luaXQub0xhbmd1YWdlKSxadChjLG51bGwsImkxOG4iLFtjXSwhMCksa3IoYyl9LGVycm9yOmZ1bmN0aW9uKCl7T2UoYywwLCJpMThuIGZpbGUgbG9hZGluZyBlcnJvciIsMjEpLGtyKGMpfX0pOihadChjLG51bGwsImkxOG4iLFtjXSwhMCksa3IoYykpfSksbj1udWxsLHRoaXN9O2J0LmV4dD1sZT17YnV0dG9uczp7fSxjbGFzc2VzOnt9LGJ1aWxkZXI6Ii1zb3VyY2UtIixlcnJNb2RlOiJhbGVydCIsZmVhdHVyZTpbXSxmZWF0dXJlczp7fSxzZWFyY2g6W10sc2VsZWN0b3I6e2NlbGw6W10sY29sdW1uOltdLHJvdzpbXX0sbGVnYWN5OnthamF4Om51bGx9LHBhZ2VyOnt9LHJlbmRlcmVyOntwYWdlQnV0dG9uOnt9LGhlYWRlcjp7fX0sb3JkZXI6e30sdHlwZTp7Y2xhc3NOYW1lOnt9LGRldGVjdDpbXSxyZW5kZXI6e30sc2VhcmNoOnt9LG9yZGVyOnt9fSxfdW5pcXVlOjAsZm5WZXJzaW9uQ2hlY2s6YnQuZm5WZXJzaW9uQ2hlY2ssaUFwaUluZGV4OjAsc1ZlcnNpb246YnQudmVyc2lvbn07SC5leHRlbmQobGUse2FmbkZpbHRlcmluZzpsZS5zZWFyY2gsYVR5cGVzOmxlLnR5cGUuZGV0ZWN0LG9mblNlYXJjaDpsZS50eXBlLnNlYXJjaCxvU29ydDpsZS50eXBlLm9yZGVyLGFmblNvcnREYXRhOmxlLm9yZGVyLGFvRmVhdHVyZXM6bGUuZmVhdHVyZSxvU3RkQ2xhc3NlczpsZS5jbGFzc2VzLG9QYWdpbmF0aW9uOmxlLnBhZ2VyfSk7SC5leHRlbmQoYnQuZXh0LmNsYXNzZXMse2NvbnRhaW5lcjoiZHQtY29udGFpbmVyIixlbXB0eTp7cm93OiJkdC1lbXB0eSJ9LGluZm86e2NvbnRhaW5lcjoiZHQtaW5mbyJ9LGxheW91dDp7cm93OiJkdC1sYXlvdXQtcm93IixjZWxsOiJkdC1sYXlvdXQtY2VsbCIsdGFibGVSb3c6ImR0LWxheW91dC10YWJsZSIsdGFibGVDZWxsOiIiLHN0YXJ0OiJkdC1sYXlvdXQtc3RhcnQiLGVuZDoiZHQtbGF5b3V0LWVuZCIsZnVsbDoiZHQtbGF5b3V0LWZ1bGwifSxsZW5ndGg6e2NvbnRhaW5lcjoiZHQtbGVuZ3RoIixzZWxlY3Q6ImR0LWlucHV0In0sb3JkZXI6e2NhbkFzYzoiZHQtb3JkZXJhYmxlLWFzYyIsY2FuRGVzYzoiZHQtb3JkZXJhYmxlLWRlc2MiLGlzQXNjOiJkdC1vcmRlcmluZy1hc2MiLGlzRGVzYzoiZHQtb3JkZXJpbmctZGVzYyIsbm9uZToiZHQtb3JkZXJhYmxlLW5vbmUiLHBvc2l0aW9uOiJzb3J0aW5nXyJ9LHByb2Nlc3Npbmc6e2NvbnRhaW5lcjoiZHQtcHJvY2Vzc2luZyJ9LHNjcm9sbGluZzp7Ym9keToiZHQtc2Nyb2xsLWJvZHkiLGNvbnRhaW5lcjoiZHQtc2Nyb2xsIixmb290ZXI6e3NlbGY6ImR0LXNjcm9sbC1mb290Iixpbm5lcjoiZHQtc2Nyb2xsLWZvb3RJbm5lciJ9LGhlYWRlcjp7c2VsZjoiZHQtc2Nyb2xsLWhlYWQiLGlubmVyOiJkdC1zY3JvbGwtaGVhZElubmVyIn19LHNlYXJjaDp7Y29udGFpbmVyOiJkdC1zZWFyY2giLGlucHV0OiJkdC1pbnB1dCJ9LHRhYmxlOiJkYXRhVGFibGUiLHRib2R5OntjZWxsOiIiLHJvdzoiIn0sdGhlYWQ6e2NlbGw6IiIscm93OiIifSx0Zm9vdDp7Y2VsbDoiIixyb3c6IiJ9LHBhZ2luZzp7YWN0aXZlOiJjdXJyZW50IixidXR0b246ImR0LXBhZ2luZy1idXR0b24iLGNvbnRhaW5lcjoiZHQtcGFnaW5nIixkaXNhYmxlZDoiZGlzYWJsZWQiLG5hdjoiIn19KTt2YXIgbGUsV3QsSXQsUXQsYmk9e30sSm89L1tcclxuXHUyMDI4XS9nLFNpPS88KFtePl0qPikvZyxRbz1NYXRoLnBvdygyLDI4KSx6YT0vXlxkezIsNH1bLi8tXVxkezEsMn1bLi8tXVxkezEsMn0oW1QgXXsxfVxkezEsMn1bOi5dXGR7Mn0oWy46XVxkezJ9KT8pPyQvLHRsPW5ldyBSZWdFeHAoIihcXCIrWyIvIiwiLiIsIioiLCIrIiwiPyIsInwiLCIoIiwiKSIsIlsiLCJdIiwieyIsIn0iLCJcXCIsIiQiLCJeIiwiLSJdLmpvaW4oInxcXCIpKyIpIiwiZyIpLERpPS9bJ1x1MDBBMCwkwqPigqzCpSVcdTIwMDlcdTIwMkZcdTIwQkRcdTIwYTlcdTIwQkFyZmvJg86eXS9naSxIZT1mdW5jdGlvbih0KXtyZXR1cm4hdHx8dD09PSEwfHx0PT09Ii0ifSxKYT1mdW5jdGlvbih0KXt2YXIgZT1wYXJzZUludCh0LDEwKTtyZXR1cm4haXNOYU4oZSkmJmlzRmluaXRlKHQpP2U6bnVsbH0sUWE9ZnVuY3Rpb24odCxlKXtyZXR1cm4gYmlbZV18fChiaVtlXT1uZXcgUmVnRXhwKENpKGUpLCJnIikpLHR5cGVvZiB0PT0ic3RyaW5nIiYmZSE9PSIuIj90LnJlcGxhY2UoL1wuL2csIiIpLnJlcGxhY2UoYmlbZV0sIi4iKTp0fSxRbj1mdW5jdGlvbih0LGUsbixyKXt2YXIgcz10eXBlb2YgdCxpPXM9PT0ic3RyaW5nIjtyZXR1cm4gcz09PSJudW1iZXIifHxzPT09ImJpZ2ludCJ8fHImJkhlKHQpPyEwOihlJiZpJiYodD1RYSh0LGUpKSxuJiZpJiYodD10LnJlcGxhY2UoRGksIiIpKSwhaXNOYU4ocGFyc2VGbG9hdCh0KSkmJmlzRmluaXRlKHQpKX0sZWw9ZnVuY3Rpb24odCl7cmV0dXJuIEhlKHQpfHx0eXBlb2YgdD09InN0cmluZyJ9LFNyPWZ1bmN0aW9uKHQsZSxuLHIpe2lmKHImJkhlKHQpKXJldHVybiEwO2lmKHR5cGVvZiB0PT0ic3RyaW5nIiYmdC5tYXRjaCgvPChpbnB1dHxzZWxlY3QpL2kpKXJldHVybiBudWxsO3ZhciBzPWVsKHQpO3JldHVybiBzJiZRbihnbih0KSxlLG4scik/ITA6bnVsbH0sQ2U9ZnVuY3Rpb24odCxlLG4pe3ZhciByPVtdLHM9MCxpPXQubGVuZ3RoO2lmKG4hPT12b2lkIDApZm9yKDtzPGk7cysrKXRbc10mJnRbc11bZV0mJnIucHVzaCh0W3NdW2VdW25dKTtlbHNlIGZvcig7czxpO3MrKyl0W3NdJiZyLnB1c2godFtzXVtlXSk7cmV0dXJuIHJ9LGVyPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBzPVtdLGk9MCxvPWUubGVuZ3RoO2lmKHIhPT12b2lkIDApZm9yKDtpPG87aSsrKXRbZVtpXV0mJnRbZVtpXV1bbl0mJnMucHVzaCh0W2VbaV1dW25dW3JdKTtlbHNlIGZvcig7aTxvO2krKyl0W2VbaV1dJiZzLnB1c2godFtlW2ldXVtuXSk7cmV0dXJuIHN9LGFuPWZ1bmN0aW9uKHQsZSl7dmFyIG49W10scjtlPT09dm9pZCAwPyhlPTAscj10KToocj1lLGU9dCk7Zm9yKHZhciBzPWU7czxyO3MrKyluLnB1c2gocyk7cmV0dXJuIG59LHRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxuPTAscj10Lmxlbmd0aDtuPHI7bisrKXRbbl0mJmUucHVzaCh0W25dKTtyZXR1cm4gZX0sZ249ZnVuY3Rpb24odCl7aWYoIXR8fHR5cGVvZiB0IT0ic3RyaW5nIilyZXR1cm4gdDtpZih0Lmxlbmd0aD5Rbyl0aHJvdyBuZXcgRXJyb3IoIkV4Y2VlZGVkIG1heCBzdHIgbGVuIik7dmFyIGU7dD10LnJlcGxhY2UoU2ksIiIpO2RvIGU9dCx0PXQucmVwbGFjZSgvPHNjcmlwdC9pLCIiKTt3aGlsZSh0IT09ZSk7cmV0dXJuIGV9LE5uPWZ1bmN0aW9uKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpJiYodD10LmpvaW4oIiwiKSksdHlwZW9mIHQ9PSJzdHJpbmciP3QucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7Iik6dH0sRHI9ZnVuY3Rpb24odCxlKXtpZih0eXBlb2YgdCE9InN0cmluZyIpcmV0dXJuIHQ7dmFyIG49dC5ub3JtYWxpemUoIk5GRCIpO3JldHVybiBuLmxlbmd0aCE9PXQubGVuZ3RoPyhlPT09ITA/dCsiICI6IiIpK24ucmVwbGFjZSgvW1x1MDMwMC1cdTAzNmZdL2csIiIpOm59LG5sPWZ1bmN0aW9uKHQpe2lmKHQubGVuZ3RoPDIpcmV0dXJuITA7Zm9yKHZhciBlPXQuc2xpY2UoKS5zb3J0KCksbj1lWzBdLHI9MSxzPWUubGVuZ3RoO3I8cztyKyspe2lmKGVbcl09PT1uKXJldHVybiExO249ZVtyXX1yZXR1cm4hMH0seG49ZnVuY3Rpb24odCl7aWYoQXJyYXkuZnJvbSYmU2V0KXJldHVybiBBcnJheS5mcm9tKG5ldyBTZXQodCkpO2lmKG5sKHQpKXJldHVybiB0LnNsaWNlKCk7dmFyIGU9W10sbixyLHM9dC5sZW5ndGgsaSxvPTA7dDpmb3Iocj0wO3I8cztyKyspe2ZvcihuPXRbcl0saT0wO2k8bztpKyspaWYoZVtpXT09PW4pY29udGludWUgdDtlLnB1c2gobiksbysrfXJldHVybiBlfSxBaT1mdW5jdGlvbih0LGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpZm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspQWkodCxlW25dKTtlbHNlIHQucHVzaChlKTtyZXR1cm4gdH07ZnVuY3Rpb24gT24odCxlKXtlJiZlLnNwbGl0KCIgIikuZm9yRWFjaChmdW5jdGlvbihuKXtuJiZ0LmNsYXNzTGlzdC5hZGQobil9KX1idC51dGlsPXtkaWFjcml0aWNzOmZ1bmN0aW9uKHQsZSl7dmFyIG49dHlwZW9mIHQ7aWYobiE9PSJmdW5jdGlvbiIpcmV0dXJuIERyKHQsZSk7RHI9dH0sZGVib3VuY2U6ZnVuY3Rpb24odCxlKXt2YXIgbjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj10aGlzLHM9YXJndW1lbnRzO2NsZWFyVGltZW91dChuKSxuPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmFwcGx5KHIscyl9LGV8fDI1MCl9fSx0aHJvdHRsZTpmdW5jdGlvbih0LGUpe3ZhciBuPWUhPT12b2lkIDA/ZToyMDAscixzO3JldHVybiBmdW5jdGlvbigpe3ZhciBpPXRoaXMsbz0rbmV3IERhdGUsdT1hcmd1bWVudHM7ciYmbzxyK24/KGNsZWFyVGltZW91dChzKSxzPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyPXZvaWQgMCx0LmFwcGx5KGksdSl9LG4pKToocj1vLHQuYXBwbHkoaSx1KSl9fSxlc2NhcGVSZWdleDpmdW5jdGlvbih0KXtyZXR1cm4gdC5yZXBsYWNlKHRsLCJcXCQxIil9LHNldDpmdW5jdGlvbih0KXtpZihILmlzUGxhaW5PYmplY3QodCkpcmV0dXJuIGJ0LnV0aWwuc2V0KHQuXyk7aWYodD09PW51bGwpcmV0dXJuIGZ1bmN0aW9uKCl7fTtpZih0eXBlb2YgdD09ImZ1bmN0aW9uIilyZXR1cm4gZnVuY3Rpb24obixyLHMpe3Qobiwic2V0IixyLHMpfTtpZih0eXBlb2YgdD09InN0cmluZyImJih0LmluZGV4T2YoIi4iKSE9PS0xfHx0LmluZGV4T2YoIlsiKSE9PS0xfHx0LmluZGV4T2YoIigiKSE9PS0xKSl7dmFyIGU9ZnVuY3Rpb24obixyLHMpe2Zvcih2YXIgaT1WYShzKSxvLHU9aVtpLmxlbmd0aC0xXSxwLGIsZyxtLEM9MCx5PWkubGVuZ3RoLTE7Qzx5O0MrKyl7aWYoaVtDXT09PSJfX3Byb3RvX18ifHxpW0NdPT09ImNvbnN0cnVjdG9yIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBzZXQgcHJvdG90eXBlIHZhbHVlcyIpO2lmKHA9aVtDXS5tYXRjaChLbiksYj1pW0NdLm1hdGNoKEZuKSxwKXtpZihpW0NdPWlbQ10ucmVwbGFjZShLbiwiIiksbltpW0NdXT1bXSxvPWkuc2xpY2UoKSxvLnNwbGljZSgwLEMrMSksbT1vLmpvaW4oIi4iKSxBcnJheS5pc0FycmF5KHIpKWZvcih2YXIgVD0wLFA9ci5sZW5ndGg7VDxQO1QrKylnPXt9LGUoZyxyW1RdLG0pLG5baVtDXV0ucHVzaChnKTtlbHNlIG5baVtDXV09cjtyZXR1cm59ZWxzZSBiJiYoaVtDXT1pW0NdLnJlcGxhY2UoRm4sIiIpLG49bltpW0NdXShyKSk7KG5baVtDXV09PT1udWxsfHxuW2lbQ11dPT09dm9pZCAwKSYmKG5baVtDXV09e30pLG49bltpW0NdXX11Lm1hdGNoKEZuKT9uPW5bdS5yZXBsYWNlKEZuLCIiKV0ocik6blt1LnJlcGxhY2UoS24sIiIpXT1yfTtyZXR1cm4gZnVuY3Rpb24obixyKXtyZXR1cm4gZShuLHIsdCl9fWVsc2UgcmV0dXJuIGZ1bmN0aW9uKG4scil7blt0XT1yfX0sZ2V0OmZ1bmN0aW9uKHQpe2lmKEguaXNQbGFpbk9iamVjdCh0KSl7dmFyIGU9e307cmV0dXJuIEguZWFjaCh0LGZ1bmN0aW9uKHIscyl7cyYmKGVbcl09YnQudXRpbC5nZXQocykpfSksZnVuY3Rpb24ocixzLGksbyl7dmFyIHU9ZVtzXXx8ZS5fO3JldHVybiB1IT09dm9pZCAwP3UocixzLGksbyk6cn19ZWxzZXtpZih0PT09bnVsbClyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIHJ9O2lmKHR5cGVvZiB0PT0iZnVuY3Rpb24iKXJldHVybiBmdW5jdGlvbihyLHMsaSxvKXtyZXR1cm4gdChyLHMsaSxvKX07aWYodHlwZW9mIHQ9PSJzdHJpbmciJiYodC5pbmRleE9mKCIuIikhPT0tMXx8dC5pbmRleE9mKCJbIikhPT0tMXx8dC5pbmRleE9mKCIoIikhPT0tMSkpe3ZhciBuPWZ1bmN0aW9uKHIscyxpKXt2YXIgbyx1LHAsYjtpZihpIT09IiIpZm9yKHZhciBnPVZhKGkpLG09MCxDPWcubGVuZ3RoO208QzttKyspe2lmKG89Z1ttXS5tYXRjaChLbiksdT1nW21dLm1hdGNoKEZuKSxvKXtpZihnW21dPWdbbV0ucmVwbGFjZShLbiwiIiksZ1ttXSE9PSIiJiYocj1yW2dbbV1dKSxwPVtdLGcuc3BsaWNlKDAsbSsxKSxiPWcuam9pbigiLiIpLEFycmF5LmlzQXJyYXkocikpZm9yKHZhciB5PTAsVD1yLmxlbmd0aDt5PFQ7eSsrKXAucHVzaChuKHJbeV0scyxiKSk7dmFyIFA9b1swXS5zdWJzdHJpbmcoMSxvWzBdLmxlbmd0aC0xKTtyPVA9PT0iIj9wOnAuam9pbihQKTticmVha31lbHNlIGlmKHUpe2dbbV09Z1ttXS5yZXBsYWNlKEZuLCIiKSxyPXJbZ1ttXV0oKTtjb250aW51ZX1pZihyPT09bnVsbHx8cltnW21dXT09PW51bGwpcmV0dXJuIG51bGw7aWYocj09PXZvaWQgMHx8cltnW21dXT09PXZvaWQgMClyZXR1cm47cj1yW2dbbV1dfXJldHVybiByfTtyZXR1cm4gZnVuY3Rpb24ocixzKXtyZXR1cm4gbihyLHMsdCl9fWVsc2UgcmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiByW3RdfX19LHN0cmlwSHRtbDpmdW5jdGlvbih0KXt2YXIgZT10eXBlb2YgdDtpZihlPT09ImZ1bmN0aW9uIil7Z249dDtyZXR1cm59ZWxzZSBpZihlPT09InN0cmluZyIpcmV0dXJuIGduKHQpO3JldHVybiB0fSxlc2NhcGVIdG1sOmZ1bmN0aW9uKHQpe3ZhciBlPXR5cGVvZiB0O2lmKGU9PT0iZnVuY3Rpb24iKXtObj10O3JldHVybn1lbHNlIGlmKGU9PT0ic3RyaW5nInx8QXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gTm4odCk7cmV0dXJuIHR9LHVuaXF1ZTp4bn07ZnVuY3Rpb24gTnIodCl7dmFyIGU9ImEgYWEgYWkgYW8gYXMgYiBmbiBpIG0gbyBzICIsbixyLHM9e307SC5lYWNoKHQsZnVuY3Rpb24oaSl7bj1pLm1hdGNoKC9eKFteQS1aXSs/KShbQS1aXSkvKSxuJiZlLmluZGV4T2YoblsxXSsiICIpIT09LTEmJihyPWkucmVwbGFjZShuWzBdLG5bMl0udG9Mb3dlckNhc2UoKSksc1tyXT1pLG5bMV09PT0ibyImJk5yKHRbaV0pKX0pLHQuX2h1bmdhcmlhbk1hcD1zfWZ1bmN0aW9uIHNuKHQsZSxuKXt0Ll9odW5nYXJpYW5NYXB8fE5yKHQpO3ZhciByO0guZWFjaChlLGZ1bmN0aW9uKHMpe3I9dC5faHVuZ2FyaWFuTWFwW3NdLHIhPT12b2lkIDAmJihufHxlW3JdPT09dm9pZCAwKSYmKHIuY2hhckF0KDApPT09Im8iPyhlW3JdfHwoZVtyXT17fSksSC5leHRlbmQoITAsZVtyXSxlW3NdKSxzbih0W3JdLGVbcl0sbikpOmVbcl09ZVtzXSl9KX12YXIgX2U9ZnVuY3Rpb24odCxlLG4pe3RbZV0hPT12b2lkIDAmJih0W25dPXRbZV0pfTtmdW5jdGlvbiBqYSh0KXtfZSh0LCJvcmRlcmluZyIsImJTb3J0IiksX2UodCwib3JkZXJNdWx0aSIsImJTb3J0TXVsdGkiKSxfZSh0LCJvcmRlckNsYXNzZXMiLCJiU29ydENsYXNzZXMiKSxfZSh0LCJvcmRlckNlbGxzVG9wIiwiYlNvcnRDZWxsc1RvcCIpLF9lKHQsIm9yZGVyIiwiYWFTb3J0aW5nIiksX2UodCwib3JkZXJGaXhlZCIsImFhU29ydGluZ0ZpeGVkIiksX2UodCwicGFnaW5nIiwiYlBhZ2luYXRlIiksX2UodCwicGFnaW5nVHlwZSIsInNQYWdpbmF0aW9uVHlwZSIpLF9lKHQsInBhZ2VMZW5ndGgiLCJpRGlzcGxheUxlbmd0aCIpLF9lKHQsInNlYXJjaGluZyIsImJGaWx0ZXIiKSx0eXBlb2YgdC5zU2Nyb2xsWD09ImJvb2xlYW4iJiYodC5zU2Nyb2xsWD10LnNTY3JvbGxYPyIxMDAlIjoiIiksdHlwZW9mIHQuc2Nyb2xsWD09ImJvb2xlYW4iJiYodC5zY3JvbGxYPXQuc2Nyb2xsWD8iMTAwJSI6IiIpO3ZhciBlPXQuYW9TZWFyY2hDb2xzO2lmKGUpZm9yKHZhciBuPTAscj1lLmxlbmd0aDtuPHI7bisrKWVbbl0mJnNuKGJ0Lm1vZGVscy5vU2VhcmNoLGVbbl0pO3Quc2VydmVyU2lkZSYmIXQuc2VhcmNoRGVsYXkmJih0LnNlYXJjaERlbGF5PTQwMCl9ZnVuY3Rpb24gZXModCl7X2UodCwib3JkZXJhYmxlIiwiYlNvcnRhYmxlIiksX2UodCwib3JkZXJEYXRhIiwiYURhdGFTb3J0IiksX2UodCwib3JkZXJTZXF1ZW5jZSIsImFzU29ydGluZyIpLF9lKHQsIm9yZGVyRGF0YVR5cGUiLCJzb3J0RGF0YVR5cGUiKTt2YXIgZT10LmFEYXRhU29ydDt0eXBlb2YgZT09Im51bWJlciImJiFBcnJheS5pc0FycmF5KGUpJiYodC5hRGF0YVNvcnQ9W2VdKX1mdW5jdGlvbiBybCh0KXtpZighYnQuX19icm93c2VyKXt2YXIgZT17fTtidC5fX2Jyb3dzZXI9ZTt2YXIgbj1IKCI8ZGl2Lz4iKS5jc3Moe3Bvc2l0aW9uOiJmaXhlZCIsdG9wOjAsbGVmdDotMSp3aW5kb3cucGFnZVhPZmZzZXQsaGVpZ2h0OjEsd2lkdGg6MSxvdmVyZmxvdzoiaGlkZGVuIn0pLmFwcGVuZChIKCI8ZGl2Lz4iKS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOjEsbGVmdDoxLHdpZHRoOjEwMCxvdmVyZmxvdzoic2Nyb2xsIn0pLmFwcGVuZChIKCI8ZGl2Lz4iKS5jc3Moe3dpZHRoOiIxMDAlIixoZWlnaHQ6MTB9KSkpLmFwcGVuZFRvKCJib2R5Iikscj1uLmNoaWxkcmVuKCkscz1yLmNoaWxkcmVuKCk7ZS5iYXJXaWR0aD1yWzBdLm9mZnNldFdpZHRoLXJbMF0uY2xpZW50V2lkdGgsZS5iU2Nyb2xsYmFyTGVmdD1NYXRoLnJvdW5kKHMub2Zmc2V0KCkubGVmdCkhPT0xLG4ucmVtb3ZlKCl9SC5leHRlbmQodC5vQnJvd3NlcixidC5fX2Jyb3dzZXIpLHQub1Njcm9sbC5pQmFyV2lkdGg9YnQuX19icm93c2VyLmJhcldpZHRofWZ1bmN0aW9uIG5zKHQpe3ZhciBlPWJ0LmRlZmF1bHRzLmNvbHVtbixuPXQuYW9Db2x1bW5zLmxlbmd0aCxyPUguZXh0ZW5kKHt9LGJ0Lm1vZGVscy5vQ29sdW1uLGUse2FEYXRhU29ydDplLmFEYXRhU29ydD9lLmFEYXRhU29ydDpbbl0sbURhdGE6ZS5tRGF0YT9lLm1EYXRhOm4saWR4Om4sc2VhcmNoRml4ZWQ6e30sY29sRWw6SCgiPGNvbD4iKS5hdHRyKCJkYXRhLWR0LWNvbHVtbiIsbil9KTt0LmFvQ29sdW1ucy5wdXNoKHIpO3ZhciBzPXQuYW9QcmVTZWFyY2hDb2xzO3Nbbl09SC5leHRlbmQoe30sYnQubW9kZWxzLm9TZWFyY2gsc1tuXSl9ZnVuY3Rpb24geGkodCxlLG4pe3ZhciByPXQuYW9Db2x1bW5zW2VdO2lmKG4hPW51bGwpe2VzKG4pLHNuKGJ0LmRlZmF1bHRzLmNvbHVtbixuLCEwKSxuLm1EYXRhUHJvcCE9PXZvaWQgMCYmIW4ubURhdGEmJihuLm1EYXRhPW4ubURhdGFQcm9wKSxuLnNUeXBlJiYoci5fc01hbnVhbFR5cGU9bi5zVHlwZSksbi5jbGFzc05hbWUmJiFuLnNDbGFzcyYmKG4uc0NsYXNzPW4uY2xhc3NOYW1lKTt2YXIgcz1yLnNDbGFzcztILmV4dGVuZChyLG4pLGxuKHIsbiwic1dpZHRoIiwic1dpZHRoT3JpZyIpLHMhPT1yLnNDbGFzcyYmKHIuc0NsYXNzPXMrIiAiK3Iuc0NsYXNzKSxuLmlEYXRhU29ydCE9PXZvaWQgMCYmKHIuYURhdGFTb3J0PVtuLmlEYXRhU29ydF0pLGxuKHIsbiwiYURhdGFTb3J0Iil9dmFyIGk9ci5tRGF0YSxvPUVuKGkpO2lmKHIubVJlbmRlciYmQXJyYXkuaXNBcnJheShyLm1SZW5kZXIpKXt2YXIgdT1yLm1SZW5kZXIuc2xpY2UoKSxwPXUuc2hpZnQoKTtyLm1SZW5kZXI9YnQucmVuZGVyW3BdLmFwcGx5KHdpbmRvdyx1KX1yLl9yZW5kZXI9ci5tUmVuZGVyP0VuKHIubVJlbmRlcik6bnVsbDt2YXIgYj1mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGc9PSJzdHJpbmciJiZnLmluZGV4T2YoIkAiKSE9PS0xfTtyLl9iQXR0clNyYz1ILmlzUGxhaW5PYmplY3QoaSkmJihiKGkuc29ydCl8fGIoaS50eXBlKXx8YihpLmZpbHRlcikpLHIuX3NldHRlcj1udWxsLHIuZm5HZXREYXRhPWZ1bmN0aW9uKGcsbSxDKXt2YXIgeT1vKGcsbSx2b2lkIDAsQyk7cmV0dXJuIHIuX3JlbmRlciYmbT9yLl9yZW5kZXIoeSxtLGcsQyk6eX0sci5mblNldERhdGE9ZnVuY3Rpb24oZyxtLEMpe3JldHVybiB2bihpKShnLG0sQyl9LHR5cGVvZiBpIT0ibnVtYmVyIiYmIXIuX2lzQXJyYXlIb3N0JiYodC5fcm93UmVhZE9iamVjdD0hMCksdC5vRmVhdHVyZXMuYlNvcnR8fChyLmJTb3J0YWJsZT0hMSl9ZnVuY3Rpb24gT3IodCl7eGwodCksaWwodCk7dmFyIGU9dC5vU2Nyb2xsOyhlLnNZIT09IiJ8fGUuc1ghPT0iIikmJmZzKHQpLFp0KHQsbnVsbCwiY29sdW1uLXNpemluZyIsW3RdKX1mdW5jdGlvbiBpbCh0KXtmb3IodmFyIGU9dC5hb0NvbHVtbnMsbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1ycyh0LFtuXSwhMSwhMSk7ZVtuXS5jb2xFbC5jc3MoIndpZHRoIixyKS5jc3MoIm1pbi13aWR0aCIscil9fWZ1bmN0aW9uIElpKHQsZSl7dmFyIG49UGkodCwiYlZpc2libGUiKTtyZXR1cm4gdHlwZW9mIG5bZV09PSJudW1iZXIiP25bZV06bnVsbH1mdW5jdGlvbiBucih0LGUpe3ZhciBuPVBpKHQsImJWaXNpYmxlIikscj1uLmluZGV4T2YoZSk7cmV0dXJuIHIhPT0tMT9yOm51bGx9ZnVuY3Rpb24gRXIodCl7dmFyIGU9dC5hb0hlYWRlcixuPXQuYW9Db2x1bW5zLHI9MDtpZihlLmxlbmd0aClmb3IodmFyIHM9MCxpPWVbMF0ubGVuZ3RoO3M8aTtzKyspbltzXS5iVmlzaWJsZSYmSChlWzBdW3NdLmNlbGwpLmNzcygiZGlzcGxheSIpIT09Im5vbmUiJiZyKys7cmV0dXJuIHJ9ZnVuY3Rpb24gUGkodCxlKXt2YXIgbj1bXTtyZXR1cm4gdC5hb0NvbHVtbnMubWFwKGZ1bmN0aW9uKHIscyl7cltlXSYmbi5wdXNoKHMpfSksbn1mdW5jdGlvbiBtaSh0LGUpe3JldHVybiBlPT09ITA/dC5uYW1lOmV9ZnVuY3Rpb24gRmkodCl7dmFyIGU9dC5hb0NvbHVtbnMsbj10LmFvRGF0YSxyPWJ0LmV4dC50eXBlLmRldGVjdCxzLGksbyx1LHAsYixnLG0sQztmb3Iocz0wLGk9ZS5sZW5ndGg7czxpO3MrKyl7aWYoZz1lW3NdLEM9W10sIWcuc1R5cGUmJmcuX3NNYW51YWxUeXBlKWcuc1R5cGU9Zy5fc01hbnVhbFR5cGU7ZWxzZSBpZighZy5zVHlwZSl7aWYoIXQudHlwZURldGVjdClyZXR1cm47Zm9yKG89MCx1PXIubGVuZ3RoO288dTtvKyspe3ZhciB5PXJbb10sVD15Lm9uZU9mLFA9eS5hbGxPZnx8eSxjPXkuaW5pdCxsPSExO2lmKG09bnVsbCxjJiYobT1taSh5LGModCxnLHMpKSxtKSl7Zy5zVHlwZT1tO2JyZWFrfWZvcihwPTAsYj1uLmxlbmd0aDtwPGImJiEobltwXSYmKENbcF09PT12b2lkIDAmJihDW3BdPVJlKHQscCxzLCJ0eXBlIikpLFQmJiFsJiYobD1taSh5LFQoQ1twXSx0KSkpLG09bWkoeSxQKENbcF0sdCkpLCFtJiZvIT09ci5sZW5ndGgtM3x8bT09PSJodG1sIiYmIUhlKENbcF0pKSk7cCsrKTtpZihUJiZsJiZtfHwhVCYmbSl7Zy5zVHlwZT1tO2JyZWFrfX1nLnNUeXBlfHwoZy5zVHlwZT0ic3RyaW5nIil9dmFyIGg9bGUudHlwZS5jbGFzc05hbWVbZy5zVHlwZV07aCYmKE1hKHQuYW9IZWFkZXIscyxoKSxNYSh0LmFvRm9vdGVyLHMsaCkpO3ZhciBfPWxlLnR5cGUucmVuZGVyW2cuc1R5cGVdO18mJiFnLl9yZW5kZXImJihnLl9yZW5kZXI9YnQudXRpbC5nZXQoXyksYWwodCxzKSl9fWZ1bmN0aW9uIGFsKHQsZSl7Zm9yKHZhciBuPXQuYW9EYXRhLHI9MDtyPG4ubGVuZ3RoO3IrKylpZihuW3JdLm5Ucil7dmFyIHM9UmUodCxyLGUsImRpc3BsYXkiKTtuW3JdLmRpc3BsYXlEYXRhW2VdPXMsQXIobltyXS5hbkNlbGxzW2VdLHMpfX1mdW5jdGlvbiBNYSh0LGUsbil7dC5mb3JFYWNoKGZ1bmN0aW9uKHIpe3JbZV0mJnJbZV0udW5pcXVlJiZPbihyW2VdLmNlbGwsbil9KX1mdW5jdGlvbiBzbCh0LGUsbixyLHMpe3ZhciBpLG8sdSxwLGIsZyxtLEM9dC5hb0NvbHVtbnM7aWYobilmb3IoaT0wLG89bi5sZW5ndGg7aTxvO2krKyluW2ldJiZuW2ldLm5hbWUmJihDW2ldLnNOYW1lPW5baV0ubmFtZSk7aWYoZSlmb3IoaT1lLmxlbmd0aC0xO2k+PTA7aS0tKXttPWVbaV07dmFyIHk9bS50YXJnZXQhPT12b2lkIDA/bS50YXJnZXQ6bS50YXJnZXRzIT09dm9pZCAwP20udGFyZ2V0czptLmFUYXJnZXRzO2ZvcihBcnJheS5pc0FycmF5KHkpfHwoeT1beV0pLHU9MCxwPXkubGVuZ3RoO3U8cDt1Kyspe3ZhciBUPXlbdV07aWYodHlwZW9mIFQ9PSJudW1iZXIiJiZUPj0wKXtmb3IoO0MubGVuZ3RoPD1UOylucyh0KTtzKFQsbSl9ZWxzZSBpZih0eXBlb2YgVD09Im51bWJlciImJlQ8MClzKEMubGVuZ3RoK1QsbSk7ZWxzZSBpZih0eXBlb2YgVD09InN0cmluZyIpZm9yKGI9MCxnPUMubGVuZ3RoO2I8ZztiKyspVD09PSJfYWxsIj9zKGIsbSk6VC5pbmRleE9mKCI6bmFtZSIpIT09LTE/Q1tiXS5zTmFtZT09PVQucmVwbGFjZSgiOm5hbWUiLCIiKSYmcyhiLG0pOnIuZm9yRWFjaChmdW5jdGlvbihQKXtpZihQW2JdKXt2YXIgYz1IKFBbYl0uY2VsbCk7VC5tYXRjaCgvXlthLXpdW1x3LV0qJC9pKSYmKFQ9Ii4iK1QpLGMuaXMoVCkmJnMoYixtKX19KX19aWYobilmb3IoaT0wLG89bi5sZW5ndGg7aTxvO2krKylzKGksbltpXSl9ZnVuY3Rpb24gcnModCxlLG4scil7QXJyYXkuaXNBcnJheShlKXx8KGU9QmkoZSkpO2Zvcih2YXIgcz0wLGksbz10LmFvQ29sdW1ucyx1PTAscD1lLmxlbmd0aDt1PHA7dSsrKXt2YXIgYj1vW2VbdV1dLGc9bj9iLnNXaWR0aE9yaWc6Yi5zV2lkdGg7aWYoISghciYmYi5iVmlzaWJsZT09PSExKSl7aWYoZz09bnVsbClyZXR1cm4gbnVsbDtpZih0eXBlb2YgZz09Im51bWJlciIpaT0icHgiLHMrPWc7ZWxzZXt2YXIgbT1nLm1hdGNoKC8oW1xkXC5dKykoW15cZF0qKS8pO20mJihzKz1tWzFdKjEsaT1tLmxlbmd0aD09PTM/bVsyXToicHgiKX19fXJldHVybiBzK2l9ZnVuY3Rpb24gQmkodCl7dmFyIGU9SCh0KS5jbG9zZXN0KCJbZGF0YS1kdC1jb2x1bW5dIikuYXR0cigiZGF0YS1kdC1jb2x1bW4iKTtyZXR1cm4gZT9lLnNwbGl0KCIsIikubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuKjF9KTpbXX1mdW5jdGlvbiB5bih0LGUsbixyKXt2YXIgcz10LmFvRGF0YS5sZW5ndGgsaT1ILmV4dGVuZCghMCx7fSxidC5tb2RlbHMub1Jvdyx7c3JjOm4/ImRvbSI6ImRhdGEiLGlkeDpzfSk7aS5fYURhdGE9ZSx0LmFvRGF0YS5wdXNoKGkpO2Zvcih2YXIgbz10LmFvQ29sdW1ucyx1PTAscD1vLmxlbmd0aDt1PHA7dSsrKW9bdV0uc1R5cGU9bnVsbDt0LmFpRGlzcGxheU1hc3Rlci5wdXNoKHMpO3ZhciBiPXQucm93SWRGbihlKTtyZXR1cm4gYiE9PXZvaWQgMCYmKHQuYUlkc1tiXT1pKSwobnx8IXQub0ZlYXR1cmVzLmJEZWZlclJlbmRlcikmJmFzKHQscyxuLHIpLHN9ZnVuY3Rpb24gTmkodCxlKXt2YXIgbjtyZXR1cm4gZSBpbnN0YW5jZW9mIEh8fChlPUgoZSkpLGUubWFwKGZ1bmN0aW9uKHIscyl7cmV0dXJuIG49aXModCxzKSx5bih0LG4uZGF0YSxzLG4uY2VsbHMpfSl9ZnVuY3Rpb24gUmUodCxlLG4scil7cj09PSJzZWFyY2giP3I9ImZpbHRlciI6cj09PSJvcmRlciImJihyPSJzb3J0Iik7dmFyIHM9dC5hb0RhdGFbZV07aWYocyl7dmFyIGk9dC5pRHJhdyxvPXQuYW9Db2x1bW5zW25dLHU9cy5fYURhdGEscD1vLnNEZWZhdWx0Q29udGVudCxiPW8uZm5HZXREYXRhKHUscix7c2V0dGluZ3M6dCxyb3c6ZSxjb2w6bn0pO2lmKHIhPT0iZGlzcGxheSImJmImJnR5cGVvZiBiPT0ib2JqZWN0IiYmYi5ub2RlTmFtZSYmKGI9Yi5pbm5lckhUTUwpLGI9PT12b2lkIDApcmV0dXJuIHQuaURyYXdFcnJvciE9aSYmcD09PW51bGwmJihPZSh0LDAsIlJlcXVlc3RlZCB1bmtub3duIHBhcmFtZXRlciAiKyh0eXBlb2Ygby5tRGF0YT09ImZ1bmN0aW9uIj8ie2Z1bmN0aW9ufSI6IiciK28ubURhdGErIiciKSsiIGZvciByb3cgIitlKyIsIGNvbHVtbiAiK24sNCksdC5pRHJhd0Vycm9yPWkpLHA7aWYoKGI9PT11fHxiPT09bnVsbCkmJnAhPT1udWxsJiZyIT09dm9pZCAwKWI9cDtlbHNlIGlmKHR5cGVvZiBiPT0iZnVuY3Rpb24iKXJldHVybiBiLmNhbGwodSk7aWYoYj09PW51bGwmJnI9PT0iZGlzcGxheSIpcmV0dXJuIiI7aWYocj09PSJmaWx0ZXIiKXt2YXIgZz1idC5leHQudHlwZS5zZWFyY2g7Z1tvLnNUeXBlXSYmKGI9Z1tvLnNUeXBlXShiKSl9cmV0dXJuIGJ9fWZ1bmN0aW9uIG9sKHQsZSxuLHIpe3ZhciBzPXQuYW9Db2x1bW5zW25dLGk9dC5hb0RhdGFbZV0uX2FEYXRhO3MuZm5TZXREYXRhKGkscix7c2V0dGluZ3M6dCxyb3c6ZSxjb2w6bn0pfWZ1bmN0aW9uIEFyKHQsZSl7ZSYmdHlwZW9mIGU9PSJvYmplY3QiJiZlLm5vZGVOYW1lP0godCkuZW1wdHkoKS5hcHBlbmQoZSk6dC5pbm5lckhUTUw9ZX12YXIgS249L1xbLio/XF0kLyxGbj0vXChcKSQvO2Z1bmN0aW9uIFZhKHQpe3ZhciBlPXQubWF0Y2goLyhcXC58W14uXSkrL2cpfHxbIiJdO3JldHVybiBlLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gbi5yZXBsYWNlKC9cXFwuL2csIi4iKX0pfXZhciBFbj1idC51dGlsLmdldCx2bj1idC51dGlsLnNldDtmdW5jdGlvbiBIYSh0KXtyZXR1cm4gQ2UodC5hb0RhdGEsIl9hRGF0YSIpfWZ1bmN0aW9uIE9pKHQpe3QuYW9EYXRhLmxlbmd0aD0wLHQuYWlEaXNwbGF5TWFzdGVyLmxlbmd0aD0wLHQuYWlEaXNwbGF5Lmxlbmd0aD0wLHQuYUlkcz17fX1mdW5jdGlvbiBScih0LGUsbixyKXt2YXIgcz10LmFvRGF0YVtlXSxpLG87aWYocy5fYVNvcnREYXRhPW51bGwscy5fYUZpbHRlckRhdGE9bnVsbCxzLmRpc3BsYXlEYXRhPW51bGwsbj09PSJkb20ifHwoIW58fG49PT0iYXV0byIpJiZzLnNyYz09PSJkb20iKXMuX2FEYXRhPWlzKHQscyxyLHI9PT12b2lkIDA/dm9pZCAwOnMuX2FEYXRhKS5kYXRhO2Vsc2V7dmFyIHU9cy5hbkNlbGxzLHA9RWkodCxlKTtpZih1KWlmKHIhPT12b2lkIDApQXIodVtyXSxwW3JdKTtlbHNlIGZvcihpPTAsbz11Lmxlbmd0aDtpPG87aSsrKUFyKHVbaV0scFtpXSl9dmFyIGI9dC5hb0NvbHVtbnM7aWYociE9PXZvaWQgMCliW3JdLnNUeXBlPW51bGwsYltyXS5tYXhMZW5TdHJpbmc9bnVsbDtlbHNle2ZvcihpPTAsbz1iLmxlbmd0aDtpPG87aSsrKWJbaV0uc1R5cGU9bnVsbCxiW2ldLm1heExlblN0cmluZz1udWxsO3NzKHQscyl9fWZ1bmN0aW9uIGlzKHQsZSxuLHIpe3ZhciBzPVtdLGk9ZS5maXJzdENoaWxkLG8sdSxwPTAsYixnPXQuYW9Db2x1bW5zLG09dC5fcm93UmVhZE9iamVjdDtyPXIhPT12b2lkIDA/cjptP3t9OltdO3ZhciBDPWZ1bmN0aW9uKGgsXyl7aWYodHlwZW9mIGg9PSJzdHJpbmciKXt2YXIgRj1oLmluZGV4T2YoIkAiKTtpZihGIT09LTEpe3ZhciBPPWguc3Vic3RyaW5nKEYrMSksZj12bihoKTtmKHIsXy5nZXRBdHRyaWJ1dGUoTykpfX19LHk9ZnVuY3Rpb24oaCl7aWYobj09PXZvaWQgMHx8bj09PXApaWYodT1nW3BdLGI9aC5pbm5lckhUTUwudHJpbSgpLHUmJnUuX2JBdHRyU3JjKXt2YXIgXz12bih1Lm1EYXRhLl8pO18ocixiKSxDKHUubURhdGEuc29ydCxoKSxDKHUubURhdGEudHlwZSxoKSxDKHUubURhdGEuZmlsdGVyLGgpfWVsc2UgbT8odS5fc2V0dGVyfHwodS5fc2V0dGVyPXZuKHUubURhdGEpKSx1Ll9zZXR0ZXIocixiKSk6cltwXT1iO3ArK307aWYoaSlmb3IoO2k7KW89aS5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpLChvPT0iVEQifHxvPT0iVEgiKSYmKHkoaSkscy5wdXNoKGkpKSxpPWkubmV4dFNpYmxpbmc7ZWxzZXtzPWUuYW5DZWxscztmb3IodmFyIFQ9MCxQPXMubGVuZ3RoO1Q8UDtUKyspeShzW1RdKX12YXIgYz1lLmZpcnN0Q2hpbGQ/ZTplLm5UcjtpZihjKXt2YXIgbD1jLmdldEF0dHJpYnV0ZSgiaWQiKTtsJiZ2bih0LnJvd0lkKShyLGwpfXJldHVybntkYXRhOnIsY2VsbHM6c319ZnVuY3Rpb24gRWkodCxlKXtsZXQgbj10LmFvRGF0YVtlXSxyPXQuYW9Db2x1bW5zO2lmKCFuLmRpc3BsYXlEYXRhKXtuLmRpc3BsYXlEYXRhPVtdO2Zvcih2YXIgcz0wLGk9ci5sZW5ndGg7czxpO3MrKyluLmRpc3BsYXlEYXRhLnB1c2goUmUodCxlLHMsImRpc3BsYXkiKSl9cmV0dXJuIG4uZGlzcGxheURhdGF9ZnVuY3Rpb24gYXModCxlLG4scil7dmFyIHM9dC5hb0RhdGFbZV0saT1zLl9hRGF0YSxvPVtdLHUscCxiLGcsbSxDLHk9dC5vQ2xhc3Nlcy50Ym9keS5yb3c7aWYocy5uVHI9PT1udWxsKXtmb3IodT1ufHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ciIpLHMublRyPXUscy5hbkNlbGxzPW8sT24odSx5KSx1Ll9EVF9Sb3dJbmRleD1lLHNzKHQscyksZz0wLG09dC5hb0NvbHVtbnMubGVuZ3RoO2c8bTtnKyspe2I9dC5hb0NvbHVtbnNbZ10sQz0hKG4mJnJbZ10pLHA9Qz9kb2N1bWVudC5jcmVhdGVFbGVtZW50KGIuc0NlbGxUeXBlKTpyW2ddLHB8fE9lKHQsMCwiSW5jb3JyZWN0IGNvbHVtbiBjb3VudCIsMTgpLHAuX0RUX0NlbGxJbmRleD17cm93OmUsY29sdW1uOmd9LG8ucHVzaChwKTt2YXIgVD1FaSh0LGUpOyhDfHwoYi5tUmVuZGVyfHxiLm1EYXRhIT09ZykmJighSC5pc1BsYWluT2JqZWN0KGIubURhdGEpfHxiLm1EYXRhLl8hPT1nKyIuZGlzcGxheSIpKSYmQXIocCxUW2ddKSxPbihwLGIuc0NsYXNzKSxiLmJWaXNpYmxlJiZDP3UuYXBwZW5kQ2hpbGQocCk6IWIuYlZpc2libGUmJiFDJiZwLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocCksYi5mbkNyZWF0ZWRDZWxsJiZiLmZuQ3JlYXRlZENlbGwuY2FsbCh0Lm9JbnN0YW5jZSxwLFJlKHQsZSxnKSxpLGUsZyl9WnQodCwiYW9Sb3dDcmVhdGVkQ2FsbGJhY2siLCJyb3ctY3JlYXRlZCIsW3UsaSxlLG9dKX1lbHNlIE9uKHMublRyLHkpfWZ1bmN0aW9uIHNzKHQsZSl7dmFyIG49ZS5uVHIscj1lLl9hRGF0YTtpZihuKXt2YXIgcz10LnJvd0lkRm4ocik7aWYocyYmKG4uaWQ9cyksci5EVF9Sb3dDbGFzcyl7dmFyIGk9ci5EVF9Sb3dDbGFzcy5zcGxpdCgiICIpO2UuX19yb3djPWUuX19yb3djP3huKGUuX19yb3djLmNvbmNhdChpKSk6aSxIKG4pLnJlbW92ZUNsYXNzKGUuX19yb3djLmpvaW4oIiAiKSkuYWRkQ2xhc3Moci5EVF9Sb3dDbGFzcyl9ci5EVF9Sb3dBdHRyJiZIKG4pLmF0dHIoci5EVF9Sb3dBdHRyKSxyLkRUX1Jvd0RhdGEmJkgobikuZGF0YShyLkRUX1Jvd0RhdGEpfX1mdW5jdGlvbiBVYSh0LGUpe3ZhciBuPXQub0NsYXNzZXMscj10LmFvQ29sdW1ucyxzLGksbyx1PWU9PT0iaGVhZGVyIj90Lm5USGVhZDp0Lm5URm9vdCxwPWU9PT0iaGVhZGVyIj8ic1RpdGxlIjplO2lmKHUpe2lmKChlPT09ImhlYWRlciJ8fENlKHQuYW9Db2x1bW5zLHApLmpvaW4oIiIpKSYmKG89SCgidHIiLHUpLG8ubGVuZ3RofHwobz1IKCI8dHIvPiIpLmFwcGVuZFRvKHUpKSxvLmxlbmd0aD09PTEpKXt2YXIgYj1IKCJ0ZCwgdGgiLG8pO2ZvcihzPWIubGVuZ3RoLGk9ci5sZW5ndGg7czxpO3MrKylIKCI8dGgvPiIpLmh0bWwocltzXVtwXXx8IiIpLmFwcGVuZFRvKG8pfXZhciBnPWxzKHQsdSwhMCk7ZT09PSJoZWFkZXIiP3QuYW9IZWFkZXI9Zzp0LmFvRm9vdGVyPWcsSCh1KS5jaGlsZHJlbigidHIiKS5hdHRyKCJyb2xlIiwicm93IiksSCh1KS5jaGlsZHJlbigidHIiKS5jaGlsZHJlbigidGgsIHRkIikuZWFjaChmdW5jdGlvbigpe0ZyKHQsZSkodCxIKHRoaXMpLG4pfSl9fWZ1bmN0aW9uIG9zKHQsZSxuKXt2YXIgcixzLGksbz1bXSx1PVtdLHA9dC5hb0NvbHVtbnMsYj1wLmxlbmd0aCxnLG07aWYoZSl7Zm9yKG58fChuPWFuKGIpLmZpbHRlcihmdW5jdGlvbihUKXtyZXR1cm4gcFtUXS5iVmlzaWJsZX0pKSxyPTA7cjxlLmxlbmd0aDtyKyspb1tyXT1lW3JdLnNsaWNlKCkuZmlsdGVyKGZ1bmN0aW9uKFQsUCl7cmV0dXJuIG4uaW5jbHVkZXMoUCl9KSx1LnB1c2goW10pO2ZvcihyPTA7cjxvLmxlbmd0aDtyKyspZm9yKHM9MDtzPG9bcl0ubGVuZ3RoO3MrKylpZihnPTEsbT0xLHVbcl1bc109PT12b2lkIDApe2ZvcihpPW9bcl1bc10uY2VsbDtvW3IrZ10hPT12b2lkIDAmJm9bcl1bc10uY2VsbD09b1tyK2ddW3NdLmNlbGw7KXVbcitnXVtzXT1udWxsLGcrKztmb3IoO29bcl1bcyttXSE9PXZvaWQgMCYmb1tyXVtzXS5jZWxsPT1vW3JdW3MrbV0uY2VsbDspe2Zvcih2YXIgQz0wO0M8ZztDKyspdVtyK0NdW3MrbV09bnVsbDttKyt9dmFyIHk9SCgic3Bhbi5kdC1jb2x1bW4tdGl0bGUiLGkpO3Vbcl1bc109e2NlbGw6aSxjb2xzcGFuOm0scm93c3BhbjpnLHRpdGxlOnkubGVuZ3RoP3kuaHRtbCgpOkgoaSkuaHRtbCgpfX1yZXR1cm4gdX19ZnVuY3Rpb24gSXIodCxlKXtmb3IodmFyIG49b3ModCxlKSxyLHMsaT0wO2k8ZS5sZW5ndGg7aSsrKXtpZihyPWVbaV0ucm93LHIpZm9yKDtzPXIuZmlyc3RDaGlsZDspci5yZW1vdmVDaGlsZChzKTtmb3IodmFyIG89MDtvPG5baV0ubGVuZ3RoO28rKyl7dmFyIHU9bltpXVtvXTt1JiZIKHUuY2VsbCkuYXBwZW5kVG8ocikuYXR0cigicm93c3BhbiIsdS5yb3dzcGFuKS5hdHRyKCJjb2xzcGFuIix1LmNvbHNwYW4pfX19ZnVuY3Rpb24gTG4odCxlKXtmbCh0KTt2YXIgbj1adCh0LCJhb1ByZURyYXdDYWxsYmFjayIsInByZURyYXciLFt0XSk7aWYobi5pbmRleE9mKCExKSE9PS0xKXtrZSh0LCExKTtyZXR1cm59dmFyIHI9W10scz0wLGk9RWUodCk9PSJzc3AiLG89dC5haURpc3BsYXksdT10Ll9pRGlzcGxheVN0YXJ0LHA9dC5mbkRpc3BsYXlFbmQoKSxiPXQuYW9Db2x1bW5zLGc9SCh0Lm5UQm9keSk7aWYodC5iRHJhd2luZz0hMCx0LmRlZmVyTG9hZGluZyl0LmRlZmVyTG9hZGluZz0hMSx0LmlEcmF3Kyssa2UodCwhMSk7ZWxzZSBpZighaSl0LmlEcmF3Kys7ZWxzZSBpZighdC5iRGVzdHJveWluZyYmIWUpe3QuaURyYXc9PT0wJiZnLmVtcHR5KCkuYXBwZW5kKFdhKHQpKSxobCh0KTtyZXR1cm59aWYoby5sZW5ndGghPT0wKWZvcih2YXIgbT1pPzA6dSxDPWk/dC5hb0RhdGEubGVuZ3RoOnAseT1tO3k8Qzt5Kyspe3ZhciBUPW9beV0sUD10LmFvRGF0YVtUXTtQLm5Ucj09PW51bGwmJmFzKHQsVCk7Zm9yKHZhciBjPVAublRyLGw9MDtsPGIubGVuZ3RoO2wrKyl7dmFyIGg9YltsXSxfPVAuYW5DZWxsc1tsXTtPbihfLGxlLnR5cGUuY2xhc3NOYW1lW2guc1R5cGVdKSxPbihfLHQub0NsYXNzZXMudGJvZHkuY2VsbCl9WnQodCwiYW9Sb3dDYWxsYmFjayIsbnVsbCxbYyxQLl9hRGF0YSxzLHksVF0pLHIucHVzaChjKSxzKyt9ZWxzZSByWzBdPVdhKHQpO1p0KHQsImFvSGVhZGVyQ2FsbGJhY2siLCJoZWFkZXIiLFtIKHQublRIZWFkKS5jaGlsZHJlbigidHIiKVswXSxIYSh0KSx1LHAsb10pLFp0KHQsImFvRm9vdGVyQ2FsbGJhY2siLCJmb290ZXIiLFtIKHQublRGb290KS5jaGlsZHJlbigidHIiKVswXSxIYSh0KSx1LHAsb10pLGdbMF0ucmVwbGFjZUNoaWxkcmVuP2dbMF0ucmVwbGFjZUNoaWxkcmVuLmFwcGx5KGdbMF0scik6KGcuY2hpbGRyZW4oKS5kZXRhY2goKSxnLmFwcGVuZChIKHIpKSksSCh0Lm5UYWJsZVdyYXBwZXIpLnRvZ2dsZUNsYXNzKCJkdC1lbXB0eS1mb290ZXIiLEgoInRyIix0Lm5URm9vdCkubGVuZ3RoPT09MCksWnQodCwiYW9EcmF3Q2FsbGJhY2siLCJkcmF3IixbdF0sITApLHQuYlNvcnRlZD0hMSx0LmJGaWx0ZXJlZD0hMSx0LmJEcmF3aW5nPSExfWZ1bmN0aW9uIFJuKHQsZSxuKXt2YXIgcj10Lm9GZWF0dXJlcyxzPXIuYlNvcnQsaT1yLmJGaWx0ZXI7KG49PT12b2lkIDB8fG49PT0hMCkmJihGaSh0KSxzJiZ6aSh0KSxpP3RyKHQsdC5vUHJldmlvdXNTZWFyY2gpOnQuYWlEaXNwbGF5PXQuYWlEaXNwbGF5TWFzdGVyLnNsaWNlKCkpLGUhPT0hMCYmKHQuX2lEaXNwbGF5U3RhcnQ9MCksdC5fZHJhd0hvbGQ9ZSxMbih0KSx0Ll9kcmF3SG9sZD0hMX1mdW5jdGlvbiBXYSh0KXt2YXIgZT10Lm9MYW5ndWFnZSxuPWUuc1plcm9SZWNvcmRzLHI9RWUodCk7cmV0dXJuIHQuaURyYXc8MSYmcj09PSJzc3AifHx0LmlEcmF3PD0xJiZyPT09ImFqYXgiP249ZS5zTG9hZGluZ1JlY29yZHM6ZS5zRW1wdHlUYWJsZSYmdC5mblJlY29yZHNUb3RhbCgpPT09MCYmKG49ZS5zRW1wdHlUYWJsZSksSCgiPHRyLz4iKS5hcHBlbmQoSCgiPHRkIC8+Iix7Y29sU3BhbjpFcih0KSxjbGFzczp0Lm9DbGFzc2VzLmVtcHR5LnJvd30pLmh0bWwobikpWzBdfWZ1bmN0aW9uIF9pKHQsZSxuKXtpZihBcnJheS5pc0FycmF5KG4pKXtmb3IodmFyIHI9MDtyPG4ubGVuZ3RoO3IrKylfaSh0LGUsbltyXSk7cmV0dXJufXZhciBzPXRbZV07SC5pc1BsYWluT2JqZWN0KG4pP24uZmVhdHVyZXM/KG4ucm93SWQmJih0LmlkPW4ucm93SWQpLG4ucm93Q2xhc3MmJih0LmNsYXNzTmFtZT1uLnJvd0NsYXNzKSxzLmlkPW4uaWQscy5jbGFzc05hbWU9bi5jbGFzc05hbWUsX2kodCxlLG4uZmVhdHVyZXMpKTpPYmplY3Qua2V5cyhuKS5tYXAoZnVuY3Rpb24oaSl7cy5jb250ZW50cy5wdXNoKHtmZWF0dXJlOmksb3B0czpuW2ldfSl9KTpzLmNvbnRlbnRzLnB1c2gobil9ZnVuY3Rpb24gbGwodCxlLG4pe2Zvcih2YXIgcixzPTA7czx0Lmxlbmd0aDtzKyspaWYocj10W3NdLHIucm93TnVtPT09ZSYmKG49PT0iZnVsbCImJnIuZnVsbHx8KG49PT0ic3RhcnQifHxuPT09ImVuZCIpJiYoci5zdGFydHx8ci5lbmQpKSlyZXR1cm4gcltuXXx8KHJbbl09e2NvbnRlbnRzOltdfSkscjtyZXR1cm4gcj17cm93TnVtOmV9LHJbbl09e2NvbnRlbnRzOltdfSx0LnB1c2gocikscn1mdW5jdGlvbiBHYSh0LGUsbil7dmFyIHI9W107SC5lYWNoKGUsZnVuY3Rpb24oaSxvKXtpZihvIT09bnVsbCl7dmFyIHU9aS5tYXRjaCgvXihbYS16XSspKFswLTldKikoW0EtWmEtel0qKSQvKSxwPXVbMl0/dVsyXSoxOjAsYj11WzNdP3VbM10udG9Mb3dlckNhc2UoKToiZnVsbCI7aWYodVsxXT09PW4pe3ZhciBnPWxsKHIscCxiKTtfaShnLGIsbyl9fX0pLHIuc29ydChmdW5jdGlvbihpLG8pe3ZhciB1PWkucm93TnVtLHA9by5yb3dOdW07aWYodT09PXApe3ZhciBiPWkuZnVsbCYmIW8uZnVsbD8tMToxO3JldHVybiBuPT09ImJvdHRvbSI/YiotMTpifXJldHVybiBwLXV9KSxuPT09ImJvdHRvbSImJnIucmV2ZXJzZSgpO2Zvcih2YXIgcz0wO3M8ci5sZW5ndGg7cysrKWRlbGV0ZSByW3NdLnJvd051bSxkbCh0LHJbc10pO3JldHVybiByfWZ1bmN0aW9uIGRsKHQsZSl7dmFyIG49ZnVuY3Rpb24ocyxpKXtyZXR1cm4gbGUuZmVhdHVyZXNbc118fE9lKHQsMCwiVW5rbm93biBmZWF0dXJlOiAiK3MpLGxlLmZlYXR1cmVzW3NdLmFwcGx5KHRoaXMsW3QsaV0pfSxyPWZ1bmN0aW9uKHMpe2lmKGVbc10pZm9yKHZhciBpPWVbc10uY29udGVudHMsbz0wLHU9aS5sZW5ndGg7bzx1O28rKylpZihpW29dKXtpZih0eXBlb2YgaVtvXT09InN0cmluZyIpaVtvXT1uKGlbb10sbnVsbCk7ZWxzZSBpZihILmlzUGxhaW5PYmplY3QoaVtvXSkpaVtvXT1uKGlbb10uZmVhdHVyZSxpW29dLm9wdHMpO2Vsc2UgaWYodHlwZW9mIGlbb10ubm9kZT09ImZ1bmN0aW9uIilpW29dPWlbb10ubm9kZSh0KTtlbHNlIGlmKHR5cGVvZiBpW29dPT0iZnVuY3Rpb24iKXt2YXIgcD1pW29dKHQpO2lbb109dHlwZW9mIHAubm9kZT09ImZ1bmN0aW9uIj9wLm5vZGUoKTpwfX1lbHNlIGNvbnRpbnVlfTtyKCJzdGFydCIpLHIoImVuZCIpLHIoImZ1bGwiKX1mdW5jdGlvbiB1bCh0KXt2YXIgZT10Lm9DbGFzc2VzLG49SCh0Lm5UYWJsZSkscj1IKCI8ZGl2Lz4iKS5hdHRyKHtpZDp0LnNUYWJsZUlkKyJfd3JhcHBlciIsY2xhc3M6ZS5jb250YWluZXJ9KS5pbnNlcnRCZWZvcmUobik7aWYodC5uVGFibGVXcmFwcGVyPXJbMF0sdC5zRG9tKWNsKHQsdC5zRG9tLHIpO2Vsc2V7dmFyIHM9R2EodCx0LmxheW91dCwidG9wIiksaT1HYSh0LHQubGF5b3V0LCJib3R0b20iKSxvPUZyKHQsImxheW91dCIpO3MuZm9yRWFjaChmdW5jdGlvbih1KXtvKHQscix1KX0pLG8odCxyLHtmdWxsOnt0YWJsZTohMCxjb250ZW50czpbY3ModCldfX0pLGkuZm9yRWFjaChmdW5jdGlvbih1KXtvKHQscix1KX0pfXdsKHQpfWZ1bmN0aW9uIGNsKHQsZSxuKXtmb3IodmFyIHI9ZS5tYXRjaCgvKCIuKj8iKXwoJy4qPycpfC4vZykscyxpLG8sdSxwLGI9MDtiPHIubGVuZ3RoO2IrKyl7aWYocz1udWxsLGk9cltiXSxpPT0iPCIpe2lmKG89SCgiPGRpdi8+IiksdT1yW2IrMV0sdVswXT09IicifHx1WzBdPT0nIicpe3A9dS5yZXBsYWNlKC9bJyJdL2csIiIpO3ZhciBnPSIiLG07aWYocC5pbmRleE9mKCIuIikhPS0xKXt2YXIgQz1wLnNwbGl0KCIuIik7Zz1DWzBdLG09Q1sxXX1lbHNlIHBbMF09PSIjIj9nPXA6bT1wO28uYXR0cigiaWQiLGcuc3Vic3RyaW5nKDEpKS5hZGRDbGFzcyhtKSxiKyt9bi5hcHBlbmQobyksbj1vfWVsc2UgaT09Ij4iP249bi5wYXJlbnQoKTppPT0idCI/cz1jcyh0KTpidC5leHQuZmVhdHVyZS5mb3JFYWNoKGZ1bmN0aW9uKHkpe2k9PXkuY0ZlYXR1cmUmJihzPXkuZm5Jbml0KHQpKX0pO3MmJm4uYXBwZW5kKHMpfX1mdW5jdGlvbiBscyh0LGUsbil7dmFyIHI9dC5hb0NvbHVtbnMscz1IKGUpLmNoaWxkcmVuKCJ0ciIpLGksbyx1LHAsYixnLG0sQyx5LFQsUD1lJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0idGhlYWQiLGM9W10sbCxoPWZ1bmN0aW9uKFUsWCxRKXtmb3IodmFyIEU9VVtYXTtFW1FdOylRKys7cmV0dXJuIFF9O2Zvcih1PTAsZz1zLmxlbmd0aDt1PGc7dSsrKWMucHVzaChbXSk7Zm9yKHU9MCxnPXMubGVuZ3RoO3U8Zzt1KyspZm9yKGk9c1t1XSxDPTAsbz1pLmZpcnN0Q2hpbGQ7bzspe2lmKG8ubm9kZU5hbWUudG9VcHBlckNhc2UoKT09IlREInx8by5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpPT0iVEgiKXt2YXIgXz1bXTtpZih5PW8uZ2V0QXR0cmlidXRlKCJjb2xzcGFuIikqMSxUPW8uZ2V0QXR0cmlidXRlKCJyb3dzcGFuIikqMSx5PSF5fHx5PT09MHx8eT09PTE/MTp5LFQ9IVR8fFQ9PT0wfHxUPT09MT8xOlQsbT1oKGMsdSxDKSxsPXk9PT0xLG4pe2lmKGwpe3hpKHQsbSxIKG8pLmRhdGEoKSk7dmFyIEY9clttXSxPPW8uZ2V0QXR0cmlidXRlKCJ3aWR0aCIpfHxudWxsLGY9by5zdHlsZS53aWR0aC5tYXRjaCgvd2lkdGg6XHMqKFxkK1tweGVtJV0rKS8pO2YmJihPPWZbMV0pLEYuc1dpZHRoT3JpZz1GLnNXaWR0aHx8TyxQPyhGLnNUaXRsZSE9PW51bGwmJiFGLmF1dG9UaXRsZSYmKG8uaW5uZXJIVE1MPUYuc1RpdGxlKSwhRi5zVGl0bGUmJmwmJihGLnNUaXRsZT1nbihvLmlubmVySFRNTCksRi5hdXRvVGl0bGU9ITApKTpGLmZvb3RlciYmKG8uaW5uZXJIVE1MPUYuZm9vdGVyKSxGLmFyaWFUaXRsZXx8KEYuYXJpYVRpdGxlPUgobykuYXR0cigiYXJpYS1sYWJlbCIpfHxGLnNUaXRsZSksRi5jbGFzc05hbWUmJkgobykuYWRkQ2xhc3MoRi5jbGFzc05hbWUpfUgoInNwYW4uZHQtY29sdW1uLXRpdGxlIixvKS5sZW5ndGg9PT0wJiZIKCI8c3Bhbj4iKS5hZGRDbGFzcygiZHQtY29sdW1uLXRpdGxlIikuYXBwZW5kKG8uY2hpbGROb2RlcykuYXBwZW5kVG8obyksUCYmSCgic3Bhbi5kdC1jb2x1bW4tb3JkZXIiLG8pLmxlbmd0aD09PTAmJkgoIjxzcGFuPiIpLmFkZENsYXNzKCJkdC1jb2x1bW4tb3JkZXIiKS5hcHBlbmRUbyhvKX1mb3IoYj0wO2I8eTtiKyspe2ZvcihwPTA7cDxUO3ArKyljW3UrcF1bbStiXT17Y2VsbDpvLHVuaXF1ZTpsfSxjW3UrcF0ucm93PWk7Xy5wdXNoKG0rYil9by5zZXRBdHRyaWJ1dGUoImRhdGEtZHQtY29sdW1uIix4bihfKS5qb2luKCIsIikpfW89by5uZXh0U2libGluZ31yZXR1cm4gY31mdW5jdGlvbiBmbCh0KXt2YXIgZT1FZSh0KT09InNzcCIsbj10LmlJbml0RGlzcGxheVN0YXJ0O24hPT12b2lkIDAmJm4hPT0tMSYmKHQuX2lEaXNwbGF5U3RhcnQ9ZT9uOm4+PXQuZm5SZWNvcmRzRGlzcGxheSgpPzA6bix0LmlJbml0RGlzcGxheVN0YXJ0PS0xKX1mdW5jdGlvbiBSaSh0LGUsbil7dmFyIHIscz10LmFqYXgsaT10Lm9JbnN0YW5jZSxvPWZ1bmN0aW9uKGcpe3ZhciBtPXQuanFYSFI/dC5qcVhIUi5zdGF0dXM6bnVsbDsoZz09PW51bGx8fHR5cGVvZiBtPT0ibnVtYmVyIiYmbT09MjA0KSYmKGc9e30sTHIodCxnLFtdKSk7dmFyIEM9Zy5lcnJvcnx8Zy5zRXJyb3I7aWYoQyYmT2UodCwwLEMpLGcuZCYmdHlwZW9mIGcuZD09InN0cmluZyIpdHJ5e2c9SlNPTi5wYXJzZShnLmQpfWNhdGNoe310Lmpzb249ZyxadCh0LG51bGwsInhociIsW3QsZyx0LmpxWEhSXSwhMCksbihnKX07aWYoSC5pc1BsYWluT2JqZWN0KHMpJiZzLmRhdGEpe3I9cy5kYXRhO3ZhciB1PXR5cGVvZiByPT0iZnVuY3Rpb24iP3IoZSx0KTpyO2U9dHlwZW9mIHI9PSJmdW5jdGlvbiImJnU/dTpILmV4dGVuZCghMCxlLHUpLGRlbGV0ZSBzLmRhdGF9dmFyIHA9e3VybDp0eXBlb2Ygcz09InN0cmluZyI/czoiIixkYXRhOmUsc3VjY2VzczpvLGRhdGFUeXBlOiJqc29uIixjYWNoZTohMSx0eXBlOnQuc1NlcnZlck1ldGhvZCxlcnJvcjpmdW5jdGlvbihnLG0pe3ZhciBDPVp0KHQsbnVsbCwieGhyIixbdCxudWxsLHQuanFYSFJdLCEwKTtDLmluZGV4T2YoITApPT09LTEmJihtPT0icGFyc2VyZXJyb3IiP09lKHQsMCwiSW52YWxpZCBKU09OIHJlc3BvbnNlIiwxKTpnLnJlYWR5U3RhdGU9PT00JiZPZSh0LDAsIkFqYXggZXJyb3IiLDcpKSxrZSh0LCExKX19O2lmKEguaXNQbGFpbk9iamVjdChzKSYmSC5leHRlbmQocCxzKSx0Lm9BamF4RGF0YT1lLFp0KHQsbnVsbCwicHJlWGhyIixbdCxlLHBdLCEwKSx0eXBlb2Ygcz09ImZ1bmN0aW9uIil0LmpxWEhSPXMuY2FsbChpLGUsbyx0KTtlbHNlIGlmKHMudXJsPT09IiIpe3ZhciBiPXt9O2J0LnV0aWwuc2V0KHMuZGF0YVNyYykoYixbXSksbyhiKX1lbHNlIHQuanFYSFI9SC5hamF4KHApO3ImJihzLmRhdGE9cil9ZnVuY3Rpb24gaGwodCl7dC5pRHJhdysrLGtlKHQsITApLFJpKHQscGwodCksZnVuY3Rpb24oZSl7YmwodCxlKX0pfWZ1bmN0aW9uIHBsKHQpe3ZhciBlPXQuYW9Db2x1bW5zLG49dC5vRmVhdHVyZXMscj10Lm9QcmV2aW91c1NlYXJjaCxzPXQuYW9QcmVTZWFyY2hDb2xzLGk9ZnVuY3Rpb24obyx1KXtyZXR1cm4gdHlwZW9mIGVbb11bdV09PSJmdW5jdGlvbiI/ImZ1bmN0aW9uIjplW29dW3VdfTtyZXR1cm57ZHJhdzp0LmlEcmF3LGNvbHVtbnM6ZS5tYXAoZnVuY3Rpb24obyx1KXtyZXR1cm57ZGF0YTppKHUsIm1EYXRhIiksbmFtZTpvLnNOYW1lLHNlYXJjaGFibGU6by5iU2VhcmNoYWJsZSxvcmRlcmFibGU6by5iU29ydGFibGUsc2VhcmNoOnt2YWx1ZTpzW3VdLnNlYXJjaCxyZWdleDpzW3VdLnJlZ2V4LGZpeGVkOk9iamVjdC5rZXlzKG8uc2VhcmNoRml4ZWQpLm1hcChmdW5jdGlvbihwKXtyZXR1cm57bmFtZTpwLHRlcm06by5zZWFyY2hGaXhlZFtwXS50b1N0cmluZygpfX0pfX19KSxvcmRlcjp6cih0KS5tYXAoZnVuY3Rpb24obyl7cmV0dXJue2NvbHVtbjpvLmNvbCxkaXI6by5kaXIsbmFtZTppKG8uY29sLCJzTmFtZSIpfX0pLHN0YXJ0OnQuX2lEaXNwbGF5U3RhcnQsbGVuZ3RoOm4uYlBhZ2luYXRlP3QuX2lEaXNwbGF5TGVuZ3RoOi0xLHNlYXJjaDp7dmFsdWU6ci5zZWFyY2gscmVnZXg6ci5yZWdleCxmaXhlZDpPYmplY3Qua2V5cyh0LnNlYXJjaEZpeGVkKS5tYXAoZnVuY3Rpb24obyl7cmV0dXJue25hbWU6byx0ZXJtOnQuc2VhcmNoRml4ZWRbb10udG9TdHJpbmcoKX19KX19fWZ1bmN0aW9uIGJsKHQsZSl7dmFyIG49THIodCxlKSxyPXZpKHQsImRyYXciLGUpLHM9dmkodCwicmVjb3Jkc1RvdGFsIixlKSxpPXZpKHQsInJlY29yZHNGaWx0ZXJlZCIsZSk7aWYociE9PXZvaWQgMCl7aWYocioxPHQuaURyYXcpcmV0dXJuO3QuaURyYXc9cioxfW58fChuPVtdKSxPaSh0KSx0Ll9pUmVjb3Jkc1RvdGFsPXBhcnNlSW50KHMsMTApLHQuX2lSZWNvcmRzRGlzcGxheT1wYXJzZUludChpLDEwKTtmb3IodmFyIG89MCx1PW4ubGVuZ3RoO288dTtvKyspeW4odCxuW29dKTt0LmFpRGlzcGxheT10LmFpRGlzcGxheU1hc3Rlci5zbGljZSgpLEZpKHQpLExuKHQsITApLFByKHQpLGtlKHQsITEpfWZ1bmN0aW9uIExyKHQsZSxuKXt2YXIgcj0iZGF0YSI7aWYoSC5pc1BsYWluT2JqZWN0KHQuYWpheCkmJnQuYWpheC5kYXRhU3JjIT09dm9pZCAwKXt2YXIgcz10LmFqYXguZGF0YVNyYzt0eXBlb2Ygcz09InN0cmluZyJ8fHR5cGVvZiBzPT0iZnVuY3Rpb24iP3I9czpzLmRhdGEhPT12b2lkIDAmJihyPXMuZGF0YSl9aWYoIW4pcmV0dXJuIHI9PT0iZGF0YSI/ZS5hYURhdGF8fGVbcl06ciE9PSIiP0VuKHIpKGUpOmU7dm4ocikoZSxuKX1mdW5jdGlvbiB2aSh0LGUsbil7dmFyIHI9SC5pc1BsYWluT2JqZWN0KHQuYWpheCk/dC5hamF4LmRhdGFTcmM6bnVsbDtpZihyJiZyW2VdKXJldHVybiBFbihyW2VdKShuKTt2YXIgcz0iIjtyZXR1cm4gZT09PSJkcmF3Ij9zPSJzRWNobyI6ZT09PSJyZWNvcmRzVG90YWwiP3M9ImlUb3RhbFJlY29yZHMiOmU9PT0icmVjb3Jkc0ZpbHRlcmVkIiYmKHM9ImlUb3RhbERpc3BsYXlSZWNvcmRzIiksbltzXSE9PXZvaWQgMD9uW3NdOm5bZV19ZnVuY3Rpb24gdHIodCxlKXt2YXIgbj10LmFvUHJlU2VhcmNoQ29scztpZihFZSh0KSE9InNzcCIpe3lsKHQpLHQuYWlEaXNwbGF5PXQuYWlEaXNwbGF5TWFzdGVyLnNsaWNlKCksX3IodC5haURpc3BsYXksdCxlLnNlYXJjaCxlKSxILmVhY2godC5zZWFyY2hGaXhlZCxmdW5jdGlvbihpLG8pe19yKHQuYWlEaXNwbGF5LHQsbyx7fSl9KTtmb3IodmFyIHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIHM9bltyXTtfcih0LmFpRGlzcGxheSx0LHMuc2VhcmNoLHMsciksSC5lYWNoKHQuYW9Db2x1bW5zW3JdLnNlYXJjaEZpeGVkLGZ1bmN0aW9uKGksbyl7X3IodC5haURpc3BsYXksdCxvLHt9LHIpfSl9bWwodCl9dC5iRmlsdGVyZWQ9ITAsWnQodCxudWxsLCJzZWFyY2giLFt0XSl9ZnVuY3Rpb24gbWwodCl7Zm9yKHZhciBlPWJ0LmV4dC5zZWFyY2gsbj10LmFpRGlzcGxheSxyLHMsaT0wLG89ZS5sZW5ndGg7aTxvO2krKyl7Zm9yKHZhciB1PVtdLHA9MCxiPW4ubGVuZ3RoO3A8YjtwKyspcz1uW3BdLHI9dC5hb0RhdGFbc10sZVtpXSh0LHIuX2FGaWx0ZXJEYXRhLHMsci5fYURhdGEscCkmJnUucHVzaChzKTtuLmxlbmd0aD0wLG4ucHVzaC5hcHBseShuLHUpfX1mdW5jdGlvbiBfcih0LGUsbixyLHMpe2lmKG4hPT0iIil7dmFyIGk9MCxvPVtdLHU9dHlwZW9mIG49PSJmdW5jdGlvbiI/bjpudWxsLHA9biBpbnN0YW5jZW9mIFJlZ0V4cD9uOnU/bnVsbDp2bChuLHIpO2ZvcihpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBiPWUuYW9EYXRhW3RbaV1dLGc9cz09PXZvaWQgMD9iLl9zRmlsdGVyUm93OmIuX2FGaWx0ZXJEYXRhW3NdOyh1JiZ1KGcsYi5fYURhdGEsdFtpXSxzKXx8cCYmcC50ZXN0KGcpKSYmby5wdXNoKHRbaV0pfWZvcih0Lmxlbmd0aD1vLmxlbmd0aCxpPTA7aTxvLmxlbmd0aDtpKyspdFtpXT1vW2ldfX1mdW5jdGlvbiB2bCh0LGUpe3ZhciBuPVtdLHI9SC5leHRlbmQoe30se2JvdW5kYXJ5OiExLGNhc2VJbnNlbnNpdGl2ZTohMCxleGFjdDohMSxyZWdleDohMSxzbWFydDohMH0sZSk7aWYodHlwZW9mIHQhPSJzdHJpbmciJiYodD10LnRvU3RyaW5nKCkpLHQ9RHIodCksci5leGFjdClyZXR1cm4gbmV3IFJlZ0V4cCgiXiIrQ2kodCkrIiQiLHIuY2FzZUluc2Vuc2l0aXZlPyJpIjoiIik7aWYodD1yLnJlZ2V4P3Q6Q2kodCksci5zbWFydCl7dmFyIHM9dC5tYXRjaCgvIT9bIlx1MjAxQ11bXiJcdTIwMURdK1siXHUyMDFEXXxbXiBdKy9nKXx8WyIiXSxpPXMubWFwKGZ1bmN0aW9uKHApe3ZhciBiPSExLGc7cmV0dXJuIHAuY2hhckF0KDApPT09IiEiJiYoYj0hMCxwPXAuc3Vic3RyaW5nKDEpKSxwLmNoYXJBdCgwKT09PSciJz8oZz1wLm1hdGNoKC9eIiguKikiJC8pLHA9Zz9nWzFdOnApOnAuY2hhckF0KDApPT09Ilx1MjAxQyImJihnPXAubWF0Y2goL15cdTIwMUMoLiopXHUyMDFEJC8pLHA9Zz9nWzFdOnApLGImJihwLmxlbmd0aD4xJiZuLnB1c2goIig/ISIrcCsiKSIpLHA9IiIpLHAucmVwbGFjZSgvIi9nLCIiKX0pLG89bi5sZW5ndGg/bi5qb2luKCIiKToiIix1PXIuYm91bmRhcnk/IlxcYiI6IiI7dD0iXig/PS4qPyIrdStpLmpvaW4oIikoPz0uKj8iK3UpKyIpKCIrbysiLikqJCJ9cmV0dXJuIG5ldyBSZWdFeHAodCxyLmNhc2VJbnNlbnNpdGl2ZT8iaSI6IiIpfXZhciBDaT1idC51dGlsLmVzY2FwZVJlZ2V4LFRyPUgoIjxkaXY+IilbMF0sZ2w9VHIudGV4dENvbnRlbnQhPT12b2lkIDA7ZnVuY3Rpb24geWwodCl7Zm9yKHZhciBlPXQuYW9Db2x1bW5zLG49dC5hb0RhdGEscixzLGksbyx1LHAsYj0hMSxnPTA7ZzxuLmxlbmd0aDtnKyspaWYobltnXSYmKHA9bltnXSwhcC5fYUZpbHRlckRhdGEpKXtmb3Iobz1bXSxzPTAsaT1lLmxlbmd0aDtzPGk7cysrKXI9ZVtzXSxyLmJTZWFyY2hhYmxlPyh1PVJlKHQsZyxzLCJmaWx0ZXIiKSx1PT09bnVsbCYmKHU9IiIpLHR5cGVvZiB1IT0ic3RyaW5nIiYmdS50b1N0cmluZyYmKHU9dS50b1N0cmluZygpKSk6dT0iIix1LmluZGV4T2YmJnUuaW5kZXhPZigiJiIpIT09LTEmJihUci5pbm5lckhUTUw9dSx1PWdsP1RyLnRleHRDb250ZW50OlRyLmlubmVyVGV4dCksdS5yZXBsYWNlJiYodT11LnJlcGxhY2UoL1tcclxuXHUyMDI4XS9nLCIiKSksby5wdXNoKHUpO3AuX2FGaWx0ZXJEYXRhPW8scC5fc0ZpbHRlclJvdz1vLmpvaW4oIiAgIiksYj0hMH1yZXR1cm4gYn1mdW5jdGlvbiBrcih0KXt2YXIgZSxuPXQub0luaXQscj10LmRlZmVyTG9hZGluZyxzPUVlKHQpO2lmKCF0LmJJbml0aWFsaXNlZCl7c2V0VGltZW91dChmdW5jdGlvbigpe2tyKHQpfSwyMDApO3JldHVybn1VYSh0LCJoZWFkZXIiKSxVYSh0LCJmb290ZXIiKSxTbCh0LG4sZnVuY3Rpb24oKXtJcih0LHQuYW9IZWFkZXIpLElyKHQsdC5hb0Zvb3Rlcik7dmFyIGk9dC5pSW5pdERpc3BsYXlTdGFydDtpZihuLmFhRGF0YSlmb3IoZT0wO2U8bi5hYURhdGEubGVuZ3RoO2UrKyl5bih0LG4uYWFEYXRhW2VdKTtlbHNlKHJ8fHM9PSJkb20iKSYmTmkodCxIKHQublRCb2R5KS5jaGlsZHJlbigidHIiKSk7dC5haURpc3BsYXk9dC5haURpc3BsYXlNYXN0ZXIuc2xpY2UoKSx1bCh0KSxDbCh0KSxocyh0KSxrZSh0LCEwKSxadCh0LG51bGwsInByZUluaXQiLFt0XSwhMCksUm4odCksKHMhPSJzc3AifHxyKSYmKHM9PSJhamF4Ij9SaSh0LHt9LGZ1bmN0aW9uKG8pe3ZhciB1PUxyKHQsbyk7Zm9yKGU9MDtlPHUubGVuZ3RoO2UrKyl5bih0LHVbZV0pO3QuaUluaXREaXNwbGF5U3RhcnQ9aSxSbih0KSxrZSh0LCExKSxQcih0KX0sdCk6KFByKHQpLGtlKHQsITEpKSl9KX1mdW5jdGlvbiBQcih0KXtpZighdC5fYkluaXRDb21wbGV0ZSl7dmFyIGU9W3QsdC5qc29uXTt0Ll9iSW5pdENvbXBsZXRlPSEwLE9yKHQpLFp0KHQsbnVsbCwicGx1Z2luLWluaXQiLGUsITApLFp0KHQsImFvSW5pdENvbXBsZXRlIiwiaW5pdCIsZSwhMCl9fWZ1bmN0aW9uIGRzKHQsZSl7dmFyIG49cGFyc2VJbnQoZSwxMCk7dC5faURpc3BsYXlMZW5ndGg9bix2cyh0KSxadCh0LG51bGwsImxlbmd0aCIsW3Qsbl0pfWZ1bmN0aW9uIExpKHQsZSxuKXt2YXIgcj10Ll9pRGlzcGxheVN0YXJ0LHM9dC5faURpc3BsYXlMZW5ndGgsaT10LmZuUmVjb3Jkc0Rpc3BsYXkoKTtpZihpPT09MHx8cz09PS0xKXI9MDtlbHNlIGlmKHR5cGVvZiBlPT0ibnVtYmVyIilyPWUqcyxyPmkmJihyPTApO2Vsc2UgaWYoZT09ImZpcnN0IilyPTA7ZWxzZSBpZihlPT0icHJldmlvdXMiKXI9cz49MD9yLXM6MCxyPDAmJihyPTApO2Vsc2UgaWYoZT09Im5leHQiKXIrczxpJiYocis9cyk7ZWxzZSBpZihlPT0ibGFzdCIpcj1NYXRoLmZsb29yKChpLTEpL3MpKnM7ZWxzZXtpZihlPT09ImVsbGlwc2lzIilyZXR1cm47T2UodCwwLCJVbmtub3duIHBhZ2luZyBhY3Rpb246ICIrZSw1KX12YXIgbz10Ll9pRGlzcGxheVN0YXJ0IT09cjtyZXR1cm4gdC5faURpc3BsYXlTdGFydD1yLFp0KHQsbnVsbCxvPyJwYWdlIjoicGFnZS1uYyIsW3RdKSxvJiZuJiZMbih0KSxvfWZ1bmN0aW9uIHdsKHQpe3ZhciBlPXQublRhYmxlLG49dC5vU2Nyb2xsLnNYIT09IiJ8fHQub1Njcm9sbC5zWSE9PSIiO2lmKHQub0ZlYXR1cmVzLmJQcm9jZXNzaW5nKXt2YXIgcj1IKCI8ZGl2Lz4iLHtpZDp0LnNUYWJsZUlkKyJfcHJvY2Vzc2luZyIsY2xhc3M6dC5vQ2xhc3Nlcy5wcm9jZXNzaW5nLmNvbnRhaW5lcixyb2xlOiJzdGF0dXMifSkuaHRtbCh0Lm9MYW5ndWFnZS5zUHJvY2Vzc2luZykuYXBwZW5kKCI8ZGl2PjxkaXY+PC9kaXY+PGRpdj48L2Rpdj48ZGl2PjwvZGl2PjxkaXY+PC9kaXY+PC9kaXY+Iik7bj9yLnByZXBlbmRUbyhIKCJkaXYuZHQtc2Nyb2xsIix0Lm5UYWJsZVdyYXBwZXIpKTpyLmluc2VydEJlZm9yZShlKSxIKGUpLm9uKCJwcm9jZXNzaW5nLmR0LkRUIixmdW5jdGlvbihzLGksbyl7ci5jc3MoImRpc3BsYXkiLG8/ImJsb2NrIjoibm9uZSIpfSl9fWZ1bmN0aW9uIGtlKHQsZSl7dC5iRHJhd2luZyYmZT09PSExfHxadCh0LG51bGwsInByb2Nlc3NpbmciLFt0LGVdKX1mdW5jdGlvbiB1cyh0LGUsbil7ZT8oa2UodCwhMCksc2V0VGltZW91dChmdW5jdGlvbigpe24oKSxrZSh0LCExKX0sMCkpOm4oKX1mdW5jdGlvbiBjcyh0KXt2YXIgZT1IKHQublRhYmxlKSxuPXQub1Njcm9sbDtpZihuLnNYPT09IiImJm4uc1k9PT0iIilyZXR1cm4gdC5uVGFibGU7dmFyIHI9bi5zWCxzPW4uc1ksaT10Lm9DbGFzc2VzLnNjcm9sbGluZyxvPXQuY2FwdGlvbk5vZGUsdT1vP28uX2NhcHRpb25TaWRlOm51bGwscD1IKGVbMF0uY2xvbmVOb2RlKCExKSksYj1IKGVbMF0uY2xvbmVOb2RlKCExKSksZz1lLmNoaWxkcmVuKCJ0Zm9vdCIpLG09IjxkaXYvPiIsQz1mdW5jdGlvbihoKXtyZXR1cm4gaD9vbihoKTpudWxsfTtnLmxlbmd0aHx8KGc9bnVsbCk7dmFyIHk9SChtLHtjbGFzczppLmNvbnRhaW5lcn0pLmFwcGVuZChIKG0se2NsYXNzOmkuaGVhZGVyLnNlbGZ9KS5jc3Moe292ZXJmbG93OiJoaWRkZW4iLHBvc2l0aW9uOiJyZWxhdGl2ZSIsYm9yZGVyOjAsd2lkdGg6cj9DKHIpOiIxMDAlIn0pLmFwcGVuZChIKG0se2NsYXNzOmkuaGVhZGVyLmlubmVyfSkuY3NzKHsiYm94LXNpemluZyI6ImNvbnRlbnQtYm94Iix3aWR0aDpuLnNYSW5uZXJ8fCIxMDAlIn0pLmFwcGVuZChwLnJlbW92ZUF0dHIoImlkIikuY3NzKCJtYXJnaW4tbGVmdCIsMCkuYXBwZW5kKHU9PT0idG9wIj9vOm51bGwpLmFwcGVuZChlLmNoaWxkcmVuKCJ0aGVhZCIpKSkpKS5hcHBlbmQoSChtLHtjbGFzczppLmJvZHl9KS5jc3Moe3Bvc2l0aW9uOiJyZWxhdGl2ZSIsb3ZlcmZsb3c6ImF1dG8iLHdpZHRoOkMocil9KS5hcHBlbmQoZSkpO2cmJnkuYXBwZW5kKEgobSx7Y2xhc3M6aS5mb290ZXIuc2VsZn0pLmNzcyh7b3ZlcmZsb3c6ImhpZGRlbiIsYm9yZGVyOjAsd2lkdGg6cj9DKHIpOiIxMDAlIn0pLmFwcGVuZChIKG0se2NsYXNzOmkuZm9vdGVyLmlubmVyfSkuYXBwZW5kKGIucmVtb3ZlQXR0cigiaWQiKS5jc3MoIm1hcmdpbi1sZWZ0IiwwKS5hcHBlbmQodT09PSJib3R0b20iP286bnVsbCkuYXBwZW5kKGUuY2hpbGRyZW4oInRmb290IikpKSkpO3ZhciBUPXkuY2hpbGRyZW4oKSxQPVRbMF0sYz1UWzFdLGw9Zz9UWzJdOm51bGw7cmV0dXJuIEgoYykub24oInNjcm9sbC5EVCIsZnVuY3Rpb24oKXt2YXIgaD10aGlzLnNjcm9sbExlZnQ7UC5zY3JvbGxMZWZ0PWgsZyYmKGwuc2Nyb2xsTGVmdD1oKX0pLEgoInRoLCB0ZCIsUCkub24oImZvY3VzIixmdW5jdGlvbigpe3ZhciBoPVAuc2Nyb2xsTGVmdDtjLnNjcm9sbExlZnQ9aCxnJiYoYy5zY3JvbGxMZWZ0PWgpfSksSChjKS5jc3MoIm1heC1oZWlnaHQiLHMpLG4uYkNvbGxhcHNlfHxIKGMpLmNzcygiaGVpZ2h0IixzKSx0Lm5TY3JvbGxIZWFkPVAsdC5uU2Nyb2xsQm9keT1jLHQublNjcm9sbEZvb3Q9bCx0LmFvRHJhd0NhbGxiYWNrLnB1c2goZnMpLHlbMF19ZnVuY3Rpb24gZnModCl7dmFyIGU9dC5vU2Nyb2xsLG49ZS5pQmFyV2lkdGgscj1IKHQublNjcm9sbEhlYWQpLHM9ci5jaGlsZHJlbigiZGl2IiksaT1zLmNoaWxkcmVuKCJ0YWJsZSIpLG89dC5uU2Nyb2xsQm9keSx1PUgobykscD1IKHQublNjcm9sbEZvb3QpLGI9cC5jaGlsZHJlbigiZGl2IiksZz1iLmNoaWxkcmVuKCJ0YWJsZSIpLG09SCh0Lm5USGVhZCksQz1IKHQublRhYmxlKSx5PXQublRGb290JiZIKCJ0aCwgdGQiLHQublRGb290KS5sZW5ndGg/SCh0Lm5URm9vdCk6bnVsbCxUPXQub0Jyb3dzZXIsUCxjLGw9by5zY3JvbGxIZWlnaHQ+by5jbGllbnRIZWlnaHQ7aWYodC5zY3JvbGxCYXJWaXMhPT1sJiZ0LnNjcm9sbEJhclZpcyE9PXZvaWQgMCl7dC5zY3JvbGxCYXJWaXM9bCxPcih0KTtyZXR1cm59ZWxzZSB0LnNjcm9sbEJhclZpcz1sO2lmKEMuY2hpbGRyZW4oInRoZWFkLCB0Zm9vdCIpLnJlbW92ZSgpLFA9bS5jbG9uZSgpLnByZXBlbmRUbyhDKSxQLmZpbmQoInRoLCB0ZCIpLnJlbW92ZUF0dHIoInRhYmluZGV4IiksUC5maW5kKCJbaWRdIikucmVtb3ZlQXR0cigiaWQiKSx5JiYoYz15LmNsb25lKCkucHJlcGVuZFRvKEMpLGMuZmluZCgiW2lkXSIpLnJlbW92ZUF0dHIoImlkIikpLHQuYWlEaXNwbGF5Lmxlbmd0aCl7dmFyIGg9bnVsbDtmb3IoZj0wO2Y8dC5haURpc3BsYXkubGVuZ3RoO2YrKyl7dmFyIF89dC5haURpc3BsYXlbZl0sRj10LmFvRGF0YVtfXS5uVHI7aWYoRil7aD1GO2JyZWFrfX1pZihoKWZvcih2YXIgTz1IKGgpLmNoaWxkcmVuKCJ0aCwgdGQiKS5tYXAoZnVuY3Rpb24odyl7cmV0dXJue2lkeDpJaSh0LHcpLHdpZHRoOkgodGhpcykub3V0ZXJXaWR0aCgpfX0pLGY9MDtmPE8ubGVuZ3RoO2YrKyl7dmFyIFU9dC5hb0NvbHVtbnNbT1tmXS5pZHhdLmNvbEVsWzBdLFg9VS5zdHlsZS53aWR0aC5yZXBsYWNlKCJweCIsIiIpO1ghPT1PW2ZdLndpZHRoJiYoVS5zdHlsZS53aWR0aD1PW2ZdLndpZHRoKyJweCIpfX1pLmZpbmQoImNvbGdyb3VwIikucmVtb3ZlKCksaS5hcHBlbmQodC5jb2xncm91cC5jbG9uZSgpKSx5JiYoZy5maW5kKCJjb2xncm91cCIpLnJlbW92ZSgpLGcuYXBwZW5kKHQuY29sZ3JvdXAuY2xvbmUoKSkpLEgoInRoLCB0ZCIsUCkuZWFjaChmdW5jdGlvbigpe0godGhpcy5jaGlsZE5vZGVzKS53cmFwQWxsKCc8ZGl2IGNsYXNzPSJkdC1zY3JvbGwtc2l6aW5nIj4nKX0pLHkmJkgoInRoLCB0ZCIsYykuZWFjaChmdW5jdGlvbigpe0godGhpcy5jaGlsZE5vZGVzKS53cmFwQWxsKCc8ZGl2IGNsYXNzPSJkdC1zY3JvbGwtc2l6aW5nIj4nKX0pO3ZhciBRPU1hdGguZmxvb3IoQy5oZWlnaHQoKSk+by5jbGllbnRIZWlnaHR8fHUuY3NzKCJvdmVyZmxvdy15Iik9PSJzY3JvbGwiLEU9InBhZGRpbmciKyhULmJTY3JvbGxiYXJMZWZ0PyJMZWZ0IjoiUmlnaHQiKSwkPUMub3V0ZXJXaWR0aCgpO2kuY3NzKCJ3aWR0aCIsb24oJCkpLHMuY3NzKCJ3aWR0aCIsb24oJCkpLmNzcyhFLFE/bisicHgiOiIwcHgiKSx5JiYoZy5jc3MoIndpZHRoIixvbigkKSksYi5jc3MoIndpZHRoIixvbigkKSkuY3NzKEUsUT9uKyJweCI6IjBweCIpKSxDLmNoaWxkcmVuKCJjb2xncm91cCIpLnByZXBlbmRUbyhDKSx1LnRyaWdnZXIoInNjcm9sbCIpLCh0LmJTb3J0ZWR8fHQuYkZpbHRlcmVkKSYmIXQuX2RyYXdIb2xkJiYoby5zY3JvbGxUb3A9MCl9ZnVuY3Rpb24geGwodCl7aWYodC5vRmVhdHVyZXMuYkF1dG9XaWR0aCl7dmFyIGU9dC5uVGFibGUsbj10LmFvQ29sdW1ucyxyPXQub1Njcm9sbCxzPXIuc1ksaT1yLnNYLG89ci5zWElubmVyLHU9UGkodCwiYlZpc2libGUiKSxwPWUuZ2V0QXR0cmlidXRlKCJ3aWR0aCIpLGI9ZS5wYXJlbnROb2RlLGcsbSxDLHk9ZS5zdHlsZS53aWR0aDsheSYmIXAmJihlLnN0eWxlLndpZHRoPSIxMDAlIix5PSIxMDAlIikseSYmeS5pbmRleE9mKCIlIikhPT0tMSYmKHA9eSksWnQodCxudWxsLCJjb2x1bW4tY2FsYyIse3Zpc2libGU6dX0sITEpO3ZhciBUPUgoZS5jbG9uZU5vZGUoKSkuY3NzKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIikucmVtb3ZlQXR0cigiaWQiKTtULmFwcGVuZCgiPHRib2R5PiIpO3ZhciBQPUgoIjx0ci8+IikuYXBwZW5kVG8oVC5maW5kKCJ0Ym9keSIpKTtmb3IoVC5hcHBlbmQoSCh0Lm5USGVhZCkuY2xvbmUoKSkuYXBwZW5kKEgodC5uVEZvb3QpLmNsb25lKCkpLFQuZmluZCgidGZvb3QgdGgsIHRmb290IHRkIikuY3NzKCJ3aWR0aCIsIiIpLFQuZmluZCgidGhlYWQgdGgsIHRoZWFkIHRkIikuZWFjaChmdW5jdGlvbigpe3ZhciBRPXJzKHQsdGhpcywhMCwhMSk7UT8odGhpcy5zdHlsZS53aWR0aD1RLHRoaXMuc3R5bGUubWluV2lkdGg9USxpJiZIKHRoaXMpLmFwcGVuZChIKCI8ZGl2Lz4iKS5jc3Moe3dpZHRoOlEsbWFyZ2luOjAscGFkZGluZzowLGJvcmRlcjowLGhlaWdodDoxfSkpKTp0aGlzLnN0eWxlLndpZHRoPSIifSksZz0wO2c8dS5sZW5ndGg7ZysrKXtDPXVbZ10sbT1uW0NdO3ZhciBjPV9sKHQsQyksbD1sZS50eXBlLmNsYXNzTmFtZVttLnNUeXBlXSxoPWMrbS5zQ29udGVudFBhZGRpbmcsXz1jLmluZGV4T2YoIjwiKT09PS0xP2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKGgpOmg7SCgiPHRkLz4iKS5hZGRDbGFzcyhsKS5hZGRDbGFzcyhtLnNDbGFzcykuYXBwZW5kKF8pLmFwcGVuZFRvKFApfUgoIltuYW1lXSIsVCkucmVtb3ZlQXR0cigibmFtZSIpO3ZhciBGPUgoIjxkaXYvPiIpLmNzcyhpfHxzP3twb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDowLGxlZnQ6MCxoZWlnaHQ6MSxyaWdodDowLG92ZXJmbG93OiJoaWRkZW4ifTp7fSkuYXBwZW5kKFQpLmFwcGVuZFRvKGIpO2kmJm8/VC53aWR0aChvKTppPyhULmNzcygid2lkdGgiLCJhdXRvIiksVC5yZW1vdmVBdHRyKCJ3aWR0aCIpLFQud2lkdGgoKTxiLmNsaWVudFdpZHRoJiZwJiZULndpZHRoKGIuY2xpZW50V2lkdGgpKTpzP1Qud2lkdGgoYi5jbGllbnRXaWR0aCk6cCYmVC53aWR0aChwKTt2YXIgTz0wLGY9VC5maW5kKCJ0Ym9keSB0ciIpLmVxKDApLmNoaWxkcmVuKCk7Zm9yKGc9MDtnPHUubGVuZ3RoO2crKyl7dmFyIFU9ZltnXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtPKz1VLG5bdVtnXV0uc1dpZHRoPW9uKFUpfWlmKGUuc3R5bGUud2lkdGg9b24oTyksRi5yZW1vdmUoKSxwJiYoZS5zdHlsZS53aWR0aD1vbihwKSksKHB8fGkpJiYhdC5fcmVzekV2dCl7dmFyIFg9ZnVuY3Rpb24oKXtIKHdpbmRvdykub24oInJlc2l6ZS5EVC0iK3Quc0luc3RhbmNlLGJ0LnV0aWwudGhyb3R0bGUoZnVuY3Rpb24oKXt0LmJEZXN0cm95aW5nfHxPcih0KX0pKX07WCgpLHQuX3Jlc3pFdnQ9ITB9fX1mdW5jdGlvbiBfbCh0LGUpe3ZhciBuPXQuYW9Db2x1bW5zW2VdO2lmKCFuLm1heExlblN0cmluZyl7Zm9yKHZhciByLHM9IiIsaT0tMSxvPTAsdT10LmFpRGlzcGxheU1hc3Rlci5sZW5ndGg7bzx1O28rKyl7dmFyIHA9dC5haURpc3BsYXlNYXN0ZXJbb10sYj1FaSh0LHApW2VdLGc9YiYmdHlwZW9mIGI9PSJvYmplY3QiJiZiLm5vZGVUeXBlP2IuaW5uZXJIVE1MOmIrIiI7Zz1nLnJlcGxhY2UoL2lkPSIuKj8iL2csIiIpLnJlcGxhY2UoL25hbWU9Ii4qPyIvZywiIikscj1nbihnKS5yZXBsYWNlKC8mbmJzcDsvZywiICIpLHIubGVuZ3RoPmkmJihzPWcsaT1yLmxlbmd0aCl9bi5tYXhMZW5TdHJpbmc9c31yZXR1cm4gbi5tYXhMZW5TdHJpbmd9ZnVuY3Rpb24gb24odCl7cmV0dXJuIHQ9PT1udWxsPyIwcHgiOnR5cGVvZiB0PT0ibnVtYmVyIj90PDA/IjBweCI6dCsicHgiOnQubWF0Y2goL1xkJC8pP3QrInB4Ijp0fWZ1bmN0aW9uIGhzKHQpe3ZhciBlPXQuYW9Db2x1bW5zO2Zvcih0LmNvbGdyb3VwLmVtcHR5KCksTmU9MDtOZTxlLmxlbmd0aDtOZSsrKWVbTmVdLmJWaXNpYmxlJiZ0LmNvbGdyb3VwLmFwcGVuZChlW05lXS5jb2xFbCl9ZnVuY3Rpb24gQ2wodCl7dmFyIGU9dC5uVEhlYWQsbj1lLnF1ZXJ5U2VsZWN0b3JBbGwoInRyIikscj10LmJTb3J0Q2VsbHNUb3Ascz0nOm5vdChbZGF0YS1kdC1vcmRlcj0iZGlzYWJsZSJdKTpub3QoW2RhdGEtZHQtb3JkZXI9Imljb24tb25seSJdKSc7cj09PSEwP2U9blswXTpyPT09ITEmJihlPW5bbi5sZW5ndGgtMV0pLHBzKHQsZSxlPT09dC5uVEhlYWQ/InRyIitzKyIgdGgiK3MrIiwgdHIiK3MrIiB0ZCIrczoidGgiK3MrIiwgdGQiK3MpO3ZhciBpPVtdO0puKHQsaSx0LmFhU29ydGluZyksdC5hYVNvcnRpbmc9aX1mdW5jdGlvbiBwcyh0LGUsbixyLHMpe21zKGUsbixmdW5jdGlvbihpKXt2YXIgbz0hMSx1PXI9PT12b2lkIDA/QmkoaS50YXJnZXQpOltyXTtpZih1Lmxlbmd0aCl7Zm9yKHZhciBwPTAsYj11Lmxlbmd0aDtwPGI7cCsrKXt2YXIgZz1UbCh0LHVbcF0scCxpLnNoaWZ0S2V5KTtpZihnIT09ITEmJihvPSEwKSx0LmFhU29ydGluZy5sZW5ndGg9PT0xJiZ0LmFhU29ydGluZ1swXVsxXT09PSIiKWJyZWFrfW8mJnVzKHQsITAsZnVuY3Rpb24oKXt6aSh0KSxicyh0LHQuYWlEaXNwbGF5KSxSbih0LCExLCExKSxzJiZzKCl9KX19KX1mdW5jdGlvbiBicyh0LGUpe2lmKCEoZS5sZW5ndGg8Mikpe3ZhciBuPXQuYWlEaXNwbGF5TWFzdGVyLHI9e30scz17fSxpO2ZvcihpPTA7aTxuLmxlbmd0aDtpKyspcltuW2ldXT1pO2ZvcihpPTA7aTxlLmxlbmd0aDtpKyspc1tlW2ldXT1yW2VbaV1dO2Uuc29ydChmdW5jdGlvbihvLHUpe3JldHVybiBzW29dLXNbdV19KX19ZnVuY3Rpb24gSm4odCxlLG4pe3ZhciByPWZ1bmN0aW9uKGkpe2lmKEguaXNQbGFpbk9iamVjdChpKSl7aWYoaS5pZHghPT12b2lkIDApZS5wdXNoKFtpLmlkeCxpLmRpcl0pO2Vsc2UgaWYoaS5uYW1lKXt2YXIgbz1DZSh0LmFvQ29sdW1ucywic05hbWUiKSx1PW8uaW5kZXhPZihpLm5hbWUpO3UhPT0tMSYmZS5wdXNoKFt1LGkuZGlyXSl9fWVsc2UgZS5wdXNoKGkpfTtpZihILmlzUGxhaW5PYmplY3QobikpcihuKTtlbHNlIGlmKG4ubGVuZ3RoJiZ0eXBlb2YgblswXT09Im51bWJlciIpcihuKTtlbHNlIGlmKG4ubGVuZ3RoKWZvcih2YXIgcz0wO3M8bi5sZW5ndGg7cysrKXIobltzXSl9ZnVuY3Rpb24genIodCl7dmFyIGUsbixyLHM9W10saT1idC5leHQudHlwZS5vcmRlcixvPXQuYW9Db2x1bW5zLHUscCxiLGcsbT10LmFhU29ydGluZ0ZpeGVkLEM9SC5pc1BsYWluT2JqZWN0KG0pLHk9W107aWYoIXQub0ZlYXR1cmVzLmJTb3J0KXJldHVybiBzO2ZvcihBcnJheS5pc0FycmF5KG0pJiZKbih0LHksbSksQyYmbS5wcmUmJkpuKHQseSxtLnByZSksSm4odCx5LHQuYWFTb3J0aW5nKSxDJiZtLnBvc3QmJkpuKHQseSxtLnBvc3QpLGU9MDtlPHkubGVuZ3RoO2UrKylpZihnPXlbZV1bMF0sb1tnXSlmb3IodT1vW2ddLmFEYXRhU29ydCxuPTAscj11Lmxlbmd0aDtuPHI7bisrKXA9dVtuXSxiPW9bcF0uc1R5cGV8fCJzdHJpbmciLHlbZV0uX2lkeD09PXZvaWQgMCYmKHlbZV0uX2lkeD1vW3BdLmFzU29ydGluZy5pbmRleE9mKHlbZV1bMV0pKSx5W2VdWzFdJiZzLnB1c2goe3NyYzpnLGNvbDpwLGRpcjp5W2VdWzFdLGluZGV4OnlbZV0uX2lkeCx0eXBlOmIsZm9ybWF0dGVyOmlbYisiLXByZSJdLHNvcnRlcjppW2IrIi0iK3lbZV1bMV1dfSk7cmV0dXJuIHN9ZnVuY3Rpb24gemkodCxlLG4pe3ZhciByLHMsaSxvPVtdLHU9YnQuZXh0LnR5cGUub3JkZXIscD10LmFvRGF0YSxiLGc9dC5haURpc3BsYXlNYXN0ZXIsbTtpZihlIT09dm9pZCAwKXt2YXIgQz10LmFvQ29sdW1uc1tlXTttPVt7c3JjOmUsY29sOmUsZGlyOm4saW5kZXg6MCx0eXBlOkMuc1R5cGUsZm9ybWF0dGVyOnVbQy5zVHlwZSsiLXByZSJdLHNvcnRlcjp1W0Muc1R5cGUrIi0iK25dfV0sZz1nLnNsaWNlKCl9ZWxzZSBtPXpyKHQpO2ZvcihyPTAscz1tLmxlbmd0aDtyPHM7cisrKWI9bVtyXSxrbCh0LGIuY29sKTtpZihFZSh0KSE9InNzcCImJm0ubGVuZ3RoIT09MCl7Zm9yKHI9MCxpPWcubGVuZ3RoO3I8aTtyKyspb1tyXT1yO20ubGVuZ3RoJiZtWzBdLmRpcj09PSJkZXNjIiYmdC5vcmRlckRlc2NSZXZlcnNlJiZvLnJldmVyc2UoKSxnLnNvcnQoZnVuY3Rpb24oeSxUKXt2YXIgUCxjLGwsaCxfLEY9bS5sZW5ndGgsTz1wW3ldLl9hU29ydERhdGEsZj1wW1RdLl9hU29ydERhdGE7Zm9yKGw9MDtsPEY7bCsrKWlmKF89bVtsXSxQPU9bXy5jb2xdLGM9ZltfLmNvbF0sXy5zb3J0ZXIpe2lmKGg9Xy5zb3J0ZXIoUCxjKSxoIT09MClyZXR1cm4gaH1lbHNlIGlmKGg9UDxjPy0xOlA+Yz8xOjAsaCE9PTApcmV0dXJuIF8uZGlyPT09ImFzYyI/aDotaDtyZXR1cm4gUD1vW3ldLGM9b1tUXSxQPGM/LTE6UD5jPzE6MH0pfWVsc2UgbS5sZW5ndGg9PT0wJiZnLnNvcnQoZnVuY3Rpb24oeSxUKXtyZXR1cm4geTxUPy0xOnk+VD8xOjB9KTtyZXR1cm4gZT09PXZvaWQgMCYmKHQuYlNvcnRlZD0hMCx0LnNvcnREZXRhaWxzPW0sWnQodCxudWxsLCJvcmRlciIsW3QsbV0pKSxnfWZ1bmN0aW9uIFRsKHQsZSxuLHIpe3ZhciBzPXQuYW9Db2x1bW5zW2VdLGk9dC5hYVNvcnRpbmcsbz1zLmFzU29ydGluZyx1LHA9ZnVuY3Rpb24oZyxtKXt2YXIgQz1nLl9pZHg7cmV0dXJuIEM9PT12b2lkIDAmJihDPW8uaW5kZXhPZihnWzFdKSksQysxPG8ubGVuZ3RoP0MrMTptP251bGw6MH07aWYoIXMuYlNvcnRhYmxlKXJldHVybiExO2lmKHR5cGVvZiBpWzBdPT0ibnVtYmVyIiYmKGk9dC5hYVNvcnRpbmc9W2ldKSwocnx8bikmJnQub0ZlYXR1cmVzLmJTb3J0TXVsdGkpe3ZhciBiPUNlKGksIjAiKS5pbmRleE9mKGUpO2IhPT0tMT8odT1wKGlbYl0sITApLHU9PT1udWxsJiZpLmxlbmd0aD09PTEmJih1PTApLHU9PT1udWxsP2kuc3BsaWNlKGIsMSk6KGlbYl1bMV09b1t1XSxpW2JdLl9pZHg9dSkpOnI/KGkucHVzaChbZSxvWzBdLDBdKSxpW2kubGVuZ3RoLTFdLl9pZHg9MCk6KGkucHVzaChbZSxpWzBdWzFdLDBdKSxpW2kubGVuZ3RoLTFdLl9pZHg9MCl9ZWxzZSBpLmxlbmd0aCYmaVswXVswXT09ZT8odT1wKGlbMF0pLGkubGVuZ3RoPTEsaVswXVsxXT1vW3VdLGlbMF0uX2lkeD11KTooaS5sZW5ndGg9MCxpLnB1c2goW2Usb1swXV0pLGlbMF0uX2lkeD0wKX1mdW5jdGlvbiBUaSh0KXt2YXIgZT10LmFMYXN0U29ydCxuPXQub0NsYXNzZXMub3JkZXIucG9zaXRpb24scj16cih0KSxzPXQub0ZlYXR1cmVzLGksbyx1O2lmKHMuYlNvcnQmJnMuYlNvcnRDbGFzc2VzKXtmb3IoaT0wLG89ZS5sZW5ndGg7aTxvO2krKyl1PWVbaV0uc3JjLEgoQ2UodC5hb0RhdGEsImFuQ2VsbHMiLHUpKS5yZW1vdmVDbGFzcyhuKyhpPDI/aSsxOjMpKTtmb3IoaT0wLG89ci5sZW5ndGg7aTxvO2krKyl1PXJbaV0uc3JjLEgoQ2UodC5hb0RhdGEsImFuQ2VsbHMiLHUpKS5hZGRDbGFzcyhuKyhpPDI/aSsxOjMpKX10LmFMYXN0U29ydD1yfWZ1bmN0aW9uIGtsKHQsZSl7dmFyIG49dC5hb0NvbHVtbnNbZV0scj1idC5leHQub3JkZXJbbi5zU29ydERhdGFUeXBlXSxzO3ImJihzPXIuY2FsbCh0Lm9JbnN0YW5jZSx0LGUsbnIodCxlKSkpO2Zvcih2YXIgaSxvLHU9YnQuZXh0LnR5cGUub3JkZXJbbi5zVHlwZSsiLXByZSJdLHA9dC5hb0RhdGEsYj0wO2I8cC5sZW5ndGg7YisrKXBbYl0mJihpPXBbYl0saS5fYVNvcnREYXRhfHwoaS5fYVNvcnREYXRhPVtdKSwoIWkuX2FTb3J0RGF0YVtlXXx8cikmJihvPXI/c1tiXTpSZSh0LGIsZSwic29ydCIpLGkuX2FTb3J0RGF0YVtlXT11P3Uobyx0KTpvKSl9ZnVuY3Rpb24ganIodCl7aWYoIXQuX2JMb2FkaW5nU3RhdGUpe3ZhciBlPXt0aW1lOituZXcgRGF0ZSxzdGFydDp0Ll9pRGlzcGxheVN0YXJ0LGxlbmd0aDp0Ll9pRGlzcGxheUxlbmd0aCxvcmRlcjpILmV4dGVuZCghMCxbXSx0LmFhU29ydGluZyksc2VhcmNoOkguZXh0ZW5kKHt9LHQub1ByZXZpb3VzU2VhcmNoKSxjb2x1bW5zOnQuYW9Db2x1bW5zLm1hcChmdW5jdGlvbihuLHIpe3JldHVybnt2aXNpYmxlOm4uYlZpc2libGUsc2VhcmNoOkguZXh0ZW5kKHt9LHQuYW9QcmVTZWFyY2hDb2xzW3JdKX19KX07dC5vU2F2ZWRTdGF0ZT1lLFp0KHQsImFvU3RhdGVTYXZlUGFyYW1zIiwic3RhdGVTYXZlUGFyYW1zIixbdCxlXSksdC5vRmVhdHVyZXMuYlN0YXRlU2F2ZSYmIXQuYkRlc3Ryb3lpbmcmJnQuZm5TdGF0ZVNhdmVDYWxsYmFjay5jYWxsKHQub0luc3RhbmNlLHQsZSl9fWZ1bmN0aW9uIFNsKHQsZSxuKXtpZighdC5vRmVhdHVyZXMuYlN0YXRlU2F2ZSl7bigpO3JldHVybn12YXIgcj1mdW5jdGlvbihpKXtraSh0LGksbil9LHM9dC5mblN0YXRlTG9hZENhbGxiYWNrLmNhbGwodC5vSW5zdGFuY2UsdCxyKTtyZXR1cm4gcyE9PXZvaWQgMCYma2kodCxzLG4pLCEwfWZ1bmN0aW9uIGtpKHQsZSxuKXt2YXIgcixzLGk9dC5hb0NvbHVtbnM7dC5fYkxvYWRpbmdTdGF0ZT0hMDt2YXIgbz10Ll9iSW5pdENvbXBsZXRlP25ldyBidC5BcGkodCk6bnVsbDtpZighZXx8IWUudGltZSl7dC5fYkxvYWRpbmdTdGF0ZT0hMSxuKCk7cmV0dXJufXZhciB1PXQuaVN0YXRlRHVyYXRpb247aWYodT4wJiZlLnRpbWU8K25ldyBEYXRlLXUqMWUzKXt0Ll9iTG9hZGluZ1N0YXRlPSExLG4oKTtyZXR1cm59dmFyIHA9WnQodCwiYW9TdGF0ZUxvYWRQYXJhbXMiLCJzdGF0ZUxvYWRQYXJhbXMiLFt0LGVdKTtpZihwLmluZGV4T2YoITEpIT09LTEpe3QuX2JMb2FkaW5nU3RhdGU9ITEsbigpO3JldHVybn1pZihlLmNvbHVtbnMmJmkubGVuZ3RoIT09ZS5jb2x1bW5zLmxlbmd0aCl7dC5fYkxvYWRpbmdTdGF0ZT0hMSxuKCk7cmV0dXJufWlmKHQub0xvYWRlZFN0YXRlPUguZXh0ZW5kKCEwLHt9LGUpLFp0KHQsbnVsbCwic3RhdGVMb2FkSW5pdCIsW3QsZV0sITApLGUubGVuZ3RoIT09dm9pZCAwJiYobz9vLnBhZ2UubGVuKGUubGVuZ3RoKTp0Ll9pRGlzcGxheUxlbmd0aD1lLmxlbmd0aCksZS5zdGFydCE9PXZvaWQgMCYmKG89PT1udWxsPyh0Ll9pRGlzcGxheVN0YXJ0PWUuc3RhcnQsdC5pSW5pdERpc3BsYXlTdGFydD1lLnN0YXJ0KTpMaSh0LGUuc3RhcnQvdC5faURpc3BsYXlMZW5ndGgpKSxlLm9yZGVyIT09dm9pZCAwJiYodC5hYVNvcnRpbmc9W10sSC5lYWNoKGUub3JkZXIsZnVuY3Rpb24oZyxtKXt0LmFhU29ydGluZy5wdXNoKG1bMF0+PWkubGVuZ3RoP1swLG1bMV1dOm0pfSkpLGUuc2VhcmNoIT09dm9pZCAwJiZILmV4dGVuZCh0Lm9QcmV2aW91c1NlYXJjaCxlLnNlYXJjaCksZS5jb2x1bW5zKXtmb3Iocj0wLHM9ZS5jb2x1bW5zLmxlbmd0aDtyPHM7cisrKXt2YXIgYj1lLmNvbHVtbnNbcl07Yi52aXNpYmxlIT09dm9pZCAwJiYobz9vLmNvbHVtbihyKS52aXNpYmxlKGIudmlzaWJsZSwhMSk6aVtyXS5iVmlzaWJsZT1iLnZpc2libGUpLGIuc2VhcmNoIT09dm9pZCAwJiZILmV4dGVuZCh0LmFvUHJlU2VhcmNoQ29sc1tyXSxiLnNlYXJjaCl9byYmby5jb2x1bW5zLmFkanVzdCgpfXQuX2JMb2FkaW5nU3RhdGU9ITEsWnQodCwiYW9TdGF0ZUxvYWRlZCIsInN0YXRlTG9hZGVkIixbdCxlXSksbigpfWZ1bmN0aW9uIE9lKHQsZSxuLHIpe2lmKG49IkRhdGFUYWJsZXMgd2FybmluZzogIisodD8idGFibGUgaWQ9Iit0LnNUYWJsZUlkKyIgLSAiOiIiKStuLHImJihuKz0iLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIGVycm9yLCBwbGVhc2Ugc2VlIGh0dHBzOi8vZGF0YXRhYmxlcy5uZXQvdG4vIityKSxlKXdpbmRvdy5jb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2cobik7ZWxzZXt2YXIgcz1idC5leHQsaT1zLnNFcnJNb2RlfHxzLmVyck1vZGU7aWYodCYmWnQodCxudWxsLCJkdC1lcnJvciIsW3QscixuXSwhMCksaT09ImFsZXJ0IilhbGVydChuKTtlbHNle2lmKGk9PSJ0aHJvdyIpdGhyb3cgbmV3IEVycm9yKG4pO3R5cGVvZiBpPT0iZnVuY3Rpb24iJiZpKHQscixuKX19fWZ1bmN0aW9uIGxuKHQsZSxuLHIpe2lmKEFycmF5LmlzQXJyYXkobikpe0guZWFjaChuLGZ1bmN0aW9uKHMsaSl7QXJyYXkuaXNBcnJheShpKT9sbih0LGUsaVswXSxpWzFdKTpsbih0LGUsaSl9KTtyZXR1cm59cj09PXZvaWQgMCYmKHI9biksZVtuXSE9PXZvaWQgMCYmKHRbcl09ZVtuXSl9ZnVuY3Rpb24gcWEodCxlLG4pe3ZhciByO2Zvcih2YXIgcyBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHMpJiYocj1lW3NdLEguaXNQbGFpbk9iamVjdChyKT8oSC5pc1BsYWluT2JqZWN0KHRbc10pfHwodFtzXT17fSksSC5leHRlbmQoITAsdFtzXSxyKSk6biYmcyE9PSJkYXRhIiYmcyE9PSJhYURhdGEiJiZBcnJheS5pc0FycmF5KHIpP3Rbc109ci5zbGljZSgpOnRbc109cik7cmV0dXJuIHR9ZnVuY3Rpb24gbXModCxlLG4pe0godCkub24oImNsaWNrLkRUIixlLGZ1bmN0aW9uKHIpe24ocil9KS5vbigia2V5cHJlc3MuRFQiLGUsZnVuY3Rpb24ocil7ci53aGljaD09PTEzJiYoci5wcmV2ZW50RGVmYXVsdCgpLG4ocikpfSkub24oInNlbGVjdHN0YXJ0LkRUIixlLGZ1bmN0aW9uKCl7cmV0dXJuITF9KX1mdW5jdGlvbiBCZSh0LGUsbil7biYmdFtlXS5wdXNoKG4pfWZ1bmN0aW9uIFp0KHQsZSxuLHIscyl7dmFyIGk9W107aWYoZSYmKGk9dFtlXS5zbGljZSgpLnJldmVyc2UoKS5tYXAoZnVuY3Rpb24ocCl7cmV0dXJuIHAuYXBwbHkodC5vSW5zdGFuY2Uscil9KSksbiE9PW51bGwpe3ZhciBvPUguRXZlbnQobisiLmR0IiksdT1IKHQublRhYmxlKTtvLmR0PXQuYXBpLHVbcz8idHJpZ2dlciI6InRyaWdnZXJIYW5kbGVyIl0obyxyKSxzJiZ1LnBhcmVudHMoImJvZHkiKS5sZW5ndGg9PT0wJiZIKCJib2R5IikudHJpZ2dlcihvLHIpLGkucHVzaChvLnJlc3VsdCl9cmV0dXJuIGl9ZnVuY3Rpb24gdnModCl7dmFyIGU9dC5faURpc3BsYXlTdGFydCxuPXQuZm5EaXNwbGF5RW5kKCkscj10Ll9pRGlzcGxheUxlbmd0aDtlPj1uJiYoZT1uLXIpLGUtPWUlciwocj09PS0xfHxlPDApJiYoZT0wKSx0Ll9pRGlzcGxheVN0YXJ0PWV9ZnVuY3Rpb24gRnIodCxlKXt2YXIgbj10LnJlbmRlcmVyLHI9YnQuZXh0LnJlbmRlcmVyW2VdO3JldHVybiBILmlzUGxhaW5PYmplY3QobikmJm5bZV0/cltuW2VdXXx8ci5fOnR5cGVvZiBuPT0ic3RyaW5nIiYmcltuXXx8ci5ffWZ1bmN0aW9uIEVlKHQpe3JldHVybiB0Lm9GZWF0dXJlcy5iU2VydmVyU2lkZT8ic3NwIjp0LmFqYXg/ImFqYXgiOiJkb20ifWZ1bmN0aW9uIGppKHQsZSxuKXt2YXIgcj10LmZuRm9ybWF0TnVtYmVyLHM9dC5faURpc3BsYXlTdGFydCsxLGk9dC5faURpc3BsYXlMZW5ndGgsbz10LmZuUmVjb3Jkc0Rpc3BsYXkoKSx1PXQuZm5SZWNvcmRzVG90YWwoKSxwPWk9PT0tMTtyZXR1cm4gZS5yZXBsYWNlKC9fU1RBUlRfL2csci5jYWxsKHQscykpLnJlcGxhY2UoL19FTkRfL2csci5jYWxsKHQsdC5mbkRpc3BsYXlFbmQoKSkpLnJlcGxhY2UoL19NQVhfL2csci5jYWxsKHQsdSkpLnJlcGxhY2UoL19UT1RBTF8vZyxyLmNhbGwodCxvKSkucmVwbGFjZSgvX1BBR0VfL2csci5jYWxsKHQscD8xOk1hdGguY2VpbChzL2kpKSkucmVwbGFjZSgvX1BBR0VTXy9nLHIuY2FsbCh0LHA/MTpNYXRoLmNlaWwoby9pKSkpLnJlcGxhY2UoL19FTlRSSUVTXy9nLHQuYXBpLmkxOG4oImVudHJpZXMiLCIiLG4pKS5yZXBsYWNlKC9fRU5UUklFUy1NQVhfL2csdC5hcGkuaTE4bigiZW50cmllcyIsIiIsdSkpLnJlcGxhY2UoL19FTlRSSUVTLVRPVEFMXy9nLHQuYXBpLmkxOG4oImVudHJpZXMiLCIiLG8pKX12YXIgTWk9W10sYmU9QXJyYXkucHJvdG90eXBlLERsPWZ1bmN0aW9uKHQpe3ZhciBlLG4scj1idC5zZXR0aW5ncyxzPUNlKHIsIm5UYWJsZSIpO2lmKHQpe2lmKHQublRhYmxlJiZ0Lm9GZWF0dXJlcylyZXR1cm5bdF07aWYodC5ub2RlTmFtZSYmdC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09InRhYmxlIilyZXR1cm4gZT1zLmluZGV4T2YodCksZSE9PS0xP1tyW2VdXTpudWxsO2lmKHQmJnR5cGVvZiB0LnNldHRpbmdzPT0iZnVuY3Rpb24iKXJldHVybiB0LnNldHRpbmdzKCkudG9BcnJheSgpO3R5cGVvZiB0PT0ic3RyaW5nIj9uPUgodCkuZ2V0KCk6dCBpbnN0YW5jZW9mIEgmJihuPXQuZ2V0KCkpfWVsc2UgcmV0dXJuW107aWYobilyZXR1cm4gci5maWx0ZXIoZnVuY3Rpb24oaSxvKXtyZXR1cm4gbi5pbmNsdWRlcyhzW29dKX0pfTtXdD1mdW5jdGlvbih0LGUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFd0KSlyZXR1cm4gbmV3IFd0KHQsZSk7dmFyIG4scj1bXSxzPWZ1bmN0aW9uKGkpe3ZhciBvPURsKGkpO28mJnIucHVzaC5hcHBseShyLG8pfTtpZihBcnJheS5pc0FycmF5KHQpKWZvcihuPTA7bjx0Lmxlbmd0aDtuKyspcyh0W25dKTtlbHNlIHModCk7aWYodGhpcy5jb250ZXh0PXIubGVuZ3RoPjE/eG4ocik6cixlKWlmKGUubGVuZ3RoPDFlNCl0aGlzLnB1c2guYXBwbHkodGhpcyxlKTtlbHNlIGZvcihuPTA7bjxlLmxlbmd0aDtuKyspdGhpcy5wdXNoKGVbbl0pO3RoaXMuc2VsZWN0b3I9e3Jvd3M6bnVsbCxjb2xzOm51bGwsb3B0czpudWxsfSxXdC5leHRlbmQodGhpcyx0aGlzLE1pKX07YnQuQXBpPVd0O0guZXh0ZW5kKFd0LnByb3RvdHlwZSx7YW55OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY291bnQoKSE9PTB9LGNvbnRleHQ6W10sY291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mbGF0dGVuKCkubGVuZ3RofSxlYWNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLG49dGhpcy5sZW5ndGg7ZTxuO2UrKyl0LmNhbGwodGhpcyx0aGlzW2VdLGUsdGhpcyk7cmV0dXJuIHRoaXN9LGVxOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY29udGV4dDtyZXR1cm4gZS5sZW5ndGg+dD9uZXcgV3QoZVt0XSx0aGlzW3RdKTpudWxsfSxmaWx0ZXI6ZnVuY3Rpb24odCl7dmFyIGU9YmUuZmlsdGVyLmNhbGwodGhpcyx0LHRoaXMpO3JldHVybiBuZXcgV3QodGhpcy5jb250ZXh0LGUpfSxmbGF0dGVuOmZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIG5ldyBXdCh0aGlzLmNvbnRleHQsdC5jb25jYXQuYXBwbHkodCx0aGlzLnRvQXJyYXkoKSkpfSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbdF19LGpvaW46YmUuam9pbixpbmNsdWRlczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbmRleE9mKHQpIT09LTF9LGluZGV4T2Y6YmUuaW5kZXhPZixpdGVyYXRvcjpmdW5jdGlvbih0LGUsbixyKXt2YXIgcz1bXSxpLG8sdSxwLGIsZz10aGlzLmNvbnRleHQsbSxDLHksVD10aGlzLnNlbGVjdG9yO2Zvcih0eXBlb2YgdD09InN0cmluZyImJihyPW4sbj1lLGU9dCx0PSExKSxvPTAsdT1nLmxlbmd0aDtvPHU7bysrKXt2YXIgUD1uZXcgV3QoZ1tvXSk7aWYoZT09PSJ0YWJsZSIpaT1uLmNhbGwoUCxnW29dLG8pLGkhPT12b2lkIDAmJnMucHVzaChpKTtlbHNlIGlmKGU9PT0iY29sdW1ucyJ8fGU9PT0icm93cyIpaT1uLmNhbGwoUCxnW29dLHRoaXNbb10sbyksaSE9PXZvaWQgMCYmcy5wdXNoKGkpO2Vsc2UgaWYoZT09PSJldmVyeSJ8fGU9PT0iY29sdW1uInx8ZT09PSJjb2x1bW4tcm93cyJ8fGU9PT0icm93Inx8ZT09PSJjZWxsIilmb3IoQz10aGlzW29dLGU9PT0iY29sdW1uLXJvd3MiJiYobT1NcihnW29dLFQub3B0cykpLHA9MCxiPUMubGVuZ3RoO3A8YjtwKyspeT1DW3BdLGU9PT0iY2VsbCI/aT1uLmNhbGwoUCxnW29dLHkucm93LHkuY29sdW1uLG8scCk6aT1uLmNhbGwoUCxnW29dLHksbyxwLG0pLGkhPT12b2lkIDAmJnMucHVzaChpKX1pZihzLmxlbmd0aHx8cil7dmFyIGM9bmV3IFd0KGcsdD9zLmNvbmNhdC5hcHBseShbXSxzKTpzKSxsPWMuc2VsZWN0b3I7cmV0dXJuIGwucm93cz1ULnJvd3MsbC5jb2xzPVQuY29scyxsLm9wdHM9VC5vcHRzLGN9cmV0dXJuIHRoaXN9LGxhc3RJbmRleE9mOmJlLmxhc3RJbmRleE9mLGxlbmd0aDowLG1hcDpmdW5jdGlvbih0KXt2YXIgZT1iZS5tYXAuY2FsbCh0aGlzLHQsdGhpcyk7cmV0dXJuIG5ldyBXdCh0aGlzLmNvbnRleHQsZSl9LHBsdWNrOmZ1bmN0aW9uKHQpe3ZhciBlPWJ0LnV0aWwuZ2V0KHQpO3JldHVybiB0aGlzLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gZShuKX0pfSxwb3A6YmUucG9wLHB1c2g6YmUucHVzaCxyZWR1Y2U6YmUucmVkdWNlLHJlZHVjZVJpZ2h0OmJlLnJlZHVjZVJpZ2h0LHJldmVyc2U6YmUucmV2ZXJzZSxzZWxlY3RvcjpudWxsLHNoaWZ0OmJlLnNoaWZ0LHNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBXdCh0aGlzLmNvbnRleHQsdGhpcyl9LHNvcnQ6YmUuc29ydCxzcGxpY2U6YmUuc3BsaWNlLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gYmUuc2xpY2UuY2FsbCh0aGlzKX0sdG8kOmZ1bmN0aW9uKCl7cmV0dXJuIEgodGhpcyl9LHRvSlF1ZXJ5OmZ1bmN0aW9uKCl7cmV0dXJuIEgodGhpcyl9LHVuaXF1ZTpmdW5jdGlvbigpe3JldHVybiBuZXcgV3QodGhpcy5jb250ZXh0LHhuKHRoaXMudG9BcnJheSgpKSl9LHVuc2hpZnQ6YmUudW5zaGlmdH0pO2Z1bmN0aW9uIEFsKHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj1lLmFwcGx5KHR8fHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gV3QuZXh0ZW5kKHIscixuLm1ldGhvZEV4dCkscn19ZnVuY3Rpb24gSWwodCxlKXtmb3IodmFyIG49MCxyPXQubGVuZ3RoO248cjtuKyspaWYodFtuXS5uYW1lPT09ZSlyZXR1cm4gdFtuXTtyZXR1cm4gbnVsbH13aW5kb3cuX19hcGlTdHJ1Y3Q9TWk7V3QuZXh0ZW5kPWZ1bmN0aW9uKHQsZSxuKXtpZighKCFuLmxlbmd0aHx8IWV8fCEoZSBpbnN0YW5jZW9mIFd0KSYmIWUuX19kdF93cmFwcGVyKSl7dmFyIHIscyxpO2ZvcihyPTAscz1uLmxlbmd0aDtyPHM7cisrKWk9bltyXSxpLm5hbWUhPT0iX19wcm90b19fIiYmKGVbaS5uYW1lXT1pLnR5cGU9PT0iZnVuY3Rpb24iP0FsKHQsaS52YWwsaSk6aS50eXBlPT09Im9iamVjdCI/e306aS52YWwsZVtpLm5hbWVdLl9fZHRfd3JhcHBlcj0hMCxXdC5leHRlbmQodCxlW2kubmFtZV0saS5wcm9wRXh0KSl9fTtXdC5yZWdpc3Rlcj1JdD1mdW5jdGlvbih0LGUpe2lmKEFycmF5LmlzQXJyYXkodCkpe2Zvcih2YXIgbj0wLHI9dC5sZW5ndGg7bjxyO24rKylXdC5yZWdpc3Rlcih0W25dLGUpO3JldHVybn12YXIgcyxpLG89dC5zcGxpdCgiLiIpLHU9TWkscCxiO2ZvcihzPTAsaT1vLmxlbmd0aDtzPGk7cysrKXtiPW9bc10uaW5kZXhPZigiKCkiKSE9PS0xLHA9Yj9vW3NdLnJlcGxhY2UoIigpIiwiIik6b1tzXTt2YXIgZz1JbCh1LHApO2d8fChnPXtuYW1lOnAsdmFsOnt9LG1ldGhvZEV4dDpbXSxwcm9wRXh0OltdLHR5cGU6Im9iamVjdCJ9LHUucHVzaChnKSkscz09PWktMT8oZy52YWw9ZSxnLnR5cGU9dHlwZW9mIGU9PSJmdW5jdGlvbiI/ImZ1bmN0aW9uIjpILmlzUGxhaW5PYmplY3QoZSk/Im9iamVjdCI6Im90aGVyIik6dT1iP2cubWV0aG9kRXh0OmcucHJvcEV4dH19O1d0LnJlZ2lzdGVyUGx1cmFsPVF0PWZ1bmN0aW9uKHQsZSxuKXtXdC5yZWdpc3Rlcih0LG4pLFd0LnJlZ2lzdGVyKGUsZnVuY3Rpb24oKXt2YXIgcj1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gcj09PXRoaXM/dGhpczpyIGluc3RhbmNlb2YgV3Q/ci5sZW5ndGg/QXJyYXkuaXNBcnJheShyWzBdKT9uZXcgV3Qoci5jb250ZXh0LHJbMF0pOnJbMF06dm9pZCAwOnJ9KX07dmFyIGdzPWZ1bmN0aW9uKHQsZSl7aWYoQXJyYXkuaXNBcnJheSh0KSl7dmFyIG49W107cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbihzKXt2YXIgaT1ncyhzLGUpO24ucHVzaC5hcHBseShuLGkpfSksbi5maWx0ZXIoZnVuY3Rpb24ocyl7cmV0dXJuIHN9KX1pZih0eXBlb2YgdD09Im51bWJlciIpcmV0dXJuW2VbdF1dO3ZhciByPWUubWFwKGZ1bmN0aW9uKHMpe3JldHVybiBzLm5UYWJsZX0pO3JldHVybiBIKHIpLmZpbHRlcih0KS5tYXAoZnVuY3Rpb24oKXt2YXIgcz1yLmluZGV4T2YodGhpcyk7cmV0dXJuIGVbc119KS50b0FycmF5KCl9O0l0KCJ0YWJsZXMoKSIsZnVuY3Rpb24odCl7cmV0dXJuIHQhPW51bGw/bmV3IFd0KGdzKHQsdGhpcy5jb250ZXh0KSk6dGhpc30pO0l0KCJ0YWJsZSgpIixmdW5jdGlvbih0KXt2YXIgZT10aGlzLnRhYmxlcyh0KSxuPWUuY29udGV4dDtyZXR1cm4gbi5sZW5ndGg/bmV3IFd0KG5bMF0pOmV9KTtbWyJub2RlcyIsIm5vZGUiLCJuVGFibGUiXSxbImJvZHkiLCJib2R5IiwiblRCb2R5Il0sWyJoZWFkZXIiLCJoZWFkZXIiLCJuVEhlYWQiXSxbImZvb3RlciIsImZvb3RlciIsIm5URm9vdCJdXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe1F0KCJ0YWJsZXMoKS4iK3RbMF0rIigpIiwidGFibGUoKS4iK3RbMV0rIigpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oZSl7cmV0dXJuIGVbdFsyXV19LDEpfSl9KTtbWyJoZWFkZXIiLCJhb0hlYWRlciJdLFsiZm9vdGVyIiwiYW9Gb290ZXIiXV0uZm9yRWFjaChmdW5jdGlvbih0KXtJdCgidGFibGUoKS4iK3RbMF0rIi5zdHJ1Y3R1cmUoKSIsZnVuY3Rpb24oZSl7dmFyIG49dGhpcy5jb2x1bW5zKGUpLmluZGV4ZXMoKS5mbGF0dGVuKCkscj10aGlzLmNvbnRleHRbMF07cmV0dXJuIG9zKHIsclt0WzFdXSxuKX0pfSk7UXQoInRhYmxlcygpLmNvbnRhaW5lcnMoKSIsInRhYmxlKCkuY29udGFpbmVyKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbih0KXtyZXR1cm4gdC5uVGFibGVXcmFwcGVyfSwxKX0pO0l0KCJ0YWJsZXMoKS5ldmVyeSgpIixmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24obixyKXt0LmNhbGwoZS50YWJsZShyKSxyKX0pfSk7SXQoImNhcHRpb24oKSIsZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmNvbnRleHQ7aWYodD09PXZvaWQgMCl7dmFyIHI9blswXS5jYXB0aW9uTm9kZTtyZXR1cm4gciYmbi5sZW5ndGg/ci5pbm5lckhUTUw6bnVsbH1yZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKHMpe3ZhciBpPUgocy5uVGFibGUpLG89SChzLmNhcHRpb25Ob2RlKSx1PUgocy5uVGFibGVXcmFwcGVyKTtpZihvLmxlbmd0aHx8KG89SCgiPGNhcHRpb24vPiIpLmh0bWwodCkscy5jYXB0aW9uTm9kZT1vWzBdLGV8fChpLnByZXBlbmQobyksZT1vLmNzcygiY2FwdGlvbi1zaWRlIikpKSxvLmh0bWwodCksZSYmKG8uY3NzKCJjYXB0aW9uLXNpZGUiLGUpLG9bMF0uX2NhcHRpb25TaWRlPWUpLHUuZmluZCgiZGl2LmRhdGFUYWJsZXNfc2Nyb2xsIikubGVuZ3RoKXt2YXIgcD1lPT09InRvcCI/IkhlYWQiOiJGb290Ijt1LmZpbmQoImRpdi5kYXRhVGFibGVzX3Njcm9sbCIrcCsiIHRhYmxlIikucHJlcGVuZChvKX1lbHNlIGkucHJlcGVuZChvKX0sMSl9KTtJdCgiY2FwdGlvbi5ub2RlKCkiLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb250ZXh0O3JldHVybiB0Lmxlbmd0aD90WzBdLmNhcHRpb25Ob2RlOm51bGx9KTtJdCgiZHJhdygpIixmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGUpe3Q9PT0icGFnZSI/TG4oZSk6KHR5cGVvZiB0PT0ic3RyaW5nIiYmKHQ9dCE9PSJmdWxsLWhvbGQiKSxSbihlLHQ9PT0hMSkpfSl9KTtJdCgicGFnZSgpIixmdW5jdGlvbih0KXtyZXR1cm4gdD09PXZvaWQgMD90aGlzLnBhZ2UuaW5mbygpLnBhZ2U6dGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGUpe0xpKGUsdCl9KX0pO0l0KCJwYWdlLmluZm8oKSIsZnVuY3Rpb24oKXtpZih0aGlzLmNvbnRleHQubGVuZ3RoIT09MCl7dmFyIHQ9dGhpcy5jb250ZXh0WzBdLGU9dC5faURpc3BsYXlTdGFydCxuPXQub0ZlYXR1cmVzLmJQYWdpbmF0ZT90Ll9pRGlzcGxheUxlbmd0aDotMSxyPXQuZm5SZWNvcmRzRGlzcGxheSgpLHM9bj09PS0xO3JldHVybntwYWdlOnM/MDpNYXRoLmZsb29yKGUvbikscGFnZXM6cz8xOk1hdGguY2VpbChyL24pLHN0YXJ0OmUsZW5kOnQuZm5EaXNwbGF5RW5kKCksbGVuZ3RoOm4scmVjb3Jkc1RvdGFsOnQuZm5SZWNvcmRzVG90YWwoKSxyZWNvcmRzRGlzcGxheTpyLHNlcnZlclNpZGU6RWUodCk9PT0ic3NwIn19fSk7SXQoInBhZ2UubGVuKCkiLGZ1bmN0aW9uKHQpe3JldHVybiB0PT09dm9pZCAwP3RoaXMuY29udGV4dC5sZW5ndGghPT0wP3RoaXMuY29udGV4dFswXS5faURpc3BsYXlMZW5ndGg6dm9pZCAwOnRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihlKXtkcyhlLHQpfSl9KTt2YXIgeXM9ZnVuY3Rpb24odCxlLG4pe2lmKG4pe3ZhciByPW5ldyBXdCh0KTtyLm9uZSgiZHJhdyIsZnVuY3Rpb24oKXtuKHIuYWpheC5qc29uKCkpfSl9aWYoRWUodCk9PSJzc3AiKVJuKHQsZSk7ZWxzZXtrZSh0LCEwKTt2YXIgcz10LmpxWEhSO3MmJnMucmVhZHlTdGF0ZSE9PTQmJnMuYWJvcnQoKSxSaSh0LHt9LGZ1bmN0aW9uKGkpe09pKHQpO2Zvcih2YXIgbz1Mcih0LGkpLHU9MCxwPW8ubGVuZ3RoO3U8cDt1KyspeW4odCxvW3VdKTtSbih0LGUpLFByKHQpLGtlKHQsITEpfSl9fTtJdCgiYWpheC5qc29uKCkiLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb250ZXh0O2lmKHQubGVuZ3RoPjApcmV0dXJuIHRbMF0uanNvbn0pO0l0KCJhamF4LnBhcmFtcygpIixmdW5jdGlvbigpe3ZhciB0PXRoaXMuY29udGV4dDtpZih0Lmxlbmd0aD4wKXJldHVybiB0WzBdLm9BamF4RGF0YX0pO0l0KCJhamF4LnJlbG9hZCgpIixmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24obil7eXMobixlPT09ITEsdCl9KX0pO0l0KCJhamF4LnVybCgpIixmdW5jdGlvbih0KXt2YXIgZT10aGlzLmNvbnRleHQ7cmV0dXJuIHQ9PT12b2lkIDA/ZS5sZW5ndGg9PT0wP3ZvaWQgMDooZT1lWzBdLEguaXNQbGFpbk9iamVjdChlLmFqYXgpP2UuYWpheC51cmw6ZS5hamF4KTp0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24obil7SC5pc1BsYWluT2JqZWN0KG4uYWpheCk/bi5hamF4LnVybD10Om4uYWpheD10fSl9KTtJdCgiYWpheC51cmwoKS5sb2FkKCkiLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihuKXt5cyhuLGU9PT0hMSx0KX0pfSk7dmFyIFZpPWZ1bmN0aW9uKHQsZSxuLHIscyl7dmFyIGk9W10sbyx1LHAsYixnLG0sQz10eXBlb2YgZTtmb3IoKCFlfHxDPT09InN0cmluZyJ8fEM9PT0iZnVuY3Rpb24ifHxlLmxlbmd0aD09PXZvaWQgMCkmJihlPVtlXSkscD0wLGI9ZS5sZW5ndGg7cDxiO3ArKylmb3IodT1lW3BdJiZlW3BdLnNwbGl0JiYhZVtwXS5tYXRjaCgvW1soOl0vKT9lW3BdLnNwbGl0KCIsIik6W2VbcF1dLGc9MCxtPXUubGVuZ3RoO2c8bTtnKyspbz1uKHR5cGVvZiB1W2ddPT0ic3RyaW5nIj91W2ddLnRyaW0oKTp1W2ddKSxvPW8uZmlsdGVyKGZ1bmN0aW9uKFQpe3JldHVybiBUIT1udWxsfSksbyYmby5sZW5ndGgmJihpPWkuY29uY2F0KG8pKTt2YXIgeT1sZS5zZWxlY3Rvclt0XTtpZih5Lmxlbmd0aClmb3IocD0wLGI9eS5sZW5ndGg7cDxiO3ArKylpPXlbcF0ocixzLGkpO3JldHVybiB4bihpKX0sSGk9ZnVuY3Rpb24odCl7cmV0dXJuIHR8fCh0PXt9KSx0LmZpbHRlciYmdC5zZWFyY2g9PT12b2lkIDAmJih0LnNlYXJjaD10LmZpbHRlciksSC5leHRlbmQoe3NlYXJjaDoibm9uZSIsb3JkZXI6ImN1cnJlbnQiLHBhZ2U6ImFsbCJ9LHQpfSxVaT1mdW5jdGlvbih0KXtsZXQgZT1uZXcgV3QodC5jb250ZXh0WzBdKTtyZXR1cm4gdC5sZW5ndGgmJmUucHVzaCh0WzBdKSxlLnNlbGVjdG9yPXQuc2VsZWN0b3IsZS5sZW5ndGgmJmVbMF0ubGVuZ3RoPjEmJmVbMF0uc3BsaWNlKDEpLGV9LE1yPWZ1bmN0aW9uKHQsZSl7dmFyIG4scixzLGk9W10sbz10LmFpRGlzcGxheSx1PXQuYWlEaXNwbGF5TWFzdGVyLHA9ZS5zZWFyY2gsYj1lLm9yZGVyLGc9ZS5wYWdlO2lmKEVlKHQpPT0ic3NwIilyZXR1cm4gcD09PSJyZW1vdmVkIj9bXTphbigwLHUubGVuZ3RoKTtpZihnPT0iY3VycmVudCIpZm9yKG49dC5faURpc3BsYXlTdGFydCxyPXQuZm5EaXNwbGF5RW5kKCk7bjxyO24rKylpLnB1c2gob1tuXSk7ZWxzZSBpZihiPT0iY3VycmVudCJ8fGI9PSJhcHBsaWVkIil7aWYocD09Im5vbmUiKWk9dS5zbGljZSgpO2Vsc2UgaWYocD09ImFwcGxpZWQiKWk9by5zbGljZSgpO2Vsc2UgaWYocD09InJlbW92ZWQiKXt2YXIgbT17fTtmb3Iobj0wLHI9by5sZW5ndGg7bjxyO24rKyltW29bbl1dPW51bGw7dS5mb3JFYWNoKGZ1bmN0aW9uKHkpe09iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtLHkpfHxpLnB1c2goeSl9KX19ZWxzZSBpZihiPT0iaW5kZXgifHxiPT0ib3JpZ2luYWwiKWZvcihuPTAscj10LmFvRGF0YS5sZW5ndGg7bjxyO24rKyl0LmFvRGF0YVtuXSYmKHA9PSJub25lIj9pLnB1c2gobik6KHM9by5pbmRleE9mKG4pLChzPT09LTEmJnA9PSJyZW1vdmVkInx8cz49MCYmcD09ImFwcGxpZWQiKSYmaS5wdXNoKG4pKSk7ZWxzZSBpZih0eXBlb2YgYj09Im51bWJlciIpe3ZhciBDPXppKHQsYiwiYXNjIik7aWYocD09PSJub25lIilpPUM7ZWxzZSBmb3Iobj0wO248Qy5sZW5ndGg7bisrKXM9by5pbmRleE9mKENbbl0pLChzPT09LTEmJnA9PSJyZW1vdmVkInx8cz49MCYmcD09ImFwcGxpZWQiKSYmaS5wdXNoKENbbl0pfXJldHVybiBpfSxQbD1mdW5jdGlvbih0LGUsbil7dmFyIHIscz1mdW5jdGlvbihvKXt2YXIgdT1KYShvKSxwPXQuYW9EYXRhO2lmKHUhPT1udWxsJiYhbilyZXR1cm5bdV07aWYocnx8KHI9TXIodCxuKSksdSE9PW51bGwmJnIuaW5kZXhPZih1KSE9PS0xKXJldHVyblt1XTtpZihvPT1udWxsfHxvPT09IiIpcmV0dXJuIHI7aWYodHlwZW9mIG89PSJmdW5jdGlvbiIpcmV0dXJuIHIubWFwKGZ1bmN0aW9uKFQpe3ZhciBQPXBbVF07cmV0dXJuIG8oVCxQLl9hRGF0YSxQLm5Ucik/VDpudWxsfSk7aWYoby5ub2RlTmFtZSl7dmFyIGI9by5fRFRfUm93SW5kZXgsZz1vLl9EVF9DZWxsSW5kZXg7aWYoYiE9PXZvaWQgMClyZXR1cm4gcFtiXSYmcFtiXS5uVHI9PT1vP1tiXTpbXTtpZihnKXJldHVybiBwW2cucm93XSYmcFtnLnJvd10ublRyPT09by5wYXJlbnROb2RlP1tnLnJvd106W107dmFyIG09SChvKS5jbG9zZXN0KCIqW2RhdGEtZHQtcm93XSIpO3JldHVybiBtLmxlbmd0aD9bbS5kYXRhKCJkdC1yb3ciKV06W119aWYodHlwZW9mIG89PSJzdHJpbmciJiZvLmNoYXJBdCgwKT09PSIjIil7dmFyIEM9dC5hSWRzW28ucmVwbGFjZSgvXiMvLCIiKV07aWYoQyE9PXZvaWQgMClyZXR1cm5bQy5pZHhdfXZhciB5PXRzKGVyKHQuYW9EYXRhLHIsIm5UciIpKTtyZXR1cm4gSCh5KS5maWx0ZXIobykubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX0RUX1Jvd0luZGV4fSkudG9BcnJheSgpfSxpPVZpKCJyb3ciLGUscyx0LG4pO3JldHVybihuLm9yZGVyPT09ImN1cnJlbnQifHxuLm9yZGVyPT09ImFwcGxpZWQiKSYmYnModCxpKSxpfTtJdCgicm93cygpIixmdW5jdGlvbih0LGUpe3Q9PT12b2lkIDA/dD0iIjpILmlzUGxhaW5PYmplY3QodCkmJihlPXQsdD0iIiksZT1IaShlKTt2YXIgbj10aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24ocil7cmV0dXJuIFBsKHIsdCxlKX0sMSk7cmV0dXJuIG4uc2VsZWN0b3Iucm93cz10LG4uc2VsZWN0b3Iub3B0cz1lLG59KTtJdCgicm93cygpLm5vZGVzKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInJvdyIsZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5hb0RhdGFbZV0ublRyfHx2b2lkIDB9LDEpfSk7SXQoInJvd3MoKS5kYXRhKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoITAsInJvd3MiLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGVyKHQuYW9EYXRhLGUsIl9hRGF0YSIpfSwxKX0pO1F0KCJyb3dzKCkuY2FjaGUoKSIsInJvdygpLmNhY2hlKCkiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJyb3ciLGZ1bmN0aW9uKGUsbil7dmFyIHI9ZS5hb0RhdGFbbl07cmV0dXJuIHQ9PT0ic2VhcmNoIj9yLl9hRmlsdGVyRGF0YTpyLl9hU29ydERhdGF9LDEpfSk7UXQoInJvd3MoKS5pbnZhbGlkYXRlKCkiLCJyb3coKS5pbnZhbGlkYXRlKCkiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJyb3ciLGZ1bmN0aW9uKGUsbil7UnIoZSxuLHQpfSl9KTtRdCgicm93cygpLmluZGV4ZXMoKSIsInJvdygpLmluZGV4KCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInJvdyIsZnVuY3Rpb24odCxlKXtyZXR1cm4gZX0sMSl9KTtRdCgicm93cygpLmlkcygpIiwicm93KCkuaWQoKSIsZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49dGhpcy5jb250ZXh0LHI9MCxzPW4ubGVuZ3RoO3I8cztyKyspZm9yKHZhciBpPTAsbz10aGlzW3JdLmxlbmd0aDtpPG87aSsrKXt2YXIgdT1uW3JdLnJvd0lkRm4obltyXS5hb0RhdGFbdGhpc1tyXVtpXV0uX2FEYXRhKTtlLnB1c2goKHQ9PT0hMD8iIyI6IiIpK3UpfXJldHVybiBuZXcgV3QobixlKX0pO1F0KCJyb3dzKCkucmVtb3ZlKCkiLCJyb3coKS5yZW1vdmUoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigicm93IixmdW5jdGlvbih0LGUpe3ZhciBuPXQuYW9EYXRhLHI9bltlXSxzPXQuYWlEaXNwbGF5TWFzdGVyLmluZGV4T2YoZSk7cyE9PS0xJiZ0LmFpRGlzcGxheU1hc3Rlci5zcGxpY2UocywxKSx0Ll9pUmVjb3Jkc0Rpc3BsYXk+MCYmdC5faVJlY29yZHNEaXNwbGF5LS0sdnModCk7dmFyIGk9dC5yb3dJZEZuKHIuX2FEYXRhKTtpIT09dm9pZCAwJiZkZWxldGUgdC5hSWRzW2ldLG5bZV09bnVsbH0pLHRoaXN9KTtJdCgicm93cy5hZGQoKSIsZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKHIpe3ZhciBzLGksbyx1PVtdO2ZvcihpPTAsbz10Lmxlbmd0aDtpPG87aSsrKXM9dFtpXSxzLm5vZGVOYW1lJiZzLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk9PT0iVFIiP3UucHVzaChOaShyLHMpWzBdKTp1LnB1c2goeW4ocixzKSk7cmV0dXJuIHV9LDEpLG49dGhpcy5yb3dzKC0xKTtyZXR1cm4gbi5wb3AoKSxuLnB1c2guYXBwbHkobixlKSxufSk7SXQoInJvdygpIixmdW5jdGlvbih0LGUpe3JldHVybiBVaSh0aGlzLnJvd3ModCxlKSl9KTtJdCgicm93KCkuZGF0YSgpIixmdW5jdGlvbih0KXt2YXIgZT10aGlzLmNvbnRleHQ7aWYodD09PXZvaWQgMClyZXR1cm4gZS5sZW5ndGgmJnRoaXMubGVuZ3RoJiZ0aGlzWzBdLmxlbmd0aD9lWzBdLmFvRGF0YVt0aGlzWzBdXS5fYURhdGE6dm9pZCAwO3ZhciBuPWVbMF0uYW9EYXRhW3RoaXNbMF1dO3JldHVybiBuLl9hRGF0YT10LEFycmF5LmlzQXJyYXkodCkmJm4ublRyJiZuLm5Uci5pZCYmdm4oZVswXS5yb3dJZCkodCxuLm5Uci5pZCksUnIoZVswXSx0aGlzWzBdLCJkYXRhIiksdGhpc30pO0l0KCJyb3coKS5ub2RlKCkiLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb250ZXh0O2lmKHQubGVuZ3RoJiZ0aGlzLmxlbmd0aCYmdGhpc1swXS5sZW5ndGgpe3ZhciBlPXRbMF0uYW9EYXRhW3RoaXNbMF1dO2lmKGUmJmUublRyKXJldHVybiBlLm5Ucn1yZXR1cm4gbnVsbH0pO0l0KCJyb3cuYWRkKCkiLGZ1bmN0aW9uKHQpe3QgaW5zdGFuY2VvZiBIJiZ0Lmxlbmd0aCYmKHQ9dFswXSk7dmFyIGU9dGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKG4pe3JldHVybiB0Lm5vZGVOYW1lJiZ0Lm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk9PT0iVFIiP05pKG4sdClbMF06eW4obix0KX0pO3JldHVybiB0aGlzLnJvdyhlWzBdKX0pO0goZG9jdW1lbnQpLm9uKCJwbHVnaW4taW5pdC5kdCIsZnVuY3Rpb24odCxlKXt2YXIgbj1uZXcgV3QoZSk7bi5vbigic3RhdGVTYXZlUGFyYW1zLkRUIixmdW5jdGlvbihyLHMsaSl7Zm9yKHZhciBvPXMucm93SWRGbix1PXMuYWlEaXNwbGF5TWFzdGVyLHA9W10sYj0wO2I8dS5sZW5ndGg7YisrKXt2YXIgZz11W2JdLG09cy5hb0RhdGFbZ107bS5fZGV0YWlsc1Nob3cmJnAucHVzaCgiIyIrbyhtLl9hRGF0YSkpfWkuY2hpbGRSb3dzPXB9KSxuLm9uKCJzdGF0ZUxvYWRlZC5EVCIsZnVuY3Rpb24ocixzLGkpe1hhKG4saSl9KSxYYShuLG4uc3RhdGUubG9hZGVkKCkpfSk7dmFyIFhhPWZ1bmN0aW9uKHQsZSl7ZSYmZS5jaGlsZFJvd3MmJnQucm93cyhlLmNoaWxkUm93cy5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG4ucmVwbGFjZSgvKFteOlxcXSooPzpcXC5bXjpcXF0qKSopOi9nLCIkMVxcOiIpfSkpLmV2ZXJ5KGZ1bmN0aW9uKCl7WnQodC5zZXR0aW5ncygpWzBdLG51bGwsInJlcXVlc3RDaGlsZCIsW3RoaXNdKX0pfSxGbD1mdW5jdGlvbih0LGUsbixyKXt2YXIgcz1bXSxpPWZ1bmN0aW9uKG8sdSl7aWYoQXJyYXkuaXNBcnJheShvKXx8byBpbnN0YW5jZW9mIEgpe2Zvcih2YXIgcD0wLGI9by5sZW5ndGg7cDxiO3ArKylpKG9bcF0sdSk7cmV0dXJufWlmKG8ubm9kZU5hbWUmJm8ubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PSJ0ciIpby5zZXRBdHRyaWJ1dGUoImRhdGEtZHQtcm93IixlLmlkeCkscy5wdXNoKG8pO2Vsc2V7dmFyIGc9SCgiPHRyPjx0ZD48L3RkPjwvdHI+IikuYXR0cigiZGF0YS1kdC1yb3ciLGUuaWR4KS5hZGRDbGFzcyh1KTtIKCJ0ZCIsZykuYWRkQ2xhc3ModSkuaHRtbChvKVswXS5jb2xTcGFuPUVyKHQpLHMucHVzaChnWzBdKX19O2kobixyKSxlLl9kZXRhaWxzJiZlLl9kZXRhaWxzLmRldGFjaCgpLGUuX2RldGFpbHM9SChzKSxlLl9kZXRhaWxzU2hvdyYmZS5fZGV0YWlscy5pbnNlcnRBZnRlcihlLm5Ucil9LHdzPWJ0LnV0aWwudGhyb3R0bGUoZnVuY3Rpb24odCl7anIodFswXSl9LDUwMCksV2k9ZnVuY3Rpb24odCxlKXt2YXIgbj10LmNvbnRleHQ7aWYobi5sZW5ndGgpe3ZhciByPW5bMF0uYW9EYXRhW2UhPT12b2lkIDA/ZTp0WzBdXTtyJiZyLl9kZXRhaWxzJiYoci5fZGV0YWlscy5yZW1vdmUoKSxyLl9kZXRhaWxzU2hvdz12b2lkIDAsci5fZGV0YWlscz12b2lkIDAsSChyLm5UcikucmVtb3ZlQ2xhc3MoImR0LWhhc0NoaWxkIiksd3MobikpfX0seHM9ZnVuY3Rpb24odCxlKXt2YXIgbj10LmNvbnRleHQ7aWYobi5sZW5ndGgmJnQubGVuZ3RoKXt2YXIgcj1uWzBdLmFvRGF0YVt0WzBdXTtyLl9kZXRhaWxzJiYoci5fZGV0YWlsc1Nob3c9ZSxlPyhyLl9kZXRhaWxzLmluc2VydEFmdGVyKHIublRyKSxIKHIublRyKS5hZGRDbGFzcygiZHQtaGFzQ2hpbGQiKSk6KHIuX2RldGFpbHMuZGV0YWNoKCksSChyLm5UcikucmVtb3ZlQ2xhc3MoImR0LWhhc0NoaWxkIikpLFp0KG5bMF0sbnVsbCwiY2hpbGRSb3ciLFtlLHQucm93KHRbMF0pXSksQmwoblswXSksd3MobikpfX0sQmw9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IFd0KHQpLG49Ii5kdC5EVF9kZXRhaWxzIixyPSJkcmF3IituLHM9ImNvbHVtbi1zaXppbmciK24saT0iZGVzdHJveSIrbixvPXQuYW9EYXRhO2Uub2ZmKHIrIiAiK3MrIiAiK2kpLENlKG8sIl9kZXRhaWxzIikubGVuZ3RoPjAmJihlLm9uKHIsZnVuY3Rpb24odSxwKXt0PT09cCYmZS5yb3dzKHtwYWdlOiJjdXJyZW50In0pLmVxKDApLmVhY2goZnVuY3Rpb24oYil7dmFyIGc9b1tiXTtnLl9kZXRhaWxzU2hvdyYmZy5fZGV0YWlscy5pbnNlcnRBZnRlcihnLm5Ucil9KX0pLGUub24ocyxmdW5jdGlvbih1LHApe2lmKHQ9PT1wKWZvcih2YXIgYixnPUVyKHApLG09MCxDPW8ubGVuZ3RoO208QzttKyspYj1vW21dLGImJmIuX2RldGFpbHMmJmIuX2RldGFpbHMuZWFjaChmdW5jdGlvbigpe3ZhciB5PUgodGhpcykuY2hpbGRyZW4oInRkIik7eS5sZW5ndGg9PTEmJnkuYXR0cigiY29sc3BhbiIsZyl9KX0pLGUub24oaSxmdW5jdGlvbih1LHApe2lmKHQ9PT1wKWZvcih2YXIgYj0wLGc9by5sZW5ndGg7YjxnO2IrKylvW2JdJiZvW2JdLl9kZXRhaWxzJiZXaShlLGIpfSkpfSxObD0iIixycj1ObCsicm93KCkuY2hpbGQiLFZyPXJyKyIoKSI7SXQoVnIsZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmNvbnRleHQ7cmV0dXJuIHQ9PT12b2lkIDA/bi5sZW5ndGgmJnRoaXMubGVuZ3RoJiZuWzBdLmFvRGF0YVt0aGlzWzBdXT9uWzBdLmFvRGF0YVt0aGlzWzBdXS5fZGV0YWlsczp2b2lkIDA6KHQ9PT0hMD90aGlzLmNoaWxkLnNob3coKTp0PT09ITE/V2kodGhpcyk6bi5sZW5ndGgmJnRoaXMubGVuZ3RoJiZGbChuWzBdLG5bMF0uYW9EYXRhW3RoaXNbMF1dLHQsZSksdGhpcyl9KTtJdChbcnIrIi5zaG93KCkiLFZyKyIuc2hvdygpIl0sZnVuY3Rpb24oKXtyZXR1cm4geHModGhpcywhMCksdGhpc30pO0l0KFtycisiLmhpZGUoKSIsVnIrIi5oaWRlKCkiXSxmdW5jdGlvbigpe3JldHVybiB4cyh0aGlzLCExKSx0aGlzfSk7SXQoW3JyKyIucmVtb3ZlKCkiLFZyKyIucmVtb3ZlKCkiXSxmdW5jdGlvbigpe3JldHVybiBXaSh0aGlzKSx0aGlzfSk7SXQocnIrIi5pc1Nob3duKCkiLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb250ZXh0O3JldHVybiB0Lmxlbmd0aCYmdGhpcy5sZW5ndGgmJnRbMF0uYW9EYXRhW3RoaXNbMF1dJiZ0WzBdLmFvRGF0YVt0aGlzWzBdXS5fZGV0YWlsc1Nob3d8fCExfSk7dmFyIE9sPS9eKFteOl0rKT86KG5hbWV8dGl0bGV8dmlzSWR4fHZpc2libGUpJC8sR2k9ZnVuY3Rpb24odCxlLG4scixzLGkpe2Zvcih2YXIgbz1bXSx1PTAscD1zLmxlbmd0aDt1PHA7dSsrKW8ucHVzaChSZSh0LHNbdV0sZSxpKSk7cmV0dXJuIG99LF9zPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10LmFvSGVhZGVyLHM9biE9PXZvaWQgMD9uOnQuYlNvcnRDZWxsc1RvcD8wOnIubGVuZ3RoLTE7cmV0dXJuIHJbc11bZV0uY2VsbH0sRWw9ZnVuY3Rpb24odCxlLG4pe3ZhciByPXQuYW9Db2x1bW5zLHM9Q2Uociwic05hbWUiKSxpPUNlKHIsInNUaXRsZSIpLG89YnQudXRpbC5nZXQoIltdLltdLmNlbGwiKSh0LmFvSGVhZGVyKSx1PXhuKEFpKFtdLG8pKSxwPWZ1bmN0aW9uKGIpe3ZhciBnPUphKGIpO2lmKGI9PT0iIilyZXR1cm4gYW4oci5sZW5ndGgpO2lmKGchPT1udWxsKXJldHVybltnPj0wP2c6ci5sZW5ndGgrZ107aWYodHlwZW9mIGI9PSJmdW5jdGlvbiIpe3ZhciBtPU1yKHQsbik7cmV0dXJuIHIubWFwKGZ1bmN0aW9uKGwsaCl7cmV0dXJuIGIoaCxHaSh0LGgsMCwwLG0pLF9zKHQsaCkpP2g6bnVsbH0pfXZhciBDPXR5cGVvZiBiPT0ic3RyaW5nIj9iLm1hdGNoKE9sKToiIjtpZihDKXN3aXRjaChDWzJdKXtjYXNlInZpc0lkeCI6Y2FzZSJ2aXNpYmxlIjppZihDWzFdJiZDWzFdLm1hdGNoKC9eXGQrJC8pKXt2YXIgeT1wYXJzZUludChDWzFdLDEwKTtpZih5PDApe3ZhciBUPXIubWFwKGZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuYlZpc2libGU/aDpudWxsfSk7cmV0dXJuW1RbVC5sZW5ndGgreV1dfXJldHVybltJaSh0LHkpXX1yZXR1cm4gci5tYXAoZnVuY3Rpb24obCxoKXtyZXR1cm4gbC5iVmlzaWJsZT9DWzFdP0godVtoXSkuZmlsdGVyKENbMV0pLmxlbmd0aD4wP2g6bnVsbDpoOm51bGx9KTtjYXNlIm5hbWUiOnJldHVybiBzLm1hcChmdW5jdGlvbihsLGgpe3JldHVybiBsPT09Q1sxXT9oOm51bGx9KTtjYXNlInRpdGxlIjpyZXR1cm4gaS5tYXAoZnVuY3Rpb24obCxoKXtyZXR1cm4gbD09PUNbMV0/aDpudWxsfSk7ZGVmYXVsdDpyZXR1cm5bXX1pZihiLm5vZGVOYW1lJiZiLl9EVF9DZWxsSW5kZXgpcmV0dXJuW2IuX0RUX0NlbGxJbmRleC5jb2x1bW5dO3ZhciBQPUgodSkuZmlsdGVyKGIpLm1hcChmdW5jdGlvbigpe3JldHVybiBCaSh0aGlzKX0pLnRvQXJyYXkoKTtpZihQLmxlbmd0aHx8IWIubm9kZU5hbWUpcmV0dXJuIFA7dmFyIGM9SChiKS5jbG9zZXN0KCIqW2RhdGEtZHQtY29sdW1uXSIpO3JldHVybiBjLmxlbmd0aD9bYy5kYXRhKCJkdC1jb2x1bW4iKV06W119O3JldHVybiBWaSgiY29sdW1uIixlLHAsdCxuKX0sUmw9ZnVuY3Rpb24odCxlLG4pe3ZhciByPXQuYW9Db2x1bW5zLHM9cltlXSxpPXQuYW9EYXRhLG8sdSxwLGI7aWYobj09PXZvaWQgMClyZXR1cm4gcy5iVmlzaWJsZTtpZihzLmJWaXNpYmxlPT09bilyZXR1cm4hMTtpZihuKXt2YXIgZz1DZShyLCJiVmlzaWJsZSIpLmluZGV4T2YoITAsZSsxKTtmb3IodT0wLHA9aS5sZW5ndGg7dTxwO3UrKylpW3VdJiYoYj1pW3VdLm5UcixvPWlbdV0uYW5DZWxscyxiJiZiLmluc2VydEJlZm9yZShvW2VdLG9bZ118fG51bGwpKX1lbHNlIEgoQ2UodC5hb0RhdGEsImFuQ2VsbHMiLGUpKS5kZXRhY2goKTtyZXR1cm4gcy5iVmlzaWJsZT1uLGhzKHQpLCEwfTtJdCgiY29sdW1ucygpIixmdW5jdGlvbih0LGUpe3Q9PT12b2lkIDA/dD0iIjpILmlzUGxhaW5PYmplY3QodCkmJihlPXQsdD0iIiksZT1IaShlKTt2YXIgbj10aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24ocil7cmV0dXJuIEVsKHIsdCxlKX0sMSk7cmV0dXJuIG4uc2VsZWN0b3IuY29scz10LG4uc2VsZWN0b3Iub3B0cz1lLG59KTtRdCgiY29sdW1ucygpLmhlYWRlcigpIiwiY29sdW1uKCkuaGVhZGVyKCkiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjb2x1bW4iLGZ1bmN0aW9uKGUsbil7cmV0dXJuIF9zKGUsbix0KX0sMSl9KTtRdCgiY29sdW1ucygpLmZvb3RlcigpIiwiY29sdW1uKCkuZm9vdGVyKCkiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjb2x1bW4iLGZ1bmN0aW9uKGUsbil7dmFyIHI9ZS5hb0Zvb3RlcjtyZXR1cm4gci5sZW5ndGg/ZS5hb0Zvb3Rlclt0IT09dm9pZCAwP3Q6MF1bbl0uY2VsbDpudWxsfSwxKX0pO1F0KCJjb2x1bW5zKCkuZGF0YSgpIiwiY29sdW1uKCkuZGF0YSgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjb2x1bW4tcm93cyIsR2ksMSl9KTtRdCgiY29sdW1ucygpLnJlbmRlcigpIiwiY29sdW1uKCkucmVuZGVyKCkiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjb2x1bW4tcm93cyIsZnVuY3Rpb24oZSxuLHIscyxpKXtyZXR1cm4gR2koZSxuLHIscyxpLHQpfSwxKX0pO1F0KCJjb2x1bW5zKCkuZGF0YVNyYygpIiwiY29sdW1uKCkuZGF0YVNyYygpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjb2x1bW4iLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuYW9Db2x1bW5zW2VdLm1EYXRhfSwxKX0pO1F0KCJjb2x1bW5zKCkuY2FjaGUoKSIsImNvbHVtbigpLmNhY2hlKCkiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjb2x1bW4tcm93cyIsZnVuY3Rpb24oZSxuLHIscyxpKXtyZXR1cm4gZXIoZS5hb0RhdGEsaSx0PT09InNlYXJjaCI/Il9hRmlsdGVyRGF0YSI6Il9hU29ydERhdGEiLG4pfSwxKX0pO1F0KCJjb2x1bW5zKCkuaW5pdCgpIiwiY29sdW1uKCkuaW5pdCgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjb2x1bW4iLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuYW9Db2x1bW5zW2VdfSwxKX0pO1F0KCJjb2x1bW5zKCkubm9kZXMoKSIsImNvbHVtbigpLm5vZGVzKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbi1yb3dzIixmdW5jdGlvbih0LGUsbixyLHMpe3JldHVybiBlcih0LmFvRGF0YSxzLCJhbkNlbGxzIixlKX0sMSl9KTtRdCgiY29sdW1ucygpLnRpdGxlcygpIiwiY29sdW1uKCkudGl0bGUoKSIsZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY29sdW1uIixmdW5jdGlvbihuLHIpe3R5cGVvZiB0PT0ibnVtYmVyIiYmKGU9dCx0PXZvaWQgMCk7dmFyIHM9SCgic3Bhbi5kdC1jb2x1bW4tdGl0bGUiLHRoaXMuY29sdW1uKHIpLmhlYWRlcihlKSk7cmV0dXJuIHQhPT12b2lkIDA/KHMuaHRtbCh0KSx0aGlzKTpzLmh0bWwoKX0sMSl9KTtRdCgiY29sdW1ucygpLnR5cGVzKCkiLCJjb2x1bW4oKS50eXBlKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24odCxlKXt2YXIgbj10LmFvQ29sdW1uc1tlXS5zVHlwZTtyZXR1cm4gbnx8RmkodCksbn0sMSl9KTtRdCgiY29sdW1ucygpLnZpc2libGUoKSIsImNvbHVtbigpLnZpc2libGUoKSIsZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLHI9W10scz10aGlzLml0ZXJhdG9yKCJjb2x1bW4iLGZ1bmN0aW9uKGksbyl7aWYodD09PXZvaWQgMClyZXR1cm4gaS5hb0NvbHVtbnNbb10uYlZpc2libGU7UmwoaSxvLHQpJiZyLnB1c2gobyl9KTtyZXR1cm4gdCE9PXZvaWQgMCYmdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGkpe0lyKGksaS5hb0hlYWRlciksSXIoaSxpLmFvRm9vdGVyKSxpLmFpRGlzcGxheS5sZW5ndGh8fEgoaS5uVEJvZHkpLmZpbmQoInRkW2NvbHNwYW5dIikuYXR0cigiY29sc3BhbiIsRXIoaSkpLGpyKGkpLG4uaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24obyx1KXtyLmluY2x1ZGVzKHUpJiZadChvLG51bGwsImNvbHVtbi12aXNpYmlsaXR5Iixbbyx1LHQsZV0pfSksci5sZW5ndGgmJihlPT09dm9pZCAwfHxlKSYmbi5jb2x1bW5zLmFkanVzdCgpfSksc30pO1F0KCJjb2x1bW5zKCkud2lkdGhzKCkiLCJjb2x1bW4oKS53aWR0aCgpIixmdW5jdGlvbigpe3ZhciB0PXRoaXMuY29sdW1ucygiOnZpc2libGUiKS5jb3VudCgpLGU9SCgiPHRyPiIpLmh0bWwoIjx0ZD4iK0FycmF5KHQpLmpvaW4oIjwvdGQ+PHRkPiIpKyI8L3RkPiIpO0godGhpcy50YWJsZSgpLmJvZHkoKSkuYXBwZW5kKGUpO3ZhciBuPWUuY2hpbGRyZW4oKS5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gSCh0aGlzKS5vdXRlcldpZHRoKCl9KTtyZXR1cm4gZS5yZW1vdmUoKSx0aGlzLml0ZXJhdG9yKCJjb2x1bW4iLGZ1bmN0aW9uKHIscyl7dmFyIGk9bnIocixzKTtyZXR1cm4gaSE9PW51bGw/bltpXTowfSwxKX0pO1F0KCJjb2x1bW5zKCkuaW5kZXhlcygpIiwiY29sdW1uKCkuaW5kZXgoKSIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24oZSxuKXtyZXR1cm4gdD09PSJ2aXNpYmxlIj9ucihlLG4pOm59LDEpfSk7SXQoImNvbHVtbnMuYWRqdXN0KCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbih0KXtPcih0KX0sMSl9KTtJdCgiY29sdW1uLmluZGV4KCkiLGZ1bmN0aW9uKHQsZSl7aWYodGhpcy5jb250ZXh0Lmxlbmd0aCE9PTApe3ZhciBuPXRoaXMuY29udGV4dFswXTtpZih0PT09ImZyb21WaXNpYmxlInx8dD09PSJ0b0RhdGEiKXJldHVybiBJaShuLGUpO2lmKHQ9PT0iZnJvbURhdGEifHx0PT09InRvVmlzaWJsZSIpcmV0dXJuIG5yKG4sZSl9fSk7SXQoImNvbHVtbigpIixmdW5jdGlvbih0LGUpe3JldHVybiBVaSh0aGlzLmNvbHVtbnModCxlKSl9KTt2YXIgTGw9ZnVuY3Rpb24odCxlLG4pe3ZhciByPXQuYW9EYXRhLHM9TXIodCxuKSxpPXRzKGVyKHIscywiYW5DZWxscyIpKSxvPUgoQWkoW10saSkpLHUscD10LmFvQ29sdW1ucy5sZW5ndGgsYixnLG0sQyx5LFQsUD1mdW5jdGlvbihjKXt2YXIgbD10eXBlb2YgYz09ImZ1bmN0aW9uIjtpZihjPT1udWxsfHxsKXtmb3IoYj1bXSxnPTAsbT1zLmxlbmd0aDtnPG07ZysrKWZvcih1PXNbZ10sQz0wO0M8cDtDKyspeT17cm93OnUsY29sdW1uOkN9LGw/KFQ9clt1XSxjKHksUmUodCx1LEMpLFQuYW5DZWxscz9ULmFuQ2VsbHNbQ106bnVsbCkmJmIucHVzaCh5KSk6Yi5wdXNoKHkpO3JldHVybiBifWlmKEguaXNQbGFpbk9iamVjdChjKSlyZXR1cm4gYy5jb2x1bW4hPT12b2lkIDAmJmMucm93IT09dm9pZCAwJiZzLmluZGV4T2YoYy5yb3cpIT09LTE/W2NdOltdO3ZhciBoPW8uZmlsdGVyKGMpLm1hcChmdW5jdGlvbihfLEYpe3JldHVybntyb3c6Ri5fRFRfQ2VsbEluZGV4LnJvdyxjb2x1bW46Ri5fRFRfQ2VsbEluZGV4LmNvbHVtbn19KS50b0FycmF5KCk7cmV0dXJuIGgubGVuZ3RofHwhYy5ub2RlTmFtZT9oOihUPUgoYykuY2xvc2VzdCgiKltkYXRhLWR0LXJvd10iKSxULmxlbmd0aD9be3JvdzpULmRhdGEoImR0LXJvdyIpLGNvbHVtbjpULmRhdGEoImR0LWNvbHVtbiIpfV06W10pfTtyZXR1cm4gVmkoImNlbGwiLGUsUCx0LG4pfTtJdCgiY2VsbHMoKSIsZnVuY3Rpb24odCxlLG4pe2lmKEguaXNQbGFpbk9iamVjdCh0KSYmKHQucm93PT09dm9pZCAwPyhuPXQsdD1udWxsKToobj1lLGU9bnVsbCkpLEguaXNQbGFpbk9iamVjdChlKSYmKG49ZSxlPW51bGwpLGU9PW51bGwpcmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihDKXtyZXR1cm4gTGwoQyx0LEhpKG4pKX0pO3ZhciByPW4/e3BhZ2U6bi5wYWdlLG9yZGVyOm4ub3JkZXIsc2VhcmNoOm4uc2VhcmNofTp7fSxzPXRoaXMuY29sdW1ucyhlLHIpLGk9dGhpcy5yb3dzKHQsciksbyx1LHAsYixnPXRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihDLHkpe3ZhciBUPVtdO2ZvcihvPTAsdT1pW3ldLmxlbmd0aDtvPHU7bysrKWZvcihwPTAsYj1zW3ldLmxlbmd0aDtwPGI7cCsrKVQucHVzaCh7cm93OmlbeV1bb10sY29sdW1uOnNbeV1bcF19KTtyZXR1cm4gVH0sMSksbT1uJiZuLnNlbGVjdGVkP3RoaXMuY2VsbHMoZyxuKTpnO3JldHVybiBILmV4dGVuZChtLnNlbGVjdG9yLHtjb2xzOmUscm93czp0LG9wdHM6bn0pLG19KTtRdCgiY2VsbHMoKS5ub2RlcygpIiwiY2VsbCgpLm5vZGUoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY2VsbCIsZnVuY3Rpb24odCxlLG4pe3ZhciByPXQuYW9EYXRhW2VdO3JldHVybiByJiZyLmFuQ2VsbHM/ci5hbkNlbGxzW25dOnZvaWQgMH0sMSl9KTtJdCgiY2VsbHMoKS5kYXRhKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNlbGwiLGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gUmUodCxlLG4pfSwxKX0pO1F0KCJjZWxscygpLmNhY2hlKCkiLCJjZWxsKCkuY2FjaGUoKSIsZnVuY3Rpb24odCl7cmV0dXJuIHQ9dD09PSJzZWFyY2giPyJfYUZpbHRlckRhdGEiOiJfYVNvcnREYXRhIix0aGlzLml0ZXJhdG9yKCJjZWxsIixmdW5jdGlvbihlLG4scil7cmV0dXJuIGUuYW9EYXRhW25dW3RdW3JdfSwxKX0pO1F0KCJjZWxscygpLnJlbmRlcigpIiwiY2VsbCgpLnJlbmRlcigpIixmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY2VsbCIsZnVuY3Rpb24oZSxuLHIpe3JldHVybiBSZShlLG4scix0KX0sMSl9KTtRdCgiY2VsbHMoKS5pbmRleGVzKCkiLCJjZWxsKCkuaW5kZXgoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY2VsbCIsZnVuY3Rpb24odCxlLG4pe3JldHVybntyb3c6ZSxjb2x1bW46bixjb2x1bW5WaXNpYmxlOm5yKHQsbil9fSwxKX0pO1F0KCJjZWxscygpLmludmFsaWRhdGUoKSIsImNlbGwoKS5pbnZhbGlkYXRlKCkiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjZWxsIixmdW5jdGlvbihlLG4scil7UnIoZSxuLHQscil9KX0pO0l0KCJjZWxsKCkiLGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gVWkodGhpcy5jZWxscyh0LGUsbikpfSk7SXQoImNlbGwoKS5kYXRhKCkiLGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY29udGV4dCxuPXRoaXNbMF07cmV0dXJuIHQ9PT12b2lkIDA/ZS5sZW5ndGgmJm4ubGVuZ3RoP1JlKGVbMF0sblswXS5yb3csblswXS5jb2x1bW4pOnZvaWQgMDoob2woZVswXSxuWzBdLnJvdyxuWzBdLmNvbHVtbix0KSxScihlWzBdLG5bMF0ucm93LCJkYXRhIixuWzBdLmNvbHVtbiksdGhpcyl9KTtJdCgib3JkZXIoKSIsZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmNvbnRleHQscj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO3JldHVybiB0PT09dm9pZCAwP24ubGVuZ3RoIT09MD9uWzBdLmFhU29ydGluZzp2b2lkIDA6KHR5cGVvZiB0PT0ibnVtYmVyIj90PVtbdCxlXV06ci5sZW5ndGg+MSYmKHQ9ciksdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKHMpe3MuYWFTb3J0aW5nPUFycmF5LmlzQXJyYXkodCk/dC5zbGljZSgpOnR9KSl9KTtJdCgib3JkZXIubGlzdGVuZXIoKSIsZnVuY3Rpb24odCxlLG4pe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24ocil7cHMocix0LHt9LGUsbil9KX0pO0l0KCJvcmRlci5maXhlZCgpIixmdW5jdGlvbih0KXtpZighdCl7dmFyIGU9dGhpcy5jb250ZXh0LG49ZS5sZW5ndGg/ZVswXS5hYVNvcnRpbmdGaXhlZDp2b2lkIDA7cmV0dXJuIEFycmF5LmlzQXJyYXkobik/e3ByZTpufTpufXJldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24ocil7ci5hYVNvcnRpbmdGaXhlZD1ILmV4dGVuZCghMCx7fSx0KX0pfSk7SXQoWyJjb2x1bW5zKCkub3JkZXIoKSIsImNvbHVtbigpLm9yZGVyKCkiXSxmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0P3RoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihuLHIpe24uYWFTb3J0aW5nPWVbcl0ubWFwKGZ1bmN0aW9uKHMpe3JldHVybltzLHRdfSl9KTp0aGlzLml0ZXJhdG9yKCJjb2x1bW4iLGZ1bmN0aW9uKG4scil7Zm9yKHZhciBzPXpyKG4pLGk9MCxvPXMubGVuZ3RoO2k8bztpKyspaWYoc1tpXS5jb2w9PT1yKXJldHVybiBzW2ldLmRpcjtyZXR1cm4gbnVsbH0sMSl9KTtRdCgiY29sdW1ucygpLm9yZGVyYWJsZSgpIiwiY29sdW1uKCkub3JkZXJhYmxlKCkiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjb2x1bW4iLGZ1bmN0aW9uKGUsbil7dmFyIHI9ZS5hb0NvbHVtbnNbbl07cmV0dXJuIHQ/ci5hc1NvcnRpbmc6ci5iU29ydGFibGV9LDEpfSk7SXQoInByb2Nlc3NpbmcoKSIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihlKXtrZShlLHQpfSl9KTtJdCgic2VhcmNoKCkiLGZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBzPXRoaXMuY29udGV4dDtyZXR1cm4gdD09PXZvaWQgMD9zLmxlbmd0aCE9PTA/c1swXS5vUHJldmlvdXNTZWFyY2guc2VhcmNoOnZvaWQgMDp0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oaSl7aS5vRmVhdHVyZXMuYkZpbHRlciYmKHR5cGVvZiBlPT0ib2JqZWN0Ij90cihpLEguZXh0ZW5kKGkub1ByZXZpb3VzU2VhcmNoLGUse3NlYXJjaDp0fSkpOnRyKGksSC5leHRlbmQoaS5vUHJldmlvdXNTZWFyY2gse3NlYXJjaDp0LHJlZ2V4OmU9PT1udWxsPyExOmUsc21hcnQ6bj09PW51bGw/ITA6bixjYXNlSW5zZW5zaXRpdmU6cj09PW51bGw/ITA6cn0pKSl9KX0pO0l0KCJzZWFyY2guZml4ZWQoKSIsZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLml0ZXJhdG9yKCEwLCJ0YWJsZSIsZnVuY3Rpb24ocil7dmFyIHM9ci5zZWFyY2hGaXhlZDtpZih0KXtpZihlPT09dm9pZCAwKXJldHVybiBzW3RdO2U9PT1udWxsP2RlbGV0ZSBzW3RdOnNbdF09ZX1lbHNlIHJldHVybiBPYmplY3Qua2V5cyhzKTtyZXR1cm4gdGhpc30pO3JldHVybiB0IT09dm9pZCAwJiZlPT09dm9pZCAwP25bMF06bn0pO1F0KCJjb2x1bW5zKCkuc2VhcmNoKCkiLCJjb2x1bW4oKS5zZWFyY2goKSIsZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24ocyxpKXt2YXIgbz1zLmFvUHJlU2VhcmNoQ29scztpZih0PT09dm9pZCAwKXJldHVybiBvW2ldLnNlYXJjaDtzLm9GZWF0dXJlcy5iRmlsdGVyJiYodHlwZW9mIGU9PSJvYmplY3QiP0guZXh0ZW5kKG9baV0sZSx7c2VhcmNoOnR9KTpILmV4dGVuZChvW2ldLHtzZWFyY2g6dCxyZWdleDplPT09bnVsbD8hMTplLHNtYXJ0Om49PT1udWxsPyEwOm4sY2FzZUluc2Vuc2l0aXZlOnI9PT1udWxsPyEwOnJ9KSx0cihzLHMub1ByZXZpb3VzU2VhcmNoKSl9KX0pO0l0KFsiY29sdW1ucygpLnNlYXJjaC5maXhlZCgpIiwiY29sdW1uKCkuc2VhcmNoLmZpeGVkKCkiXSxmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuaXRlcmF0b3IoITAsImNvbHVtbiIsZnVuY3Rpb24ocixzKXt2YXIgaT1yLmFvQ29sdW1uc1tzXS5zZWFyY2hGaXhlZDtpZih0KXtpZihlPT09dm9pZCAwKXJldHVybiBpW3RdO2U9PT1udWxsP2RlbGV0ZSBpW3RdOmlbdF09ZX1lbHNlIHJldHVybiBPYmplY3Qua2V5cyhpKTtyZXR1cm4gdGhpc30pO3JldHVybiB0IT09dm9pZCAwJiZlPT09dm9pZCAwP25bMF06bn0pO0l0KCJzdGF0ZSgpIixmdW5jdGlvbih0LGUpe2lmKCF0KXJldHVybiB0aGlzLmNvbnRleHQubGVuZ3RoP3RoaXMuY29udGV4dFswXS5vU2F2ZWRTdGF0ZTpudWxsO3ZhciBuPUguZXh0ZW5kKCEwLHt9LHQpO3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24ocil7ZSE9PSExJiYobi50aW1lPStuZXcgRGF0ZSsxMDApLGtpKHIsbixmdW5jdGlvbigpe30pfSl9KTtJdCgic3RhdGUuY2xlYXIoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKHQpe3QuZm5TdGF0ZVNhdmVDYWxsYmFjay5jYWxsKHQub0luc3RhbmNlLHQse30pfSl9KTtJdCgic3RhdGUubG9hZGVkKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udGV4dC5sZW5ndGg/dGhpcy5jb250ZXh0WzBdLm9Mb2FkZWRTdGF0ZTpudWxsfSk7SXQoInN0YXRlLnNhdmUoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKHQpe2pyKHQpfSl9KTtidC51c2U9ZnVuY3Rpb24odCxlKXt2YXIgbj10eXBlb2YgdD09InN0cmluZyI/ZTp0LHI9dHlwZW9mIGU9PSJzdHJpbmciP2U6dDtpZihuPT09dm9pZCAwJiZ0eXBlb2Ygcj09InN0cmluZyIpc3dpdGNoKHIpe2Nhc2UibGliIjpjYXNlImpxIjpyZXR1cm4gSDtjYXNlIndpbiI6cmV0dXJuIHdpbmRvdztjYXNlImRhdGV0aW1lIjpyZXR1cm4gYnQuRGF0ZVRpbWU7Y2FzZSJsdXhvbiI6cmV0dXJuIGRuO2Nhc2UibW9tZW50IjpyZXR1cm4gd247ZGVmYXVsdDpyZXR1cm4gbnVsbH1yPT09ImxpYiJ8fHI9PT0ianEifHxuJiZuLmZuJiZuLmZuLmpxdWVyeT9IPW46cj09IndpbiJ8fG4mJm4uZG9jdW1lbnQ/KHdpbmRvdz1uLGRvY3VtZW50PW4uZG9jdW1lbnQpOnI9PT0iZGF0ZXRpbWUifHxuJiZuLnR5cGU9PT0iRGF0ZVRpbWUiP2J0LkRhdGVUaW1lPW46cj09PSJsdXhvbiJ8fG4mJm4uRml4ZWRPZmZzZXRab25lP2RuPW46KHI9PT0ibW9tZW50Inx8biYmbi5pc01vbWVudCkmJih3bj1uKX07YnQuZmFjdG9yeT1mdW5jdGlvbih0LGUpe3ZhciBuPSExO3JldHVybiB0JiZ0LmRvY3VtZW50JiYod2luZG93PXQsZG9jdW1lbnQ9dC5kb2N1bWVudCksZSYmZS5mbiYmZS5mbi5qcXVlcnkmJihIPWUsbj0hMCksbn07YnQudmVyc2lvbkNoZWNrPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPWU/ZS5zcGxpdCgiLiIpOmJ0LnZlcnNpb24uc3BsaXQoIi4iKSxyPXQuc3BsaXQoIi4iKSxzLGksbz0wLHU9ci5sZW5ndGg7bzx1O28rKylpZihzPXBhcnNlSW50KG5bb10sMTApfHwwLGk9cGFyc2VJbnQocltvXSwxMCl8fDAscyE9PWkpcmV0dXJuIHM+aTtyZXR1cm4hMH07YnQuaXNEYXRhVGFibGU9ZnVuY3Rpb24odCl7dmFyIGU9SCh0KS5nZXQoMCksbj0hMTtyZXR1cm4gdCBpbnN0YW5jZW9mIGJ0LkFwaT8hMDooSC5lYWNoKGJ0LnNldHRpbmdzLGZ1bmN0aW9uKHIscyl7dmFyIGk9cy5uU2Nyb2xsSGVhZD9IKCJ0YWJsZSIscy5uU2Nyb2xsSGVhZClbMF06bnVsbCxvPXMublNjcm9sbEZvb3Q/SCgidGFibGUiLHMublNjcm9sbEZvb3QpWzBdOm51bGw7KHMublRhYmxlPT09ZXx8aT09PWV8fG89PT1lKSYmKG49ITApfSksbil9O2J0LnRhYmxlcz1mdW5jdGlvbih0KXt2YXIgZT0hMTtILmlzUGxhaW5PYmplY3QodCkmJihlPXQuYXBpLHQ9dC52aXNpYmxlKTt2YXIgbj1idC5zZXR0aW5ncy5maWx0ZXIoZnVuY3Rpb24ocil7cmV0dXJuISEoIXR8fHQmJkgoci5uVGFibGUpLmlzKCI6dmlzaWJsZSIpKX0pLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gci5uVGFibGV9KTtyZXR1cm4gZT9uZXcgV3Qobik6bn07YnQuY2FtZWxUb0h1bmdhcmlhbj1zbjtJdCgiJCgpIixmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMucm93cyhlKS5ub2RlcygpLHI9SChuKTtyZXR1cm4gSChbXS5jb25jYXQoci5maWx0ZXIodCkudG9BcnJheSgpLHIuZmluZCh0KS50b0FycmF5KCkpKX0pO0guZWFjaChbIm9uIiwib25lIiwib2ZmIl0sZnVuY3Rpb24odCxlKXtJdChlKyIoKSIsZnVuY3Rpb24oKXt2YXIgbj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO25bMF09blswXS5zcGxpdCgvXHMvKS5tYXAoZnVuY3Rpb24ocyl7cmV0dXJuIHMubWF0Y2goL1wuZHRcYi8pP3M6cysiLmR0In0pLmpvaW4oIiAiKTt2YXIgcj1IKHRoaXMudGFibGVzKCkubm9kZXMoKSk7cmV0dXJuIHJbZV0uYXBwbHkocixuKSx0aGlzfSl9KTtJdCgiY2xlYXIoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKHQpe09pKHQpfSl9KTtJdCgiZXJyb3IoKSIsZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihlKXtPZShlLDAsdCl9KX0pO0l0KCJzZXR0aW5ncygpIixmdW5jdGlvbigpe3JldHVybiBuZXcgV3QodGhpcy5jb250ZXh0LHRoaXMuY29udGV4dCl9KTtJdCgiaW5pdCgpIixmdW5jdGlvbigpe3ZhciB0PXRoaXMuY29udGV4dDtyZXR1cm4gdC5sZW5ndGg/dFswXS5vSW5pdDpudWxsfSk7SXQoImRhdGEoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKHQpe3JldHVybiBDZSh0LmFvRGF0YSwiX2FEYXRhIil9KS5mbGF0dGVuKCl9KTtJdCgidHJpZ2dlcigpIixmdW5jdGlvbih0LGUsbil7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihyKXtyZXR1cm4gWnQocixudWxsLHQsZSxuKX0pLmZsYXR0ZW4oKX0pO0l0KCJyZWFkeSgpIixmdW5jdGlvbih0KXt2YXIgZT10aGlzLmNvbnRleHQ7cmV0dXJuIHQ/dGhpcy50YWJsZXMoKS5ldmVyeShmdW5jdGlvbigpe3RoaXMuY29udGV4dFswXS5fYkluaXRDb21wbGV0ZT90LmNhbGwodGhpcyk6dGhpcy5vbigiaW5pdCIsZnVuY3Rpb24oKXt0LmNhbGwodGhpcyl9KX0pOmUubGVuZ3RoP2VbMF0uX2JJbml0Q29tcGxldGV8fCExOm51bGx9KTtJdCgiZGVzdHJveSgpIixmdW5jdGlvbih0KXtyZXR1cm4gdD10fHwhMSx0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oZSl7dmFyIG49ZS5vQ2xhc3NlcyxyPWUublRhYmxlLHM9ZS5uVEJvZHksaT1lLm5USGVhZCxvPWUublRGb290LHU9SChyKSxwPUgocyksYj1IKGUublRhYmxlV3JhcHBlciksZz1lLmFvRGF0YS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGM/Yy5uVHI6bnVsbH0pLG09bi5vcmRlcjtlLmJEZXN0cm95aW5nPSEwLFp0KGUsImFvRGVzdHJveUNhbGxiYWNrIiwiZGVzdHJveSIsW2VdLCEwKSx0fHxuZXcgV3QoZSkuY29sdW1ucygpLnZpc2libGUoITApLGIub2ZmKCIuRFQiKS5maW5kKCI6bm90KHRib2R5ICopIikub2ZmKCIuRFQiKSxIKHdpbmRvdykub2ZmKCIuRFQtIitlLnNJbnN0YW5jZSksciE9aS5wYXJlbnROb2RlJiYodS5jaGlsZHJlbigidGhlYWQiKS5kZXRhY2goKSx1LmFwcGVuZChpKSksbyYmciE9by5wYXJlbnROb2RlJiYodS5jaGlsZHJlbigidGZvb3QiKS5kZXRhY2goKSx1LmFwcGVuZChvKSksZS5jb2xncm91cC5yZW1vdmUoKSxlLmFhU29ydGluZz1bXSxlLmFhU29ydGluZ0ZpeGVkPVtdLFRpKGUpLEgoInRoLCB0ZCIsaSkucmVtb3ZlQ2xhc3MobS5jYW5Bc2MrIiAiK20uY2FuRGVzYysiICIrbS5pc0FzYysiICIrbS5pc0Rlc2MpLmNzcygid2lkdGgiLCIiKSxwLmNoaWxkcmVuKCkuZGV0YWNoKCkscC5hcHBlbmQoZyk7dmFyIEM9ZS5uVGFibGVXcmFwcGVyLnBhcmVudE5vZGUseT1lLm5UYWJsZVdyYXBwZXIubmV4dFNpYmxpbmcsVD10PyJyZW1vdmUiOiJkZXRhY2giO3VbVF0oKSxiW1RdKCksIXQmJkMmJihDLmluc2VydEJlZm9yZShyLHkpLHUuY3NzKCJ3aWR0aCIsZS5zRGVzdHJveVdpZHRoKS5yZW1vdmVDbGFzcyhuLnRhYmxlKSk7dmFyIFA9YnQuc2V0dGluZ3MuaW5kZXhPZihlKTtQIT09LTEmJmJ0LnNldHRpbmdzLnNwbGljZShQLDEpfSl9KTtILmVhY2goWyJjb2x1bW4iLCJyb3ciLCJjZWxsIl0sZnVuY3Rpb24odCxlKXtJdChlKyJzKCkuZXZlcnkoKSIsZnVuY3Rpb24obil7dmFyIHI9dGhpcy5zZWxlY3Rvci5vcHRzLHM9dGhpcyxpLG89MDtyZXR1cm4gdGhpcy5pdGVyYXRvcigiZXZlcnkiLGZ1bmN0aW9uKHUscCxiKXtpPXNbZV0ocCxyKSxlPT09ImNlbGwiP24uY2FsbChpLGlbMF1bMF0ucm93LGlbMF1bMF0uY29sdW1uLGIsbyk6bi5jYWxsKGkscCxiLG8pLG8rK30pfSl9KTtJdCgiaTE4bigpIixmdW5jdGlvbih0LGUsbil7dmFyIHI9dGhpcy5jb250ZXh0WzBdLHM9RW4odCkoci5vTGFuZ3VhZ2UpO3JldHVybiBzPT09dm9pZCAwJiYocz1lKSxILmlzUGxhaW5PYmplY3QocykmJihzPW4hPT12b2lkIDAmJnNbbl0hPT12b2lkIDA/c1tuXTpzLl8pLHR5cGVvZiBzPT0ic3RyaW5nIj9zLnJlcGxhY2UoIiVkIixuKTpzfSk7YnQudmVyc2lvbj0iMi4xLjYiO2J0LnNldHRpbmdzPVtdO2J0Lm1vZGVscz17fTtidC5tb2RlbHMub1NlYXJjaD17Y2FzZUluc2Vuc2l0aXZlOiEwLHNlYXJjaDoiIixyZWdleDohMSxzbWFydDohMCxyZXR1cm46ITF9O2J0Lm1vZGVscy5vUm93PXtuVHI6bnVsbCxhbkNlbGxzOm51bGwsX2FEYXRhOltdLF9hU29ydERhdGE6bnVsbCxfYUZpbHRlckRhdGE6bnVsbCxfc0ZpbHRlclJvdzpudWxsLHNyYzpudWxsLGlkeDotMSxkaXNwbGF5RGF0YTpudWxsfTtidC5tb2RlbHMub0NvbHVtbj17aWR4Om51bGwsYURhdGFTb3J0Om51bGwsYXNTb3J0aW5nOm51bGwsYlNlYXJjaGFibGU6bnVsbCxiU29ydGFibGU6bnVsbCxiVmlzaWJsZTpudWxsLF9zTWFudWFsVHlwZTpudWxsLF9iQXR0clNyYzohMSxmbkNyZWF0ZWRDZWxsOm51bGwsZm5HZXREYXRhOm51bGwsZm5TZXREYXRhOm51bGwsbURhdGE6bnVsbCxtUmVuZGVyOm51bGwsc0NsYXNzOm51bGwsc0NvbnRlbnRQYWRkaW5nOm51bGwsc0RlZmF1bHRDb250ZW50Om51bGwsc05hbWU6bnVsbCxzU29ydERhdGFUeXBlOiJzdGQiLHNTb3J0aW5nQ2xhc3M6bnVsbCxzVGl0bGU6bnVsbCxzVHlwZTpudWxsLHNXaWR0aDpudWxsLHNXaWR0aE9yaWc6bnVsbCxtYXhMZW5TdHJpbmc6bnVsbCxzZWFyY2hGaXhlZDpudWxsfTtidC5kZWZhdWx0cz17YWFEYXRhOm51bGwsYWFTb3J0aW5nOltbMCwiYXNjIl1dLGFhU29ydGluZ0ZpeGVkOltdLGFqYXg6bnVsbCxhTGVuZ3RoTWVudTpbMTAsMjUsNTAsMTAwXSxhb0NvbHVtbnM6bnVsbCxhb0NvbHVtbkRlZnM6bnVsbCxhb1NlYXJjaENvbHM6W10sYkF1dG9XaWR0aDohMCxiRGVmZXJSZW5kZXI6ITAsYkRlc3Ryb3k6ITEsYkZpbHRlcjohMCxiSW5mbzohMCxiTGVuZ3RoQ2hhbmdlOiEwLGJQYWdpbmF0ZTohMCxiUHJvY2Vzc2luZzohMSxiUmV0cmlldmU6ITEsYlNjcm9sbENvbGxhcHNlOiExLGJTZXJ2ZXJTaWRlOiExLGJTb3J0OiEwLGJTb3J0TXVsdGk6ITAsYlNvcnRDZWxsc1RvcDpudWxsLGJTb3J0Q2xhc3NlczohMCxiU3RhdGVTYXZlOiExLGZuQ3JlYXRlZFJvdzpudWxsLGZuRHJhd0NhbGxiYWNrOm51bGwsZm5Gb290ZXJDYWxsYmFjazpudWxsLGZuRm9ybWF0TnVtYmVyOmZ1bmN0aW9uKHQpe3JldHVybiB0LnRvU3RyaW5nKCkucmVwbGFjZSgvXEIoPz0oXGR7M30pKyg/IVxkKSkvZyx0aGlzLm9MYW5ndWFnZS5zVGhvdXNhbmRzKX0sZm5IZWFkZXJDYWxsYmFjazpudWxsLGZuSW5mb0NhbGxiYWNrOm51bGwsZm5Jbml0Q29tcGxldGU6bnVsbCxmblByZURyYXdDYWxsYmFjazpudWxsLGZuUm93Q2FsbGJhY2s6bnVsbCxmblN0YXRlTG9hZENhbGxiYWNrOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gSlNPTi5wYXJzZSgodC5pU3RhdGVEdXJhdGlvbj09PS0xP3Nlc3Npb25TdG9yYWdlOmxvY2FsU3RvcmFnZSkuZ2V0SXRlbSgiRGF0YVRhYmxlc18iK3Quc0luc3RhbmNlKyJfIitsb2NhdGlvbi5wYXRobmFtZSkpfWNhdGNoe3JldHVybnt9fX0sZm5TdGF0ZUxvYWRQYXJhbXM6bnVsbCxmblN0YXRlTG9hZGVkOm51bGwsZm5TdGF0ZVNhdmVDYWxsYmFjazpmdW5jdGlvbih0LGUpe3RyeXsodC5pU3RhdGVEdXJhdGlvbj09PS0xP3Nlc3Npb25TdG9yYWdlOmxvY2FsU3RvcmFnZSkuc2V0SXRlbSgiRGF0YVRhYmxlc18iK3Quc0luc3RhbmNlKyJfIitsb2NhdGlvbi5wYXRobmFtZSxKU09OLnN0cmluZ2lmeShlKSl9Y2F0Y2h7fX0sZm5TdGF0ZVNhdmVQYXJhbXM6bnVsbCxpU3RhdGVEdXJhdGlvbjo3MjAwLGlEaXNwbGF5TGVuZ3RoOjEwLGlEaXNwbGF5U3RhcnQ6MCxpVGFiSW5kZXg6MCxvQ2xhc3Nlczp7fSxvTGFuZ3VhZ2U6e29BcmlhOntvcmRlcmFibGU6IjogQWN0aXZhdGUgdG8gc29ydCIsb3JkZXJhYmxlUmV2ZXJzZToiOiBBY3RpdmF0ZSB0byBpbnZlcnQgc29ydGluZyIsb3JkZXJhYmxlUmVtb3ZlOiI6IEFjdGl2YXRlIHRvIHJlbW92ZSBzb3J0aW5nIixwYWdpbmF0ZTp7Zmlyc3Q6IkZpcnN0IixsYXN0OiJMYXN0IixuZXh0OiJOZXh0IixwcmV2aW91czoiUHJldmlvdXMiLG51bWJlcjoiIn19LG9QYWdpbmF0ZTp7c0ZpcnN0OiJceEFCIixzTGFzdDoiXHhCQiIsc05leHQ6Ilx1MjAzQSIsc1ByZXZpb3VzOiJcdTIwMzkifSxlbnRyaWVzOntfOiJlbnRyaWVzIiwxOiJlbnRyeSJ9LHNFbXB0eVRhYmxlOiJObyBkYXRhIGF2YWlsYWJsZSBpbiB0YWJsZSIsc0luZm86IlNob3dpbmcgX1NUQVJUXyB0byBfRU5EXyBvZiBfVE9UQUxfIF9FTlRSSUVTLVRPVEFMXyIsc0luZm9FbXB0eToiU2hvd2luZyAwIHRvIDAgb2YgMCBfRU5UUklFUy1UT1RBTF8iLHNJbmZvRmlsdGVyZWQ6IihmaWx0ZXJlZCBmcm9tIF9NQVhfIHRvdGFsIF9FTlRSSUVTLU1BWF8pIixzSW5mb1Bvc3RGaXg6IiIsc0RlY2ltYWw6IiIsc1Rob3VzYW5kczoiLCIsc0xlbmd0aE1lbnU6Il9NRU5VXyBfRU5UUklFU18gcGVyIHBhZ2UiLHNMb2FkaW5nUmVjb3JkczoiTG9hZGluZy4uLiIsc1Byb2Nlc3Npbmc6IiIsc1NlYXJjaDoiU2VhcmNoOiIsc1NlYXJjaFBsYWNlaG9sZGVyOiIiLHNVcmw6IiIsc1plcm9SZWNvcmRzOiJObyBtYXRjaGluZyByZWNvcmRzIGZvdW5kIn0sb3JkZXJEZXNjUmV2ZXJzZTohMCxvU2VhcmNoOkguZXh0ZW5kKHt9LGJ0Lm1vZGVscy5vU2VhcmNoKSxsYXlvdXQ6e3RvcFN0YXJ0OiJwYWdlTGVuZ3RoIix0b3BFbmQ6InNlYXJjaCIsYm90dG9tU3RhcnQ6ImluZm8iLGJvdHRvbUVuZDoicGFnaW5nIn0sc0RvbTpudWxsLHNlYXJjaERlbGF5Om51bGwsc1BhZ2luYXRpb25UeXBlOiIiLHNTY3JvbGxYOiIiLHNTY3JvbGxYSW5uZXI6IiIsc1Njcm9sbFk6IiIsc1NlcnZlck1ldGhvZDoiR0VUIixyZW5kZXJlcjpudWxsLHJvd0lkOiJEVF9Sb3dJZCIsY2FwdGlvbjpudWxsLGlEZWZlckxvYWRpbmc6bnVsbH07TnIoYnQuZGVmYXVsdHMpO2J0LmRlZmF1bHRzLmNvbHVtbj17YURhdGFTb3J0Om51bGwsaURhdGFTb3J0Oi0xLGFyaWFUaXRsZToiIixhc1NvcnRpbmc6WyJhc2MiLCJkZXNjIiwiIl0sYlNlYXJjaGFibGU6ITAsYlNvcnRhYmxlOiEwLGJWaXNpYmxlOiEwLGZuQ3JlYXRlZENlbGw6bnVsbCxtRGF0YTpudWxsLG1SZW5kZXI6bnVsbCxzQ2VsbFR5cGU6InRkIixzQ2xhc3M6IiIsc0NvbnRlbnRQYWRkaW5nOiIiLHNEZWZhdWx0Q29udGVudDpudWxsLHNOYW1lOiIiLHNTb3J0RGF0YVR5cGU6InN0ZCIsc1RpdGxlOm51bGwsc1R5cGU6bnVsbCxzV2lkdGg6bnVsbH07TnIoYnQuZGVmYXVsdHMuY29sdW1uKTtidC5tb2RlbHMub1NldHRpbmdzPXtvRmVhdHVyZXM6e2JBdXRvV2lkdGg6bnVsbCxiRGVmZXJSZW5kZXI6bnVsbCxiRmlsdGVyOm51bGwsYkluZm86ITAsYkxlbmd0aENoYW5nZTohMCxiUGFnaW5hdGU6bnVsbCxiUHJvY2Vzc2luZzpudWxsLGJTZXJ2ZXJTaWRlOm51bGwsYlNvcnQ6bnVsbCxiU29ydE11bHRpOm51bGwsYlNvcnRDbGFzc2VzOm51bGwsYlN0YXRlU2F2ZTpudWxsfSxvU2Nyb2xsOntiQ29sbGFwc2U6bnVsbCxpQmFyV2lkdGg6MCxzWDpudWxsLHNYSW5uZXI6bnVsbCxzWTpudWxsfSxvTGFuZ3VhZ2U6e2ZuSW5mb0NhbGxiYWNrOm51bGx9LG9Ccm93c2VyOntiU2Nyb2xsYmFyTGVmdDohMSxiYXJXaWR0aDowfSxhamF4Om51bGwsYWFuRmVhdHVyZXM6W10sYW9EYXRhOltdLGFpRGlzcGxheTpbXSxhaURpc3BsYXlNYXN0ZXI6W10sYUlkczp7fSxhb0NvbHVtbnM6W10sYW9IZWFkZXI6W10sYW9Gb290ZXI6W10sb1ByZXZpb3VzU2VhcmNoOnt9LHNlYXJjaEZpeGVkOnt9LGFvUHJlU2VhcmNoQ29sczpbXSxhYVNvcnRpbmc6bnVsbCxhYVNvcnRpbmdGaXhlZDpbXSxzRGVzdHJveVdpZHRoOjAsYW9Sb3dDYWxsYmFjazpbXSxhb0hlYWRlckNhbGxiYWNrOltdLGFvRm9vdGVyQ2FsbGJhY2s6W10sYW9EcmF3Q2FsbGJhY2s6W10sYW9Sb3dDcmVhdGVkQ2FsbGJhY2s6W10sYW9QcmVEcmF3Q2FsbGJhY2s6W10sYW9Jbml0Q29tcGxldGU6W10sYW9TdGF0ZVNhdmVQYXJhbXM6W10sYW9TdGF0ZUxvYWRQYXJhbXM6W10sYW9TdGF0ZUxvYWRlZDpbXSxzVGFibGVJZDoiIixuVGFibGU6bnVsbCxuVEhlYWQ6bnVsbCxuVEZvb3Q6bnVsbCxuVEJvZHk6bnVsbCxuVGFibGVXcmFwcGVyOm51bGwsYkluaXRpYWxpc2VkOiExLGFvT3BlblJvd3M6W10sc0RvbTpudWxsLHNlYXJjaERlbGF5Om51bGwsc1BhZ2luYXRpb25UeXBlOiJ0d29fYnV0dG9uIixwYWdpbmdDb250cm9sczowLGlTdGF0ZUR1cmF0aW9uOjAsYW9TdGF0ZVNhdmU6W10sYW9TdGF0ZUxvYWQ6W10sb1NhdmVkU3RhdGU6bnVsbCxvTG9hZGVkU3RhdGU6bnVsbCxiQWpheERhdGFHZXQ6ITAsanFYSFI6bnVsbCxqc29uOnZvaWQgMCxvQWpheERhdGE6dm9pZCAwLHNTZXJ2ZXJNZXRob2Q6bnVsbCxmbkZvcm1hdE51bWJlcjpudWxsLGFMZW5ndGhNZW51Om51bGwsaURyYXc6MCxiRHJhd2luZzohMSxpRHJhd0Vycm9yOi0xLF9pRGlzcGxheUxlbmd0aDoxMCxfaURpc3BsYXlTdGFydDowLF9pUmVjb3Jkc1RvdGFsOjAsX2lSZWNvcmRzRGlzcGxheTowLG9DbGFzc2VzOnt9LGJGaWx0ZXJlZDohMSxiU29ydGVkOiExLGJTb3J0Q2VsbHNUb3A6bnVsbCxvSW5pdDpudWxsLGFvRGVzdHJveUNhbGxiYWNrOltdLGZuUmVjb3Jkc1RvdGFsOmZ1bmN0aW9uKCl7cmV0dXJuIEVlKHRoaXMpPT0ic3NwIj90aGlzLl9pUmVjb3Jkc1RvdGFsKjE6dGhpcy5haURpc3BsYXlNYXN0ZXIubGVuZ3RofSxmblJlY29yZHNEaXNwbGF5OmZ1bmN0aW9uKCl7cmV0dXJuIEVlKHRoaXMpPT0ic3NwIj90aGlzLl9pUmVjb3Jkc0Rpc3BsYXkqMTp0aGlzLmFpRGlzcGxheS5sZW5ndGh9LGZuRGlzcGxheUVuZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2lEaXNwbGF5TGVuZ3RoLGU9dGhpcy5faURpc3BsYXlTdGFydCxuPWUrdCxyPXRoaXMuYWlEaXNwbGF5Lmxlbmd0aCxzPXRoaXMub0ZlYXR1cmVzLGk9cy5iUGFnaW5hdGU7cmV0dXJuIHMuYlNlcnZlclNpZGU/aT09PSExfHx0PT09LTE/ZStyOk1hdGgubWluKGUrdCx0aGlzLl9pUmVjb3Jkc0Rpc3BsYXkpOiFpfHxuPnJ8fHQ9PT0tMT9yOm59LG9JbnN0YW5jZTpudWxsLHNJbnN0YW5jZTpudWxsLGlUYWJJbmRleDowLG5TY3JvbGxIZWFkOm51bGwsblNjcm9sbEZvb3Q6bnVsbCxhTGFzdFNvcnQ6W10sb1BsdWdpbnM6e30scm93SWRGbjpudWxsLHJvd0lkOm51bGwsY2FwdGlvbjoiIixjYXB0aW9uTm9kZTpudWxsLGNvbGdyb3VwOm51bGwsZGVmZXJMb2FkaW5nOm51bGwsdHlwZURldGVjdDohMH07dmFyIHpsPWJ0LmV4dC5wYWdlcjtILmV4dGVuZCh6bCx7c2ltcGxlOmZ1bmN0aW9uKCl7cmV0dXJuWyJwcmV2aW91cyIsIm5leHQiXX0sZnVsbDpmdW5jdGlvbigpe3JldHVyblsiZmlyc3QiLCJwcmV2aW91cyIsIm5leHQiLCJsYXN0Il19LG51bWJlcnM6ZnVuY3Rpb24oKXtyZXR1cm5bIm51bWJlcnMiXX0sc2ltcGxlX251bWJlcnM6ZnVuY3Rpb24oKXtyZXR1cm5bInByZXZpb3VzIiwibnVtYmVycyIsIm5leHQiXX0sZnVsbF9udW1iZXJzOmZ1bmN0aW9uKCl7cmV0dXJuWyJmaXJzdCIsInByZXZpb3VzIiwibnVtYmVycyIsIm5leHQiLCJsYXN0Il19LGZpcnN0X2xhc3Q6ZnVuY3Rpb24oKXtyZXR1cm5bImZpcnN0IiwibGFzdCJdfSxmaXJzdF9sYXN0X251bWJlcnM6ZnVuY3Rpb24oKXtyZXR1cm5bImZpcnN0IiwibnVtYmVycyIsImxhc3QiXX0sX251bWJlcnM6U3MsbnVtYmVyc19sZW5ndGg6N30pO0guZXh0ZW5kKCEwLGJ0LmV4dC5yZW5kZXJlcix7cGFnaW5nQnV0dG9uOntfOmZ1bmN0aW9uKHQsZSxuLHIscyl7dmFyIGk9dC5vQ2xhc3Nlcy5wYWdpbmcsbz1baS5idXR0b25dLHU7cmV0dXJuIHImJm8ucHVzaChpLmFjdGl2ZSkscyYmby5wdXNoKGkuZGlzYWJsZWQpLGU9PT0iZWxsaXBzaXMiP3U9SCgnPHNwYW4gY2xhc3M9ImVsbGlwc2lzIj48L3NwYW4+JykuaHRtbChuKVswXTp1PUgoIjxidXR0b24+Iix7Y2xhc3M6by5qb2luKCIgIikscm9sZToibGluayIsdHlwZToiYnV0dG9uIn0pLmh0bWwobikse2Rpc3BsYXk6dSxjbGlja2VyOnV9fX0scGFnaW5nQ29udGFpbmVyOntfOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV9fX0pO3ZhciBpcj1mdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gSGUobil8fHR5cGVvZiBuIT0ic3RyaW5nInx8KG49bi5yZXBsYWNlKEpvLCIgIiksdCYmKG49Z24obikpLGUmJihuPURyKG4sITEpKSksbn19O2Z1bmN0aW9uIFlhKHQsZSxuLHIscyl7cmV0dXJuIHduP3RbZV0ocyk6ZG4/dFtuXShzKTpyP3Rbcl0ocyk6dH12YXIgJGE9ITEsZG4sd247ZnVuY3Rpb24gamwoKXt3aW5kb3cubHV4b24mJiFkbiYmKGRuPXdpbmRvdy5sdXhvbiksd2luZG93Lm1vbWVudCYmIXduJiYod249d2luZG93Lm1vbWVudCl9ZnVuY3Rpb24gQnIodCxlLG4pe3ZhciByO2lmKGpsKCksd24pe2lmKHI9d24udXRjKHQsZSxuLCEwKSwhci5pc1ZhbGlkKCkpcmV0dXJuIG51bGx9ZWxzZSBpZihkbil7aWYocj1lJiZ0eXBlb2YgdD09InN0cmluZyI/ZG4uRGF0ZVRpbWUuZnJvbUZvcm1hdCh0LGUpOmRuLkRhdGVUaW1lLmZyb21JU08odCksIXIuaXNWYWxpZClyZXR1cm4gbnVsbDtyLnNldExvY2FsZShuKX1lbHNlIGU/KCRhfHxhbGVydCgiRGF0YVRhYmxlcyB3YXJuaW5nOiBGb3JtYXR0ZWQgZGF0ZSB3aXRob3V0IE1vbWVudC5qcyBvciBMdXhvbiAtIGh0dHBzOi8vZGF0YXRhYmxlcy5uZXQvdG4vMTciKSwkYT0hMCk6cj1uZXcgRGF0ZSh0KTtyZXR1cm4gcn1mdW5jdGlvbiBnaSh0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLHIscyl7YXJndW1lbnRzLmxlbmd0aD09PTA/KHI9ImVuIixuPW51bGwsZT1udWxsKTphcmd1bWVudHMubGVuZ3RoPT09MT8ocj0iZW4iLG49ZSxlPW51bGwpOmFyZ3VtZW50cy5sZW5ndGg9PT0yJiYocj1uLG49ZSxlPW51bGwpO3ZhciBpPSJkYXRldGltZSIrKG4/Ii0iK246IiIpO3JldHVybiBidC5leHQudHlwZS5vcmRlcltpXXx8YnQudHlwZShpLHtkZXRlY3Q6ZnVuY3Rpb24obyl7cmV0dXJuIG89PT1pP2k6ITF9LG9yZGVyOntwcmU6ZnVuY3Rpb24obyl7cmV0dXJuIG8udmFsdWVPZigpfX0sY2xhc3NOYW1lOiJkdC1yaWdodCJ9KSxmdW5jdGlvbihvLHUpe2lmKG89PW51bGwpaWYocz09PSItLW5vdyIpe3ZhciBwPW5ldyBEYXRlO289bmV3IERhdGUoRGF0ZS5VVEMocC5nZXRGdWxsWWVhcigpLHAuZ2V0TW9udGgoKSxwLmdldERhdGUoKSxwLmdldEhvdXJzKCkscC5nZXRNaW51dGVzKCkscC5nZXRTZWNvbmRzKCkpKX1lbHNlIG89IiI7aWYodT09PSJ0eXBlIilyZXR1cm4gaTtpZihvPT09IiIpcmV0dXJuIHUhPT0ic29ydCI/IiI6QnIoIjAwMDAtMDEtMDEgMDA6MDA6MDAiLG51bGwscik7aWYobiE9PW51bGwmJmU9PT1uJiZ1IT09InNvcnQiJiZ1IT09InR5cGUiJiYhKG8gaW5zdGFuY2VvZiBEYXRlKSlyZXR1cm4gbzt2YXIgYj1CcihvLGUscik7aWYoYj09PW51bGwpcmV0dXJuIG87aWYodT09PSJzb3J0IilyZXR1cm4gYjt2YXIgZz1uPT09bnVsbD9ZYShiLCJ0b0RhdGUiLCJ0b0pTRGF0ZSIsIiIpW3RdKCk6WWEoYiwiZm9ybWF0IiwidG9Gb3JtYXQiLCJ0b0lTT1N0cmluZyIsbik7cmV0dXJuIHU9PT0iZGlzcGxheSI/Tm4oZyk6Z319fXZhciBDcz0iLCIsVHM9Ii4iO2lmKHdpbmRvdy5JbnRsIT09dm9pZCAwKXRyeXtmb3IoQm49bmV3IEludGwuTnVtYmVyRm9ybWF0KCkuZm9ybWF0VG9QYXJ0cygxMDAwMDAuMSksTmU9MDtOZTxCbi5sZW5ndGg7TmUrKylCbltOZV0udHlwZT09PSJncm91cCI/Q3M9Qm5bTmVdLnZhbHVlOkJuW05lXS50eXBlPT09ImRlY2ltYWwiJiYoVHM9Qm5bTmVdLnZhbHVlKX1jYXRjaHt9dmFyIEJuLE5lO2J0LmRhdGV0aW1lPWZ1bmN0aW9uKHQsZSl7dmFyIG49ImRhdGV0aW1lLSIrdDtlfHwoZT0iZW4iKSxidC5leHQudHlwZS5vcmRlcltuXXx8YnQudHlwZShuLHtkZXRlY3Q6ZnVuY3Rpb24ocil7dmFyIHM9QnIocix0LGUpO3JldHVybiByPT09IiJ8fHM/bjohMX0sb3JkZXI6e3ByZTpmdW5jdGlvbihyKXtyZXR1cm4gQnIocix0LGUpfHwwfX0sY2xhc3NOYW1lOiJkdC1yaWdodCJ9KX07YnQucmVuZGVyPXtkYXRlOmdpKCJ0b0xvY2FsZURhdGVTdHJpbmciKSxkYXRldGltZTpnaSgidG9Mb2NhbGVTdHJpbmciKSx0aW1lOmdpKCJ0b0xvY2FsZVRpbWVTdHJpbmciKSxudW1iZXI6ZnVuY3Rpb24odCxlLG4scixzKXtyZXR1cm4gdD09bnVsbCYmKHQ9Q3MpLGU9PW51bGwmJihlPVRzKSx7ZGlzcGxheTpmdW5jdGlvbihpKXtpZih0eXBlb2YgaSE9Im51bWJlciImJnR5cGVvZiBpIT0ic3RyaW5nInx8aT09PSIifHxpPT09bnVsbClyZXR1cm4gaTt2YXIgbz1pPDA/Ii0iOiIiLHU9cGFyc2VGbG9hdChpKSxwPU1hdGguYWJzKHUpO2lmKHA+PTFlMTF8fHA8MWUtNCYmcCE9PTApe3ZhciBiPXUudG9FeHBvbmVudGlhbChuKS5zcGxpdCgvZVwrPy8pO3JldHVybiBiWzBdKyIgeCAxMDxzdXA+IitiWzFdKyI8L3N1cD4ifWlmKGlzTmFOKHUpKXJldHVybiBObihpKTt1PXUudG9GaXhlZChuKSxpPU1hdGguYWJzKHUpO3ZhciBnPXBhcnNlSW50KGksMTApLG09bj9lKyhpLWcpLnRvRml4ZWQobikuc3Vic3RyaW5nKDIpOiIiO3JldHVybiBnPT09MCYmcGFyc2VGbG9hdChtKT09PTAmJihvPSIiKSxvKyhyfHwiIikrZy50b1N0cmluZygpLnJlcGxhY2UoL1xCKD89KFxkezN9KSsoPyFcZCkpL2csdCkrbSsoc3x8IiIpfX19LHRleHQ6ZnVuY3Rpb24oKXtyZXR1cm57ZGlzcGxheTpObixmaWx0ZXI6Tm59fX07dmFyIG1lPWJ0LmV4dC50eXBlO2J0LnR5cGU9ZnVuY3Rpb24odCxlLG4pe2lmKCFlKXJldHVybntjbGFzc05hbWU6bWUuY2xhc3NOYW1lW3RdLGRldGVjdDptZS5kZXRlY3QuZmluZChmdW5jdGlvbihvKXtyZXR1cm4gby5uYW1lPT09dH0pLG9yZGVyOntwcmU6bWUub3JkZXJbdCsiLXByZSJdLGFzYzptZS5vcmRlclt0KyItYXNjIl0sZGVzYzptZS5vcmRlclt0KyItZGVzYyJdfSxyZW5kZXI6bWUucmVuZGVyW3RdLHNlYXJjaDptZS5zZWFyY2hbdF19O3ZhciByPWZ1bmN0aW9uKG8sdSl7bWVbb11bdF09dX0scz1mdW5jdGlvbihvKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobywibmFtZSIse3ZhbHVlOnR9KTt2YXIgdT1tZS5kZXRlY3QuZmluZEluZGV4KGZ1bmN0aW9uKHApe3JldHVybiBwLm5hbWU9PT10fSk7dT09PS0xP21lLmRldGVjdC51bnNoaWZ0KG8pOm1lLmRldGVjdC5zcGxpY2UodSwxLG8pfSxpPWZ1bmN0aW9uKG8pe21lLm9yZGVyW3QrIi1wcmUiXT1vLnByZSxtZS5vcmRlclt0KyItYXNjIl09by5hc2MsbWUub3JkZXJbdCsiLWRlc2MiXT1vLmRlc2N9O249PT12b2lkIDAmJihuPWUsZT1udWxsKSxlPT09ImNsYXNzTmFtZSI/cigiY2xhc3NOYW1lIixuKTplPT09ImRldGVjdCI/cyhuKTplPT09Im9yZGVyIj9pKG4pOmU9PT0icmVuZGVyIj9yKCJyZW5kZXIiLG4pOmU9PT0ic2VhcmNoIj9yKCJzZWFyY2giLG4pOmV8fChuLmNsYXNzTmFtZSYmcigiY2xhc3NOYW1lIixuLmNsYXNzTmFtZSksbi5kZXRlY3QhPT12b2lkIDAmJnMobi5kZXRlY3QpLG4ub3JkZXImJmkobi5vcmRlciksbi5yZW5kZXIhPT12b2lkIDAmJnIoInJlbmRlciIsbi5yZW5kZXIpLG4uc2VhcmNoIT09dm9pZCAwJiZyKCJzZWFyY2giLG4uc2VhcmNoKSl9O2J0LnR5cGVzPWZ1bmN0aW9uKCl7cmV0dXJuIG1lLmRldGVjdC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQubmFtZX0pfTt2YXIgWmE9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD10LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSxlPWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLHQubG9jYWxlQ29tcGFyZShlLG5hdmlnYXRvci5sYW5ndWFnZXNbMF18fG5hdmlnYXRvci5sYW5ndWFnZSx7bnVtZXJpYzohMCxpZ25vcmVQdW5jdHVhdGlvbjohMH0pfTtidC50eXBlKCJzdHJpbmciLHtkZXRlY3Q6ZnVuY3Rpb24oKXtyZXR1cm4ic3RyaW5nIn0sb3JkZXI6e3ByZTpmdW5jdGlvbih0KXtyZXR1cm4gSGUodCkmJnR5cGVvZiB0IT0iYm9vbGVhbiI/IiI6dHlwZW9mIHQ9PSJzdHJpbmciP3QudG9Mb3dlckNhc2UoKTp0LnRvU3RyaW5nP3QudG9TdHJpbmcoKToiIn19LHNlYXJjaDppcighMSwhMCl9KTtidC50eXBlKCJzdHJpbmctdXRmOCIse2RldGVjdDp7YWxsT2Y6ZnVuY3Rpb24odCl7cmV0dXJuITB9LG9uZU9mOmZ1bmN0aW9uKHQpe3JldHVybiFIZSh0KSYmbmF2aWdhdG9yLmxhbmd1YWdlcyYmdHlwZW9mIHQ9PSJzdHJpbmciJiZ0Lm1hdGNoKC9bXlx4MDAtXHg3Rl0vKX19LG9yZGVyOnthc2M6WmEsZGVzYzpmdW5jdGlvbih0LGUpe3JldHVybiBaYSh0LGUpKi0xfX0sc2VhcmNoOmlyKCExLCEwKX0pO2J0LnR5cGUoImh0bWwiLHtkZXRlY3Q6e2FsbE9mOmZ1bmN0aW9uKHQpe3JldHVybiBIZSh0KXx8dHlwZW9mIHQ9PSJzdHJpbmciJiZ0LmluZGV4T2YoIjwiKSE9PS0xfSxvbmVPZjpmdW5jdGlvbih0KXtyZXR1cm4hSGUodCkmJnR5cGVvZiB0PT0ic3RyaW5nIiYmdC5pbmRleE9mKCI8IikhPT0tMX19LG9yZGVyOntwcmU6ZnVuY3Rpb24odCl7cmV0dXJuIEhlKHQpPyIiOnQucmVwbGFjZT9nbih0KS50cmltKCkudG9Mb3dlckNhc2UoKTp0KyIifX0sc2VhcmNoOmlyKCEwLCEwKX0pO2J0LnR5cGUoImRhdGUiLHtjbGFzc05hbWU6ImR0LXR5cGUtZGF0ZSIsZGV0ZWN0OnthbGxPZjpmdW5jdGlvbih0KXtpZih0JiYhKHQgaW5zdGFuY2VvZiBEYXRlKSYmIXphLnRlc3QodCkpcmV0dXJuIG51bGw7dmFyIGU9RGF0ZS5wYXJzZSh0KTtyZXR1cm4gZSE9PW51bGwmJiFpc05hTihlKXx8SGUodCl9LG9uZU9mOmZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgRGF0ZXx8dHlwZW9mIHQ9PSJzdHJpbmciJiZ6YS50ZXN0KHQpfX0sb3JkZXI6e3ByZTpmdW5jdGlvbih0KXt2YXIgZT1EYXRlLnBhcnNlKHQpO3JldHVybiBpc05hTihlKT8tMS8wOmV9fX0pO2J0LnR5cGUoImh0bWwtbnVtLWZtdCIse2NsYXNzTmFtZToiZHQtdHlwZS1udW1lcmljIixkZXRlY3Q6e2FsbE9mOmZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5vTGFuZ3VhZ2Uuc0RlY2ltYWw7cmV0dXJuIFNyKHQsbiwhMCwhMSl9LG9uZU9mOmZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5vTGFuZ3VhZ2Uuc0RlY2ltYWw7cmV0dXJuIFNyKHQsbiwhMCwhMSl9fSxvcmRlcjp7cHJlOmZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5vTGFuZ3VhZ2Uuc0RlY2ltYWw7cmV0dXJuIEhyKHQsbixTaSxEaSl9fSxzZWFyY2g6aXIoITAsITApfSk7YnQudHlwZSgiaHRtbC1udW0iLHtjbGFzc05hbWU6ImR0LXR5cGUtbnVtZXJpYyIsZGV0ZWN0OnthbGxPZjpmdW5jdGlvbih0LGUpe3ZhciBuPWUub0xhbmd1YWdlLnNEZWNpbWFsO3JldHVybiBTcih0LG4sITEsITApfSxvbmVPZjpmdW5jdGlvbih0LGUpe3ZhciBuPWUub0xhbmd1YWdlLnNEZWNpbWFsO3JldHVybiBTcih0LG4sITEsITEpfX0sb3JkZXI6e3ByZTpmdW5jdGlvbih0LGUpe3ZhciBuPWUub0xhbmd1YWdlLnNEZWNpbWFsO3JldHVybiBIcih0LG4sU2kpfX0sc2VhcmNoOmlyKCEwLCEwKX0pO2J0LnR5cGUoIm51bS1mbXQiLHtjbGFzc05hbWU6ImR0LXR5cGUtbnVtZXJpYyIsZGV0ZWN0OnthbGxPZjpmdW5jdGlvbih0LGUpe3ZhciBuPWUub0xhbmd1YWdlLnNEZWNpbWFsO3JldHVybiBRbih0LG4sITAsITApfSxvbmVPZjpmdW5jdGlvbih0LGUpe3ZhciBuPWUub0xhbmd1YWdlLnNEZWNpbWFsO3JldHVybiBRbih0LG4sITAsITEpfX0sb3JkZXI6e3ByZTpmdW5jdGlvbih0LGUpe3ZhciBuPWUub0xhbmd1YWdlLnNEZWNpbWFsO3JldHVybiBIcih0LG4sRGkpfX19KTtidC50eXBlKCJudW0iLHtjbGFzc05hbWU6ImR0LXR5cGUtbnVtZXJpYyIsZGV0ZWN0OnthbGxPZjpmdW5jdGlvbih0LGUpe3ZhciBuPWUub0xhbmd1YWdlLnNEZWNpbWFsO3JldHVybiBRbih0LG4sITEsITApfSxvbmVPZjpmdW5jdGlvbih0LGUpe3ZhciBuPWUub0xhbmd1YWdlLnNEZWNpbWFsO3JldHVybiBRbih0LG4sITEsITEpfX0sb3JkZXI6e3ByZTpmdW5jdGlvbih0LGUpe3ZhciBuPWUub0xhbmd1YWdlLnNEZWNpbWFsO3JldHVybiBIcih0LG4pfX19KTt2YXIgSHI9ZnVuY3Rpb24odCxlLG4scil7aWYodCE9PTAmJighdHx8dD09PSItIikpcmV0dXJuLTEvMDt2YXIgcz10eXBlb2YgdDtyZXR1cm4gcz09PSJudW1iZXIifHxzPT09ImJpZ2ludCI/dDooZSYmKHQ9UWEodCxlKSksdC5yZXBsYWNlJiYobiYmKHQ9dC5yZXBsYWNlKG4sIiIpKSxyJiYodD10LnJlcGxhY2UociwiIikpKSx0KjEpfTtILmV4dGVuZCghMCxidC5leHQucmVuZGVyZXIse2Zvb3Rlcjp7XzpmdW5jdGlvbih0LGUsbil7ZS5hZGRDbGFzcyhuLnRmb290LmNlbGwpfX0saGVhZGVyOntfOmZ1bmN0aW9uKHQsZSxuKXtlLmFkZENsYXNzKG4udGhlYWQuY2VsbCksdC5vRmVhdHVyZXMuYlNvcnR8fGUuYWRkQ2xhc3Mobi5vcmRlci5ub25lKTt2YXIgcj10LmJTb3J0Q2VsbHNUb3Ascz1lLmNsb3Nlc3QoInRoZWFkIikuZmluZCgidHIiKSxpPWUucGFyZW50KCkuaW5kZXgoKTtlLmF0dHIoImRhdGEtZHQtb3JkZXIiKT09PSJkaXNhYmxlInx8ZS5wYXJlbnQoKS5hdHRyKCJkYXRhLWR0LW9yZGVyIik9PT0iZGlzYWJsZSJ8fHI9PT0hMCYmaSE9PTB8fHI9PT0hMSYmaSE9PXMubGVuZ3RoLTF8fEgodC5uVGFibGUpLm9uKCJvcmRlci5kdC5EVCBjb2x1bW4tdmlzaWJpbGl0eS5kdC5EVCIsZnVuY3Rpb24obyx1KXtpZih0PT09dSl7dmFyIHA9dS5zb3J0RGV0YWlscztpZihwKXt2YXIgYixnPW4ub3JkZXIsbT11LmFwaS5jb2x1bW5zKGUpLEM9dC5hb0NvbHVtbnNbbS5mbGF0dGVuKClbMF1dLHk9bS5vcmRlcmFibGUoKS5pbmNsdWRlcyghMCksVD0iIixQPW0uaW5kZXhlcygpLGM9bS5vcmRlcmFibGUoITApLmZsYXR0ZW4oKSxsPUNlKHAsImNvbCIpO2UucmVtb3ZlQ2xhc3MoZy5pc0FzYysiICIrZy5pc0Rlc2MpLnRvZ2dsZUNsYXNzKGcubm9uZSwheSkudG9nZ2xlQ2xhc3MoZy5jYW5Bc2MseSYmYy5pbmNsdWRlcygiYXNjIikpLnRvZ2dsZUNsYXNzKGcuY2FuRGVzYyx5JiZjLmluY2x1ZGVzKCJkZXNjIikpO3ZhciBoPSEwO2ZvcihiPTA7YjxQLmxlbmd0aDtiKyspbC5pbmNsdWRlcyhQW2JdKXx8KGg9ITEpO2lmKGgpe3ZhciBfPW0ub3JkZXIoKTtlLmFkZENsYXNzKF8uaW5jbHVkZXMoImFzYyIpP2cuaXNBc2M6IiIrXy5pbmNsdWRlcygiZGVzYyIpP2cuaXNEZXNjOiIiKX12YXIgRj0tMTtmb3IoYj0wO2I8bC5sZW5ndGg7YisrKWlmKHQuYW9Db2x1bW5zW2xbYl1dLmJWaXNpYmxlKXtGPWxbYl07YnJlYWt9aWYoUFswXT09Ril7dmFyIE89cFswXSxmPUMuYXNTb3J0aW5nO2UuYXR0cigiYXJpYS1zb3J0IixPLmRpcj09PSJhc2MiPyJhc2NlbmRpbmciOiJkZXNjZW5kaW5nIiksVD1mW08uaW5kZXgrMV0/IlJldmVyc2UiOiJSZW1vdmUifWVsc2UgZS5yZW1vdmVBdHRyKCJhcmlhLXNvcnQiKTtlLmF0dHIoImFyaWEtbGFiZWwiLHk/Qy5hcmlhVGl0bGUrdS5hcGkuaTE4bigib0FyaWEub3JkZXJhYmxlIitUKTpDLmFyaWFUaXRsZSkseSYmKGUuZmluZCgiLmR0LWNvbHVtbi10aXRsZSIpLmF0dHIoInJvbGUiLCJidXR0b24iKSxlLmF0dHIoInRhYmluZGV4IiwwKSl9fX0pfX0sbGF5b3V0OntfOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10Lm9DbGFzc2VzLmxheW91dCxzPUgoIjxkaXYvPiIpLmF0dHIoImlkIixuLmlkfHxudWxsKS5hZGRDbGFzcyhuLmNsYXNzTmFtZXx8ci5yb3cpLmFwcGVuZFRvKGUpO0guZWFjaChuLGZ1bmN0aW9uKGksbyl7aWYoIShpPT09ImlkInx8aT09PSJjbGFzc05hbWUiKSl7dmFyIHU9IiI7by50YWJsZSYmKHMuYWRkQ2xhc3Moci50YWJsZVJvdyksdSs9ci50YWJsZUNlbGwrIiAiKSxpPT09InN0YXJ0Ij91Kz1yLnN0YXJ0Omk9PT0iZW5kIj91Kz1yLmVuZDp1Kz1yLmZ1bGwsSCgiPGRpdi8+IikuYXR0cih7aWQ6by5pZHx8bnVsbCxjbGFzczpvLmNsYXNzTmFtZT9vLmNsYXNzTmFtZTpyLmNlbGwrIiAiK3V9KS5hcHBlbmQoby5jb250ZW50cykuYXBwZW5kVG8ocyl9fSl9fX0pO2J0LmZlYXR1cmU9e307YnQuZmVhdHVyZS5yZWdpc3Rlcj1mdW5jdGlvbih0LGUsbil7YnQuZXh0LmZlYXR1cmVzW3RdPWUsbiYmbGUuZmVhdHVyZS5wdXNoKHtjRmVhdHVyZTpuLGZuSW5pdDplfSl9O2Z1bmN0aW9uIENyKHQsZSxuKXtuJiYodFtlXT1uKX1idC5mZWF0dXJlLnJlZ2lzdGVyKCJkaXYiLGZ1bmN0aW9uKHQsZSl7dmFyIG49SCgiPGRpdj4iKVswXTtyZXR1cm4gZSYmKENyKG4sImNsYXNzTmFtZSIsZS5jbGFzc05hbWUpLENyKG4sImlkIixlLmlkKSxDcihuLCJpbm5lckhUTUwiLGUuaHRtbCksQ3IobiwidGV4dENvbnRlbnQiLGUudGV4dCkpLG59KTtidC5mZWF0dXJlLnJlZ2lzdGVyKCJpbmZvIixmdW5jdGlvbih0LGUpe2lmKCF0Lm9GZWF0dXJlcy5iSW5mbylyZXR1cm4gbnVsbDt2YXIgbj10Lm9MYW5ndWFnZSxyPXQuc1RhYmxlSWQscz1IKCI8ZGl2Lz4iLHtjbGFzczp0Lm9DbGFzc2VzLmluZm8uY29udGFpbmVyfSk7cmV0dXJuIGU9SC5leHRlbmQoe2NhbGxiYWNrOm4uZm5JbmZvQ2FsbGJhY2ssZW1wdHk6bi5zSW5mb0VtcHR5LHBvc3RmaXg6bi5zSW5mb1Bvc3RGaXgsc2VhcmNoOm4uc0luZm9GaWx0ZXJlZCx0ZXh0Om4uc0luZm99LGUpLHQuYW9EcmF3Q2FsbGJhY2sucHVzaChmdW5jdGlvbihpKXtNbChpLGUscyl9KSx0Ll9pbmZvRWx8fChzLmF0dHIoeyJhcmlhLWxpdmUiOiJwb2xpdGUiLGlkOnIrIl9pbmZvIixyb2xlOiJzdGF0dXMifSksSCh0Lm5UYWJsZSkuYXR0cigiYXJpYS1kZXNjcmliZWRieSIscisiX2luZm8iKSx0Ll9pbmZvRWw9cyksc30sImkiKTtmdW5jdGlvbiBNbCh0LGUsbil7dmFyIHI9dC5faURpc3BsYXlTdGFydCsxLHM9dC5mbkRpc3BsYXlFbmQoKSxpPXQuZm5SZWNvcmRzVG90YWwoKSxvPXQuZm5SZWNvcmRzRGlzcGxheSgpLHU9bz9lLnRleHQ6ZS5lbXB0eTtvIT09aSYmKHUrPSIgIitlLnNlYXJjaCksdSs9ZS5wb3N0Zml4LHU9amkodCx1KSxlLmNhbGxiYWNrJiYodT1lLmNhbGxiYWNrLmNhbGwodC5vSW5zdGFuY2UsdCxyLHMsaSxvLHUpKSxuLmh0bWwodSksWnQodCxudWxsLCJpbmZvIixbdCxuWzBdLHVdKX12YXIgeWk9MDtidC5mZWF0dXJlLnJlZ2lzdGVyKCJzZWFyY2giLGZ1bmN0aW9uKHQsZSl7aWYoIXQub0ZlYXR1cmVzLmJGaWx0ZXIpcmV0dXJuIG51bGw7dmFyIG49dC5vQ2xhc3Nlcy5zZWFyY2gscj10LnNUYWJsZUlkLHM9dC5vTGFuZ3VhZ2UsaT10Lm9QcmV2aW91c1NlYXJjaCxvPSc8aW5wdXQgdHlwZT0ic2VhcmNoIiBjbGFzcz0iJytuLmlucHV0KyciLz4nO2U9SC5leHRlbmQoe3BsYWNlaG9sZGVyOnMuc1NlYXJjaFBsYWNlaG9sZGVyLHByb2Nlc3Npbmc6ITEsdGV4dDpzLnNTZWFyY2h9LGUpLGUudGV4dC5pbmRleE9mKCJfSU5QVVRfIik9PT0tMSYmKGUudGV4dCs9Il9JTlBVVF8iKSxlLnRleHQ9amkodCxlLnRleHQpO3ZhciB1PWUudGV4dC5tYXRjaCgvX0lOUFVUXyQvKSxwPWUudGV4dC5tYXRjaCgvXl9JTlBVVF8vKSxiPWUudGV4dC5yZXBsYWNlKC9fSU5QVVRfLywiIiksZz0iPGxhYmVsPiIrZS50ZXh0KyI8L2xhYmVsPiI7cD9nPSJfSU5QVVRfPGxhYmVsPiIrYisiPC9sYWJlbD4iOnUmJihnPSI8bGFiZWw+IitiKyI8L2xhYmVsPl9JTlBVVF8iKTt2YXIgbT1IKCI8ZGl2PiIpLmFkZENsYXNzKG4uY29udGFpbmVyKS5hcHBlbmQoZy5yZXBsYWNlKC9fSU5QVVRfLyxvKSk7bS5maW5kKCJsYWJlbCIpLmF0dHIoImZvciIsImR0LXNlYXJjaC0iK3lpKSxtLmZpbmQoImlucHV0IikuYXR0cigiaWQiLCJkdC1zZWFyY2gtIit5aSkseWkrKzt2YXIgQz1mdW5jdGlvbihQKXt2YXIgYz10aGlzLnZhbHVlO2kucmV0dXJuJiZQLmtleSE9PSJFbnRlciJ8fGMhPWkuc2VhcmNoJiZ1cyh0LGUucHJvY2Vzc2luZyxmdW5jdGlvbigpe2kuc2VhcmNoPWMsdHIodCxpKSx0Ll9pRGlzcGxheVN0YXJ0PTAsTG4odCl9KX0seT10LnNlYXJjaERlbGF5IT09bnVsbD90LnNlYXJjaERlbGF5OjAsVD1IKCJpbnB1dCIsbSkudmFsKGkuc2VhcmNoKS5hdHRyKCJwbGFjZWhvbGRlciIsZS5wbGFjZWhvbGRlcikub24oImtleXVwLkRUIHNlYXJjaC5EVCBpbnB1dC5EVCBwYXN0ZS5EVCBjdXQuRFQiLHk/YnQudXRpbC5kZWJvdW5jZShDLHkpOkMpLm9uKCJtb3VzZXVwLkRUIixmdW5jdGlvbihQKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Qy5jYWxsKFRbMF0sUCl9LDEwKX0pLm9uKCJrZXlwcmVzcy5EVCIsZnVuY3Rpb24oUCl7aWYoUC5rZXlDb2RlPT0xMylyZXR1cm4hMX0pLmF0dHIoImFyaWEtY29udHJvbHMiLHIpO3JldHVybiBIKHQublRhYmxlKS5vbigic2VhcmNoLmR0LkRUIixmdW5jdGlvbihQLGMpe3Q9PT1jJiZUWzBdIT09ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCYmVC52YWwodHlwZW9mIGkuc2VhcmNoIT0iZnVuY3Rpb24iP2kuc2VhcmNoOiIiKX0pLG19LCJmIik7YnQuZmVhdHVyZS5yZWdpc3RlcigicGFnaW5nIixmdW5jdGlvbih0LGUpe2lmKCF0Lm9GZWF0dXJlcy5iUGFnaW5hdGUpcmV0dXJuIG51bGw7ZT1ILmV4dGVuZCh7YnV0dG9uczpidC5leHQucGFnZXIubnVtYmVyc19sZW5ndGgsdHlwZTp0LnNQYWdpbmF0aW9uVHlwZSxib3VuZGFyeU51bWJlcnM6ITAsZmlyc3RMYXN0OiEwLHByZXZpb3VzTmV4dDohMCxudW1iZXJzOiEwfSxlKTt2YXIgbj1IKCI8ZGl2Lz4iKS5hZGRDbGFzcyh0Lm9DbGFzc2VzLnBhZ2luZy5jb250YWluZXIrKGUudHlwZT8iIHBhZ2luZ18iK2UudHlwZToiIikpLmFwcGVuZChIKCI8bmF2PiIpLmF0dHIoImFyaWEtbGFiZWwiLCJwYWdpbmF0aW9uIikuYWRkQ2xhc3ModC5vQ2xhc3Nlcy5wYWdpbmcubmF2KSkscj1mdW5jdGlvbigpe2tzKHQsbi5jaGlsZHJlbigpLGUpfTtyZXR1cm4gdC5hb0RyYXdDYWxsYmFjay5wdXNoKHIpLEgodC5uVGFibGUpLm9uKCJjb2x1bW4tc2l6aW5nLmR0LkRUIixyKSxufSwicCIpO2Z1bmN0aW9uIFZsKHQpe3ZhciBlPVtdO3JldHVybiB0Lm51bWJlcnMmJmUucHVzaCgibnVtYmVycyIpLHQucHJldmlvdXNOZXh0JiYoZS51bnNoaWZ0KCJwcmV2aW91cyIpLGUucHVzaCgibmV4dCIpKSx0LmZpcnN0TGFzdCYmKGUudW5zaGlmdCgiZmlyc3QiKSxlLnB1c2goImxhc3QiKSksZX1mdW5jdGlvbiBrcyh0LGUsbil7aWYodC5fYkluaXRDb21wbGV0ZSl7Zm9yKHZhciByPW4udHlwZT9idC5leHQucGFnZXJbbi50eXBlXTpWbCxzPXQub0xhbmd1YWdlLm9BcmlhLnBhZ2luYXRlfHx7fSxpPXQuX2lEaXNwbGF5U3RhcnQsbz10Ll9pRGlzcGxheUxlbmd0aCx1PXQuZm5SZWNvcmRzRGlzcGxheSgpLHA9bz09PS0xLGI9cD8wOk1hdGguY2VpbChpL28pLGc9cD8xOk1hdGguY2VpbCh1L28pLG09cihuKS5tYXAoZnVuY3Rpb24oRil7cmV0dXJuIEY9PT0ibnVtYmVycyI/U3MoYixnLG4uYnV0dG9ucyxuLmJvdW5kYXJ5TnVtYmVycyk6Rn0pLmZsYXQoKSxDPVtdLHk9MDt5PG0ubGVuZ3RoO3krKyl7dmFyIFQ9bVt5XSxQPUhsKHQsVCxiLGcpLGM9RnIodCwicGFnaW5nQnV0dG9uIikodCxULFAuZGlzcGxheSxQLmFjdGl2ZSxQLmRpc2FibGVkKSxsPXR5cGVvZiBUPT0ic3RyaW5nIj9zW1RdOnMubnVtYmVyP3MubnVtYmVyKyhUKzEpOm51bGw7SChjLmNsaWNrZXIpLmF0dHIoeyJhcmlhLWNvbnRyb2xzIjp0LnNUYWJsZUlkLCJhcmlhLWRpc2FibGVkIjpQLmRpc2FibGVkPyJ0cnVlIjpudWxsLCJhcmlhLWN1cnJlbnQiOlAuYWN0aXZlPyJwYWdlIjpudWxsLCJhcmlhLWxhYmVsIjpsLCJkYXRhLWR0LWlkeCI6VCx0YWJJbmRleDpQLmRpc2FibGVkPy0xOnQuaVRhYkluZGV4P3QuaVRhYkluZGV4Om51bGx9KSx0eXBlb2YgVCE9Im51bWJlciImJkgoYy5jbGlja2VyKS5hZGRDbGFzcyhUKSxtcyhjLmNsaWNrZXIse2FjdGlvbjpUfSxmdW5jdGlvbihGKXtGLnByZXZlbnREZWZhdWx0KCksTGkodCxGLmRhdGEuYWN0aW9uLCEwKX0pLEMucHVzaChjLmRpc3BsYXkpfXZhciBoPUZyKHQsInBhZ2luZ0NvbnRhaW5lciIpKHQsQyksXz1lLmZpbmQoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkuZGF0YSgiZHQtaWR4Iik7ZS5lbXB0eSgpLmFwcGVuZChoKSxfIT09dm9pZCAwJiZlLmZpbmQoIltkYXRhLWR0LWlkeD0iK18rIl0iKS50cmlnZ2VyKCJmb2N1cyIpLEMubGVuZ3RoJiZuLmJ1dHRvbnM+MSYmSChlKS5oZWlnaHQoKT49SChDWzBdKS5vdXRlckhlaWdodCgpKjItMTAmJmtzKHQsZSxILmV4dGVuZCh7fSxuLHtidXR0b25zOm4uYnV0dG9ucy0yfSkpfX1mdW5jdGlvbiBIbCh0LGUsbixyKXt2YXIgcz10Lm9MYW5ndWFnZS5vUGFnaW5hdGUsaT17ZGlzcGxheToiIixhY3RpdmU6ITEsZGlzYWJsZWQ6ITF9O3N3aXRjaChlKXtjYXNlImVsbGlwc2lzIjppLmRpc3BsYXk9IiYjeDIwMjY7IixpLmRpc2FibGVkPSEwO2JyZWFrO2Nhc2UiZmlyc3QiOmkuZGlzcGxheT1zLnNGaXJzdCxuPT09MCYmKGkuZGlzYWJsZWQ9ITApO2JyZWFrO2Nhc2UicHJldmlvdXMiOmkuZGlzcGxheT1zLnNQcmV2aW91cyxuPT09MCYmKGkuZGlzYWJsZWQ9ITApO2JyZWFrO2Nhc2UibmV4dCI6aS5kaXNwbGF5PXMuc05leHQsKHI9PT0wfHxuPT09ci0xKSYmKGkuZGlzYWJsZWQ9ITApO2JyZWFrO2Nhc2UibGFzdCI6aS5kaXNwbGF5PXMuc0xhc3QsKHI9PT0wfHxuPT09ci0xKSYmKGkuZGlzYWJsZWQ9ITApO2JyZWFrO2RlZmF1bHQ6dHlwZW9mIGU9PSJudW1iZXIiJiYoaS5kaXNwbGF5PXQuZm5Gb3JtYXROdW1iZXIoZSsxKSxuPT09ZSYmKGkuYWN0aXZlPSEwKSk7YnJlYWt9cmV0dXJuIGl9ZnVuY3Rpb24gU3ModCxlLG4scil7dmFyIHM9W10saT1NYXRoLmZsb29yKG4vMiksbz1yPzI6MSx1PXI/MTowO3JldHVybiBlPD1uP3M9YW4oMCxlKTpuPT09MT9zPVt0XTpuPT09Mz90PD0xP3M9WzAsMSwiZWxsaXBzaXMiXTp0Pj1lLTI/KHM9YW4oZS0yLGUpLHMudW5zaGlmdCgiZWxsaXBzaXMiKSk6cz1bImVsbGlwc2lzIix0LCJlbGxpcHNpcyJdOnQ8PWk/KHM9YW4oMCxuLW8pLHMucHVzaCgiZWxsaXBzaXMiKSxyJiZzLnB1c2goZS0xKSk6dD49ZS0xLWk/KHM9YW4oZS0obi1vKSxlKSxzLnVuc2hpZnQoImVsbGlwc2lzIiksciYmcy51bnNoaWZ0KDApKToocz1hbih0LWkrbyx0K2ktdSkscy5wdXNoKCJlbGxpcHNpcyIpLHMudW5zaGlmdCgiZWxsaXBzaXMiKSxyJiYocy5wdXNoKGUtMSkscy51bnNoaWZ0KDApKSksc312YXIgd2k9MDtidC5mZWF0dXJlLnJlZ2lzdGVyKCJwYWdlTGVuZ3RoIixmdW5jdGlvbih0LGUpe3ZhciBuPXQub0ZlYXR1cmVzO2lmKCFuLmJQYWdpbmF0ZXx8IW4uYkxlbmd0aENoYW5nZSlyZXR1cm4gbnVsbDtlPUguZXh0ZW5kKHttZW51OnQuYUxlbmd0aE1lbnUsdGV4dDp0Lm9MYW5ndWFnZS5zTGVuZ3RoTWVudX0sZSk7dmFyIHI9dC5vQ2xhc3Nlcy5sZW5ndGgscz10LnNUYWJsZUlkLGk9ZS5tZW51LG89W10sdT1bXSxwO2lmKEFycmF5LmlzQXJyYXkoaVswXSkpbz1pWzBdLHU9aVsxXTtlbHNlIGZvcihwPTA7cDxpLmxlbmd0aDtwKyspSC5pc1BsYWluT2JqZWN0KGlbcF0pPyhvLnB1c2goaVtwXS52YWx1ZSksdS5wdXNoKGlbcF0ubGFiZWwpKTooby5wdXNoKGlbcF0pLHUucHVzaChpW3BdKSk7dmFyIGI9ZS50ZXh0Lm1hdGNoKC9fTUVOVV8kLyksZz1lLnRleHQubWF0Y2goL15fTUVOVV8vKSxtPWUudGV4dC5yZXBsYWNlKC9fTUVOVV8vLCIiKSxDPSI8bGFiZWw+IitlLnRleHQrIjwvbGFiZWw+IjtnP0M9Il9NRU5VXzxsYWJlbD4iK20rIjwvbGFiZWw+IjpiJiYoQz0iPGxhYmVsPiIrbSsiPC9sYWJlbD5fTUVOVV8iKTt2YXIgeT0idG1wLSIrICtuZXcgRGF0ZSxUPUgoIjxkaXYvPiIpLmFkZENsYXNzKHIuY29udGFpbmVyKS5hcHBlbmQoQy5yZXBsYWNlKCJfTUVOVV8iLCc8c3BhbiBpZD0iJyt5KyciPjwvc3Bhbj4nKSksUD1bXTtULmZpbmQoImxhYmVsIilbMF0uY2hpbGROb2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKGgpe2gubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSYmUC5wdXNoKHtlbDpoLHRleHQ6aC50ZXh0Q29udGVudH0pfSk7dmFyIGM9ZnVuY3Rpb24oaCl7UC5mb3JFYWNoKGZ1bmN0aW9uKF8pe18uZWwudGV4dENvbnRlbnQ9amkodCxfLnRleHQsaCl9KX0sbD1IKCI8c2VsZWN0Lz4iLHtuYW1lOnMrIl9sZW5ndGgiLCJhcmlhLWNvbnRyb2xzIjpzLGNsYXNzOnIuc2VsZWN0fSk7Zm9yKHA9MDtwPG8ubGVuZ3RoO3ArKylsWzBdW3BdPW5ldyBPcHRpb24odHlwZW9mIHVbcF09PSJudW1iZXIiP3QuZm5Gb3JtYXROdW1iZXIodVtwXSk6dVtwXSxvW3BdKTtyZXR1cm4gVC5maW5kKCJsYWJlbCIpLmF0dHIoImZvciIsImR0LWxlbmd0aC0iK3dpKSxsLmF0dHIoImlkIiwiZHQtbGVuZ3RoLSIrd2kpLHdpKyssVC5maW5kKCIjIit5KS5yZXBsYWNlV2l0aChsKSxIKCJzZWxlY3QiLFQpLnZhbCh0Ll9pRGlzcGxheUxlbmd0aCkub24oImNoYW5nZS5EVCIsZnVuY3Rpb24oKXtkcyh0LEgodGhpcykudmFsKCkpLExuKHQpfSksSCh0Lm5UYWJsZSkub24oImxlbmd0aC5kdC5EVCIsZnVuY3Rpb24oaCxfLEYpe3Q9PT1fJiYoSCgic2VsZWN0IixUKS52YWwoRiksYyhGKSl9KSxjKHQuX2lEaXNwbGF5TGVuZ3RoKSxUfSwibCIpO0guZm4uZGF0YVRhYmxlPWJ0O2J0LiQ9SDtILmZuLmRhdGFUYWJsZVNldHRpbmdzPWJ0LnNldHRpbmdzO0guZm4uZGF0YVRhYmxlRXh0PWJ0LmV4dDtILmZuLkRhdGFUYWJsZT1mdW5jdGlvbih0KXtyZXR1cm4gSCh0aGlzKS5kYXRhVGFibGUodCkuYXBpKCl9O0guZWFjaChidCxmdW5jdGlvbih0LGUpe0guZm4uRGF0YVRhYmxlW3RdPWV9KTt2YXIgYXQ9YnQ7dmFyIExlPWF0O3ZhciAkbD1pZShhZSgpLDEpO3ZhciBQcz1pZShhZSgpLDEpO3ZhciBodD1Qcy5kZWZhdWx0LFdsPTAsR2w9MCxTZT1hdC5leHQuYnV0dG9ucyxxaT1udWxsO2Z1bmN0aW9uIFhpKHQsZSxuKXtodC5mbi5hbmltYXRlP3Quc3RvcCgpLmZhZGVJbihlLG4pOih0LmNzcygiZGlzcGxheSIsImJsb2NrIiksbiYmbi5jYWxsKHQpKX1mdW5jdGlvbiBZaSh0LGUsbil7aHQuZm4uYW5pbWF0ZT90LnN0b3AoKS5mYWRlT3V0KGUsbik6KHQuY3NzKCJkaXNwbGF5Iiwibm9uZSIpLG4mJm4uY2FsbCh0KSl9dmFyIHRlPWZ1bmN0aW9uKHQsZSl7aWYoIWF0LnZlcnNpb25DaGVjaygiMiIpKXRocm93Ildhcm5pbmc6IEJ1dHRvbnMgcmVxdWlyZXMgRGF0YVRhYmxlcyAyIG9yIG5ld2VyIjtpZighKHRoaXMgaW5zdGFuY2VvZiB0ZSkpcmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBuZXcgdGUobix0KS5jb250YWluZXIoKX07dHlwZW9mIGU+InUiJiYoZT17fSksZT09PSEwJiYoZT17fSksQXJyYXkuaXNBcnJheShlKSYmKGU9e2J1dHRvbnM6ZX0pLHRoaXMuYz1odC5leHRlbmQoITAse30sdGUuZGVmYXVsdHMsZSksZS5idXR0b25zJiYodGhpcy5jLmJ1dHRvbnM9ZS5idXR0b25zKSx0aGlzLnM9e2R0Om5ldyBhdC5BcGkodCksYnV0dG9uczpbXSxsaXN0ZW5LZXlzOiIiLG5hbWVzcGFjZToiZHRiIitXbCsrfSx0aGlzLmRvbT17Y29udGFpbmVyOmh0KCI8Iit0aGlzLmMuZG9tLmNvbnRhaW5lci50YWcrIi8+IikuYWRkQ2xhc3ModGhpcy5jLmRvbS5jb250YWluZXIuY2xhc3NOYW1lKX0sdGhpcy5fY29uc3RydWN0b3IoKX07aHQuZXh0ZW5kKHRlLnByb3RvdHlwZSx7YWN0aW9uOmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fbm9kZVRvQnV0dG9uKHQpO3JldHVybiBlPT09dm9pZCAwP24uY29uZi5hY3Rpb246KG4uY29uZi5hY3Rpb249ZSx0aGlzKX0sYWN0aXZlOmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fbm9kZVRvQnV0dG9uKHQpLHI9dGhpcy5jLmRvbS5idXR0b24uYWN0aXZlLHM9aHQobi5ub2RlKTtyZXR1cm4gbi5pbkNvbGxlY3Rpb24mJnRoaXMuYy5kb20uY29sbGVjdGlvbi5idXR0b24mJnRoaXMuYy5kb20uY29sbGVjdGlvbi5idXR0b24uYWN0aXZlIT09dm9pZCAwJiYocj10aGlzLmMuZG9tLmNvbGxlY3Rpb24uYnV0dG9uLmFjdGl2ZSksZT09PXZvaWQgMD9zLmhhc0NsYXNzKHIpOihzLnRvZ2dsZUNsYXNzKHIsZT09PXZvaWQgMD8hMDplKSx0aGlzKX0sYWRkOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzLnMuYnV0dG9ucztpZih0eXBlb2YgZT09InN0cmluZyIpe2Zvcih2YXIgcz1lLnNwbGl0KCItIiksaT10aGlzLnMsbz0wLHU9cy5sZW5ndGgtMTtvPHU7bysrKWk9aS5idXR0b25zW3Nbb10qMV07cj1pLmJ1dHRvbnMsZT1zW3MubGVuZ3RoLTFdKjF9cmV0dXJuIHRoaXMuX2V4cGFuZEJ1dHRvbihyLHQsdCE9PXZvaWQgMD90LnNwbGl0OnZvaWQgMCwodD09PXZvaWQgMHx8dC5zcGxpdD09PXZvaWQgMHx8dC5zcGxpdC5sZW5ndGg9PT0wKSYmaSE9PXZvaWQgMCwhMSxlKSwobj09PXZvaWQgMHx8bj09PSEwKSYmdGhpcy5fZHJhdygpLHRoaXN9LGNvbGxlY3Rpb25SZWJ1aWxkOmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fbm9kZVRvQnV0dG9uKHQpO2lmKGUhPT12b2lkIDApe3ZhciByO2ZvcihyPW4uYnV0dG9ucy5sZW5ndGgtMTtyPj0wO3ItLSl0aGlzLnJlbW92ZShuLmJ1dHRvbnNbcl0ubm9kZSk7Zm9yKG4uY29uZi5wcmVmaXhCdXR0b25zJiZlLnVuc2hpZnQuYXBwbHkoZSxuLmNvbmYucHJlZml4QnV0dG9ucyksbi5jb25mLnBvc3RmaXhCdXR0b25zJiZlLnB1c2guYXBwbHkoZSxuLmNvbmYucG9zdGZpeEJ1dHRvbnMpLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIHM9ZVtyXTt0aGlzLl9leHBhbmRCdXR0b24obi5idXR0b25zLHMscyE9PXZvaWQgMCYmcy5jb25maWchPT12b2lkIDAmJnMuY29uZmlnLnNwbGl0IT09dm9pZCAwLCEwLHMucGFyZW50Q29uZiE9PXZvaWQgMCYmcy5wYXJlbnRDb25mLnNwbGl0IT09dm9pZCAwLG51bGwscy5wYXJlbnRDb25mKX19dGhpcy5fZHJhdyhuLmNvbGxlY3Rpb24sbi5idXR0b25zKX0sY29udGFpbmVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tLmNvbnRhaW5lcn0sZGlzYWJsZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9ub2RlVG9CdXR0b24odCk7cmV0dXJuIGh0KGUubm9kZSkuYWRkQ2xhc3ModGhpcy5jLmRvbS5idXR0b24uZGlzYWJsZWQpLnByb3AoImRpc2FibGVkIiwhMCksdGhpc30sZGVzdHJveTpmdW5jdGlvbigpe2h0KCJib2R5Iikub2ZmKCJrZXl1cC4iK3RoaXMucy5uYW1lc3BhY2UpO3ZhciB0PXRoaXMucy5idXR0b25zLnNsaWNlKCksZSxuO2ZvcihlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXRoaXMucmVtb3ZlKHRbZV0ubm9kZSk7dGhpcy5kb20uY29udGFpbmVyLnJlbW92ZSgpO3ZhciByPXRoaXMucy5kdC5zZXR0aW5ncygpWzBdO2ZvcihlPTAsbj1yLmxlbmd0aDtlPG47ZSsrKWlmKHIuaW5zdD09PXRoaXMpe3Iuc3BsaWNlKGUsMSk7YnJlYWt9cmV0dXJuIHRoaXN9LGVuYWJsZTpmdW5jdGlvbih0LGUpe2lmKGU9PT0hMSlyZXR1cm4gdGhpcy5kaXNhYmxlKHQpO3ZhciBuPXRoaXMuX25vZGVUb0J1dHRvbih0KTtyZXR1cm4gaHQobi5ub2RlKS5yZW1vdmVDbGFzcyh0aGlzLmMuZG9tLmJ1dHRvbi5kaXNhYmxlZCkucHJvcCgiZGlzYWJsZWQiLCExKSx0aGlzfSxpbmRleDpmdW5jdGlvbih0LGUsbil7ZXx8KGU9IiIsbj10aGlzLnMuYnV0dG9ucyk7Zm9yKHZhciByPTAscz1uLmxlbmd0aDtyPHM7cisrKXt2YXIgaT1uW3JdLmJ1dHRvbnM7aWYobltyXS5ub2RlPT09dClyZXR1cm4gZStyO2lmKGkmJmkubGVuZ3RoKXt2YXIgbz10aGlzLmluZGV4KHQscisiLSIsaSk7aWYobyE9PW51bGwpcmV0dXJuIG99fXJldHVybiBudWxsfSxuYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYy5uYW1lfSxub2RlOmZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiB0aGlzLmRvbS5jb250YWluZXI7dmFyIGU9dGhpcy5fbm9kZVRvQnV0dG9uKHQpO3JldHVybiBodChlLm5vZGUpfSxwcm9jZXNzaW5nOmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5zLmR0LHI9dGhpcy5fbm9kZVRvQnV0dG9uKHQpO3JldHVybiBlPT09dm9pZCAwP2h0KHIubm9kZSkuaGFzQ2xhc3MoInByb2Nlc3NpbmciKTooaHQoci5ub2RlKS50b2dnbGVDbGFzcygicHJvY2Vzc2luZyIsZSksaHQobi50YWJsZSgpLm5vZGUoKSkudHJpZ2dlckhhbmRsZXIoImJ1dHRvbnMtcHJvY2Vzc2luZy5kdCIsW2Usbi5idXR0b24odCksbixodCh0KSxyLmNvbmZdKSx0aGlzKX0scmVtb3ZlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX25vZGVUb0J1dHRvbih0KSxuPXRoaXMuX25vZGVUb0hvc3QodCkscj10aGlzLnMuZHQ7aWYoZS5idXR0b25zLmxlbmd0aClmb3IodmFyIHM9ZS5idXR0b25zLmxlbmd0aC0xO3M+PTA7cy0tKXRoaXMucmVtb3ZlKGUuYnV0dG9uc1tzXS5ub2RlKTtlLmNvbmYuZGVzdHJveWluZz0hMCxlLmNvbmYuZGVzdHJveSYmZS5jb25mLmRlc3Ryb3kuY2FsbChyLmJ1dHRvbih0KSxyLGh0KHQpLGUuY29uZiksdGhpcy5fcmVtb3ZlS2V5KGUuY29uZiksaHQoZS5ub2RlKS5yZW1vdmUoKTt2YXIgaT1odC5pbkFycmF5KGUsbik7cmV0dXJuIG4uc3BsaWNlKGksMSksdGhpc30sdGV4dDpmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX25vZGVUb0J1dHRvbih0KSxyPW4udGV4dE5vZGUscz10aGlzLnMuZHQsaT1odChuLm5vZGUpLG89ZnVuY3Rpb24odSl7cmV0dXJuIHR5cGVvZiB1PT0iZnVuY3Rpb24iP3UocyxpLG4uY29uZik6dX07cmV0dXJuIGU9PT12b2lkIDA/byhuLmNvbmYudGV4dCk6KG4uY29uZi50ZXh0PWUsci5odG1sKG8oZSkpLHRoaXMpfSxfY29uc3RydWN0b3I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5zLmR0LG49ZS5zZXR0aW5ncygpWzBdLHI9dGhpcy5jLmJ1dHRvbnM7bi5fYnV0dG9uc3x8KG4uX2J1dHRvbnM9W10pLG4uX2J1dHRvbnMucHVzaCh7aW5zdDp0aGlzLG5hbWU6dGhpcy5jLm5hbWV9KTtmb3IodmFyIHM9MCxpPXIubGVuZ3RoO3M8aTtzKyspdGhpcy5hZGQocltzXSk7ZS5vbigiZGVzdHJveSIsZnVuY3Rpb24obyx1KXt1PT09biYmdC5kZXN0cm95KCl9KSxodCgiYm9keSIpLm9uKCJrZXl1cC4iK3RoaXMucy5uYW1lc3BhY2UsZnVuY3Rpb24obyl7aWYoIWRvY3VtZW50LmFjdGl2ZUVsZW1lbnR8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1kb2N1bWVudC5ib2R5KXt2YXIgdT1TdHJpbmcuZnJvbUNoYXJDb2RlKG8ua2V5Q29kZSkudG9Mb3dlckNhc2UoKTt0LnMubGlzdGVuS2V5cy50b0xvd2VyQ2FzZSgpLmluZGV4T2YodSkhPT0tMSYmdC5fa2V5cHJlc3ModSxvKX19KX0sX2FkZEtleTpmdW5jdGlvbih0KXt0LmtleSYmKHRoaXMucy5saXN0ZW5LZXlzKz1odC5pc1BsYWluT2JqZWN0KHQua2V5KT90LmtleS5rZXk6dC5rZXkpfSxfZHJhdzpmdW5jdGlvbih0LGUpe3R8fCh0PXRoaXMuZG9tLmNvbnRhaW5lcixlPXRoaXMucy5idXR0b25zKSx0LmNoaWxkcmVuKCkuZGV0YWNoKCk7Zm9yKHZhciBuPTAscj1lLmxlbmd0aDtuPHI7bisrKXQuYXBwZW5kKGVbbl0uaW5zZXJ0ZXIpLHQuYXBwZW5kKCIgIiksZVtuXS5idXR0b25zJiZlW25dLmJ1dHRvbnMubGVuZ3RoJiZ0aGlzLl9kcmF3KGVbbl0uY29sbGVjdGlvbixlW25dLmJ1dHRvbnMpfSxfZXhwYW5kQnV0dG9uOmZ1bmN0aW9uKHQsZSxuLHIscyxpLG8pe3ZhciB1PXRoaXMucy5kdCxwPSExLGI9dGhpcy5jLmRvbS5jb2xsZWN0aW9uLGc9QXJyYXkuaXNBcnJheShlKT9lOltlXTtlPT09dm9pZCAwJiYoZz1BcnJheS5pc0FycmF5KG4pP246W25dKTtmb3IodmFyIG09MCxDPWcubGVuZ3RoO208QzttKyspe3ZhciB5PXRoaXMuX3Jlc29sdmVFeHRlbmRzKGdbbV0pO2lmKHkpe2lmKHA9ISEoeS5jb25maWcmJnkuY29uZmlnLnNwbGl0KSxBcnJheS5pc0FycmF5KHkpKXt0aGlzLl9leHBhbmRCdXR0b24odCx5LFQhPT12b2lkIDAmJlQuY29uZiE9PXZvaWQgMD9ULmNvbmYuc3BsaXQ6dm9pZCAwLHIsbyE9PXZvaWQgMCYmby5zcGxpdCE9PXZvaWQgMCxpLG8pO2NvbnRpbnVlfXZhciBUPXRoaXMuX2J1aWxkQnV0dG9uKHkscix5LnNwbGl0IT09dm9pZCAwfHx5LmNvbmZpZyE9PXZvaWQgMCYmeS5jb25maWcuc3BsaXQhPT12b2lkIDAscyk7aWYoVCl7aWYoaSE9bnVsbD8odC5zcGxpY2UoaSwwLFQpLGkrKyk6dC5wdXNoKFQpLFQuY29uZi5idXR0b25zJiYoVC5jb2xsZWN0aW9uPWh0KCI8IitiLmNvbnRhaW5lci5jb250ZW50LnRhZysiLz4iKSxULmNvbmYuX2NvbGxlY3Rpb249VC5jb2xsZWN0aW9uLGh0KFQubm9kZSkuYXBwZW5kKGIuYWN0aW9uLmRyb3BIdG1sKSx0aGlzLl9leHBhbmRCdXR0b24oVC5idXR0b25zLFQuY29uZi5idXR0b25zLFQuY29uZi5zcGxpdCwhcCxwLGksVC5jb25mKSksVC5jb25mLnNwbGl0KXtULmNvbGxlY3Rpb249aHQoIjwiK2IuY29udGFpbmVyLnRhZysiLz4iKSxULmNvbmYuX2NvbGxlY3Rpb249VC5jb2xsZWN0aW9uO2Zvcih2YXIgUD0wO1A8VC5jb25mLnNwbGl0Lmxlbmd0aDtQKyspe3ZhciBjPVQuY29uZi5zcGxpdFtQXTt0eXBlb2YgYz09Im9iamVjdCImJihjLnBhcmVudD1vLGMuY29sbGVjdGlvbkxheW91dD09PXZvaWQgMCYmKGMuY29sbGVjdGlvbkxheW91dD1ULmNvbmYuY29sbGVjdGlvbkxheW91dCksYy5kcm9wdXA9PT12b2lkIDAmJihjLmRyb3B1cD1ULmNvbmYuZHJvcHVwKSxjLmZhZGU9PT12b2lkIDAmJihjLmZhZGU9VC5jb25mLmZhZGUpKX10aGlzLl9leHBhbmRCdXR0b24oVC5idXR0b25zLFQuY29uZi5idXR0b25zLFQuY29uZi5zcGxpdCwhcCxwLGksVC5jb25mKX1ULmNvbmYucGFyZW50PW8seS5pbml0JiZ5LmluaXQuY2FsbCh1LmJ1dHRvbihULm5vZGUpLHUsaHQoVC5ub2RlKSx5KX19fX0sX2J1aWxkQnV0dG9uOmZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBzPXRoaXMsaT10aGlzLmMuZG9tLG8sdT10aGlzLnMuZHQscD1mdW5jdGlvbihRKXtyZXR1cm4gdHlwZW9mIFE9PSJmdW5jdGlvbiI/USh1LG0sdCk6UX0sYj1odC5leHRlbmQoITAse30saS5idXR0b24pO2lmKGUmJm4mJmkuY29sbGVjdGlvbi5zcGxpdD9odC5leHRlbmQoITAsYixpLmNvbGxlY3Rpb24uc3BsaXQuYWN0aW9uKTpyfHxlP2h0LmV4dGVuZCghMCxiLGkuY29sbGVjdGlvbi5idXR0b24pOm4mJmh0LmV4dGVuZCghMCxiLGkuc3BsaXQuYnV0dG9uKSx0LnNwYWNlcil7dmFyIGc9aHQoIjwiK2Iuc3BhY2VyLnRhZysiLz4iKS5hZGRDbGFzcygiZHQtYnV0dG9uLXNwYWNlciAiK3Quc3R5bGUrIiAiK2Iuc3BhY2VyLmNsYXNzTmFtZSkuaHRtbChwKHQudGV4dCkpO3JldHVybntjb25mOnQsbm9kZTpnLGluc2VydGVyOmcsYnV0dG9uczpbXSxpbkNvbGxlY3Rpb246ZSxpc1NwbGl0Om4sY29sbGVjdGlvbjpudWxsLHRleHROb2RlOmd9fWlmKHQuYXZhaWxhYmxlJiYhdC5hdmFpbGFibGUodSx0KSYmIXQuaHRtbClyZXR1cm4hMTt2YXIgbTtpZih0Lmh0bWwpbT1odCh0Lmh0bWwpO2Vsc2V7dmFyIEM9ZnVuY3Rpb24oUSxFLCQsdyxrKXt3LmFjdGlvbi5jYWxsKEUuYnV0dG9uKCQpLFEsRSwkLHcsayksaHQoRS50YWJsZSgpLm5vZGUoKSkudHJpZ2dlckhhbmRsZXIoImJ1dHRvbnMtYWN0aW9uLmR0IixbRS5idXR0b24oJCksRSwkLHddKX0seT1mdW5jdGlvbihRLEUsJCx3KXt3LmFzeW5jPyhzLnByb2Nlc3NpbmcoJFswXSwhMCksc2V0VGltZW91dChmdW5jdGlvbigpe0MoUSxFLCQsdyxmdW5jdGlvbigpe3MucHJvY2Vzc2luZygkWzBdLCExKX0pfSx3LmFzeW5jKSk6QyhRLEUsJCx3LGZ1bmN0aW9uKCl7fSl9LFQ9dC50YWd8fGIudGFnLFA9dC5jbGlja0JsdXJzPT09dm9pZCAwPyEwOnQuY2xpY2tCbHVycztpZihtPWh0KCI8IitUKyIvPiIpLmFkZENsYXNzKGIuY2xhc3NOYW1lKS5hdHRyKCJ0YWJpbmRleCIsdGhpcy5zLmR0LnNldHRpbmdzKClbMF0uaVRhYkluZGV4KS5hdHRyKCJhcmlhLWNvbnRyb2xzIix0aGlzLnMuZHQudGFibGUoKS5ub2RlKCkuaWQpLm9uKCJjbGljay5kdGIiLGZ1bmN0aW9uKFEpe1EucHJldmVudERlZmF1bHQoKSwhbS5oYXNDbGFzcyhiLmRpc2FibGVkKSYmdC5hY3Rpb24mJnkoUSx1LG0sdCksUCYmbS50cmlnZ2VyKCJibHVyIil9KS5vbigia2V5cHJlc3MuZHRiIixmdW5jdGlvbihRKXtRLmtleUNvZGU9PT0xMyYmKFEucHJldmVudERlZmF1bHQoKSwhbS5oYXNDbGFzcyhiLmRpc2FibGVkKSYmdC5hY3Rpb24mJnkoUSx1LG0sdCkpfSksVC50b0xvd2VyQ2FzZSgpPT09ImEiJiZtLmF0dHIoImhyZWYiLCIjIiksVC50b0xvd2VyQ2FzZSgpPT09ImJ1dHRvbiImJm0uYXR0cigidHlwZSIsImJ1dHRvbiIpLGIubGluZXIudGFnKXt2YXIgYz1odCgiPCIrYi5saW5lci50YWcrIi8+IikuaHRtbChwKHQudGV4dCkpLmFkZENsYXNzKGIubGluZXIuY2xhc3NOYW1lKTtiLmxpbmVyLnRhZy50b0xvd2VyQ2FzZSgpPT09ImEiJiZjLmF0dHIoImhyZWYiLCIjIiksbS5hcHBlbmQoYyksbz1jfWVsc2UgbS5odG1sKHAodC50ZXh0KSksbz1tO3QuZW5hYmxlZD09PSExJiZtLmFkZENsYXNzKGIuZGlzYWJsZWQpLHQuY2xhc3NOYW1lJiZtLmFkZENsYXNzKHQuY2xhc3NOYW1lKSx0LnRpdGxlQXR0ciYmbS5hdHRyKCJ0aXRsZSIscCh0LnRpdGxlQXR0cikpLHQuYXR0ciYmbS5hdHRyKHQuYXR0ciksdC5uYW1lc3BhY2V8fCh0Lm5hbWVzcGFjZT0iLmR0LWJ1dHRvbi0iK0dsKyspLHQuY29uZmlnIT09dm9pZCAwJiZ0LmNvbmZpZy5zcGxpdCYmKHQuc3BsaXQ9dC5jb25maWcuc3BsaXQpfXZhciBsPXRoaXMuYy5kb20uYnV0dG9uQ29udGFpbmVyLGg7bCYmbC50YWc/aD1odCgiPCIrbC50YWcrIi8+IikuYWRkQ2xhc3MobC5jbGFzc05hbWUpLmFwcGVuZChtKTpoPW0sdGhpcy5fYWRkS2V5KHQpLHRoaXMuYy5idXR0b25DcmVhdGVkJiYoaD10aGlzLmMuYnV0dG9uQ3JlYXRlZCh0LGgpKTt2YXIgXztpZihuKXt2YXIgRj1lP2h0LmV4dGVuZCghMCx0aGlzLmMuZG9tLnNwbGl0LHRoaXMuYy5kb20uY29sbGVjdGlvbi5zcGxpdCk6dGhpcy5jLmRvbS5zcGxpdCxPPUYud3JhcHBlcjtfPWh0KCI8IitPLnRhZysiLz4iKS5hZGRDbGFzcyhPLmNsYXNzTmFtZSkuYXBwZW5kKG0pO3ZhciBmPWh0LmV4dGVuZCh0LHthbGlnbjpGLmRyb3Bkb3duLmFsaWduLGF0dHI6eyJhcmlhLWhhc3BvcHVwIjoiZGlhbG9nIiwiYXJpYS1leHBhbmRlZCI6ITF9LGNsYXNzTmFtZTpGLmRyb3Bkb3duLmNsYXNzTmFtZSxjbG9zZUJ1dHRvbjohMSxzcGxpdEFsaWduQ2xhc3M6Ri5kcm9wZG93bi5zcGxpdEFsaWduQ2xhc3MsdGV4dDpGLmRyb3Bkb3duLnRleHR9KTt0aGlzLl9hZGRLZXkoZik7dmFyIFU9ZnVuY3Rpb24oUSxFLCQsdyl7U2Uuc3BsaXQuYWN0aW9uLmNhbGwoRS5idXR0b24oXyksUSxFLCQsdyksaHQoRS50YWJsZSgpLm5vZGUoKSkudHJpZ2dlckhhbmRsZXIoImJ1dHRvbnMtYWN0aW9uLmR0IixbRS5idXR0b24oJCksRSwkLHddKSwkLmF0dHIoImFyaWEtZXhwYW5kZWQiLCEwKX0sWD1odCgnPGJ1dHRvbiBjbGFzcz0iJytGLmRyb3Bkb3duLmNsYXNzTmFtZSsnIGR0LWJ1dHRvbiI+PC9idXR0b24+JykuaHRtbChGLmRyb3Bkb3duLmRyb3BIdG1sKS5vbigiY2xpY2suZHRiIixmdW5jdGlvbihRKXtRLnByZXZlbnREZWZhdWx0KCksUS5zdG9wUHJvcGFnYXRpb24oKSxYLmhhc0NsYXNzKGIuZGlzYWJsZWQpfHxVKFEsdSxYLGYpLFAmJlgudHJpZ2dlcigiYmx1ciIpfSkub24oImtleXByZXNzLmR0YiIsZnVuY3Rpb24oUSl7US5rZXlDb2RlPT09MTMmJihRLnByZXZlbnREZWZhdWx0KCksWC5oYXNDbGFzcyhiLmRpc2FibGVkKXx8VShRLHUsWCxmKSl9KTt0LnNwbGl0Lmxlbmd0aD09PTAmJlguYWRkQ2xhc3MoImR0Yi1oaWRlLWRyb3AiKSxfLmFwcGVuZChYKS5hdHRyKGYuYXR0cil9cmV0dXJue2NvbmY6dCxub2RlOm4/Xy5nZXQoMCk6bS5nZXQoMCksaW5zZXJ0ZXI6bj9fOmgsYnV0dG9uczpbXSxpbkNvbGxlY3Rpb246ZSxpc1NwbGl0Om4saW5TcGxpdDpyLGNvbGxlY3Rpb246bnVsbCx0ZXh0Tm9kZTpvfX0sX25vZGVUb0J1dHRvbjpmdW5jdGlvbih0LGUpe2V8fChlPXRoaXMucy5idXR0b25zKTtmb3IodmFyIG49MCxyPWUubGVuZ3RoO248cjtuKyspe2lmKGVbbl0ubm9kZT09PXQpcmV0dXJuIGVbbl07aWYoZVtuXS5idXR0b25zLmxlbmd0aCl7dmFyIHM9dGhpcy5fbm9kZVRvQnV0dG9uKHQsZVtuXS5idXR0b25zKTtpZihzKXJldHVybiBzfX19LF9ub2RlVG9Ib3N0OmZ1bmN0aW9uKHQsZSl7ZXx8KGU9dGhpcy5zLmJ1dHRvbnMpO2Zvcih2YXIgbj0wLHI9ZS5sZW5ndGg7bjxyO24rKyl7aWYoZVtuXS5ub2RlPT09dClyZXR1cm4gZTtpZihlW25dLmJ1dHRvbnMubGVuZ3RoKXt2YXIgcz10aGlzLl9ub2RlVG9Ib3N0KHQsZVtuXS5idXR0b25zKTtpZihzKXJldHVybiBzfX19LF9rZXlwcmVzczpmdW5jdGlvbih0LGUpe2lmKCFlLl9idXR0b25zSGFuZGxlZCl7dmFyIG49ZnVuY3Rpb24ocyxpKXtpZihzLmtleSl7aWYocy5rZXk9PT10KWUuX2J1dHRvbnNIYW5kbGVkPSEwLGh0KGkpLmNsaWNrKCk7ZWxzZSBpZihodC5pc1BsYWluT2JqZWN0KHMua2V5KSl7aWYocy5rZXkua2V5IT09dHx8cy5rZXkuc2hpZnRLZXkmJiFlLnNoaWZ0S2V5fHxzLmtleS5hbHRLZXkmJiFlLmFsdEtleXx8cy5rZXkuY3RybEtleSYmIWUuY3RybEtleXx8cy5rZXkubWV0YUtleSYmIWUubWV0YUtleSlyZXR1cm47ZS5fYnV0dG9uc0hhbmRsZWQ9ITAsaHQoaSkuY2xpY2soKX19fSxyPWZ1bmN0aW9uKHMpe2Zvcih2YXIgaT0wLG89cy5sZW5ndGg7aTxvO2krKyluKHNbaV0uY29uZixzW2ldLm5vZGUpLHNbaV0uYnV0dG9ucy5sZW5ndGgmJnIoc1tpXS5idXR0b25zKX07cih0aGlzLnMuYnV0dG9ucyl9fSxfcmVtb3ZlS2V5OmZ1bmN0aW9uKHQpe2lmKHQua2V5KXt2YXIgZT1odC5pc1BsYWluT2JqZWN0KHQua2V5KT90LmtleS5rZXk6dC5rZXksbj10aGlzLnMubGlzdGVuS2V5cy5zcGxpdCgiIikscj1odC5pbkFycmF5KGUsbik7bi5zcGxpY2UociwxKSx0aGlzLnMubGlzdGVuS2V5cz1uLmpvaW4oIiIpfX0sX3Jlc29sdmVFeHRlbmRzOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLnMuZHQscixzLGk9ZnVuY3Rpb24oZyl7Zm9yKHZhciBtPTA7IWh0LmlzUGxhaW5PYmplY3QoZykmJiFBcnJheS5pc0FycmF5KGcpOyl7aWYoZz09PXZvaWQgMClyZXR1cm47aWYodHlwZW9mIGc9PSJmdW5jdGlvbiIpe2lmKGc9Zy5jYWxsKGUsbix0KSwhZylyZXR1cm4hMX1lbHNlIGlmKHR5cGVvZiBnPT0ic3RyaW5nIil7aWYoIVNlW2ddKXJldHVybntodG1sOmd9O2c9U2VbZ119aWYobSsrLG0+MzApdGhyb3ciQnV0dG9uczogVG9vIG1hbnkgaXRlcmF0aW9ucyJ9cmV0dXJuIEFycmF5LmlzQXJyYXkoZyk/ZzpodC5leHRlbmQoe30sZyl9O2Zvcih0PWkodCk7dCYmdC5leHRlbmQ7KXtpZighU2VbdC5leHRlbmRdKXRocm93IkNhbm5vdCBleHRlbmQgdW5rbm93biBidXR0b24gdHlwZTogIit0LmV4dGVuZDt2YXIgbz1pKFNlW3QuZXh0ZW5kXSk7aWYoQXJyYXkuaXNBcnJheShvKSlyZXR1cm4gbztpZighbylyZXR1cm4hMTt2YXIgdT1vLmNsYXNzTmFtZTt0LmNvbmZpZyE9PXZvaWQgMCYmby5jb25maWchPT12b2lkIDAmJih0LmNvbmZpZz1odC5leHRlbmQoe30sby5jb25maWcsdC5jb25maWcpKSx0PWh0LmV4dGVuZCh7fSxvLHQpLHUmJnQuY2xhc3NOYW1lIT09dSYmKHQuY2xhc3NOYW1lPXUrIiAiK3QuY2xhc3NOYW1lKSx0LmV4dGVuZD1vLmV4dGVuZH12YXIgcD10LnBvc3RmaXhCdXR0b25zO2lmKHApZm9yKHQuYnV0dG9uc3x8KHQuYnV0dG9ucz1bXSkscj0wLHM9cC5sZW5ndGg7cjxzO3IrKyl0LmJ1dHRvbnMucHVzaChwW3JdKTt2YXIgYj10LnByZWZpeEJ1dHRvbnM7aWYoYilmb3IodC5idXR0b25zfHwodC5idXR0b25zPVtdKSxyPTAscz1iLmxlbmd0aDtyPHM7cisrKXQuYnV0dG9ucy5zcGxpY2UociwwLGJbcl0pO3JldHVybiB0fSxfcG9wb3ZlcjpmdW5jdGlvbih0LGUsbil7dmFyIHI9ZSxzPXRoaXMuYyxpPSExLG89aHQuZXh0ZW5kKHthbGlnbjoiYnV0dG9uLWxlZnQiLGF1dG9DbG9zZTohMSxiYWNrZ3JvdW5kOiEwLGJhY2tncm91bmRDbGFzc05hbWU6ImR0LWJ1dHRvbi1iYWNrZ3JvdW5kIixjbG9zZUJ1dHRvbjohMCxjb250YWluZXJDbGFzc05hbWU6cy5kb20uY29sbGVjdGlvbi5jb250YWluZXIuY2xhc3NOYW1lLGNvbnRlbnRDbGFzc05hbWU6cy5kb20uY29sbGVjdGlvbi5jb250YWluZXIuY29udGVudC5jbGFzc05hbWUsY29sbGVjdGlvbkxheW91dDoiIixjb2xsZWN0aW9uVGl0bGU6IiIsZHJvcHVwOiExLGZhZGU6NDAwLHBvcG92ZXJUaXRsZToiIixyaWdodEFsaWduQ2xhc3NOYW1lOiJkdC1idXR0b24tcmlnaHQiLHRhZzpzLmRvbS5jb2xsZWN0aW9uLmNvbnRhaW5lci50YWd9LG4pLHU9by50YWcrIi4iK28uY29udGFpbmVyQ2xhc3NOYW1lLnJlcGxhY2UoLyAvZywiLiIpLHA9ZS5ub2RlKCksYj1mdW5jdGlvbigpe2k9ITAsWWkoaHQodSksby5mYWRlLGZ1bmN0aW9uKCl7aHQodGhpcykuZGV0YWNoKCl9KSxodChyLmJ1dHRvbnMoJ1thcmlhLWhhc3BvcHVwPSJkaWFsb2ciXVthcmlhLWV4cGFuZGVkPSJ0cnVlIl0nKS5ub2RlcygpKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwiZmFsc2UiKSxodCgiZGl2LmR0LWJ1dHRvbi1iYWNrZ3JvdW5kIikub2ZmKCJjbGljay5kdGItY29sbGVjdGlvbiIpLHRlLmJhY2tncm91bmQoITEsby5iYWNrZ3JvdW5kQ2xhc3NOYW1lLG8uZmFkZSxwKSxodCh3aW5kb3cpLm9mZigicmVzaXplLnJlc2l6ZS5kdGItY29sbGVjdGlvbiIpLGh0KCJib2R5Iikub2ZmKCIuZHRiLWNvbGxlY3Rpb24iKSxyLm9mZigiYnV0dG9ucy1hY3Rpb24uYi1pbnRlcm5hbCIpLHIub2ZmKCJkZXN0cm95Iil9O2lmKHQ9PT0hMSl7YigpO3JldHVybn12YXIgZz1odChyLmJ1dHRvbnMoJ1thcmlhLWhhc3BvcHVwPSJkaWFsb2ciXVthcmlhLWV4cGFuZGVkPSJ0cnVlIl0nKS5ub2RlcygpKTtnLmxlbmd0aCYmKHAuY2xvc2VzdCh1KS5sZW5ndGgmJihwPWcuZXEoMCkpLGIoKSk7dmFyIG09aHQoIi5kdC1idXR0b24iLHQpLmxlbmd0aCxDPSIiO209PT0zP0M9ImR0Yi1iMyI6bT09PTI/Qz0iZHRiLWIyIjptPT09MSYmKEM9ImR0Yi1iMSIpO3ZhciB5PWh0KCI8IitvLnRhZysiLz4iKS5hZGRDbGFzcyhvLmNvbnRhaW5lckNsYXNzTmFtZSkuYWRkQ2xhc3Moby5jb2xsZWN0aW9uTGF5b3V0KS5hZGRDbGFzcyhvLnNwbGl0QWxpZ25DbGFzcykuYWRkQ2xhc3MoQykuY3NzKCJkaXNwbGF5Iiwibm9uZSIpLmF0dHIoeyJhcmlhLW1vZGFsIjohMCxyb2xlOiJkaWFsb2cifSk7dD1odCh0KS5hZGRDbGFzcyhvLmNvbnRlbnRDbGFzc05hbWUpLmF0dHIoInJvbGUiLCJtZW51IikuYXBwZW5kVG8oeSkscC5hdHRyKCJhcmlhLWV4cGFuZGVkIiwidHJ1ZSIpLHAucGFyZW50cygiYm9keSIpWzBdIT09ZG9jdW1lbnQuYm9keSYmKHA9ZG9jdW1lbnQuYm9keS5sYXN0Q2hpbGQpLG8ucG9wb3ZlclRpdGxlP3kucHJlcGVuZCgnPGRpdiBjbGFzcz0iZHQtYnV0dG9uLWNvbGxlY3Rpb24tdGl0bGUiPicrby5wb3BvdmVyVGl0bGUrIjwvZGl2PiIpOm8uY29sbGVjdGlvblRpdGxlJiZ5LnByZXBlbmQoJzxkaXYgY2xhc3M9ImR0LWJ1dHRvbi1jb2xsZWN0aW9uLXRpdGxlIj4nK28uY29sbGVjdGlvblRpdGxlKyI8L2Rpdj4iKSxvLmNsb3NlQnV0dG9uJiZ5LnByZXBlbmQoJzxkaXYgY2xhc3M9ImR0Yi1wb3BvdmVyLWNsb3NlIj4mdGltZXM7PC9kaXY+JykuYWRkQ2xhc3MoImR0Yi1jb2xsZWN0aW9uLWNsb3NlYWJsZSIpLFhpKHkuaW5zZXJ0QWZ0ZXIocCksby5mYWRlKTt2YXIgVD1odChlLnRhYmxlKCkuY29udGFpbmVyKCkpLFA9eS5jc3MoInBvc2l0aW9uIik7aWYoKG8uc3Bhbj09PSJjb250YWluZXIifHxvLmFsaWduPT09ImR0LWNvbnRhaW5lciIpJiYocD1wLnBhcmVudCgpLHkuY3NzKCJ3aWR0aCIsVC53aWR0aCgpKSksUD09PSJhYnNvbHV0ZSIpe3ZhciBjPWh0KHBbMF0ub2Zmc2V0UGFyZW50KSxsPXAucG9zaXRpb24oKSxoPXAub2Zmc2V0KCksXz1jLm9mZnNldCgpLEY9Yy5wb3NpdGlvbigpLE89d2luZG93LmdldENvbXB1dGVkU3R5bGUoY1swXSk7Xy5oZWlnaHQ9Yy5vdXRlckhlaWdodCgpLF8ud2lkdGg9Yy53aWR0aCgpK3BhcnNlRmxvYXQoTy5wYWRkaW5nTGVmdCksXy5yaWdodD1fLmxlZnQrXy53aWR0aCxfLmJvdHRvbT1fLnRvcCtfLmhlaWdodDt2YXIgZj1sLnRvcCtwLm91dGVySGVpZ2h0KCksVT1sLmxlZnQ7eS5jc3Moe3RvcDpmLGxlZnQ6VX0pLE89d2luZG93LmdldENvbXB1dGVkU3R5bGUoeVswXSk7dmFyIFg9eS5vZmZzZXQoKTtYLmhlaWdodD15Lm91dGVySGVpZ2h0KCksWC53aWR0aD15Lm91dGVyV2lkdGgoKSxYLnJpZ2h0PVgubGVmdCtYLndpZHRoLFguYm90dG9tPVgudG9wK1guaGVpZ2h0LFgubWFyZ2luVG9wPXBhcnNlRmxvYXQoTy5tYXJnaW5Ub3ApLFgubWFyZ2luQm90dG9tPXBhcnNlRmxvYXQoTy5tYXJnaW5Cb3R0b20pLG8uZHJvcHVwJiYoZj1sLnRvcC1YLmhlaWdodC1YLm1hcmdpblRvcC1YLm1hcmdpbkJvdHRvbSksKG8uYWxpZ249PT0iYnV0dG9uLXJpZ2h0Inx8eS5oYXNDbGFzcyhvLnJpZ2h0QWxpZ25DbGFzc05hbWUpKSYmKFU9bC5sZWZ0LVgud2lkdGgrcC5vdXRlcldpZHRoKCkpLChvLmFsaWduPT09ImR0LWNvbnRhaW5lciJ8fG8uYWxpZ249PT0iY29udGFpbmVyIikmJlU8bC5sZWZ0JiYoVT0tbC5sZWZ0KSxGLmxlZnQrVStYLndpZHRoPmh0KHdpbmRvdykud2lkdGgoKSYmKFU9aHQod2luZG93KS53aWR0aCgpLVgud2lkdGgtRi5sZWZ0KSxoLmxlZnQrVTwwJiYoVT0taC5sZWZ0KSxGLnRvcCtmK1guaGVpZ2h0Pmh0KHdpbmRvdykuaGVpZ2h0KCkraHQod2luZG93KS5zY3JvbGxUb3AoKSYmKGY9bC50b3AtWC5oZWlnaHQtWC5tYXJnaW5Ub3AtWC5tYXJnaW5Cb3R0b20pLEYudG9wK2Y8aHQod2luZG93KS5zY3JvbGxUb3AoKSYmKGY9bC50b3ArcC5vdXRlckhlaWdodCgpKSx5LmNzcyh7dG9wOmYsbGVmdDpVfSl9ZWxzZXt2YXIgUT1mdW5jdGlvbigpe3ZhciBFPWh0KHdpbmRvdykuaGVpZ2h0KCkvMiwkPXkuaGVpZ2h0KCkvMjskPkUmJigkPUUpLHkuY3NzKCJtYXJnaW5Ub3AiLCQqLTEpfTtRKCksaHQod2luZG93KS5vbigicmVzaXplLmR0Yi1jb2xsZWN0aW9uIixmdW5jdGlvbigpe1EoKX0pfW8uYmFja2dyb3VuZCYmdGUuYmFja2dyb3VuZCghMCxvLmJhY2tncm91bmRDbGFzc05hbWUsby5mYWRlLG8uYmFja2dyb3VuZEhvc3R8fHApLGh0KCJkaXYuZHQtYnV0dG9uLWJhY2tncm91bmQiKS5vbigiY2xpY2suZHRiLWNvbGxlY3Rpb24iLGZ1bmN0aW9uKCl7fSksby5hdXRvQ2xvc2UmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLm9uKCJidXR0b25zLWFjdGlvbi5iLWludGVybmFsIixmdW5jdGlvbihFLCQsdyxrKXtrWzBdIT09cFswXSYmYigpfSl9LDApLGh0KHkpLnRyaWdnZXIoImJ1dHRvbnMtcG9wb3Zlci5kdCIpLHIub24oImRlc3Ryb3kiLGIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtpPSExLGh0KCJib2R5Iikub24oImNsaWNrLmR0Yi1jb2xsZWN0aW9uIixmdW5jdGlvbihFKXtpZighaSl7dmFyICQ9aHQuZm4uYWRkQmFjaz8iYWRkQmFjayI6ImFuZFNlbGYiLHc9aHQoRS50YXJnZXQpLnBhcmVudCgpWzBdOyghaHQoRS50YXJnZXQpLnBhcmVudHMoKVskXSgpLmZpbHRlcih0KS5sZW5ndGgmJiFodCh3KS5oYXNDbGFzcygiZHQtYnV0dG9ucyIpfHxodChFLnRhcmdldCkuaGFzQ2xhc3MoImR0LWJ1dHRvbi1iYWNrZ3JvdW5kIikpJiZiKCl9fSkub24oImtleXVwLmR0Yi1jb2xsZWN0aW9uIixmdW5jdGlvbihFKXtFLmtleUNvZGU9PT0yNyYmYigpfSkub24oImtleWRvd24uZHRiLWNvbGxlY3Rpb24iLGZ1bmN0aW9uKEUpe3ZhciAkPWh0KCJhLCBidXR0b24iLHQpLHc9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtFLmtleUNvZGU9PT05JiYoJC5pbmRleCh3KT09PS0xPygkLmZpcnN0KCkuZm9jdXMoKSxFLnByZXZlbnREZWZhdWx0KCkpOkUuc2hpZnRLZXk/dz09PSRbMF0mJigkLmxhc3QoKS5mb2N1cygpLEUucHJldmVudERlZmF1bHQoKSk6dz09PSQubGFzdCgpWzBdJiYoJC5maXJzdCgpLmZvY3VzKCksRS5wcmV2ZW50RGVmYXVsdCgpKSl9KX0sMCl9fSk7dGUuYmFja2dyb3VuZD1mdW5jdGlvbih0LGUsbixyKXtuPT09dm9pZCAwJiYobj00MDApLHJ8fChyPWRvY3VtZW50LmJvZHkpLHQ/WGkoaHQoIjxkaXYvPiIpLmFkZENsYXNzKGUpLmNzcygiZGlzcGxheSIsIm5vbmUiKS5pbnNlcnRBZnRlcihyKSxuKTpZaShodCgiZGl2LiIrZSksbixmdW5jdGlvbigpe2h0KHRoaXMpLnJlbW92ZUNsYXNzKGUpLnJlbW92ZSgpfSl9O3RlLmluc3RhbmNlU2VsZWN0b3I9ZnVuY3Rpb24odCxlKXtpZih0PT1udWxsKXJldHVybiBodC5tYXAoZSxmdW5jdGlvbihpKXtyZXR1cm4gaS5pbnN0fSk7dmFyIG49W10scj1odC5tYXAoZSxmdW5jdGlvbihpKXtyZXR1cm4gaS5uYW1lfSkscz1mdW5jdGlvbihpKXtpZihBcnJheS5pc0FycmF5KGkpKXtmb3IodmFyIG89MCx1PWkubGVuZ3RoO288dTtvKyspcyhpW29dKTtyZXR1cm59aWYodHlwZW9mIGk9PSJzdHJpbmciKWlmKGkuaW5kZXhPZigiLCIpIT09LTEpcyhpLnNwbGl0KCIsIikpO2Vsc2V7dmFyIHA9aHQuaW5BcnJheShpLnRyaW0oKSxyKTtwIT09LTEmJm4ucHVzaChlW3BdLmluc3QpfWVsc2UgaWYodHlwZW9mIGk9PSJudW1iZXIiKW4ucHVzaChlW2ldLmluc3QpO2Vsc2UgaWYodHlwZW9mIGk9PSJvYmplY3QiJiZpLm5vZGVOYW1lKWZvcih2YXIgYj0wO2I8ZS5sZW5ndGg7YisrKWVbYl0uaW5zdC5kb20uY29udGFpbmVyWzBdPT09aSYmbi5wdXNoKGVbYl0uaW5zdCk7ZWxzZSB0eXBlb2YgaT09Im9iamVjdCImJm4ucHVzaChpKX07cmV0dXJuIHModCksbn07dGUuYnV0dG9uU2VsZWN0b3I9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49W10scj1mdW5jdGlvbihwLGIsZyl7Zm9yKHZhciBtLEMseT0wLFQ9Yi5sZW5ndGg7eTxUO3krKyltPWJbeV0sbSYmKEM9ZyE9PXZvaWQgMD9nK3k6eSsiIixwLnB1c2goe25vZGU6bS5ub2RlLG5hbWU6bS5jb25mLm5hbWUsaWR4OkN9KSxtLmJ1dHRvbnMmJnIocCxtLmJ1dHRvbnMsQysiLSIpKX0scz1mdW5jdGlvbihwLGIpe3ZhciBnLG0sQz1bXTtyKEMsYi5zLmJ1dHRvbnMpO3ZhciB5PWh0Lm1hcChDLGZ1bmN0aW9uKGgpe3JldHVybiBoLm5vZGV9KTtpZihBcnJheS5pc0FycmF5KHApfHxwIGluc3RhbmNlb2YgaHQpe2ZvcihnPTAsbT1wLmxlbmd0aDtnPG07ZysrKXMocFtnXSxiKTtyZXR1cm59aWYocD09bnVsbHx8cD09PSIqIilmb3IoZz0wLG09Qy5sZW5ndGg7ZzxtO2crKyluLnB1c2goe2luc3Q6Yixub2RlOkNbZ10ubm9kZX0pO2Vsc2UgaWYodHlwZW9mIHA9PSJudW1iZXIiKWIucy5idXR0b25zW3BdJiZuLnB1c2goe2luc3Q6Yixub2RlOmIucy5idXR0b25zW3BdLm5vZGV9KTtlbHNlIGlmKHR5cGVvZiBwPT0ic3RyaW5nIilpZihwLmluZGV4T2YoIiwiKSE9PS0xKXt2YXIgVD1wLnNwbGl0KCIsIik7Zm9yKGc9MCxtPVQubGVuZ3RoO2c8bTtnKyspcyhUW2ddLnRyaW0oKSxiKX1lbHNlIGlmKHAubWF0Y2goL15cZCsoXC1cZCspKiQvKSl7dmFyIFA9aHQubWFwKEMsZnVuY3Rpb24oaCl7cmV0dXJuIGguaWR4fSk7bi5wdXNoKHtpbnN0OmIsbm9kZTpDW2h0LmluQXJyYXkocCxQKV0ubm9kZX0pfWVsc2UgaWYocC5pbmRleE9mKCI6bmFtZSIpIT09LTEpe3ZhciBjPXAucmVwbGFjZSgiOm5hbWUiLCIiKTtmb3IoZz0wLG09Qy5sZW5ndGg7ZzxtO2crKylDW2ddLm5hbWU9PT1jJiZuLnB1c2goe2luc3Q6Yixub2RlOkNbZ10ubm9kZX0pfWVsc2UgaHQoeSkuZmlsdGVyKHApLmVhY2goZnVuY3Rpb24oKXtuLnB1c2goe2luc3Q6Yixub2RlOnRoaXN9KX0pO2Vsc2UgaWYodHlwZW9mIHA9PSJvYmplY3QiJiZwLm5vZGVOYW1lKXt2YXIgbD1odC5pbkFycmF5KHAseSk7bCE9PS0xJiZuLnB1c2goe2luc3Q6Yixub2RlOnlbbF19KX19LGk9MCxvPXQubGVuZ3RoO2k8bztpKyspe3ZhciB1PXRbaV07cyhlLHUpfXJldHVybiBufTt0ZS5zdHJpcERhdGE9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdHlwZW9mIHQhPSJzdHJpbmcifHwodD10ZS5zdHJpcEh0bWxTY3JpcHQodCksdD10ZS5zdHJpcEh0bWxDb21tZW50cyh0KSwoIWV8fGUuc3RyaXBIdG1sKSYmKHQ9YXQudXRpbC5zdHJpcEh0bWwodCkpLCghZXx8ZS50cmltKSYmKHQ9dC50cmltKCkpLCghZXx8ZS5zdHJpcE5ld2xpbmVzKSYmKHQ9dC5yZXBsYWNlKC9cbi9nLCIgIikpLCghZXx8ZS5kZWNvZGVFbnRpdGllcykmJihxaT90PXFpKHQpOihBcy5pbm5lckhUTUw9dCx0PUFzLnZhbHVlKSkpLHR9O3RlLmVudGl0eURlY29kZXI9ZnVuY3Rpb24odCl7cWk9dH07dGUuc3RyaXBIdG1sQ29tbWVudHM9ZnVuY3Rpb24odCl7dmFyIGU7ZG8gZT10LHQ9dC5yZXBsYWNlKC8oPCEtLS4qPy0tIT8+KXwoPCEtLVtcU1xzXSs/LS0hPz4pfCg8IS0tW1xTXHNdKj8kKS9nLCIiKTt3aGlsZSh0IT09ZSk7cmV0dXJuIHR9O3RlLnN0cmlwSHRtbFNjcmlwdD1mdW5jdGlvbih0KXt2YXIgZTtkbyBlPXQsdD10LnJlcGxhY2UoLzxzY3JpcHRcYltePF0qKD86KD8hPFwvc2NyaXB0W14+XSo+KTxbXjxdKikqPFwvc2NyaXB0W14+XSo+L2dpLCIiKTt3aGlsZSh0IT09ZSk7cmV0dXJuIHR9O3RlLmRlZmF1bHRzPXtidXR0b25zOlsiY29weSIsImV4Y2VsIiwiY3N2IiwicGRmIiwicHJpbnQiXSxuYW1lOiJtYWluIix0YWJJbmRleDowLGRvbTp7Y29udGFpbmVyOnt0YWc6ImRpdiIsY2xhc3NOYW1lOiJkdC1idXR0b25zIn0sY29sbGVjdGlvbjp7YWN0aW9uOntkcm9wSHRtbDonPHNwYW4gY2xhc3M9ImR0LWJ1dHRvbi1kb3duLWFycm93Ij4mI3gyNUJDOzwvc3Bhbj4nfSxjb250YWluZXI6e2NsYXNzTmFtZToiZHQtYnV0dG9uLWNvbGxlY3Rpb24iLGNvbnRlbnQ6e2NsYXNzTmFtZToiIix0YWc6ImRpdiJ9LHRhZzoiZGl2In19LGJ1dHRvbjp7dGFnOiJidXR0b24iLGNsYXNzTmFtZToiZHQtYnV0dG9uIixhY3RpdmU6ImR0LWJ1dHRvbi1hY3RpdmUiLGRpc2FibGVkOiJkaXNhYmxlZCIsc3BhY2VyOntjbGFzc05hbWU6ImR0LWJ1dHRvbi1zcGFjZXIiLHRhZzoic3BhbiJ9LGxpbmVyOnt0YWc6InNwYW4iLGNsYXNzTmFtZToiIn19LHNwbGl0OnthY3Rpb246e2NsYXNzTmFtZToiZHQtYnV0dG9uLXNwbGl0LWRyb3AtYnV0dG9uIGR0LWJ1dHRvbiIsdGFnOiJidXR0b24ifSxkcm9wZG93bjp7YWxpZ246InNwbGl0LXJpZ2h0IixjbGFzc05hbWU6ImR0LWJ1dHRvbi1zcGxpdC1kcm9wIixkcm9wSHRtbDonPHNwYW4gY2xhc3M9ImR0LWJ1dHRvbi1kb3duLWFycm93Ij4mI3gyNUJDOzwvc3Bhbj4nLHNwbGl0QWxpZ25DbGFzczoiZHQtYnV0dG9uLXNwbGl0LWxlZnQiLHRhZzoiYnV0dG9uIn0sd3JhcHBlcjp7Y2xhc3NOYW1lOiJkdC1idXR0b24tc3BsaXQiLHRhZzoiZGl2In19fX07dGUudmVyc2lvbj0iMy4xLjIiO2h0LmV4dGVuZChTZSx7Y29sbGVjdGlvbjp7dGV4dDpmdW5jdGlvbih0KXtyZXR1cm4gdC5pMThuKCJidXR0b25zLmNvbGxlY3Rpb24iLCJDb2xsZWN0aW9uIil9LGNsYXNzTmFtZToiYnV0dG9ucy1jb2xsZWN0aW9uIixjbG9zZUJ1dHRvbjohMSxpbml0OmZ1bmN0aW9uKHQsZSl7ZS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMSl9LGFjdGlvbjpmdW5jdGlvbih0LGUsbixyKXtyLl9jb2xsZWN0aW9uLnBhcmVudHMoImJvZHkiKS5sZW5ndGg/dGhpcy5wb3BvdmVyKCExLHIpOnRoaXMucG9wb3ZlcihyLl9jb2xsZWN0aW9uLHIpLHQudHlwZT09PSJrZXlwcmVzcyImJmh0KCJhLCBidXR0b24iLHIuX2NvbGxlY3Rpb24pLmVxKDApLmZvY3VzKCl9LGF0dHI6eyJhcmlhLWhhc3BvcHVwIjoiZGlhbG9nIn19LHNwbGl0Ont0ZXh0OmZ1bmN0aW9uKHQpe3JldHVybiB0LmkxOG4oImJ1dHRvbnMuc3BsaXQiLCJTcGxpdCIpfSxjbGFzc05hbWU6ImJ1dHRvbnMtc3BsaXQiLGNsb3NlQnV0dG9uOiExLGluaXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMSl9LGFjdGlvbjpmdW5jdGlvbih0LGUsbixyKXt0aGlzLnBvcG92ZXIoci5fY29sbGVjdGlvbixyKX0sYXR0cjp7ImFyaWEtaGFzcG9wdXAiOiJkaWFsb2cifX0sY29weTpmdW5jdGlvbigpe2lmKFNlLmNvcHlIdG1sNSlyZXR1cm4iY29weUh0bWw1In0sY3N2OmZ1bmN0aW9uKHQsZSl7aWYoU2UuY3N2SHRtbDUmJlNlLmNzdkh0bWw1LmF2YWlsYWJsZSh0LGUpKXJldHVybiJjc3ZIdG1sNSJ9LGV4Y2VsOmZ1bmN0aW9uKHQsZSl7aWYoU2UuZXhjZWxIdG1sNSYmU2UuZXhjZWxIdG1sNS5hdmFpbGFibGUodCxlKSlyZXR1cm4iZXhjZWxIdG1sNSJ9LHBkZjpmdW5jdGlvbih0LGUpe2lmKFNlLnBkZkh0bWw1JiZTZS5wZGZIdG1sNS5hdmFpbGFibGUodCxlKSlyZXR1cm4icGRmSHRtbDUifSxwYWdlTGVuZ3RoOmZ1bmN0aW9uKHQpe3ZhciBlPXQuc2V0dGluZ3MoKVswXS5hTGVuZ3RoTWVudSxuPVtdLHI9W10scz1mdW5jdGlvbih1KXtyZXR1cm4gdS5pMThuKCJidXR0b25zLnBhZ2VMZW5ndGgiLHsiLTEiOiJTaG93IGFsbCByb3dzIixfOiJTaG93ICVkIHJvd3MifSx1LnBhZ2UubGVuKCkpfTtpZihBcnJheS5pc0FycmF5KGVbMF0pKW49ZVswXSxyPWVbMV07ZWxzZSBmb3IodmFyIGk9MDtpPGUubGVuZ3RoO2krKyl7dmFyIG89ZVtpXTtodC5pc1BsYWluT2JqZWN0KG8pPyhuLnB1c2goby52YWx1ZSksci5wdXNoKG8ubGFiZWwpKToobi5wdXNoKG8pLHIucHVzaChvKSl9cmV0dXJue2V4dGVuZDoiY29sbGVjdGlvbiIsdGV4dDpzLGNsYXNzTmFtZToiYnV0dG9ucy1wYWdlLWxlbmd0aCIsYXV0b0Nsb3NlOiEwLGJ1dHRvbnM6aHQubWFwKG4sZnVuY3Rpb24odSxwKXtyZXR1cm57dGV4dDpyW3BdLGNsYXNzTmFtZToiYnV0dG9uLXBhZ2UtbGVuZ3RoIixhY3Rpb246ZnVuY3Rpb24oYixnKXtnLnBhZ2UubGVuKHUpLmRyYXcoKX0saW5pdDpmdW5jdGlvbihiLGcsbSl7dmFyIEM9dGhpcyx5PWZ1bmN0aW9uKCl7Qy5hY3RpdmUoYi5wYWdlLmxlbigpPT09dSl9O2Iub24oImxlbmd0aC5kdCIrbS5uYW1lc3BhY2UseSkseSgpfSxkZXN0cm95OmZ1bmN0aW9uKGIsZyxtKXtiLm9mZigibGVuZ3RoLmR0IittLm5hbWVzcGFjZSl9fX0pLGluaXQ6ZnVuY3Rpb24odSxwLGIpe3ZhciBnPXRoaXM7dS5vbigibGVuZ3RoLmR0IitiLm5hbWVzcGFjZSxmdW5jdGlvbigpe2cudGV4dChiLnRleHQpfSl9LGRlc3Ryb3k6ZnVuY3Rpb24odSxwLGIpe3Uub2ZmKCJsZW5ndGguZHQiK2IubmFtZXNwYWNlKX19fSxzcGFjZXI6e3N0eWxlOiJlbXB0eSIsc3BhY2VyOiEwLHRleHQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQuaTE4bigiYnV0dG9ucy5zcGFjZXIiLCIiKX19fSk7YXQuQXBpLnJlZ2lzdGVyKCJidXR0b25zKCkiLGZ1bmN0aW9uKHQsZSl7ZT09PXZvaWQgMCYmKGU9dCx0PXZvaWQgMCksdGhpcy5zZWxlY3Rvci5idXR0b25Hcm91cD10O3ZhciBuPXRoaXMuaXRlcmF0b3IoITAsInRhYmxlIixmdW5jdGlvbihyKXtpZihyLl9idXR0b25zKXJldHVybiB0ZS5idXR0b25TZWxlY3Rvcih0ZS5pbnN0YW5jZVNlbGVjdG9yKHQsci5fYnV0dG9ucyksZSl9LCEwKTtyZXR1cm4gbi5fZ3JvdXBTZWxlY3Rvcj10LG59KTthdC5BcGkucmVnaXN0ZXIoImJ1dHRvbigpIixmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuYnV0dG9ucyh0LGUpO3JldHVybiBuLmxlbmd0aD4xJiZuLnNwbGljZSgxLG4ubGVuZ3RoKSxufSk7YXQuQXBpLnJlZ2lzdGVyUGx1cmFsKCJidXR0b25zKCkuYWN0aXZlKCkiLCJidXR0b24oKS5hY3RpdmUoKSIsZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT12b2lkIDA/dGhpcy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaW5zdC5hY3RpdmUoZS5ub2RlKX0pOnRoaXMuZWFjaChmdW5jdGlvbihlKXtlLmluc3QuYWN0aXZlKGUubm9kZSx0KX0pfSk7YXQuQXBpLnJlZ2lzdGVyUGx1cmFsKCJidXR0b25zKCkuYWN0aW9uKCkiLCJidXR0b24oKS5hY3Rpb24oKSIsZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT12b2lkIDA/dGhpcy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaW5zdC5hY3Rpb24oZS5ub2RlKX0pOnRoaXMuZWFjaChmdW5jdGlvbihlKXtlLmluc3QuYWN0aW9uKGUubm9kZSx0KX0pfSk7YXQuQXBpLnJlZ2lzdGVyUGx1cmFsKCJidXR0b25zKCkuY29sbGVjdGlvblJlYnVpbGQoKSIsImJ1dHRvbigpLmNvbGxlY3Rpb25SZWJ1aWxkKCkiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspdHlwZW9mIHRbbl09PSJvYmplY3QiJiYodFtuXS5wYXJlbnRDb25mPWUpO2UuaW5zdC5jb2xsZWN0aW9uUmVidWlsZChlLm5vZGUsdCl9KX0pO2F0LkFwaS5yZWdpc3RlcihbImJ1dHRvbnMoKS5lbmFibGUoKSIsImJ1dHRvbigpLmVuYWJsZSgpIl0sZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihlKXtlLmluc3QuZW5hYmxlKGUubm9kZSx0KX0pfSk7YXQuQXBpLnJlZ2lzdGVyKFsiYnV0dG9ucygpLmRpc2FibGUoKSIsImJ1dHRvbigpLmRpc2FibGUoKSJdLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbih0KXt0Lmluc3QuZGlzYWJsZSh0Lm5vZGUpfSl9KTthdC5BcGkucmVnaXN0ZXIoImJ1dHRvbigpLmluZGV4KCkiLGZ1bmN0aW9uKCl7dmFyIHQ9bnVsbDtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGUpe3ZhciBuPWUuaW5zdC5pbmRleChlLm5vZGUpO24hPT1udWxsJiYodD1uKX0pLHR9KTthdC5BcGkucmVnaXN0ZXJQbHVyYWwoImJ1dHRvbnMoKS5ub2RlcygpIiwiYnV0dG9uKCkubm9kZSgpIixmdW5jdGlvbigpe3ZhciB0PWh0KCk7cmV0dXJuIGh0KHRoaXMuZWFjaChmdW5jdGlvbihlKXt0PXQuYWRkKGUuaW5zdC5ub2RlKGUubm9kZSkpfSkpLHR9KTthdC5BcGkucmVnaXN0ZXJQbHVyYWwoImJ1dHRvbnMoKS5wcm9jZXNzaW5nKCkiLCJidXR0b24oKS5wcm9jZXNzaW5nKCkiLGZ1bmN0aW9uKHQpe3JldHVybiB0PT09dm9pZCAwP3RoaXMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLmluc3QucHJvY2Vzc2luZyhlLm5vZGUpfSk6dGhpcy5lYWNoKGZ1bmN0aW9uKGUpe2UuaW5zdC5wcm9jZXNzaW5nKGUubm9kZSx0KX0pfSk7YXQuQXBpLnJlZ2lzdGVyUGx1cmFsKCJidXR0b25zKCkudGV4dCgpIiwiYnV0dG9uKCkudGV4dCgpIixmdW5jdGlvbih0KXtyZXR1cm4gdD09PXZvaWQgMD90aGlzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5pbnN0LnRleHQoZS5ub2RlKX0pOnRoaXMuZWFjaChmdW5jdGlvbihlKXtlLmluc3QudGV4dChlLm5vZGUsdCl9KX0pO2F0LkFwaS5yZWdpc3RlclBsdXJhbCgiYnV0dG9ucygpLnRyaWdnZXIoKSIsImJ1dHRvbigpLnRyaWdnZXIoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHQpe3QuaW5zdC5ub2RlKHQubm9kZSkudHJpZ2dlcigiY2xpY2siKX0pfSk7YXQuQXBpLnJlZ2lzdGVyKCJidXR0b24oKS5wb3BvdmVyKCkiLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLmluc3QuX3BvcG92ZXIodCx0aGlzLmJ1dHRvbih0aGlzWzBdLm5vZGUpLGUpfSl9KTthdC5BcGkucmVnaXN0ZXIoImJ1dHRvbnMoKS5jb250YWluZXJzKCkiLGZ1bmN0aW9uKCl7dmFyIHQ9aHQoKSxlPXRoaXMuX2dyb3VwU2VsZWN0b3I7cmV0dXJuIHRoaXMuaXRlcmF0b3IoITAsInRhYmxlIixmdW5jdGlvbihuKXtpZihuLl9idXR0b25zKWZvcih2YXIgcj10ZS5pbnN0YW5jZVNlbGVjdG9yKGUsbi5fYnV0dG9ucykscz0wLGk9ci5sZW5ndGg7czxpO3MrKyl0PXQuYWRkKHJbc10uY29udGFpbmVyKCkpfSksdH0pO2F0LkFwaS5yZWdpc3RlcigiYnV0dG9ucygpLmNvbnRhaW5lcigpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRhaW5lcnMoKS5lcSgwKX0pO2F0LkFwaS5yZWdpc3RlcigiYnV0dG9uKCkuYWRkKCkiLGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzLmNvbnRleHQ7aWYoci5sZW5ndGgpe3ZhciBzPXRlLmluc3RhbmNlU2VsZWN0b3IodGhpcy5fZ3JvdXBTZWxlY3RvcixyWzBdLl9idXR0b25zKTtzLmxlbmd0aCYmc1swXS5hZGQoZSx0LG4pfXJldHVybiB0aGlzLmJ1dHRvbih0aGlzLl9ncm91cFNlbGVjdG9yLHQpfSk7YXQuQXBpLnJlZ2lzdGVyKCJidXR0b25zKCkuZGVzdHJveSgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLnBsdWNrKCJpbnN0IikudW5pcXVlKCkuZWFjaChmdW5jdGlvbih0KXt0LmRlc3Ryb3koKX0pLHRoaXN9KTthdC5BcGkucmVnaXN0ZXJQbHVyYWwoImJ1dHRvbnMoKS5yZW1vdmUoKSIsImJ1dHRvbnMoKS5yZW1vdmUoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHQpe3QuaW5zdC5yZW1vdmUodC5ub2RlKX0pLHRoaXN9KTt2YXIgYXI7YXQuQXBpLnJlZ2lzdGVyKCJidXR0b25zLmluZm8oKSIsZnVuY3Rpb24odCxlLG4pe3ZhciByPXRoaXM7cmV0dXJuIHQ9PT0hMT8odGhpcy5vZmYoImRlc3Ryb3kuYnRuLWluZm8iKSxZaShodCgiI2RhdGF0YWJsZXNfYnV0dG9uc19pbmZvIiksNDAwLGZ1bmN0aW9uKCl7aHQodGhpcykucmVtb3ZlKCl9KSxjbGVhclRpbWVvdXQoYXIpLGFyPW51bGwsdGhpcyk6KGFyJiZjbGVhclRpbWVvdXQoYXIpLGh0KCIjZGF0YXRhYmxlc19idXR0b25zX2luZm8iKS5sZW5ndGgmJmh0KCIjZGF0YXRhYmxlc19idXR0b25zX2luZm8iKS5yZW1vdmUoKSx0PXQ/IjxoMj4iK3QrIjwvaDI+IjoiIixYaShodCgnPGRpdiBpZD0iZGF0YXRhYmxlc19idXR0b25zX2luZm8iIGNsYXNzPSJkdC1idXR0b24taW5mbyIvPicpLmh0bWwodCkuYXBwZW5kKGh0KCI8ZGl2Lz4iKVt0eXBlb2YgZT09InN0cmluZyI/Imh0bWwiOiJhcHBlbmQiXShlKSkuY3NzKCJkaXNwbGF5Iiwibm9uZSIpLmFwcGVuZFRvKCJib2R5IikpLG4hPT12b2lkIDAmJm4hPT0wJiYoYXI9c2V0VGltZW91dChmdW5jdGlvbigpe3IuYnV0dG9ucy5pbmZvKCExKX0sbikpLHRoaXMub24oImRlc3Ryb3kuYnRuLWluZm8iLGZ1bmN0aW9uKCl7ci5idXR0b25zLmluZm8oITEpfSksdGhpcyl9KTthdC5BcGkucmVnaXN0ZXIoImJ1dHRvbnMuZXhwb3J0RGF0YSgpIixmdW5jdGlvbih0KXtpZih0aGlzLmNvbnRleHQubGVuZ3RoKXJldHVybiBZbChuZXcgYXQuQXBpKHRoaXMuY29udGV4dFswXSksdCl9KTthdC5BcGkucmVnaXN0ZXIoImJ1dHRvbnMuZXhwb3J0SW5mbygpIixmdW5jdGlvbih0KXtyZXR1cm4gdHx8KHQ9e30pLHtmaWxlbmFtZTpxbCh0LHRoaXMpLHRpdGxlOlhsKHQsdGhpcyksbWVzc2FnZVRvcDpEcyh0aGlzLHQsdC5tZXNzYWdlfHx0Lm1lc3NhZ2VUb3AsInRvcCIpLG1lc3NhZ2VCb3R0b206RHModGhpcyx0LHQubWVzc2FnZUJvdHRvbSwiYm90dG9tIil9fSk7dmFyIHFsPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5maWxlbmFtZT09PSIqIiYmdC50aXRsZSE9PSIqIiYmdC50aXRsZSE9PXZvaWQgMCYmdC50aXRsZSE9PW51bGwmJnQudGl0bGUhPT0iIj90LnRpdGxlOnQuZmlsZW5hbWU7aWYodHlwZW9mIG49PSJmdW5jdGlvbiImJihuPW4odCxlKSksbj09bnVsbClyZXR1cm4gbnVsbDtuLmluZGV4T2YoIioiKSE9PS0xJiYobj1uLnJlcGxhY2UoL1wqL2csaHQoImhlYWQgPiB0aXRsZSIpLnRleHQoKSkudHJpbSgpKSxuPW4ucmVwbGFjZSgvW15hLXpBLVowLTlfXHUwMEExLVx1RkZGRlwuLFwtXyAhXChcKV0vZywiIik7dmFyIHI9JGkodC5leHRlbnNpb24sdCxlKTtyZXR1cm4gcnx8KHI9IiIpLG4rcn0sJGk9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0PT1udWxsP251bGw6dHlwZW9mIHQ9PSJmdW5jdGlvbiI/dChlLG4pOnR9LFhsPWZ1bmN0aW9uKHQsZSl7dmFyIG49JGkodC50aXRsZSx0LGUpO3JldHVybiBuPT09bnVsbD9udWxsOm4uaW5kZXhPZigiKiIpIT09LTE/bi5yZXBsYWNlKC9cKi9nLGh0KCJoZWFkID4gdGl0bGUiKS50ZXh0KCl8fCJFeHBvcnRlZCBkYXRhIik6bn0sRHM9ZnVuY3Rpb24odCxlLG4scil7dmFyIHM9JGkobixlLHQpO2lmKHM9PT1udWxsKXJldHVybiBudWxsO3ZhciBpPWh0KCJjYXB0aW9uIix0LnRhYmxlKCkuY29udGFpbmVyKCkpLmVxKDApO2lmKHM9PT0iKiIpe3ZhciBvPWkuY3NzKCJjYXB0aW9uLXNpZGUiKTtyZXR1cm4gbyE9PXI/bnVsbDppLmxlbmd0aD9pLnRleHQoKToiIn1yZXR1cm4gc30sQXM9aHQoIjx0ZXh0YXJlYS8+IilbMF0sWWw9ZnVuY3Rpb24odCxlKXt2YXIgbj1odC5leHRlbmQoITAse30se3Jvd3M6bnVsbCxjb2x1bW5zOiIiLG1vZGlmaWVyOntzZWFyY2g6ImFwcGxpZWQiLG9yZGVyOiJhcHBsaWVkIn0sb3J0aG9nb25hbDoiZGlzcGxheSIsc3RyaXBIdG1sOiEwLHN0cmlwTmV3bGluZXM6ITAsZGVjb2RlRW50aXRpZXM6ITAsdHJpbTohMCxmb3JtYXQ6e2hlYWRlcjpmdW5jdGlvbihGKXtyZXR1cm4gdGUuc3RyaXBEYXRhKEYsbil9LGZvb3RlcjpmdW5jdGlvbihGKXtyZXR1cm4gdGUuc3RyaXBEYXRhKEYsbil9LGJvZHk6ZnVuY3Rpb24oRil7cmV0dXJuIHRlLnN0cmlwRGF0YShGLG4pfX0sY3VzdG9taXplRGF0YTpudWxsLGN1c3RvbWl6ZVppcDpudWxsfSxlKSxyPXQuY29sdW1ucyhuLmNvbHVtbnMpLmluZGV4ZXMoKS5tYXAoZnVuY3Rpb24oRil7dmFyIE89dC5jb2x1bW4oRik7cmV0dXJuIG4uZm9ybWF0LmhlYWRlcihPLnRpdGxlKCksRixPLmhlYWRlcigpKX0pLnRvQXJyYXkoKSxzPXQudGFibGUoKS5mb290ZXIoKT90LmNvbHVtbnMobi5jb2x1bW5zKS5pbmRleGVzKCkubWFwKGZ1bmN0aW9uKEYpe3ZhciBPPXQuY29sdW1uKEYpLmZvb3RlcigpLGY9IiI7aWYoTyl7dmFyIFU9aHQoIi5kdC1jb2x1bW4tdGl0bGUiLE8pO2Y9VS5sZW5ndGg/VS5odG1sKCk6aHQoTykuaHRtbCgpfXJldHVybiBuLmZvcm1hdC5mb290ZXIoZixGLE8pfSkudG9BcnJheSgpOm51bGwsaT1odC5leHRlbmQoe30sbi5tb2RpZmllcik7dC5zZWxlY3QmJnR5cGVvZiB0LnNlbGVjdC5pbmZvPT0iZnVuY3Rpb24iJiZpLnNlbGVjdGVkPT09dm9pZCAwJiZ0LnJvd3Mobi5yb3dzLGh0LmV4dGVuZCh7c2VsZWN0ZWQ6ITB9LGkpKS5hbnkoKSYmaHQuZXh0ZW5kKGkse3NlbGVjdGVkOiEwfSk7Zm9yKHZhciBvPXQucm93cyhuLnJvd3MsaSkuaW5kZXhlcygpLnRvQXJyYXkoKSx1PXQuY2VsbHMobyxuLmNvbHVtbnMse29yZGVyOmkub3JkZXJ9KSxwPXUucmVuZGVyKG4ub3J0aG9nb25hbCkudG9BcnJheSgpLGI9dS5ub2RlcygpLnRvQXJyYXkoKSxnPXUuaW5kZXhlcygpLnRvQXJyYXkoKSxtPXQuY29sdW1ucyhuLmNvbHVtbnMpLmNvdW50KCksQz1tPjA/cC5sZW5ndGgvbTowLHk9W10sVD0wLFA9MCxjPUM7UDxjO1ArKyl7Zm9yKHZhciBsPVttXSxoPTA7aDxtO2grKylsW2hdPW4uZm9ybWF0LmJvZHkocFtUXSxnW1RdLnJvdyxnW1RdLmNvbHVtbixiW1RdKSxUKys7eVtQXT1sfXZhciBfPXtoZWFkZXI6cixoZWFkZXJTdHJ1Y3R1cmU6SXMobi5mb3JtYXQuaGVhZGVyLHQudGFibGUoKS5oZWFkZXIuc3RydWN0dXJlKG4uY29sdW1ucykpLGZvb3RlcjpzLGZvb3RlclN0cnVjdHVyZTpJcyhuLmZvcm1hdC5mb290ZXIsdC50YWJsZSgpLmZvb3Rlci5zdHJ1Y3R1cmUobi5jb2x1bW5zKSksYm9keTp5fTtyZXR1cm4gbi5jdXN0b21pemVEYXRhJiZuLmN1c3RvbWl6ZURhdGEoXyksX307ZnVuY3Rpb24gSXModCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKylmb3IodmFyIHI9MDtyPGVbbl0ubGVuZ3RoO3IrKyl7dmFyIHM9ZVtuXVtyXTtzJiYocy50aXRsZT10KHMudGl0bGUscixzLmNlbGwpKX1yZXR1cm4gZX1odC5mbi5kYXRhVGFibGUuQnV0dG9ucz10ZTtodC5mbi5EYXRhVGFibGUuQnV0dG9ucz10ZTtodChkb2N1bWVudCkub24oImluaXQuZHQgcGx1Z2luLWluaXQuZHQiLGZ1bmN0aW9uKHQsZSl7aWYodC5uYW1lc3BhY2U9PT0iZHQiKXt2YXIgbj1lLm9Jbml0LmJ1dHRvbnN8fGF0LmRlZmF1bHRzLmJ1dHRvbnM7biYmIWUuX2J1dHRvbnMmJm5ldyB0ZShlLG4pLmNvbnRhaW5lcigpfX0pO2Z1bmN0aW9uIEZzKHQsZSl7dmFyIG49bmV3IGF0LkFwaSh0KSxyPWV8fG4uaW5pdCgpLmJ1dHRvbnN8fGF0LmRlZmF1bHRzLmJ1dHRvbnM7cmV0dXJuIG5ldyB0ZShuLHIpLmNvbnRhaW5lcigpfWF0LmV4dC5mZWF0dXJlLnB1c2goe2ZuSW5pdDpGcyxjRmVhdHVyZToiQiJ9KTthdC5mZWF0dXJlJiZhdC5mZWF0dXJlLnJlZ2lzdGVyKCJidXR0b25zIixGcyk7dmFyIFJzPWllKGFlKCksMSk7dmFyIHNlPVJzLmRlZmF1bHQsTHMsenM7ZnVuY3Rpb24gWmkoKXtyZXR1cm4gTHN8fHdpbmRvdy5KU1ppcH1mdW5jdGlvbiBLaSgpe3JldHVybiB6c3x8d2luZG93LnBkZk1ha2V9YXQuQnV0dG9ucy5wZGZNYWtlPWZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiBLaSgpO3pzPXR9LGF0LkJ1dHRvbnMuanN6aXA9ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuIFppKCk7THM9dH07dmFyIFdyPWZ1bmN0aW9uKHQpeyJ1c2Ugc3RyaWN0Ijt2YXIgZSxuLHIscyxpLG8sdSxwLGIsZyxtO2lmKCEodD09PXZvaWQgMHx8dHlwZW9mIG5hdmlnYXRvcjwidSImJi9NU0lFIFsxLTldXC4vLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpKXJldHVybiBtPXQuZG9jdW1lbnQsZT1mdW5jdGlvbigpe3JldHVybiB0LlVSTHx8dC53ZWJraXRVUkx8fHR9LG49bS5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJhIikscj0iZG93bmxvYWQiaW4gbixzPS9jb25zdHJ1Y3Rvci9pLnRlc3QodC5IVE1MRWxlbWVudCl8fHQuc2FmYXJpLGk9L0NyaU9TXC9bXGRdKy8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSxvPWZ1bmN0aW9uKEMpeyh0LnNldEltbWVkaWF0ZXx8dC5zZXRUaW1lb3V0KShmdW5jdGlvbigpe3Rocm93IEN9LDApfSx1PTRlNCxwPWZ1bmN0aW9uKEMpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0eXBlb2YgQz09InN0cmluZyI/ZSgpLnJldm9rZU9iamVjdFVSTChDKTpDLnJlbW92ZSgpfSx1KX0sYj1mdW5jdGlvbihDKXtyZXR1cm4vXlxzKig/OnRleHRcL1xTKnxhcHBsaWNhdGlvblwveG1sfFxTKlwvXFMqXCt4bWwpXHMqOy4qY2hhcnNldFxzKj1ccyp1dGYtOC9pLnRlc3QoQy50eXBlKT9uZXcgQmxvYihbIlx1RkVGRiIsQ10se3R5cGU6Qy50eXBlfSk6Q30sbT0oZz1mdW5jdGlvbihDLHksaCl7aHx8KEM9YihDKSk7dmFyIFAsYyxsPXRoaXMsaD1DLnR5cGU9PT0iYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIixfPWZ1bmN0aW9uKCl7Zm9yKHZhciBGPWwsTz0id3JpdGVzdGFydCBwcm9ncmVzcyB3cml0ZSB3cml0ZWVuZCIuc3BsaXQoIiAiKSxmPXZvaWQgMCxVPShPPVtdLmNvbmNhdChPKSkubGVuZ3RoO1UtLTspe3ZhciBYPUZbIm9uIitPW1VdXTtpZih0eXBlb2YgWD09ImZ1bmN0aW9uIil0cnl7WC5jYWxsKEYsZnx8Ril9Y2F0Y2goUSl7byhRKX19fTtsLnJlYWR5U3RhdGU9bC5JTklULHI/KFA9ZSgpLmNyZWF0ZU9iamVjdFVSTChDKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIEYsTztuLmhyZWY9UCxuLmRvd25sb2FkPXksRj1uLE89bmV3IE1vdXNlRXZlbnQoImNsaWNrIiksRi5kaXNwYXRjaEV2ZW50KE8pLF8oKSxwKFApLGwucmVhZHlTdGF0ZT1sLkRPTkV9KSk6KGl8fGgmJnMpJiZ0LkZpbGVSZWFkZXI/KChjPW5ldyBGaWxlUmVhZGVyKS5vbmxvYWRlbmQ9ZnVuY3Rpb24oKXt2YXIgRj1pP2MucmVzdWx0OmMucmVzdWx0LnJlcGxhY2UoL15kYXRhOlteO10qOy8sImRhdGE6YXR0YWNobWVudC9maWxlOyIpO3Qub3BlbihGLCJfYmxhbmsiKXx8KHQubG9jYXRpb24uaHJlZj1GKSxsLnJlYWR5U3RhdGU9bC5ET05FLF8oKX0sYy5yZWFkQXNEYXRhVVJMKEMpLGwucmVhZHlTdGF0ZT1sLklOSVQpOihQPVB8fGUoKS5jcmVhdGVPYmplY3RVUkwoQyksIWgmJnQub3BlbihQLCJfYmxhbmsiKXx8KHQubG9jYXRpb24uaHJlZj1QKSxsLnJlYWR5U3RhdGU9bC5ET05FLF8oKSxwKFApKX0pLnByb3RvdHlwZSx0eXBlb2YgbmF2aWdhdG9yPCJ1IiYmbmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2I/ZnVuY3Rpb24oQyx5LFQpe3JldHVybiB5PXl8fEMubmFtZXx8ImRvd25sb2FkIixUfHwoQz1iKEMpKSxuYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYihDLHkpfToobS5hYm9ydD1mdW5jdGlvbigpe30sbS5yZWFkeVN0YXRlPW0uSU5JVD0wLG0uV1JJVElORz0xLG0uRE9ORT0yLG0uZXJyb3I9bS5vbndyaXRlc3RhcnQ9bS5vbnByb2dyZXNzPW0ub253cml0ZT1tLm9uYWJvcnQ9bS5vbmVycm9yPW0ub253cml0ZWVuZD1udWxsLGZ1bmN0aW9uKEMseSxUKXtyZXR1cm4gbmV3IGcoQyx5fHxDLm5hbWV8fCJkb3dubG9hZCIsVCl9KX0odHlwZW9mIHNlbGY8InUiJiZzZWxmfHx0eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93fHwodm9pZCAwKS5jb250ZW50KSxCcz0oYXQuZmlsZVNhdmU9V3IsZnVuY3Rpb24odCl7dmFyIGU9IlNoZWV0MSI7cmV0dXJuIGU9dC5zaGVldE5hbWU/dC5zaGVldE5hbWUucmVwbGFjZSgvW1xbXF1cKlwvXFxcP1w6XS9nLCIiKTplfSksanM9ZnVuY3Rpb24odCl7cmV0dXJuIHQubmV3bGluZXx8KG5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL1dpbmRvd3MvKT9gXHIKYDpgCmApfSxOcz1mdW5jdGlvbihiLGUpe2Z1bmN0aW9uIG4oVCl7Zm9yKHZhciBQPSIiLGM9MCxsPVQubGVuZ3RoO2M8bDtjKyspMDxjJiYoUCs9byksUCs9aT9pKygiIitUW2NdKS5yZXBsYWNlKHUscCtpKStpOlRbY107cmV0dXJuIFB9dmFyIHI9anMoZSkscz1iLmJ1dHRvbnMuZXhwb3J0RGF0YShlLmV4cG9ydE9wdGlvbnMpLGk9ZS5maWVsZEJvdW5kYXJ5LG89ZS5maWVsZFNlcGFyYXRvcix1PW5ldyBSZWdFeHAoaSwiZyIpLHA9ZS5lc2NhcGVDaGFyIT09dm9pZCAwP2UuZXNjYXBlQ2hhcjoiXFwiLGI9IiIsZz0iIixtPVtdO2UuaGVhZGVyJiYoYj1zLmhlYWRlclN0cnVjdHVyZS5tYXAoZnVuY3Rpb24oVCl7cmV0dXJuIG4oVC5tYXAoZnVuY3Rpb24oUCl7cmV0dXJuIFA/UC50aXRsZToiIn0pKX0pLmpvaW4ocikrciksZS5mb290ZXImJnMuZm9vdGVyJiYoZz1zLmZvb3RlclN0cnVjdHVyZS5tYXAoZnVuY3Rpb24oVCl7cmV0dXJuIG4oVC5tYXAoZnVuY3Rpb24oUCl7cmV0dXJuIFA/UC50aXRsZToiIn0pKX0pLmpvaW4ocikrcik7Zm9yKHZhciBDPTAseT1zLmJvZHkubGVuZ3RoO0M8eTtDKyspbS5wdXNoKG4ocy5ib2R5W0NdKSk7cmV0dXJue3N0cjpiK20uam9pbihyKStyK2cscm93czptLmxlbmd0aH19LE9zPWZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiU2FmYXJpIikhPT0tMSYmbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJDaHJvbWUiKT09PS0xJiZuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk9wZXJhIik9PT0tMSYmISEoKHQ9bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvQXBwbGVXZWJLaXRcLyhcZCtcLlxkKykvKSkmJjE8dC5sZW5ndGgmJit0WzFdPDYwMy4xKX07ZnVuY3Rpb24gb3IodCl7Zm9yKHZhciBlPTY1LG49OTAtZSsxLHI9IiI7MDw9dDspcj1TdHJpbmcuZnJvbUNoYXJDb2RlKHQlbitlKStyLHQ9TWF0aC5mbG9vcih0L24pLTE7cmV0dXJuIHJ9dHJ5e0dyPW5ldyBYTUxTZXJpYWxpemVyfWNhdGNoe312YXIgc3IsR3I7ZnVuY3Rpb24gTXModCxlKXtzcj09PXZvaWQgMCYmKHNyPUdyLnNlcmlhbGl6ZVRvU3RyaW5nKG5ldyB3aW5kb3cuRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKFZzWyJ4bC93b3Jrc2hlZXRzL3NoZWV0MS54bWwiXSwidGV4dC94bWwiKSkuaW5kZXhPZigieG1sbnM6ciIpPT09LTEpLHNlLmVhY2goZSxmdW5jdGlvbihuLHIpe2lmKHNlLmlzUGxhaW5PYmplY3QocikpTXModC5mb2xkZXIobikscik7ZWxzZXtpZihzcil7Zm9yKHZhciBzLGk9ci5jaGlsZE5vZGVzWzBdLG89W10sdT1pLmF0dHJpYnV0ZXMubGVuZ3RoLTE7MDw9dTt1LS0pe3ZhciBwPWkuYXR0cmlidXRlc1t1XS5ub2RlTmFtZSxiPWkuYXR0cmlidXRlc1t1XS5ub2RlVmFsdWU7cC5pbmRleE9mKCI6IikhPT0tMSYmKG8ucHVzaCh7bmFtZTpwLHZhbHVlOmJ9KSxpLnJlbW92ZUF0dHJpYnV0ZShwKSl9Zm9yKHU9MCxzPW8ubGVuZ3RoO3U8czt1Kyspe3ZhciBnPXIuY3JlYXRlQXR0cmlidXRlKG9bdV0ubmFtZS5yZXBsYWNlKCI6IiwiX2R0X2JfbmFtZXNwYWNlX3Rva2VuXyIpKTtnLnZhbHVlPW9bdV0udmFsdWUsaS5zZXRBdHRyaWJ1dGVOb2RlKGcpfX12YXIgbT1Hci5zZXJpYWxpemVUb1N0cmluZyhyKSxtPShtPXNyPyhtPShtPW0uaW5kZXhPZigiPD94bWwiKT09PS0xPyc8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+JyttOm0pLnJlcGxhY2UoL19kdF9iX25hbWVzcGFjZV90b2tlbl8vZywiOiIpKS5yZXBsYWNlKC94bWxuczpOU1tcZF0rPSIiIE5TW1xkXSs6L2csIiIpOm0pLnJlcGxhY2UoLzwoW148Pl0qPykgeG1sbnM9IiIoW148Pl0qPyk+L2csIjwkMSAkMj4iKTt0LmZpbGUobixtKX19KX1mdW5jdGlvbiBEZSh0LGUsbil7dmFyIHI9dC5jcmVhdGVFbGVtZW50KGUpO3JldHVybiBuJiYobi5hdHRyJiZzZShyKS5hdHRyKG4uYXR0ciksbi5jaGlsZHJlbiYmc2UuZWFjaChuLmNoaWxkcmVuLGZ1bmN0aW9uKHMsaSl7ci5hcHBlbmRDaGlsZChpKX0pLG4udGV4dCE9PW51bGwpJiZuLnRleHQhPT12b2lkIDAmJnIuYXBwZW5kQ2hpbGQodC5jcmVhdGVUZXh0Tm9kZShuLnRleHQpKSxyfWZ1bmN0aW9uIFpsKHQsZSl7dmFyIG49dC5oZWFkZXJbZV0ubGVuZ3RoO3QuZm9vdGVyJiZ0LmZvb3RlcltlXSYmdC5mb290ZXJbZV0ubGVuZ3RoPm4mJihuPXQuZm9vdGVyW2VdLmxlbmd0aCk7Zm9yKHZhciByPTAscz10LmJvZHkubGVuZ3RoO3I8cztyKyspe3ZhciBpLG89dC5ib2R5W3JdW2VdO2lmKDQwPChuPW48KGk9KChvPW8hPW51bGw/by50b1N0cmluZygpOiIiKS5pbmRleE9mKGAKYCkhPT0tMT8oKGk9by5zcGxpdChgCmApKS5zb3J0KGZ1bmN0aW9uKHUscCl7cmV0dXJuIHAubGVuZ3RoLXUubGVuZ3RofSksaVswXSk6bykubGVuZ3RoKT9pOm4pKXJldHVybiA1NH1yZXR1cm4gNjwobio9MS4zNSk/bjo2fXZhciBWcz17Il9yZWxzLy5yZWxzIjonPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PjxSZWxhdGlvbnNoaXBzIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHMiPjxSZWxhdGlvbnNoaXAgSWQ9InJJZDEiIFR5cGU9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvb2ZmaWNlRG9jdW1lbnQiIFRhcmdldD0ieGwvd29ya2Jvb2sueG1sIi8+PC9SZWxhdGlvbnNoaXBzPicsInhsL19yZWxzL3dvcmtib29rLnhtbC5yZWxzIjonPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PjxSZWxhdGlvbnNoaXBzIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHMiPjxSZWxhdGlvbnNoaXAgSWQ9InJJZDEiIFR5cGU9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvd29ya3NoZWV0IiBUYXJnZXQ9IndvcmtzaGVldHMvc2hlZXQxLnhtbCIvPjxSZWxhdGlvbnNoaXAgSWQ9InJJZDIiIFR5cGU9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvc3R5bGVzIiBUYXJnZXQ9InN0eWxlcy54bWwiLz48L1JlbGF0aW9uc2hpcHM+JywiW0NvbnRlbnRfVHlwZXNdLnhtbCI6Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz48VHlwZXMgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvY29udGVudC10eXBlcyI+PERlZmF1bHQgRXh0ZW5zaW9uPSJ4bWwiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94bWwiIC8+PERlZmF1bHQgRXh0ZW5zaW9uPSJyZWxzIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UucmVsYXRpb25zaGlwcyt4bWwiIC8+PERlZmF1bHQgRXh0ZW5zaW9uPSJqcGVnIiBDb250ZW50VHlwZT0iaW1hZ2UvanBlZyIgLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii94bC93b3JrYm9vay54bWwiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldC5tYWluK3htbCIgLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii94bC93b3Jrc2hlZXRzL3NoZWV0MS54bWwiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC53b3Jrc2hlZXQreG1sIiAvPjxPdmVycmlkZSBQYXJ0TmFtZT0iL3hsL3N0eWxlcy54bWwiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zdHlsZXMreG1sIiAvPjwvVHlwZXM+JywieGwvd29ya2Jvb2sueG1sIjonPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pjx3b3JrYm9vayB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIiB4bWxuczpyPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzIj48ZmlsZVZlcnNpb24gYXBwTmFtZT0ieGwiIGxhc3RFZGl0ZWQ9IjUiIGxvd2VzdEVkaXRlZD0iNSIgcnVwQnVpbGQ9IjI0ODE2Ii8+PHdvcmtib29rUHIgc2hvd0lua0Fubm90YXRpb249IjAiIGF1dG9Db21wcmVzc1BpY3R1cmVzPSIwIi8+PGJvb2tWaWV3cz48d29ya2Jvb2tWaWV3IHhXaW5kb3c9IjAiIHlXaW5kb3c9IjAiIHdpbmRvd1dpZHRoPSIyNTYwMCIgd2luZG93SGVpZ2h0PSIxOTAyMCIgdGFiUmF0aW89IjUwMCIvPjwvYm9va1ZpZXdzPjxzaGVldHM+PHNoZWV0IG5hbWU9IlNoZWV0MSIgc2hlZXRJZD0iMSIgcjppZD0icklkMSIvPjwvc2hlZXRzPjxkZWZpbmVkTmFtZXMvPjwvd29ya2Jvb2s+JywieGwvd29ya3NoZWV0cy9zaGVldDEueG1sIjonPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pjx3b3Jrc2hlZXQgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJlYWRzaGVldG1sLzIwMDYvbWFpbiIgeG1sbnM6cj0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcyIgeG1sbnM6bWM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9tYXJrdXAtY29tcGF0aWJpbGl0eS8yMDA2IiBtYzpJZ25vcmFibGU9IngxNGFjIiB4bWxuczp4MTRhYz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDA5LzkvYWMiPjxzaGVldERhdGEvPjxtZXJnZUNlbGxzIGNvdW50PSIwIi8+PC93b3Jrc2hlZXQ+JywieGwvc3R5bGVzLnhtbCI6Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+PHN0eWxlU2hlZXQgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJlYWRzaGVldG1sLzIwMDYvbWFpbiIgeG1sbnM6bWM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9tYXJrdXAtY29tcGF0aWJpbGl0eS8yMDA2IiBtYzpJZ25vcmFibGU9IngxNGFjIiB4bWxuczp4MTRhYz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDA5LzkvYWMiPjxudW1GbXRzIGNvdW50PSI2Ij48bnVtRm10IG51bUZtdElkPSIxNjQiIGZvcm1hdENvZGU9IlskJC00MDldIywjIzAuMDA7LVskJC00MDldIywjIzAuMDAiLz48bnVtRm10IG51bUZtdElkPSIxNjUiIGZvcm1hdENvZGU9IiZxdW90O1x4QTMmcXVvdDsjLCMjMC4wMCIvPjxudW1GbXQgbnVtRm10SWQ9IjE2NiIgZm9ybWF0Q29kZT0iWyRcdTIwQUMtMl0gIywjIzAuMDAiLz48bnVtRm10IG51bUZtdElkPSIxNjciIGZvcm1hdENvZGU9IjAuMCUiLz48bnVtRm10IG51bUZtdElkPSIxNjgiIGZvcm1hdENvZGU9IiMsIyMwOygjLCMjMCkiLz48bnVtRm10IG51bUZtdElkPSIxNjkiIGZvcm1hdENvZGU9IiMsIyMwLjAwOygjLCMjMC4wMCkiLz48L251bUZtdHM+PGZvbnRzIGNvdW50PSI1IiB4MTRhYzprbm93bkZvbnRzPSIxIj48Zm9udD48c3ogdmFsPSIxMSIgLz48bmFtZSB2YWw9IkNhbGlicmkiIC8+PC9mb250Pjxmb250PjxzeiB2YWw9IjExIiAvPjxuYW1lIHZhbD0iQ2FsaWJyaSIgLz48Y29sb3IgcmdiPSJGRkZGRkZGRiIgLz48L2ZvbnQ+PGZvbnQ+PHN6IHZhbD0iMTEiIC8+PG5hbWUgdmFsPSJDYWxpYnJpIiAvPjxiIC8+PC9mb250Pjxmb250PjxzeiB2YWw9IjExIiAvPjxuYW1lIHZhbD0iQ2FsaWJyaSIgLz48aSAvPjwvZm9udD48Zm9udD48c3ogdmFsPSIxMSIgLz48bmFtZSB2YWw9IkNhbGlicmkiIC8+PHUgLz48L2ZvbnQ+PC9mb250cz48ZmlsbHMgY291bnQ9IjYiPjxmaWxsPjxwYXR0ZXJuRmlsbCBwYXR0ZXJuVHlwZT0ibm9uZSIgLz48L2ZpbGw+PGZpbGw+PHBhdHRlcm5GaWxsIHBhdHRlcm5UeXBlPSJub25lIiAvPjwvZmlsbD48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9InNvbGlkIj48ZmdDb2xvciByZ2I9IkZGRDlEOUQ5IiAvPjxiZ0NvbG9yIGluZGV4ZWQ9IjY0IiAvPjwvcGF0dGVybkZpbGw+PC9maWxsPjxmaWxsPjxwYXR0ZXJuRmlsbCBwYXR0ZXJuVHlwZT0ic29saWQiPjxmZ0NvbG9yIHJnYj0iRkZEOTk3OTUiIC8+PGJnQ29sb3IgaW5kZXhlZD0iNjQiIC8+PC9wYXR0ZXJuRmlsbD48L2ZpbGw+PGZpbGw+PHBhdHRlcm5GaWxsIHBhdHRlcm5UeXBlPSJzb2xpZCI+PGZnQ29sb3IgcmdiPSJmZmM2ZWZjZSIgLz48YmdDb2xvciBpbmRleGVkPSI2NCIgLz48L3BhdHRlcm5GaWxsPjwvZmlsbD48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9InNvbGlkIj48ZmdDb2xvciByZ2I9ImZmYzZjZmVmIiAvPjxiZ0NvbG9yIGluZGV4ZWQ9IjY0IiAvPjwvcGF0dGVybkZpbGw+PC9maWxsPjwvZmlsbHM+PGJvcmRlcnMgY291bnQ9IjIiPjxib3JkZXI+PGxlZnQgLz48cmlnaHQgLz48dG9wIC8+PGJvdHRvbSAvPjxkaWFnb25hbCAvPjwvYm9yZGVyPjxib3JkZXIgZGlhZ29uYWxVcD0iZmFsc2UiIGRpYWdvbmFsRG93bj0iZmFsc2UiPjxsZWZ0IHN0eWxlPSJ0aGluIj48Y29sb3IgYXV0bz0iMSIgLz48L2xlZnQ+PHJpZ2h0IHN0eWxlPSJ0aGluIj48Y29sb3IgYXV0bz0iMSIgLz48L3JpZ2h0Pjx0b3Agc3R5bGU9InRoaW4iPjxjb2xvciBhdXRvPSIxIiAvPjwvdG9wPjxib3R0b20gc3R5bGU9InRoaW4iPjxjb2xvciBhdXRvPSIxIiAvPjwvYm90dG9tPjxkaWFnb25hbCAvPjwvYm9yZGVyPjwvYm9yZGVycz48Y2VsbFN0eWxlWGZzIGNvdW50PSIxIj48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgLz48L2NlbGxTdHlsZVhmcz48Y2VsbFhmcyBjb3VudD0iNjgiPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSIyIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIzIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iMyIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjMiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSIzIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iMyIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSI0IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSI0IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSI1IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSIwIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSIyIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSIyIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMyIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjMiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSIzIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iMyIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjMiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSI0IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSI0IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSI1IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSI1IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlBbGlnbm1lbnQ9IjEiPjxhbGlnbm1lbnQgaG9yaXpvbnRhbD0ibGVmdCIvPjwveGY+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlBbGlnbm1lbnQ9IjEiPjxhbGlnbm1lbnQgaG9yaXpvbnRhbD0iY2VudGVyIi8+PC94Zj48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseUFsaWdubWVudD0iMSI+PGFsaWdubWVudCBob3Jpem9udGFsPSJyaWdodCIvPjwveGY+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlBbGlnbm1lbnQ9IjEiPjxhbGlnbm1lbnQgaG9yaXpvbnRhbD0iZmlsbCIvPjwveGY+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlBbGlnbm1lbnQ9IjEiPjxhbGlnbm1lbnQgdGV4dFJvdGF0aW9uPSI5MCIvPjwveGY+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlBbGlnbm1lbnQ9IjEiPjxhbGlnbm1lbnQgd3JhcFRleHQ9IjEiLz48L3hmPjx4ZiBudW1GbXRJZD0iOSIgICBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlOdW1iZXJGb3JtYXQ9IjEiLz48eGYgbnVtRm10SWQ9IjE2NCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5TnVtYmVyRm9ybWF0PSIxIi8+PHhmIG51bUZtdElkPSIxNjUiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseU51bWJlckZvcm1hdD0iMSIvPjx4ZiBudW1GbXRJZD0iMTY2IiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlOdW1iZXJGb3JtYXQ9IjEiLz48eGYgbnVtRm10SWQ9IjE2NyIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5TnVtYmVyRm9ybWF0PSIxIi8+PHhmIG51bUZtdElkPSIxNjgiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseU51bWJlckZvcm1hdD0iMSIvPjx4ZiBudW1GbXRJZD0iMTY5IiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlOdW1iZXJGb3JtYXQ9IjEiLz48eGYgbnVtRm10SWQ9IjMiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseU51bWJlckZvcm1hdD0iMSIvPjx4ZiBudW1GbXRJZD0iNCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5TnVtYmVyRm9ybWF0PSIxIi8+PHhmIG51bUZtdElkPSIxIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlOdW1iZXJGb3JtYXQ9IjEiLz48eGYgbnVtRm10SWQ9IjIiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseU51bWJlckZvcm1hdD0iMSIvPjx4ZiBudW1GbXRJZD0iMTQiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseU51bWJlckZvcm1hdD0iMSIvPjwvY2VsbFhmcz48Y2VsbFN0eWxlcyBjb3VudD0iMSI+PGNlbGxTdHlsZSBuYW1lPSJOb3JtYWwiIHhmSWQ9IjAiIGJ1aWx0aW5JZD0iMCIgLz48L2NlbGxTdHlsZXM+PGR4ZnMgY291bnQ9IjAiIC8+PHRhYmxlU3R5bGVzIGNvdW50PSIwIiBkZWZhdWx0VGFibGVTdHlsZT0iVGFibGVTdHlsZU1lZGl1bTkiIGRlZmF1bHRQaXZvdFN0eWxlPSJQaXZvdFN0eWxlTWVkaXVtNCIgLz48L3N0eWxlU2hlZXQ+J30sRXM9W3ttYXRjaDovXlwtP1xkK1wuXGQlJC8sc3R5bGU6NjAsZm10OmZ1bmN0aW9uKHQpe3JldHVybiB0LzEwMH19LHttYXRjaDovXlwtP1xkK1wuP1xkKiUkLyxzdHlsZTo1NixmbXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQvMTAwfX0se21hdGNoOi9eXC0/XCRbXGQsXSsuP1xkKiQvLHN0eWxlOjU3fSx7bWF0Y2g6L15cLT/Co1tcZCxdKy4/XGQqJC8sc3R5bGU6NTh9LHttYXRjaDovXlwtP+KCrFtcZCxdKy4/XGQqJC8sc3R5bGU6NTl9LHttYXRjaDovXlwtP1xkKyQvLHN0eWxlOjY1fSx7bWF0Y2g6L15cLT9cZCtcLlxkezJ9JC8sc3R5bGU6NjZ9LHttYXRjaDovXlwoW1xkLF0rXCkkLyxzdHlsZTo2MSxmbXQ6ZnVuY3Rpb24odCl7cmV0dXJuLTEqdC5yZXBsYWNlKC9bXChcKV0vZywiIil9fSx7bWF0Y2g6L15cKFtcZCxdK1wuXGR7Mn1cKSQvLHN0eWxlOjYyLGZtdDpmdW5jdGlvbih0KXtyZXR1cm4tMSp0LnJlcGxhY2UoL1tcKFwpXS9nLCIiKX19LHttYXRjaDovXlwtP1tcZCxdKyQvLHN0eWxlOjYzfSx7bWF0Y2g6L15cLT9bXGQsXStcLlxkezJ9JC8sc3R5bGU6NjR9LHttYXRjaDovXigxOVxkXGR8WzItOV1cZFxkXGQpXC0oMFxkfDFbMDEyXSlcLVswMTIzXVtcZF0kLyxzdHlsZTo2NyxmbXQ6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQoMjU1NjkrRGF0ZS5wYXJzZSh0KS84NjRlNSl9fV0sVXI9ZnVuY3Rpb24odCxlLG4scixzKXt2YXIgaT1zZSgibWVyZ2VDZWxscyIsdCk7aVswXS5hcHBlbmRDaGlsZChEZSh0LCJtZXJnZUNlbGwiLHthdHRyOntyZWY6b3IobikrZSsiOiIrb3IobitzLTEpKyhlK3ItMSl9fSkpLGkuYXR0cigiY291bnQiLHBhcnNlRmxvYXQoaS5hdHRyKCJjb3VudCIpKSsxKX07YXQuZXh0LmJ1dHRvbnMuY29weUh0bWw1PXtjbGFzc05hbWU6ImJ1dHRvbnMtY29weSBidXR0b25zLWh0bWw1Iix0ZXh0OmZ1bmN0aW9uKHQpe3JldHVybiB0LmkxOG4oImJ1dHRvbnMuY29weSIsIkNvcHkiKX0sYWN0aW9uOmZ1bmN0aW9uKHQsZSxuLHIscyl7dmFyIGk9TnMoZSxyKSxtPWUuYnV0dG9ucy5leHBvcnRJbmZvKHIpLHA9anMociksbz1pLnN0cix1PXNlKCI8ZGl2Lz4iKS5jc3Moe2hlaWdodDoxLHdpZHRoOjEsb3ZlcmZsb3c6ImhpZGRlbiIscG9zaXRpb246ImZpeGVkIix0b3A6MCxsZWZ0OjB9KSxwPShtLnRpdGxlJiYobz1tLnRpdGxlK3ArcCtvKSxtLm1lc3NhZ2VUb3AmJihvPW0ubWVzc2FnZVRvcCtwK3ArbyksbS5tZXNzYWdlQm90dG9tJiYobz1vK3ArcCttLm1lc3NhZ2VCb3R0b20pLHIuY3VzdG9taXplJiYobz1yLmN1c3RvbWl6ZShvLHIsZSkpLHNlKCI8dGV4dGFyZWEgcmVhZG9ubHkvPiIpLnZhbChvKS5hcHBlbmRUbyh1KSk7aWYoZG9jdW1lbnQucXVlcnlDb21tYW5kU3VwcG9ydGVkKCJjb3B5Iikpe3UuYXBwZW5kVG8oZS50YWJsZSgpLmNvbnRhaW5lcigpKSxwWzBdLmZvY3VzKCkscFswXS5zZWxlY3QoKTt0cnl7dmFyIGI9ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKTtpZih1LnJlbW92ZSgpLGIpcmV0dXJuIHIuY29weVN1Y2Nlc3MmJmUuYnV0dG9ucy5pbmZvKGUuaTE4bigiYnV0dG9ucy5jb3B5VGl0bGUiLCJDb3B5IHRvIGNsaXBib2FyZCIpLGUuaTE4bigiYnV0dG9ucy5jb3B5U3VjY2VzcyIsezE6IkNvcGllZCBvbmUgcm93IHRvIGNsaXBib2FyZCIsXzoiQ29waWVkICVkIHJvd3MgdG8gY2xpcGJvYXJkIn0saS5yb3dzKSwyZTMpLHZvaWQgcygpfWNhdGNoe319ZnVuY3Rpb24gZygpe0Mub2ZmKCJjbGljay5idXR0b25zLWNvcHkiKSxzZShkb2N1bWVudCkub2ZmKCIuYnV0dG9ucy1jb3B5IiksZS5idXR0b25zLmluZm8oITEpfXZhciBtPXNlKCI8c3Bhbj4iK2UuaTE4bigiYnV0dG9ucy5jb3B5S2V5cyIsIlByZXNzIDxpPmN0cmw8L2k+IG9yIDxpPlx1MjMxODwvaT4gKyA8aT5DPC9pPiB0byBjb3B5IHRoZSB0YWJsZSBkYXRhPGJyPnRvIHlvdXIgc3lzdGVtIGNsaXBib2FyZC48YnI+PGJyPlRvIGNhbmNlbCwgY2xpY2sgdGhpcyBtZXNzYWdlIG9yIHByZXNzIGVzY2FwZS4iKSsiPC9zcGFuPiIpLmFwcGVuZCh1KSxDPShlLmJ1dHRvbnMuaW5mbyhlLmkxOG4oImJ1dHRvbnMuY29weVRpdGxlIiwiQ29weSB0byBjbGlwYm9hcmQiKSxtLDApLHBbMF0uZm9jdXMoKSxwWzBdLnNlbGVjdCgpLHNlKG0pLmNsb3Nlc3QoIi5kdC1idXR0b24taW5mbyIpKTtDLm9uKCJjbGljay5idXR0b25zLWNvcHkiLGZ1bmN0aW9uKCl7ZygpLHMoKX0pLHNlKGRvY3VtZW50KS5vbigia2V5ZG93bi5idXR0b25zLWNvcHkiLGZ1bmN0aW9uKHkpe3kua2V5Q29kZT09PTI3JiYoZygpLHMoKSl9KS5vbigiY29weS5idXR0b25zLWNvcHkgY3V0LmJ1dHRvbnMtY29weSIsZnVuY3Rpb24oKXtnKCkscygpfSl9LGFzeW5jOjEwMCxjb3B5U3VjY2VzczohMCxleHBvcnRPcHRpb25zOnt9LGZpZWxkU2VwYXJhdG9yOiIJIixmaWVsZEJvdW5kYXJ5OiIiLGhlYWRlcjohMCxmb290ZXI6ITAsdGl0bGU6IioiLG1lc3NhZ2VUb3A6IioiLG1lc3NhZ2VCb3R0b206IioifSxhdC5leHQuYnV0dG9ucy5jc3ZIdG1sNT17Ym9tOiExLGNsYXNzTmFtZToiYnV0dG9ucy1jc3YgYnV0dG9ucy1odG1sNSIsYXZhaWxhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5GaWxlUmVhZGVyIT09dm9pZCAwJiZ3aW5kb3cuQmxvYn0sdGV4dDpmdW5jdGlvbih0KXtyZXR1cm4gdC5pMThuKCJidXR0b25zLmNzdiIsIkNTViIpfSxhY3Rpb246ZnVuY3Rpb24odCxlLG4scixzKXt2YXIgaT1OcyhlLHIpLnN0cixvPWUuYnV0dG9ucy5leHBvcnRJbmZvKHIpLHU9ci5jaGFyc2V0O3IuY3VzdG9taXplJiYoaT1yLmN1c3RvbWl6ZShpLHIsZSkpLHU9dSE9PSExPyh1PXV8fGRvY3VtZW50LmNoYXJhY3RlclNldHx8ZG9jdW1lbnQuY2hhcnNldCkmJiI7Y2hhcnNldD0iK3U6IiIsci5ib20mJihpPSJcdUZFRkYiK2kpLFdyKG5ldyBCbG9iKFtpXSx7dHlwZToidGV4dC9jc3YiK3V9KSxvLmZpbGVuYW1lLCEwKSxzKCl9LGFzeW5jOjEwMCxmaWxlbmFtZToiKiIsZXh0ZW5zaW9uOiIuY3N2IixleHBvcnRPcHRpb25zOnt9LGZpZWxkU2VwYXJhdG9yOiIsIixmaWVsZEJvdW5kYXJ5OiciJyxlc2NhcGVDaGFyOiciJyxjaGFyc2V0Om51bGwsaGVhZGVyOiEwLGZvb3RlcjohMH0sYXQuZXh0LmJ1dHRvbnMuZXhjZWxIdG1sNT17Y2xhc3NOYW1lOiJidXR0b25zLWV4Y2VsIGJ1dHRvbnMtaHRtbDUiLGF2YWlsYWJsZTpmdW5jdGlvbigpe3JldHVybiB3aW5kb3cuRmlsZVJlYWRlciE9PXZvaWQgMCYmWmkoKSE9PXZvaWQgMCYmIU9zKCkmJkdyfSx0ZXh0OmZ1bmN0aW9uKHQpe3JldHVybiB0LmkxOG4oImJ1dHRvbnMuZXhjZWwiLCJFeGNlbCIpfSxhY3Rpb246ZnVuY3Rpb24odCxlLG4scixzKXtmdW5jdGlvbiBpKFEpe3JldHVybiBRPVZzW1FdLHNlLnBhcnNlWE1MKFEpfWZ1bmN0aW9uIG8oUSl7Zz1EZShDLCJyb3ciLHthdHRyOntyOmI9bSsxfX0pO2Zvcih2YXIgRT0wLCQ9US5sZW5ndGg7RTwkO0UrKyl7dmFyIHc9b3IoRSkrIiIrYixrPW51bGw7aWYoUVtFXT09PW51bGx8fFFbRV09PT12b2lkIDB8fFFbRV09PT0iIil7aWYoci5jcmVhdGVFbXB0eUNlbGxzIT09ITApY29udGludWU7UVtFXT0iIn12YXIgUz1RW0VdO1FbRV09dHlwZW9mIFFbRV0udHJpbT09ImZ1bmN0aW9uIj9RW0VdLnRyaW0oKTpRW0VdO2Zvcih2YXIgQj0wLEw9RXMubGVuZ3RoO0I8TDtCKyspe3ZhciBSPUVzW0JdO2lmKFFbRV0ubWF0Y2gmJiFRW0VdLm1hdGNoKC9eMFxkKy8pJiZRW0VdLm1hdGNoKFIubWF0Y2gpKXt2YXIgcT1RW0VdLnJlcGxhY2UoL1teXGRcLlwtXS9nLCIiKTtSLmZtdCYmKHE9Ui5mbXQocSkpLGs9RGUoQywiYyIse2F0dHI6e3I6dyxzOlIuc3R5bGV9LGNoaWxkcmVuOltEZShDLCJ2Iix7dGV4dDpxfSldfSk7YnJlYWt9fWs9a3x8KHR5cGVvZiBRW0VdPT0ibnVtYmVyInx8UVtFXS5tYXRjaCYmUVtFXS5tYXRjaCgvXi0/XGQrKFwuXGQrKT8oW2VFXVwtP1xkKyk/JC8pJiYhUVtFXS5tYXRjaCgvXjBcZCsvKT9EZShDLCJjIix7YXR0cjp7dDoibiIscjp3fSxjaGlsZHJlbjpbRGUoQywidiIse3RleHQ6UVtFXX0pXX0pOihTPVMucmVwbGFjZT9TLnJlcGxhY2UoL1tceDAwLVx4MDlceDBCXHgwQ1x4MEUtXHgxRlx4N0YtXHg5Rl0vZywiIik6UyxEZShDLCJjIix7YXR0cjp7dDoiaW5saW5lU3RyIixyOnd9LGNoaWxkcmVuOntyb3c6RGUoQywiaXMiLHtjaGlsZHJlbjp7cm93OkRlKEMsInQiLHt0ZXh0OlMsYXR0cjp7InhtbDpzcGFjZSI6InByZXNlcnZlIn19KX19KX19KSkpLGcuYXBwZW5kQ2hpbGQoayl9eS5hcHBlbmRDaGlsZChnKSxtKyt9ZnVuY3Rpb24gdShRKXtRLmZvckVhY2goZnVuY3Rpb24oRSl7byhFLm1hcChmdW5jdGlvbigkKXtyZXR1cm4gJD8kLnRpdGxlOiIifSkpLHNlKCJyb3c6bGFzdCBjIixDKS5hdHRyKCJzIiwiMiIpLEUuZm9yRWFjaChmdW5jdGlvbigkLHcpeyQmJigxPCQuY29sU3Bhbnx8MTwkLnJvd1NwYW4pJiZVcihDLG0sdywkLnJvd1NwYW4sJC5jb2xTcGFuKX0pfSl9dmFyIHAsYixnLG09MCxDPWkoInhsL3dvcmtzaGVldHMvc2hlZXQxLnhtbCIpLHk9Qy5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2hlZXREYXRhIilbMF0sVD17X3JlbHM6eyIucmVscyI6aSgiX3JlbHMvLnJlbHMiKX0seGw6e19yZWxzOnsid29ya2Jvb2sueG1sLnJlbHMiOmkoInhsL19yZWxzL3dvcmtib29rLnhtbC5yZWxzIil9LCJ3b3JrYm9vay54bWwiOmkoInhsL3dvcmtib29rLnhtbCIpLCJzdHlsZXMueG1sIjppKCJ4bC9zdHlsZXMueG1sIiksd29ya3NoZWV0czp7InNoZWV0MS54bWwiOkN9fSwiW0NvbnRlbnRfVHlwZXNdLnhtbCI6aSgiW0NvbnRlbnRfVHlwZXNdLnhtbCIpfSxQPWUuYnV0dG9ucy5leHBvcnREYXRhKHIuZXhwb3J0T3B0aW9ucyksYz1lLmJ1dHRvbnMuZXhwb3J0SW5mbyhyKTtjLnRpdGxlJiYobyhbYy50aXRsZV0pLFVyKEMsbSwwLDEsUC5oZWFkZXIubGVuZ3RoKSxzZSgicm93Omxhc3QgYyIsQykuYXR0cigicyIsIjUxIikpLGMubWVzc2FnZVRvcCYmKG8oW2MubWVzc2FnZVRvcF0pLFVyKEMsbSwwLDEsUC5oZWFkZXIubGVuZ3RoKSksci5oZWFkZXImJnUoUC5oZWFkZXJTdHJ1Y3R1cmUpO2Zvcih2YXIgVT1tLGw9MCxoPVAuYm9keS5sZW5ndGg7bDxoO2wrKylvKFAuYm9keVtsXSk7cD1tLHIuZm9vdGVyJiZQLmZvb3RlciYmdShQLmZvb3RlclN0cnVjdHVyZSksYy5tZXNzYWdlQm90dG9tJiYobyhbYy5tZXNzYWdlQm90dG9tXSksVXIoQyxtLDAsMSxQLmhlYWRlci5sZW5ndGgpKTt2YXIgXz1EZShDLCJjb2xzIik7c2UoIndvcmtzaGVldCIsQykucHJlcGVuZChfKTtmb3IodmFyIEY9MCxPPVAuaGVhZGVyLmxlbmd0aDtGPE87RisrKV8uYXBwZW5kQ2hpbGQoRGUoQywiY29sIix7YXR0cjp7bWluOkYrMSxtYXg6RisxLHdpZHRoOlpsKFAsRiksY3VzdG9tV2lkdGg6MX19KSk7dmFyIGY9VC54bFsid29ya2Jvb2sueG1sIl07c2UoInNoZWV0cyBzaGVldCIsZikuYXR0cigibmFtZSIsQnMocikpLHIuYXV0b0ZpbHRlciYmKHNlKCJtZXJnZUNlbGxzIixDKS5iZWZvcmUoRGUoQywiYXV0b0ZpbHRlciIse2F0dHI6e3JlZjoiQSIrVSsiOiIrb3IoUC5oZWFkZXIubGVuZ3RoLTEpK3B9fSkpLHNlKCJkZWZpbmVkTmFtZXMiLGYpLmFwcGVuZChEZShmLCJkZWZpbmVkTmFtZSIse2F0dHI6e25hbWU6Il94bG5tLl9GaWx0ZXJEYXRhYmFzZSIsbG9jYWxTaGVldElkOiIwIixoaWRkZW46MX0sdGV4dDoiJyIrQnMocikucmVwbGFjZSgvJy9nLCInJyIpKyInISRBJCIrVSsiOiIrb3IoUC5oZWFkZXIubGVuZ3RoLTEpK3B9KSkpLHIuY3VzdG9taXplJiZyLmN1c3RvbWl6ZShULHIsZSksc2UoIm1lcmdlQ2VsbHMiLEMpLmNoaWxkcmVuKCkubGVuZ3RoPT09MCYmc2UoIm1lcmdlQ2VsbHMiLEMpLnJlbW92ZSgpO3ZhciBmPW5ldyhaaSgpKSxVPXtjb21wcmVzc2lvbjoiREVGTEFURSIsdHlwZToiYmxvYiIsbWltZVR5cGU6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0In0sWD0oTXMoZixUKSxjLmZpbGVuYW1lKTsxNzU8WCYmKFg9WC5zdWJzdHIoMCwxNzUpKSxyLmN1c3RvbWl6ZVppcCYmci5jdXN0b21pemVaaXAoZixQLFgpLGYuZ2VuZXJhdGVBc3luYz9mLmdlbmVyYXRlQXN5bmMoVSkudGhlbihmdW5jdGlvbihRKXtXcihRLFgpLHMoKX0pOihXcihmLmdlbmVyYXRlKFUpLFgpLHMoKSl9LGFzeW5jOjEwMCxmaWxlbmFtZToiKiIsZXh0ZW5zaW9uOiIueGxzeCIsZXhwb3J0T3B0aW9uczp7fSxoZWFkZXI6ITAsZm9vdGVyOiEwLHRpdGxlOiIqIixtZXNzYWdlVG9wOiIqIixtZXNzYWdlQm90dG9tOiIqIixjcmVhdGVFbXB0eUNlbGxzOiExLGF1dG9GaWx0ZXI6ITEsc2hlZXROYW1lOiIifSxhdC5leHQuYnV0dG9ucy5wZGZIdG1sNT17Y2xhc3NOYW1lOiJidXR0b25zLXBkZiBidXR0b25zLWh0bWw1IixhdmFpbGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LkZpbGVSZWFkZXIhPT12b2lkIDAmJktpKCl9LHRleHQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQuaTE4bigiYnV0dG9ucy5wZGYiLCJQREYiKX0sYWN0aW9uOmZ1bmN0aW9uKHQsbSxuLHIscyl7dmFyIGk9bS5idXR0b25zLmV4cG9ydERhdGEoci5leHBvcnRPcHRpb25zKSxvPW0uYnV0dG9ucy5leHBvcnRJbmZvKHIpLHU9W107ci5oZWFkZXImJmkuaGVhZGVyU3RydWN0dXJlLmZvckVhY2goZnVuY3Rpb24oQyl7dS5wdXNoKEMubWFwKGZ1bmN0aW9uKHkpe3JldHVybiB5P3t0ZXh0OnkudGl0bGUsY29sU3Bhbjp5LmNvbHNwYW4scm93U3Bhbjp5LnJvd3NwYW4sc3R5bGU6InRhYmxlSGVhZGVyIn06e319KSl9KTtmb3IodmFyIHA9MCxiPWkuYm9keS5sZW5ndGg7cDxiO3ArKyl1LnB1c2goaS5ib2R5W3BdLm1hcChmdW5jdGlvbihDKXtyZXR1cm57dGV4dDpDPT1udWxsPyIiOnR5cGVvZiBDPT0ic3RyaW5nIj9DOkMudG9TdHJpbmcoKX19KSk7ci5mb290ZXImJmkuZm9vdGVyU3RydWN0dXJlLmZvckVhY2goZnVuY3Rpb24oQyl7dS5wdXNoKEMubWFwKGZ1bmN0aW9uKHkpe3JldHVybiB5P3t0ZXh0OnkudGl0bGUsY29sU3Bhbjp5LmNvbHNwYW4scm93U3Bhbjp5LnJvd3NwYW4sc3R5bGU6InRhYmxlSGVhZGVyIn06e319KSl9KTt2YXIgZz17cGFnZVNpemU6ci5wYWdlU2l6ZSxwYWdlT3JpZW50YXRpb246ci5vcmllbnRhdGlvbixjb250ZW50Olt7c3R5bGU6InRhYmxlIix0YWJsZTp7aGVhZGVyUm93czppLmhlYWRlclN0cnVjdHVyZS5sZW5ndGgsZm9vdGVyUm93czppLmZvb3RlclN0cnVjdHVyZS5sZW5ndGgsYm9keTp1fSxsYXlvdXQ6e2hMaW5lV2lkdGg6ZnVuY3Rpb24oQyx5KXtyZXR1cm4gQz09PTB8fEM9PT15LnRhYmxlLmJvZHkubGVuZ3RoPzA6LjV9LHZMaW5lV2lkdGg6ZnVuY3Rpb24oKXtyZXR1cm4gMH0saExpbmVDb2xvcjpmdW5jdGlvbihDLHkpe3JldHVybiBDPT09eS50YWJsZS5oZWFkZXJSb3dzfHxDPT09eS50YWJsZS5ib2R5Lmxlbmd0aC15LnRhYmxlLmZvb3RlclJvd3M/IiMzMzMiOiIjZGRkIn0sZmlsbENvbG9yOmZ1bmN0aW9uKEMpe3JldHVybiBDPGkuaGVhZGVyU3RydWN0dXJlLmxlbmd0aD8iI2ZmZiI6QyUyPT0wPyIjZjNmM2YzIjpudWxsfSxwYWRkaW5nVG9wOmZ1bmN0aW9uKCl7cmV0dXJuIDV9LHBhZGRpbmdCb3R0b206ZnVuY3Rpb24oKXtyZXR1cm4gNX19fV0sc3R5bGVzOnt0YWJsZUhlYWRlcjp7Ym9sZDohMCxmb250U2l6ZToxMSxhbGlnbm1lbnQ6ImNlbnRlciJ9LHRhYmxlRm9vdGVyOntib2xkOiEwLGZvbnRTaXplOjExfSx0YWJsZTp7bWFyZ2luOlswLDUsMCw1XX0sdGl0bGU6e2FsaWdubWVudDoiY2VudGVyIixmb250U2l6ZToxM30sbWVzc2FnZTp7fX0sZGVmYXVsdFN0eWxlOntmb250U2l6ZToxMH19LG09KG8ubWVzc2FnZVRvcCYmZy5jb250ZW50LnVuc2hpZnQoe3RleHQ6by5tZXNzYWdlVG9wLHN0eWxlOiJtZXNzYWdlIixtYXJnaW46WzAsMCwwLDEyXX0pLG8ubWVzc2FnZUJvdHRvbSYmZy5jb250ZW50LnB1c2goe3RleHQ6by5tZXNzYWdlQm90dG9tLHN0eWxlOiJtZXNzYWdlIixtYXJnaW46WzAsMCwwLDEyXX0pLG8udGl0bGUmJmcuY29udGVudC51bnNoaWZ0KHt0ZXh0Om8udGl0bGUsc3R5bGU6InRpdGxlIixtYXJnaW46WzAsMCwwLDEyXX0pLHIuY3VzdG9taXplJiZyLmN1c3RvbWl6ZShnLHIsbSksS2koKS5jcmVhdGVQZGYoZykpO3IuZG93bmxvYWQhPT0ib3BlbiJ8fE9zKCk/bS5kb3dubG9hZChvLmZpbGVuYW1lKTptLm9wZW4oKSxzKCl9LGFzeW5jOjEwMCx0aXRsZToiKiIsZmlsZW5hbWU6IioiLGV4dGVuc2lvbjoiLnBkZiIsZXhwb3J0T3B0aW9uczp7fSxvcmllbnRhdGlvbjoicG9ydHJhaXQiLHBhZ2VTaXplOm5hdmlnYXRvci5sYW5ndWFnZT09PSJlbi1VUyJ8fG5hdmlnYXRvci5sYW5ndWFnZT09PSJlbi1DQSI/IkxFVFRFUiI6IkE0IixoZWFkZXI6ITAsZm9vdGVyOiEwLG1lc3NhZ2VUb3A6IioiLG1lc3NhZ2VCb3R0b206IioiLGN1c3RvbWl6ZTpudWxsLGRvd25sb2FkOiJkb3dubG9hZCJ9O3ZhciBIcz1pZShhZSgpLDEpO3ZhciBqbj1Icy5kZWZhdWx0LHpuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxLbD1mdW5jdGlvbih0KXtyZXR1cm4gdD1qbih0KS5jbG9uZSgpWzBdLHQubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PSJsaW5rIiYmKHQuaHJlZj1Vcyh0LmhyZWYpKSx0Lm91dGVySFRNTH0sVXM9ZnVuY3Rpb24odCl7cmV0dXJuIHpuLmhyZWY9dCx0PXpuLmhvc3QsdC5pbmRleE9mKCIvIik9PT0tMSYmem4ucGF0aG5hbWUuaW5kZXhPZigiLyIpIT09MCYmKHQrPSIvIiksem4ucHJvdG9jb2wrIi8vIit0K3puLnBhdGhuYW1lK3puLnNlYXJjaH07YXQuZXh0LmJ1dHRvbnMucHJpbnQ9e2NsYXNzTmFtZToiYnV0dG9ucy1wcmludCIsdGV4dDpmdW5jdGlvbih0KXtyZXR1cm4gdC5pMThuKCJidXR0b25zLnByaW50IiwiUHJpbnQiKX0sYWN0aW9uOmZ1bmN0aW9uKHQsZSxuLHIscyl7dmFyIGk9ZS5idXR0b25zLmV4cG9ydERhdGEoam4uZXh0ZW5kKHtkZWNvZGVFbnRpdGllczohMX0sci5leHBvcnRPcHRpb25zKSksbz1lLmJ1dHRvbnMuZXhwb3J0SW5mbyhyKSx1PWUuY29sdW1ucyhyLmV4cG9ydE9wdGlvbnMuY29sdW1ucykubm9kZXMoKS5tYXAoZnVuY3Rpb24oeSl7cmV0dXJuIHkuY2xhc3NOYW1lfSkudG9BcnJheSgpLHA9Jzx0YWJsZSBjbGFzcz0iJytlLnRhYmxlKCkubm9kZSgpLmNsYXNzTmFtZSsnIj4nO3IuaGVhZGVyJiYocCs9Ijx0aGVhZD4iK2kuaGVhZGVyU3RydWN0dXJlLm1hcChmdW5jdGlvbih5KXtyZXR1cm4iPHRyPiIreS5tYXAoZnVuY3Rpb24oVCl7cmV0dXJuIFQ/Jzx0aCBjb2xzcGFuPSInK1QuY29sc3BhbisnIiByb3dzcGFuPSInK1Qucm93c3BhbisnIj4nK1QudGl0bGUrIjwvdGg+IjoiIn0pLmpvaW4oIiIpKyI8L3RyPiJ9KS5qb2luKCIiKSsiPC90aGVhZD4iKSxwKz0iPHRib2R5PiI7Zm9yKHZhciBiPTAsZz1pLmJvZHkubGVuZ3RoO2I8ZztiKyspcCs9ZnVuY3Rpb24oeSxUKXtmb3IodmFyIFA9Ijx0cj4iLGM9MCxsPXkubGVuZ3RoO2M8bDtjKyspe3ZhciBoPXlbY109PT1udWxsfHx5W2NdPT09dm9pZCAwPyIiOnlbY107UCs9IjwiK1QrIiAiKyh1W2NdPydjbGFzcz0iJyt1W2NdKyciJzoiIikrIj4iK2grIjwvIitUKyI+In1yZXR1cm4gUCsiPC90cj4ifShpLmJvZHlbYl0sInRkIik7cCs9IjwvdGJvZHk+IixyLmZvb3RlciYmaS5mb290ZXImJihwKz0iPHRmb290PiIraS5mb290ZXJTdHJ1Y3R1cmUubWFwKGZ1bmN0aW9uKHkpe3JldHVybiI8dHI+Iit5Lm1hcChmdW5jdGlvbihUKXtyZXR1cm4gVD8nPHRoIGNvbHNwYW49IicrVC5jb2xzcGFuKyciIHJvd3NwYW49IicrVC5yb3dzcGFuKyciPicrVC50aXRsZSsiPC90aD4iOiIifSkuam9pbigiIikrIjwvdHI+In0pLmpvaW4oIiIpKyI8L3Rmb290PiIpLHArPSI8L3RhYmxlPiI7dmFyIG09d2luZG93Lm9wZW4oIiIsIiIpO2lmKG0pe20uZG9jdW1lbnQuY2xvc2UoKTt2YXIgQz0iPHRpdGxlPiIrby50aXRsZSsiPC90aXRsZT4iO2puKCJzdHlsZSwgbGluayIpLmVhY2goZnVuY3Rpb24oKXtDKz1LbCh0aGlzKX0pO3RyeXttLmRvY3VtZW50LmhlYWQuaW5uZXJIVE1MPUN9Y2F0Y2h7am4obS5kb2N1bWVudC5oZWFkKS5odG1sKEMpfXIuY3VzdG9tU2NyaXB0cyYmci5jdXN0b21TY3JpcHRzLmZvckVhY2goZnVuY3Rpb24oeSl7dmFyIFQ9bS5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtULnNyYz15LG0uZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChUKX0pLG0uZG9jdW1lbnQuYm9keS5pbm5lckhUTUw9IjxoMT4iK28udGl0bGUrIjwvaDE+PGRpdj4iKyhvLm1lc3NhZ2VUb3B8fCIiKSsiPC9kaXY+IitwKyI8ZGl2PiIrKG8ubWVzc2FnZUJvdHRvbXx8IiIpKyI8L2Rpdj4iLGpuKG0uZG9jdW1lbnQuYm9keSkuYWRkQ2xhc3MoImR0LXByaW50LXZpZXciKSxqbigiaW1nIixtLmRvY3VtZW50LmJvZHkpLmVhY2goZnVuY3Rpb24oeSxUKXtULnNldEF0dHJpYnV0ZSgic3JjIixVcyhULmdldEF0dHJpYnV0ZSgic3JjIikpKX0pLHIuY3VzdG9taXplJiZyLmN1c3RvbWl6ZShtLHIsZSksbS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5hdXRvUHJpbnQmJihtLnByaW50KCksbS5jbG9zZSgpKX0sMWUzKSxzKCl9ZWxzZSBlLmJ1dHRvbnMuaW5mbyhlLmkxOG4oImJ1dHRvbnMucHJpbnRFcnJvclRpdGxlIiwiVW5hYmxlIHRvIG9wZW4gcHJpbnQgdmlldyIpLGUuaTE4bigiYnV0dG9ucy5wcmludEVycm9yTXNnIiwiUGxlYXNlIGFsbG93IHBvcHVwcyBpbiB5b3VyIGJyb3dzZXIgZm9yIHRoaXMgc2l0ZSB0byBiZSBhYmxlIHRvIHZpZXcgdGhlIHByaW50IHZpZXcuIiksNWUzKX0sYXN5bmM6MTAwLHRpdGxlOiIqIixtZXNzYWdlVG9wOiIqIixtZXNzYWdlQm90dG9tOiIqIixleHBvcnRPcHRpb25zOnt9LGhlYWRlcjohMCxmb290ZXI6ITAsYXV0b1ByaW50OiEwLGN1c3RvbWl6ZTpudWxsfTt2YXIgV3M9aWUoYWUoKSwxKTt2YXIgSmw9V3MuZGVmYXVsdDtKbC5leHRlbmQoYXQuZXh0LmJ1dHRvbnMse2NvbHZpczpmdW5jdGlvbih0LGUpe3ZhciBuPW51bGwscj17ZXh0ZW5kOiJjb2xsZWN0aW9uIixpbml0OmZ1bmN0aW9uKHMsaSl7bj1pfSx0ZXh0OmZ1bmN0aW9uKHMpe3JldHVybiBzLmkxOG4oImJ1dHRvbnMuY29sdmlzIiwiQ29sdW1uIHZpc2liaWxpdHkiKX0sY2xhc3NOYW1lOiJidXR0b25zLWNvbHZpcyIsY2xvc2VCdXR0b246ITEsYnV0dG9uczpbe2V4dGVuZDoiY29sdW1uc1RvZ2dsZSIsY29sdW1uczplLmNvbHVtbnMsY29sdW1uVGV4dDplLmNvbHVtblRleHR9XX07cmV0dXJuIHQub24oImNvbHVtbi1yZW9yZGVyLmR0IitlLm5hbWVzcGFjZSxmdW5jdGlvbigpe3QuYnV0dG9uKG51bGwsdC5idXR0b24obnVsbCxuKS5ub2RlKCkpLmNvbGxlY3Rpb25SZWJ1aWxkKFt7ZXh0ZW5kOiJjb2x1bW5zVG9nZ2xlIixjb2x1bW5zOmUuY29sdW1ucyxjb2x1bW5UZXh0OmUuY29sdW1uVGV4dH1dKX0pLHJ9LGNvbHVtbnNUb2dnbGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5jb2x1bW5zKGUuY29sdW1ucykuaW5kZXhlcygpLm1hcChmdW5jdGlvbihuKXtyZXR1cm57ZXh0ZW5kOiJjb2x1bW5Ub2dnbGUiLGNvbHVtbnM6bixjb2x1bW5UZXh0OmUuY29sdW1uVGV4dH19KS50b0FycmF5KCl9LGNvbHVtblRvZ2dsZTpmdW5jdGlvbih0LGUpe3JldHVybntleHRlbmQ6ImNvbHVtblZpc2liaWxpdHkiLGNvbHVtbnM6ZS5jb2x1bW5zLGNvbHVtblRleHQ6ZS5jb2x1bW5UZXh0fX0sY29sdW1uc1Zpc2liaWxpdHk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5jb2x1bW5zKGUuY29sdW1ucykuaW5kZXhlcygpLm1hcChmdW5jdGlvbihuKXtyZXR1cm57ZXh0ZW5kOiJjb2x1bW5WaXNpYmlsaXR5Iixjb2x1bW5zOm4sdmlzaWJpbGl0eTplLnZpc2liaWxpdHksY29sdW1uVGV4dDplLmNvbHVtblRleHR9fSkudG9BcnJheSgpfSxjb2x1bW5WaXNpYmlsaXR5Ontjb2x1bW5zOnZvaWQgMCx0ZXh0OmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbi5fY29sdW1uVGV4dCh0LG4pfSxjbGFzc05hbWU6ImJ1dHRvbnMtY29sdW1uVmlzaWJpbGl0eSIsYWN0aW9uOmZ1bmN0aW9uKHQscyxuLHIpe3ZhciBzPXMuY29sdW1ucyhyLmNvbHVtbnMpLGk9cy52aXNpYmxlKCk7cy52aXNpYmxlKHIudmlzaWJpbGl0eSE9PXZvaWQgMD9yLnZpc2liaWxpdHk6IShpLmxlbmd0aCYmaVswXSkpfSxpbml0OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzO2UuYXR0cigiZGF0YS1jdi1pZHgiLG4uY29sdW1ucyksdC5vbigiY29sdW1uLXZpc2liaWxpdHkuZHQiK24ubmFtZXNwYWNlLGZ1bmN0aW9uKHMsaSl7aS5iRGVzdHJveWluZ3x8aS5uVGFibGUhPXQuc2V0dGluZ3MoKVswXS5uVGFibGV8fHIuYWN0aXZlKHQuY29sdW1uKG4uY29sdW1ucykudmlzaWJsZSgpKX0pLm9uKCJjb2x1bW4tcmVvcmRlci5kdCIrbi5uYW1lc3BhY2UsZnVuY3Rpb24oKXtuLmRlc3Ryb3lpbmd8fHQuY29sdW1ucyhuLmNvbHVtbnMpLmNvdW50KCk9PT0xJiYoci50ZXh0KG4uX2NvbHVtblRleHQodCxuKSksci5hY3RpdmUodC5jb2x1bW4obi5jb2x1bW5zKS52aXNpYmxlKCkpKX0pLHRoaXMuYWN0aXZlKHQuY29sdW1uKG4uY29sdW1ucykudmlzaWJsZSgpKX0sZGVzdHJveTpmdW5jdGlvbih0LGUsbil7dC5vZmYoImNvbHVtbi12aXNpYmlsaXR5LmR0IituLm5hbWVzcGFjZSkub2ZmKCJjb2x1bW4tcmVvcmRlci5kdCIrbi5uYW1lc3BhY2UpfSxfY29sdW1uVGV4dDpmdW5jdGlvbih0LGUpe3ZhciBuLHI7cmV0dXJuIHR5cGVvZiBlLnRleHQ9PSJzdHJpbmciP2UudGV4dDoocj10LmNvbHVtbihlLmNvbHVtbnMpLnRpdGxlKCksbj10LmNvbHVtbihlLmNvbHVtbnMpLmluZGV4KCkscj1yLnJlcGxhY2UoL1xuL2csIiAiKS5yZXBsYWNlKC88YnJccypcLz8+L2dpLCIgIikucmVwbGFjZSgvPHNlbGVjdCguKj8pPFwvc2VsZWN0XHMqPi9naSwiIikscj1hdC5CdXR0b25zLnN0cmlwSHRtbENvbW1lbnRzKHIpLHI9YXQudXRpbC5zdHJpcEh0bWwocikudHJpbSgpLGUuY29sdW1uVGV4dD9lLmNvbHVtblRleHQodCxuLHIpOnIpfX0sY29sdmlzUmVzdG9yZTp7Y2xhc3NOYW1lOiJidXR0b25zLWNvbHZpc1Jlc3RvcmUiLHRleHQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQuaTE4bigiYnV0dG9ucy5jb2x2aXNSZXN0b3JlIiwiUmVzdG9yZSB2aXNpYmlsaXR5Iil9LGluaXQ6ZnVuY3Rpb24odCxlLG4pe3QuY29sdW1ucygpLmV2ZXJ5KGZ1bmN0aW9uKCl7dmFyIHI9dGhpcy5pbml0KCk7ci5fX3Zpc09yaWdpbmFsPT09dm9pZCAwJiYoci5fX3Zpc09yaWdpbmFsPXRoaXMudmlzaWJsZSgpKX0pfSxhY3Rpb246ZnVuY3Rpb24odCxlLG4scil7ZS5jb2x1bW5zKCkuZXZlcnkoZnVuY3Rpb24ocyl7dmFyIGk9dGhpcy5pbml0KCk7dGhpcy52aXNpYmxlKGkuX192aXNPcmlnaW5hbCl9KX19LGNvbHZpc0dyb3VwOntjbGFzc05hbWU6ImJ1dHRvbnMtY29sdmlzR3JvdXAiLGFjdGlvbjpmdW5jdGlvbih0LGUsbixyKXtlLmNvbHVtbnMoci5zaG93KS52aXNpYmxlKCEwLCExKSxlLmNvbHVtbnMoci5oaWRlKS52aXNpYmxlKCExLCExKSxlLmNvbHVtbnMuYWRqdXN0KCl9LHNob3c6W10saGlkZTpbXX19KTt2YXIgUWw9aWUoYWUoKSwxKTt2YXIgR3M9aWUoYWUoKSwxKTt2YXIgdW49R3MuZGVmYXVsdDsoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIHQsZTtmdW5jdGlvbiBuKG8pe3Q9byxlPXQuZm4uZGF0YVRhYmxlfXZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbyh1LHApe3ZhciBiPXRoaXM7aWYoIWV8fCFlLnZlcnNpb25DaGVja3x8IWUudmVyc2lvbkNoZWNrKCIyIikpdGhyb3cgbmV3IEVycm9yKCJGaXhlZENvbHVtbnMgcmVxdWlyZXMgRGF0YVRhYmxlcyAyIG9yIG5ld2VyIik7dmFyIGc9bmV3IGUuQXBpKHUpO3RoaXMuY2xhc3Nlcz10LmV4dGVuZCghMCx7fSxvLmNsYXNzZXMpLHRoaXMuYz10LmV4dGVuZCghMCx7fSxvLmRlZmF1bHRzLHApLHRoaXMucz17ZHQ6ZyxydGw6dChnLnRhYmxlKCkubm9kZSgpKS5jc3MoImRpcmVjdGlvbiIpPT09InJ0bCJ9LHAmJnAubGVmdENvbHVtbnMhPT12b2lkIDAmJihwLmxlZnQ9cC5sZWZ0Q29sdW1ucykscCYmcC5sZWZ0IT09dm9pZCAwJiYodGhpcy5jW3RoaXMucy5ydGw/ImVuZCI6InN0YXJ0Il09cC5sZWZ0KSxwJiZwLnJpZ2h0Q29sdW1ucyE9PXZvaWQgMCYmKHAucmlnaHQ9cC5yaWdodENvbHVtbnMpLHAmJnAucmlnaHQhPT12b2lkIDAmJih0aGlzLmNbdGhpcy5zLnJ0bD8ic3RhcnQiOiJlbmQiXT1wLnJpZ2h0KSx0aGlzLmRvbT17Ym90dG9tQmxvY2tlcjp0KCI8ZGl2PiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5ib3R0b21CbG9ja2VyKSx0b3BCbG9ja2VyOnQoIjxkaXY+IikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnRvcEJsb2NrZXIpLHNjcm9sbGVyOnQoImRpdi5kdC1zY3JvbGwtYm9keSIsdGhpcy5zLmR0LnRhYmxlKCkuY29udGFpbmVyKCkpfSx0aGlzLnMuZHQuc2V0dGluZ3MoKVswXS5fYkluaXRDb21wbGV0ZT8odGhpcy5fYWRkU3R5bGVzKCksdGhpcy5fc2V0S2V5VGFibGVMaXN0ZW5lcigpKTpnLm9uZSgiaW5pdC5kdC5kdGZjIixmdW5jdGlvbigpe2IuX2FkZFN0eWxlcygpLGIuX3NldEtleVRhYmxlTGlzdGVuZXIoKX0pLGcub24oImNvbHVtbi1zaXppbmcuZHQuZHRmYyBjb2x1bW4tcmVvcmRlci5kdC5kdGZjIGRyYXcuZHQuZHRmYyIsZnVuY3Rpb24oKXtyZXR1cm4gYi5fYWRkU3R5bGVzKCl9KTt2YXIgbT1lLnV0aWwuZGVib3VuY2UoZnVuY3Rpb24oKXtiLl9hZGRTdHlsZXMoKX0sNTApO3JldHVybiBnLm9uKCJjb2x1bW4tdmlzaWJpbGl0eS5kdC5kdGZjIixmdW5jdGlvbigpe20oKX0pLHRoaXMuZG9tLnNjcm9sbGVyLm9uKCJzY3JvbGwuZHRmYyIsZnVuY3Rpb24oKXtyZXR1cm4gYi5fc2Nyb2xsKCl9KSx0aGlzLl9zY3JvbGwoKSxnLnNldHRpbmdzKClbMF0uX2ZpeGVkQ29sdW1ucz10aGlzLGcub24oImRlc3Ryb3kiLGZ1bmN0aW9uKCl7cmV0dXJuIGIuX2Rlc3Ryb3koKX0pLHRoaXN9cmV0dXJuIG8ucHJvdG90eXBlLmVuZD1mdW5jdGlvbih1KXtyZXR1cm4gdSE9PXZvaWQgMD8odT49MCYmdTw9dGhpcy5zLmR0LmNvbHVtbnMoKS5jb3VudCgpJiYodGhpcy5jLmVuZD11LHRoaXMuX2FkZFN0eWxlcygpKSx0aGlzKTp0aGlzLmMuZW5kfSxvLnByb3RvdHlwZS5sZWZ0PWZ1bmN0aW9uKHUpe3JldHVybiB0aGlzLnMucnRsP3RoaXMuZW5kKHUpOnRoaXMuc3RhcnQodSl9LG8ucHJvdG90eXBlLnJpZ2h0PWZ1bmN0aW9uKHUpe3JldHVybiB0aGlzLnMucnRsP3RoaXMuc3RhcnQodSk6dGhpcy5lbmQodSl9LG8ucHJvdG90eXBlLnN0YXJ0PWZ1bmN0aW9uKHUpe3JldHVybiB1IT09dm9pZCAwPyh1Pj0wJiZ1PD10aGlzLnMuZHQuY29sdW1ucygpLmNvdW50KCkmJih0aGlzLmMuc3RhcnQ9dSx0aGlzLl9hZGRTdHlsZXMoKSksdGhpcyk6dGhpcy5jLnN0YXJ0fSxvLnByb3RvdHlwZS5fYWRkU3R5bGVzPWZ1bmN0aW9uKCl7dmFyIHU9dGhpcy5zLmR0LHA9dGhpcyxiPXRoaXMucy5kdC5jb2x1bW5zKCI6dmlzaWJsZSIpLmNvdW50KCksZz11LnRhYmxlKCkuaGVhZGVyLnN0cnVjdHVyZSgiOnZpc2libGUiKSxtPXUudGFibGUoKS5mb290ZXIuc3RydWN0dXJlKCI6dmlzaWJsZSIpLEM9dS5jb2x1bW5zKCI6dmlzaWJsZSIpLndpZHRocygpLnRvQXJyYXkoKSx5PXQodS50YWJsZSgpLm5vZGUoKSkuY2xvc2VzdCgiZGl2LmR0LXNjcm9sbCIpLFQ9dCh1LnRhYmxlKCkubm9kZSgpKS5jbG9zZXN0KCJkaXYuZHQtc2Nyb2xsLWJvZHkiKVswXSxQPXRoaXMucy5ydGwsYz10aGlzLmMuc3RhcnQsbD10aGlzLmMuZW5kLGg9UD9sOmMsXz1QP2M6bCxGPXUuc2V0dGluZ3MoKVswXS5vQnJvd3Nlci5iYXJXaWR0aDtpZih5Lmxlbmd0aD09PTApcmV0dXJuIHRoaXM7VC5vZmZzZXRXaWR0aD09PVQuY2xpZW50V2lkdGgmJihGPTApLHUuY29sdW1ucygiOnZpc2libGUiKS5ldmVyeShmdW5jdGlvbihRKXt2YXIgRT11LmNvbHVtbi5pbmRleCgidG9WaXNpYmxlIixRKSwkO0U8Yz8oJD1wLl9zdW0oQyxFKSxwLl9maXhDb2x1bW4oRSwkLCJzdGFydCIsZyxtLEYpKTpFPj1iLWw/KCQ9cC5fc3VtKEMsYi1FLTEsITApLHAuX2ZpeENvbHVtbihFLCQsImVuZCIsZyxtLEYpKTpwLl9maXhDb2x1bW4oRSwwLCJub25lIixnLG0sRil9KSx0KHUudGFibGUoKS5ub2RlKCkpLnRvZ2dsZUNsYXNzKHAuY2xhc3Nlcy50YWJsZUZpeGVkU3RhcnQsYz4wKS50b2dnbGVDbGFzcyhwLmNsYXNzZXMudGFibGVGaXhlZEVuZCxsPjApLnRvZ2dsZUNsYXNzKHAuY2xhc3Nlcy50YWJsZUZpeGVkTGVmdCxoPjApLnRvZ2dsZUNsYXNzKHAuY2xhc3Nlcy50YWJsZUZpeGVkUmlnaHQsXz4wKTt2YXIgTz11LnRhYmxlKCkuaGVhZGVyKCksZj11LnRhYmxlKCkuZm9vdGVyKCksVT10KE8pLm91dGVySGVpZ2h0KCksWD10KGYpLm91dGVySGVpZ2h0KCk7dGhpcy5kb20udG9wQmxvY2tlci5hcHBlbmRUbyh5KS5jc3MoInRvcCIsMCkuY3NzKHRoaXMucy5ydGw/ImxlZnQiOiJyaWdodCIsMCkuY3NzKCJoZWlnaHQiLFUpLmNzcygid2lkdGgiLEYrMSkuY3NzKCJkaXNwbGF5IixGPyJibG9jayI6Im5vbmUiKSxmJiZ0aGlzLmRvbS5ib3R0b21CbG9ja2VyLmFwcGVuZFRvKHkpLmNzcygiYm90dG9tIiwwKS5jc3ModGhpcy5zLnJ0bD8ibGVmdCI6InJpZ2h0IiwwKS5jc3MoImhlaWdodCIsWCkuY3NzKCJ3aWR0aCIsRisxKS5jc3MoImRpc3BsYXkiLEY/ImJsb2NrIjoibm9uZSIpfSxvLnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbigpe3RoaXMucy5kdC5vZmYoIi5kdGZjIiksdGhpcy5kb20uc2Nyb2xsZXIub2ZmKCIuZHRmYyIpLHQodGhpcy5zLmR0LnRhYmxlKCkubm9kZSgpKS5yZW1vdmVDbGFzcyh0aGlzLmNsYXNzZXMudGFibGVTY3JvbGxpbmdFbmQrIiAiK3RoaXMuY2xhc3Nlcy50YWJsZVNjcm9sbGluZ0xlZnQrIiAiK3RoaXMuY2xhc3Nlcy50YWJsZVNjcm9sbGluZ1N0YXJ0KyIgIit0aGlzLmNsYXNzZXMudGFibGVTY3JvbGxpbmdSaWdodCksdGhpcy5kb20uYm90dG9tQmxvY2tlci5yZW1vdmUoKSx0aGlzLmRvbS50b3BCbG9ja2VyLnJlbW92ZSgpfSxvLnByb3RvdHlwZS5fZml4Q29sdW1uPWZ1bmN0aW9uKHUscCxiLGcsbSxDKXt2YXIgeT10aGlzLFQ9dGhpcy5zLmR0LFA9ZnVuY3Rpb24oYyxsKXtpZihiPT09Im5vbmUiKWMuY3NzKCJwb3NpdGlvbiIsIiIpLmNzcygibGVmdCIsIiIpLmNzcygicmlnaHQiLCIiKS5yZW1vdmVDbGFzcyh5LmNsYXNzZXMuZml4ZWRFbmQrIiAiK3kuY2xhc3Nlcy5maXhlZExlZnQrIiAiK3kuY2xhc3Nlcy5maXhlZFJpZ2h0KyIgIit5LmNsYXNzZXMuZml4ZWRTdGFydCk7ZWxzZXt2YXIgaD1iPT09InN0YXJ0Ij8ibGVmdCI6InJpZ2h0Ijt5LnMucnRsJiYoaD1iPT09InN0YXJ0Ij8icmlnaHQiOiJsZWZ0Iik7dmFyIF89cDtiPT09ImVuZCImJihsPT09ImhlYWRlciJ8fGw9PT0iZm9vdGVyIikmJihfKz1DKSxjLmNzcygicG9zaXRpb24iLCJzdGlja3kiKS5jc3MoaCxfKS5hZGRDbGFzcyhiPT09InN0YXJ0Ij95LmNsYXNzZXMuZml4ZWRTdGFydDp5LmNsYXNzZXMuZml4ZWRFbmQpLmFkZENsYXNzKGg9PT0ibGVmdCI/eS5jbGFzc2VzLmZpeGVkTGVmdDp5LmNsYXNzZXMuZml4ZWRSaWdodCl9fTtnLmZvckVhY2goZnVuY3Rpb24oYyl7Y1t1XSYmUCh0KGNbdV0uY2VsbCksImhlYWRlciIpfSksUChULmNvbHVtbih1KyI6dmlzaWJsZSIse3BhZ2U6ImN1cnJlbnQifSkubm9kZXMoKS50byQoKSwiYm9keSIpLG0mJm0uZm9yRWFjaChmdW5jdGlvbihjKXtjW3VdJiZQKHQoY1t1XS5jZWxsKSwiZm9vdGVyIil9KX0sby5wcm90b3R5cGUuX3Njcm9sbD1mdW5jdGlvbigpe3ZhciB1PXRoaXMuZG9tLnNjcm9sbGVyWzBdO2lmKHUpe3ZhciBwPXQodGhpcy5zLmR0LnRhYmxlKCkubm9kZSgpKS5hZGQodGhpcy5zLmR0LnRhYmxlKCkuaGVhZGVyKCkucGFyZW50Tm9kZSkuYWRkKHRoaXMucy5kdC50YWJsZSgpLmZvb3RlcigpLnBhcmVudE5vZGUpLmFkZCgiZGl2LmR0LXNjcm9sbC1oZWFkSW5uZXIgdGFibGUiLHRoaXMucy5kdC50YWJsZSgpLmNvbnRhaW5lcigpKS5hZGQoImRpdi5kdC1zY3JvbGwtZm9vdElubmVyIHRhYmxlIix0aGlzLnMuZHQudGFibGUoKS5jb250YWluZXIoKSksYj11LnNjcm9sbExlZnQsZz0hdGhpcy5zLnJ0bCxtPWIhPT0wLEM9dS5zY3JvbGxXaWR0aD51LmNsaWVudFdpZHRoK01hdGguYWJzKGIpKzE7cC50b2dnbGVDbGFzcyh0aGlzLmNsYXNzZXMudGFibGVTY3JvbGxpbmdTdGFydCxtKSxwLnRvZ2dsZUNsYXNzKHRoaXMuY2xhc3Nlcy50YWJsZVNjcm9sbGluZ0VuZCxDKSxwLnRvZ2dsZUNsYXNzKHRoaXMuY2xhc3Nlcy50YWJsZVNjcm9sbGluZ0xlZnQsbSYmZ3x8QyYmIWcpLHAudG9nZ2xlQ2xhc3ModGhpcy5jbGFzc2VzLnRhYmxlU2Nyb2xsaW5nUmlnaHQsQyYmZ3x8bSYmIWcpfX0sby5wcm90b3R5cGUuX3NldEtleVRhYmxlTGlzdGVuZXI9ZnVuY3Rpb24oKXt2YXIgdT10aGlzO3RoaXMucy5kdC5vbigia2V5LWZvY3VzLmR0LmR0ZmMiLGZ1bmN0aW9uKHAsYixnKXt2YXIgbSxDPXQoZy5ub2RlKCkpLm9mZnNldCgpLHk9dS5kb20uc2Nyb2xsZXJbMF0sVD10KHQodS5zLmR0LnRhYmxlKCkubm9kZSgpKS5jbG9zZXN0KCJkaXYuZHQtc2Nyb2xsLWJvZHkiKSk7aWYodS5jLnN0YXJ0PjApe3ZhciBQPXQodS5zLmR0LmNvbHVtbih1LmMuc3RhcnQtMSkuaGVhZGVyKCkpLGM9UC5vZmZzZXQoKSxsPVAub3V0ZXJXaWR0aCgpO3QoZy5ub2RlKCkpLmhhc0NsYXNzKHUuY2xhc3Nlcy5maXhlZExlZnQpP1Quc2Nyb2xsTGVmdCgwKTpDLmxlZnQ8Yy5sZWZ0K2wmJihtPVQuc2Nyb2xsTGVmdCgpLFQuc2Nyb2xsTGVmdChtLShjLmxlZnQrbC1DLmxlZnQpKSl9aWYodS5jLmVuZD4wKXt2YXIgaD11LnMuZHQuY29sdW1ucygpLmRhdGEoKS50b0FycmF5KCkubGVuZ3RoLF89dChnLm5vZGUoKSkub3V0ZXJXaWR0aCgpLEY9dCh1LnMuZHQuY29sdW1uKGgtdS5jLmVuZCkuaGVhZGVyKCkpLE89Ri5vZmZzZXQoKTt0KGcubm9kZSgpKS5oYXNDbGFzcyh1LmNsYXNzZXMuZml4ZWRSaWdodCk/VC5zY3JvbGxMZWZ0KHkuc2Nyb2xsV2lkdGgteS5jbGllbnRXaWR0aCk6Qy5sZWZ0K18+Ty5sZWZ0JiYobT1ULnNjcm9sbExlZnQoKSxULnNjcm9sbExlZnQobS0oTy5sZWZ0LShDLmxlZnQrXykpKSl9fSl9LG8ucHJvdG90eXBlLl9zdW09ZnVuY3Rpb24odSxwLGIpe3JldHVybiBiPT09dm9pZCAwJiYoYj0hMSksYiYmKHU9dS5zbGljZSgpLnJldmVyc2UoKSksdS5zbGljZSgwLHApLnJlZHVjZShmdW5jdGlvbihnLG0pe3JldHVybiBnK219LDApfSxvLnZlcnNpb249IjUuMC4wIixvLmNsYXNzZXM9e2JvdHRvbUJsb2NrZXI6ImR0ZmMtYm90dG9tLWJsb2NrZXIiLGZpeGVkRW5kOiJkdGZjLWZpeGVkLWVuZCIsZml4ZWRMZWZ0OiJkdGZjLWZpeGVkLWxlZnQiLGZpeGVkUmlnaHQ6ImR0ZmMtZml4ZWQtcmlnaHQiLGZpeGVkU3RhcnQ6ImR0ZmMtZml4ZWQtc3RhcnQiLHRhYmxlRml4ZWRFbmQ6ImR0ZmMtaGFzLWVuZCIsdGFibGVGaXhlZExlZnQ6ImR0ZmMtaGFzLWxlZnQiLHRhYmxlRml4ZWRSaWdodDoiZHRmYy1oYXMtcmlnaHQiLHRhYmxlRml4ZWRTdGFydDoiZHRmYy1oYXMtc3RhcnQiLHRhYmxlU2Nyb2xsaW5nRW5kOiJkdGZjLXNjcm9sbGluZy1lbmQiLHRhYmxlU2Nyb2xsaW5nTGVmdDoiZHRmYy1zY3JvbGxpbmctbGVmdCIsdGFibGVTY3JvbGxpbmdSaWdodDoiZHRmYy1zY3JvbGxpbmctcmlnaHQiLHRhYmxlU2Nyb2xsaW5nU3RhcnQ6ImR0ZmMtc2Nyb2xsaW5nLXN0YXJ0Iix0b3BCbG9ja2VyOiJkdGZjLXRvcC1ibG9ja2VyIn0sby5kZWZhdWx0cz17aTE4bjp7YnV0dG9uOiJGaXhlZENvbHVtbnMifSxzdGFydDoxLGVuZDowfSxvfSgpO24odW4pLHVuLmZuLmRhdGFUYWJsZS5GaXhlZENvbHVtbnM9cix1bi5mbi5EYXRhVGFibGUuRml4ZWRDb2x1bW5zPXI7dmFyIHM9YXQuQXBpLnJlZ2lzdGVyO3MoImZpeGVkQ29sdW1ucygpIixmdW5jdGlvbigpe3JldHVybiB0aGlzfSkscygiZml4ZWRDb2x1bW5zKCkuc3RhcnQoKSIsZnVuY3Rpb24obyl7dmFyIHU9dGhpcy5jb250ZXh0WzBdO3JldHVybiBvIT09dm9pZCAwPyh1Ll9maXhlZENvbHVtbnMuc3RhcnQobyksdGhpcyk6dS5fZml4ZWRDb2x1bW5zLnN0YXJ0KCl9KSxzKCJmaXhlZENvbHVtbnMoKS5lbmQoKSIsZnVuY3Rpb24obyl7dmFyIHU9dGhpcy5jb250ZXh0WzBdO3JldHVybiBvIT09dm9pZCAwPyh1Ll9maXhlZENvbHVtbnMuZW5kKG8pLHRoaXMpOnUuX2ZpeGVkQ29sdW1ucy5lbmQoKX0pLHMoImZpeGVkQ29sdW1ucygpLmxlZnQoKSIsZnVuY3Rpb24obyl7dmFyIHU9dGhpcy5jb250ZXh0WzBdO3JldHVybiBvIT09dm9pZCAwPyh1Ll9maXhlZENvbHVtbnMubGVmdChvKSx0aGlzKTp1Ll9maXhlZENvbHVtbnMubGVmdCgpfSkscygiZml4ZWRDb2x1bW5zKCkucmlnaHQoKSIsZnVuY3Rpb24obyl7dmFyIHU9dGhpcy5jb250ZXh0WzBdO3JldHVybiBvIT09dm9pZCAwPyh1Ll9maXhlZENvbHVtbnMucmlnaHQobyksdGhpcyk6dS5fZml4ZWRDb2x1bW5zLnJpZ2h0KCl9KSxhdC5leHQuYnV0dG9ucy5maXhlZENvbHVtbnM9e2FjdGlvbjpmdW5jdGlvbihvLHUscCxiKXt1bihwKS5hdHRyKCJhY3RpdmUiKT8odW4ocCkucmVtb3ZlQXR0cigiYWN0aXZlIikucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpLHUuZml4ZWRDb2x1bW5zKCkuc3RhcnQoMCksdS5maXhlZENvbHVtbnMoKS5lbmQoMCkpOih1bihwKS5hdHRyKCJhY3RpdmUiLCJ0cnVlIikuYWRkQ2xhc3MoImFjdGl2ZSIpLHUuZml4ZWRDb2x1bW5zKCkuc3RhcnQoYi5jb25maWcuc3RhcnQpLHUuZml4ZWRDb2x1bW5zKCkuZW5kKGIuY29uZmlnLmVuZCkpfSxjb25maWc6e3N0YXJ0OjEsZW5kOjB9LGluaXQ6ZnVuY3Rpb24obyx1LHApe28uc2V0dGluZ3MoKVswXS5fZml4ZWRDb2x1bW5zPT09dm9pZCAwJiZpKG8uc2V0dGluZ3MoKSxwKSx1bih1KS5hdHRyKCJhY3RpdmUiLCJ0cnVlIikuYWRkQ2xhc3MoImFjdGl2ZSIpLG8uYnV0dG9uKHUpLnRleHQocC50ZXh0fHxvLmkxOG4oImJ1dHRvbnMuZml4ZWRDb2x1bW5zIixvLnNldHRpbmdzKClbMF0uX2ZpeGVkQ29sdW1ucy5jLmkxOG4uYnV0dG9uKSl9LHRleHQ6bnVsbH07ZnVuY3Rpb24gaShvLHUpe3U9PT12b2lkIDAmJih1PW51bGwpO3ZhciBwPW5ldyBhdC5BcGkobyksYj11fHxwLmluaXQoKS5maXhlZENvbHVtbnN8fGF0LmRlZmF1bHRzLmZpeGVkQ29sdW1ucyxnPW5ldyByKHAsYik7cmV0dXJuIGd9dW4oZG9jdW1lbnQpLm9uKCJwbHVnaW4taW5pdC5kdCIsZnVuY3Rpb24obyx1KXtvLm5hbWVzcGFjZT09PSJkdCImJih1Lm9Jbml0LmZpeGVkQ29sdW1uc3x8YXQuZGVmYXVsdHMuZml4ZWRDb2x1bW5zKSYmKHUuX2ZpeGVkQ29sdW1uc3x8aSh1LG51bGwpKX0pfSkoKTt2YXIgbmQ9aWUoYWUoKSwxKTt2YXIgcXM9aWUoYWUoKSwxKTt2YXIganQ9cXMuZGVmYXVsdCx0ZD0wLGVkPTAsX249ZnVuY3Rpb24odCxlKXtpZighYXQudmVyc2lvbkNoZWNrfHwhYXQudmVyc2lvbkNoZWNrKCIxLjEwLjgiKSl0aHJvdyJLZXlUYWJsZSByZXF1aXJlcyBEYXRhVGFibGVzIDEuMTAuOCBvciBuZXdlciI7dGhpcy5jPWp0LmV4dGVuZCghMCx7fSxhdC5kZWZhdWx0cy5rZXlUYWJsZSxfbi5kZWZhdWx0cyxlKSx0aGlzLnM9e2R0Om5ldyBhdC5BcGkodCksZHREcmF3aW5nOiExLGVuYWJsZTohMCxmb2N1c0RyYXc6ITEsd2FpdGluZ0ZvckRyYXc6ITEsbGFzdEZvY3VzOm51bGwsbmFtZXNwYWNlOiIua2V5VGFibGUtIit0ZCsrLHRhYklucHV0Om51bGx9LHRoaXMuZG9tPXt9O3ZhciBuPXRoaXMucy5kdC5zZXR0aW5ncygpWzBdLHI9bi5rZXl0YWJsZTtpZihyKXJldHVybiByO24ua2V5dGFibGU9dGhpcyx0aGlzLl9jb25zdHJ1Y3RvcigpfTtqdC5leHRlbmQoX24ucHJvdG90eXBlLHtibHVyOmZ1bmN0aW9uKCl7dGhpcy5fYmx1cigpfSxlbmFibGU6ZnVuY3Rpb24odCl7dGhpcy5zLmVuYWJsZT10fSxlbmFibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucy5lbmFibGV9LGZvY3VzOmZ1bmN0aW9uKHQsZSl7dGhpcy5fZm9jdXModGhpcy5zLmR0LmNlbGwodCxlKSl9LGZvY3VzZWQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zLmxhc3RGb2N1cztpZighZSlyZXR1cm4hMTt2YXIgbj10aGlzLnMubGFzdEZvY3VzLmNlbGwuaW5kZXgoKTtyZXR1cm4gdC5yb3c9PT1uLnJvdyYmdC5jb2x1bW49PT1uLmNvbHVtbn0sX2NvbnN0cnVjdG9yOmZ1bmN0aW9uKCl7dGhpcy5fdGFiSW5wdXQoKTt2YXIgdD10aGlzLGU9dGhpcy5zLmR0LG49anQoZS50YWJsZSgpLm5vZGUoKSkscj10aGlzLnMubmFtZXNwYWNlLHM9ITE7aWYobi5jc3MoInBvc2l0aW9uIik9PT0ic3RhdGljIiYmbi5jc3MoInBvc2l0aW9uIiwicmVsYXRpdmUiKSxqdChlLnRhYmxlKCkuYm9keSgpKS5vbigiY2xpY2siK3IsInRoLCB0ZCIsZnVuY3Rpb24odSl7aWYodC5zLmVuYWJsZSE9PSExKXt2YXIgcD1lLmNlbGwodGhpcyk7cC5hbnkoKSYmdC5fZm9jdXMocCxudWxsLCExLHUpfX0pLGp0KGRvY3VtZW50KS5vbigia2V5ZG93biIrcixmdW5jdGlvbih1KXshcyYmIXQucy5kdERyYXdpbmc/dC5fa2V5KHUpOnUucHJldmVudERlZmF1bHQoKX0pLHRoaXMuYy5ibHVyYWJsZSYmanQoZG9jdW1lbnQpLm9uKCJtb3VzZWRvd24iK3IsZnVuY3Rpb24odSl7anQodS50YXJnZXQpLnBhcmVudHMoIi5kYXRhVGFibGVzX2ZpbHRlciwgLmR0LXNlYXJjaCIpLmxlbmd0aCYmdC5fYmx1cigpLCFqdCh1LnRhcmdldCkucGFyZW50cygpLmZpbHRlcihlLnRhYmxlKCkuY29udGFpbmVyKCkpLmxlbmd0aCYmKGp0KHUudGFyZ2V0KS5wYXJlbnRzKCJkaXYuRFRFIikubGVuZ3RofHxqdCh1LnRhcmdldCkucGFyZW50cygiZGl2LmVkaXRvci1kYXRldGltZSIpLmxlbmd0aHx8anQodS50YXJnZXQpLnBhcmVudHMoImRpdi5kdC1kYXRldGltZSIpLmxlbmd0aHx8anQodS50YXJnZXQpLnBhcmVudHMoKS5maWx0ZXIoIi5EVEZDX0Nsb25lZCIpLmxlbmd0aHx8dC5fYmx1cigpKX0pLHRoaXMuYy5lZGl0b3Ipe3ZhciBpPXRoaXMuYy5lZGl0b3I7aS5vbigib3Blbi5rZXlUYWJsZU1haW4iLGZ1bmN0aW9uKHUscCxiKXtwIT09ImlubGluZSImJnQucy5lbmFibGUmJih0LmVuYWJsZSghMSksaS5vbmUoImNsb3NlIityLGZ1bmN0aW9uKCl7dC5lbmFibGUoITApfSkpfSksdGhpcy5jLmVkaXRPbkZvY3VzJiZlLm9uKCJrZXktZm9jdXMiK3IrIiBrZXktcmVmb2N1cyIrcixmdW5jdGlvbih1LHAsYixnKXt0Ll9lZGl0b3IobnVsbCxnLCEwKX0pLGUub24oImtleSIrcixmdW5jdGlvbih1LHAsYixnLG0pe3QuX2VkaXRvcihiLG0sITEpfSksanQoZS50YWJsZSgpLmJvZHkoKSkub24oImRibGNsaWNrIityLCJ0aCwgdGQiLGZ1bmN0aW9uKHUpe2lmKHQucy5lbmFibGUhPT0hMSl7dmFyIHA9ZS5jZWxsKHRoaXMpO3AuYW55KCkmJih0LnMubGFzdEZvY3VzJiZ0aGlzIT09dC5zLmxhc3RGb2N1cy5jZWxsLm5vZGUoKXx8dC5fZWRpdG9yKG51bGwsdSwhMCkpfX0pLGkub24oInByZVN1Ym1pdCIsZnVuY3Rpb24oKXtzPSEwfSkub24oInByZVN1Ym1pdENhbmNlbGxlZCIsZnVuY3Rpb24oKXtzPSExfSkub24oInN1Ym1pdENvbXBsZXRlIixmdW5jdGlvbigpe3M9ITF9KX1lLm9uKCJzdGF0ZVNhdmVQYXJhbXMiK3IsZnVuY3Rpb24odSxwLGIpe2Iua2V5VGFibGU9dC5zLmxhc3RGb2N1cz90LnMubGFzdEZvY3VzLmNlbGwuaW5kZXgoKTpudWxsfSksZS5vbigiY29sdW1uLXZpc2liaWxpdHkiK3IsZnVuY3Rpb24odSl7dC5fdGFiSW5wdXQoKX0pLGUub24oImNvbHVtbi1yZW9yZGVyIityLGZ1bmN0aW9uKHUscCxiKXt2YXIgZz10LnMubGFzdEZvY3VzO2lmKGcmJmcuY2VsbCl7dmFyIG09Zy5yZWxhdGl2ZS5jb2x1bW47Zy5jZWxsWzBdWzBdLmNvbHVtbj1iLm1hcHBpbmcuaW5kZXhPZihtKSxnLnJlbGF0aXZlLmNvbHVtbj1iLm1hcHBpbmcuaW5kZXhPZihtKX19KSxlLm9uKCJwcmVEcmF3IityKyIgc2Nyb2xsZXItd2lsbC1kcmF3IityLGZ1bmN0aW9uKHUpe3Qucy5kdERyYXdpbmc9ITB9KSxlLm9uKCJkcmF3IityLGZ1bmN0aW9uKHUpe2lmKHQucy5kdERyYXdpbmc9ITEsdC5fdGFiSW5wdXQoKSwhdC5zLmZvY3VzRHJhdyl7dmFyIHA9dC5zLmxhc3RGb2N1cztpZihwKXt2YXIgYj10LnMubGFzdEZvY3VzLnJlbGF0aXZlLGc9ZS5wYWdlLmluZm8oKSxtPWIucm93O2lmKGcucmVjb3Jkc0Rpc3BsYXk9PT0wfHxtPGcuc3RhcnR8fG0+Zy5zdGFydCtnLmxlbmd0aClyZXR1cm47bT49Zy5yZWNvcmRzRGlzcGxheSYmKG09Zy5yZWNvcmRzRGlzcGxheS0xKSx0Ll9mb2N1cyhtLGIuY29sdW1uLCEwLHUpfX19KSx0aGlzLmMuY2xpcGJvYXJkJiZ0aGlzLl9jbGlwYm9hcmQoKSxlLm9uKCJkZXN0cm95IityLGZ1bmN0aW9uKCl7dC5fYmx1cighMCksZS5vZmYociksanQoZS50YWJsZSgpLmJvZHkoKSkub2ZmKCJjbGljayIrciwidGgsIHRkIikub2ZmKCJkYmxjbGljayIrciwidGgsIHRkIiksanQoZG9jdW1lbnQpLm9mZigibW91c2Vkb3duIityKS5vZmYoImtleWRvd24iK3IpLm9mZigiY29weSIrcikub2ZmKCJwYXN0ZSIrcil9KTt2YXIgbz1lLnN0YXRlLmxvYWRlZCgpO28mJm8ua2V5VGFibGU/ZS5vbmUoImluaXQiLGZ1bmN0aW9uKCl7dmFyIHU9ZS5jZWxsKG8ua2V5VGFibGUpO3UuYW55KCkmJnUuZm9jdXMoKX0pOnRoaXMuYy5mb2N1cyYmZS5jZWxsKHRoaXMuYy5mb2N1cykuZm9jdXMoKX0sX2JsdXI6ZnVuY3Rpb24odCl7aWYoISghdGhpcy5zLmVuYWJsZXx8IXRoaXMucy5sYXN0Rm9jdXMpKXt2YXIgZT10aGlzLnMubGFzdEZvY3VzLmNlbGw7anQoZS5ub2RlKCkpLnJlbW92ZUNsYXNzKHRoaXMuYy5jbGFzc05hbWUpLHRoaXMucy5sYXN0Rm9jdXM9bnVsbCx0fHwodGhpcy5fdXBkYXRlRml4ZWRDb2x1bW5zKGUuaW5kZXgoKS5jb2x1bW4pLHRoaXMuX2VtaXRFdmVudCgia2V5LWJsdXIiLFt0aGlzLnMuZHQsZV0pKX19LF9jbGlwYm9hcmQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnMuZHQsZT10aGlzLG49dGhpcy5zLm5hbWVzcGFjZSxyPXRoaXMuYy5jbGlwYm9hcmQ7d2luZG93LmdldFNlbGVjdGlvbiYmKChyPT09ITB8fHIuY29weSkmJmp0KGRvY3VtZW50KS5vbigiY29weSIrbixmdW5jdGlvbihzKXt2YXIgaT1zLm9yaWdpbmFsRXZlbnQsbz13aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSx1PWUucy5sYXN0Rm9jdXM7IW8mJnUmJihpLmNsaXBib2FyZERhdGEuc2V0RGF0YSgidGV4dC9wbGFpbiIsdS5jZWxsLnJlbmRlcihlLmMuY2xpcGJvYXJkT3J0aG9nb25hbCkpLGkucHJldmVudERlZmF1bHQoKSl9KSwocj09PSEwfHxyLnBhc3RlKSYmanQoZG9jdW1lbnQpLm9uKCJwYXN0ZSIrbixmdW5jdGlvbihzKXt2YXIgaT1zLm9yaWdpbmFsRXZlbnQsbz1lLnMubGFzdEZvY3VzLHU9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxwPWUuYy5lZGl0b3IsYjtpZihvJiYoIXV8fHUubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PSJib2R5IikpaWYoaS5wcmV2ZW50RGVmYXVsdCgpLHdpbmRvdy5jbGlwYm9hcmREYXRhJiZ3aW5kb3cuY2xpcGJvYXJkRGF0YS5nZXREYXRhP2I9d2luZG93LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgiVGV4dCIpOmkuY2xpcGJvYXJkRGF0YSYmaS5jbGlwYm9hcmREYXRhLmdldERhdGEmJihiPWkuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCJ0ZXh0L3BsYWluIikpLHApe3ZhciBnPWUuX2lubGluZU9wdGlvbnMoby5jZWxsLmluZGV4KCkpO3AuaW5saW5lKGcuY2VsbCxnLmZpZWxkLGcub3B0aW9ucykuc2V0KHAuZGlzcGxheWVkKClbMF0sYikuc3VibWl0KCl9ZWxzZSBvLmNlbGwuZGF0YShiKSx0LmRyYXcoITEpfSkpfSxfY29sdW1uczpmdW5jdGlvbigpe3ZhciB0PXRoaXMucy5kdCxlPXQuY29sdW1ucyh0aGlzLmMuY29sdW1ucykuaW5kZXhlcygpLG49W107cmV0dXJuIHQuY29sdW1ucygiOnZpc2libGUiKS5ldmVyeShmdW5jdGlvbihyKXtlLmluZGV4T2YocikhPT0tMSYmbi5wdXNoKHIpfSksbn0sX2VkaXRvcjpmdW5jdGlvbih0LGUsbil7aWYodGhpcy5zLmxhc3RGb2N1cyYmIShlJiZlLnR5cGU9PT0iZHJhdyIpKXt2YXIgcj10aGlzLHM9dGhpcy5zLmR0LGk9dGhpcy5jLmVkaXRvcixvPXRoaXMucy5sYXN0Rm9jdXMuY2VsbCx1PXRoaXMucy5uYW1lc3BhY2UrImUiK2VkKys7aWYoIWp0KCJkaXYuRFRFIixvLm5vZGUoKSkubGVuZ3RoJiYhKHQhPT1udWxsJiYodD49MCYmdDw9OXx8dD09PTExfHx0PT09MTJ8fHQ+PTE0JiZ0PD0zMXx8dD49MTEyJiZ0PD0xMjN8fHQ+PTEyNyYmdDw9MTU5KSkpe2UmJihlLnN0b3BQcm9wYWdhdGlvbigpLHQ9PT0xMyYmZS5wcmV2ZW50RGVmYXVsdCgpKTt2YXIgcD1mdW5jdGlvbigpe3ZhciBiPXIuX2lubGluZU9wdGlvbnMoby5pbmRleCgpKTtpLm9uZSgib3BlbiIrdSxmdW5jdGlvbigpe2kub2ZmKCJjYW5jZWxPcGVuIit1KSxufHxqdCgiZGl2LkRURV9GaWVsZF9JbnB1dENvbnRyb2wgaW5wdXQsIGRpdi5EVEVfRmllbGRfSW5wdXRDb250cm9sIHRleHRhcmVhIikuc2VsZWN0KCkscy5rZXlzLmVuYWJsZShuPyJ0YWItb25seSI6Im5hdmlnYXRpb24tb25seSIpLHMub24oImtleS1ibHVyLmVkaXRvciIsZnVuY3Rpb24oZyxtLEMpe2kucy5lZGl0T3B0cy5vbkJsdXIhPT0ic3VibWl0IiYmaS5kaXNwbGF5ZWQoKSYmQy5ub2RlKCk9PT1vLm5vZGUoKSYmaS5zdWJtaXQoKX0pLG4mJmp0KHMudGFibGUoKS5jb250YWluZXIoKSkuYWRkQ2xhc3MoImR0ay1mb2N1cy1hbHQiKSxpLm9uKCJwcmVTdWJtaXRDYW5jZWxsZWQiK3UsZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5fZm9jdXMobyxudWxsLCExKX0sNTApfSksaS5vbigic3VibWl0VW5zdWNjZXNzZnVsIit1LGZ1bmN0aW9uKCl7ci5fZm9jdXMobyxudWxsLCExKX0pLGkub25lKCJjbG9zZSIrdSxmdW5jdGlvbigpe3Mua2V5cy5lbmFibGUoITApLHMub2ZmKCJrZXktYmx1ci5lZGl0b3IiKSxpLm9mZih1KSxqdChzLnRhYmxlKCkuY29udGFpbmVyKCkpLnJlbW92ZUNsYXNzKCJkdGstZm9jdXMtYWx0Iiksci5zLnJldHVyblN1Ym1pdCYmKHIucy5yZXR1cm5TdWJtaXQ9ITEsci5fZW1pdEV2ZW50KCJrZXktcmV0dXJuLXN1Ym1pdCIsW3Msb10pKX0pfSkub25lKCJjYW5jZWxPcGVuIit1LGZ1bmN0aW9uKCl7aS5vZmYodSl9KS5pbmxpbmUoYi5jZWxsLGIuZmllbGQsYi5vcHRpb25zKX07dD09PTEzPyhuPSEwLGp0KGRvY3VtZW50KS5vbmUoImtleXVwIixmdW5jdGlvbigpe3AoKX0pKTpwKCl9fX0sX2lubGluZU9wdGlvbnM6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuYy5lZGl0b3JPcHRpb25zP3RoaXMuYy5lZGl0b3JPcHRpb25zKHQpOntjZWxsOnQsZmllbGQ6dm9pZCAwLG9wdGlvbnM6dm9pZCAwfX0sX2VtaXRFdmVudDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnMuZHQuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihuLHIpe3JldHVybiBqdChuLm5UYWJsZSkudHJpZ2dlckhhbmRsZXIodCxlKX0pfSxfZm9jdXM6ZnVuY3Rpb24odCxlLG4scil7dmFyIHM9dGhpcyxpPXRoaXMucy5kdCxvPWkucGFnZS5pbmZvKCksdT10aGlzLnMubGFzdEZvY3VzO2lmKHJ8fChyPW51bGwpLCEhdGhpcy5zLmVuYWJsZSl7aWYodHlwZW9mIHQhPSJudW1iZXIiKXtpZighdC5hbnkoKSlyZXR1cm47dmFyIHA9dC5pbmRleCgpO2lmKGU9cC5jb2x1bW4sdD1pLnJvd3Moe2ZpbHRlcjoiYXBwbGllZCIsb3JkZXI6ImFwcGxpZWQifSkuaW5kZXhlcygpLmluZGV4T2YocC5yb3cpLHQ8MClyZXR1cm47by5zZXJ2ZXJTaWRlJiYodCs9by5zdGFydCl9aWYoby5sZW5ndGghPT0tMSYmKHQ8by5zdGFydHx8dD49by5zdGFydCtvLmxlbmd0aCkpe3RoaXMucy5mb2N1c0RyYXc9ITAsdGhpcy5zLndhaXRpbmdGb3JEcmF3PSEwLGkub25lKCJkcmF3IixmdW5jdGlvbigpe3Mucy5mb2N1c0RyYXc9ITEscy5zLndhaXRpbmdGb3JEcmF3PSExLHMuX2ZvY3VzKHQsZSx2b2lkIDAscil9KS5wYWdlKE1hdGguZmxvb3IodC9vLmxlbmd0aCkpLmRyYXcoITEpO3JldHVybn1pZihqdC5pbkFycmF5KGUsdGhpcy5fY29sdW1ucygpKSE9PS0xKXtvLnNlcnZlclNpZGUmJih0LT1vLnN0YXJ0KTt2YXIgYj1pLmNlbGxzKG51bGwsZSx7c2VhcmNoOiJhcHBsaWVkIixvcmRlcjoiYXBwbGllZCJ9KS5mbGF0dGVuKCksZz1pLmNlbGwoYlt0XSksbT10aGlzLl9lbWl0RXZlbnQoImtleS1wcmVmb2N1cyIsW3RoaXMucy5kdCxnLHJ8fG51bGxdKTtpZihtLmluZGV4T2YoITEpPT09LTEpe2lmKHUpe2lmKHUubm9kZT09PWcubm9kZSgpKXt0aGlzLl9lbWl0RXZlbnQoImtleS1yZWZvY3VzIixbdGhpcy5zLmR0LGcscnx8bnVsbF0pO3JldHVybn10aGlzLl9ibHVyKCl9dGhpcy5fcmVtb3ZlT3RoZXJGb2N1cygpO3ZhciBDPWp0KGcubm9kZSgpKTtpZihDLmFkZENsYXNzKHRoaXMuYy5jbGFzc05hbWUpLHRoaXMuX3VwZGF0ZUZpeGVkQ29sdW1ucyhlKSxuPT09dm9pZCAwfHxuPT09ITApe3RoaXMuX3Njcm9sbChqdCh3aW5kb3cpLGp0KGRvY3VtZW50LmJvZHkpLEMsIm9mZnNldCIpO3ZhciB5PWkudGFibGUoKS5ib2R5KCkucGFyZW50Tm9kZTtpZih5IT09aS50YWJsZSgpLmhlYWRlcigpLnBhcmVudE5vZGUpe3ZhciBUPWp0KHkucGFyZW50Tm9kZSk7dGhpcy5fc2Nyb2xsKFQsVCxDLCJwb3NpdGlvbiIpfX12YXIgUD1pLnBhZ2UuaW5mbygpO3RoaXMucy5sYXN0Rm9jdXM9e2NlbGw6Zyxub2RlOmcubm9kZSgpLHJlbGF0aXZlOntyb3c6UC5zdGFydCtpLnJvd3Moe3BhZ2U6ImN1cnJlbnQifSkuaW5kZXhlcygpLmluZGV4T2YoZy5pbmRleCgpLnJvdyksY29sdW1uOmcuaW5kZXgoKS5jb2x1bW59fSx0aGlzLl9lbWl0RXZlbnQoImtleS1mb2N1cyIsW3RoaXMucy5kdCxnLHJ8fG51bGxdKSxpLnN0YXRlLnNhdmUoKX19fX0sX2tleTpmdW5jdGlvbih0KXtpZih0aGlzLnMud2FpdGluZ0ZvckRyYXcpe3QucHJldmVudERlZmF1bHQoKTtyZXR1cm59aWYoIWp0KHQudGFyZ2V0KS5jbG9zZXN0KCIuZHRlLWlubGluZUFkZCIpLmxlbmd0aCl7dmFyIGU9dGhpcy5zLmVuYWJsZTt0aGlzLnMucmV0dXJuU3VibWl0PShlPT09Im5hdmlnYXRpb24tb25seSJ8fGU9PT0idGFiLW9ubHkiKSYmdC5rZXlDb2RlPT09MTM7dmFyIG49ZT09PSEwfHxlPT09Im5hdmlnYXRpb24tb25seSI7aWYoZSYmISgodC5rZXlDb2RlPT09MHx8dC5jdHJsS2V5fHx0Lm1ldGFLZXl8fHQuYWx0S2V5KSYmISh0LmN0cmxLZXkmJnQuYWx0S2V5KSkpe3ZhciByPXRoaXMucy5sYXN0Rm9jdXM7aWYocil7aWYoIXRoaXMucy5kdC5jZWxsKHIubm9kZSkuYW55KCkpe3RoaXMucy5sYXN0Rm9jdXM9bnVsbDtyZXR1cm59dmFyIHM9dGhpcyxpPXRoaXMucy5kdCxvPSEhdGhpcy5zLmR0LnNldHRpbmdzKClbMF0ub1Njcm9sbC5zWTtpZighKHRoaXMuYy5rZXlzJiZqdC5pbkFycmF5KHQua2V5Q29kZSx0aGlzLmMua2V5cyk9PT0tMSkpc3dpdGNoKHQua2V5Q29kZSl7Y2FzZSA5OnQucHJldmVudERlZmF1bHQoKSx0aGlzLl9rZXlBY3Rpb24oZnVuY3Rpb24oKXtzLl9zaGlmdCh0LHQuc2hpZnRLZXk/ImxlZnQiOiJyaWdodCIsITApfSk7YnJlYWs7Y2FzZSAyNzppZihqdChyLm5vZGUpLmZpbmQoImRpdi5EVEUiKS5sZW5ndGgpcmV0dXJuO3RoaXMuYy5ibHVyYWJsZSYmZT09PSEwJiZ0aGlzLl9ibHVyKCk7YnJlYWs7Y2FzZSAzMzpjYXNlIDM0Om4mJiFvJiYodC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2tleUFjdGlvbihmdW5jdGlvbigpe2kucGFnZSh0LmtleUNvZGU9PT0zMz8icHJldmlvdXMiOiJuZXh0IikuZHJhdyghMSl9KSk7YnJlYWs7Y2FzZSAzNTpjYXNlIDM2Om4mJih0LnByZXZlbnREZWZhdWx0KCksdGhpcy5fa2V5QWN0aW9uKGZ1bmN0aW9uKCl7dmFyIHU9aS5jZWxscyh7cGFnZToiY3VycmVudCJ9KS5pbmRleGVzKCkscD1zLl9jb2x1bW5zKCk7cy5fZm9jdXMoaS5jZWxsKHVbdC5rZXlDb2RlPT09MzU/dS5sZW5ndGgtMTpwWzBdXSksbnVsbCwhMCx0KX0pKTticmVhaztjYXNlIDM3Om4mJnRoaXMuX2tleUFjdGlvbihmdW5jdGlvbigpe3MuX3NoaWZ0KHQsImxlZnQiKX0pO2JyZWFrO2Nhc2UgMzg6biYmdGhpcy5fa2V5QWN0aW9uKGZ1bmN0aW9uKCl7cy5fc2hpZnQodCwidXAiKX0pO2JyZWFrO2Nhc2UgMzk6biYmdGhpcy5fa2V5QWN0aW9uKGZ1bmN0aW9uKCl7cy5fc2hpZnQodCwicmlnaHQiKX0pO2JyZWFrO2Nhc2UgNDA6biYmdGhpcy5fa2V5QWN0aW9uKGZ1bmN0aW9uKCl7cy5fc2hpZnQodCwiZG93biIpfSk7YnJlYWs7Y2FzZSAxMTM6aWYodGhpcy5jLmVkaXRvcil7dGhpcy5fZWRpdG9yKG51bGwsdCwhMCk7YnJlYWt9ZGVmYXVsdDplPT09ITAmJnRoaXMuX2VtaXRFdmVudCgia2V5IixbaSx0LmtleUNvZGUsdGhpcy5zLmxhc3RGb2N1cy5jZWxsLHRdKTticmVha319fX19LF9rZXlBY3Rpb246ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jLmVkaXRvcjtlJiZlLm1vZGUoKSYmZS5kaXNwbGF5KCk/ZS5zdWJtaXQodCk6dCgpfSxfcmVtb3ZlT3RoZXJGb2N1czpmdW5jdGlvbigpe3ZhciB0PXRoaXMucy5kdC50YWJsZSgpLm5vZGUoKTtqdC5mbi5kYXRhVGFibGUudGFibGVzKHthcGk6ITB9KS5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGUpe3RoaXMudGFibGUoKS5ub2RlKCkhPT10JiZ0aGlzLmNlbGwuYmx1cigpfSl9LF9zY3JvbGw6ZnVuY3Rpb24odCxlLG4scil7dmFyIHM9bltyXSgpLGk9bi5vdXRlckhlaWdodCgpLG89bi5vdXRlcldpZHRoKCksdT1lLnNjcm9sbFRvcCgpLHA9ZS5zY3JvbGxMZWZ0KCksYj10LmhlaWdodCgpLGc9dC53aWR0aCgpO3I9PT0icG9zaXRpb24iJiYocy50b3ArPXBhcnNlSW50KG4uY2xvc2VzdCgidGFibGUiKS5jc3MoInRvcCIpLDEwKSkscy50b3A8dSYmcy50b3AraT51LTUmJmUuc2Nyb2xsVG9wKHMudG9wKSxzLmxlZnQ8cCYmZS5zY3JvbGxMZWZ0KHMubGVmdCkscy50b3AraT51K2ImJnMudG9wPHUrYis1JiZpPGImJmUuc2Nyb2xsVG9wKHMudG9wK2ktYikscy5sZWZ0K28+cCtnJiZvPGcmJmUuc2Nyb2xsTGVmdChzLmxlZnQrby1nKX0sX3NoaWZ0OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzLnMuZHQscz1yLnBhZ2UuaW5mbygpLGk9cy5yZWNvcmRzRGlzcGxheSxvPXRoaXMuX2NvbHVtbnMoKSx1PXRoaXMucy5sYXN0Rm9jdXM7aWYodSl7dmFyIHA9dS5jZWxsO2lmKHApe3ZhciBiPXIucm93cyh7ZmlsdGVyOiJhcHBsaWVkIixvcmRlcjoiYXBwbGllZCJ9KS5pbmRleGVzKCkuaW5kZXhPZihwLmluZGV4KCkucm93KTtzLnNlcnZlclNpZGUmJihiKz1zLnN0YXJ0KTt2YXIgZz1yLmNvbHVtbnMobykuaW5kZXhlcygpLmluZGV4T2YocC5pbmRleCgpLmNvbHVtbiksbT1iLEM9b1tnXTtqdChyLnRhYmxlKCkubm9kZSgpKS5jc3MoImRpcmVjdGlvbiIpPT09InJ0bCImJihlPT09InJpZ2h0Ij9lPSJsZWZ0IjplPT09ImxlZnQiJiYoZT0icmlnaHQiKSksZT09PSJyaWdodCI/Zz49by5sZW5ndGgtMT8obSsrLEM9b1swXSk6Qz1vW2crMV06ZT09PSJsZWZ0Ij9nPT09MD8obS0tLEM9b1tvLmxlbmd0aC0xXSk6Qz1vW2ctMV06ZT09PSJ1cCI/bS0tOmU9PT0iZG93biImJm0rKyxtPj0wJiZtPGkmJmp0LmluQXJyYXkoQyxvKSE9PS0xPyh0JiZ0LnByZXZlbnREZWZhdWx0KCksdGhpcy5fZm9jdXMobSxDLCEwLHQpKTohbnx8IXRoaXMuYy5ibHVyYWJsZT90JiZ0LnByZXZlbnREZWZhdWx0KCk6dGhpcy5fYmx1cigpfX19LF90YWJJbnB1dDpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLnMuZHQsbj10aGlzLmMudGFiSW5kZXghPT1udWxsP3RoaXMuYy50YWJJbmRleDplLnNldHRpbmdzKClbMF0uaVRhYkluZGV4O2lmKG4hPS0xKXtpZighdGhpcy5zLnRhYklucHV0KXt2YXIgcj1qdCgnPGRpdj48aW5wdXQgdHlwZT0idGV4dCIgdGFiaW5kZXg9IicrbisnIi8+PC9kaXY+JykuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLGhlaWdodDoxLHdpZHRoOjAsb3ZlcmZsb3c6ImhpZGRlbiJ9KTtyLmNoaWxkcmVuKCkub24oImZvY3VzIixmdW5jdGlvbihpKXt2YXIgbz1lLmNlbGwoIjplcSgwKSIsdC5fY29sdW1ucygpLHtwYWdlOiJjdXJyZW50In0pO28uYW55KCkmJnQuX2ZvY3VzKG8sbnVsbCwhMCxpKX0pLHRoaXMucy50YWJJbnB1dD1yfXZhciBzPXRoaXMucy5kdC5jZWxsKCI6ZXEoMCkiLCIwOnZpc2libGUiLHtwYWdlOiJjdXJyZW50IixvcmRlcjoiY3VycmVudCJ9KS5ub2RlKCk7cyYmanQocykucHJlcGVuZCh0aGlzLnMudGFiSW5wdXQpfX0sX3VwZGF0ZUZpeGVkQ29sdW1uczpmdW5jdGlvbih0KXt2YXIgZT10aGlzLnMuZHQsbj1lLnNldHRpbmdzKClbMF07aWYobi5fb0ZpeGVkQ29sdW1ucyl7dmFyIHI9bi5fb0ZpeGVkQ29sdW1ucy5zLmlMZWZ0Q29sdW1ucyxzPW4uYW9Db2x1bW5zLmxlbmd0aC1uLl9vRml4ZWRDb2x1bW5zLnMuaVJpZ2h0Q29sdW1uczsodDxyfHx0Pj1zKSYmZS5maXhlZENvbHVtbnMoKS51cGRhdGUoKX19fSk7X24uZGVmYXVsdHM9e2JsdXJhYmxlOiEwLGNsYXNzTmFtZToiZm9jdXMiLGNsaXBib2FyZDohMCxjbGlwYm9hcmRPcnRob2dvbmFsOiJkaXNwbGF5Iixjb2x1bW5zOiIiLGVkaXRvcjpudWxsLGVkaXRPbkZvY3VzOiExLGVkaXRvck9wdGlvbnM6bnVsbCxmb2N1czpudWxsLGtleXM6bnVsbCx0YWJJbmRleDpudWxsfTtfbi52ZXJzaW9uPSIyLjEyLjEiO2p0LmZuLmRhdGFUYWJsZS5LZXlUYWJsZT1fbjtqdC5mbi5EYXRhVGFibGUuS2V5VGFibGU9X247YXQuQXBpLnJlZ2lzdGVyKCJjZWxsLmJsdXIoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKHQpe3Qua2V5dGFibGUmJnQua2V5dGFibGUuYmx1cigpfSl9KTthdC5BcGkucmVnaXN0ZXIoImNlbGwoKS5mb2N1cygpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjZWxsIixmdW5jdGlvbih0LGUsbil7dC5rZXl0YWJsZSYmdC5rZXl0YWJsZS5mb2N1cyhlLG4pfSl9KTthdC5BcGkucmVnaXN0ZXIoImtleXMuZGlzYWJsZSgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24odCl7dC5rZXl0YWJsZSYmdC5rZXl0YWJsZS5lbmFibGUoITEpfSl9KTthdC5BcGkucmVnaXN0ZXIoImtleXMuZW5hYmxlKCkiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oZSl7ZS5rZXl0YWJsZSYmZS5rZXl0YWJsZS5lbmFibGUodD09PXZvaWQgMD8hMDp0KX0pfSk7YXQuQXBpLnJlZ2lzdGVyKCJrZXlzLmVuYWJsZWQoKSIsZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jb250ZXh0O3JldHVybiBlLmxlbmd0aCYmZVswXS5rZXl0YWJsZT9lWzBdLmtleXRhYmxlLmVuYWJsZWQoKTohMX0pO2F0LkFwaS5yZWdpc3Rlcigia2V5cy5tb3ZlKCkiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oZSl7ZS5rZXl0YWJsZSYmZS5rZXl0YWJsZS5fc2hpZnQobnVsbCx0LCExKX0pfSk7YXQuZXh0LnNlbGVjdG9yLmNlbGwucHVzaChmdW5jdGlvbih0LGUsbil7dmFyIHI9ZS5mb2N1c2VkLHM9dC5rZXl0YWJsZSxpPVtdO2lmKCFzfHxyPT09dm9pZCAwKXJldHVybiBuO2Zvcih2YXIgbz0wLHU9bi5sZW5ndGg7bzx1O28rKykocj09PSEwJiZzLmZvY3VzZWQobltvXSl8fHI9PT0hMSYmIXMuZm9jdXNlZChuW29dKSkmJmkucHVzaChuW29dKTtyZXR1cm4gaX0pO2p0KGRvY3VtZW50KS5vbigicHJlSW5pdC5kdC5kdGsiLGZ1bmN0aW9uKHQsZSxuKXtpZih0Lm5hbWVzcGFjZT09PSJkdCIpe3ZhciByPWUub0luaXQua2V5cyxzPWF0LmRlZmF1bHRzLmtleXM7aWYocnx8cyl7dmFyIGk9anQuZXh0ZW5kKHt9LHMscik7ciE9PSExJiZuZXcgX24oZSxpKX19fSk7dmFyIHJkPWllKGFlKCksMSk7dmFyIFhzPWllKGFlKCksMSk7dmFyIHplPVhzLmRlZmF1bHQsQ249ZnVuY3Rpb24odCxlKXtpZighYXQudmVyc2lvbkNoZWNrfHwhYXQudmVyc2lvbkNoZWNrKCIxLjExIikpdGhyb3ciUm93R3JvdXAgcmVxdWlyZXMgRGF0YVRhYmxlcyAxLjExIG9yIG5ld2VyIjt0aGlzLmM9emUuZXh0ZW5kKCEwLHt9LGF0LmRlZmF1bHRzLnJvd0dyb3VwLENuLmRlZmF1bHRzLGUpLHRoaXMucz17ZHQ6bmV3IGF0LkFwaSh0KX0sdGhpcy5kb209e307dmFyIG49dGhpcy5zLmR0LnNldHRpbmdzKClbMF0scj1uLnJvd0dyb3VwO2lmKHIpcmV0dXJuIHI7bi5yb3dHcm91cD10aGlzLHRoaXMuX2NvbnN0cnVjdG9yKCl9O3plLmV4dGVuZChDbi5wcm90b3R5cGUse2RhdGFTcmM6ZnVuY3Rpb24odCl7aWYodD09PXZvaWQgMClyZXR1cm4gdGhpcy5jLmRhdGFTcmM7dmFyIGU9dGhpcy5zLmR0O3JldHVybiB0aGlzLmMuZGF0YVNyYz10LHplKGUudGFibGUoKS5ub2RlKCkpLnRyaWdnZXJIYW5kbGVyKCJyb3dncm91cC1kYXRhc3JjLmR0IixbZSx0XSksdGhpc30sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmMuZW5hYmxlPSExLHRoaXN9LGVuYWJsZTpmdW5jdGlvbih0KXtyZXR1cm4gdD09PSExP3RoaXMuZGlzYWJsZSgpOih0aGlzLmMuZW5hYmxlPSEwLHRoaXMpfSxlbmFibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYy5lbmFibGV9LF9jb25zdHJ1Y3RvcjpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLnMuZHQsbj1lLnNldHRpbmdzKClbMF07ZS5vbigiZHJhdy5kdHJnIixmdW5jdGlvbihyLHMpe3QuYy5lbmFibGUmJm49PT1zJiZ0Ll9kcmF3KCl9KSxlLm9uKCJjb2x1bW4tdmlzaWJpbGl0eS5kdC5kdHJnIHJlc3BvbnNpdmUtcmVzaXplLmR0LmR0cmciLGZ1bmN0aW9uKCl7dC5fYWRqdXN0Q29sc3BhbigpfSksZS5vbigiZGVzdHJveSIsZnVuY3Rpb24oKXtlLm9mZigiLmR0cmciKX0pfSxfYWRqdXN0Q29sc3BhbjpmdW5jdGlvbigpe3plKCJ0ci4iK3RoaXMuYy5jbGFzc05hbWUsdGhpcy5zLmR0LnRhYmxlKCkuYm9keSgpKS5maW5kKCJ0aDp2aXNpYmxlLCB0ZDp2aXNpYmxlIikuYXR0cigiY29sc3BhbiIsdGhpcy5fY29sc3BhbigpKX0sX2NvbHNwYW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zLmR0LmNvbHVtbnMoKS52aXNpYmxlKCkucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0sMCl9LF9kcmF3OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zLmR0LGU9dGhpcy5fZ3JvdXAoMCx0LnJvd3Moe3BhZ2U6ImN1cnJlbnQifSkuaW5kZXhlcygpKTt0aGlzLl9ncm91cERpc3BsYXkoMCxlKX0sX2dyb3VwOmZ1bmN0aW9uKHQsZSl7dmFyIG49QXJyYXkuaXNBcnJheSh0aGlzLmMuZGF0YVNyYyk/dGhpcy5jLmRhdGFTcmM6W3RoaXMuYy5kYXRhU3JjXSxyPWF0LnV0aWwuZ2V0KG5bdF0pLHM9dGhpcy5zLmR0LGksbyx1LHAsYj1bXSxnPXRoaXM7Zm9yKHU9MCxwPWUubGVuZ3RoO3U8cDt1Kyspe3ZhciBtPWVbdV0sQz1zLnJvdyhtKS5kYXRhKCk7aT1yKEMsdCksaT09bnVsbCYmKGk9Zy5jLmVtcHR5RGF0YUdyb3VwKSwobz09PXZvaWQgMHx8aSE9PW8pJiYoYi5wdXNoKHtkYXRhUG9pbnQ6aSxyb3dzOltdfSksbz1pKSxiW2IubGVuZ3RoLTFdLnJvd3MucHVzaChtKX1pZihuW3QrMV0hPT12b2lkIDApZm9yKHU9MCxwPWIubGVuZ3RoO3U8cDt1KyspYlt1XS5jaGlsZHJlbj10aGlzLl9ncm91cCh0KzEsYlt1XS5yb3dzKTtyZXR1cm4gYn0sX2dyb3VwRGlzcGxheTpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLnMuZHQscixzPTAsaT1lLmxlbmd0aDtzPGk7cysrKXt2YXIgbz1lW3NdLHU9by5kYXRhUG9pbnQscCxiPW8ucm93czt0aGlzLmMuc3RhcnRSZW5kZXImJihyPXRoaXMuYy5zdGFydFJlbmRlci5jYWxsKHRoaXMsbi5yb3dzKGIpLHUsdCkscD10aGlzLl9yb3dXcmFwKHIsdGhpcy5jLnN0YXJ0Q2xhc3NOYW1lLHQpLHAmJnAuaW5zZXJ0QmVmb3JlKG4ucm93KGJbMF0pLm5vZGUoKSkpLHRoaXMuYy5lbmRSZW5kZXImJihyPXRoaXMuYy5lbmRSZW5kZXIuY2FsbCh0aGlzLG4ucm93cyhiKSx1LHQpLHA9dGhpcy5fcm93V3JhcChyLHRoaXMuYy5lbmRDbGFzc05hbWUsdCkscCYmcC5pbnNlcnRBZnRlcihuLnJvdyhiW2IubGVuZ3RoLTFdKS5ub2RlKCkpKSxvLmNoaWxkcmVuJiZ0aGlzLl9ncm91cERpc3BsYXkodCsxLG8uY2hpbGRyZW4pfX0sX3Jvd1dyYXA6ZnVuY3Rpb24odCxlLG4pe3ZhciByO3JldHVybih0PT09bnVsbHx8dD09PSIiKSYmKHQ9dGhpcy5jLmVtcHR5RGF0YUdyb3VwKSx0PT1udWxsP251bGw6KHR5cGVvZiB0PT0ib2JqZWN0IiYmdC5ub2RlTmFtZSYmdC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09InRyIj9yPXplKHQpOnQgaW5zdGFuY2VvZiB6ZSYmdC5sZW5ndGgmJnRbMF0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PSJ0ciI/cj10OnI9emUoIjx0ci8+IikuYXBwZW5kKHplKCI8dGgvPiIpLmF0dHIoImNvbHNwYW4iLHRoaXMuX2NvbHNwYW4oKSkuYXR0cigic2NvcGUiLCJyb3ciKS5hcHBlbmQodCkpLHIuYWRkQ2xhc3ModGhpcy5jLmNsYXNzTmFtZSkuYWRkQ2xhc3MoZSkuYWRkQ2xhc3MoImR0cmctbGV2ZWwtIituKSl9fSk7Q24uZGVmYXVsdHM9e2NsYXNzTmFtZToiZHRyZy1ncm91cCIsZGF0YVNyYzowLGVtcHR5RGF0YUdyb3VwOiJObyBncm91cCIsZW5hYmxlOiEwLGVuZENsYXNzTmFtZToiZHRyZy1lbmQiLGVuZFJlbmRlcjpudWxsLHN0YXJ0Q2xhc3NOYW1lOiJkdHJnLXN0YXJ0IixzdGFydFJlbmRlcjpmdW5jdGlvbih0LGUpe3JldHVybiBlfX07Q24udmVyc2lvbj0iMS41LjAiO3plLmZuLmRhdGFUYWJsZS5Sb3dHcm91cD1Dbjt6ZS5mbi5EYXRhVGFibGUuUm93R3JvdXA9Q247YXQuQXBpLnJlZ2lzdGVyKCJyb3dHcm91cCgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzfSk7YXQuQXBpLnJlZ2lzdGVyKCJyb3dHcm91cCgpLmRpc2FibGUoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKHQpe3Qucm93R3JvdXAmJnQucm93R3JvdXAuZW5hYmxlKCExKX0pfSk7YXQuQXBpLnJlZ2lzdGVyKCJyb3dHcm91cCgpLmVuYWJsZSgpIixmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGUpe2Uucm93R3JvdXAmJmUucm93R3JvdXAuZW5hYmxlKHQ9PT12b2lkIDA/ITA6dCl9KX0pO2F0LkFwaS5yZWdpc3Rlcigicm93R3JvdXAoKS5lbmFibGVkKCkiLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb250ZXh0O3JldHVybiB0Lmxlbmd0aCYmdFswXS5yb3dHcm91cD90WzBdLnJvd0dyb3VwLmVuYWJsZWQoKTohMX0pO2F0LkFwaS5yZWdpc3Rlcigicm93R3JvdXAoKS5kYXRhU3JjKCkiLGZ1bmN0aW9uKHQpe3JldHVybiB0PT09dm9pZCAwP3RoaXMuY29udGV4dFswXS5yb3dHcm91cC5kYXRhU3JjKCk6dGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGUpe2Uucm93R3JvdXAmJmUucm93R3JvdXAuZGF0YVNyYyh0KX0pfSk7emUoZG9jdW1lbnQpLm9uKCJwcmVJbml0LmR0LmR0cmciLGZ1bmN0aW9uKHQsZSxuKXtpZih0Lm5hbWVzcGFjZT09PSJkdCIpe3ZhciByPWUub0luaXQucm93R3JvdXAscz1hdC5kZWZhdWx0cy5yb3dHcm91cDtpZihyfHxzKXt2YXIgaT16ZS5leHRlbmQoe30scyxyKTtyIT09ITEmJm5ldyBDbihlLGkpfX19KTt2YXIgWXM9aWUoYWUoKSwxKTt2YXIgTXQ9WXMuZGVmYXVsdCxjZSxkZT1mdW5jdGlvbih0LGUpe2lmKGRlLmZhY3RvcnkodCxlKSlyZXR1cm4gZGU7dHlwZW9mIGNlPiJ1IiYmKGNlPXdpbmRvdy5tb21lbnQ/d2luZG93Lm1vbWVudDp3aW5kb3cuZGF5anM/d2luZG93LmRheWpzOndpbmRvdy5sdXhvbj93aW5kb3cubHV4b246bnVsbCksdGhpcy5jPU10LmV4dGVuZCghMCx7fSxkZS5kZWZhdWx0cyxlKTt2YXIgbj10aGlzLmMuY2xhc3NQcmVmaXg7aWYoIWNlJiZ0aGlzLmMuZm9ybWF0IT09IllZWVktTU0tREQiKXRocm93IkRhdGVUaW1lOiBXaXRob3V0IG1vbWVudGpzLCBkYXlqcyBvciBsdXhvbiBvbmx5IHRoZSBmb3JtYXQgJ1lZWVktTU0tREQnIGNhbiBiZSB1c2VkIjt0eXBlb2YgdGhpcy5jLm1pbkRhdGU9PSJzdHJpbmciJiYodGhpcy5jLm1pbkRhdGU9bmV3IERhdGUodGhpcy5jLm1pbkRhdGUpKSx0eXBlb2YgdGhpcy5jLm1heERhdGU9PSJzdHJpbmciJiYodGhpcy5jLm1heERhdGU9bmV3IERhdGUodGhpcy5jLm1heERhdGUpKTt2YXIgcj1NdCgnPGRpdiBjbGFzcz0iJytuKyciPjxkaXYgY2xhc3M9IicrbisnLWRhdGUiPjxkaXYgY2xhc3M9IicrbisnLXRpdGxlIj48ZGl2IGNsYXNzPSInK24rJy1pY29uTGVmdCI+PGJ1dHRvbiB0eXBlPSJidXR0b24iPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9IicrbisnLWljb25SaWdodCI+PGJ1dHRvbiB0eXBlPSJidXR0b24iPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9IicrbisnLWxhYmVsIj48c3Bhbj48L3NwYW4+PHNlbGVjdCBjbGFzcz0iJytuKyctbW9udGgiPjwvc2VsZWN0PjwvZGl2PjxkaXYgY2xhc3M9IicrbisnLWxhYmVsIj48c3Bhbj48L3NwYW4+PHNlbGVjdCBjbGFzcz0iJytuKycteWVhciI+PC9zZWxlY3Q+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iJytuKyctYnV0dG9ucyI+PGEgY2xhc3M9IicrbisnLWNsZWFyIj48L2E+PGEgY2xhc3M9IicrbisnLXRvZGF5Ij48L2E+PC9kaXY+PGRpdiBjbGFzcz0iJytuKyctY2FsZW5kYXIiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IicrbisnLXRpbWUiPjxkaXYgY2xhc3M9IicrbisnLWhvdXJzIj48L2Rpdj48ZGl2IGNsYXNzPSInK24rJy1taW51dGVzIj48L2Rpdj48ZGl2IGNsYXNzPSInK24rJy1zZWNvbmRzIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSInK24rJy1lcnJvciI+PC9kaXY+PC9kaXY+Jyk7dGhpcy5kb209e2NvbnRhaW5lcjpyLGRhdGU6ci5maW5kKCIuIituKyItZGF0ZSIpLHRpdGxlOnIuZmluZCgiLiIrbisiLXRpdGxlIiksY2FsZW5kYXI6ci5maW5kKCIuIituKyItY2FsZW5kYXIiKSx0aW1lOnIuZmluZCgiLiIrbisiLXRpbWUiKSxlcnJvcjpyLmZpbmQoIi4iK24rIi1lcnJvciIpLGJ1dHRvbnM6ci5maW5kKCIuIituKyItYnV0dG9ucyIpLGNsZWFyOnIuZmluZCgiLiIrbisiLWNsZWFyIiksdG9kYXk6ci5maW5kKCIuIituKyItdG9kYXkiKSxwcmV2aW91czpyLmZpbmQoIi4iK24rIi1pY29uTGVmdCIpLG5leHQ6ci5maW5kKCIuIituKyItaWNvblJpZ2h0IiksaW5wdXQ6TXQodCl9LHRoaXMucz17ZDpudWxsLGRpc3BsYXk6bnVsbCxtaW51dGVzUmFuZ2U6bnVsbCxzZWNvbmRzUmFuZ2U6bnVsbCxuYW1lc3BhY2U6ImRhdGVpbWUtIitkZS5faW5zdGFuY2UrKyxwYXJ0czp7ZGF0ZTp0aGlzLmMuZm9ybWF0Lm1hdGNoKC9bWU1EXXxMKD8hVCl8bC8pIT09bnVsbCx0aW1lOnRoaXMuYy5mb3JtYXQubWF0Y2goL1tIaG1dfExUfExUUy8pIT09bnVsbCxzZWNvbmRzOnRoaXMuYy5mb3JtYXQuaW5kZXhPZigicyIpIT09LTEsaG91cnMxMjp0aGlzLmMuZm9ybWF0Lm1hdGNoKC9baGFBXS8pIT09bnVsbH19LHRoaXMuZG9tLmNvbnRhaW5lci5hcHBlbmQodGhpcy5kb20uZGF0ZSkuYXBwZW5kKHRoaXMuZG9tLnRpbWUpLmFwcGVuZCh0aGlzLmRvbS5lcnJvciksdGhpcy5kb20uZGF0ZS5hcHBlbmQodGhpcy5kb20udGl0bGUpLmFwcGVuZCh0aGlzLmRvbS5idXR0b25zKS5hcHBlbmQodGhpcy5kb20uY2FsZW5kYXIpLHRoaXMuZG9tLmlucHV0LmFkZENsYXNzKCJkdC1kYXRldGltZSIpLHRoaXMuX2NvbnN0cnVjdG9yKCl9O010LmV4dGVuZChkZS5wcm90b3R5cGUse2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9oaWRlKCEwKSx0aGlzLmRvbS5jb250YWluZXIub2ZmKCkuZW1wdHkoKSx0aGlzLmRvbS5pbnB1dC5yZW1vdmVDbGFzcygiZHQtZGF0ZXRpbWUiKS5yZW1vdmVBdHRyKCJhdXRvY29tcGxldGUiKS5vZmYoIi5kYXRldGltZSIpfSxkaXNwbGF5OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQhPT12b2lkIDAmJnRoaXMucy5kaXNwbGF5LnNldFVUQ0Z1bGxZZWFyKHQpLGUhPT12b2lkIDAmJnRoaXMucy5kaXNwbGF5LnNldFVUQ01vbnRoKGUtMSksdCE9PXZvaWQgMHx8ZSE9PXZvaWQgMD8odGhpcy5fc2V0VGl0bGUoKSx0aGlzLl9zZXRDYWxhbmRlcigpLHRoaXMpOnttb250aDp0aGlzLnMuZGlzcGxheS5nZXRVVENNb250aCgpKzEseWVhcjp0aGlzLnMuZGlzcGxheS5nZXRVVENGdWxsWWVhcigpfX0sZXJyb3JNc2c6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5kb20uZXJyb3I7cmV0dXJuIHQ/ZS5odG1sKHQpOmUuZW1wdHkoKSx0aGlzfSxoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2hpZGUoKSx0aGlzfSxtYXg6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuYy5tYXhEYXRlPXR5cGVvZiB0PT0ic3RyaW5nIj9uZXcgRGF0ZSh0KTp0LHRoaXMuX29wdGlvbnNUaXRsZSgpLHRoaXMuX3NldENhbGFuZGVyKCksdGhpc30sbWluOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmMubWluRGF0ZT10eXBlb2YgdD09InN0cmluZyI/bmV3IERhdGUodCk6dCx0aGlzLl9vcHRpb25zVGl0bGUoKSx0aGlzLl9zZXRDYWxhbmRlcigpLHRoaXN9LG93bnM6ZnVuY3Rpb24odCl7cmV0dXJuIE10KHQpLnBhcmVudHMoKS5maWx0ZXIodGhpcy5kb20uY29udGFpbmVyKS5sZW5ndGg+MH0sdmFsOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT12b2lkIDA/dGhpcy5zLmQ6KHQgaW5zdGFuY2VvZiBEYXRlP3RoaXMucy5kPXRoaXMuX2RhdGVUb1V0Yyh0KTp0PT09bnVsbHx8dD09PSIiP3RoaXMucy5kPW51bGw6dD09PSItLW5vdyI/dGhpcy5zLmQ9dGhpcy5fZGF0ZVRvVXRjKG5ldyBEYXRlKTp0eXBlb2YgdD09InN0cmluZyImJih0aGlzLnMuZD10aGlzLl9kYXRlVG9VdGModGhpcy5fY29udmVydCh0LHRoaXMuYy5mb3JtYXQsbnVsbCkpKSwoZXx8ZT09PXZvaWQgMCkmJih0aGlzLnMuZD90aGlzLl93cml0ZU91dHB1dCgpOnRoaXMuZG9tLmlucHV0LnZhbCh0KSksdGhpcy5zLmRpc3BsYXk9dGhpcy5zLmQ/bmV3IERhdGUodGhpcy5zLmQudG9TdHJpbmcoKSk6bmV3IERhdGUsdGhpcy5zLmRpc3BsYXkuc2V0VVRDRGF0ZSgxKSx0aGlzLl9zZXRUaXRsZSgpLHRoaXMuX3NldENhbGFuZGVyKCksdGhpcy5fc2V0VGltZSgpLHRoaXMpfSx2YWxGb3JtYXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZT8odGhpcy52YWwodGhpcy5fY29udmVydChlLHQsbnVsbCkpLHRoaXMpOnRoaXMuX2NvbnZlcnQodGhpcy52YWwoKSxudWxsLHQpfSxfY29uc3RydWN0b3I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5jLmNsYXNzUHJlZml4LG49dGhpcy5kb20uaW5wdXQudmFsKCkscj1mdW5jdGlvbigpe3ZhciBzPXQuZG9tLmlucHV0LnZhbCgpO3MhPT1uJiYodC5jLm9uQ2hhbmdlLmNhbGwodCxzLHQucy5kLHQuZG9tLmlucHV0KSxuPXMpfTt0aGlzLnMucGFydHMuZGF0ZXx8dGhpcy5kb20uZGF0ZS5jc3MoImRpc3BsYXkiLCJub25lIiksdGhpcy5zLnBhcnRzLnRpbWV8fHRoaXMuZG9tLnRpbWUuY3NzKCJkaXNwbGF5Iiwibm9uZSIpLHRoaXMucy5wYXJ0cy5zZWNvbmRzfHwodGhpcy5kb20udGltZS5jaGlsZHJlbigiZGl2LiIrZSsiLXNlY29uZHMiKS5yZW1vdmUoKSx0aGlzLmRvbS50aW1lLmNoaWxkcmVuKCJzcGFuIikuZXEoMSkucmVtb3ZlKCkpLHRoaXMuYy5idXR0b25zLmNsZWFyfHx0aGlzLmRvbS5jbGVhci5jc3MoImRpc3BsYXkiLCJub25lIiksdGhpcy5jLmJ1dHRvbnMudG9kYXl8fHRoaXMuZG9tLnRvZGF5LmNzcygiZGlzcGxheSIsIm5vbmUiKSx0aGlzLl9vcHRpb25zVGl0bGUoKSxNdChkb2N1bWVudCkub24oImkxOG4uZHQiLGZ1bmN0aW9uKHMsaSl7aS5vTGFuZ3VhZ2UuZGF0ZXRpbWUmJihNdC5leHRlbmQoITAsdC5jLmkxOG4saS5vTGFuZ3VhZ2UuZGF0ZXRpbWUpLHQuX29wdGlvbnNUaXRsZSgpKX0pLHRoaXMuZG9tLmlucHV0LmF0dHIoInR5cGUiKT09PSJoaWRkZW4iJiYodGhpcy5kb20uY29udGFpbmVyLmFkZENsYXNzKCJpbmxpbmUiKSx0aGlzLmMuYXR0YWNoVG89ImlucHV0Iix0aGlzLnZhbCh0aGlzLmRvbS5pbnB1dC52YWwoKSwhMSksdGhpcy5fc2hvdygpKSxuJiZ0aGlzLnZhbChuLCExKSx0aGlzLmRvbS5pbnB1dC5hdHRyKCJhdXRvY29tcGxldGUiLCJvZmYiKS5vbigiZm9jdXMuZGF0ZXRpbWUgY2xpY2suZGF0ZXRpbWUiLGZ1bmN0aW9uKCl7dC5kb20uY29udGFpbmVyLmlzKCI6dmlzaWJsZSIpfHx0LmRvbS5pbnB1dC5pcygiOmRpc2FibGVkIil8fCh0LnZhbCh0LmRvbS5pbnB1dC52YWwoKSwhMSksdC5fc2hvdygpKX0pLm9uKCJrZXl1cC5kYXRldGltZSIsZnVuY3Rpb24oKXt0LmRvbS5jb250YWluZXIuaXMoIjp2aXNpYmxlIikmJnQudmFsKHQuZG9tLmlucHV0LnZhbCgpLCExKX0pLHRoaXMuZG9tLmNvbnRhaW5lclswXS5hZGRFdmVudExpc3RlbmVyKCJmb2N1c2luIixmdW5jdGlvbihzKXtzLnN0b3BQcm9wYWdhdGlvbigpfSksdGhpcy5kb20uY29udGFpbmVyLm9uKCJjaGFuZ2UiLCJzZWxlY3QiLGZ1bmN0aW9uKCl7dmFyIHM9TXQodGhpcyksaT1zLnZhbCgpO2lmKHMuaGFzQ2xhc3MoZSsiLW1vbnRoIikpdC5fY29ycmVjdE1vbnRoKHQucy5kaXNwbGF5LGkpLHQuX3NldFRpdGxlKCksdC5fc2V0Q2FsYW5kZXIoKTtlbHNlIGlmKHMuaGFzQ2xhc3MoZSsiLXllYXIiKSl0LnMuZGlzcGxheS5zZXRVVENGdWxsWWVhcihpKSx0Ll9zZXRUaXRsZSgpLHQuX3NldENhbGFuZGVyKCk7ZWxzZSBpZihzLmhhc0NsYXNzKGUrIi1ob3VycyIpfHxzLmhhc0NsYXNzKGUrIi1hbXBtIikpe2lmKHQucy5wYXJ0cy5ob3VyczEyKXt2YXIgbz1NdCh0LmRvbS5jb250YWluZXIpLmZpbmQoIi4iK2UrIi1ob3VycyIpLnZhbCgpKjEsdT1NdCh0LmRvbS5jb250YWluZXIpLmZpbmQoIi4iK2UrIi1hbXBtIikudmFsKCk9PT0icG0iO3Qucy5kLnNldFVUQ0hvdXJzKG89PT0xMiYmIXU/MDp1JiZvIT09MTI/bysxMjpvKX1lbHNlIHQucy5kLnNldFVUQ0hvdXJzKGkpO3QuX3NldFRpbWUoKSx0Ll93cml0ZU91dHB1dCghMCkscigpfWVsc2Ugcy5oYXNDbGFzcyhlKyItbWludXRlcyIpPyh0LnMuZC5zZXRVVENNaW51dGVzKGkpLHQuX3NldFRpbWUoKSx0Ll93cml0ZU91dHB1dCghMCkscigpKTpzLmhhc0NsYXNzKGUrIi1zZWNvbmRzIikmJih0LnMuZC5zZXRTZWNvbmRzKGkpLHQuX3NldFRpbWUoKSx0Ll93cml0ZU91dHB1dCghMCkscigpKTt0LmRvbS5pbnB1dC5mb2N1cygpLHQuX3Bvc2l0aW9uKCl9KS5vbigiY2xpY2siLGZ1bmN0aW9uKHMpe3ZhciBpPXQucy5kLG89cy50YXJnZXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSx1PW89PT0ic3BhbiI/cy50YXJnZXQucGFyZW50Tm9kZTpzLnRhcmdldDtpZihvPXUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxvIT09InNlbGVjdCIpaWYocy5zdG9wUHJvcGFnYXRpb24oKSxvPT09ImEiJiYocy5wcmV2ZW50RGVmYXVsdCgpLE10KHUpLmhhc0NsYXNzKGUrIi1jbGVhciIpPyh0LnMuZD1udWxsLHQuZG9tLmlucHV0LnZhbCgiIiksdC5fd3JpdGVPdXRwdXQoKSx0Ll9zZXRDYWxhbmRlcigpLHQuX3NldFRpbWUoKSxyKCkpOk10KHUpLmhhc0NsYXNzKGUrIi10b2RheSIpJiYodC5zLmRpc3BsYXk9bmV3IERhdGUsdC5fc2V0VGl0bGUoKSx0Ll9zZXRDYWxhbmRlcigpKSksbz09PSJidXR0b24iKXt2YXIgcD1NdCh1KSxiPXAucGFyZW50KCk7aWYoYi5oYXNDbGFzcygiZGlzYWJsZWQiKSYmIWIuaGFzQ2xhc3MoInJhbmdlIikpe3AuYmx1cigpO3JldHVybn1pZihiLmhhc0NsYXNzKGUrIi1pY29uTGVmdCIpKXQucy5kaXNwbGF5LnNldFVUQ01vbnRoKHQucy5kaXNwbGF5LmdldFVUQ01vbnRoKCktMSksdC5fc2V0VGl0bGUoKSx0Ll9zZXRDYWxhbmRlcigpLHQuZG9tLmlucHV0LmZvY3VzKCk7ZWxzZSBpZihiLmhhc0NsYXNzKGUrIi1pY29uUmlnaHQiKSl0Ll9jb3JyZWN0TW9udGgodC5zLmRpc3BsYXksdC5zLmRpc3BsYXkuZ2V0VVRDTW9udGgoKSsxKSx0Ll9zZXRUaXRsZSgpLHQuX3NldENhbGFuZGVyKCksdC5kb20uaW5wdXQuZm9jdXMoKTtlbHNlIGlmKHAucGFyZW50cygiLiIrZSsiLXRpbWUiKS5sZW5ndGgpe3ZhciBnPXAuZGF0YSgidmFsdWUiKSxtPXAuZGF0YSgidW5pdCIpO2lmKGk9dC5fbmVlZFZhbHVlKCksbT09PSJtaW51dGVzIilpZihiLmhhc0NsYXNzKCJkaXNhYmxlZCIpJiZiLmhhc0NsYXNzKCJyYW5nZSIpKXt0LnMubWludXRlc1JhbmdlPWcsdC5fc2V0VGltZSgpO3JldHVybn1lbHNlIHQucy5taW51dGVzUmFuZ2U9bnVsbDtpZihtPT09InNlY29uZHMiKWlmKGIuaGFzQ2xhc3MoImRpc2FibGVkIikmJmIuaGFzQ2xhc3MoInJhbmdlIikpe3Qucy5zZWNvbmRzUmFuZ2U9Zyx0Ll9zZXRUaW1lKCk7cmV0dXJufWVsc2UgdC5zLnNlY29uZHNSYW5nZT1udWxsO2lmKGc9PT0iYW0iKWlmKGkuZ2V0VVRDSG91cnMoKT49MTIpZz1pLmdldFVUQ0hvdXJzKCktMTI7ZWxzZSByZXR1cm47ZWxzZSBpZihnPT09InBtIilpZihpLmdldFVUQ0hvdXJzKCk8MTIpZz1pLmdldFVUQ0hvdXJzKCkrMTI7ZWxzZSByZXR1cm47dmFyIEM9bT09PSJob3VycyI/InNldFVUQ0hvdXJzIjptPT09Im1pbnV0ZXMiPyJzZXRVVENNaW51dGVzIjoic2V0U2Vjb25kcyI7aVtDXShnKSx0Ll9zZXRDYWxhbmRlcigpLHQuX3NldFRpbWUoKSx0Ll93cml0ZU91dHB1dCghMCkscigpfWVsc2UgaT10Ll9uZWVkVmFsdWUoKSxpLnNldFVUQ0RhdGUoMSksaS5zZXRVVENGdWxsWWVhcihwLmRhdGEoInllYXIiKSksaS5zZXRVVENNb250aChwLmRhdGEoIm1vbnRoIikpLGkuc2V0VVRDRGF0ZShwLmRhdGEoImRheSIpKSx0Ll93cml0ZU91dHB1dCghMCksdC5zLnBhcnRzLnRpbWU/KHQuX3NldENhbGFuZGVyKCksdC5fc2V0VGltZSgpKTpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5faGlkZSgpfSwxMCkscigpfWVsc2UgdC5kb20uaW5wdXQuZm9jdXMoKX0pfSxfY29tcGFyZURhdGVzOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX2lzTHV4b24oKT9jZS5EYXRlVGltZS5mcm9tSlNEYXRlKHQpLnRvVVRDKCkudG9JU09EYXRlKCk9PT1jZS5EYXRlVGltZS5mcm9tSlNEYXRlKGUpLnRvVVRDKCkudG9JU09EYXRlKCk6dGhpcy5fZGF0ZVRvVXRjU3RyaW5nKHQpPT09dGhpcy5fZGF0ZVRvVXRjU3RyaW5nKGUpfSxfY29udmVydDpmdW5jdGlvbih0LGUsbil7aWYoIXQpcmV0dXJuIHQ7aWYoY2UpaWYodGhpcy5faXNMdXhvbigpKXt2YXIgcz10IGluc3RhbmNlb2YgRGF0ZT9jZS5EYXRlVGltZS5mcm9tSlNEYXRlKHQpLnRvVVRDKCk6Y2UuRGF0ZVRpbWUuZnJvbUZvcm1hdCh0LGUpO3JldHVybiBzLmlzVmFsaWQ/bj9zLnRvRm9ybWF0KG4pOnMudG9KU0RhdGUoKTpudWxsfWVsc2V7dmFyIGk9dCBpbnN0YW5jZW9mIERhdGU/Y2UudXRjKHQsdm9pZCAwLHRoaXMuYy5sb2NhbGUsdGhpcy5jLnN0cmljdCk6Y2UodCxlLHRoaXMuYy5sb2NhbGUsdGhpcy5jLnN0cmljdCk7cmV0dXJuIGkuaXNWYWxpZCgpP24/aS5mb3JtYXQobik6aS50b0RhdGUoKTpudWxsfWVsc2V7aWYoIWUmJiFufHxlJiZuKXJldHVybiB0O2lmKGUpe3ZhciByPXQubWF0Y2goLyhcZHs0fSlcLShcZHsyfSlcLShcZHsyfSkvKTtyZXR1cm4gcj9uZXcgRGF0ZShyWzFdLHJbMl0tMSxyWzNdKTpudWxsfWVsc2UgcmV0dXJuIHQuZ2V0VVRDRnVsbFllYXIoKSsiLSIrdGhpcy5fcGFkKHQuZ2V0VVRDTW9udGgoKSsxKSsiLSIrdGhpcy5fcGFkKHQuZ2V0VVRDRGF0ZSgpKX19LF9jb3JyZWN0TW9udGg6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9kYXlzSW5Nb250aCh0LmdldFVUQ0Z1bGxZZWFyKCksZSkscj10LmdldFVUQ0RhdGUoKT5uO3Quc2V0VVRDTW9udGgoZSksciYmKHQuc2V0VVRDRGF0ZShuKSx0LnNldFVUQ01vbnRoKGUpKX0sX2RheXNJbk1vbnRoOmZ1bmN0aW9uKHQsZSl7dmFyIG49dCU0PT09MCYmKHQlMTAwIT09MHx8dCU0MDA9PT0wKSxyPVszMSxuPzI5OjI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXTtyZXR1cm4gcltlXX0sX2RhdGVUb1V0YzpmdW5jdGlvbih0KXtyZXR1cm4gdCYmbmV3IERhdGUoRGF0ZS5VVEModC5nZXRGdWxsWWVhcigpLHQuZ2V0TW9udGgoKSx0LmdldERhdGUoKSx0LmdldEhvdXJzKCksdC5nZXRNaW51dGVzKCksdC5nZXRTZWNvbmRzKCkpKX0sX2RhdGVUb1V0Y1N0cmluZzpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faXNMdXhvbigpP2NlLkRhdGVUaW1lLmZyb21KU0RhdGUodCkudG9VVEMoKS50b0lTT0RhdGUoKTp0LmdldFVUQ0Z1bGxZZWFyKCkrIi0iK3RoaXMuX3BhZCh0LmdldFVUQ01vbnRoKCkrMSkrIi0iK3RoaXMuX3BhZCh0LmdldFVUQ0RhdGUoKSl9LF9oaWRlOmZ1bmN0aW9uKHQpe2lmKCEoIXQmJnRoaXMuZG9tLmlucHV0LmF0dHIoInR5cGUiKT09PSJoaWRkZW4iKSl7dmFyIGU9dGhpcy5zLm5hbWVzcGFjZTt0aGlzLmRvbS5jb250YWluZXIuZGV0YWNoKCksTXQod2luZG93KS5vZmYoIi4iK2UpLE10KGRvY3VtZW50KS5vZmYoImtleWRvd24uIitlKSxNdCgiZGl2LmRhdGFUYWJsZXNfc2Nyb2xsQm9keSIpLm9mZigic2Nyb2xsLiIrZSksTXQoImRpdi5EVEVfQm9keV9Db250ZW50Iikub2ZmKCJzY3JvbGwuIitlKSxNdCgiYm9keSIpLm9mZigiY2xpY2suIitlKSxNdCh0aGlzLmRvbS5pbnB1dFswXS5vZmZzZXRQYXJlbnQpLm9mZigiLiIrZSl9fSxfaG91cnMyNFRvMTI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT0wPzEyOnQ+MTI/dC0xMjp0fSxfaHRtbERheTpmdW5jdGlvbih0KXtpZih0LmVtcHR5KXJldHVybic8dGQgY2xhc3M9ImVtcHR5Ij48L3RkPic7dmFyIGU9WyJzZWxlY3RhYmxlIl0sbj10aGlzLmMuY2xhc3NQcmVmaXg7cmV0dXJuIHQuZGlzYWJsZWQmJmUucHVzaCgiZGlzYWJsZWQiKSx0LnRvZGF5JiZlLnB1c2goIm5vdyIpLHQuc2VsZWN0ZWQmJmUucHVzaCgic2VsZWN0ZWQiKSwnPHRkIGRhdGEtZGF5PSInK3QuZGF5KyciIGNsYXNzPSInK2Uuam9pbigiICIpKyciPjxidXR0b24gY2xhc3M9IicrbisiLWJ1dHRvbiAiK24rJy1kYXkiIHR5cGU9ImJ1dHRvbiIgZGF0YS15ZWFyPSInK3QueWVhcisnIiBkYXRhLW1vbnRoPSInK3QubW9udGgrJyIgZGF0YS1kYXk9IicrdC5kYXkrJyI+PHNwYW4+Jyt0LmRheSsiPC9zcGFuPjwvYnV0dG9uPjwvdGQ+In0sX2h0bWxNb250aDpmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX2RhdGVUb1V0YyhuZXcgRGF0ZSkscj10aGlzLl9kYXlzSW5Nb250aCh0LGUpLHM9bmV3IERhdGUoRGF0ZS5VVEModCxlLDEpKS5nZXRVVENEYXkoKSxpPVtdLG89W107dGhpcy5jLmZpcnN0RGF5PjAmJihzLT10aGlzLmMuZmlyc3REYXksczwwJiYocys9NykpO2Zvcih2YXIgdT1yK3MscD11O3A+NzspcC09Nzt1Kz03LXA7dmFyIGI9dGhpcy5jLm1pbkRhdGUsZz10aGlzLmMubWF4RGF0ZTtiJiYoYi5zZXRVVENIb3VycygwKSxiLnNldFVUQ01pbnV0ZXMoMCksYi5zZXRTZWNvbmRzKDApKSxnJiYoZy5zZXRVVENIb3VycygyMyksZy5zZXRVVENNaW51dGVzKDU5KSxnLnNldFNlY29uZHMoNTkpKTtmb3IodmFyIG09MCxDPTA7bTx1O20rKyl7dmFyIHk9bmV3IERhdGUoRGF0ZS5VVEModCxlLDErKG0tcykpKSxUPXRoaXMucy5kP3RoaXMuX2NvbXBhcmVEYXRlcyh5LHRoaXMucy5kKTohMSxQPXRoaXMuX2NvbXBhcmVEYXRlcyh5LG4pLGM9bTxzfHxtPj1yK3MsbD1iJiZ5PGJ8fGcmJnk+ZyxoPXRoaXMuYy5kaXNhYmxlRGF5czsoQXJyYXkuaXNBcnJheShoKSYmTXQuaW5BcnJheSh5LmdldFVUQ0RheSgpLGgpIT09LTF8fHR5cGVvZiBoPT0iZnVuY3Rpb24iJiZoKHkpPT09ITApJiYobD0hMCk7dmFyIF89e2RheToxKyhtLXMpLG1vbnRoOmUseWVhcjp0LHNlbGVjdGVkOlQsdG9kYXk6UCxkaXNhYmxlZDpsLGVtcHR5OmN9O28ucHVzaCh0aGlzLl9odG1sRGF5KF8pKSwrK0M9PT03JiYodGhpcy5jLnNob3dXZWVrTnVtYmVyJiZvLnVuc2hpZnQodGhpcy5faHRtbFdlZWtPZlllYXIobS1zLGUsdCkpLGkucHVzaCgiPHRyPiIrby5qb2luKCIiKSsiPC90cj4iKSxvPVtdLEM9MCl9dmFyIEY9dGhpcy5jLmNsYXNzUHJlZml4LE89RisiLXRhYmxlIjtpZih0aGlzLmMuc2hvd1dlZWtOdW1iZXImJihPKz0iIHdlZWtOdW1iZXIiKSxiKXt2YXIgZj1iPj1uZXcgRGF0ZShEYXRlLlVUQyh0LGUsMSwwLDAsMCkpO3RoaXMuZG9tLnRpdGxlLmZpbmQoImRpdi4iK0YrIi1pY29uTGVmdCIpLmNzcygiZGlzcGxheSIsZj8ibm9uZSI6ImJsb2NrIil9aWYoZyl7dmFyIFU9ZzxuZXcgRGF0ZShEYXRlLlVUQyh0LGUrMSwxLDAsMCwwKSk7dGhpcy5kb20udGl0bGUuZmluZCgiZGl2LiIrRisiLWljb25SaWdodCIpLmNzcygiZGlzcGxheSIsVT8ibm9uZSI6ImJsb2NrIil9cmV0dXJuJzx0YWJsZSBjbGFzcz0iJytPKyciPjx0aGVhZD4nK3RoaXMuX2h0bWxNb250aEhlYWQoKSsiPC90aGVhZD48dGJvZHk+IitpLmpvaW4oIiIpKyI8L3Rib2R5PjwvdGFibGU+In0sX2h0bWxNb250aEhlYWQ6ZnVuY3Rpb24oKXt2YXIgdD1bXSxlPXRoaXMuYy5maXJzdERheSxuPXRoaXMuYy5pMThuLHI9ZnVuY3Rpb24oaSl7Zm9yKGkrPWU7aT49NzspaS09NztyZXR1cm4gbi53ZWVrZGF5c1tpXX07dGhpcy5jLnNob3dXZWVrTnVtYmVyJiZ0LnB1c2goIjx0aD48L3RoPiIpO2Zvcih2YXIgcz0wO3M8NztzKyspdC5wdXNoKCI8dGg+IityKHMpKyI8L3RoPiIpO3JldHVybiB0LmpvaW4oIiIpfSxfaHRtbFdlZWtPZlllYXI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW5ldyBEYXRlKG4sZSx0LDAsMCwwLDApO3Iuc2V0RGF0ZShyLmdldERhdGUoKSs0LShyLmdldERheSgpfHw3KSk7dmFyIHM9bmV3IERhdGUobiwwLDEpLGk9TWF0aC5jZWlsKCgoci1zKS84NjRlNSsxKS83KTtyZXR1cm4nPHRkIGNsYXNzPSInK3RoaXMuYy5jbGFzc1ByZWZpeCsnLXdlZWsiPicraSsiPC90ZD4ifSxfaXNMdXhvbjpmdW5jdGlvbigpe3JldHVybiEhKGNlJiZjZS5EYXRlVGltZSYmY2UuRHVyYXRpb24mJmNlLlNldHRpbmdzKX0sX25lZWRWYWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnMuZHx8KHRoaXMucy5kPXRoaXMuX2RhdGVUb1V0YyhuZXcgRGF0ZSksdGhpcy5zLnBhcnRzLnRpbWV8fCh0aGlzLnMuZC5zZXRVVENIb3VycygwKSx0aGlzLnMuZC5zZXRVVENNaW51dGVzKDApLHRoaXMucy5kLnNldFNlY29uZHMoMCksdGhpcy5zLmQuc2V0TWlsbGlzZWNvbmRzKDApKSksdGhpcy5zLmR9LF9vcHRpb25zOmZ1bmN0aW9uKHQsZSxuKXtufHwobj1lKTt2YXIgcj10aGlzLmRvbS5jb250YWluZXIuZmluZCgic2VsZWN0LiIrdGhpcy5jLmNsYXNzUHJlZml4KyItIit0KTtyLmVtcHR5KCk7Zm9yKHZhciBzPTAsaT1lLmxlbmd0aDtzPGk7cysrKXIuYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSInK2Vbc10rJyI+JytuW3NdKyI8L29wdGlvbj4iKX0sX29wdGlvblNldDpmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuZG9tLmNvbnRhaW5lci5maW5kKCJzZWxlY3QuIit0aGlzLmMuY2xhc3NQcmVmaXgrIi0iK3QpLHI9bi5wYXJlbnQoKS5jaGlsZHJlbigic3BhbiIpO24udmFsKGUpO3ZhciBzPW4uZmluZCgib3B0aW9uOnNlbGVjdGVkIik7ci5odG1sKHMubGVuZ3RoIT09MD9zLnRleHQoKTp0aGlzLmMuaTE4bi51bmtub3duKX0sX29wdGlvbnNUaW1lOmZ1bmN0aW9uKHQsZSxuLHIscyl7dmFyIGk9dGhpcy5jLmNsYXNzUHJlZml4LG89dGhpcy5kb20uY29udGFpbmVyLmZpbmQoImRpdi4iK2krIi0iK3QpLHUscCxiPWU9PT0xMj9mdW5jdGlvbihsKXtyZXR1cm4gbH06dGhpcy5fcGFkLGc9aSsiLXRhYmxlIixtPXRoaXMuYy5pMThuO2lmKG8ubGVuZ3RoKXt2YXIgQz0iIix5PTEwLFQ9ZnVuY3Rpb24obCxoLF8pe2U9PT0xMiYmdHlwZW9mIGw9PSJudW1iZXIiJiYobj49MTImJihsKz0xMiksbD09MTI/bD0wOmw9PTI0JiYobD0xMikpO3ZhciBGPW49PT1sfHxsPT09ImFtIiYmbjwxMnx8bD09PSJwbSImJm4+PTEyPyJzZWxlY3RlZCI6IiI7cmV0dXJuIHR5cGVvZiBsPT0ibnVtYmVyIiYmciYmTXQuaW5BcnJheShsLHIpPT09LTEmJihGKz0iIGRpc2FibGVkIiksXyYmKEYrPSIgIitfKSwnPHRkIGNsYXNzPSJzZWxlY3RhYmxlICcrRisnIj48YnV0dG9uIGNsYXNzPSInK2krIi1idXR0b24gIitpKyctZGF5IiB0eXBlPSJidXR0b24iIGRhdGEtdW5pdD0iJyt0KyciIGRhdGEtdmFsdWU9IicrbCsnIj48c3Bhbj4nK2grIjwvc3Bhbj48L2J1dHRvbj48L3RkPiJ9O2lmKGU9PT0xMil7Zm9yKEMrPSI8dHI+Iix1PTE7dTw9Njt1KyspQys9VCh1LGIodSkpO2ZvcihDKz1UKCJhbSIsbS5hbVBtWzBdKSxDKz0iPC90cj4iLEMrPSI8dHI+Iix1PTc7dTw9MTI7dSsrKUMrPVQodSxiKHUpKTtDKz1UKCJwbSIsbS5hbVBtWzFdKSxDKz0iPC90cj4iLHk9N31lbHNlIGlmKGU9PT0yNCl7dmFyIFA9MDtmb3IocD0wO3A8NDtwKyspe2ZvcihDKz0iPHRyPiIsdT0wO3U8Njt1KyspQys9VChQLGIoUCkpLFArKztDKz0iPC90cj4ifXk9Nn1lbHNle2ZvcihDKz0iPHRyPiIscD0wO3A8NjA7cCs9MTApQys9VChwLGIocCksInJhbmdlIik7Qys9IjwvdHI+IixDKz0nPC90Ym9keT48L3RoZWFkPjx0YWJsZSBjbGFzcz0iJytnKyIgIitnKyctbm9zcGFjZSI+PHRib2R5Pic7dmFyIGM9cyE9PW51bGw/czpuPT09LTE/MDpNYXRoLmZsb29yKG4vMTApKjEwO2ZvcihDKz0iPHRyPiIscD1jKzE7cDxjKzEwO3ArKylDKz1UKHAsYihwKSk7Qys9IjwvdHI+Iix5PTZ9by5lbXB0eSgpLmFwcGVuZCgnPHRhYmxlIGNsYXNzPSInK2crJyI+PHRoZWFkPjx0cj48dGggY29sc3Bhbj0iJyt5KyciPicrbVt0XSsiPC90aD48L3RyPjwvdGhlYWQ+PHRib2R5PiIrQysiPC90Ym9keT48L3RhYmxlPiIpfX0sX29wdGlvbnNUaXRsZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuYy5pMThuLGU9dGhpcy5jLm1pbkRhdGUsbj10aGlzLmMubWF4RGF0ZSxyPWU/ZS5nZXRGdWxsWWVhcigpOm51bGwscz1uP24uZ2V0RnVsbFllYXIoKTpudWxsLGk9ciE9PW51bGw/cjpuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCktdGhpcy5jLnllYXJSYW5nZSxvPXMhPT1udWxsP3M6bmV3IERhdGUoKS5nZXRGdWxsWWVhcigpK3RoaXMuYy55ZWFyUmFuZ2U7dGhpcy5fb3B0aW9ucygibW9udGgiLHRoaXMuX3JhbmdlKDAsMTEpLHQubW9udGhzKSx0aGlzLl9vcHRpb25zKCJ5ZWFyIix0aGlzLl9yYW5nZShpLG8pKSx0aGlzLmRvbS50b2RheS50ZXh0KHQudG9kYXkpLnRleHQodC50b2RheSksdGhpcy5kb20uY2xlYXIudGV4dCh0LmNsZWFyKS50ZXh0KHQuY2xlYXIpLHRoaXMuZG9tLnByZXZpb3VzLmF0dHIoInRpdGxlIix0LnByZXZpb3VzKS5jaGlsZHJlbigiYnV0dG9uIikudGV4dCh0LnByZXZpb3VzKSx0aGlzLmRvbS5uZXh0LmF0dHIoInRpdGxlIix0Lm5leHQpLmNoaWxkcmVuKCJidXR0b24iKS50ZXh0KHQubmV4dCl9LF9wYWQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQ8MTA/IjAiK3Q6dH0sX3Bvc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jLmF0dGFjaFRvPT09ImlucHV0Ij90aGlzLmRvbS5pbnB1dC5wb3NpdGlvbigpOnRoaXMuZG9tLmlucHV0Lm9mZnNldCgpLGU9dGhpcy5kb20uY29udGFpbmVyLG49dGhpcy5kb20uaW5wdXQub3V0ZXJIZWlnaHQoKTtpZihlLmhhc0NsYXNzKCJpbmxpbmUiKSl7ZS5pbnNlcnRBZnRlcih0aGlzLmRvbS5pbnB1dCk7cmV0dXJufXRoaXMucy5wYXJ0cy5kYXRlJiZ0aGlzLnMucGFydHMudGltZSYmTXQod2luZG93KS53aWR0aCgpPjU1MD9lLmFkZENsYXNzKCJob3Jpem9udGFsIik6ZS5yZW1vdmVDbGFzcygiaG9yaXpvbnRhbCIpLHRoaXMuYy5hdHRhY2hUbz09PSJpbnB1dCI/ZS5jc3Moe3RvcDp0LnRvcCtuLGxlZnQ6dC5sZWZ0fSkuaW5zZXJ0QWZ0ZXIodGhpcy5kb20uaW5wdXQpOmUuY3NzKHt0b3A6dC50b3ArbixsZWZ0OnQubGVmdH0pLmFwcGVuZFRvKCJib2R5Iik7dmFyIHI9ZS5vdXRlckhlaWdodCgpLHM9ZS5vdXRlcldpZHRoKCksaT1NdCh3aW5kb3cpLnNjcm9sbFRvcCgpO2lmKHQudG9wK24rci1pPk10KHdpbmRvdykuaGVpZ2h0KCkpe3ZhciBvPXQudG9wLXI7ZS5jc3MoInRvcCIsbzwwPzA6byl9aWYocyt0LmxlZnQ+TXQod2luZG93KS53aWR0aCgpKXt2YXIgdT1NdCh3aW5kb3cpLndpZHRoKCktczt0aGlzLmMuYXR0YWNoVG89PT0iaW5wdXQiJiYodS09TXQoZSkub2Zmc2V0UGFyZW50KCkub2Zmc2V0KCkubGVmdCksZS5jc3MoImxlZnQiLHU8MD8wOnUpfX0sX3JhbmdlOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1bXTtufHwobj0xKTtmb3IodmFyIHM9dDtzPD1lO3MrPW4pci5wdXNoKHMpO3JldHVybiByfSxfc2V0Q2FsYW5kZXI6ZnVuY3Rpb24oKXt0aGlzLnMuZGlzcGxheSYmdGhpcy5kb20uY2FsZW5kYXIuZW1wdHkoKS5hcHBlbmQodGhpcy5faHRtbE1vbnRoKHRoaXMucy5kaXNwbGF5LmdldFVUQ0Z1bGxZZWFyKCksdGhpcy5zLmRpc3BsYXkuZ2V0VVRDTW9udGgoKSkpfSxfc2V0VGl0bGU6ZnVuY3Rpb24oKXt0aGlzLl9vcHRpb25TZXQoIm1vbnRoIix0aGlzLnMuZGlzcGxheS5nZXRVVENNb250aCgpKSx0aGlzLl9vcHRpb25TZXQoInllYXIiLHRoaXMucy5kaXNwbGF5LmdldFVUQ0Z1bGxZZWFyKCkpfSxfc2V0VGltZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLnMuZCxuPW51bGw7dGhpcy5faXNMdXhvbigpJiYobj1jZS5EYXRlVGltZS5mcm9tSlNEYXRlKGUpLnRvVVRDKCkpO3ZhciByPW4hPW51bGw/bi5ob3VyOmU/ZS5nZXRVVENIb3VycygpOi0xLHM9ZnVuY3Rpb24oaSl7cmV0dXJuIHQuY1tpKyJBdmFpbGFibGUiXT90LmNbaSsiQXZhaWxhYmxlIl06dC5fcmFuZ2UoMCw1OSx0LmNbaSsiSW5jcmVtZW50Il0pfTt0aGlzLl9vcHRpb25zVGltZSgiaG91cnMiLHRoaXMucy5wYXJ0cy5ob3VyczEyPzEyOjI0LHIsdGhpcy5jLmhvdXJzQXZhaWxhYmxlKSx0aGlzLl9vcHRpb25zVGltZSgibWludXRlcyIsNjAsbiE9bnVsbD9uLm1pbnV0ZTplP2UuZ2V0VVRDTWludXRlcygpOi0xLHMoIm1pbnV0ZXMiKSx0aGlzLnMubWludXRlc1JhbmdlKSx0aGlzLl9vcHRpb25zVGltZSgic2Vjb25kcyIsNjAsbiE9bnVsbD9uLnNlY29uZDplP2UuZ2V0U2Vjb25kcygpOi0xLHMoInNlY29uZHMiKSx0aGlzLnMuc2Vjb25kc1JhbmdlKX0sX3Nob3c6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5zLm5hbWVzcGFjZTt0aGlzLl9wb3NpdGlvbigpLE10KHdpbmRvdykub24oInNjcm9sbC4iK2UrIiByZXNpemUuIitlLGZ1bmN0aW9uKCl7dC5fcG9zaXRpb24oKX0pLE10KCJkaXYuRFRFX0JvZHlfQ29udGVudCIpLm9uKCJzY3JvbGwuIitlLGZ1bmN0aW9uKCl7dC5fcG9zaXRpb24oKX0pLE10KCJkaXYuZGF0YVRhYmxlc19zY3JvbGxCb2R5Iikub24oInNjcm9sbC4iK2UsZnVuY3Rpb24oKXt0Ll9wb3NpdGlvbigpfSk7dmFyIG49dGhpcy5kb20uaW5wdXRbMF0ub2Zmc2V0UGFyZW50O24hPT1kb2N1bWVudC5ib2R5JiZNdChuKS5vbigic2Nyb2xsLiIrZSxmdW5jdGlvbigpe3QuX3Bvc2l0aW9uKCl9KSxNdChkb2N1bWVudCkub24oImtleWRvd24uIitlLGZ1bmN0aW9uKHIpeyhyLmtleUNvZGU9PT05fHxyLmtleUNvZGU9PT0yN3x8ci5rZXlDb2RlPT09MTMpJiZ0Ll9oaWRlKCl9KSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7TXQoImJvZHkiKS5vbigiY2xpY2suIitlLGZ1bmN0aW9uKHIpe3ZhciBzPU10KHIudGFyZ2V0KS5wYXJlbnRzKCk7IXMuZmlsdGVyKHQuZG9tLmNvbnRhaW5lcikubGVuZ3RoJiZyLnRhcmdldCE9PXQuZG9tLmlucHV0WzBdJiZ0Ll9oaWRlKCl9KX0sMTApfSxfd3JpdGVPdXRwdXQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zLmQsbj0iIixyPXRoaXMuZG9tLmlucHV0O2UmJihuPXRoaXMuX2NvbnZlcnQoZSxudWxsLHRoaXMuYy5mb3JtYXQpKSxyLnZhbChuKTt2YXIgcz1uZXcgRXZlbnQoImNoYW5nZSIse2J1YmJsZXM6ITB9KTtyWzBdLmRpc3BhdGNoRXZlbnQocyksci5hdHRyKCJ0eXBlIik9PT0iaGlkZGVuIiYmdGhpcy52YWwobiwhMSksdCYmci5mb2N1cygpfX0pO2RlLnVzZT1mdW5jdGlvbih0KXtjZT10fTtkZS5faW5zdGFuY2U9MDtkZS50eXBlPSJEYXRlVGltZSI7ZGUuZGVmYXVsdHM9e2F0dGFjaFRvOiJib2R5IixidXR0b25zOntjbGVhcjohMSx0b2RheTohMX0sY2xhc3NQcmVmaXg6ImR0LWRhdGV0aW1lIixkaXNhYmxlRGF5czpudWxsLGZpcnN0RGF5OjEsZm9ybWF0OiJZWVlZLU1NLUREIixob3Vyc0F2YWlsYWJsZTpudWxsLGkxOG46e2NsZWFyOiJDbGVhciIscHJldmlvdXM6IlByZXZpb3VzIixuZXh0OiJOZXh0Iixtb250aHM6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLHdlZWtkYXlzOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sYW1QbTpbImFtIiwicG0iXSxob3VyczoiSG91ciIsbWludXRlczoiTWludXRlIixzZWNvbmRzOiJTZWNvbmQiLHVua25vd246Ii0iLHRvZGF5OiJUb2RheSJ9LG1heERhdGU6bnVsbCxtaW5EYXRlOm51bGwsbWludXRlc0F2YWlsYWJsZTpudWxsLG1pbnV0ZXNJbmNyZW1lbnQ6MSxzdHJpY3Q6ITAsbG9jYWxlOiJlbiIsb25DaGFuZ2U6ZnVuY3Rpb24oKXt9LHNlY29uZHNBdmFpbGFibGU6bnVsbCxzZWNvbmRzSW5jcmVtZW50OjEsc2hvd1dlZWtOdW1iZXI6ITEseWVhclJhbmdlOjI1fTtkZS52ZXJzaW9uPSIxLjUuMyI7ZGUuZmFjdG9yeT1mdW5jdGlvbih0LGUpe3ZhciBuPSExO3JldHVybiB0JiZ0LmRvY3VtZW50JiYod2luZG93PXQsZG9jdW1lbnQ9dC5kb2N1bWVudCksZSYmZS5mbiYmZS5mbi5qcXVlcnkmJihNdD1lLG49ITApLG59O3dpbmRvdy5EYXRlVGltZXx8KHdpbmRvdy5EYXRlVGltZT1kZSk7d2luZG93LkRhdGFUYWJsZSYmKHdpbmRvdy5EYXRhVGFibGUuRGF0ZVRpbWU9ZGUpO010LmZuLmR0RGF0ZVRpbWU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe25ldyBkZSh0aGlzLHQpfSl9O010LmZuLmRhdGFUYWJsZSYmKE10LmZuLmRhdGFUYWJsZS5EYXRlVGltZT1kZSxNdC5mbi5EYXRhVGFibGUuRGF0ZVRpbWU9ZGUsTXQuZm4uZGF0YVRhYmxlLkVkaXRvciYmKE10LmZuLmRhdGFUYWJsZS5FZGl0b3IuRGF0ZVRpbWU9ZGUpKTt2YXIgaWQ9ZGU7dmFyIGFkPWllKGFlKCksMSk7dmFyICRzPWllKGFlKCksMSk7dmFyIGNuPSRzLmRlZmF1bHQ7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciB0LGU7ZnVuY3Rpb24gbigpe3ZhciBjPWF0LnVzZSgibW9tZW50Iik7cmV0dXJuIGN8fHdpbmRvdy5tb21lbnR9ZnVuY3Rpb24gcigpe3ZhciBjPWF0LnVzZSgibHV4b24iKTtyZXR1cm4gY3x8d2luZG93Lmx1eG9ufWZ1bmN0aW9uIHMoYyl7dD1jLGU9Yy5mbi5kYXRhVGFibGV9dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBjKGwsaCxfLEYsTyxmLFUpe0Y9PT12b2lkIDAmJihGPTApLE89PT12b2lkIDAmJihPPTEpLGY9PT12b2lkIDAmJihmPXZvaWQgMCksVT09PXZvaWQgMCYmKFU9ITEpO3ZhciBYPXRoaXM7dGhpcy5jbGFzc2VzPXQuZXh0ZW5kKCEwLHt9LGMuY2xhc3NlcyksdGhpcy5jPXQuZXh0ZW5kKCEwLHt9LGMuZGVmYXVsdHMsdC5mbi5kYXRhVGFibGUuZXh0LnNlYXJjaEJ1aWxkZXIsaCk7dmFyIFE9dGhpcy5jLmkxOG47aWYodGhpcy5zPXtjb25kaXRpb246dm9pZCAwLGNvbmRpdGlvbnM6e30sZGF0YTp2b2lkIDAsZGF0YUlkeDotMSxkYXRhUG9pbnRzOltdLGRhdGVGb3JtYXQ6ITEsZGVwdGg6TyxkdDpsLGZpbGxlZDohMSxpbmRleDpGLGxpdmVTZWFyY2g6VSxvcmlnRGF0YTp2b2lkIDAscHJldmVudFJlZHJhdzohMSxzZXJ2ZXJEYXRhOmYsdG9wR3JvdXA6Xyx0eXBlOiIiLHZhbHVlOltdfSx0aGlzLmRvbT17YnV0dG9uczp0KCI8ZGl2Lz4iKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuYnV0dG9uQ29udGFpbmVyKSxjb25kaXRpb246dCgiPHNlbGVjdCBkaXNhYmxlZC8+IikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmNvbmRpdGlvbikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmRyb3BEb3duKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuaXRhbGljKS5hdHRyKCJhdXRvY29tcGxldGUiLCJoYWNraW5nIiksY29uZGl0aW9uVGl0bGU6dCgnPG9wdGlvbiB2YWx1ZT0iIiBkaXNhYmxlZCBzZWxlY3RlZCBoaWRkZW4vPicpLmh0bWwodGhpcy5zLmR0LmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9uIixRLmNvbmRpdGlvbikpLGNvbnRhaW5lcjp0KCI8ZGl2Lz4iKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuY29udGFpbmVyKSxkYXRhOnQoIjxzZWxlY3QvPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5kYXRhKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuZHJvcERvd24pLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5pdGFsaWMpLGRhdGFUaXRsZTp0KCc8b3B0aW9uIHZhbHVlPSIiIGRpc2FibGVkIHNlbGVjdGVkIGhpZGRlbi8+JykuaHRtbCh0aGlzLnMuZHQuaTE4bigic2VhcmNoQnVpbGRlci5kYXRhIixRLmRhdGEpKSxkZWZhdWx0VmFsdWU6dCgiPHNlbGVjdCBkaXNhYmxlZC8+IikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnZhbHVlKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuZHJvcERvd24pLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5zZWxlY3QpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5pdGFsaWMpLGRlbGV0ZTp0KCI8YnV0dG9uLz4iKS5odG1sKHRoaXMucy5kdC5pMThuKCJzZWFyY2hCdWlsZGVyLmRlbGV0ZSIsUS5kZWxldGUpKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuZGVsZXRlKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuYnV0dG9uKS5hdHRyKCJ0aXRsZSIsdGhpcy5zLmR0LmkxOG4oInNlYXJjaEJ1aWxkZXIuZGVsZXRlVGl0bGUiLFEuZGVsZXRlVGl0bGUpKS5hdHRyKCJ0eXBlIiwiYnV0dG9uIiksaW5wdXRDb250OnQoIjxkaXYvPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5pbnB1dENvbnQpLGxlZnQ6dCgiPGJ1dHRvbi8+IikuaHRtbCh0aGlzLnMuZHQuaTE4bigic2VhcmNoQnVpbGRlci5sZWZ0IixRLmxlZnQpKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMubGVmdCkuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmJ1dHRvbikuYXR0cigidGl0bGUiLHRoaXMucy5kdC5pMThuKCJzZWFyY2hCdWlsZGVyLmxlZnRUaXRsZSIsUS5sZWZ0VGl0bGUpKS5hdHRyKCJ0eXBlIiwiYnV0dG9uIikscmlnaHQ6dCgiPGJ1dHRvbi8+IikuaHRtbCh0aGlzLnMuZHQuaTE4bigic2VhcmNoQnVpbGRlci5yaWdodCIsUS5yaWdodCkpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5yaWdodCkuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmJ1dHRvbikuYXR0cigidGl0bGUiLHRoaXMucy5kdC5pMThuKCJzZWFyY2hCdWlsZGVyLnJpZ2h0VGl0bGUiLFEucmlnaHRUaXRsZSkpLmF0dHIoInR5cGUiLCJidXR0b24iKSx2YWx1ZTpbdCgiPHNlbGVjdCBkaXNhYmxlZC8+IikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnZhbHVlKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuZHJvcERvd24pLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5pdGFsaWMpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5zZWxlY3QpXSx2YWx1ZVRpdGxlOnQoJzxvcHRpb24gdmFsdWU9Ii0tdmFsdWVUaXRsZS0tIiBkaXNhYmxlZCBzZWxlY3RlZCBoaWRkZW4vPicpLmh0bWwodGhpcy5zLmR0LmkxOG4oInNlYXJjaEJ1aWxkZXIudmFsdWUiLFEudmFsdWUpKX0sdGhpcy5jLmdyZXlzY2FsZSl7dGhpcy5kb20uZGF0YS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuZ3JleXNjYWxlKSx0aGlzLmRvbS5jb25kaXRpb24uYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmdyZXlzY2FsZSksdGhpcy5kb20uZGVmYXVsdFZhbHVlLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5ncmV5c2NhbGUpO2Zvcih2YXIgRT0wLCQ9dGhpcy5kb20udmFsdWU7RTwkLmxlbmd0aDtFKyspe3ZhciB3PSRbRV07dy5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuZ3JleXNjYWxlKX19cmV0dXJuIHQod2luZG93KS5vbigicmVzaXplLmR0c2IiLGUudXRpbC50aHJvdHRsZShmdW5jdGlvbigpe1gucy50b3BHcm91cC50cmlnZ2VyKCJkdHNiLXJlZHJhd0xvZ2ljIil9KSksdGhpcy5fYnVpbGRDcml0ZXJpYSgpLHRoaXN9cmV0dXJuIGMuX2VzY2FwZUhUTUw9ZnVuY3Rpb24obCl7cmV0dXJuIGwudG9TdHJpbmcoKS5yZXBsYWNlKC8mbHQ7L2csIjwiKS5yZXBsYWNlKC8mZ3Q7L2csIj4iKS5yZXBsYWNlKC8mcXVvdDsvZywnIicpLnJlcGxhY2UoLyZhbXA7L2csIiYiKX0sYy5wcm90b3R5cGUuZG9TZWFyY2g9ZnVuY3Rpb24oKXt0aGlzLmMubGl2ZVNlYXJjaCYmdGhpcy5zLmR0LmRyYXcoKX0sYy5wYXJzZU51bUZtdD1mdW5jdGlvbihsKXtyZXR1cm4rbC5yZXBsYWNlKC8oPyFeLSlbXjAtOS5dL2csIiIpfSxjLnByb3RvdHlwZS51cGRhdGVBcnJvd3M9ZnVuY3Rpb24obCl7bD09PXZvaWQgMCYmKGw9ITEpLHRoaXMuZG9tLmNvbnRhaW5lci5jaGlsZHJlbigpLmRldGFjaCgpLHRoaXMuZG9tLmNvbnRhaW5lci5hcHBlbmQodGhpcy5kb20uZGF0YSkuYXBwZW5kKHRoaXMuZG9tLmNvbmRpdGlvbikuYXBwZW5kKHRoaXMuZG9tLmlucHV0Q29udCksdGhpcy5zZXRMaXN0ZW5lcnMoKSx0aGlzLmRvbS52YWx1ZVswXSE9PXZvaWQgMCYmdCh0aGlzLmRvbS52YWx1ZVswXSkudHJpZ2dlcigiZHRzYi1pbnNlcnRlZCIpO2Zvcih2YXIgaD0xO2g8dGhpcy5kb20udmFsdWUubGVuZ3RoO2grKyl0aGlzLmRvbS5pbnB1dENvbnQuYXBwZW5kKHRoaXMuZG9tLnZhbHVlW2hdKSx0KHRoaXMuZG9tLnZhbHVlW2hdKS50cmlnZ2VyKCJkdHNiLWluc2VydGVkIik7dGhpcy5zLmRlcHRoPjEmJnRoaXMuZG9tLmJ1dHRvbnMuYXBwZW5kKHRoaXMuZG9tLmxlZnQpLCh0aGlzLmMuZGVwdGhMaW1pdD09PSExfHx0aGlzLnMuZGVwdGg8dGhpcy5jLmRlcHRoTGltaXQpJiZsP3RoaXMuZG9tLmJ1dHRvbnMuYXBwZW5kKHRoaXMuZG9tLnJpZ2h0KTp0aGlzLmRvbS5yaWdodC5yZW1vdmUoKSx0aGlzLmRvbS5idXR0b25zLmFwcGVuZCh0aGlzLmRvbS5kZWxldGUpLHRoaXMuZG9tLmNvbnRhaW5lci5hcHBlbmQodGhpcy5kb20uYnV0dG9ucyl9LGMucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLmRvbS5kYXRhLm9mZigiLmR0c2IiKSx0aGlzLmRvbS5jb25kaXRpb24ub2ZmKCIuZHRzYiIpLHRoaXMuZG9tLmRlbGV0ZS5vZmYoIi5kdHNiIik7Zm9yKHZhciBsPTAsaD10aGlzLmRvbS52YWx1ZTtsPGgubGVuZ3RoO2wrKyl7dmFyIF89aFtsXTtfLm9mZigiLmR0c2IiKX10aGlzLmRvbS5jb250YWluZXIucmVtb3ZlKCl9LGMucHJvdG90eXBlLnNlYXJjaD1mdW5jdGlvbihsLGgpe3ZhciBfPXRoaXMucy5kdC5zZXR0aW5ncygpWzBdLEY9dGhpcy5zLmNvbmRpdGlvbnNbdGhpcy5zLmNvbmRpdGlvbl07aWYodGhpcy5zLmNvbmRpdGlvbiE9PXZvaWQgMCYmRiE9PXZvaWQgMCl7dmFyIE89bFt0aGlzLnMuZGF0YUlkeF07aWYodGhpcy5zLnR5cGUmJnRoaXMucy50eXBlLmluY2x1ZGVzKCJudW0iKSYmKF8ub0xhbmd1YWdlLnNEZWNpbWFsIT09IiJ8fF8ub0xhbmd1YWdlLnNUaG91c2FuZHMhPT0iIikpe3ZhciBmPVtsW3RoaXMucy5kYXRhSWR4XV07aWYoXy5vTGFuZ3VhZ2Uuc0RlY2ltYWwhPT0iIiYmKGY9bFt0aGlzLnMuZGF0YUlkeF0uc3BsaXQoXy5vTGFuZ3VhZ2Uuc0RlY2ltYWwpKSxfLm9MYW5ndWFnZS5zVGhvdXNhbmRzIT09IiIpZm9yKHZhciBVPTA7VTxmLmxlbmd0aDtVKyspZltVXT1mW1VdLnJlcGxhY2UoXy5vTGFuZ3VhZ2Uuc1Rob3VzYW5kcywiLCIpO089Zi5qb2luKCIuIil9aWYodGhpcy5jLm9ydGhvZ29uYWwuc2VhcmNoIT09ImZpbHRlciImJihPPV8uZmFzdERhdGEoaCx0aGlzLnMuZGF0YUlkeCx0eXBlb2YgdGhpcy5jLm9ydGhvZ29uYWw9PSJzdHJpbmciP3RoaXMuYy5vcnRob2dvbmFsOnRoaXMuYy5vcnRob2dvbmFsLnNlYXJjaCkpLHRoaXMucy50eXBlPT09ImFycmF5Iil7QXJyYXkuaXNBcnJheShPKXx8KE89W09dKSxPLnNvcnQoKTtmb3IodmFyIFg9MCxRPU87WDxRLmxlbmd0aDtYKyspe3ZhciBFPVFbWF07RSYmdHlwZW9mIEU9PSJzdHJpbmciJiYoRT1FLnJlcGxhY2UoL1tcclxuXHUyMDI4XS9nLCIgIikpfX1lbHNlIE8hPT1udWxsJiZ0eXBlb2YgTz09InN0cmluZyImJihPPU8ucmVwbGFjZSgvW1xyXG5cdTIwMjhdL2csIiAiKSk7cmV0dXJuIHRoaXMucy50eXBlLmluY2x1ZGVzKCJodG1sIikmJnR5cGVvZiBPPT0ic3RyaW5nIiYmKE89Ty5yZXBsYWNlKC8oPChbXj5dKyk+KS9pZywiIikpLE89PT1udWxsJiYoTz0iIiksRi5zZWFyY2goTyx0aGlzLnMudmFsdWUsdGhpcyl9fSxjLnByb3RvdHlwZS5nZXREZXRhaWxzPWZ1bmN0aW9uKGwpe2w9PT12b2lkIDAmJihsPSExKTt2YXIgaCxfPXRoaXMucy5kdC5zZXR0aW5ncygpWzBdO2lmKHRoaXMucy50eXBlIT09bnVsbCYmdGhpcy5zLnR5cGUuaW5jbHVkZXMoIm51bSIpJiYoXy5vTGFuZ3VhZ2Uuc0RlY2ltYWwhPT0iInx8Xy5vTGFuZ3VhZ2Uuc1Rob3VzYW5kcyE9PSIiKSlmb3IoaD0wO2g8dGhpcy5zLnZhbHVlLmxlbmd0aDtoKyspe3ZhciBGPVt0aGlzLnMudmFsdWVbaF0udG9TdHJpbmcoKV07aWYoXy5vTGFuZ3VhZ2Uuc0RlY2ltYWwhPT0iIiYmKEY9dGhpcy5zLnZhbHVlW2hdLnNwbGl0KF8ub0xhbmd1YWdlLnNEZWNpbWFsKSksXy5vTGFuZ3VhZ2Uuc1Rob3VzYW5kcyE9PSIiKWZvcih2YXIgTz0wO088Ri5sZW5ndGg7TysrKUZbT109RltPXS5yZXBsYWNlKF8ub0xhbmd1YWdlLnNUaG91c2FuZHMsIiwiKTt0aGlzLnMudmFsdWVbaF09Ri5qb2luKCIuIil9ZWxzZSBpZih0aGlzLnMudHlwZSE9PW51bGwmJmwpe2lmKHRoaXMucy50eXBlLmluY2x1ZGVzKCJkYXRlIil8fHRoaXMucy50eXBlLmluY2x1ZGVzKCJ0aW1lIikpZm9yKGg9MDtoPHRoaXMucy52YWx1ZS5sZW5ndGg7aCsrKXRoaXMucy52YWx1ZVtoXS5tYXRjaCgvXlxkezR9LShbMF1cZHwxWzAtMl0pLShbMC0yXVxkfDNbMDFdKSQvZyk9PT1udWxsJiYodGhpcy5zLnZhbHVlW2hdPSIiKTtlbHNlIGlmKHRoaXMucy50eXBlLmluY2x1ZGVzKCJtb21lbnQiKSlmb3IoaD0wO2g8dGhpcy5zLnZhbHVlLmxlbmd0aDtoKyspdGhpcy5zLnZhbHVlW2hdJiZ0aGlzLnMudmFsdWVbaF0ubGVuZ3RoPjAmJm4oKSh0aGlzLnMudmFsdWVbaF0sdGhpcy5zLmRhdGVGb3JtYXQsITApLmlzVmFsaWQoKSYmKHRoaXMucy52YWx1ZVtoXT1uKCkodGhpcy5zLnZhbHVlW2hdLHRoaXMucy5kYXRlRm9ybWF0KS5mb3JtYXQoIllZWVktTU0tREQgSEg6bW06c3MiKSk7ZWxzZSBpZih0aGlzLnMudHlwZS5pbmNsdWRlcygibHV4b24iKSlmb3IoaD0wO2g8dGhpcy5zLnZhbHVlLmxlbmd0aDtoKyspdGhpcy5zLnZhbHVlW2hdJiZ0aGlzLnMudmFsdWVbaF0ubGVuZ3RoPjAmJnIoKS5EYXRlVGltZS5mcm9tRm9ybWF0KHRoaXMucy52YWx1ZVtoXSx0aGlzLnMuZGF0ZUZvcm1hdCkuaW52YWxpZD09PW51bGwmJih0aGlzLnMudmFsdWVbaF09cigpLkRhdGVUaW1lLmZyb21Gb3JtYXQodGhpcy5zLnZhbHVlW2hdLHRoaXMucy5kYXRlRm9ybWF0KS50b0Zvcm1hdCgieXl5eS1NTS1kZCBISDptbTpzcyIpKX1pZih0aGlzLnMudHlwZSYmdGhpcy5zLnR5cGUuaW5jbHVkZXMoIm51bSIpJiZ0aGlzLnMuZHQucGFnZS5pbmZvKCkuc2VydmVyU2lkZSlmb3IoaD0wO2g8dGhpcy5zLnZhbHVlLmxlbmd0aDtoKyspdGhpcy5zLnZhbHVlW2hdPXRoaXMucy52YWx1ZVtoXS5yZXBsYWNlKC9bXjAtOS5cLV0vZywiIik7cmV0dXJue2NvbmRpdGlvbjp0aGlzLnMuY29uZGl0aW9uLGRhdGE6dGhpcy5zLmRhdGEsb3JpZ0RhdGE6dGhpcy5zLm9yaWdEYXRhLHR5cGU6dGhpcy5zLnR5cGUsdmFsdWU6dGhpcy5zLnZhbHVlLm1hcChmdW5jdGlvbihmKXtyZXR1cm4gZiE9bnVsbD9mLnRvU3RyaW5nKCk6Zn0pfX0sYy5wcm90b3R5cGUuZ2V0Tm9kZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbS5jb250YWluZXJ9LGMucHJvdG90eXBlLnBhcnNlTnVtYmVyPWZ1bmN0aW9uKGwpe3ZhciBoPXRoaXMucy5kdC5pMThuKCJkZWNpbWFsIik7cmV0dXJuIGgmJmghPT0iLiImJihsPWwucmVwbGFjZSgvXC4vZywiIikucmVwbGFjZShoLCIuIikpLCtsLnJlcGxhY2UoLyg/IV4tKVteMC05Ll0vZywiIil9LGMucHJvdG90eXBlLnBvcHVsYXRlPWZ1bmN0aW9uKCl7dGhpcy5fcG9wdWxhdGVEYXRhKCksdGhpcy5zLmRhdGFJZHghPT0tMSYmKHRoaXMuX3BvcHVsYXRlQ29uZGl0aW9uKCksdGhpcy5zLmNvbmRpdGlvbiE9PXZvaWQgMCYmdGhpcy5fcG9wdWxhdGVWYWx1ZSgpKX0sYy5wcm90b3R5cGUucmVidWlsZD1mdW5jdGlvbihsKXt2YXIgaD0hMSxfLEY7aWYodGhpcy5fcG9wdWxhdGVEYXRhKCksbC5kYXRhIT09dm9pZCAwKXt2YXIgTz10aGlzLmNsYXNzZXMuaXRhbGljLGY9dGhpcy5kb20uZGF0YTt0aGlzLmRvbS5kYXRhLmNoaWxkcmVuKCJvcHRpb24iKS5lYWNoKGZ1bmN0aW9uKCl7IWgmJih0KHRoaXMpLnRleHQoKT09PWwuZGF0YXx8bC5vcmlnRGF0YSYmdCh0aGlzKS5wcm9wKCJvcmlnRGF0YSIpPT09bC5vcmlnRGF0YSk/KHQodGhpcykucHJvcCgic2VsZWN0ZWQiLCEwKSxmLnJlbW92ZUNsYXNzKE8pLGg9ITAsXz1wYXJzZUludCh0KHRoaXMpLnZhbCgpLDEwKSk6dCh0aGlzKS5yZW1vdmVQcm9wKCJzZWxlY3RlZCIpfSl9aWYoaCl7dGhpcy5zLmRhdGE9bC5kYXRhLHRoaXMucy5vcmlnRGF0YT1sLm9yaWdEYXRhLHRoaXMucy5kYXRhSWR4PV8sdGhpcy5jLm9ydGhvZ29uYWw9dGhpcy5fZ2V0T3B0aW9ucygpLm9ydGhvZ29uYWwsdGhpcy5kb20uZGF0YVRpdGxlLnJlbW92ZSgpLHRoaXMuX3BvcHVsYXRlQ29uZGl0aW9uKCksdGhpcy5kb20uY29uZGl0aW9uVGl0bGUucmVtb3ZlKCk7dmFyIFU9dm9pZCAwLFg9dGhpcy5kb20uY29uZGl0aW9uLmNoaWxkcmVuKCJvcHRpb24iKTtmb3IoRj0wO0Y8WC5sZW5ndGg7RisrKXt2YXIgUT10KFhbRl0pO2wuY29uZGl0aW9uIT09dm9pZCAwJiZRLnZhbCgpPT09bC5jb25kaXRpb24mJnR5cGVvZiBsLmNvbmRpdGlvbj09InN0cmluZyI/KFEucHJvcCgic2VsZWN0ZWQiLCEwKSxVPVEudmFsKCkpOlEucmVtb3ZlUHJvcCgic2VsZWN0ZWQiKX1pZih0aGlzLnMuY29uZGl0aW9uPVUsdGhpcy5zLmNvbmRpdGlvbiE9PXZvaWQgMCl7Zm9yKHRoaXMuZG9tLmNvbmRpdGlvblRpdGxlLnJlbW92ZVByb3AoInNlbGVjdGVkIiksdGhpcy5kb20uY29uZGl0aW9uVGl0bGUucmVtb3ZlKCksdGhpcy5kb20uY29uZGl0aW9uLnJlbW92ZUNsYXNzKHRoaXMuY2xhc3Nlcy5pdGFsaWMpLEY9MDtGPFgubGVuZ3RoO0YrKyl7dmFyIEU9dChYW0ZdKTtFLnZhbCgpIT09dGhpcy5zLmNvbmRpdGlvbiYmRS5yZW1vdmVQcm9wKCJzZWxlY3RlZCIpfXRoaXMuX3BvcHVsYXRlVmFsdWUobCl9ZWxzZSB0aGlzLmRvbS5jb25kaXRpb25UaXRsZS5wcmVwZW5kVG8odGhpcy5kb20uY29uZGl0aW9uKS5wcm9wKCJzZWxlY3RlZCIsITApfX0sYy5wcm90b3R5cGUuc2V0TGlzdGVuZXJzPWZ1bmN0aW9uKCl7dmFyIGw9dGhpczt0aGlzLmRvbS5kYXRhLnVuYmluZCgiY2hhbmdlIikub24oImNoYW5nZS5kdHNiIixmdW5jdGlvbigpe2wuZG9tLmRhdGFUaXRsZS5yZW1vdmVQcm9wKCJzZWxlY3RlZCIpO2Zvcih2YXIgaD1sLmRvbS5kYXRhLmNoaWxkcmVuKCJvcHRpb24uIitsLmNsYXNzZXMub3B0aW9uKSxfPTA7XzxoLmxlbmd0aDtfKyspe3ZhciBGPXQoaFtfXSk7Ri52YWwoKT09PWwuZG9tLmRhdGEudmFsKCk/KGwuZG9tLmRhdGEucmVtb3ZlQ2xhc3MobC5jbGFzc2VzLml0YWxpYyksRi5wcm9wKCJzZWxlY3RlZCIsITApLGwucy5kYXRhSWR4PStGLnZhbCgpLGwucy5kYXRhPUYudGV4dCgpLGwucy5vcmlnRGF0YT1GLnByb3AoIm9yaWdEYXRhIiksbC5jLm9ydGhvZ29uYWw9bC5fZ2V0T3B0aW9ucygpLm9ydGhvZ29uYWwsbC5fY2xlYXJDb25kaXRpb24oKSxsLl9jbGVhclZhbHVlKCksbC5fcG9wdWxhdGVDb25kaXRpb24oKSxsLnMuZmlsbGVkJiYobC5zLmZpbGxlZD0hMSxsLmRvU2VhcmNoKCksbC5zZXRMaXN0ZW5lcnMoKSksbC5zLmR0LnN0YXRlLnNhdmUoKSk6Ri5yZW1vdmVQcm9wKCJzZWxlY3RlZCIpfX0pLHRoaXMuZG9tLmNvbmRpdGlvbi51bmJpbmQoImNoYW5nZSIpLm9uKCJjaGFuZ2UuZHRzYiIsZnVuY3Rpb24oKXtsLmRvbS5jb25kaXRpb25UaXRsZS5yZW1vdmVQcm9wKCJzZWxlY3RlZCIpO2Zvcih2YXIgaD1sLmRvbS5jb25kaXRpb24uY2hpbGRyZW4oIm9wdGlvbi4iK2wuY2xhc3Nlcy5vcHRpb24pLF89MDtfPGgubGVuZ3RoO18rKyl7dmFyIEY9dChoW19dKTtpZihGLnZhbCgpPT09bC5kb20uY29uZGl0aW9uLnZhbCgpKXtsLmRvbS5jb25kaXRpb24ucmVtb3ZlQ2xhc3MobC5jbGFzc2VzLml0YWxpYyksRi5wcm9wKCJzZWxlY3RlZCIsITApO2Zvcih2YXIgTz1GLnZhbCgpLGY9MCxVPU9iamVjdC5rZXlzKGwucy5jb25kaXRpb25zKTtmPFUubGVuZ3RoO2YrKyl7dmFyIFg9VVtmXTtpZihYPT09Tyl7bC5zLmNvbmRpdGlvbj1PO2JyZWFrfX1sLl9jbGVhclZhbHVlKCksbC5fcG9wdWxhdGVWYWx1ZSgpO2Zvcih2YXIgUT0wLEU9bC5kb20udmFsdWU7UTxFLmxlbmd0aDtRKyspe3ZhciAkPUVbUV07bC5zLmZpbGxlZCYmJCE9PXZvaWQgMCYmbC5kb20uaW5wdXRDb250LmhhcygkWzBdKS5sZW5ndGghPT0wJiYobC5zLmZpbGxlZD0hMSxsLmRvU2VhcmNoKCksbC5zZXRMaXN0ZW5lcnMoKSl9KGwuZG9tLnZhbHVlLmxlbmd0aD09PTB8fGwuZG9tLnZhbHVlLmxlbmd0aD09PTEmJmwuZG9tLnZhbHVlWzBdPT09dm9pZCAwKSYmbC5kb1NlYXJjaCgpfWVsc2UgRi5yZW1vdmVQcm9wKCJzZWxlY3RlZCIpfX0pfSxjLnByb3RvdHlwZS5zZXR1cEJ1dHRvbnM9ZnVuY3Rpb24oKXtpZih3aW5kb3cuaW5uZXJXaWR0aD41NTApe3RoaXMuZG9tLmNvbnRhaW5lci5yZW1vdmVDbGFzcyh0aGlzLmNsYXNzZXMudmVydGljYWwpLHRoaXMuZG9tLmJ1dHRvbnMuY3NzKCJsZWZ0IixudWxsKSx0aGlzLmRvbS5idXR0b25zLmNzcygidG9wIixudWxsKTtyZXR1cm59dGhpcy5kb20uY29udGFpbmVyLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy52ZXJ0aWNhbCksdGhpcy5kb20uYnV0dG9ucy5jc3MoImxlZnQiLHRoaXMuZG9tLmRhdGEuaW5uZXJXaWR0aCgpKSx0aGlzLmRvbS5idXR0b25zLmNzcygidG9wIix0aGlzLmRvbS5kYXRhLnBvc2l0aW9uKCkudG9wKX0sYy5wcm90b3R5cGUuX2J1aWxkQ3JpdGVyaWE9ZnVuY3Rpb24oKXt0aGlzLmRvbS5kYXRhLmFwcGVuZCh0aGlzLmRvbS5kYXRhVGl0bGUpLHRoaXMuZG9tLmNvbmRpdGlvbi5hcHBlbmQodGhpcy5kb20uY29uZGl0aW9uVGl0bGUpLHRoaXMuZG9tLmNvbnRhaW5lci5hcHBlbmQodGhpcy5kb20uZGF0YSkuYXBwZW5kKHRoaXMuZG9tLmNvbmRpdGlvbiksdGhpcy5kb20uaW5wdXRDb250LmVtcHR5KCk7Zm9yKHZhciBsPTAsaD10aGlzLmRvbS52YWx1ZTtsPGgubGVuZ3RoO2wrKyl7dmFyIF89aFtsXTtfLmFwcGVuZCh0aGlzLmRvbS52YWx1ZVRpdGxlKSx0aGlzLmRvbS5pbnB1dENvbnQuYXBwZW5kKF8pfXRoaXMuZG9tLmJ1dHRvbnMuYXBwZW5kKHRoaXMuZG9tLmRlbGV0ZSkuYXBwZW5kKHRoaXMuZG9tLnJpZ2h0KSx0aGlzLmRvbS5jb250YWluZXIuYXBwZW5kKHRoaXMuZG9tLmlucHV0Q29udCkuYXBwZW5kKHRoaXMuZG9tLmJ1dHRvbnMpLHRoaXMuc2V0TGlzdGVuZXJzKCl9LGMucHJvdG90eXBlLl9jbGVhckNvbmRpdGlvbj1mdW5jdGlvbigpe3RoaXMuZG9tLmNvbmRpdGlvbi5lbXB0eSgpLHRoaXMuZG9tLmNvbmRpdGlvblRpdGxlLnByb3AoInNlbGVjdGVkIiwhMCkuYXR0cigiZGlzYWJsZWQiLCJ0cnVlIiksdGhpcy5kb20uY29uZGl0aW9uLnByZXBlbmQodGhpcy5kb20uY29uZGl0aW9uVGl0bGUpLnByb3AoInNlbGVjdGVkSW5kZXgiLDApLHRoaXMucy5jb25kaXRpb25zPXt9LHRoaXMucy5jb25kaXRpb249dm9pZCAwfSxjLnByb3RvdHlwZS5fY2xlYXJWYWx1ZT1mdW5jdGlvbigpe3ZhciBsO2lmKHRoaXMucy5jb25kaXRpb24hPT12b2lkIDApe2lmKHRoaXMuZG9tLnZhbHVlLmxlbmd0aD4wJiZ0aGlzLmRvbS52YWx1ZVswXSE9PXZvaWQgMClmb3IodmFyIGg9MCxfPXRoaXMuZG9tLnZhbHVlO2g8Xy5sZW5ndGg7aCsrKWw9X1toXSxsIT09dm9pZCAwJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bC5yZW1vdmUoKX0sNTApO2lmKHRoaXMuZG9tLnZhbHVlPVtdLmNvbmNhdCh0aGlzLnMuY29uZGl0aW9uc1t0aGlzLnMuY29uZGl0aW9uXS5pbml0KHRoaXMsYy51cGRhdGVMaXN0ZW5lcikpLHRoaXMuZG9tLnZhbHVlLmxlbmd0aD4wJiZ0aGlzLmRvbS52YWx1ZVswXSE9PXZvaWQgMCl7dGhpcy5kb20uaW5wdXRDb250LmVtcHR5KCkuYXBwZW5kKHRoaXMuZG9tLnZhbHVlWzBdKS5pbnNlcnRBZnRlcih0aGlzLmRvbS5jb25kaXRpb24pLHQodGhpcy5kb20udmFsdWVbMF0pLnRyaWdnZXIoImR0c2ItaW5zZXJ0ZWQiKTtmb3IodmFyIEY9MTtGPHRoaXMuZG9tLnZhbHVlLmxlbmd0aDtGKyspdGhpcy5kb20uaW5wdXRDb250LmFwcGVuZCh0aGlzLmRvbS52YWx1ZVtGXSksdCh0aGlzLmRvbS52YWx1ZVtGXSkudHJpZ2dlcigiZHRzYi1pbnNlcnRlZCIpfX1lbHNle2Zvcih2YXIgTz0wLGY9dGhpcy5kb20udmFsdWU7TzxmLmxlbmd0aDtPKyspbD1mW09dLGwhPT12b2lkIDAmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtsLnJlbW92ZSgpfSw1MCk7dGhpcy5kb20udmFsdWVUaXRsZS5wcm9wKCJzZWxlY3RlZCIsITApLHRoaXMuZG9tLmRlZmF1bHRWYWx1ZS5hcHBlbmQodGhpcy5kb20udmFsdWVUaXRsZSkuaW5zZXJ0QWZ0ZXIodGhpcy5kb20uY29uZGl0aW9uKX10aGlzLnMudmFsdWU9W10sdGhpcy5kb20udmFsdWU9W3QoIjxzZWxlY3QgZGlzYWJsZWQvPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy52YWx1ZSkuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmRyb3BEb3duKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuaXRhbGljKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuc2VsZWN0KS5hcHBlbmQodGhpcy5kb20udmFsdWVUaXRsZS5jbG9uZSgpKV19LGMucHJvdG90eXBlLl9nZXRPcHRpb25zPWZ1bmN0aW9uKCl7dmFyIGw9dGhpcy5zLmR0O3JldHVybiB0LmV4dGVuZCghMCx7fSxjLmRlZmF1bHRzLGwuc2V0dGluZ3MoKVswXS5hb0NvbHVtbnNbdGhpcy5zLmRhdGFJZHhdLnNlYXJjaEJ1aWxkZXIpfSxjLnByb3RvdHlwZS5fcG9wdWxhdGVDb25kaXRpb249ZnVuY3Rpb24oKXt2YXIgbD1bXSxoPU9iamVjdC5rZXlzKHRoaXMucy5jb25kaXRpb25zKS5sZW5ndGgsXz10aGlzLnMuZHQsRj1fLnNldHRpbmdzKClbMF0uYW9Db2x1bW5zLE89K3RoaXMuZG9tLmRhdGEuY2hpbGRyZW4oIm9wdGlvbjpzZWxlY3RlZCIpLnZhbCgpLGYsVTtpZihoPT09MCl7aWYodGhpcy5zLnR5cGU9Xy5jb2x1bW4oTykudHlwZSgpLEYhPT12b2lkIDApe3ZhciBYPUZbT107WC5zZWFyY2hCdWlsZGVyVHlwZSE9PXZvaWQgMCYmWC5zZWFyY2hCdWlsZGVyVHlwZSE9PW51bGw/dGhpcy5zLnR5cGU9WC5zZWFyY2hCdWlsZGVyVHlwZToodGhpcy5zLnR5cGU9PT12b2lkIDB8fHRoaXMucy50eXBlPT09bnVsbCkmJih0aGlzLnMudHlwZT1YLnNUeXBlKX0odGhpcy5zLnR5cGU9PT1udWxsfHx0aGlzLnMudHlwZT09PXZvaWQgMCkmJih0LmZuLmRhdGFUYWJsZS5leHQub0FwaSYmdC5mbi5kYXRhVGFibGUuZXh0Lm9BcGkuX2ZuQ29sdW1uVHlwZXMoXy5zZXR0aW5ncygpWzBdKSx0aGlzLnMudHlwZT1fLmNvbHVtbihPKS50eXBlKCkpLHRoaXMuZG9tLmNvbmRpdGlvbi5yZW1vdmVBdHRyKCJkaXNhYmxlZCIpLmVtcHR5KCkuYXBwZW5kKHRoaXMuZG9tLmNvbmRpdGlvblRpdGxlKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuaXRhbGljKSx0aGlzLmRvbS5jb25kaXRpb25UaXRsZS5wcm9wKCJzZWxlY3RlZCIsITApO3ZhciBRPV8uc2V0dGluZ3MoKVswXS5vTGFuZ3VhZ2Uuc0RlY2ltYWw7USE9PSIiJiZ0aGlzLnMudHlwZSYmdGhpcy5zLnR5cGUuaW5kZXhPZihRKT09PXRoaXMucy50eXBlLmxlbmd0aC1RLmxlbmd0aCYmKHRoaXMucy50eXBlLmluY2x1ZGVzKCJudW0tZm10Iik/dGhpcy5zLnR5cGU9dGhpcy5zLnR5cGUucmVwbGFjZShRLCIiKTp0aGlzLnMudHlwZS5pbmNsdWRlcygibnVtIikmJih0aGlzLnMudHlwZT10aGlzLnMudHlwZS5yZXBsYWNlKFEsIiIpKSk7dmFyIEU9dm9pZCAwO3RoaXMuYy5jb25kaXRpb25zW3RoaXMucy50eXBlXSE9PXZvaWQgMD9FPXRoaXMuYy5jb25kaXRpb25zW3RoaXMucy50eXBlXTp0aGlzLnMudHlwZSYmdGhpcy5zLnR5cGUuaW5jbHVkZXMoImRhdGV0aW1lLSIpPyhFPWF0LnVzZSgibW9tZW50Iik/dGhpcy5jLmNvbmRpdGlvbnMubW9tZW50OnRoaXMuYy5jb25kaXRpb25zLmx1eG9uLHRoaXMucy5kYXRlRm9ybWF0PXRoaXMucy50eXBlLnJlcGxhY2UoL2RhdGV0aW1lLS9nLCIiKSk6dGhpcy5zLnR5cGUmJnRoaXMucy50eXBlLmluY2x1ZGVzKCJtb21lbnQiKT8oRT10aGlzLmMuY29uZGl0aW9ucy5tb21lbnQsdGhpcy5zLmRhdGVGb3JtYXQ9dGhpcy5zLnR5cGUucmVwbGFjZSgvbW9tZW50LS9nLCIiKSk6dGhpcy5zLnR5cGUmJnRoaXMucy50eXBlLmluY2x1ZGVzKCJsdXhvbiIpPyhFPXRoaXMuYy5jb25kaXRpb25zLmx1eG9uLHRoaXMucy5kYXRlRm9ybWF0PXRoaXMucy50eXBlLnJlcGxhY2UoL2x1eG9uLS9nLCIiKSk6RT10aGlzLmMuY29uZGl0aW9ucy5zdHJpbmc7Zm9yKHZhciAkPTAsdz1PYmplY3Qua2V5cyhFKTskPHcubGVuZ3RoOyQrKylpZihmPXdbJF0sRVtmXSE9PW51bGwpe2lmKF8ucGFnZS5pbmZvKCkuc2VydmVyU2lkZSYmRVtmXS5pbml0PT09Yy5pbml0U2VsZWN0KXt2YXIgaz1GW09dO3RoaXMucy5zZXJ2ZXJEYXRhJiZ0aGlzLnMuc2VydmVyRGF0YVtrLmRhdGFdPyhFW2ZdLmluaXQ9Yy5pbml0U2VsZWN0U1NQLEVbZl0uaW5wdXRWYWx1ZT1jLmlucHV0VmFsdWVTZWxlY3QsRVtmXS5pc0lucHV0VmFsaWQ9Yy5pc0lucHV0VmFsaWRTZWxlY3QpOihFW2ZdLmluaXQ9Yy5pbml0SW5wdXQsRVtmXS5pbnB1dFZhbHVlPWMuaW5wdXRWYWx1ZUlucHV0LEVbZl0uaXNJbnB1dFZhbGlkPWMuaXNJbnB1dFZhbGlkSW5wdXQpfXRoaXMucy5jb25kaXRpb25zW2ZdPUVbZl0sVT1FW2ZdLmNvbmRpdGlvbk5hbWUsdHlwZW9mIFU9PSJmdW5jdGlvbiImJihVPVUoXyx0aGlzLmMuaTE4bikpLGwucHVzaCh0KCI8b3B0aW9uPiIse3RleHQ6VSx2YWx1ZTpmfSkuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLm9wdGlvbikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLm5vdEl0YWxpYykpfX1lbHNlIGlmKGg+MCl7dGhpcy5kb20uY29uZGl0aW9uLmVtcHR5KCkucmVtb3ZlQXR0cigiZGlzYWJsZWQiKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuaXRhbGljKTtmb3IodmFyIFM9MCxCPU9iamVjdC5rZXlzKHRoaXMucy5jb25kaXRpb25zKTtTPEIubGVuZ3RoO1MrKyl7Zj1CW1NdO3ZhciBMPXRoaXMucy5jb25kaXRpb25zW2ZdLmNvbmRpdGlvbk5hbWU7dHlwZW9mIEw9PSJmdW5jdGlvbiImJihMPUwoXyx0aGlzLmMuaTE4bikpO3ZhciBSPXQoIjxvcHRpb24+Iix7dGV4dDpMLHZhbHVlOmZ9KS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMub3B0aW9uKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMubm90SXRhbGljKTt0aGlzLnMuY29uZGl0aW9uIT09dm9pZCAwJiZ0aGlzLnMuY29uZGl0aW9uPT09TCYmKFIucHJvcCgic2VsZWN0ZWQiLCEwKSx0aGlzLmRvbS5jb25kaXRpb24ucmVtb3ZlQ2xhc3ModGhpcy5jbGFzc2VzLml0YWxpYykpLGwucHVzaChSKX19ZWxzZXt0aGlzLmRvbS5jb25kaXRpb24uYXR0cigiZGlzYWJsZWQiLCJ0cnVlIikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLml0YWxpYyk7cmV0dXJufWZvcih2YXIgcT0wLHo9bDtxPHoubGVuZ3RoO3ErKyl7dmFyIEc9eltxXTt0aGlzLmRvbS5jb25kaXRpb24uYXBwZW5kKEcpfWlmKEZbT10uc2VhcmNoQnVpbGRlciYmRltPXS5zZWFyY2hCdWlsZGVyLmRlZmF1bHRDb25kaXRpb24pe3ZhciBudD1GW09dLnNlYXJjaEJ1aWxkZXIuZGVmYXVsdENvbmRpdGlvbjtpZih0eXBlb2YgbnQ9PSJudW1iZXIiKXRoaXMuZG9tLmNvbmRpdGlvbi5wcm9wKCJzZWxlY3RlZEluZGV4IixudCksdGhpcy5kb20uY29uZGl0aW9uLnRyaWdnZXIoImNoYW5nZSIpO2Vsc2UgaWYodHlwZW9mIG50PT0ic3RyaW5nIilmb3IodmFyIHR0PTA7dHQ8bC5sZW5ndGg7dHQrKylmb3IodmFyIGV0PTAsd3Q9T2JqZWN0LmtleXModGhpcy5zLmNvbmRpdGlvbnMpO2V0PHd0Lmxlbmd0aDtldCsrKXt2YXIgU3Q9d3RbZXRdO2lmKFU9dGhpcy5zLmNvbmRpdGlvbnNbU3RdLmNvbmRpdGlvbk5hbWUsKHR5cGVvZiBVPT0ic3RyaW5nIj9VOlUoXyx0aGlzLmMuaTE4bikpPT09bFt0dF0udGV4dCgpJiZTdD09PW50KXt0aGlzLmRvbS5jb25kaXRpb24ucHJvcCgic2VsZWN0ZWRJbmRleCIsdGhpcy5kb20uY29uZGl0aW9uLmNoaWxkcmVuKCkudG9BcnJheSgpLmluZGV4T2YobFt0dF1bMF0pKS5yZW1vdmVDbGFzcyh0aGlzLmNsYXNzZXMuaXRhbGljKSx0aGlzLmRvbS5jb25kaXRpb24udHJpZ2dlcigiY2hhbmdlIiksdHQ9bC5sZW5ndGg7YnJlYWt9fX1lbHNlIHRoaXMuZG9tLmNvbmRpdGlvbi5wcm9wKCJzZWxlY3RlZEluZGV4IiwwKX0sYy5wcm90b3R5cGUuX3BvcHVsYXRlRGF0YT1mdW5jdGlvbigpe3ZhciBsPXRoaXMucy5kdC5zZXR0aW5ncygpWzBdLmFvQ29sdW1ucyxoPXRoaXMucy5kdC5jb2x1bW5zKHRoaXMuYy5jb2x1bW5zKS5pbmRleGVzKCkudG9BcnJheSgpO3RoaXMuZG9tLmRhdGEuZW1wdHkoKS5hcHBlbmQodGhpcy5kb20uZGF0YVRpdGxlKTtmb3IodmFyIF89MDtfPGwubGVuZ3RoO18rKylpZih0aGlzLmMuY29sdW1ucz09PSEwfHxoLmluY2x1ZGVzKF8pKXt2YXIgRj1sW19dLE89e2luZGV4Ol8sb3JpZ0RhdGE6Ri5kYXRhLHRleHQ6KEYuc2VhcmNoQnVpbGRlclRpdGxlfHxGLnNUaXRsZSkucmVwbGFjZSgvKDwoW14+XSspPikvaWcsIiIpfTt0aGlzLmRvbS5kYXRhLmFwcGVuZCh0KCI8b3B0aW9uPiIse3RleHQ6Ty50ZXh0LHZhbHVlOk8uaW5kZXh9KS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMub3B0aW9uKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMubm90SXRhbGljKS5wcm9wKCJvcmlnRGF0YSIsRi5kYXRhKS5wcm9wKCJzZWxlY3RlZCIsdGhpcy5zLmRhdGFJZHg9PT1PLmluZGV4KSksdGhpcy5zLmRhdGFJZHg9PT1PLmluZGV4JiZ0aGlzLmRvbS5kYXRhVGl0bGUucmVtb3ZlUHJvcCgic2VsZWN0ZWQiKX19LGMucHJvdG90eXBlLl9wb3B1bGF0ZVZhbHVlPWZ1bmN0aW9uKGwpe3ZhciBoPXRoaXMsXz10aGlzLnMuZmlsbGVkLEY7dGhpcy5zLmZpbGxlZD0hMSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aC5kb20uZGVmYXVsdFZhbHVlLnJlbW92ZSgpfSw1MCk7Zm9yKHZhciBPPWZ1bmN0aW9uKEUpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtFIT09dm9pZCAwJiZFLnJlbW92ZSgpfSw1MCl9LGY9MCxVPXRoaXMuZG9tLnZhbHVlO2Y8VS5sZW5ndGg7ZisrKXt2YXIgWD1VW2ZdO08oWCl9dmFyIFE9dGhpcy5kb20uaW5wdXRDb250LmNoaWxkcmVuKCk7aWYoUS5sZW5ndGg+MSlmb3IoRj0wO0Y8US5sZW5ndGg7RisrKXQoUVtGXSkucmVtb3ZlKCk7Zm9yKGwhPT12b2lkIDAmJnRoaXMucy5kdC5jb2x1bW5zKCkuZXZlcnkoZnVuY3Rpb24oRSl7aC5zLmR0LnNldHRpbmdzKClbMF0uYW9Db2x1bW5zW0VdLnNUaXRsZT09PWwuZGF0YSYmKGgucy5kYXRhSWR4PUUpfSksdGhpcy5kb20udmFsdWU9W10uY29uY2F0KHRoaXMucy5jb25kaXRpb25zW3RoaXMucy5jb25kaXRpb25dLmluaXQodGhpcyxjLnVwZGF0ZUxpc3RlbmVyLGwhPT12b2lkIDA/bC52YWx1ZTp2b2lkIDApKSxsIT09dm9pZCAwJiZsLnZhbHVlIT09dm9pZCAwJiYodGhpcy5zLnZhbHVlPWwudmFsdWUpLHRoaXMuZG9tLmlucHV0Q29udC5lbXB0eSgpLHRoaXMuZG9tLnZhbHVlWzBdIT09dm9pZCAwJiZ0KHRoaXMuZG9tLnZhbHVlWzBdKS5hcHBlbmRUbyh0aGlzLmRvbS5pbnB1dENvbnQpLnRyaWdnZXIoImR0c2ItaW5zZXJ0ZWQiKSxGPTE7Rjx0aGlzLmRvbS52YWx1ZS5sZW5ndGg7RisrKXQodGhpcy5kb20udmFsdWVbRl0pLmluc2VydEFmdGVyKHRoaXMuZG9tLnZhbHVlW0YtMV0pLnRyaWdnZXIoImR0c2ItaW5zZXJ0ZWQiKTt0aGlzLnMuZmlsbGVkPXRoaXMucy5jb25kaXRpb25zW3RoaXMucy5jb25kaXRpb25dLmlzSW5wdXRWYWxpZCh0aGlzLmRvbS52YWx1ZSx0aGlzKSx0aGlzLnNldExpc3RlbmVycygpLCF0aGlzLnMucHJldmVudFJlZHJhdyYmXyE9PXRoaXMucy5maWxsZWQmJih0aGlzLnMuZHQucGFnZS5pbmZvKCkuc2VydmVyU2lkZXx8dGhpcy5kb1NlYXJjaCgpLHRoaXMuc2V0TGlzdGVuZXJzKCkpfSxjLnByb3RvdHlwZS5fdGhyb3R0bGU9ZnVuY3Rpb24obCxoKXtoPT09dm9pZCAwJiYoaD0yMDApO3ZhciBfPW51bGwsRj1udWxsLE89dGhpcztyZXR1cm4gaD09PW51bGwmJihoPTIwMCksZnVuY3Rpb24oKXtmb3IodmFyIGY9W10sVT0wO1U8YXJndW1lbnRzLmxlbmd0aDtVKyspZltVXT1hcmd1bWVudHNbVV07dmFyIFg9K25ldyBEYXRlO18hPT1udWxsJiZYPF8raD9jbGVhclRpbWVvdXQoRik6Xz1YLEY9c2V0VGltZW91dChmdW5jdGlvbigpe189bnVsbCxsLmFwcGx5KE8sZil9LGgpfX0sYy52ZXJzaW9uPSIxLjEuMCIsYy5jbGFzc2VzPXtidXR0b246ImR0c2ItYnV0dG9uIixidXR0b25Db250YWluZXI6ImR0c2ItYnV0dG9uQ29udGFpbmVyIixjb25kaXRpb246ImR0c2ItY29uZGl0aW9uIixjb250YWluZXI6ImR0c2ItY3JpdGVyaWEiLGRhdGE6ImR0c2ItZGF0YSIsZGVsZXRlOiJkdHNiLWRlbGV0ZSIsZHJvcERvd246ImR0c2ItZHJvcERvd24iLGdyZXlzY2FsZToiZHRzYi1ncmV5c2NhbGUiLGlucHV0OiJkdHNiLWlucHV0IixpbnB1dENvbnQ6ImR0c2ItaW5wdXRDb250IixpdGFsaWM6ImR0c2ItaXRhbGljIixqb2luZXI6ImR0c2Itam9pbmVyIixsZWZ0OiJkdHNiLWxlZnQiLG5vdEl0YWxpYzoiZHRzYi1ub3RJdGFsaWMiLG9wdGlvbjoiZHRzYi1vcHRpb24iLHJpZ2h0OiJkdHNiLXJpZ2h0IixzZWxlY3Q6ImR0c2Itc2VsZWN0Iix2YWx1ZToiZHRzYi12YWx1ZSIsdmVydGljYWw6ImR0c2ItdmVydGljYWwifSxjLmluaXRTZWxlY3Q9ZnVuY3Rpb24obCxoLF8sRil7Xz09PXZvaWQgMCYmKF89bnVsbCksRj09PXZvaWQgMCYmKEY9ITEpO3ZhciBPPWwuZG9tLmRhdGEuY2hpbGRyZW4oIm9wdGlvbjpzZWxlY3RlZCIpLnZhbCgpLGY9bC5zLmR0LnJvd3MoKS5pbmRleGVzKCkudG9BcnJheSgpLFU9bC5zLmR0LnNldHRpbmdzKClbMF0uZmFzdERhdGE7bC5kb20udmFsdWVUaXRsZS5wcm9wKCJzZWxlY3RlZCIsITApO3ZhciBYPXQoIjxzZWxlY3QvPiIpLmFkZENsYXNzKGMuY2xhc3Nlcy52YWx1ZSkuYWRkQ2xhc3MoYy5jbGFzc2VzLmRyb3BEb3duKS5hZGRDbGFzcyhjLmNsYXNzZXMuaXRhbGljKS5hZGRDbGFzcyhjLmNsYXNzZXMuc2VsZWN0KS5hcHBlbmQobC5kb20udmFsdWVUaXRsZSkub24oImNoYW5nZS5kdHNiIixmdW5jdGlvbigpe3QodGhpcykucmVtb3ZlQ2xhc3MoYy5jbGFzc2VzLml0YWxpYyksaChsLHRoaXMpfSk7bC5jLmdyZXlzY2FsZSYmWC5hZGRDbGFzcyhjLmNsYXNzZXMuZ3JleXNjYWxlKTtmb3IodmFyIFE9W10sRT1bXSwkPTAsdz1mOyQ8dy5sZW5ndGg7JCsrKXt2YXIgaz13WyRdLFM9VShrLE8sdHlwZW9mIGwuYy5vcnRob2dvbmFsPT0ic3RyaW5nIj9sLmMub3J0aG9nb25hbDpsLmMub3J0aG9nb25hbC5zZWFyY2gpLEI9e2ZpbHRlcjp0eXBlb2YgUz09InN0cmluZyI/Uy5yZXBsYWNlKC9bXHJcblx1MjAyOF0vZywiICIpOlMsaW5kZXg6ayx0ZXh0OlUoayxPLHR5cGVvZiBsLmMub3J0aG9nb25hbD09InN0cmluZyI/bC5jLm9ydGhvZ29uYWw6bC5jLm9ydGhvZ29uYWwuZGlzcGxheSl9O2wucy50eXBlPT09ImFycmF5IiYmKEIuZmlsdGVyPUFycmF5LmlzQXJyYXkoQi5maWx0ZXIpP0IuZmlsdGVyOltCLmZpbHRlcl0sQi50ZXh0PUFycmF5LmlzQXJyYXkoQi50ZXh0KT9CLnRleHQ6W0IudGV4dF0pO3ZhciBMPWZ1bmN0aW9uKG50LHR0KXtsLnMudHlwZS5pbmNsdWRlcygiaHRtbCIpJiZudCE9PW51bGwmJnR5cGVvZiBudD09InN0cmluZyImJm50LnJlcGxhY2UoLyg8KFtePl0rKT4pL2lnLCIiKTt2YXIgZXQ9dCgiPG9wdGlvbj4iLHt0eXBlOkFycmF5LmlzQXJyYXkobnQpPyJBcnJheSI6IlN0cmluZyIsdmFsdWU6bnR9KS5kYXRhKCJzYnYiLG50KS5hZGRDbGFzcyhsLmNsYXNzZXMub3B0aW9uKS5hZGRDbGFzcyhsLmNsYXNzZXMubm90SXRhbGljKS5odG1sKHR5cGVvZiB0dD09InN0cmluZyI/dHQucmVwbGFjZSgvKDwoW14+XSspPikvaWcsIiIpOnR0KSx3dD1ldC52YWwoKTtRLmluZGV4T2Yod3QpPT09LTEmJihRLnB1c2god3QpLEUucHVzaChldCksXyE9PW51bGwmJkFycmF5LmlzQXJyYXkoX1swXSkmJihfWzBdPV9bMF0uc29ydCgpLmpvaW4oIiwiKSksXyE9PW51bGwmJmV0LnZhbCgpPT09X1swXSYmKGV0LnByb3AoInNlbGVjdGVkIiwhMCksWC5yZW1vdmVDbGFzcyhjLmNsYXNzZXMuaXRhbGljKSxsLmRvbS52YWx1ZVRpdGxlLnJlbW92ZVByb3AoInNlbGVjdGVkIikpKX07aWYoRilmb3IodmFyIFI9MDtSPEIuZmlsdGVyLmxlbmd0aDtSKyspTChCLmZpbHRlcltSXSxCLnRleHRbUl0pO2Vsc2UgTChCLmZpbHRlcixBcnJheS5pc0FycmF5KEIudGV4dCk/Qi50ZXh0LmpvaW4oIiwgIik6Qi50ZXh0KX1FLnNvcnQoZnVuY3Rpb24obnQsdHQpe2lmKGwucy50eXBlPT09ImFycmF5Inx8bC5zLnR5cGU9PT0ic3RyaW5nInx8bC5zLnR5cGU9PT0iaHRtbCIpcmV0dXJuIG50LnZhbCgpPHR0LnZhbCgpPy0xOm50LnZhbCgpPnR0LnZhbCgpPzE6MDtpZihsLnMudHlwZT09PSJudW0ifHxsLnMudHlwZT09PSJodG1sLW51bSIpcmV0dXJuK250LnZhbCgpLnJlcGxhY2UoLyg8KFtePl0rKT4pL2lnLCIiKTwrdHQudmFsKCkucmVwbGFjZSgvKDwoW14+XSspPikvaWcsIiIpPy0xOitudC52YWwoKS5yZXBsYWNlKC8oPChbXj5dKyk+KS9pZywiIik+K3R0LnZhbCgpLnJlcGxhY2UoLyg8KFtePl0rKT4pL2lnLCIiKT8xOjA7aWYobC5zLnR5cGU9PT0ibnVtLWZtdCJ8fGwucy50eXBlPT09Imh0bWwtbnVtLWZtdCIpcmV0dXJuK250LnZhbCgpLnJlcGxhY2UoL1teMC05Ll0vZywiIik8K3R0LnZhbCgpLnJlcGxhY2UoL1teMC05Ll0vZywiIik/LTE6K250LnZhbCgpLnJlcGxhY2UoL1teMC05Ll0vZywiIik+K3R0LnZhbCgpLnJlcGxhY2UoL1teMC05Ll0vZywiIik/MTowfSk7Zm9yKHZhciBxPTAsej1FO3E8ei5sZW5ndGg7cSsrKXt2YXIgRz16W3FdO1guYXBwZW5kKEcpfXJldHVybiBYfSxjLmluaXRTZWxlY3RTU1A9ZnVuY3Rpb24obCxoLF8pe189PT12b2lkIDAmJihfPW51bGwpLGwuZG9tLnZhbHVlVGl0bGUucHJvcCgic2VsZWN0ZWQiLCEwKTt2YXIgRj10KCI8c2VsZWN0Lz4iKS5hZGRDbGFzcyhjLmNsYXNzZXMudmFsdWUpLmFkZENsYXNzKGMuY2xhc3Nlcy5kcm9wRG93bikuYWRkQ2xhc3MoYy5jbGFzc2VzLml0YWxpYykuYWRkQ2xhc3MoYy5jbGFzc2VzLnNlbGVjdCkuYXBwZW5kKGwuZG9tLnZhbHVlVGl0bGUpLm9uKCJjaGFuZ2UuZHRzYiIsZnVuY3Rpb24oKXt0KHRoaXMpLnJlbW92ZUNsYXNzKGMuY2xhc3Nlcy5pdGFsaWMpLGgobCx0aGlzKX0pO2wuYy5ncmV5c2NhbGUmJkYuYWRkQ2xhc3MoYy5jbGFzc2VzLmdyZXlzY2FsZSk7Zm9yKHZhciBPPVtdLGY9MCxVPWwucy5zZXJ2ZXJEYXRhW2wucy5vcmlnRGF0YV07ZjxVLmxlbmd0aDtmKyspe3ZhciBYPVVbZl0sUT1YLnZhbHVlLEU9WC5sYWJlbCwkPWZ1bmN0aW9uKEIsTCl7bC5zLnR5cGUuaW5jbHVkZXMoImh0bWwiKSYmQiE9PW51bGwmJnR5cGVvZiBCPT0ic3RyaW5nIiYmQi5yZXBsYWNlKC8oPChbXj5dKyk+KS9pZywiIik7dmFyIFI9dCgiPG9wdGlvbj4iLHt0eXBlOkFycmF5LmlzQXJyYXkoQik/IkFycmF5IjoiU3RyaW5nIix2YWx1ZTpCfSkuZGF0YSgic2J2IixCKS5hZGRDbGFzcyhsLmNsYXNzZXMub3B0aW9uKS5hZGRDbGFzcyhsLmNsYXNzZXMubm90SXRhbGljKS5odG1sKHR5cGVvZiBMPT0ic3RyaW5nIj9MLnJlcGxhY2UoLyg8KFtePl0rKT4pL2lnLCIiKTpMKTtPLnB1c2goUiksXyE9PW51bGwmJlIudmFsKCk9PT1fWzBdJiYoUi5wcm9wKCJzZWxlY3RlZCIsITApLEYucmVtb3ZlQ2xhc3MoYy5jbGFzc2VzLml0YWxpYyksbC5kb20udmFsdWVUaXRsZS5yZW1vdmVQcm9wKCJzZWxlY3RlZCIpKX07JChRLEUpfWZvcih2YXIgdz0wLGs9Tzt3PGsubGVuZ3RoO3crKyl7dmFyIFM9a1t3XTtGLmFwcGVuZChTKX1yZXR1cm4gRn0sYy5pbml0U2VsZWN0QXJyYXk9ZnVuY3Rpb24obCxoLF8pe3JldHVybiBfPT09dm9pZCAwJiYoXz1udWxsKSxjLmluaXRTZWxlY3QobCxoLF8sITApfSxjLmluaXRJbnB1dD1mdW5jdGlvbihsLGgsXyl7Xz09PXZvaWQgMCYmKF89bnVsbCk7dmFyIEY9bC5zLmR0LnNldHRpbmdzKClbMF0uc2VhcmNoRGVsYXksTz10KCI8aW5wdXQvPiIpLmFkZENsYXNzKGMuY2xhc3Nlcy52YWx1ZSkuYWRkQ2xhc3MoYy5jbGFzc2VzLmlucHV0KS5vbigiaW5wdXQuZHRzYiBrZXlwcmVzcy5kdHNiIixsLl90aHJvdHRsZShmdW5jdGlvbihmKXt2YXIgVT1mLmtleUNvZGV8fGYud2hpY2g7cmV0dXJuIGgobCx0aGlzLFUpfSxGPT09bnVsbD8xMDA6RikpO3JldHVybiBsLmMuZ3JleXNjYWxlJiZPLmFkZENsYXNzKGMuY2xhc3Nlcy5ncmV5c2NhbGUpLF8hPT1udWxsJiZPLnZhbChfWzBdKSxsLnMuZHQub25lKCJkcmF3LmR0c2IiLGZ1bmN0aW9uKCl7bC5zLnRvcEdyb3VwLnRyaWdnZXIoImR0c2ItcmVkcmF3TG9naWMiKX0pLE99LGMuaW5pdDJJbnB1dD1mdW5jdGlvbihsLGgsXyl7Xz09PXZvaWQgMCYmKF89bnVsbCk7dmFyIEY9bC5zLmR0LnNldHRpbmdzKClbMF0uc2VhcmNoRGVsYXksTz1bdCgiPGlucHV0Lz4iKS5hZGRDbGFzcyhjLmNsYXNzZXMudmFsdWUpLmFkZENsYXNzKGMuY2xhc3Nlcy5pbnB1dCkub24oImlucHV0LmR0c2Iga2V5cHJlc3MuZHRzYiIsbC5fdGhyb3R0bGUoZnVuY3Rpb24oZil7dmFyIFU9Zi5rZXlDb2RlfHxmLndoaWNoO3JldHVybiBoKGwsdGhpcyxVKX0sRj09PW51bGw/MTAwOkYpKSx0KCI8c3Bhbj4iKS5hZGRDbGFzcyhsLmNsYXNzZXMuam9pbmVyKS5odG1sKGwucy5kdC5pMThuKCJzZWFyY2hCdWlsZGVyLnZhbHVlSm9pbmVyIixsLmMuaTE4bi52YWx1ZUpvaW5lcikpLHQoIjxpbnB1dC8+IikuYWRkQ2xhc3MoYy5jbGFzc2VzLnZhbHVlKS5hZGRDbGFzcyhjLmNsYXNzZXMuaW5wdXQpLm9uKCJpbnB1dC5kdHNiIGtleXByZXNzLmR0c2IiLGwuX3Rocm90dGxlKGZ1bmN0aW9uKGYpe3ZhciBVPWYua2V5Q29kZXx8Zi53aGljaDtyZXR1cm4gaChsLHRoaXMsVSl9LEY9PT1udWxsPzEwMDpGKSldO3JldHVybiBsLmMuZ3JleXNjYWxlJiYoT1swXS5hZGRDbGFzcyhjLmNsYXNzZXMuZ3JleXNjYWxlKSxPWzJdLmFkZENsYXNzKGMuY2xhc3Nlcy5ncmV5c2NhbGUpKSxfIT09bnVsbCYmKE9bMF0udmFsKF9bMF0pLE9bMl0udmFsKF9bMV0pKSxsLnMuZHQub25lKCJkcmF3LmR0c2IiLGZ1bmN0aW9uKCl7bC5zLnRvcEdyb3VwLnRyaWdnZXIoImR0c2ItcmVkcmF3TG9naWMiKX0pLE99LGMuaW5pdERhdGU9ZnVuY3Rpb24obCxoLF8pe189PT12b2lkIDAmJihfPW51bGwpO3ZhciBGPWwucy5kdC5zZXR0aW5ncygpWzBdLnNlYXJjaERlbGF5LE89bC5zLmR0LmkxOG4oImRhdGV0aW1lIix7fSksZj10KCI8aW5wdXQvPiIpLmFkZENsYXNzKGMuY2xhc3Nlcy52YWx1ZSkuYWRkQ2xhc3MoYy5jbGFzc2VzLmlucHV0KS5kdERhdGVUaW1lKHthdHRhY2hUbzoiaW5wdXQiLGZvcm1hdDpsLnMuZGF0ZUZvcm1hdD9sLnMuZGF0ZUZvcm1hdDp2b2lkIDAsaTE4bjpPfSkub24oImNoYW5nZS5kdHNiIixsLl90aHJvdHRsZShmdW5jdGlvbigpe3JldHVybiBoKGwsdGhpcyl9LEY9PT1udWxsPzEwMDpGKSkub24oImlucHV0LmR0c2Iga2V5cHJlc3MuZHRzYiIsZnVuY3Rpb24oVSl7bC5fdGhyb3R0bGUoZnVuY3Rpb24oKXt2YXIgWD1VLmtleUNvZGV8fFUud2hpY2g7cmV0dXJuIGgobCx0aGlzLFgpfSxGPT09bnVsbD8xMDA6Ril9KTtyZXR1cm4gbC5jLmdyZXlzY2FsZSYmZi5hZGRDbGFzcyhjLmNsYXNzZXMuZ3JleXNjYWxlKSxfIT09bnVsbCYmZi52YWwoX1swXSksbC5zLmR0Lm9uZSgiZHJhdy5kdHNiIixmdW5jdGlvbigpe2wucy50b3BHcm91cC50cmlnZ2VyKCJkdHNiLXJlZHJhd0xvZ2ljIil9KSxmfSxjLmluaXROb1ZhbHVlPWZ1bmN0aW9uKGwpe3JldHVybiBsLnMuZHQub25lKCJkcmF3LmR0c2IiLGZ1bmN0aW9uKCl7bC5zLnRvcEdyb3VwLnRyaWdnZXIoImR0c2ItcmVkcmF3TG9naWMiKX0pLFtdfSxjLmluaXQyRGF0ZT1mdW5jdGlvbihsLGgsXyl7dmFyIEY9dGhpcztfPT09dm9pZCAwJiYoXz1udWxsKTt2YXIgTz1sLnMuZHQuc2V0dGluZ3MoKVswXS5zZWFyY2hEZWxheSxmPWwucy5kdC5pMThuKCJkYXRldGltZSIse30pLFU9W3QoIjxpbnB1dC8+IikuYWRkQ2xhc3MoYy5jbGFzc2VzLnZhbHVlKS5hZGRDbGFzcyhjLmNsYXNzZXMuaW5wdXQpLmR0RGF0ZVRpbWUoe2F0dGFjaFRvOiJpbnB1dCIsZm9ybWF0Omwucy5kYXRlRm9ybWF0P2wucy5kYXRlRm9ybWF0OnZvaWQgMCxpMThuOmZ9KS5vbigiY2hhbmdlLmR0c2IiLE8hPT1udWxsP2F0LnV0aWwudGhyb3R0bGUoZnVuY3Rpb24oKXtyZXR1cm4gaChsLHRoaXMpfSxPKTpmdW5jdGlvbigpe2gobCxGKX0pLm9uKCJpbnB1dC5kdHNiIGtleXByZXNzLmR0c2IiLGZ1bmN0aW9uKFgpe2F0LnV0aWwudGhyb3R0bGUoZnVuY3Rpb24oKXt2YXIgUT1YLmtleUNvZGV8fFgud2hpY2g7cmV0dXJuIGgobCx0aGlzLFEpfSxPPT09bnVsbD8wOk8pfSksdCgiPHNwYW4+IikuYWRkQ2xhc3MobC5jbGFzc2VzLmpvaW5lcikuaHRtbChsLnMuZHQuaTE4bigic2VhcmNoQnVpbGRlci52YWx1ZUpvaW5lciIsbC5jLmkxOG4udmFsdWVKb2luZXIpKSx0KCI8aW5wdXQvPiIpLmFkZENsYXNzKGMuY2xhc3Nlcy52YWx1ZSkuYWRkQ2xhc3MoYy5jbGFzc2VzLmlucHV0KS5kdERhdGVUaW1lKHthdHRhY2hUbzoiaW5wdXQiLGZvcm1hdDpsLnMuZGF0ZUZvcm1hdD9sLnMuZGF0ZUZvcm1hdDp2b2lkIDAsaTE4bjpmfSkub24oImNoYW5nZS5kdHNiIixPIT09bnVsbD9hdC51dGlsLnRocm90dGxlKGZ1bmN0aW9uKCl7cmV0dXJuIGgobCx0aGlzKX0sTyk6ZnVuY3Rpb24oKXtoKGwsRil9KS5vbigiaW5wdXQuZHRzYiBrZXlwcmVzcy5kdHNiIiwhbC5jLmVudGVyU2VhcmNoJiYhKGwucy5kdC5zZXR0aW5ncygpWzBdLm9Jbml0LnNlYXJjaCE9PXZvaWQgMCYmbC5zLmR0LnNldHRpbmdzKClbMF0ub0luaXQuc2VhcmNoLnJldHVybikmJk8hPT1udWxsP2F0LnV0aWwudGhyb3R0bGUoZnVuY3Rpb24oKXtyZXR1cm4gaChsLHRoaXMpfSxPKTpmdW5jdGlvbihYKXt2YXIgUT1YLmtleUNvZGV8fFgud2hpY2g7aChsLEYsUSl9KV07cmV0dXJuIGwuYy5ncmV5c2NhbGUmJihVWzBdLmFkZENsYXNzKGMuY2xhc3Nlcy5ncmV5c2NhbGUpLFVbMl0uYWRkQ2xhc3MoYy5jbGFzc2VzLmdyZXlzY2FsZSkpLF8hPT1udWxsJiZfLmxlbmd0aD4wJiYoVVswXS52YWwoX1swXSksVVsyXS52YWwoX1sxXSkpLGwucy5kdC5vbmUoImRyYXcuZHRzYiIsZnVuY3Rpb24oKXtsLnMudG9wR3JvdXAudHJpZ2dlcigiZHRzYi1yZWRyYXdMb2dpYyIpfSksVX0sYy5pc0lucHV0VmFsaWRTZWxlY3Q9ZnVuY3Rpb24obCl7Zm9yKHZhciBoPSEwLF89MCxGPWw7XzxGLmxlbmd0aDtfKyspe3ZhciBPPUZbX107Ty5jaGlsZHJlbigib3B0aW9uOnNlbGVjdGVkIikubGVuZ3RoPT09Ty5jaGlsZHJlbigib3B0aW9uIikubGVuZ3RoLU8uY2hpbGRyZW4oIm9wdGlvbi4iK2MuY2xhc3Nlcy5ub3RJdGFsaWMpLmxlbmd0aCYmTy5jaGlsZHJlbigib3B0aW9uOnNlbGVjdGVkIikubGVuZ3RoPT09MSYmTy5jaGlsZHJlbigib3B0aW9uOnNlbGVjdGVkIilbMF09PT1PLmNoaWxkcmVuKCJvcHRpb24iKVswXSYmKGg9ITEpfXJldHVybiBofSxjLmlzSW5wdXRWYWxpZElucHV0PWZ1bmN0aW9uKGwpe2Zvcih2YXIgaD0hMCxfPTAsRj1sO188Ri5sZW5ndGg7XysrKXt2YXIgTz1GW19dO08uaXMoImlucHV0IikmJk8udmFsKCkubGVuZ3RoPT09MCYmKGg9ITEpfXJldHVybiBofSxjLmlucHV0VmFsdWVTZWxlY3Q9ZnVuY3Rpb24obCl7Zm9yKHZhciBoPVtdLF89MCxGPWw7XzxGLmxlbmd0aDtfKyspe3ZhciBPPUZbX107Ty5pcygic2VsZWN0IikmJmgucHVzaChjLl9lc2NhcGVIVE1MKE8uY2hpbGRyZW4oIm9wdGlvbjpzZWxlY3RlZCIpLmRhdGEoInNidiIpKSl9cmV0dXJuIGh9LGMuaW5wdXRWYWx1ZUlucHV0PWZ1bmN0aW9uKGwpe2Zvcih2YXIgaD1bXSxfPTAsRj1sO188Ri5sZW5ndGg7XysrKXt2YXIgTz1GW19dO08uaXMoImlucHV0IikmJmgucHVzaChjLl9lc2NhcGVIVE1MKE8udmFsKCkpKX1yZXR1cm4gaH0sYy51cGRhdGVMaXN0ZW5lcj1mdW5jdGlvbihsLGgsXyl7dmFyIEY9bC5zLmNvbmRpdGlvbnNbbC5zLmNvbmRpdGlvbl0sTztpZihsLnMuZmlsbGVkPUYuaXNJbnB1dFZhbGlkKGwuZG9tLnZhbHVlLGwpLGwucy52YWx1ZT1GLmlucHV0VmFsdWUobC5kb20udmFsdWUsbCksIWwucy5maWxsZWQpeyghbC5jLmVudGVyU2VhcmNoJiYhKGwucy5kdC5zZXR0aW5ncygpWzBdLm9Jbml0LnNlYXJjaCE9PXZvaWQgMCYmbC5zLmR0LnNldHRpbmdzKClbMF0ub0luaXQuc2VhcmNoLnJldHVybil8fF89PT0xMykmJmwuZG9TZWFyY2goKTtyZXR1cm59Zm9yKEFycmF5LmlzQXJyYXkobC5zLnZhbHVlKXx8KGwucy52YWx1ZT1bbC5zLnZhbHVlXSksTz0wO088bC5zLnZhbHVlLmxlbmd0aDtPKyspQXJyYXkuaXNBcnJheShsLnMudmFsdWVbT10pJiZsLnMudmFsdWVbT10uc29ydCgpO3ZhciBmPW51bGwsVT1udWxsO2ZvcihPPTA7TzxsLmRvbS52YWx1ZS5sZW5ndGg7TysrKWg9PT1sLmRvbS52YWx1ZVtPXVswXSYmKGY9TyxoLnNlbGVjdGlvblN0YXJ0IT09dm9pZCAwJiYoVT1oLnNlbGVjdGlvblN0YXJ0KSk7KCFsLmMuZW50ZXJTZWFyY2gmJiEobC5zLmR0LnNldHRpbmdzKClbMF0ub0luaXQuc2VhcmNoIT09dm9pZCAwJiZsLnMuZHQuc2V0dGluZ3MoKVswXS5vSW5pdC5zZWFyY2gucmV0dXJuKXx8Xz09PTEzKSYmbC5kb1NlYXJjaCgpLGYhPT1udWxsJiYobC5kb20udmFsdWVbZl0ucmVtb3ZlQ2xhc3MobC5jbGFzc2VzLml0YWxpYyksbC5kb20udmFsdWVbZl0uZm9jdXMoKSxVIT09bnVsbCYmbC5kb20udmFsdWVbZl1bMF0uc2V0U2VsZWN0aW9uUmFuZ2UoVSxVKSl9LGMuZGF0ZUNvbmRpdGlvbnM9eyI9Ijp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihsLGgpe3JldHVybiBsLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5kYXRlLmVxdWFscyIsaC5jb25kaXRpb25zLmRhdGUuZXF1YWxzKX0saW5pdDpjLmluaXREYXRlLGlucHV0VmFsdWU6Yy5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmMuaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGw9bC5yZXBsYWNlKC8oXC98LXwsKS9nLCItIiksbD09PWhbMF19fSwiIT0iOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLmRhdGUubm90IixoLmNvbmRpdGlvbnMuZGF0ZS5ub3QpfSxpbml0OmMuaW5pdERhdGUsaW5wdXRWYWx1ZTpjLmlucHV0VmFsdWVJbnB1dCxpc0lucHV0VmFsaWQ6Yy5pc0lucHV0VmFsaWRJbnB1dCxzZWFyY2g6ZnVuY3Rpb24obCxoKXtyZXR1cm4gbD1sLnJlcGxhY2UoLyhcL3wtfCwpL2csIi0iKSxsIT09aFswXX19LCI8Ijp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihsLGgpe3JldHVybiBsLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5kYXRlLmJlZm9yZSIsaC5jb25kaXRpb25zLmRhdGUuYmVmb3JlKX0saW5pdDpjLmluaXREYXRlLGlucHV0VmFsdWU6Yy5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmMuaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGw9bC5yZXBsYWNlKC8oXC98LXwsKS9nLCItIiksbDxoWzBdfX0sIj4iOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLmRhdGUuYWZ0ZXIiLGguY29uZGl0aW9ucy5kYXRlLmFmdGVyKX0saW5pdDpjLmluaXREYXRlLGlucHV0VmFsdWU6Yy5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmMuaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGw9bC5yZXBsYWNlKC8oXC98LXwsKS9nLCItIiksbD5oWzBdfX0sYmV0d2Vlbjp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihsLGgpe3JldHVybiBsLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5kYXRlLmJldHdlZW4iLGguY29uZGl0aW9ucy5kYXRlLmJldHdlZW4pfSxpbml0OmMuaW5pdDJEYXRlLGlucHV0VmFsdWU6Yy5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmMuaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGw9bC5yZXBsYWNlKC8oXC98LXwsKS9nLCItIiksaFswXTxoWzFdP2hbMF08PWwmJmw8PWhbMV06aFsxXTw9bCYmbDw9aFswXX19LCIhYmV0d2VlbiI6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obCxoKXtyZXR1cm4gbC5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMuZGF0ZS5ub3RCZXR3ZWVuIixoLmNvbmRpdGlvbnMuZGF0ZS5ub3RCZXR3ZWVuKX0saW5pdDpjLmluaXQyRGF0ZSxpbnB1dFZhbHVlOmMuaW5wdXRWYWx1ZUlucHV0LGlzSW5wdXRWYWxpZDpjLmlzSW5wdXRWYWxpZElucHV0LHNlYXJjaDpmdW5jdGlvbihsLGgpe3JldHVybiBsPWwucmVwbGFjZSgvKFwvfC18LCkvZywiLSIpLGhbMF08aFsxXT8hKGhbMF08PWwmJmw8PWhbMV0pOiEoaFsxXTw9bCYmbDw9aFswXSl9fSxudWxsOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLmRhdGUuZW1wdHkiLGguY29uZGl0aW9ucy5kYXRlLmVtcHR5KX0saW5pdDpjLmluaXROb1ZhbHVlLGlucHV0VmFsdWU6ZnVuY3Rpb24oKXt9LGlzSW5wdXRWYWxpZDpmdW5jdGlvbigpe3JldHVybiEwfSxzZWFyY2g6ZnVuY3Rpb24obCl7cmV0dXJuIGw9PW51bGx8fGwubGVuZ3RoPT09MH19LCIhbnVsbCI6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obCxoKXtyZXR1cm4gbC5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMuZGF0ZS5ub3RFbXB0eSIsaC5jb25kaXRpb25zLmRhdGUubm90RW1wdHkpfSxpbml0OmMuaW5pdE5vVmFsdWUsaW5wdXRWYWx1ZTpmdW5jdGlvbigpe30saXNJbnB1dFZhbGlkOmZ1bmN0aW9uKCl7cmV0dXJuITB9LHNlYXJjaDpmdW5jdGlvbihsKXtyZXR1cm4hKGw9PW51bGx8fGwubGVuZ3RoPT09MCl9fX0sYy5tb21lbnREYXRlQ29uZGl0aW9ucz17Ij0iOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLmRhdGUuZXF1YWxzIixoLmNvbmRpdGlvbnMuZGF0ZS5lcXVhbHMpfSxpbml0OmMuaW5pdERhdGUsaW5wdXRWYWx1ZTpjLmlucHV0VmFsdWVJbnB1dCxpc0lucHV0VmFsaWQ6Yy5pc0lucHV0VmFsaWRJbnB1dCxzZWFyY2g6ZnVuY3Rpb24obCxoLF8pe3JldHVybiBuKCkobCxfLnMuZGF0ZUZvcm1hdCkudmFsdWVPZigpPT09bigpKGhbMF0sXy5zLmRhdGVGb3JtYXQpLnZhbHVlT2YoKX19LCIhPSI6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obCxoKXtyZXR1cm4gbC5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMuZGF0ZS5ub3QiLGguY29uZGl0aW9ucy5kYXRlLm5vdCl9LGluaXQ6Yy5pbml0RGF0ZSxpbnB1dFZhbHVlOmMuaW5wdXRWYWx1ZUlucHV0LGlzSW5wdXRWYWxpZDpjLmlzSW5wdXRWYWxpZElucHV0LHNlYXJjaDpmdW5jdGlvbihsLGgsXyl7cmV0dXJuIG4oKShsLF8ucy5kYXRlRm9ybWF0KS52YWx1ZU9mKCkhPT1uKCkoaFswXSxfLnMuZGF0ZUZvcm1hdCkudmFsdWVPZigpfX0sIjwiOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLmRhdGUuYmVmb3JlIixoLmNvbmRpdGlvbnMuZGF0ZS5iZWZvcmUpfSxpbml0OmMuaW5pdERhdGUsaW5wdXRWYWx1ZTpjLmlucHV0VmFsdWVJbnB1dCxpc0lucHV0VmFsaWQ6Yy5pc0lucHV0VmFsaWRJbnB1dCxzZWFyY2g6ZnVuY3Rpb24obCxoLF8pe3JldHVybiBuKCkobCxfLnMuZGF0ZUZvcm1hdCkudmFsdWVPZigpPG4oKShoWzBdLF8ucy5kYXRlRm9ybWF0KS52YWx1ZU9mKCl9fSwiPiI6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obCxoKXtyZXR1cm4gbC5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMuZGF0ZS5hZnRlciIsaC5jb25kaXRpb25zLmRhdGUuYWZ0ZXIpfSxpbml0OmMuaW5pdERhdGUsaW5wdXRWYWx1ZTpjLmlucHV0VmFsdWVJbnB1dCxpc0lucHV0VmFsaWQ6Yy5pc0lucHV0VmFsaWRJbnB1dCxzZWFyY2g6ZnVuY3Rpb24obCxoLF8pe3JldHVybiBuKCkobCxfLnMuZGF0ZUZvcm1hdCkudmFsdWVPZigpPm4oKShoWzBdLF8ucy5kYXRlRm9ybWF0KS52YWx1ZU9mKCl9fSxiZXR3ZWVuOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLmRhdGUuYmV0d2VlbiIsaC5jb25kaXRpb25zLmRhdGUuYmV0d2Vlbil9LGluaXQ6Yy5pbml0MkRhdGUsaW5wdXRWYWx1ZTpjLmlucHV0VmFsdWVJbnB1dCxpc0lucHV0VmFsaWQ6Yy5pc0lucHV0VmFsaWRJbnB1dCxzZWFyY2g6ZnVuY3Rpb24obCxoLF8pe3ZhciBGPW4oKShsLF8ucy5kYXRlRm9ybWF0KS52YWx1ZU9mKCksTz1uKCkoaFswXSxfLnMuZGF0ZUZvcm1hdCkudmFsdWVPZigpLGY9bigpKGhbMV0sXy5zLmRhdGVGb3JtYXQpLnZhbHVlT2YoKTtyZXR1cm4gTzxmP088PUYmJkY8PWY6Zjw9RiYmRjw9T319LCIhYmV0d2VlbiI6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obCxoKXtyZXR1cm4gbC5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMuZGF0ZS5ub3RCZXR3ZWVuIixoLmNvbmRpdGlvbnMuZGF0ZS5ub3RCZXR3ZWVuKX0saW5pdDpjLmluaXQyRGF0ZSxpbnB1dFZhbHVlOmMuaW5wdXRWYWx1ZUlucHV0LGlzSW5wdXRWYWxpZDpjLmlzSW5wdXRWYWxpZElucHV0LHNlYXJjaDpmdW5jdGlvbihsLGgsXyl7dmFyIEY9bigpKGwsXy5zLmRhdGVGb3JtYXQpLnZhbHVlT2YoKSxPPW4oKShoWzBdLF8ucy5kYXRlRm9ybWF0KS52YWx1ZU9mKCksZj1uKCkoaFsxXSxfLnMuZGF0ZUZvcm1hdCkudmFsdWVPZigpO3JldHVybiBPPGY/ISgrTzw9K0YmJitGPD0rZik6ISgrZjw9K0YmJitGPD0rTyl9fSxudWxsOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLmRhdGUuZW1wdHkiLGguY29uZGl0aW9ucy5kYXRlLmVtcHR5KX0saW5pdDpjLmluaXROb1ZhbHVlLGlucHV0VmFsdWU6ZnVuY3Rpb24oKXt9LGlzSW5wdXRWYWxpZDpmdW5jdGlvbigpe3JldHVybiEwfSxzZWFyY2g6ZnVuY3Rpb24obCl7cmV0dXJuIGw9PW51bGx8fGwubGVuZ3RoPT09MH19LCIhbnVsbCI6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obCxoKXtyZXR1cm4gbC5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMuZGF0ZS5ub3RFbXB0eSIsaC5jb25kaXRpb25zLmRhdGUubm90RW1wdHkpfSxpbml0OmMuaW5pdE5vVmFsdWUsaW5wdXRWYWx1ZTpmdW5jdGlvbigpe30saXNJbnB1dFZhbGlkOmZ1bmN0aW9uKCl7cmV0dXJuITB9LHNlYXJjaDpmdW5jdGlvbihsKXtyZXR1cm4hKGw9PW51bGx8fGwubGVuZ3RoPT09MCl9fX0sYy5sdXhvbkRhdGVDb25kaXRpb25zPXsiPSI6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obCxoKXtyZXR1cm4gbC5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMuZGF0ZS5lcXVhbHMiLGguY29uZGl0aW9ucy5kYXRlLmVxdWFscyl9LGluaXQ6Yy5pbml0RGF0ZSxpbnB1dFZhbHVlOmMuaW5wdXRWYWx1ZUlucHV0LGlzSW5wdXRWYWxpZDpjLmlzSW5wdXRWYWxpZElucHV0LHNlYXJjaDpmdW5jdGlvbihsLGgsXyl7cmV0dXJuIHIoKS5EYXRlVGltZS5mcm9tRm9ybWF0KGwsXy5zLmRhdGVGb3JtYXQpLnRzPT09cigpLkRhdGVUaW1lLmZyb21Gb3JtYXQoaFswXSxfLnMuZGF0ZUZvcm1hdCkudHN9fSwiIT0iOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLmRhdGUubm90IixoLmNvbmRpdGlvbnMuZGF0ZS5ub3QpfSxpbml0OmMuaW5pdERhdGUsaW5wdXRWYWx1ZTpjLmlucHV0VmFsdWVJbnB1dCxpc0lucHV0VmFsaWQ6Yy5pc0lucHV0VmFsaWRJbnB1dCxzZWFyY2g6ZnVuY3Rpb24obCxoLF8pe3JldHVybiByKCkuRGF0ZVRpbWUuZnJvbUZvcm1hdChsLF8ucy5kYXRlRm9ybWF0KS50cyE9PXIoKS5EYXRlVGltZS5mcm9tRm9ybWF0KGhbMF0sXy5zLmRhdGVGb3JtYXQpLnRzfX0sIjwiOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLmRhdGUuYmVmb3JlIixoLmNvbmRpdGlvbnMuZGF0ZS5iZWZvcmUpfSxpbml0OmMuaW5pdERhdGUsaW5wdXRWYWx1ZTpjLmlucHV0VmFsdWVJbnB1dCxpc0lucHV0VmFsaWQ6Yy5pc0lucHV0VmFsaWRJbnB1dCxzZWFyY2g6ZnVuY3Rpb24obCxoLF8pe3JldHVybiByKCkuRGF0ZVRpbWUuZnJvbUZvcm1hdChsLF8ucy5kYXRlRm9ybWF0KS50czxyKCkuRGF0ZVRpbWUuZnJvbUZvcm1hdChoWzBdLF8ucy5kYXRlRm9ybWF0KS50c319LCI+Ijp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihsLGgpe3JldHVybiBsLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5kYXRlLmFmdGVyIixoLmNvbmRpdGlvbnMuZGF0ZS5hZnRlcil9LGluaXQ6Yy5pbml0RGF0ZSxpbnB1dFZhbHVlOmMuaW5wdXRWYWx1ZUlucHV0LGlzSW5wdXRWYWxpZDpjLmlzSW5wdXRWYWxpZElucHV0LHNlYXJjaDpmdW5jdGlvbihsLGgsXyl7cmV0dXJuIHIoKS5EYXRlVGltZS5mcm9tRm9ybWF0KGwsXy5zLmRhdGVGb3JtYXQpLnRzPnIoKS5EYXRlVGltZS5mcm9tRm9ybWF0KGhbMF0sXy5zLmRhdGVGb3JtYXQpLnRzfX0sYmV0d2Vlbjp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihsLGgpe3JldHVybiBsLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5kYXRlLmJldHdlZW4iLGguY29uZGl0aW9ucy5kYXRlLmJldHdlZW4pfSxpbml0OmMuaW5pdDJEYXRlLGlucHV0VmFsdWU6Yy5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmMuaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKGwsaCxfKXt2YXIgRj1yKCkuRGF0ZVRpbWUuZnJvbUZvcm1hdChsLF8ucy5kYXRlRm9ybWF0KS50cyxPPXIoKS5EYXRlVGltZS5mcm9tRm9ybWF0KGhbMF0sXy5zLmRhdGVGb3JtYXQpLnRzLGY9cigpLkRhdGVUaW1lLmZyb21Gb3JtYXQoaFsxXSxfLnMuZGF0ZUZvcm1hdCkudHM7cmV0dXJuIE88Zj9PPD1GJiZGPD1mOmY8PUYmJkY8PU99fSwiIWJldHdlZW4iOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLmRhdGUubm90QmV0d2VlbiIsaC5jb25kaXRpb25zLmRhdGUubm90QmV0d2Vlbil9LGluaXQ6Yy5pbml0MkRhdGUsaW5wdXRWYWx1ZTpjLmlucHV0VmFsdWVJbnB1dCxpc0lucHV0VmFsaWQ6Yy5pc0lucHV0VmFsaWRJbnB1dCxzZWFyY2g6ZnVuY3Rpb24obCxoLF8pe3ZhciBGPXIoKS5EYXRlVGltZS5mcm9tRm9ybWF0KGwsXy5zLmRhdGVGb3JtYXQpLnRzLE89cigpLkRhdGVUaW1lLmZyb21Gb3JtYXQoaFswXSxfLnMuZGF0ZUZvcm1hdCkudHMsZj1yKCkuRGF0ZVRpbWUuZnJvbUZvcm1hdChoWzFdLF8ucy5kYXRlRm9ybWF0KS50cztyZXR1cm4gTzxmPyEoK088PStGJiYrRjw9K2YpOiEoK2Y8PStGJiYrRjw9K08pfX0sbnVsbDp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihsLGgpe3JldHVybiBsLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5kYXRlLmVtcHR5IixoLmNvbmRpdGlvbnMuZGF0ZS5lbXB0eSl9LGluaXQ6Yy5pbml0Tm9WYWx1ZSxpbnB1dFZhbHVlOmZ1bmN0aW9uKCl7fSxpc0lucHV0VmFsaWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sc2VhcmNoOmZ1bmN0aW9uKGwpe3JldHVybiBsPT1udWxsfHxsLmxlbmd0aD09PTB9fSwiIW51bGwiOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLmRhdGUubm90RW1wdHkiLGguY29uZGl0aW9ucy5kYXRlLm5vdEVtcHR5KX0saW5pdDpjLmluaXROb1ZhbHVlLGlucHV0VmFsdWU6ZnVuY3Rpb24oKXt9LGlzSW5wdXRWYWxpZDpmdW5jdGlvbigpe3JldHVybiEwfSxzZWFyY2g6ZnVuY3Rpb24obCl7cmV0dXJuIShsPT1udWxsfHxsLmxlbmd0aD09PTApfX19LGMubnVtQ29uZGl0aW9ucz17Ij0iOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLm51bWJlci5lcXVhbHMiLGguY29uZGl0aW9ucy5udW1iZXIuZXF1YWxzKX0saW5pdDpjLmluaXRTZWxlY3QsaW5wdXRWYWx1ZTpjLmlucHV0VmFsdWVTZWxlY3QsaXNJbnB1dFZhbGlkOmMuaXNJbnB1dFZhbGlkU2VsZWN0LHNlYXJjaDpmdW5jdGlvbihsLGgpe3JldHVybitsPT0raFswXX19LCIhPSI6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obCxoKXtyZXR1cm4gbC5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMubnVtYmVyLm5vdCIsaC5jb25kaXRpb25zLm51bWJlci5ub3QpfSxpbml0OmMuaW5pdFNlbGVjdCxpbnB1dFZhbHVlOmMuaW5wdXRWYWx1ZVNlbGVjdCxpc0lucHV0VmFsaWQ6Yy5pc0lucHV0VmFsaWRTZWxlY3Qsc2VhcmNoOmZ1bmN0aW9uKGwsaCl7cmV0dXJuK2whPStoWzBdfX0sIjwiOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLm51bWJlci5sdCIsaC5jb25kaXRpb25zLm51bWJlci5sdCl9LGluaXQ6Yy5pbml0SW5wdXQsaW5wdXRWYWx1ZTpjLmlucHV0VmFsdWVJbnB1dCxpc0lucHV0VmFsaWQ6Yy5pc0lucHV0VmFsaWRJbnB1dCxzZWFyY2g6ZnVuY3Rpb24obCxoKXtyZXR1cm4rbDwraFswXX19LCI8PSI6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obCxoKXtyZXR1cm4gbC5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMubnVtYmVyLmx0ZSIsaC5jb25kaXRpb25zLm51bWJlci5sdGUpfSxpbml0OmMuaW5pdElucHV0LGlucHV0VmFsdWU6Yy5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmMuaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKGwsaCl7cmV0dXJuK2w8PStoWzBdfX0sIj49Ijp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihsLGgpe3JldHVybiBsLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5udW1iZXIuZ3RlIixoLmNvbmRpdGlvbnMubnVtYmVyLmd0ZSl9LGluaXQ6Yy5pbml0SW5wdXQsaW5wdXRWYWx1ZTpjLmlucHV0VmFsdWVJbnB1dCxpc0lucHV0VmFsaWQ6Yy5pc0lucHV0VmFsaWRJbnB1dCxzZWFyY2g6ZnVuY3Rpb24obCxoKXtyZXR1cm4rbD49K2hbMF19fSwiPiI6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obCxoKXtyZXR1cm4gbC5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMubnVtYmVyLmd0IixoLmNvbmRpdGlvbnMubnVtYmVyLmd0KX0saW5pdDpjLmluaXRJbnB1dCxpbnB1dFZhbHVlOmMuaW5wdXRWYWx1ZUlucHV0LGlzSW5wdXRWYWxpZDpjLmlzSW5wdXRWYWxpZElucHV0LHNlYXJjaDpmdW5jdGlvbihsLGgpe3JldHVybitsPitoWzBdfX0sYmV0d2Vlbjp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihsLGgpe3JldHVybiBsLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5udW1iZXIuYmV0d2VlbiIsaC5jb25kaXRpb25zLm51bWJlci5iZXR3ZWVuKX0saW5pdDpjLmluaXQySW5wdXQsaW5wdXRWYWx1ZTpjLmlucHV0VmFsdWVJbnB1dCxpc0lucHV0VmFsaWQ6Yy5pc0lucHV0VmFsaWRJbnB1dCxzZWFyY2g6ZnVuY3Rpb24obCxoKXtyZXR1cm4raFswXTwraFsxXT8raFswXTw9K2wmJitsPD0raFsxXToraFsxXTw9K2wmJitsPD0raFswXX19LCIhYmV0d2VlbiI6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obCxoKXtyZXR1cm4gbC5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMubnVtYmVyLm5vdEJldHdlZW4iLGguY29uZGl0aW9ucy5udW1iZXIubm90QmV0d2Vlbil9LGluaXQ6Yy5pbml0MklucHV0LGlucHV0VmFsdWU6Yy5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmMuaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKGwsaCl7cmV0dXJuK2hbMF08K2hbMV0/ISgraFswXTw9K2wmJitsPD0raFsxXSk6ISgraFsxXTw9K2wmJitsPD0raFswXSl9fSxudWxsOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLm51bWJlci5lbXB0eSIsaC5jb25kaXRpb25zLm51bWJlci5lbXB0eSl9LGluaXQ6Yy5pbml0Tm9WYWx1ZSxpbnB1dFZhbHVlOmZ1bmN0aW9uKCl7fSxpc0lucHV0VmFsaWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sc2VhcmNoOmZ1bmN0aW9uKGwpe3JldHVybiBsPT1udWxsfHxsLmxlbmd0aD09PTB9fSwiIW51bGwiOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLm51bWJlci5ub3RFbXB0eSIsaC5jb25kaXRpb25zLm51bWJlci5ub3RFbXB0eSl9LGluaXQ6Yy5pbml0Tm9WYWx1ZSxpbnB1dFZhbHVlOmZ1bmN0aW9uKCl7fSxpc0lucHV0VmFsaWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sc2VhcmNoOmZ1bmN0aW9uKGwpe3JldHVybiEobD09bnVsbHx8bC5sZW5ndGg9PT0wKX19fSxjLm51bUZtdENvbmRpdGlvbnM9eyI9Ijp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihsLGgpe3JldHVybiBsLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5udW1iZXIuZXF1YWxzIixoLmNvbmRpdGlvbnMubnVtYmVyLmVxdWFscyl9LGluaXQ6Yy5pbml0U2VsZWN0LGlucHV0VmFsdWU6Yy5pbnB1dFZhbHVlU2VsZWN0LGlzSW5wdXRWYWxpZDpjLmlzSW5wdXRWYWxpZFNlbGVjdCxzZWFyY2g6ZnVuY3Rpb24obCxoLF8pe3JldHVybiBfLnBhcnNlTnVtYmVyKGwpPT09Xy5wYXJzZU51bWJlcihoWzBdKX19LCIhPSI6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obCxoKXtyZXR1cm4gbC5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMubnVtYmVyLm5vdCIsaC5jb25kaXRpb25zLm51bWJlci5ub3QpfSxpbml0OmMuaW5pdFNlbGVjdCxpbnB1dFZhbHVlOmMuaW5wdXRWYWx1ZVNlbGVjdCxpc0lucHV0VmFsaWQ6Yy5pc0lucHV0VmFsaWRTZWxlY3Qsc2VhcmNoOmZ1bmN0aW9uKGwsaCxfKXtyZXR1cm4gXy5wYXJzZU51bWJlcihsKSE9PV8ucGFyc2VOdW1iZXIoaFswXSl9fSwiPCI6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obCxoKXtyZXR1cm4gbC5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMubnVtYmVyLmx0IixoLmNvbmRpdGlvbnMubnVtYmVyLmx0KX0saW5pdDpjLmluaXRJbnB1dCxpbnB1dFZhbHVlOmMuaW5wdXRWYWx1ZUlucHV0LGlzSW5wdXRWYWxpZDpjLmlzSW5wdXRWYWxpZElucHV0LHNlYXJjaDpmdW5jdGlvbihsLGgsXyl7cmV0dXJuIF8ucGFyc2VOdW1iZXIobCk8Xy5wYXJzZU51bWJlcihoWzBdKX19LCI8PSI6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obCxoKXtyZXR1cm4gbC5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMubnVtYmVyLmx0ZSIsaC5jb25kaXRpb25zLm51bWJlci5sdGUpfSxpbml0OmMuaW5pdElucHV0LGlucHV0VmFsdWU6Yy5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmMuaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKGwsaCxfKXtyZXR1cm4gXy5wYXJzZU51bWJlcihsKTw9Xy5wYXJzZU51bWJlcihoWzBdKX19LCI+PSI6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obCxoKXtyZXR1cm4gbC5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMubnVtYmVyLmd0ZSIsaC5jb25kaXRpb25zLm51bWJlci5ndGUpfSxpbml0OmMuaW5pdElucHV0LGlucHV0VmFsdWU6Yy5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmMuaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKGwsaCxfKXtyZXR1cm4gXy5wYXJzZU51bWJlcihsKT49Xy5wYXJzZU51bWJlcihoWzBdKX19LCI+Ijp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihsLGgpe3JldHVybiBsLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5udW1iZXIuZ3QiLGguY29uZGl0aW9ucy5udW1iZXIuZ3QpfSxpbml0OmMuaW5pdElucHV0LGlucHV0VmFsdWU6Yy5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmMuaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKGwsaCxfKXtyZXR1cm4gXy5wYXJzZU51bWJlcihsKT5fLnBhcnNlTnVtYmVyKGhbMF0pfX0sYmV0d2Vlbjp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihsLGgpe3JldHVybiBsLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5udW1iZXIuYmV0d2VlbiIsaC5jb25kaXRpb25zLm51bWJlci5iZXR3ZWVuKX0saW5pdDpjLmluaXQySW5wdXQsaW5wdXRWYWx1ZTpjLmlucHV0VmFsdWVJbnB1dCxpc0lucHV0VmFsaWQ6Yy5pc0lucHV0VmFsaWRJbnB1dCxzZWFyY2g6ZnVuY3Rpb24obCxoLF8pe3ZhciBGPV8ucGFyc2VOdW1iZXIobCksTz1fLnBhcnNlTnVtYmVyKGhbMF0pLGY9Xy5wYXJzZU51bWJlcihoWzFdKTtyZXR1cm4rTzwrZj8rTzw9K0YmJitGPD0rZjorZjw9K0YmJitGPD0rT319LCIhYmV0d2VlbiI6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obCxoKXtyZXR1cm4gbC5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMubnVtYmVyLm5vdEJldHdlZW4iLGguY29uZGl0aW9ucy5udW1iZXIubm90QmV0d2Vlbil9LGluaXQ6Yy5pbml0MklucHV0LGlucHV0VmFsdWU6Yy5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmMuaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKGwsaCxfKXt2YXIgRj1fLnBhcnNlTnVtYmVyKGwpLE89Xy5wYXJzZU51bWJlcihoWzBdKSxmPV8ucGFyc2VOdW1iZXIoaFsxXSk7cmV0dXJuK088K2Y/ISgrTzw9K0YmJitGPD0rZik6ISgrZjw9K0YmJitGPD0rTyl9fSxudWxsOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLm51bWJlci5lbXB0eSIsaC5jb25kaXRpb25zLm51bWJlci5lbXB0eSl9LGluaXQ6Yy5pbml0Tm9WYWx1ZSxpbnB1dFZhbHVlOmZ1bmN0aW9uKCl7fSxpc0lucHV0VmFsaWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sc2VhcmNoOmZ1bmN0aW9uKGwpe3JldHVybiBsPT1udWxsfHxsLmxlbmd0aD09PTB9fSwiIW51bGwiOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLm51bWJlci5ub3RFbXB0eSIsaC5jb25kaXRpb25zLm51bWJlci5ub3RFbXB0eSl9LGluaXQ6Yy5pbml0Tm9WYWx1ZSxpbnB1dFZhbHVlOmZ1bmN0aW9uKCl7fSxpc0lucHV0VmFsaWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sc2VhcmNoOmZ1bmN0aW9uKGwpe3JldHVybiEobD09bnVsbHx8bC5sZW5ndGg9PT0wKX19fSxjLnN0cmluZ0NvbmRpdGlvbnM9eyI9Ijp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihsLGgpe3JldHVybiBsLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5zdHJpbmcuZXF1YWxzIixoLmNvbmRpdGlvbnMuc3RyaW5nLmVxdWFscyl9LGluaXQ6Yy5pbml0U2VsZWN0LGlucHV0VmFsdWU6Yy5pbnB1dFZhbHVlU2VsZWN0LGlzSW5wdXRWYWxpZDpjLmlzSW5wdXRWYWxpZFNlbGVjdCxzZWFyY2g6ZnVuY3Rpb24obCxoKXtyZXR1cm4gbD09PWhbMF19fSwiIT0iOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLnN0cmluZy5ub3QiLGguY29uZGl0aW9ucy5zdHJpbmcubm90KX0saW5pdDpjLmluaXRTZWxlY3QsaW5wdXRWYWx1ZTpjLmlucHV0VmFsdWVTZWxlY3QsaXNJbnB1dFZhbGlkOmMuaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwhPT1oWzBdfX0sc3RhcnRzOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLnN0cmluZy5zdGFydHNXaXRoIixoLmNvbmRpdGlvbnMuc3RyaW5nLnN0YXJ0c1dpdGgpfSxpbml0OmMuaW5pdElucHV0LGlucHV0VmFsdWU6Yy5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmMuaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwudG9Mb3dlckNhc2UoKS5pbmRleE9mKGhbMF0udG9Mb3dlckNhc2UoKSk9PT0wfX0sIiFzdGFydHMiOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLnN0cmluZy5ub3RTdGFydHNXaXRoIixoLmNvbmRpdGlvbnMuc3RyaW5nLm5vdFN0YXJ0c1dpdGgpfSxpbml0OmMuaW5pdElucHV0LGlucHV0VmFsdWU6Yy5pbnB1dFZhbHVlSW5wdXQsaXNJbnB1dFZhbGlkOmMuaXNJbnB1dFZhbGlkSW5wdXQsc2VhcmNoOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwudG9Mb3dlckNhc2UoKS5pbmRleE9mKGhbMF0udG9Mb3dlckNhc2UoKSkhPT0wfX0sY29udGFpbnM6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obCxoKXtyZXR1cm4gbC5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMuc3RyaW5nLmNvbnRhaW5zIixoLmNvbmRpdGlvbnMuc3RyaW5nLmNvbnRhaW5zKX0saW5pdDpjLmluaXRJbnB1dCxpbnB1dFZhbHVlOmMuaW5wdXRWYWx1ZUlucHV0LGlzSW5wdXRWYWxpZDpjLmlzSW5wdXRWYWxpZElucHV0LHNlYXJjaDpmdW5jdGlvbihsLGgpe3JldHVybiBsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoaFswXS50b0xvd2VyQ2FzZSgpKX19LCIhY29udGFpbnMiOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLnN0cmluZy5ub3RDb250YWlucyIsaC5jb25kaXRpb25zLnN0cmluZy5ub3RDb250YWlucyl9LGluaXQ6Yy5pbml0SW5wdXQsaW5wdXRWYWx1ZTpjLmlucHV0VmFsdWVJbnB1dCxpc0lucHV0VmFsaWQ6Yy5pc0lucHV0VmFsaWRJbnB1dCxzZWFyY2g6ZnVuY3Rpb24obCxoKXtyZXR1cm4hbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGhbMF0udG9Mb3dlckNhc2UoKSl9fSxlbmRzOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLnN0cmluZy5lbmRzV2l0aCIsaC5jb25kaXRpb25zLnN0cmluZy5lbmRzV2l0aCl9LGluaXQ6Yy5pbml0SW5wdXQsaW5wdXRWYWx1ZTpjLmlucHV0VmFsdWVJbnB1dCxpc0lucHV0VmFsaWQ6Yy5pc0lucHV0VmFsaWRJbnB1dCxzZWFyY2g6ZnVuY3Rpb24obCxoKXtyZXR1cm4gbC50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKGhbMF0udG9Mb3dlckNhc2UoKSl9fSwiIWVuZHMiOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLnN0cmluZy5ub3RFbmRzV2l0aCIsaC5jb25kaXRpb25zLnN0cmluZy5ub3RFbmRzV2l0aCl9LGluaXQ6Yy5pbml0SW5wdXQsaW5wdXRWYWx1ZTpjLmlucHV0VmFsdWVJbnB1dCxpc0lucHV0VmFsaWQ6Yy5pc0lucHV0VmFsaWRJbnB1dCxzZWFyY2g6ZnVuY3Rpb24obCxoKXtyZXR1cm4hbC50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKGhbMF0udG9Mb3dlckNhc2UoKSl9fSxudWxsOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLnN0cmluZy5lbXB0eSIsaC5jb25kaXRpb25zLnN0cmluZy5lbXB0eSl9LGluaXQ6Yy5pbml0Tm9WYWx1ZSxpbnB1dFZhbHVlOmZ1bmN0aW9uKCl7fSxpc0lucHV0VmFsaWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sc2VhcmNoOmZ1bmN0aW9uKGwpe3JldHVybiBsPT1udWxsfHxsLmxlbmd0aD09PTB9fSwiIW51bGwiOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLnN0cmluZy5ub3RFbXB0eSIsaC5jb25kaXRpb25zLnN0cmluZy5ub3RFbXB0eSl9LGluaXQ6Yy5pbml0Tm9WYWx1ZSxpbnB1dFZhbHVlOmZ1bmN0aW9uKCl7fSxpc0lucHV0VmFsaWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sc2VhcmNoOmZ1bmN0aW9uKGwpe3JldHVybiEobD09bnVsbHx8bC5sZW5ndGg9PT0wKX19fSxjLmFycmF5Q29uZGl0aW9ucz17Y29udGFpbnM6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obCxoKXtyZXR1cm4gbC5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMuYXJyYXkuY29udGFpbnMiLGguY29uZGl0aW9ucy5hcnJheS5jb250YWlucyl9LGluaXQ6Yy5pbml0U2VsZWN0QXJyYXksaW5wdXRWYWx1ZTpjLmlucHV0VmFsdWVTZWxlY3QsaXNJbnB1dFZhbGlkOmMuaXNJbnB1dFZhbGlkU2VsZWN0LHNlYXJjaDpmdW5jdGlvbihsLGgpe3JldHVybiBsLmluY2x1ZGVzKGhbMF0pfX0sd2l0aG91dDp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihsLGgpe3JldHVybiBsLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5hcnJheS53aXRob3V0IixoLmNvbmRpdGlvbnMuYXJyYXkud2l0aG91dCl9LGluaXQ6Yy5pbml0U2VsZWN0QXJyYXksaW5wdXRWYWx1ZTpjLmlucHV0VmFsdWVTZWxlY3QsaXNJbnB1dFZhbGlkOmMuaXNJbnB1dFZhbGlkU2VsZWN0LHNlYXJjaDpmdW5jdGlvbihsLGgpe3JldHVybiBsLmluZGV4T2YoaFswXSk9PT0tMX19LCI9Ijp7Y29uZGl0aW9uTmFtZTpmdW5jdGlvbihsLGgpe3JldHVybiBsLmkxOG4oInNlYXJjaEJ1aWxkZXIuY29uZGl0aW9ucy5hcnJheS5lcXVhbHMiLGguY29uZGl0aW9ucy5hcnJheS5lcXVhbHMpfSxpbml0OmMuaW5pdFNlbGVjdCxpbnB1dFZhbHVlOmMuaW5wdXRWYWx1ZVNlbGVjdCxpc0lucHV0VmFsaWQ6Yy5pc0lucHV0VmFsaWRTZWxlY3Qsc2VhcmNoOmZ1bmN0aW9uKGwsaCl7aWYobC5sZW5ndGg9PT1oWzBdLmxlbmd0aCl7Zm9yKHZhciBfPTA7XzxsLmxlbmd0aDtfKyspaWYobFtfXSE9PWhbMF1bX10pcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuITF9fSwiIT0iOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLmFycmF5Lm5vdCIsaC5jb25kaXRpb25zLmFycmF5Lm5vdCl9LGluaXQ6Yy5pbml0U2VsZWN0LGlucHV0VmFsdWU6Yy5pbnB1dFZhbHVlU2VsZWN0LGlzSW5wdXRWYWxpZDpjLmlzSW5wdXRWYWxpZFNlbGVjdCxzZWFyY2g6ZnVuY3Rpb24obCxoKXtpZihsLmxlbmd0aD09PWhbMF0ubGVuZ3RoKXtmb3IodmFyIF89MDtfPGwubGVuZ3RoO18rKylpZihsW19dIT09aFswXVtfXSlyZXR1cm4hMDtyZXR1cm4hMX1yZXR1cm4hMH19LG51bGw6e2NvbmRpdGlvbk5hbWU6ZnVuY3Rpb24obCxoKXtyZXR1cm4gbC5pMThuKCJzZWFyY2hCdWlsZGVyLmNvbmRpdGlvbnMuYXJyYXkuZW1wdHkiLGguY29uZGl0aW9ucy5hcnJheS5lbXB0eSl9LGluaXQ6Yy5pbml0Tm9WYWx1ZSxpbnB1dFZhbHVlOmZ1bmN0aW9uKCl7fSxpc0lucHV0VmFsaWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sc2VhcmNoOmZ1bmN0aW9uKGwpe3JldHVybiBsPT1udWxsfHxsLmxlbmd0aD09PTB9fSwiIW51bGwiOntjb25kaXRpb25OYW1lOmZ1bmN0aW9uKGwsaCl7cmV0dXJuIGwuaTE4bigic2VhcmNoQnVpbGRlci5jb25kaXRpb25zLmFycmF5Lm5vdEVtcHR5IixoLmNvbmRpdGlvbnMuYXJyYXkubm90RW1wdHkpfSxpbml0OmMuaW5pdE5vVmFsdWUsaW5wdXRWYWx1ZTpmdW5jdGlvbigpe30saXNJbnB1dFZhbGlkOmZ1bmN0aW9uKCl7cmV0dXJuITB9LHNlYXJjaDpmdW5jdGlvbihsKXtyZXR1cm4gbCE9bnVsbCYmbC5sZW5ndGghPT0wfX19LGMuZGVmYXVsdHM9e2NvbHVtbnM6ITAsY29uZGl0aW9uczp7YXJyYXk6Yy5hcnJheUNvbmRpdGlvbnMsZGF0ZTpjLmRhdGVDb25kaXRpb25zLGh0bWw6Yy5zdHJpbmdDb25kaXRpb25zLCJodG1sLW51bSI6Yy5udW1Db25kaXRpb25zLCJodG1sLW51bS1mbXQiOmMubnVtRm10Q29uZGl0aW9ucyxsdXhvbjpjLmx1eG9uRGF0ZUNvbmRpdGlvbnMsbW9tZW50OmMubW9tZW50RGF0ZUNvbmRpdGlvbnMsbnVtOmMubnVtQ29uZGl0aW9ucywibnVtLWZtdCI6Yy5udW1GbXRDb25kaXRpb25zLHN0cmluZzpjLnN0cmluZ0NvbmRpdGlvbnN9LGRlcHRoTGltaXQ6ITEsZW50ZXJTZWFyY2g6ITEsZmlsdGVyQ2hhbmdlZDp2b2lkIDAsZ3JleXNjYWxlOiExLGkxOG46e2FkZDoiQWRkIENvbmRpdGlvbiIsYnV0dG9uOnswOiJTZWFyY2ggQnVpbGRlciIsXzoiU2VhcmNoIEJ1aWxkZXIgKCVkKSJ9LGNsZWFyQWxsOiJDbGVhciBBbGwiLGNvbmRpdGlvbjoiQ29uZGl0aW9uIixkYXRhOiJEYXRhIixkZWxldGU6IiZ0aW1lcyIsZGVsZXRlVGl0bGU6IkRlbGV0ZSBmaWx0ZXJpbmcgcnVsZSIsbGVmdDoiPCIsbGVmdFRpdGxlOiJPdXRkZW50IGNyaXRlcmlhIixsb2dpY0FuZDoiQW5kIixsb2dpY09yOiJPciIscmlnaHQ6Ij4iLHJpZ2h0VGl0bGU6IkluZGVudCBjcml0ZXJpYSIsc2VhcmNoOiJTZWFyY2giLHRpdGxlOnswOiJDdXN0b20gU2VhcmNoIEJ1aWxkZXIiLF86IkN1c3RvbSBTZWFyY2ggQnVpbGRlciAoJWQpIn0sdmFsdWU6IlZhbHVlIix2YWx1ZUpvaW5lcjoiYW5kIn0sbGl2ZVNlYXJjaDohMCxsb2dpYzoiQU5EIixvcnRob2dvbmFsOntkaXNwbGF5OiJkaXNwbGF5IixzZWFyY2g6ImZpbHRlciJ9LHByZURlZmluZWQ6ITF9LGN9KCksbztmdW5jdGlvbiB1KGMpe289YyxjLmZuLmRhdGFUYWJsZX12YXIgcD1mdW5jdGlvbigpe2Z1bmN0aW9uIGMobCxoLF8sRixPLGYsVSl7cmV0dXJuIEY9PT12b2lkIDAmJihGPTApLE89PT12b2lkIDAmJihPPSExKSxmPT09dm9pZCAwJiYoZj0xKSxVPT09dm9pZCAwJiYoVT12b2lkIDApLHRoaXMuY2xhc3Nlcz1vLmV4dGVuZCghMCx7fSxjLmNsYXNzZXMpLHRoaXMuYz1vLmV4dGVuZCghMCx7fSxjLmRlZmF1bHRzLGgpLHRoaXMucz17Y3JpdGVyaWE6W10sZGVwdGg6ZixkdDpsLGluZGV4OkYsaXNDaGlsZDpPLGxvZ2ljOnZvaWQgMCxvcHRzOmgscHJldmVudFJlZHJhdzohMSxzZXJ2ZXJEYXRhOlUsdG9Ecm9wOnZvaWQgMCx0b3BHcm91cDpffSx0aGlzLmRvbT17YWRkOm8oIjxidXR0b24vPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5hZGQpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5idXR0b24pLmF0dHIoInR5cGUiLCJidXR0b24iKSxjbGVhcjpvKCI8YnV0dG9uPiZ0aW1lczwvYnV0dG9uPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5idXR0b24pLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5jbGVhckdyb3VwKS5hdHRyKCJ0eXBlIiwiYnV0dG9uIiksY29udGFpbmVyOm8oIjxkaXYvPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5ncm91cCksbG9naWM6bygiPGJ1dHRvbj48ZGl2Lz48L2J1dHRvbj4iKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMubG9naWMpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5idXR0b24pLmF0dHIoInR5cGUiLCJidXR0b24iKSxsb2dpY0NvbnRhaW5lcjpvKCI8ZGl2Lz4iKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMubG9naWNDb250YWluZXIpLHNlYXJjaDpvKCI8YnV0dG9uLz4iKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuc2VhcmNoKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuYnV0dG9uKS5hdHRyKCJ0eXBlIiwiYnV0dG9uIikuY3NzKCJkaXNwbGF5Iiwibm9uZSIpfSx0aGlzLnMudG9wR3JvdXA9PT12b2lkIDAmJih0aGlzLnMudG9wR3JvdXA9dGhpcy5kb20uY29udGFpbmVyKSx0aGlzLl9zZXR1cCgpLHRoaXN9cmV0dXJuIGMucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLmRvbS5hZGQub2ZmKCIuZHRzYiIpLHRoaXMuZG9tLmxvZ2ljLm9mZigiLmR0c2IiKSx0aGlzLmRvbS5zZWFyY2gub2ZmKCIuZHRzYiIpLHRoaXMuZG9tLmNvbnRhaW5lci50cmlnZ2VyKCJkdHNiLWRlc3Ryb3kiKS5yZW1vdmUoKSx0aGlzLnMuY3JpdGVyaWE9W119LGMucHJvdG90eXBlLmdldERldGFpbHM9ZnVuY3Rpb24obCl7aWYobD09PXZvaWQgMCYmKGw9ITEpLHRoaXMucy5jcml0ZXJpYS5sZW5ndGg9PT0wKXJldHVybnt9O2Zvcih2YXIgaD17Y3JpdGVyaWE6W10sbG9naWM6dGhpcy5zLmxvZ2ljfSxfPTAsRj10aGlzLnMuY3JpdGVyaWE7XzxGLmxlbmd0aDtfKyspe3ZhciBPPUZbX107aC5jcml0ZXJpYS5wdXNoKE8uY3JpdGVyaWEuZ2V0RGV0YWlscyhsKSl9cmV0dXJuIGh9LGMucHJvdG90eXBlLmdldE5vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb20uY29udGFpbmVyfSxjLnByb3RvdHlwZS5yZWJ1aWxkPWZ1bmN0aW9uKGwpe3ZhciBoO2lmKCEobC5jcml0ZXJpYT09PXZvaWQgMHx8bC5jcml0ZXJpYT09PW51bGx8fEFycmF5LmlzQXJyYXkobC5jcml0ZXJpYSkmJmwuY3JpdGVyaWEubGVuZ3RoPT09MCkpe2lmKHRoaXMucy5sb2dpYz1sLmxvZ2ljLHRoaXMuZG9tLmxvZ2ljLmNoaWxkcmVuKCkuZmlyc3QoKS5odG1sKHRoaXMucy5sb2dpYz09PSJPUiI/dGhpcy5zLmR0LmkxOG4oInNlYXJjaEJ1aWxkZXIubG9naWNPciIsdGhpcy5jLmkxOG4ubG9naWNPcik6dGhpcy5zLmR0LmkxOG4oInNlYXJjaEJ1aWxkZXIubG9naWNBbmQiLHRoaXMuYy5pMThuLmxvZ2ljQW5kKSksQXJyYXkuaXNBcnJheShsLmNyaXRlcmlhKSlmb3IodmFyIF89MCxGPWwuY3JpdGVyaWE7XzxGLmxlbmd0aDtfKyspaD1GW19dLGgubG9naWMhPT12b2lkIDA/dGhpcy5fYWRkUHJldkdyb3VwKGgpOmgubG9naWM9PT12b2lkIDAmJnRoaXMuX2FkZFByZXZDcml0ZXJpYShoKTtmb3IodmFyIE89MCxmPXRoaXMucy5jcml0ZXJpYTtPPGYubGVuZ3RoO08rKyloPWZbT10saC5jcml0ZXJpYSBpbnN0YW5jZW9mIGkmJihoLmNyaXRlcmlhLnVwZGF0ZUFycm93cyh0aGlzLnMuY3JpdGVyaWEubGVuZ3RoPjEpLHRoaXMuX3NldENyaXRlcmlhTGlzdGVuZXJzKGguY3JpdGVyaWEpKX19LGMucHJvdG90eXBlLnJlZHJhd0NvbnRlbnRzPWZ1bmN0aW9uKCl7aWYoIXRoaXMucy5wcmV2ZW50UmVkcmF3KXt0aGlzLmRvbS5jb250YWluZXIuY2hpbGRyZW4oKS5kZXRhY2goKSx0aGlzLmRvbS5jb250YWluZXIuYXBwZW5kKHRoaXMuZG9tLmxvZ2ljQ29udGFpbmVyKS5hcHBlbmQodGhpcy5kb20uYWRkKSx0aGlzLmMubGl2ZVNlYXJjaHx8dGhpcy5kb20uY29udGFpbmVyLmFwcGVuZCh0aGlzLmRvbS5zZWFyY2gpLHRoaXMucy5jcml0ZXJpYS5zb3J0KGZ1bmN0aW9uKF8sRil7cmV0dXJuIF8uY3JpdGVyaWEucy5pbmRleDxGLmNyaXRlcmlhLnMuaW5kZXg/LTE6Xy5jcml0ZXJpYS5zLmluZGV4PkYuY3JpdGVyaWEucy5pbmRleD8xOjB9KSx0aGlzLnNldExpc3RlbmVycygpO2Zvcih2YXIgbD0wO2w8dGhpcy5zLmNyaXRlcmlhLmxlbmd0aDtsKyspe3ZhciBoPXRoaXMucy5jcml0ZXJpYVtsXS5jcml0ZXJpYTtoIGluc3RhbmNlb2YgaT8odGhpcy5zLmNyaXRlcmlhW2xdLmluZGV4PWwsdGhpcy5zLmNyaXRlcmlhW2xdLmNyaXRlcmlhLnMuaW5kZXg9bCx0aGlzLnMuY3JpdGVyaWFbbF0uY3JpdGVyaWEuZG9tLmNvbnRhaW5lci5pbnNlcnRCZWZvcmUodGhpcy5kb20uYWRkKSx0aGlzLl9zZXRDcml0ZXJpYUxpc3RlbmVycyhoKSx0aGlzLnMuY3JpdGVyaWFbbF0uY3JpdGVyaWEucy5wcmV2ZW50UmVkcmF3PXRoaXMucy5wcmV2ZW50UmVkcmF3LHRoaXMucy5jcml0ZXJpYVtsXS5jcml0ZXJpYS5yZWJ1aWxkKHRoaXMucy5jcml0ZXJpYVtsXS5jcml0ZXJpYS5nZXREZXRhaWxzKCkpLHRoaXMucy5jcml0ZXJpYVtsXS5jcml0ZXJpYS5zLnByZXZlbnRSZWRyYXc9ITEpOmggaW5zdGFuY2VvZiBjJiZoLnMuY3JpdGVyaWEubGVuZ3RoPjA/KHRoaXMucy5jcml0ZXJpYVtsXS5pbmRleD1sLHRoaXMucy5jcml0ZXJpYVtsXS5jcml0ZXJpYS5zLmluZGV4PWwsdGhpcy5zLmNyaXRlcmlhW2xdLmNyaXRlcmlhLmRvbS5jb250YWluZXIuaW5zZXJ0QmVmb3JlKHRoaXMuZG9tLmFkZCksaC5zLnByZXZlbnRSZWRyYXc9dGhpcy5zLnByZXZlbnRSZWRyYXcsaC5yZWRyYXdDb250ZW50cygpLGgucy5wcmV2ZW50UmVkcmF3PSExLHRoaXMuX3NldEdyb3VwTGlzdGVuZXJzKGgpKToodGhpcy5zLmNyaXRlcmlhLnNwbGljZShsLDEpLGwtLSl9dGhpcy5zZXR1cExvZ2ljKCl9fSxjLnByb3RvdHlwZS5yZWRyYXdMb2dpYz1mdW5jdGlvbigpe2Zvcih2YXIgbD0wLGg9dGhpcy5zLmNyaXRlcmlhO2w8aC5sZW5ndGg7bCsrKXt2YXIgXz1oW2xdO18uY3JpdGVyaWEgaW5zdGFuY2VvZiBjJiZfLmNyaXRlcmlhLnJlZHJhd0xvZ2ljKCl9dGhpcy5zZXR1cExvZ2ljKCl9LGMucHJvdG90eXBlLnNlYXJjaD1mdW5jdGlvbihsLGgpe3JldHVybiB0aGlzLnMubG9naWM9PT0iQU5EIj90aGlzLl9hbmRTZWFyY2gobCxoKTp0aGlzLnMubG9naWM9PT0iT1IiP3RoaXMuX29yU2VhcmNoKGwsaCk6ITB9LGMucHJvdG90eXBlLnNldHVwTG9naWM9ZnVuY3Rpb24oKXtpZih0aGlzLmRvbS5sb2dpY0NvbnRhaW5lci5yZW1vdmUoKSx0aGlzLmRvbS5jbGVhci5yZW1vdmUoKSx0aGlzLnMuY3JpdGVyaWEubGVuZ3RoPDEpe3RoaXMucy5pc0NoaWxkfHwodGhpcy5kb20uY29udGFpbmVyLnRyaWdnZXIoImR0c2ItZGVzdHJveSIpLHRoaXMuZG9tLmNvbnRhaW5lci5jc3MoIm1hcmdpbi1sZWZ0IiwwKSksdGhpcy5kb20uc2VhcmNoLmNzcygiZGlzcGxheSIsIm5vbmUiKTtyZXR1cm59dGhpcy5kb20uY2xlYXIuaGVpZ2h0KCIwcHgiKSx0aGlzLmRvbS5sb2dpY0NvbnRhaW5lci5hcHBlbmQodGhpcy5kb20uY2xlYXIpLHRoaXMucy5pc0NoaWxkfHx0aGlzLmRvbS5zZWFyY2guY3NzKCJkaXNwbGF5IiwiaW5saW5lLWJsb2NrIiksdGhpcy5kb20uY29udGFpbmVyLnByZXBlbmQodGhpcy5kb20ubG9naWNDb250YWluZXIpO2Zvcih2YXIgbD0wLGg9dGhpcy5zLmNyaXRlcmlhO2w8aC5sZW5ndGg7bCsrKXt2YXIgXz1oW2xdO18uY3JpdGVyaWEgaW5zdGFuY2VvZiBpJiZfLmNyaXRlcmlhLnNldHVwQnV0dG9ucygpfXZhciBGPXRoaXMuZG9tLmNvbnRhaW5lci5vdXRlckhlaWdodCgpLTE7dGhpcy5kb20ubG9naWNDb250YWluZXIud2lkdGgoRiksdGhpcy5fc2V0TG9naWNMaXN0ZW5lcigpLHRoaXMuZG9tLmNvbnRhaW5lci5jc3MoIm1hcmdpbi1sZWZ0Iix0aGlzLmRvbS5sb2dpY0NvbnRhaW5lci5vdXRlckhlaWdodCghMCkpO3ZhciBPPXRoaXMuZG9tLmxvZ2ljQ29udGFpbmVyLm9mZnNldCgpLGY9Ty5sZWZ0LFU9dGhpcy5kb20uY29udGFpbmVyLm9mZnNldCgpLmxlZnQsWD1mLVUsUT1mLVgtdGhpcy5kb20ubG9naWNDb250YWluZXIub3V0ZXJIZWlnaHQoITApO3RoaXMuZG9tLmxvZ2ljQ29udGFpbmVyLm9mZnNldCh7bGVmdDpRfSk7dmFyIEU9dGhpcy5kb20ubG9naWNDb250YWluZXIubmV4dCgpLCQ9Ty50b3Asdz1vKEUpLm9mZnNldCgpLnRvcCxrPSQtdyxTPSQtazt0aGlzLmRvbS5sb2dpY0NvbnRhaW5lci5vZmZzZXQoe3RvcDpTfSksdGhpcy5kb20uY2xlYXIub3V0ZXJIZWlnaHQodGhpcy5kb20ubG9naWNDb250YWluZXIuaGVpZ2h0KCkpLHRoaXMuX3NldENsZWFyTGlzdGVuZXIoKX0sYy5wcm90b3R5cGUuc2V0TGlzdGVuZXJzPWZ1bmN0aW9uKCl7dmFyIGw9dGhpczt0aGlzLmRvbS5hZGQudW5iaW5kKCJjbGljayIpLHRoaXMuZG9tLmFkZC5vbigiY2xpY2suZHRzYiIsZnVuY3Rpb24oKXtyZXR1cm4gbC5zLmlzQ2hpbGR8fGwuZG9tLmNvbnRhaW5lci5wcmVwZW5kKGwuZG9tLmxvZ2ljQ29udGFpbmVyKSxsLmFkZENyaXRlcmlhKCksbC5kb20uY29udGFpbmVyLnRyaWdnZXIoImR0c2ItYWRkIiksbC5zLmR0LnN0YXRlLnNhdmUoKSwhMX0pLHRoaXMuZG9tLnNlYXJjaC5vZmYoImNsaWNrLmR0c2IiKS5vbigiY2xpY2suZHRzYiIsZnVuY3Rpb24oKXtsLnMuZHQuZHJhdygpfSk7Zm9yKHZhciBoPTAsXz10aGlzLnMuY3JpdGVyaWE7aDxfLmxlbmd0aDtoKyspe3ZhciBGPV9baF07Ri5jcml0ZXJpYS5zZXRMaXN0ZW5lcnMoKX10aGlzLl9zZXRDbGVhckxpc3RlbmVyKCksdGhpcy5fc2V0TG9naWNMaXN0ZW5lcigpfSxjLnByb3RvdHlwZS5hZGRDcml0ZXJpYT1mdW5jdGlvbihsKXtsPT09dm9pZCAwJiYobD1udWxsKTt2YXIgaD1sPT09bnVsbD90aGlzLnMuY3JpdGVyaWEubGVuZ3RoOmwucy5pbmRleCxfPW5ldyBpKHRoaXMucy5kdCx0aGlzLnMub3B0cyx0aGlzLnMudG9wR3JvdXAsaCx0aGlzLnMuZGVwdGgsdGhpcy5zLnNlcnZlckRhdGEsdGhpcy5jLmxpdmVTZWFyY2gpO2whPT1udWxsJiYoXy5jPWwuYyxfLnM9bC5zLF8ucy5kZXB0aD10aGlzLnMuZGVwdGgsXy5jbGFzc2VzPWwuY2xhc3NlcyksXy5wb3B1bGF0ZSgpO2Zvcih2YXIgRj0hMSxPPTA7Tzx0aGlzLnMuY3JpdGVyaWEubGVuZ3RoO08rKylPPT09MCYmdGhpcy5zLmNyaXRlcmlhW09dLmNyaXRlcmlhLnMuaW5kZXg+Xy5zLmluZGV4PyhfLmdldE5vZGUoKS5pbnNlcnRCZWZvcmUodGhpcy5zLmNyaXRlcmlhW09dLmNyaXRlcmlhLmRvbS5jb250YWluZXIpLEY9ITApOk88dGhpcy5zLmNyaXRlcmlhLmxlbmd0aC0xJiZ0aGlzLnMuY3JpdGVyaWFbT10uY3JpdGVyaWEucy5pbmRleDxfLnMuaW5kZXgmJnRoaXMucy5jcml0ZXJpYVtPKzFdLmNyaXRlcmlhLnMuaW5kZXg+Xy5zLmluZGV4JiYoXy5nZXROb2RlKCkuaW5zZXJ0QWZ0ZXIodGhpcy5zLmNyaXRlcmlhW09dLmNyaXRlcmlhLmRvbS5jb250YWluZXIpLEY9ITApO0Z8fF8uZ2V0Tm9kZSgpLmluc2VydEJlZm9yZSh0aGlzLmRvbS5hZGQpLHRoaXMucy5jcml0ZXJpYS5wdXNoKHtjcml0ZXJpYTpfLGluZGV4Omh9KSx0aGlzLnMuY3JpdGVyaWE9dGhpcy5zLmNyaXRlcmlhLnNvcnQoZnVuY3Rpb24oUSxFKXtyZXR1cm4gUS5jcml0ZXJpYS5zLmluZGV4LUUuY3JpdGVyaWEucy5pbmRleH0pO2Zvcih2YXIgZj0wLFU9dGhpcy5zLmNyaXRlcmlhO2Y8VS5sZW5ndGg7ZisrKXt2YXIgWD1VW2ZdO1guY3JpdGVyaWEgaW5zdGFuY2VvZiBpJiZYLmNyaXRlcmlhLnVwZGF0ZUFycm93cyh0aGlzLnMuY3JpdGVyaWEubGVuZ3RoPjEpfXRoaXMuX3NldENyaXRlcmlhTGlzdGVuZXJzKF8pLF8uc2V0TGlzdGVuZXJzKCksdGhpcy5zZXR1cExvZ2ljKCl9LGMucHJvdG90eXBlLmNoZWNrRmlsbGVkPWZ1bmN0aW9uKCl7Zm9yKHZhciBsPTAsaD10aGlzLnMuY3JpdGVyaWE7bDxoLmxlbmd0aDtsKyspe3ZhciBfPWhbbF07aWYoXy5jcml0ZXJpYSBpbnN0YW5jZW9mIGkmJl8uY3JpdGVyaWEucy5maWxsZWR8fF8uY3JpdGVyaWEgaW5zdGFuY2VvZiBjJiZfLmNyaXRlcmlhLmNoZWNrRmlsbGVkKCkpcmV0dXJuITB9cmV0dXJuITF9LGMucHJvdG90eXBlLmNvdW50PWZ1bmN0aW9uKCl7Zm9yKHZhciBsPTAsaD0wLF89dGhpcy5zLmNyaXRlcmlhO2g8Xy5sZW5ndGg7aCsrKXt2YXIgRj1fW2hdO0YuY3JpdGVyaWEgaW5zdGFuY2VvZiBjP2wrPUYuY3JpdGVyaWEuY291bnQoKTpsKyt9cmV0dXJuIGx9LGMucHJvdG90eXBlLl9hZGRQcmV2R3JvdXA9ZnVuY3Rpb24obCl7dmFyIGg9dGhpcy5zLmNyaXRlcmlhLmxlbmd0aCxfPW5ldyBjKHRoaXMucy5kdCx0aGlzLmMsdGhpcy5zLnRvcEdyb3VwLGgsITAsdGhpcy5zLmRlcHRoKzEsdGhpcy5zLnNlcnZlckRhdGEpO3RoaXMucy5jcml0ZXJpYS5wdXNoKHtjcml0ZXJpYTpfLGluZGV4OmgsbG9naWM6Xy5zLmxvZ2ljfSksXy5yZWJ1aWxkKGwpLHRoaXMucy5jcml0ZXJpYVtoXS5jcml0ZXJpYT1fLHRoaXMucy50b3BHcm91cC50cmlnZ2VyKCJkdHNiLXJlZHJhd0NvbnRlbnRzIiksdGhpcy5fc2V0R3JvdXBMaXN0ZW5lcnMoXyl9LGMucHJvdG90eXBlLl9hZGRQcmV2Q3JpdGVyaWE9ZnVuY3Rpb24obCl7dmFyIGg9dGhpcy5zLmNyaXRlcmlhLmxlbmd0aCxfPW5ldyBpKHRoaXMucy5kdCx0aGlzLnMub3B0cyx0aGlzLnMudG9wR3JvdXAsaCx0aGlzLnMuZGVwdGgsdGhpcy5zLnNlcnZlckRhdGEpO18ucG9wdWxhdGUoKSx0aGlzLnMuY3JpdGVyaWEucHVzaCh7Y3JpdGVyaWE6XyxpbmRleDpofSksXy5zLnByZXZlbnRSZWRyYXc9dGhpcy5zLnByZXZlbnRSZWRyYXcsXy5yZWJ1aWxkKGwpLF8ucy5wcmV2ZW50UmVkcmF3PSExLHRoaXMucy5jcml0ZXJpYVtoXS5jcml0ZXJpYT1fLHRoaXMucy5wcmV2ZW50UmVkcmF3fHx0aGlzLnMudG9wR3JvdXAudHJpZ2dlcigiZHRzYi1yZWRyYXdDb250ZW50cyIpfSxjLnByb3RvdHlwZS5fYW5kU2VhcmNoPWZ1bmN0aW9uKGwsaCl7aWYodGhpcy5zLmNyaXRlcmlhLmxlbmd0aD09PTApcmV0dXJuITA7Zm9yKHZhciBfPTAsRj10aGlzLnMuY3JpdGVyaWE7XzxGLmxlbmd0aDtfKyspe3ZhciBPPUZbX107aWYoIShPLmNyaXRlcmlhIGluc3RhbmNlb2YgaSYmIU8uY3JpdGVyaWEucy5maWxsZWQpJiYhTy5jcml0ZXJpYS5zZWFyY2gobCxoKSlyZXR1cm4hMX1yZXR1cm4hMH0sYy5wcm90b3R5cGUuX29yU2VhcmNoPWZ1bmN0aW9uKGwsaCl7aWYodGhpcy5zLmNyaXRlcmlhLmxlbmd0aD09PTApcmV0dXJuITA7Zm9yKHZhciBfPSExLEY9MCxPPXRoaXMucy5jcml0ZXJpYTtGPE8ubGVuZ3RoO0YrKyl7dmFyIGY9T1tGXTtpZihmLmNyaXRlcmlhIGluc3RhbmNlb2YgaSYmZi5jcml0ZXJpYS5zLmZpbGxlZCl7aWYoXz0hMCxmLmNyaXRlcmlhLnNlYXJjaChsLGgpKXJldHVybiEwfWVsc2UgaWYoZi5jcml0ZXJpYSBpbnN0YW5jZW9mIGMmJmYuY3JpdGVyaWEuY2hlY2tGaWxsZWQoKSYmKF89ITAsZi5jcml0ZXJpYS5zZWFyY2gobCxoKSkpcmV0dXJuITB9cmV0dXJuIV99LGMucHJvdG90eXBlLl9yZW1vdmVDcml0ZXJpYT1mdW5jdGlvbihsLGgpe2g9PT12b2lkIDAmJihoPSExKTt2YXIgXztpZih0aGlzLnMuY3JpdGVyaWEubGVuZ3RoPD0xJiZ0aGlzLnMuaXNDaGlsZCl0aGlzLmRlc3Ryb3koKTtlbHNle3ZhciBGPXZvaWQgMDtmb3IoXz0wO188dGhpcy5zLmNyaXRlcmlhLmxlbmd0aDtfKyspdGhpcy5zLmNyaXRlcmlhW19dLmluZGV4PT09bC5zLmluZGV4JiYoIWh8fHRoaXMucy5jcml0ZXJpYVtfXS5jcml0ZXJpYSBpbnN0YW5jZW9mIGMpJiYoRj1fKTtmb3IoRiE9PXZvaWQgMCYmdGhpcy5zLmNyaXRlcmlhLnNwbGljZShGLDEpLF89MDtfPHRoaXMucy5jcml0ZXJpYS5sZW5ndGg7XysrKXRoaXMucy5jcml0ZXJpYVtfXS5pbmRleD1fLHRoaXMucy5jcml0ZXJpYVtfXS5jcml0ZXJpYS5zLmluZGV4PV99fSxjLnByb3RvdHlwZS5fc2V0Q3JpdGVyaWFMaXN0ZW5lcnM9ZnVuY3Rpb24obCl7dmFyIGg9dGhpcztsLmRvbS5kZWxldGUudW5iaW5kKCJjbGljayIpLm9uKCJjbGljay5kdHNiIixmdW5jdGlvbigpe2guX3JlbW92ZUNyaXRlcmlhKGwpLGwuZG9tLmNvbnRhaW5lci5yZW1vdmUoKTtmb3IodmFyIF89MCxGPWgucy5jcml0ZXJpYTtfPEYubGVuZ3RoO18rKyl7dmFyIE89RltfXTtPLmNyaXRlcmlhIGluc3RhbmNlb2YgaSYmTy5jcml0ZXJpYS51cGRhdGVBcnJvd3MoaC5zLmNyaXRlcmlhLmxlbmd0aD4xKX1yZXR1cm4gbC5kZXN0cm95KCksaC5zLmR0LmRyYXcoKSxoLnMudG9wR3JvdXAudHJpZ2dlcigiZHRzYi1yZWRyYXdDb250ZW50cyIpLCExfSksbC5kb20ucmlnaHQudW5iaW5kKCJjbGljayIpLm9uKCJjbGljay5kdHNiIixmdW5jdGlvbigpe3ZhciBfPWwucy5pbmRleCxGPW5ldyBjKGgucy5kdCxoLnMub3B0cyxoLnMudG9wR3JvdXAsbC5zLmluZGV4LCEwLGgucy5kZXB0aCsxLGgucy5zZXJ2ZXJEYXRhKTtyZXR1cm4gRi5hZGRDcml0ZXJpYShsKSxoLnMuY3JpdGVyaWFbX10uY3JpdGVyaWE9RixoLnMuY3JpdGVyaWFbX10ubG9naWM9IkFORCIsaC5zLnRvcEdyb3VwLnRyaWdnZXIoImR0c2ItcmVkcmF3Q29udGVudHMiKSxoLl9zZXRHcm91cExpc3RlbmVycyhGKSwhMX0pLGwuZG9tLmxlZnQudW5iaW5kKCJjbGljayIpLm9uKCJjbGljay5kdHNiIixmdW5jdGlvbigpe2gucy50b0Ryb3A9bmV3IGkoaC5zLmR0LGgucy5vcHRzLGgucy50b3BHcm91cCxsLnMuaW5kZXgsdm9pZCAwLGgucy5zZXJ2ZXJEYXRhKSxoLnMudG9Ecm9wLnM9bC5zLGgucy50b0Ryb3AuYz1sLmMsaC5zLnRvRHJvcC5jbGFzc2VzPWwuY2xhc3NlcyxoLnMudG9Ecm9wLnBvcHVsYXRlKCk7dmFyIF89aC5zLnRvRHJvcC5zLmluZGV4O3JldHVybiBoLmRvbS5jb250YWluZXIudHJpZ2dlcigiZHRzYi1kcm9wQ3JpdGVyaWEiKSxsLnMuaW5kZXg9XyxoLl9yZW1vdmVDcml0ZXJpYShsKSxoLnMudG9wR3JvdXAudHJpZ2dlcigiZHRzYi1yZWRyYXdDb250ZW50cyIpLGgucy5kdC5kcmF3KCksITF9KX0sYy5wcm90b3R5cGUuX3NldENsZWFyTGlzdGVuZXI9ZnVuY3Rpb24oKXt2YXIgbD10aGlzO3RoaXMuZG9tLmNsZWFyLnVuYmluZCgiY2xpY2siKS5vbigiY2xpY2suZHRzYiIsZnVuY3Rpb24oKXtyZXR1cm4gbC5zLmlzQ2hpbGQ/KGwuZGVzdHJveSgpLGwucy50b3BHcm91cC50cmlnZ2VyKCJkdHNiLXJlZHJhd0NvbnRlbnRzIiksITEpOihsLmRvbS5jb250YWluZXIudHJpZ2dlcigiZHRzYi1jbGVhckNvbnRlbnRzIiksITEpfSl9LGMucHJvdG90eXBlLl9zZXRHcm91cExpc3RlbmVycz1mdW5jdGlvbihsKXt2YXIgaD10aGlzO2wuZG9tLmFkZC51bmJpbmQoImNsaWNrIikub24oImNsaWNrLmR0c2IiLGZ1bmN0aW9uKCl7cmV0dXJuIGguc2V0dXBMb2dpYygpLGguZG9tLmNvbnRhaW5lci50cmlnZ2VyKCJkdHNiLWFkZCIpLCExfSksbC5kb20uY29udGFpbmVyLnVuYmluZCgiZHRzYi1hZGQiKS5vbigiZHRzYi1hZGQuZHRzYiIsZnVuY3Rpb24oKXtyZXR1cm4gaC5zZXR1cExvZ2ljKCksaC5kb20uY29udGFpbmVyLnRyaWdnZXIoImR0c2ItYWRkIiksITF9KSxsLmRvbS5jb250YWluZXIudW5iaW5kKCJkdHNiLWRlc3Ryb3kiKS5vbigiZHRzYi1kZXN0cm95LmR0c2IiLGZ1bmN0aW9uKCl7cmV0dXJuIGguX3JlbW92ZUNyaXRlcmlhKGwsITApLGwuZG9tLmNvbnRhaW5lci5yZW1vdmUoKSxoLnNldHVwTG9naWMoKSwhMX0pLGwuZG9tLmNvbnRhaW5lci51bmJpbmQoImR0c2ItZHJvcENyaXRlcmlhIikub24oImR0c2ItZHJvcENyaXRlcmlhLmR0c2IiLGZ1bmN0aW9uKCl7dmFyIF89bC5zLnRvRHJvcDtyZXR1cm4gXy5zLmluZGV4PWwucy5pbmRleCxfLnVwZGF0ZUFycm93cyhoLnMuY3JpdGVyaWEubGVuZ3RoPjEpLGguYWRkQ3JpdGVyaWEoXyksITF9KSxsLnNldExpc3RlbmVycygpfSxjLnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXt0aGlzLnNldExpc3RlbmVycygpLHRoaXMuZG9tLmFkZC5odG1sKHRoaXMucy5kdC5pMThuKCJzZWFyY2hCdWlsZGVyLmFkZCIsdGhpcy5jLmkxOG4uYWRkKSksdGhpcy5kb20uc2VhcmNoLmh0bWwodGhpcy5zLmR0LmkxOG4oInNlYXJjaEJ1aWxkZXIuc2VhcmNoIix0aGlzLmMuaTE4bi5zZWFyY2gpKSx0aGlzLmRvbS5sb2dpYy5jaGlsZHJlbigpLmZpcnN0KCkuaHRtbCh0aGlzLmMubG9naWM9PT0iT1IiP3RoaXMucy5kdC5pMThuKCJzZWFyY2hCdWlsZGVyLmxvZ2ljT3IiLHRoaXMuYy5pMThuLmxvZ2ljT3IpOnRoaXMucy5kdC5pMThuKCJzZWFyY2hCdWlsZGVyLmxvZ2ljQW5kIix0aGlzLmMuaTE4bi5sb2dpY0FuZCkpLHRoaXMucy5sb2dpYz10aGlzLmMubG9naWM9PT0iT1IiPyJPUiI6IkFORCIsdGhpcy5jLmdyZXlzY2FsZSYmdGhpcy5kb20ubG9naWMuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmdyZXlzY2FsZSksdGhpcy5kb20ubG9naWNDb250YWluZXIuYXBwZW5kKHRoaXMuZG9tLmxvZ2ljKS5hcHBlbmQodGhpcy5kb20uY2xlYXIpLHRoaXMucy5pc0NoaWxkJiZ0aGlzLmRvbS5jb250YWluZXIuYXBwZW5kKHRoaXMuZG9tLmxvZ2ljQ29udGFpbmVyKSx0aGlzLmRvbS5jb250YWluZXIuYXBwZW5kKHRoaXMuZG9tLmFkZCksdGhpcy5jLmxpdmVTZWFyY2h8fHRoaXMuZG9tLmNvbnRhaW5lci5hcHBlbmQodGhpcy5kb20uc2VhcmNoKX0sYy5wcm90b3R5cGUuX3NldExvZ2ljTGlzdGVuZXI9ZnVuY3Rpb24oKXt2YXIgbD10aGlzO3RoaXMuZG9tLmxvZ2ljLnVuYmluZCgiY2xpY2siKS5vbigiY2xpY2suZHRzYiIsZnVuY3Rpb24oKXtsLl90b2dnbGVMb2dpYygpLGwucy5kdC5kcmF3KCk7Zm9yKHZhciBoPTAsXz1sLnMuY3JpdGVyaWE7aDxfLmxlbmd0aDtoKyspe3ZhciBGPV9baF07Ri5jcml0ZXJpYS5zZXRMaXN0ZW5lcnMoKX19KX0sYy5wcm90b3R5cGUuX3RvZ2dsZUxvZ2ljPWZ1bmN0aW9uKCl7dGhpcy5zLmxvZ2ljPT09Ik9SIj8odGhpcy5zLmxvZ2ljPSJBTkQiLHRoaXMuZG9tLmxvZ2ljLmNoaWxkcmVuKCkuZmlyc3QoKS5odG1sKHRoaXMucy5kdC5pMThuKCJzZWFyY2hCdWlsZGVyLmxvZ2ljQW5kIix0aGlzLmMuaTE4bi5sb2dpY0FuZCkpKTp0aGlzLnMubG9naWM9PT0iQU5EIiYmKHRoaXMucy5sb2dpYz0iT1IiLHRoaXMuZG9tLmxvZ2ljLmNoaWxkcmVuKCkuZmlyc3QoKS5odG1sKHRoaXMucy5kdC5pMThuKCJzZWFyY2hCdWlsZGVyLmxvZ2ljT3IiLHRoaXMuYy5pMThuLmxvZ2ljT3IpKSl9LGMudmVyc2lvbj0iMS4xLjAiLGMuY2xhc3Nlcz17YWRkOiJkdHNiLWFkZCIsYnV0dG9uOiJkdHNiLWJ1dHRvbiIsY2xlYXJHcm91cDoiZHRzYi1jbGVhckdyb3VwIixncmV5c2NhbGU6ImR0c2ItZ3JleXNjYWxlIixncm91cDoiZHRzYi1ncm91cCIsaW5wdXRCdXR0b246ImR0c2ItaXB0YnRuIixsb2dpYzoiZHRzYi1sb2dpYyIsbG9naWNDb250YWluZXI6ImR0c2ItbG9naWNDb250YWluZXIiLHNlYXJjaDoiZHRzYi1zZWFyY2gifSxjLmRlZmF1bHRzPXtjb2x1bW5zOiEwLGNvbmRpdGlvbnM6e2RhdGU6aS5kYXRlQ29uZGl0aW9ucyxodG1sOmkuc3RyaW5nQ29uZGl0aW9ucywiaHRtbC1udW0iOmkubnVtQ29uZGl0aW9ucywiaHRtbC1udW0tZm10IjppLm51bUZtdENvbmRpdGlvbnMsbHV4b246aS5sdXhvbkRhdGVDb25kaXRpb25zLG1vbWVudDppLm1vbWVudERhdGVDb25kaXRpb25zLG51bTppLm51bUNvbmRpdGlvbnMsIm51bS1mbXQiOmkubnVtRm10Q29uZGl0aW9ucyxzdHJpbmc6aS5zdHJpbmdDb25kaXRpb25zfSxkZXB0aExpbWl0OiExLGVudGVyU2VhcmNoOiExLGZpbHRlckNoYW5nZWQ6dm9pZCAwLGdyZXlzY2FsZTohMSxsaXZlU2VhcmNoOiEwLGkxOG46e2FkZDoiQWRkIENvbmRpdGlvbiIsYnV0dG9uOnswOiJTZWFyY2ggQnVpbGRlciIsXzoiU2VhcmNoIEJ1aWxkZXIgKCVkKSJ9LGNsZWFyQWxsOiJDbGVhciBBbGwiLGNvbmRpdGlvbjoiQ29uZGl0aW9uIixkYXRhOiJEYXRhIixkZWxldGU6IiZ0aW1lcyIsZGVsZXRlVGl0bGU6IkRlbGV0ZSBmaWx0ZXJpbmcgcnVsZSIsbGVmdDoiPCIsbGVmdFRpdGxlOiJPdXRkZW50IGNyaXRlcmlhIixsb2dpY0FuZDoiQW5kIixsb2dpY09yOiJPciIscmlnaHQ6Ij4iLHJpZ2h0VGl0bGU6IkluZGVudCBjcml0ZXJpYSIsc2VhcmNoOiJTZWFyY2giLHRpdGxlOnswOiJDdXN0b20gU2VhcmNoIEJ1aWxkZXIiLF86IkN1c3RvbSBTZWFyY2ggQnVpbGRlciAoJWQpIn0sdmFsdWU6IlZhbHVlIix2YWx1ZUpvaW5lcjoiYW5kIn0sbG9naWM6IkFORCIsb3J0aG9nb25hbDp7ZGlzcGxheToiZGlzcGxheSIsc2VhcmNoOiJmaWx0ZXIifSxwcmVEZWZpbmVkOiExfSxjfSgpLGIsZztmdW5jdGlvbiBtKGMpe2I9YyxnPWMuZm4uRGF0YVRhYmxlfXZhciBDPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYyhsLGgpe3ZhciBfPXRoaXM7aWYoIWd8fCFnLnZlcnNpb25DaGVja3x8IWcudmVyc2lvbkNoZWNrKCIyIikpdGhyb3cgbmV3IEVycm9yKCJTZWFyY2hCdWlsZGVyIHJlcXVpcmVzIERhdGFUYWJsZXMgMiBvciBuZXdlciIpO3ZhciBGPW5ldyBnLkFwaShsKTtpZih0aGlzLmNsYXNzZXM9Yi5leHRlbmQoITAse30sYy5jbGFzc2VzKSx0aGlzLmM9Yi5leHRlbmQoITAse30sYy5kZWZhdWx0cyxoKSx0aGlzLmRvbT17Y2xlYXJBbGw6YignPGJ1dHRvbiB0eXBlPSJidXR0b24iPicrRi5pMThuKCJzZWFyY2hCdWlsZGVyLmNsZWFyQWxsIix0aGlzLmMuaTE4bi5jbGVhckFsbCkrIjwvYnV0dG9uPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5jbGVhckFsbCkuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmJ1dHRvbikuYXR0cigidHlwZSIsImJ1dHRvbiIpLGNvbnRhaW5lcjpiKCI8ZGl2Lz4iKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuY29udGFpbmVyKSx0aXRsZTpiKCI8ZGl2Lz4iKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMudGl0bGUpLHRpdGxlUm93OmIoIjxkaXYvPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy50aXRsZVJvdyksdG9wR3JvdXA6dm9pZCAwfSx0aGlzLnM9e2R0OkYsb3B0czpoLHNlYXJjaDp2b2lkIDAsc2VydmVyRGF0YTp2b2lkIDAsdG9wR3JvdXA6dm9pZCAwfSxGLnNldHRpbmdzKClbMF0uX3NlYXJjaEJ1aWxkZXI9PT12b2lkIDApcmV0dXJuIEYuc2V0dGluZ3MoKVswXS5fc2VhcmNoQnVpbGRlcj10aGlzLHRoaXMucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlJiYodGhpcy5zLmR0Lm9uKCJwcmVYaHIuZHRzYiIsZnVuY3Rpb24oTyxmLFUpe3ZhciBYPV8ucy5kdC5zdGF0ZS5sb2FkZWQoKTtYJiZYLnNlYXJjaEJ1aWxkZXImJihVLnNlYXJjaEJ1aWxkZXI9Xy5fY29sbGFwc2VBcnJheShYLnNlYXJjaEJ1aWxkZXIpKX0pLHRoaXMucy5kdC5vbigieGhyLmR0c2IiLGZ1bmN0aW9uKE8sZixVKXtVJiZVLnNlYXJjaEJ1aWxkZXImJlUuc2VhcmNoQnVpbGRlci5vcHRpb25zJiYoXy5zLnNlcnZlckRhdGE9VS5zZWFyY2hCdWlsZGVyLm9wdGlvbnMpfSkpLHRoaXMucy5kdC5zZXR0aW5ncygpWzBdLl9iSW5pdENvbXBsZXRlP3RoaXMuX3NldFVwKCk6Ri5vbmUoImluaXQuZHQiLGZ1bmN0aW9uKCl7Xy5fc2V0VXAoKX0pLHRoaXN9cmV0dXJuIGMucHJvdG90eXBlLmdldERldGFpbHM9ZnVuY3Rpb24obCl7cmV0dXJuIGw9PT12b2lkIDAmJihsPSExKSx0aGlzLnMudG9wR3JvdXAuZ2V0RGV0YWlscyhsKX0sYy5wcm90b3R5cGUuZ2V0Tm9kZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbS5jb250YWluZXJ9LGMucHJvdG90eXBlLnJlYnVpbGQ9ZnVuY3Rpb24obCl7cmV0dXJuIHRoaXMuZG9tLmNsZWFyQWxsLmNsaWNrKCksbD09bnVsbD90aGlzOih0aGlzLnMudG9wR3JvdXAucy5wcmV2ZW50UmVkcmF3PSEwLHRoaXMucy50b3BHcm91cC5yZWJ1aWxkKGwpLHRoaXMucy50b3BHcm91cC5zLnByZXZlbnRSZWRyYXc9ITEsdGhpcy5fY2hlY2tDbGVhcigpLHRoaXMuX3VwZGF0ZVRpdGxlKHRoaXMucy50b3BHcm91cC5jb3VudCgpKSx0aGlzLnMudG9wR3JvdXAucmVkcmF3Q29udGVudHMoKSx0aGlzLnMuZHQuZHJhdyghMSksdGhpcy5zLnRvcEdyb3VwLnNldExpc3RlbmVycygpLHRoaXMpfSxjLnByb3RvdHlwZS5fYXBwbHlQcmVEZWZEZWZhdWx0cz1mdW5jdGlvbihsKXt2YXIgaD10aGlzO2wuY3JpdGVyaWEhPT12b2lkIDAmJmwubG9naWM9PT12b2lkIDAmJihsLmxvZ2ljPSJBTkQiKTtmb3IodmFyIF89ZnVuY3Rpb24oWCl7WC5jcml0ZXJpYSE9PXZvaWQgMD9YPUYuX2FwcGx5UHJlRGVmRGVmYXVsdHMoWCk6Ri5zLmR0LmNvbHVtbnMoKS5ldmVyeShmdW5jdGlvbihRKXtoLnMuZHQuc2V0dGluZ3MoKVswXS5hb0NvbHVtbnNbUV0uc1RpdGxlPT09WC5kYXRhJiYoWC5kYXRhSWR4PVEpfSl9LEY9dGhpcyxPPTAsZj1sLmNyaXRlcmlhO088Zi5sZW5ndGg7TysrKXt2YXIgVT1mW09dO18oVSl9cmV0dXJuIGx9LGMucHJvdG90eXBlLl9zZXRVcD1mdW5jdGlvbihsKXt2YXIgaD10aGlzO2lmKGw9PT12b2lkIDAmJihsPSEwKSx0eXBlb2YgdGhpcy5zLmR0LmNvbHVtbigpLnR5cGUhPSJmdW5jdGlvbiImJmF0LkFwaS5yZWdpc3RlclBsdXJhbCgiY29sdW1ucygpLnR5cGVzKCkiLCJjb2x1bW4oKS50eXBlKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24odyxrKXtyZXR1cm4gdy5hb0NvbHVtbnNba10uc1R5cGV9LDEpfSksIWcuRGF0ZVRpbWUpe3ZhciBfPXRoaXMucy5kdC5jb2x1bW5zKCkudHlwZXMoKS50b0FycmF5KCk7aWYoXz09PXZvaWQgMHx8Xy5pbmNsdWRlcyh2b2lkIDApfHxfLmluY2x1ZGVzKG51bGwpKXtfPVtdO2Zvcih2YXIgRj0wLE89dGhpcy5zLmR0LnNldHRpbmdzKClbMF0uYW9Db2x1bW5zO0Y8Ty5sZW5ndGg7RisrKXt2YXIgZj1PW0ZdO18ucHVzaChmLnNlYXJjaEJ1aWxkZXJUeXBlIT09dm9pZCAwP2Yuc2VhcmNoQnVpbGRlclR5cGU6Zi5zVHlwZSl9fXZhciBVPXRoaXMucy5kdC5jb2x1bW5zKCkudG9BcnJheSgpOyhfPT09dm9pZCAwfHxfLmluY2x1ZGVzKHZvaWQgMCl8fF8uaW5jbHVkZXMobnVsbCkpJiYoYi5mbi5kYXRhVGFibGUuZXh0Lm9BcGkmJmIuZm4uZGF0YVRhYmxlLmV4dC5vQXBpLl9mbkNvbHVtblR5cGVzKHRoaXMucy5kdC5zZXR0aW5ncygpWzBdKSxfPXRoaXMucy5kdC5jb2x1bW5zKCkudHlwZXMoKS50b0FycmF5KCkpO2Zvcih2YXIgWD0wO1g8VVswXS5sZW5ndGg7WCsrKXt2YXIgUT1VWzBdW1hdLEU9X1tRXTtpZigodGhpcy5jLmNvbHVtbnM9PT0hMHx8QXJyYXkuaXNBcnJheSh0aGlzLmMuY29sdW1ucykmJnRoaXMuYy5jb2x1bW5zLmluY2x1ZGVzKFgpKSYmKEUuaW5jbHVkZXMoImRhdGUiKXx8RS5pbmNsdWRlcygibW9tZW50Iil8fEUuaW5jbHVkZXMoImx1eG9uIikpKXRocm93IGFsZXJ0KCJTZWFyY2hCdWlsZGVyIFJlcXVpcmVzIERhdGVUaW1lIHdoZW4gdXNlZCB3aXRoIGRhdGVzLiIpLG5ldyBFcnJvcigiU2VhcmNoQnVpbGRlciByZXF1aXJlcyBEYXRlVGltZSIpfX1pZih0aGlzLnMudG9wR3JvdXA9bmV3IHAodGhpcy5zLmR0LHRoaXMuYyx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsdGhpcy5zLnNlcnZlckRhdGEpLHRoaXMuX3NldENsZWFyTGlzdGVuZXIoKSx0aGlzLnMuZHQub24oInN0YXRlU2F2ZVBhcmFtcy5kdHNiIixmdW5jdGlvbih3LGssUyl7Uy5zZWFyY2hCdWlsZGVyPWguZ2V0RGV0YWlscygpLFMuc2Nyb2xsZXI/Uy5zdGFydD1oLnMuZHQuc3RhdGUoKS5zdGFydDpTLnBhZ2U9aC5zLmR0LnBhZ2UoKX0pLHRoaXMucy5kdC5vbigic3RhdGVMb2FkUGFyYW1zLmR0c2IiLGZ1bmN0aW9uKHcsayxTKXtoLnJlYnVpbGQoUy5zZWFyY2hCdWlsZGVyKX0pLHRoaXMuX2J1aWxkKCksdGhpcy5zLmR0Lm9uKCJwcmVYaHIuZHRzYiIsZnVuY3Rpb24odyxrLFMpe2gucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlJiYoUy5zZWFyY2hCdWlsZGVyPWguX2NvbGxhcHNlQXJyYXkoaC5nZXREZXRhaWxzKCEwKSkpfSksdGhpcy5zLmR0Lm9uKCJjb2x1bW5zLXJlb3JkZXJlZCIsZnVuY3Rpb24oKXtoLnJlYnVpbGQoaC5nZXREZXRhaWxzKCkpfSksbCl7dmFyICQ9dGhpcy5zLmR0LnN0YXRlLmxvYWRlZCgpOyQhPT1udWxsJiYkLnNlYXJjaEJ1aWxkZXIhPT12b2lkIDA/KHRoaXMucy50b3BHcm91cC5yZWJ1aWxkKCQuc2VhcmNoQnVpbGRlciksdGhpcy5zLnRvcEdyb3VwLmRvbS5jb250YWluZXIudHJpZ2dlcigiZHRzYi1yZWRyYXdDb250ZW50cyIpLHRoaXMucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlfHwoJC5wYWdlP3RoaXMucy5kdC5wYWdlKCQucGFnZSkuZHJhdygicGFnZSIpOnRoaXMucy5kdC5zY3JvbGxlciYmJC5zY3JvbGxlciYmdGhpcy5zLmR0LnNjcm9sbGVyKCkuc2Nyb2xsVG9Sb3coJC5zY3JvbGxlci50b3BSb3cpKSx0aGlzLnMudG9wR3JvdXAuc2V0TGlzdGVuZXJzKCkpOnRoaXMuYy5wcmVEZWZpbmVkIT09ITEmJih0aGlzLmMucHJlRGVmaW5lZD10aGlzLl9hcHBseVByZURlZkRlZmF1bHRzKHRoaXMuYy5wcmVEZWZpbmVkKSx0aGlzLnJlYnVpbGQodGhpcy5jLnByZURlZmluZWQpKX10aGlzLl9zZXRFbXB0eUxpc3RlbmVyKCksdGhpcy5zLmR0LnN0YXRlLnNhdmUoKX0sYy5wcm90b3R5cGUuX2NvbGxhcHNlQXJyYXk9ZnVuY3Rpb24obCl7aWYobC5sb2dpYz09PXZvaWQgMClsLnZhbHVlIT09dm9pZCAwJiYobC52YWx1ZS5zb3J0KGZ1bmN0aW9uKF8sRil7cmV0dXJuIGlzTmFOKCtfKXx8KF89K18sRj0rRiksXzxGPy0xOkY8Xz8xOjB9KSxsLnZhbHVlMT1sLnZhbHVlWzBdLGwudmFsdWUyPWwudmFsdWVbMV0pO2Vsc2UgZm9yKHZhciBoPTA7aDxsLmNyaXRlcmlhLmxlbmd0aDtoKyspbC5jcml0ZXJpYVtoXT10aGlzLl9jb2xsYXBzZUFycmF5KGwuY3JpdGVyaWFbaF0pO3JldHVybiBsfSxjLnByb3RvdHlwZS5fdXBkYXRlVGl0bGU9ZnVuY3Rpb24obCl7dGhpcy5kb20udGl0bGUuaHRtbCh0aGlzLnMuZHQuaTE4bigic2VhcmNoQnVpbGRlci50aXRsZSIsdGhpcy5jLmkxOG4udGl0bGUsbCkpfSxjLnByb3RvdHlwZS5fYnVpbGQ9ZnVuY3Rpb24oKXt2YXIgbD10aGlzO3RoaXMuZG9tLmNsZWFyQWxsLnJlbW92ZSgpLHRoaXMuZG9tLmNvbnRhaW5lci5lbXB0eSgpO3ZhciBoPXRoaXMucy50b3BHcm91cC5jb3VudCgpO3RoaXMuX3VwZGF0ZVRpdGxlKGgpLHRoaXMuZG9tLnRpdGxlUm93LmFwcGVuZCh0aGlzLmRvbS50aXRsZSksdGhpcy5kb20uY29udGFpbmVyLmFwcGVuZCh0aGlzLmRvbS50aXRsZVJvdyksdGhpcy5kb20udG9wR3JvdXA9dGhpcy5zLnRvcEdyb3VwLmdldE5vZGUoKSx0aGlzLmRvbS5jb250YWluZXIuYXBwZW5kKHRoaXMuZG9tLnRvcEdyb3VwKSx0aGlzLl9zZXRSZWRyYXdMaXN0ZW5lcigpO3ZhciBfPXRoaXMucy5kdC50YWJsZSgwKS5ub2RlKCk7Yi5mbi5kYXRhVGFibGUuZXh0LnNlYXJjaC5pbmNsdWRlcyh0aGlzLnMuc2VhcmNoKXx8KHRoaXMucy5zZWFyY2g9ZnVuY3Rpb24oRixPLGYpe3JldHVybiBGLm5UYWJsZSE9PV8/ITA6bC5zLnRvcEdyb3VwLnNlYXJjaChPLGYpfSxiLmZuLmRhdGFUYWJsZS5leHQuc2VhcmNoLnB1c2godGhpcy5zLnNlYXJjaCkpLHRoaXMucy5kdC5vbigiZGVzdHJveS5kdHNiIixmdW5jdGlvbigpe2wuZG9tLmNvbnRhaW5lci5yZW1vdmUoKSxsLmRvbS5jbGVhckFsbC5yZW1vdmUoKTtmb3IodmFyIEY9Yi5mbi5kYXRhVGFibGUuZXh0LnNlYXJjaC5pbmRleE9mKGwucy5zZWFyY2gpO0YhPT0tMTspYi5mbi5kYXRhVGFibGUuZXh0LnNlYXJjaC5zcGxpY2UoRiwxKSxGPWIuZm4uZGF0YVRhYmxlLmV4dC5zZWFyY2guaW5kZXhPZihsLnMuc2VhcmNoKTtsLnMuZHQub2ZmKCIuZHRzYiIpLGIobC5zLmR0LnRhYmxlKCkubm9kZSgpKS5vZmYoIi5kdHNiIil9KX0sYy5wcm90b3R5cGUuX2NoZWNrQ2xlYXI9ZnVuY3Rpb24oKXt0aGlzLnMudG9wR3JvdXAucy5jcml0ZXJpYS5sZW5ndGg+MD8odGhpcy5kb20uY2xlYXJBbGwuaW5zZXJ0QWZ0ZXIodGhpcy5kb20udGl0bGUpLHRoaXMuX3NldENsZWFyTGlzdGVuZXIoKSk6dGhpcy5kb20uY2xlYXJBbGwucmVtb3ZlKCl9LGMucHJvdG90eXBlLl9maWx0ZXJDaGFuZ2VkPWZ1bmN0aW9uKGwpe3ZhciBoPXRoaXMuYy5maWx0ZXJDaGFuZ2VkO3R5cGVvZiBoPT0iZnVuY3Rpb24iJiZoKGwsdGhpcy5zLmR0LmkxOG4oInNlYXJjaEJ1aWxkZXIuYnV0dG9uIix0aGlzLmMuaTE4bi5idXR0b24sbCkpfSxjLnByb3RvdHlwZS5fc2V0Q2xlYXJMaXN0ZW5lcj1mdW5jdGlvbigpe3ZhciBsPXRoaXM7dGhpcy5kb20uY2xlYXJBbGwudW5iaW5kKCJjbGljayIpLHRoaXMuZG9tLmNsZWFyQWxsLm9uKCJjbGljay5kdHNiIixmdW5jdGlvbigpe3JldHVybiBsLnMudG9wR3JvdXA9bmV3IHAobC5zLmR0LGwuYyx2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsbC5zLnNlcnZlckRhdGEpLGwuX2J1aWxkKCksbC5zLmR0LmRyYXcoKSxsLnMudG9wR3JvdXAuc2V0TGlzdGVuZXJzKCksbC5kb20uY2xlYXJBbGwucmVtb3ZlKCksbC5fc2V0RW1wdHlMaXN0ZW5lcigpLGwuX2ZpbHRlckNoYW5nZWQoMCksITF9KX0sYy5wcm90b3R5cGUuX3NldFJlZHJhd0xpc3RlbmVyPWZ1bmN0aW9uKCl7dmFyIGw9dGhpczt0aGlzLnMudG9wR3JvdXAuZG9tLmNvbnRhaW5lci51bmJpbmQoImR0c2ItcmVkcmF3Q29udGVudHMiKSx0aGlzLnMudG9wR3JvdXAuZG9tLmNvbnRhaW5lci5vbigiZHRzYi1yZWRyYXdDb250ZW50cy5kdHNiIixmdW5jdGlvbigpe2wuX2NoZWNrQ2xlYXIoKSxsLnMudG9wR3JvdXAucmVkcmF3Q29udGVudHMoKSxsLnMudG9wR3JvdXAuc2V0dXBMb2dpYygpLGwuX3NldEVtcHR5TGlzdGVuZXIoKTt2YXIgaD1sLnMudG9wR3JvdXAuY291bnQoKTtsLl91cGRhdGVUaXRsZShoKSxsLl9maWx0ZXJDaGFuZ2VkKGgpLGwucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlfHxsLnMuZHQuZHJhdygpLGwucy5kdC5zdGF0ZS5zYXZlKCl9KSx0aGlzLnMudG9wR3JvdXAuZG9tLmNvbnRhaW5lci51bmJpbmQoImR0c2ItcmVkcmF3Q29udGVudHMtbm9EcmF3IiksdGhpcy5zLnRvcEdyb3VwLmRvbS5jb250YWluZXIub24oImR0c2ItcmVkcmF3Q29udGVudHMtbm9EcmF3LmR0c2IiLGZ1bmN0aW9uKCl7bC5fY2hlY2tDbGVhcigpLGwucy50b3BHcm91cC5zLnByZXZlbnRSZWRyYXc9ITAsbC5zLnRvcEdyb3VwLnJlZHJhd0NvbnRlbnRzKCksbC5zLnRvcEdyb3VwLnMucHJldmVudFJlZHJhdz0hMSxsLnMudG9wR3JvdXAuc2V0dXBMb2dpYygpLGwuX3NldEVtcHR5TGlzdGVuZXIoKTt2YXIgaD1sLnMudG9wR3JvdXAuY291bnQoKTtsLl91cGRhdGVUaXRsZShoKSxsLl9maWx0ZXJDaGFuZ2VkKGgpfSksdGhpcy5zLnRvcEdyb3VwLmRvbS5jb250YWluZXIudW5iaW5kKCJkdHNiLXJlZHJhd0xvZ2ljIiksdGhpcy5zLnRvcEdyb3VwLmRvbS5jb250YWluZXIub24oImR0c2ItcmVkcmF3TG9naWMuZHRzYiIsZnVuY3Rpb24oKXtsLnMudG9wR3JvdXAucmVkcmF3TG9naWMoKTt2YXIgaD1sLnMudG9wR3JvdXAuY291bnQoKTtsLl91cGRhdGVUaXRsZShoKSxsLl9maWx0ZXJDaGFuZ2VkKGgpfSksdGhpcy5zLnRvcEdyb3VwLmRvbS5jb250YWluZXIudW5iaW5kKCJkdHNiLWFkZCIpLHRoaXMucy50b3BHcm91cC5kb20uY29udGFpbmVyLm9uKCJkdHNiLWFkZC5kdHNiIixmdW5jdGlvbigpe3ZhciBoPWwucy50b3BHcm91cC5jb3VudCgpO2wuX3VwZGF0ZVRpdGxlKGgpLGwuX2ZpbHRlckNoYW5nZWQoaCksbC5fY2hlY2tDbGVhcigpfSksdGhpcy5zLmR0Lm9uKCJwb3N0RWRpdC5kdHNiIHBvc3RDcmVhdGUuZHRzYiBwb3N0UmVtb3ZlLmR0c2IiLGZ1bmN0aW9uKCl7bC5zLnRvcEdyb3VwLnJlZHJhd0NvbnRlbnRzKCl9KSx0aGlzLnMudG9wR3JvdXAuZG9tLmNvbnRhaW5lci51bmJpbmQoImR0c2ItY2xlYXJDb250ZW50cyIpLHRoaXMucy50b3BHcm91cC5kb20uY29udGFpbmVyLm9uKCJkdHNiLWNsZWFyQ29udGVudHMuZHRzYiIsZnVuY3Rpb24oKXtsLl9zZXRVcCghMSksbC5fZmlsdGVyQ2hhbmdlZCgwKSxsLnMuZHQuZHJhdygpfSl9LGMucHJvdG90eXBlLl9zZXRFbXB0eUxpc3RlbmVyPWZ1bmN0aW9uKCl7dmFyIGw9dGhpczt0aGlzLnMudG9wR3JvdXAuZG9tLmFkZC5vbigiY2xpY2suZHRzYiIsZnVuY3Rpb24oKXtsLl9jaGVja0NsZWFyKCl9KSx0aGlzLnMudG9wR3JvdXAuZG9tLmNvbnRhaW5lci5vbigiZHRzYi1kZXN0cm95LmR0c2IiLGZ1bmN0aW9uKCl7bC5kb20uY2xlYXJBbGwucmVtb3ZlKCl9KX0sYy52ZXJzaW9uPSIxLjguMCIsYy5jbGFzc2VzPXtidXR0b246ImR0c2ItYnV0dG9uIixjbGVhckFsbDoiZHRzYi1jbGVhckFsbCIsY29udGFpbmVyOiJkdHNiLXNlYXJjaEJ1aWxkZXIiLGlucHV0QnV0dG9uOiJkdHNiLWlwdGJ0biIsdGl0bGU6ImR0c2ItdGl0bGUiLHRpdGxlUm93OiJkdHNiLXRpdGxlUm93In0sYy5kZWZhdWx0cz17Y29sdW1uczohMCxjb25kaXRpb25zOntkYXRlOmkuZGF0ZUNvbmRpdGlvbnMsaHRtbDppLnN0cmluZ0NvbmRpdGlvbnMsImh0bWwtbnVtIjppLm51bUNvbmRpdGlvbnMsImh0bWwtbnVtLWZtdCI6aS5udW1GbXRDb25kaXRpb25zLGx1eG9uOmkubHV4b25EYXRlQ29uZGl0aW9ucyxtb21lbnQ6aS5tb21lbnREYXRlQ29uZGl0aW9ucyxudW06aS5udW1Db25kaXRpb25zLCJudW0tZm10IjppLm51bUZtdENvbmRpdGlvbnMsc3RyaW5nOmkuc3RyaW5nQ29uZGl0aW9uc30sZGVwdGhMaW1pdDohMSxlbnRlclNlYXJjaDohMSxmaWx0ZXJDaGFuZ2VkOnZvaWQgMCxncmV5c2NhbGU6ITEsbGl2ZVNlYXJjaDohMCxpMThuOnthZGQ6IkFkZCBDb25kaXRpb24iLGJ1dHRvbjp7MDoiU2VhcmNoIEJ1aWxkZXIiLF86IlNlYXJjaCBCdWlsZGVyICglZCkifSxjbGVhckFsbDoiQ2xlYXIgQWxsIixjb25kaXRpb246IkNvbmRpdGlvbiIsY29uZGl0aW9uczp7YXJyYXk6e2NvbnRhaW5zOiJDb250YWlucyIsZW1wdHk6IkVtcHR5IixlcXVhbHM6IkVxdWFscyIsbm90OiJOb3QiLG5vdEVtcHR5OiJOb3QgRW1wdHkiLHdpdGhvdXQ6IldpdGhvdXQifSxkYXRlOnthZnRlcjoiQWZ0ZXIiLGJlZm9yZToiQmVmb3JlIixiZXR3ZWVuOiJCZXR3ZWVuIixlbXB0eToiRW1wdHkiLGVxdWFsczoiRXF1YWxzIixub3Q6Ik5vdCIsbm90QmV0d2VlbjoiTm90IEJldHdlZW4iLG5vdEVtcHR5OiJOb3QgRW1wdHkifSxudW1iZXI6e2JldHdlZW46IkJldHdlZW4iLGVtcHR5OiJFbXB0eSIsZXF1YWxzOiJFcXVhbHMiLGd0OiJHcmVhdGVyIFRoYW4iLGd0ZToiR3JlYXRlciBUaGFuIEVxdWFsIFRvIixsdDoiTGVzcyBUaGFuIixsdGU6Ikxlc3MgVGhhbiBFcXVhbCBUbyIsbm90OiJOb3QiLG5vdEJldHdlZW46Ik5vdCBCZXR3ZWVuIixub3RFbXB0eToiTm90IEVtcHR5In0sc3RyaW5nOntjb250YWluczoiQ29udGFpbnMiLGVtcHR5OiJFbXB0eSIsZW5kc1dpdGg6IkVuZHMgV2l0aCIsZXF1YWxzOiJFcXVhbHMiLG5vdDoiTm90Iixub3RDb250YWluczoiRG9lcyBOb3QgQ29udGFpbiIsbm90RW1wdHk6Ik5vdCBFbXB0eSIsbm90RW5kc1dpdGg6IkRvZXMgTm90IEVuZCBXaXRoIixub3RTdGFydHNXaXRoOiJEb2VzIE5vdCBTdGFydCBXaXRoIixzdGFydHNXaXRoOiJTdGFydHMgV2l0aCJ9fSxkYXRhOiJEYXRhIixkZWxldGU6IiZ0aW1lcyIsZGVsZXRlVGl0bGU6IkRlbGV0ZSBmaWx0ZXJpbmcgcnVsZSIsbGVmdDoiPCIsbGVmdFRpdGxlOiJPdXRkZW50IGNyaXRlcmlhIixsb2dpY0FuZDoiQW5kIixsb2dpY09yOiJPciIscmlnaHQ6Ij4iLHJpZ2h0VGl0bGU6IkluZGVudCBjcml0ZXJpYSIsc2VhcmNoOiJTZWFyY2giLHRpdGxlOnswOiJDdXN0b20gU2VhcmNoIEJ1aWxkZXIiLF86IkN1c3RvbSBTZWFyY2ggQnVpbGRlciAoJWQpIn0sdmFsdWU6IlZhbHVlIix2YWx1ZUpvaW5lcjoiYW5kIn0sbG9naWM6IkFORCIsb3J0aG9nb25hbDp7ZGlzcGxheToiZGlzcGxheSIsc2VhcmNoOiJmaWx0ZXIifSxwcmVEZWZpbmVkOiExfSxjfSgpO20oY24pLHUoY24pLHMoY24pO3ZhciB5PWNuLmZuLmRhdGFUYWJsZTthdC5TZWFyY2hCdWlsZGVyPUMseS5TZWFyY2hCdWlsZGVyPUMsYXQuR3JvdXA9cCx5Lkdyb3VwPXAsYXQuQ3JpdGVyaWE9aSx5LkNyaXRlcmlhPWk7dmFyIFQ9YXQuQXBpLnJlZ2lzdGVyO2F0LmV4dC5zZWFyY2hCdWlsZGVyPXtjb25kaXRpb25zOnt9fSxhdC5leHQuYnV0dG9ucy5zZWFyY2hCdWlsZGVyPXthY3Rpb246ZnVuY3Rpb24oYyxsLGgsXyl7dGhpcy5wb3BvdmVyKF8uX3NlYXJjaEJ1aWxkZXIuZ2V0Tm9kZSgpLHthbGlnbjoiY29udGFpbmVyIixzcGFuOiJjb250YWluZXIifSk7dmFyIEY9Xy5fc2VhcmNoQnVpbGRlci5zLnRvcEdyb3VwO0YhPT12b2lkIDAmJkYuZG9tLmNvbnRhaW5lci50cmlnZ2VyKCJkdHNiLXJlZHJhd0NvbnRlbnRzLW5vRHJhdyIpLEYucy5jcml0ZXJpYS5sZW5ndGg9PT0wJiZjbigiLiIrY24uZm4uZGF0YVRhYmxlLkdyb3VwLmNsYXNzZXMuYWRkLnJlcGxhY2UoLyAvZywiLiIpKS5jbGljaygpfSxjb25maWc6e30saW5pdDpmdW5jdGlvbihjLGwsaCl7dmFyIF89bmV3IGF0LlNlYXJjaEJ1aWxkZXIoYyxjbi5leHRlbmQoe2ZpbHRlckNoYW5nZWQ6ZnVuY3Rpb24oRixPKXtjLmJ1dHRvbihsKS50ZXh0KE8pfX0saC5jb25maWcpKTtjLmJ1dHRvbihsKS50ZXh0KGgudGV4dHx8Yy5pMThuKCJzZWFyY2hCdWlsZGVyLmJ1dHRvbiIsXy5jLmkxOG4uYnV0dG9uLDApKSxoLl9zZWFyY2hCdWlsZGVyPV99LHRleHQ6bnVsbH0sVCgic2VhcmNoQnVpbGRlci5nZXREZXRhaWxzKCkiLGZ1bmN0aW9uKGMpe2M9PT12b2lkIDAmJihjPSExKTt2YXIgbD10aGlzLmNvbnRleHRbMF07cmV0dXJuIGwuX3NlYXJjaEJ1aWxkZXI/bC5fc2VhcmNoQnVpbGRlci5nZXREZXRhaWxzKGMpOm51bGx9KSxUKCJzZWFyY2hCdWlsZGVyLnJlYnVpbGQoKSIsZnVuY3Rpb24oYyl7dmFyIGw9dGhpcy5jb250ZXh0WzBdO3JldHVybiBsLl9zZWFyY2hCdWlsZGVyPT09dm9pZCAwP251bGw6KGwuX3NlYXJjaEJ1aWxkZXIucmVidWlsZChjKSx0aGlzKX0pLFQoInNlYXJjaEJ1aWxkZXIuY29udGFpbmVyKCkiLGZ1bmN0aW9uKCl7dmFyIGM9dGhpcy5jb250ZXh0WzBdO3JldHVybiBjLl9zZWFyY2hCdWlsZGVyP2MuX3NlYXJjaEJ1aWxkZXIuZ2V0Tm9kZSgpOm51bGx9KTtmdW5jdGlvbiBQKGMsbCl7dmFyIGg9bmV3IGF0LkFwaShjKSxfPWx8fGguaW5pdCgpLnNlYXJjaEJ1aWxkZXJ8fGF0LmRlZmF1bHRzLnNlYXJjaEJ1aWxkZXIsRj1uZXcgQyhoLF8pLE89Ri5nZXROb2RlKCk7cmV0dXJuIE99Y24oZG9jdW1lbnQpLm9uKCJwcmVJbml0LmR0LmR0c3AiLGZ1bmN0aW9uKGMsbCl7Yy5uYW1lc3BhY2U9PT0iZHQiJiYobC5vSW5pdC5zZWFyY2hCdWlsZGVyfHxhdC5kZWZhdWx0cy5zZWFyY2hCdWlsZGVyKSYmKGwuX3NlYXJjaEJ1aWxkZXJ8fFAobCkpfSksYXQuZXh0LmZlYXR1cmUucHVzaCh7Y0ZlYXR1cmU6IlEiLGZuSW5pdDpQfSksYXQuZmVhdHVyZSYmYXQuZmVhdHVyZS5yZWdpc3Rlcigic2VhcmNoQnVpbGRlciIsUCl9KSgpO3ZhciBzZD1pZShhZSgpLDEpO3ZhciBacz1pZShhZSgpLDEpO3ZhciBaZT1acy5kZWZhdWx0OyhmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgdCxlO2Z1bmN0aW9uIG4odyl7dD13LGU9dy5mbi5kYXRhVGFibGV9dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB3KGssUyxCLEwsUil7dmFyIHE9dGhpcztpZihSPT09dm9pZCAwJiYoUj1udWxsKSwhZXx8IWUudmVyc2lvbkNoZWNrfHwhZS52ZXJzaW9uQ2hlY2soIjEuMTAuMCIpKXRocm93IG5ldyBFcnJvcigiU2VhcmNoUGFuZSByZXF1aXJlcyBEYXRhVGFibGVzIDEuMTAgb3IgbmV3ZXIiKTtpZighZS5zZWxlY3QpdGhyb3cgbmV3IEVycm9yKCJTZWFyY2hQYW5lIHJlcXVpcmVzIFNlbGVjdCIpO3ZhciB6PW5ldyBlLkFwaShrKTt0aGlzLmNsYXNzZXM9dC5leHRlbmQoITAse30sdy5jbGFzc2VzKSx0aGlzLmM9dC5leHRlbmQoITAse30sdy5kZWZhdWx0cyxTLFIpLFMmJlMuaGlkZUNvdW50JiZTLnZpZXdDb3VudD09PXZvaWQgMCYmKHRoaXMuYy52aWV3Q291bnQ9IXRoaXMuYy5oaWRlQ291bnQpO3ZhciBHPXouY29sdW1ucygpLmVxKDApLnRvQXJyYXkoKS5sZW5ndGg7dGhpcy5zPXtjb2xFeGlzdHM6QjxHLGNvbE9wdHM6dm9pZCAwLGN1c3RvbVBhbmVTZXR0aW5nczpSLGRpc3BsYXllZDohMSxkdDp6LGR0UGFuZTp2b2lkIDAsZmlyc3RTZXQ6ITAsaW5kZXg6QixpbmRleGVzOltdLGxpc3RTZXQ6ITEsbmFtZTp2b2lkIDAscm93RGF0YTp7YXJyYXlGaWx0ZXI6W10sYXJyYXlPcmlnaW5hbDpbXSxiaW5zOnt9LGJpbnNPcmlnaW5hbDp7fSxmaWx0ZXJNYXA6bmV3IE1hcCx0b3RhbE9wdGlvbnM6MH0sc2Nyb2xsVG9wOjAsc2VhcmNoRnVuY3Rpb246dm9pZCAwLHNlbGVjdGlvbnM6W10sc2VydmVyU2VsZWN0OltdLHNlcnZlclNlbGVjdGluZzohMSx0YWJsZUxlbmd0aDpudWxsLHVwZGF0aW5nOiExfSx0aGlzLnMuY29sT3B0cz10aGlzLnMuY29sRXhpc3RzP3RoaXMuX2dldE9wdGlvbnMoKTp0aGlzLl9nZXRCb251c09wdGlvbnMoKSx0aGlzLmRvbT17YnV0dG9uR3JvdXA6dCgiPGRpdi8+IikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmJ1dHRvbkdyb3VwKSxjbGVhcjp0KCc8YnV0dG9uIHR5cGU9ImJ1dHRvbiI+JiMyMTU7PC9idXR0b24+JykuYXR0cigiZGlzYWJsZWQiLCJ0cnVlIikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmRpc2FibGVkQnV0dG9uKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMucGFuZUJ1dHRvbikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmNsZWFyQnV0dG9uKS5odG1sKHRoaXMucy5kdC5pMThuKCJzZWFyY2hQYW5lcy5jbGVhclBhbmUiLHRoaXMuYy5pMThuLmNsZWFyUGFuZSkpLGNvbGxhcHNlQnV0dG9uOnQoJzxidXR0b24gdHlwZT0iYnV0dG9uIj48c3BhbiBjbGFzcz0iJyt0aGlzLmNsYXNzZXMuY2FyZXQrJyI+JiN4NWU7PC9zcGFuPjwvYnV0dG9uPicpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5wYW5lQnV0dG9uKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuY29sbGFwc2VCdXR0b24pLGNvbnRhaW5lcjp0KCI8ZGl2Lz4iKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuY29udGFpbmVyKS5hZGRDbGFzcyh0aGlzLnMuY29sT3B0cy5jbGFzc05hbWUpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5sYXlvdXQrKHBhcnNlSW50KHRoaXMuYy5sYXlvdXQuc3BsaXQoIi0iKVsxXSwxMCk8MTA/dGhpcy5jLmxheW91dDp0aGlzLmMubGF5b3V0LnNwbGl0KCItIilbMF0rIi05IikpLmFkZENsYXNzKHRoaXMucy5jdXN0b21QYW5lU2V0dGluZ3MmJnRoaXMucy5jdXN0b21QYW5lU2V0dGluZ3MuY2xhc3NOYW1lP3RoaXMucy5jdXN0b21QYW5lU2V0dGluZ3MuY2xhc3NOYW1lOiIiKSxjb3VudEJ1dHRvbjp0KCc8YnV0dG9uIHR5cGU9ImJ1dHRvbiI+PHNwYW4+PC9zcGFuPjwvYnV0dG9uPicpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5wYW5lQnV0dG9uKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuY291bnRCdXR0b24pLGR0UDp0KCc8dGFibGUgd2lkdGg9IjEwMCUiPjx0aGVhZD48dHI+PHRoPjwvdGg+PHRoPjwvdGg+PC90cj48L3RoZWFkPjwvdGFibGU+JyksbG93ZXI6dCgiPGRpdi8+IikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnN1YlJvdzIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5uYXJyb3dCdXR0b24pLG5hbWVCdXR0b246dCgnPGJ1dHRvbiB0eXBlPSJidXR0b24iPjxzcGFuPjwvc3Bhbj48L2J1dHRvbj4nKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMucGFuZUJ1dHRvbikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLm5hbWVCdXR0b24pLHBhbmVzQ29udGFpbmVyOnQoTCksc2VhcmNoQm94OnQoIjxpbnB1dC8+IikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnBhbmVJbnB1dEJ1dHRvbikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnNlYXJjaCksc2VhcmNoQnV0dG9uOnQoJzxidXR0b24gdHlwZT0iYnV0dG9uIj48c3Bhbj48L3NwYW4+PC9idXR0b24+JykuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnNlYXJjaEljb24pLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5wYW5lQnV0dG9uKSxzZWFyY2hDb250OnQoIjxkaXYvPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5zZWFyY2hDb250KSxzZWFyY2hMYWJlbENvbnQ6dCgiPGRpdi8+IikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnNlYXJjaExhYmVsQ29udCksdG9wUm93OnQoIjxkaXYvPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy50b3BSb3cpLHVwcGVyOnQoIjxkaXYvPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5zdWJSb3cxKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMubmFycm93U2VhcmNoKX07dmFyIG50PSIiO3RoaXMucy5jb2xFeGlzdHM/KG50PXQodGhpcy5zLmR0LmNvbHVtbih0aGlzLnMuaW5kZXgpLmhlYWRlcigpKS50ZXh0KCksdGhpcy5kb20uZHRQLmZpbmQoInRoIikuZXEoMCkudGV4dChudCkpOihudD10aGlzLnMuY3VzdG9tUGFuZVNldHRpbmdzLmhlYWRlcnx8IkN1c3RvbSBQYW5lIix0aGlzLmRvbS5kdFAuZmluZCgidGgiKS5lcSgwKS5odG1sKG50KSksdGhpcy5zLmNvbE9wdHMubmFtZT90aGlzLnMubmFtZT10aGlzLnMuY29sT3B0cy5uYW1lOnRoaXMucy5jdXN0b21QYW5lU2V0dGluZ3MmJnRoaXMucy5jdXN0b21QYW5lU2V0dGluZ3MubmFtZT90aGlzLnMubmFtZT10aGlzLnMuY3VzdG9tUGFuZVNldHRpbmdzLm5hbWU6dGhpcy5zLm5hbWU9bnQ7dmFyIHR0PXRoaXMucy5kdC50YWJsZSgwKS5ub2RlKCk7cmV0dXJuIHRoaXMucy5zZWFyY2hGdW5jdGlvbj1mdW5jdGlvbihldCx3dCxTdCl7aWYocS5zLnNlbGVjdGlvbnMubGVuZ3RoPT09MHx8ZXQublRhYmxlIT09dHQpcmV0dXJuITA7dmFyIFR0PW51bGw7cmV0dXJuIHEucy5jb2xFeGlzdHMmJihUdD13dFtxLnMuaW5kZXhdLHEucy5jb2xPcHRzLm9ydGhvZ29uYWwuZmlsdGVyIT09ImZpbHRlciImJihUdD1xLnMucm93RGF0YS5maWx0ZXJNYXAuZ2V0KFN0KSxUdCBpbnN0YW5jZW9mIHQuZm4uZGF0YVRhYmxlLkFwaSYmKFR0PVR0LnRvQXJyYXkoKSkpKSxxLl9zZWFyY2goVHQsU3QpfSx0LmZuLmRhdGFUYWJsZS5leHQuc2VhcmNoLnB1c2godGhpcy5zLnNlYXJjaEZ1bmN0aW9uKSx0aGlzLmMuY2xlYXImJnRoaXMuZG9tLmNsZWFyLm9uKCJjbGljay5kdHNwIixmdW5jdGlvbigpe3ZhciBldD1xLmRvbS5jb250YWluZXIuZmluZCgiLiIrcS5jbGFzc2VzLnNlYXJjaC5yZXBsYWNlKC9ccysvZywiLiIpKTtldC5lYWNoKGZ1bmN0aW9uKCl7dCh0aGlzKS52YWwoIiIpLnRyaWdnZXIoImlucHV0Iil9KSxxLmNsZWFyUGFuZSgpfSksdGhpcy5zLmR0Lm9uKCJkcmF3LmR0c3AiLGZ1bmN0aW9uKCl7cmV0dXJuIHEuYWRqdXN0VG9wUm93KCl9KSx0aGlzLnMuZHQub24oImJ1dHRvbnMtYWN0aW9uLmR0c3AiLGZ1bmN0aW9uKCl7cmV0dXJuIHEuYWRqdXN0VG9wUm93KCl9KSx0aGlzLnMuZHQub24oImNvbHVtbi1yZW9yZGVyLmR0c3AiLGZ1bmN0aW9uKGV0LHd0LFN0KXtxLnMuaW5kZXg9U3QubWFwcGluZ1txLnMuaW5kZXhdfSksdGhpc31yZXR1cm4gdy5wcm90b3R5cGUuYWRkUm93PWZ1bmN0aW9uKGssUyxCLEwsUixxLHope3F8fChxPXRoaXMucy5yb3dEYXRhLmJpbnNbU10/dGhpcy5zLnJvd0RhdGEuYmluc1tTXTowKSx6fHwoej10aGlzLl9nZXRTaG93bihTKSk7Zm9yKHZhciBHLG50PTAsdHQ9dGhpcy5zLmluZGV4ZXM7bnQ8dHQubGVuZ3RoO250Kyspe3ZhciBldD10dFtudF07ZXQuZmlsdGVyPT09UyYmKEc9ZXQuaW5kZXgpfXJldHVybiBHPT09dm9pZCAwJiYoRz10aGlzLnMuaW5kZXhlcy5sZW5ndGgsdGhpcy5zLmluZGV4ZXMucHVzaCh7ZmlsdGVyOlMsaW5kZXg6R30pKSx0aGlzLnMuZHRQYW5lLnJvdy5hZGQoe2NsYXNzTmFtZTpSLGRpc3BsYXk6ayE9PSIiP2s6dGhpcy5lbXB0eU1lc3NhZ2UoKSxmaWx0ZXI6UyxpbmRleDpHLHNob3duOnosc29ydDpCLHRvdGFsOnEsdHlwZTpMfSl9LHcucHJvdG90eXBlLmFkanVzdFRvcFJvdz1mdW5jdGlvbigpe3ZhciBrPXRoaXMuZG9tLmNvbnRhaW5lci5maW5kKCIuIit0aGlzLmNsYXNzZXMuc3ViUm93c0NvbnRhaW5lci5yZXBsYWNlKC9ccysvZywiLiIpKSxTPXRoaXMuZG9tLmNvbnRhaW5lci5maW5kKCIuIit0aGlzLmNsYXNzZXMuc3ViUm93MS5yZXBsYWNlKC9ccysvZywiLiIpKSxCPXRoaXMuZG9tLmNvbnRhaW5lci5maW5kKCIuIit0aGlzLmNsYXNzZXMuc3ViUm93Mi5yZXBsYWNlKC9ccysvZywiLiIpKSxMPXRoaXMuZG9tLmNvbnRhaW5lci5maW5kKCIuIit0aGlzLmNsYXNzZXMudG9wUm93LnJlcGxhY2UoL1xzKy9nLCIuIikpOyh0KGtbMF0pLndpZHRoKCk8MjUyfHx0KExbMF0pLndpZHRoKCk8MjUyKSYmdChrWzBdKS53aWR0aCgpIT09MD8odChrWzBdKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMubmFycm93KSx0KFNbMF0pLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5uYXJyb3dTdWIpLnJlbW92ZUNsYXNzKHRoaXMuY2xhc3Nlcy5uYXJyb3dTZWFyY2gpLHQoQlswXSkuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLm5hcnJvd1N1YikucmVtb3ZlQ2xhc3ModGhpcy5jbGFzc2VzLm5hcnJvd0J1dHRvbikpOih0KGtbMF0pLnJlbW92ZUNsYXNzKHRoaXMuY2xhc3Nlcy5uYXJyb3cpLHQoU1swXSkucmVtb3ZlQ2xhc3ModGhpcy5jbGFzc2VzLm5hcnJvd1N1YikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLm5hcnJvd1NlYXJjaCksdChCWzBdKS5yZW1vdmVDbGFzcyh0aGlzLmNsYXNzZXMubmFycm93U3ViKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMubmFycm93QnV0dG9uKSl9LHcucHJvdG90eXBlLmNsZWFyRGF0YT1mdW5jdGlvbigpe3RoaXMucy5yb3dEYXRhPXthcnJheUZpbHRlcjpbXSxhcnJheU9yaWdpbmFsOltdLGJpbnM6e30sYmluc09yaWdpbmFsOnt9LGZpbHRlck1hcDpuZXcgTWFwLHRvdGFsT3B0aW9uczowfX0sdy5wcm90b3R5cGUuY2xlYXJQYW5lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucy5kdFBhbmUucm93cyh7c2VsZWN0ZWQ6ITB9KS5kZXNlbGVjdCgpLHRoaXMudXBkYXRlVGFibGUoKSx0aGlzfSx3LnByb3RvdHlwZS5jb2xsYXBzZT1mdW5jdGlvbigpe3ZhciBrPXRoaXM7IXRoaXMucy5kaXNwbGF5ZWR8fCF0aGlzLmMuY29sbGFwc2UmJnRoaXMucy5jb2xPcHRzLmNvbGxhcHNlIT09ITB8fHRoaXMucy5jb2xPcHRzLmNvbGxhcHNlPT09ITF8fCh0KHRoaXMucy5kdFBhbmUudGFibGUoKS5jb250YWluZXIoKSkuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmhpZGRlbiksdGhpcy5kb20udG9wUm93LmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5ib3JkZXJlZCksdGhpcy5kb20ubmFtZUJ1dHRvbi5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuZGlzYWJsZWRCdXR0b24pLHRoaXMuZG9tLmNvdW50QnV0dG9uLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5kaXNhYmxlZEJ1dHRvbiksdGhpcy5kb20uc2VhcmNoQnV0dG9uLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5kaXNhYmxlZEJ1dHRvbiksdGhpcy5kb20uY29sbGFwc2VCdXR0b24uYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnJvdGF0ZWQpLHRoaXMuZG9tLnRvcFJvdy5vbmUoImNsaWNrLmR0c3AiLGZ1bmN0aW9uKCl7cmV0dXJuIGsuc2hvdygpfSksdGhpcy5kb20udG9wUm93LnRyaWdnZXIoImNvbGxhcHNlLmR0c3BzIikpfSx3LnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5zLmR0UGFuZSYmdGhpcy5zLmR0UGFuZS5vZmYoIi5kdHNwIiksdGhpcy5zLmR0Lm9mZigiLmR0c3AiKSx0aGlzLmRvbS5jbGVhci5vZmYoIi5kdHNwIiksdGhpcy5kb20ubmFtZUJ1dHRvbi5vZmYoIi5kdHNwIiksdGhpcy5kb20uY291bnRCdXR0b24ub2ZmKCIuZHRzcCIpLHRoaXMuZG9tLnNlYXJjaEJ1dHRvbi5vZmYoIi5kdHNwIiksdGhpcy5kb20uY29sbGFwc2VCdXR0b24ub2ZmKCIuZHRzcCIpLHQodGhpcy5zLmR0LnRhYmxlKCkubm9kZSgpKS5vZmYoIi5kdHNwIiksdGhpcy5kb20uY29udGFpbmVyLmRldGFjaCgpO2Zvcih2YXIgaz10LmZuLmRhdGFUYWJsZS5leHQuc2VhcmNoLmluZGV4T2YodGhpcy5zLnNlYXJjaEZ1bmN0aW9uKTtrIT09LTE7KXQuZm4uZGF0YVRhYmxlLmV4dC5zZWFyY2guc3BsaWNlKGssMSksaz10LmZuLmRhdGFUYWJsZS5leHQuc2VhcmNoLmluZGV4T2YodGhpcy5zLnNlYXJjaEZ1bmN0aW9uKTt0aGlzLnMuZHRQYW5lJiZ0aGlzLnMuZHRQYW5lLmRlc3Ryb3koKSx0aGlzLnMubGlzdFNldD0hMX0sdy5wcm90b3R5cGUuZW1wdHlNZXNzYWdlPWZ1bmN0aW9uKCl7dmFyIGs9dGhpcy5jLmkxOG4uZW1wdHlNZXNzYWdlO3JldHVybiB0aGlzLmMuZW1wdHlNZXNzYWdlJiYoaz10aGlzLmMuZW1wdHlNZXNzYWdlKSx0aGlzLnMuY29sT3B0cy5lbXB0eU1lc3NhZ2UhPT0hMSYmdGhpcy5zLmNvbE9wdHMuZW1wdHlNZXNzYWdlIT09bnVsbCYmKGs9dGhpcy5zLmNvbE9wdHMuZW1wdHlNZXNzYWdlKSx0aGlzLnMuZHQuaTE4bigic2VhcmNoUGFuZXMuZW1wdHlNZXNzYWdlIixrKX0sdy5wcm90b3R5cGUuZ2V0UGFuZUNvdW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucy5kdFBhbmU/dGhpcy5zLmR0UGFuZS5yb3dzKHtzZWxlY3RlZDohMH0pLmRhdGEoKS50b0FycmF5KCkubGVuZ3RoOjB9LHcucHJvdG90eXBlLnJlYnVpbGRQYW5lPWZ1bmN0aW9uKGssUyl7az09PXZvaWQgMCYmKGs9bnVsbCksUz09PXZvaWQgMCYmKFM9ITEpLHRoaXMuY2xlYXJEYXRhKCk7dmFyIEI9W107dGhpcy5zLnNlcnZlclNlbGVjdD1bXTt2YXIgTD1udWxsO3JldHVybiB0aGlzLnMuZHRQYW5lJiYoUyYmKHRoaXMucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlP3RoaXMucy5zZXJ2ZXJTZWxlY3Q9dGhpcy5zLmR0UGFuZS5yb3dzKHtzZWxlY3RlZDohMH0pLmRhdGEoKS50b0FycmF5KCk6Qj10aGlzLnMuZHRQYW5lLnJvd3Moe3NlbGVjdGVkOiEwfSkuZGF0YSgpLnRvQXJyYXkoKSksdGhpcy5zLmR0UGFuZS5jbGVhcigpLmRlc3Ryb3koKSxMPXRoaXMuZG9tLmNvbnRhaW5lci5wcmV2KCksdGhpcy5kZXN0cm95KCksdGhpcy5zLmR0UGFuZT12b2lkIDAsdC5mbi5kYXRhVGFibGUuZXh0LnNlYXJjaC5wdXNoKHRoaXMucy5zZWFyY2hGdW5jdGlvbikpLHRoaXMuZG9tLmNvbnRhaW5lci5yZW1vdmVDbGFzcyh0aGlzLmNsYXNzZXMuaGlkZGVuKSx0aGlzLnMuZGlzcGxheWVkPSExLHRoaXMuX2J1aWxkUGFuZSh0aGlzLnMuZHQucGFnZS5pbmZvKCkuc2VydmVyU2lkZT90aGlzLnMuc2VydmVyU2VsZWN0OkIsayxMKSx0aGlzfSx3LnByb3RvdHlwZS5yZXNpemU9ZnVuY3Rpb24oayl7dGhpcy5jLmxheW91dD1rLHRoaXMuZG9tLmNvbnRhaW5lci5yZW1vdmVDbGFzcygpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5zaG93KS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuY29udGFpbmVyKS5hZGRDbGFzcyh0aGlzLnMuY29sT3B0cy5jbGFzc05hbWUpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5sYXlvdXQrKHBhcnNlSW50KGsuc3BsaXQoIi0iKVsxXSwxMCk8MTA/azprLnNwbGl0KCItIilbMF0rIi05IikpLmFkZENsYXNzKHRoaXMucy5jdXN0b21QYW5lU2V0dGluZ3MhPT1udWxsJiZ0aGlzLnMuY3VzdG9tUGFuZVNldHRpbmdzLmNsYXNzTmFtZT90aGlzLnMuY3VzdG9tUGFuZVNldHRpbmdzLmNsYXNzTmFtZToiIiksdGhpcy5hZGp1c3RUb3BSb3coKX0sdy5wcm90b3R5cGUuc2V0TGlzdGVuZXJzPWZ1bmN0aW9uKCl7dmFyIGs9dGhpczt0aGlzLnMuZHRQYW5lJiYodGhpcy5zLmR0UGFuZS5vZmYoInNlbGVjdC5kdHNwIikub24oInNlbGVjdC5kdHNwIixmdW5jdGlvbigpe2NsZWFyVGltZW91dChrLnMuZGVzZWxlY3RUaW1lb3V0KSxrLl91cGRhdGVTZWxlY3Rpb24oIWsucy51cGRhdGluZyksay5kb20uY2xlYXIucmVtb3ZlQ2xhc3Moay5jbGFzc2VzLmRpc2FibGVkQnV0dG9uKS5yZW1vdmVBdHRyKCJkaXNhYmxlZCIpfSksdGhpcy5zLmR0UGFuZS5vZmYoImRlc2VsZWN0LmR0c3AiKS5vbigiZGVzZWxlY3QuZHRzcCIsZnVuY3Rpb24oKXtrLnMuZGVzZWxlY3RUaW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtrLl91cGRhdGVTZWxlY3Rpb24oITApLGsucy5kdFBhbmUucm93cyh7c2VsZWN0ZWQ6ITB9KS5kYXRhKCkudG9BcnJheSgpLmxlbmd0aD09PTAmJmsuZG9tLmNsZWFyLmFkZENsYXNzKGsuY2xhc3Nlcy5kaXNhYmxlZEJ1dHRvbikuYXR0cigiZGlzYWJsZWQiLCJ0cnVlIil9LDUwKX0pLHRoaXMucy5maXJzdFNldCYmKHRoaXMucy5maXJzdFNldD0hMSx0aGlzLnMuZHQub24oInN0YXRlU2F2ZVBhcmFtcy5kdHNwIixmdW5jdGlvbihTLEIsTCl7aWYodC5pc0VtcHR5T2JqZWN0KEwpKXtrLnMuZHRQYW5lLnN0YXRlLmNsZWFyKCk7cmV0dXJufXZhciBSLHEsej1bXSxHLG50LHR0O2sucy5kdFBhbmUmJih6PWsucy5kdFBhbmUucm93cyh7c2VsZWN0ZWQ6ITB9KS5kYXRhKCkubWFwKGZ1bmN0aW9uKHd0KXtyZXR1cm4gd3QuZmlsdGVyIT09bnVsbD93dC5maWx0ZXIudG9TdHJpbmcoKTpudWxsfSkudG9BcnJheSgpLG50PWsuZG9tLnNlYXJjaEJveC52YWwoKSxxPWsucy5kdFBhbmUub3JkZXIoKSxSPWsucy5yb3dEYXRhLmJpbnNPcmlnaW5hbCx0dD1rLnMucm93RGF0YS5hcnJheU9yaWdpbmFsLEc9ay5kb20uY29sbGFwc2VCdXR0b24uaGFzQ2xhc3Moay5jbGFzc2VzLnJvdGF0ZWQpKSxMLnNlYXJjaFBhbmVzPT09dm9pZCAwJiYoTC5zZWFyY2hQYW5lcz17fSksTC5zZWFyY2hQYW5lcy5wYW5lcz09PXZvaWQgMCYmKEwuc2VhcmNoUGFuZXMucGFuZXM9W10pO2Zvcih2YXIgZXQ9MDtldDxMLnNlYXJjaFBhbmVzLnBhbmVzLmxlbmd0aDtldCsrKUwuc2VhcmNoUGFuZXMucGFuZXNbZXRdLmlkPT09ay5zLmluZGV4JiYoTC5zZWFyY2hQYW5lcy5wYW5lcy5zcGxpY2UoZXQsMSksZXQtLSk7TC5zZWFyY2hQYW5lcy5wYW5lcy5wdXNoKHthcnJheUZpbHRlcjp0dCxiaW5zOlIsY29sbGFwc2VkOkcsaWQ6ay5zLmluZGV4LG9yZGVyOnEsc2VhcmNoVGVybTpudCxzZWxlY3RlZDp6fSl9KSksdGhpcy5zLmR0UGFuZS5vZmYoInVzZXItc2VsZWN0LmR0c3AiKS5vbigidXNlci1zZWxlY3QuZHRzcCIsZnVuY3Rpb24oUyxCLEwsUixxKXtxLnN0b3BQcm9wYWdhdGlvbigpfSksdGhpcy5zLmR0UGFuZS5vZmYoImRyYXcuZHRzcCIpLm9uKCJkcmF3LmR0c3AiLGZ1bmN0aW9uKCl7cmV0dXJuIGsuYWRqdXN0VG9wUm93KCl9KSx0aGlzLmRvbS5uYW1lQnV0dG9uLm9mZigiY2xpY2suZHRzcCIpLm9uKCJjbGljay5kdHNwIixmdW5jdGlvbigpe3ZhciBTPWsucy5kdFBhbmUub3JkZXIoKVswXVsxXTtrLnMuZHRQYW5lLm9yZGVyKFtbMCxTPT09ImFzYyI/ImRlc2MiOiJhc2MiXV0pLmRyYXcoKSxrLnMuZHQuc3RhdGUuc2F2ZSgpfSksdGhpcy5kb20uY291bnRCdXR0b24ub2ZmKCJjbGljay5kdHNwIikub24oImNsaWNrLmR0c3AiLGZ1bmN0aW9uKCl7dmFyIFM9ay5zLmR0UGFuZS5vcmRlcigpWzBdWzFdO2sucy5kdFBhbmUub3JkZXIoW1sxLFM9PT0iYXNjIj8iZGVzYyI6ImFzYyJdXSkuZHJhdygpLGsucy5kdC5zdGF0ZS5zYXZlKCl9KSx0aGlzLmRvbS5jb2xsYXBzZUJ1dHRvbi5vZmYoImNsaWNrLmR0c3AiKS5vbigiY2xpY2suZHRzcCIsZnVuY3Rpb24oUyl7Uy5zdG9wUHJvcGFnYXRpb24oKTt2YXIgQj10KGsucy5kdFBhbmUudGFibGUoKS5jb250YWluZXIoKSk7Qi50b2dnbGVDbGFzcyhrLmNsYXNzZXMuaGlkZGVuKSxrLmRvbS50b3BSb3cudG9nZ2xlQ2xhc3Moay5jbGFzc2VzLmJvcmRlcmVkKSxrLmRvbS5uYW1lQnV0dG9uLnRvZ2dsZUNsYXNzKGsuY2xhc3Nlcy5kaXNhYmxlZEJ1dHRvbiksay5kb20uY291bnRCdXR0b24udG9nZ2xlQ2xhc3Moay5jbGFzc2VzLmRpc2FibGVkQnV0dG9uKSxrLmRvbS5zZWFyY2hCdXR0b24udG9nZ2xlQ2xhc3Moay5jbGFzc2VzLmRpc2FibGVkQnV0dG9uKSxrLmRvbS5jb2xsYXBzZUJ1dHRvbi50b2dnbGVDbGFzcyhrLmNsYXNzZXMucm90YXRlZCksQi5oYXNDbGFzcyhrLmNsYXNzZXMuaGlkZGVuKT9rLmRvbS50b3BSb3cub24oImNsaWNrLmR0c3AiLGZ1bmN0aW9uKCl7cmV0dXJuIGsuZG9tLmNvbGxhcHNlQnV0dG9uLmNsaWNrKCl9KTprLmRvbS50b3BSb3cub2ZmKCJjbGljay5kdHNwIiksay5zLmR0LnN0YXRlLnNhdmUoKSxrLmRvbS50b3BSb3cudHJpZ2dlcigiY29sbGFwc2UuZHRzcHMiKX0pLHRoaXMuZG9tLmNsZWFyLm9mZigiY2xpY2suZHRzcCIpLm9uKCJjbGljay5kdHNwIixmdW5jdGlvbigpe3ZhciBTPWsuZG9tLmNvbnRhaW5lci5maW5kKCIuIitrLmNsYXNzZXMuc2VhcmNoLnJlcGxhY2UoLyAvZywiLiIpKTtTLmVhY2goZnVuY3Rpb24oKXt0KHRoaXMpLnZhbCgiIikudHJpZ2dlcigiaW5wdXQiKX0pLGsuY2xlYXJQYW5lKCl9KSx0aGlzLmRvbS5zZWFyY2hCdXR0b24ub2ZmKCJjbGljay5kdHNwIikub24oImNsaWNrLmR0c3AiLGZ1bmN0aW9uKCl7cmV0dXJuIGsuZG9tLnNlYXJjaEJveC5mb2N1cygpfSksdGhpcy5kb20uc2VhcmNoQm94Lm9mZigiY2xpY2suZHRzcCIpLm9uKCJpbnB1dC5kdHNwIixmdW5jdGlvbigpe3ZhciBTPWsuZG9tLnNlYXJjaEJveC52YWwoKTtrLnMuZHRQYW5lLnNlYXJjaChTKS5kcmF3KCksdHlwZW9mIFM9PSJzdHJpbmciJiYoUy5sZW5ndGg+MHx8Uy5sZW5ndGg9PT0wJiZrLnMuZHRQYW5lLnJvd3Moe3NlbGVjdGVkOiEwfSkuZGF0YSgpLnRvQXJyYXkoKS5sZW5ndGg+MCk/ay5kb20uY2xlYXIucmVtb3ZlQ2xhc3Moay5jbGFzc2VzLmRpc2FibGVkQnV0dG9uKS5yZW1vdmVBdHRyKCJkaXNhYmxlZCIpOmsuZG9tLmNsZWFyLmFkZENsYXNzKGsuY2xhc3Nlcy5kaXNhYmxlZEJ1dHRvbikuYXR0cigiZGlzYWJsZWQiLCJ0cnVlIiksay5zLmR0LnN0YXRlLnNhdmUoKX0pLHRoaXMucy5kdFBhbmUuc2VsZWN0LnN0eWxlKHRoaXMucy5jb2xPcHRzLmR0T3B0cyYmdGhpcy5zLmNvbE9wdHMuZHRPcHRzLnNlbGVjdCYmdGhpcy5zLmNvbE9wdHMuZHRPcHRzLnNlbGVjdC5zdHlsZT90aGlzLnMuY29sT3B0cy5kdE9wdHMuc2VsZWN0LnN0eWxlOnRoaXMuYy5kdE9wdHMmJnRoaXMuYy5kdE9wdHMuc2VsZWN0JiZ0aGlzLmMuZHRPcHRzLnNlbGVjdC5zdHlsZT90aGlzLmMuZHRPcHRzLnNlbGVjdC5zdHlsZToib3MiKSl9LHcucHJvdG90eXBlLl9zZXJ2ZXJQb3B1bGF0ZT1mdW5jdGlvbihrKXtrLnRhYmxlTGVuZ3RoPyh0aGlzLnMudGFibGVMZW5ndGg9ay50YWJsZUxlbmd0aCx0aGlzLnMucm93RGF0YS50b3RhbE9wdGlvbnM9dGhpcy5zLnRhYmxlTGVuZ3RoKToodGhpcy5zLnRhYmxlTGVuZ3RoPT09bnVsbHx8dGhpcy5zLmR0LnJvd3MoKVswXS5sZW5ndGg+dGhpcy5zLnRhYmxlTGVuZ3RoKSYmKHRoaXMucy50YWJsZUxlbmd0aD10aGlzLnMuZHQucm93cygpWzBdLmxlbmd0aCx0aGlzLnMucm93RGF0YS50b3RhbE9wdGlvbnM9dGhpcy5zLnRhYmxlTGVuZ3RoKTt2YXIgUz10aGlzLnMuZHQuY29sdW1uKHRoaXMucy5pbmRleCkuZGF0YVNyYygpO2lmKGsuc2VhcmNoUGFuZXMub3B0aW9uc1tTXSlmb3IodmFyIEI9MCxMPWsuc2VhcmNoUGFuZXMub3B0aW9uc1tTXTtCPEwubGVuZ3RoO0IrKyl7dmFyIFI9TFtCXTt0aGlzLnMucm93RGF0YS5hcnJheUZpbHRlci5wdXNoKHtkaXNwbGF5OlIubGFiZWwsZmlsdGVyOlIudmFsdWUsc29ydDpSLmxhYmVsLHR5cGU6Ui5sYWJlbH0pLHRoaXMucy5yb3dEYXRhLmJpbnNbUi52YWx1ZV09Ui50b3RhbH12YXIgcT1PYmplY3Qua2V5cyh0aGlzLnMucm93RGF0YS5iaW5zKS5sZW5ndGgsej10aGlzLl91bmlxdWVSYXRpbyhxLHRoaXMucy50YWJsZUxlbmd0aCk7aWYodGhpcy5zLmRpc3BsYXllZD09PSExJiYoKHRoaXMucy5jb2xPcHRzLnNob3c9PT12b2lkIDAmJnRoaXMucy5jb2xPcHRzLnRocmVzaG9sZD09PW51bGw/ej50aGlzLmMudGhyZXNob2xkOno+dGhpcy5zLmNvbE9wdHMudGhyZXNob2xkKXx8dGhpcy5zLmNvbE9wdHMuc2hvdyE9PSEwJiZxPD0xKSl7dGhpcy5kb20uY29udGFpbmVyLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5oaWRkZW4pLHRoaXMucy5kaXNwbGF5ZWQ9ITE7cmV0dXJufXRoaXMucy5yb3dEYXRhLmFycmF5T3JpZ2luYWw9dGhpcy5zLnJvd0RhdGEuYXJyYXlGaWx0ZXIsdGhpcy5zLnJvd0RhdGEuYmluc09yaWdpbmFsPXRoaXMucy5yb3dEYXRhLmJpbnMsdGhpcy5zLmRpc3BsYXllZD0hMH0sdy5wcm90b3R5cGUuc2hvdz1mdW5jdGlvbigpe3RoaXMucy5kaXNwbGF5ZWQmJih0aGlzLmRvbS50b3BSb3cucmVtb3ZlQ2xhc3ModGhpcy5jbGFzc2VzLmJvcmRlcmVkKSx0aGlzLmRvbS5uYW1lQnV0dG9uLnJlbW92ZUNsYXNzKHRoaXMuY2xhc3Nlcy5kaXNhYmxlZEJ1dHRvbiksdGhpcy5kb20uY291bnRCdXR0b24ucmVtb3ZlQ2xhc3ModGhpcy5jbGFzc2VzLmRpc2FibGVkQnV0dG9uKSx0aGlzLmRvbS5zZWFyY2hCdXR0b24ucmVtb3ZlQ2xhc3ModGhpcy5jbGFzc2VzLmRpc2FibGVkQnV0dG9uKSx0aGlzLmRvbS5jb2xsYXBzZUJ1dHRvbi5yZW1vdmVDbGFzcyh0aGlzLmNsYXNzZXMucm90YXRlZCksdCh0aGlzLnMuZHRQYW5lLnRhYmxlKCkuY29udGFpbmVyKCkpLnJlbW92ZUNsYXNzKHRoaXMuY2xhc3Nlcy5oaWRkZW4pLHRoaXMuZG9tLnRvcFJvdy50cmlnZ2VyKCJjb2xsYXBzZS5kdHNwcyIpKX0sdy5wcm90b3R5cGUuX3VuaXF1ZVJhdGlvPWZ1bmN0aW9uKGssUyl7cmV0dXJuIFM+MCYmKHRoaXMucy5yb3dEYXRhLnRvdGFsT3B0aW9ucz4wJiYhdGhpcy5zLmR0LnBhZ2UuaW5mbygpLnNlcnZlclNpZGV8fHRoaXMucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlJiZ0aGlzLnMudGFibGVMZW5ndGg+MCk/ay90aGlzLnMucm93RGF0YS50b3RhbE9wdGlvbnM6MX0sdy5wcm90b3R5cGUudXBkYXRlVGFibGU9ZnVuY3Rpb24oKXt2YXIgaz10aGlzLnMuZHRQYW5lLnJvd3Moe3NlbGVjdGVkOiEwfSkuZGF0YSgpLnRvQXJyYXkoKS5tYXAoZnVuY3Rpb24oUyl7cmV0dXJuIFMuZmlsdGVyfSk7dGhpcy5zLnNlbGVjdGlvbnM9ayx0aGlzLl9zZWFyY2hFeHRyYXMoKX0sdy5wcm90b3R5cGUuX2dldENvbXBhcmlzb25Sb3dzPWZ1bmN0aW9uKCl7dmFyIGs9dGhpcy5zLmNvbE9wdHMub3B0aW9ucz90aGlzLnMuY29sT3B0cy5vcHRpb25zOnRoaXMucy5jdXN0b21QYW5lU2V0dGluZ3MmJnRoaXMucy5jdXN0b21QYW5lU2V0dGluZ3Mub3B0aW9ucz90aGlzLnMuY3VzdG9tUGFuZVNldHRpbmdzLm9wdGlvbnM6dm9pZCAwO2lmKGshPT12b2lkIDApe3ZhciBTPXRoaXMucy5kdC5yb3dzKCksQj1TLmRhdGEoKS50b0FycmF5KCksTD1bXTt0aGlzLnMuZHRQYW5lLmNsZWFyKCksdGhpcy5zLmluZGV4ZXM9W107Zm9yKHZhciBSPTAscT1rO1I8cS5sZW5ndGg7UisrKXt2YXIgej1xW1JdLEc9ei5sYWJlbCE9PSIiP3oubGFiZWw6dGhpcy5lbXB0eU1lc3NhZ2UoKSxudD17Y2xhc3NOYW1lOnouY2xhc3NOYW1lLGRpc3BsYXk6RyxmaWx0ZXI6dHlwZW9mIHoudmFsdWU9PSJmdW5jdGlvbiI/ei52YWx1ZTpbXSxzb3J0Onoub3JkZXIhPT12b2lkIDA/ei5vcmRlcjpHLHRvdGFsOjAsdHlwZTpHfTtpZih0eXBlb2Ygei52YWx1ZT09ImZ1bmN0aW9uIil7Zm9yKHZhciB0dD0wO3R0PEIubGVuZ3RoO3R0Kyspei52YWx1ZS5jYWxsKHRoaXMucy5kdCxCW3R0XSxTWzBdW3R0XSkmJm50LnRvdGFsKys7dHlwZW9mIG50LmZpbHRlciE9ImZ1bmN0aW9uIiYmbnQuZmlsdGVyLnB1c2goei5maWx0ZXIpfUwucHVzaCh0aGlzLmFkZFJvdyhudC5kaXNwbGF5LG50LmZpbHRlcixudC5zb3J0LG50LnR5cGUsbnQuY2xhc3NOYW1lLG50LnRvdGFsKSl9cmV0dXJuIEx9fSx3LnByb3RvdHlwZS5fZ2V0TWVzc2FnZT1mdW5jdGlvbihrKXtyZXR1cm4gdGhpcy5zLmR0LmkxOG4oInNlYXJjaFBhbmVzLmNvdW50Iix0aGlzLmMuaTE4bi5jb3VudCkucmVwbGFjZSgve3RvdGFsfS9nLGsudG90YWwpfSx3LnByb3RvdHlwZS5fZ2V0U2hvd249ZnVuY3Rpb24oayl7fSx3LnByb3RvdHlwZS5fZ2V0UGFuZUNvbmZpZz1mdW5jdGlvbigpe3ZhciBrPXRoaXMsUz1lLlNjcm9sbGVyLEI9dGhpcy5zLmR0LnNldHRpbmdzKClbMF0ub0xhbmd1YWdlO3JldHVybiBCLnVybD12b2lkIDAsQi5zVXJsPXZvaWQgMCx7Y29sdW1uRGVmczpbe2NsYXNzTmFtZToiZHRzcC1uYW1lQ29sdW1uIixkYXRhOiJkaXNwbGF5IixyZW5kZXI6ZnVuY3Rpb24oTCxSLHEpe2lmKFI9PT0ic29ydCIpcmV0dXJuIHEuc29ydDtpZihSPT09InR5cGUiKXJldHVybiBxLnR5cGU7dmFyIHo9ay5fZ2V0TWVzc2FnZShxKSxHPSc8c3BhbiBjbGFzcz0iJytrLmNsYXNzZXMucGlsbCsnIj4nK3orIjwvc3Bhbj4iO3JldHVybighay5jLnZpZXdDb3VudHx8IWsucy5jb2xPcHRzLnZpZXdDb3VudCkmJihHPSIiKSxSPT09ImZpbHRlciI/dHlwZW9mIEw9PSJzdHJpbmciJiZMLm1hdGNoKC88W14+XSo+LykhPT1udWxsP0wucmVwbGFjZSgvPFtePl0qPi9nLCIiKTpMOic8ZGl2IGNsYXNzPSInK2suY2xhc3Nlcy5uYW1lQ29udCsnIj48c3BhbiB0aXRsZT0iJysodHlwZW9mIEw9PSJzdHJpbmciJiZMLm1hdGNoKC88W14+XSo+LykhPT1udWxsP0wucmVwbGFjZSgvPFtePl0qPi9nLCIiKTpMKSsnIiBjbGFzcz0iJytrLmNsYXNzZXMubmFtZSsnIj4nK0wrIjwvc3Bhbj4iK0crIjwvZGl2PiJ9LHRhcmdldHM6MCx0eXBlOnRoaXMucy5kdC5zZXR0aW5ncygpWzBdLmFvQ29sdW1uc1t0aGlzLnMuaW5kZXhdP3RoaXMucy5kdC5zZXR0aW5ncygpWzBdLmFvQ29sdW1uc1t0aGlzLnMuaW5kZXhdLl9zTWFudWFsVHlwZTpudWxsfSx7Y2xhc3NOYW1lOiJkdHNwLWNvdW50Q29sdW1uICIrdGhpcy5jbGFzc2VzLmJhZGdlUGlsbCxkYXRhOiJ0b3RhbCIsc2VhcmNoYWJsZTohMSx0YXJnZXRzOjEsdmlzaWJsZTohMX1dLGRlZmVyUmVuZGVyOiEwLGluZm86ITEsbGFuZ3VhZ2U6QixwYWdpbmc6ISFTLHNjcm9sbFg6ITEsc2Nyb2xsWToiMjAwcHgiLHNjcm9sbGVyOiEhUyxzZWxlY3Q6ITAsc3RhdGVTYXZlOiEhdGhpcy5zLmR0LnNldHRpbmdzKClbMF0ub0ZlYXR1cmVzLmJTdGF0ZVNhdmV9fSx3LnByb3RvdHlwZS5fbWFrZVNlbGVjdGlvbj1mdW5jdGlvbigpe3RoaXMudXBkYXRlVGFibGUoKSx0aGlzLnMudXBkYXRpbmc9ITAsdGhpcy5zLmR0LmRyYXcoKSx0aGlzLnMudXBkYXRpbmc9ITF9LHcucHJvdG90eXBlLl9wb3B1bGF0ZVBhbmVBcnJheT1mdW5jdGlvbihrLFMsQixMKXtMPT09dm9pZCAwJiYoTD10aGlzLnMucm93RGF0YS5iaW5zKTt2YXIgUj1CLmZhc3REYXRhP0IuZmFzdERhdGE6ZnVuY3Rpb24oRyxudCx0dCl7cmV0dXJuIEIub0FwaS5fZm5HZXRDZWxsRGF0YShCLEcsbnQsdHQpfTtpZih0eXBlb2YgdGhpcy5zLmNvbE9wdHMub3J0aG9nb25hbD09InN0cmluZyIpe3ZhciBxPVIoayx0aGlzLnMuaW5kZXgsdGhpcy5zLmNvbE9wdHMub3J0aG9nb25hbCk7dGhpcy5zLnJvd0RhdGEuZmlsdGVyTWFwLnNldChrLHEpLHRoaXMuX2FkZE9wdGlvbihxLHEscSxxLFMsTCksdGhpcy5zLnJvd0RhdGEudG90YWxPcHRpb25zKyt9ZWxzZXt2YXIgej1SKGssdGhpcy5zLmluZGV4LHRoaXMucy5jb2xPcHRzLm9ydGhvZ29uYWwuc2VhcmNoKTt6PT09bnVsbCYmKHo9IiIpLHR5cGVvZiB6PT0ic3RyaW5nIiYmKHo9ei5yZXBsYWNlKC88W14+XSo+L2csIiIpKSx0aGlzLnMucm93RGF0YS5maWx0ZXJNYXAuc2V0KGsseiksTFt6XT8oTFt6XSsrLHRoaXMucy5yb3dEYXRhLnRvdGFsT3B0aW9ucysrKTooTFt6XT0xLHRoaXMuX2FkZE9wdGlvbih6LFIoayx0aGlzLnMuaW5kZXgsdGhpcy5zLmNvbE9wdHMub3J0aG9nb25hbC5kaXNwbGF5KSxSKGssdGhpcy5zLmluZGV4LHRoaXMucy5jb2xPcHRzLm9ydGhvZ29uYWwuc29ydCksUihrLHRoaXMucy5pbmRleCx0aGlzLnMuY29sT3B0cy5vcnRob2dvbmFsLnR5cGUpLFMsTCksdGhpcy5zLnJvd0RhdGEudG90YWxPcHRpb25zKyspfX0sdy5wcm90b3R5cGUuX3JlbG9hZFNlbGVjdD1mdW5jdGlvbihrKXtpZihrIT09dm9pZCAwKXtmb3IodmFyIFMsQj0wO0I8ay5zZWFyY2hQYW5lcy5wYW5lcy5sZW5ndGg7QisrKWlmKGsuc2VhcmNoUGFuZXMucGFuZXNbQl0uaWQ9PT10aGlzLnMuaW5kZXgpe1M9QjticmVha31pZihTKWZvcih2YXIgTD10aGlzLnMuZHRQYW5lLFI9TC5yb3dzKHtvcmRlcjoiaW5kZXgifSkuZGF0YSgpLm1hcChmdW5jdGlvbih0dCl7cmV0dXJuIHR0LmZpbHRlciE9PW51bGw/dHQuZmlsdGVyLnRvU3RyaW5nKCk6bnVsbH0pLnRvQXJyYXkoKSxxPTAsej1rLnNlYXJjaFBhbmVzLnBhbmVzW1NdLnNlbGVjdGVkO3E8ei5sZW5ndGg7cSsrKXt2YXIgRz16W3FdLG50PS0xO0chPT1udWxsJiYobnQ9Ui5pbmRleE9mKEcudG9TdHJpbmcoKSkpLG50Pi0xJiYodGhpcy5zLnNlcnZlclNlbGVjdGluZz0hMCxMLnJvdyhudCkuc2VsZWN0KCksdGhpcy5zLnNlcnZlclNlbGVjdGluZz0hMSl9fX0sdy5wcm90b3R5cGUuX3VwZGF0ZVNlbGVjdGlvbj1mdW5jdGlvbihrKXt2YXIgUz10aGlzLEI9ZnVuY3Rpb24oUil7aWYoYXQudmVyc2lvbkNoZWNrKCIyIikpUy5zLmR0LnByb2Nlc3NpbmcoUik7ZWxzZXt2YXIgcT1TLnMuZHQuc2V0dGluZ3MoKVswXSx6PXEub0FwaTt6Ll9mblByb2Nlc3NpbmdEaXNwbGF5KHEsITEpfX0sTD1mdW5jdGlvbigpe1Mucy5zY3JvbGxUb3A9dChTLnMuZHRQYW5lLnRhYmxlKCkubm9kZSgpKS5wYXJlbnQoKVswXS5zY3JvbGxUb3AsUy5zLmR0LnBhZ2UuaW5mbygpLnNlcnZlclNpZGUmJiFTLnMudXBkYXRpbmc/Uy5zLnNlcnZlclNlbGVjdGluZ3x8KFMucy5zZXJ2ZXJTZWxlY3Q9Uy5zLmR0UGFuZS5yb3dzKHtzZWxlY3RlZDohMH0pLmRhdGEoKS50b0FycmF5KCksUy5zLmR0LmRyYXcoITEpKTprJiZTLl9tYWtlU2VsZWN0aW9uKCksQighMSl9O0IoITApLHNldFRpbWVvdXQoTCwxKX0sdy5wcm90b3R5cGUuX2FkZE9wdGlvbj1mdW5jdGlvbihrLFMsQixMLFIscSl7aWYoQXJyYXkuaXNBcnJheShrKXx8ayBpbnN0YW5jZW9mIGUuQXBpKXtpZihrIGluc3RhbmNlb2YgZS5BcGkmJihrPWsudG9BcnJheSgpLFM9Uy50b0FycmF5KCkpLGsubGVuZ3RoPT09Uy5sZW5ndGgpe2Zvcih2YXIgej0wO3o8ay5sZW5ndGg7eisrKXFba1t6XV0/cVtrW3pdXSsrOihxW2tbel1dPTEsUi5wdXNoKHtkaXNwbGF5OlNbel0sZmlsdGVyOmtbel0sc29ydDpCW3pdLHR5cGU6TFt6XX0pKSx0aGlzLnMucm93RGF0YS50b3RhbE9wdGlvbnMrKztyZXR1cm59dGhyb3cgbmV3IEVycm9yKCJkaXNwbGF5IGFuZCBmaWx0ZXIgbm90IHRoZSBzYW1lIGxlbmd0aCIpfWVsc2UgdHlwZW9mIHRoaXMucy5jb2xPcHRzLm9ydGhvZ29uYWw9PSJzdHJpbmciP3Fba10/KHFba10rKyx0aGlzLnMucm93RGF0YS50b3RhbE9wdGlvbnMrKyk6KHFba109MSxSLnB1c2goe2Rpc3BsYXk6UyxmaWx0ZXI6ayxzb3J0OkIsdHlwZTpMfSksdGhpcy5zLnJvd0RhdGEudG90YWxPcHRpb25zKyspOlIucHVzaCh7ZGlzcGxheTpTLGZpbHRlcjprLHNvcnQ6Qix0eXBlOkx9KX0sdy5wcm90b3R5cGUuX2J1aWxkUGFuZT1mdW5jdGlvbihrLFMsQil7dmFyIEw9dGhpcztrPT09dm9pZCAwJiYoaz1bXSksUz09PXZvaWQgMCYmKFM9bnVsbCksQj09PXZvaWQgMCYmKEI9bnVsbCksdGhpcy5zLnNlbGVjdGlvbnM9W107dmFyIFI9dGhpcy5zLmR0LnN0YXRlLmxvYWRlZCgpLHE7aWYodGhpcy5zLmxpc3RTZXQmJihSPXRoaXMucy5kdC5zdGF0ZSgpKSx0aGlzLnMuY29sRXhpc3RzKXt2YXIgej0tMTtpZihSJiZSLnNlYXJjaFBhbmVzJiZSLnNlYXJjaFBhbmVzLnBhbmVzKXtmb3IodmFyIEc9MDtHPFIuc2VhcmNoUGFuZXMucGFuZXMubGVuZ3RoO0crKylpZihSLnNlYXJjaFBhbmVzLnBhbmVzW0ddLmlkPT09dGhpcy5zLmluZGV4KXt6PUc7YnJlYWt9fWlmKCh0aGlzLnMuY29sT3B0cy5zaG93PT09ITF8fHRoaXMucy5jb2xPcHRzLnNob3chPT12b2lkIDAmJnRoaXMucy5jb2xPcHRzLnNob3chPT0hMCkmJno9PT0tMSlyZXR1cm4gdGhpcy5kb20uY29udGFpbmVyLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5oaWRkZW4pLHRoaXMucy5kaXNwbGF5ZWQ9ITEsITE7aWYoKHRoaXMucy5jb2xPcHRzLnNob3c9PT0hMHx8eiE9PS0xKSYmKHRoaXMucy5kaXNwbGF5ZWQ9ITApLCF0aGlzLnMuZHQucGFnZS5pbmZvKCkuc2VydmVyU2lkZSYmKCFTfHwhUy5zZWFyY2hQYW5lc3x8IVMuc2VhcmNoUGFuZXMub3B0aW9ucykpe3RoaXMucy5yb3dEYXRhLmFycmF5RmlsdGVyLmxlbmd0aD09PTAmJih0aGlzLnMucm93RGF0YS50b3RhbE9wdGlvbnM9MCx0aGlzLl9wb3B1bGF0ZVBhbmUoKSx0aGlzLnMucm93RGF0YS5hcnJheU9yaWdpbmFsPXRoaXMucy5yb3dEYXRhLmFycmF5RmlsdGVyLHRoaXMucy5yb3dEYXRhLmJpbnNPcmlnaW5hbD10aGlzLnMucm93RGF0YS5iaW5zKTt2YXIgbnQ9T2JqZWN0LmtleXModGhpcy5zLnJvd0RhdGEuYmluc09yaWdpbmFsKS5sZW5ndGgsdHQ9dGhpcy5fdW5pcXVlUmF0aW8obnQsdGhpcy5zLmR0LnJvd3MoKVswXS5sZW5ndGgpO2lmKHRoaXMucy5kaXNwbGF5ZWQ9PT0hMSYmKCh0aGlzLnMuY29sT3B0cy5zaG93PT09dm9pZCAwJiZ0aGlzLnMuY29sT3B0cy50aHJlc2hvbGQ9PT1udWxsP3R0PnRoaXMuYy50aHJlc2hvbGQ6dHQ+dGhpcy5zLmNvbE9wdHMudGhyZXNob2xkKXx8dGhpcy5zLmNvbE9wdHMuc2hvdyE9PSEwJiZudDw9MSkpe3RoaXMuZG9tLmNvbnRhaW5lci5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuaGlkZGVuKSx0aGlzLnMuZGlzcGxheWVkPSExO3JldHVybn10aGlzLmRvbS5jb250YWluZXIuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnNob3cpLHRoaXMucy5kaXNwbGF5ZWQ9ITB9ZWxzZSBTJiZTLnNlYXJjaFBhbmVzJiZTLnNlYXJjaFBhbmVzLm9wdGlvbnMmJnRoaXMuX3NlcnZlclBvcHVsYXRlKFMpfWVsc2UgdGhpcy5zLmRpc3BsYXllZD0hMDt0aGlzLl9kaXNwbGF5UGFuZSgpLHRoaXMucy5saXN0U2V0fHx0aGlzLmRvbS5kdFAub24oInN0YXRlTG9hZFBhcmFtcy5kdHNwIixmdW5jdGlvbihwdCx2dCxydCl7dC5pc0VtcHR5T2JqZWN0KEwucy5kdC5zdGF0ZS5sb2FkZWQoKSkmJnQuZWFjaChydCxmdW5jdGlvbihndCl7ZGVsZXRlIHJ0W2d0XX0pfSksQiE9PW51bGwmJnRoaXMuZG9tLnBhbmVzQ29udGFpbmVyLmhhcyhCKS5sZW5ndGg+MD90aGlzLmRvbS5jb250YWluZXIuaW5zZXJ0QWZ0ZXIoQik6dGhpcy5kb20ucGFuZXNDb250YWluZXIucHJlcGVuZCh0aGlzLmRvbS5jb250YWluZXIpO3ZhciBldD10LmZuLmRhdGFUYWJsZS5leHQuZXJyTW9kZTt0LmZuLmRhdGFUYWJsZS5leHQuZXJyTW9kZT0ibm9uZSIsdGhpcy5kb20uZHRQLm9uKCJpbml0LmR0IixmdW5jdGlvbihwdCx2dCl7dmFyIHJ0PUwuZG9tLmR0UC5EYXRhVGFibGUoKSxndD1ydC5zZWxlY3Quc3R5bGUoKTtydC5zZWxlY3Quc3R5bGUoZ3QpfSksdGhpcy5zLmR0UGFuZT10aGlzLmRvbS5kdFAuRGF0YVRhYmxlKHQuZXh0ZW5kKCEwLHRoaXMuX2dldFBhbmVDb25maWcoKSx0aGlzLmMuZHRPcHRzLHRoaXMucy5jb2xPcHRzP3RoaXMucy5jb2xPcHRzLmR0T3B0czp7fSx0aGlzLnMuY29sT3B0cy5vcHRpb25zfHwhdGhpcy5zLmNvbEV4aXN0cz97Y3JlYXRlZFJvdzpmdW5jdGlvbihwdCx2dCl7dChwdCkuYWRkQ2xhc3ModnQuY2xhc3NOYW1lKX19OnZvaWQgMCx0aGlzLnMuY3VzdG9tUGFuZVNldHRpbmdzIT09bnVsbCYmdGhpcy5zLmN1c3RvbVBhbmVTZXR0aW5ncy5kdE9wdHM/dGhpcy5zLmN1c3RvbVBhbmVTZXR0aW5ncy5kdE9wdHM6e30sdC5mbi5kYXRhVGFibGUudmVyc2lvbkNoZWNrKCIyIik/e2xheW91dDp7Ym90dG9tU3RhcnQ6bnVsbCxib3R0b21FbmQ6bnVsbCx0b3BTdGFydDpudWxsLHRvcEVuZDpudWxsfX06e2RvbToidCJ9KSksdGhpcy5kb20uZHRQLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy50YWJsZSk7dmFyIHd0PSJDdXN0b20gUGFuZSI7aWYodGhpcy5zLmN1c3RvbVBhbmVTZXR0aW5ncyYmdGhpcy5zLmN1c3RvbVBhbmVTZXR0aW5ncy5oZWFkZXI/d3Q9dGhpcy5zLmN1c3RvbVBhbmVTZXR0aW5ncy5oZWFkZXI6dGhpcy5zLmNvbE9wdHMuaGVhZGVyP3d0PXRoaXMucy5jb2xPcHRzLmhlYWRlcjp0aGlzLnMuY29sRXhpc3RzJiYod3Q9dC5mbi5kYXRhVGFibGUudmVyc2lvbkNoZWNrKCIyIik/dGhpcy5zLmR0LmNvbHVtbih0aGlzLnMuaW5kZXgpLnRpdGxlKCk6dGhpcy5zLmR0LnNldHRpbmdzKClbMF0uYW9Db2x1bW5zW3RoaXMucy5pbmRleF0uc1RpdGxlKSx3dD10aGlzLl9lc2NhcGVIVE1MKHd0KSx0aGlzLmRvbS5zZWFyY2hCb3guYXR0cigicGxhY2Vob2xkZXIiLHd0KSx0LmZuLmRhdGFUYWJsZS5leHQuZXJyTW9kZT1ldCx0aGlzLnMuY29sRXhpc3RzKWZvcih2YXIgU3Q9MCxUdD10aGlzLnMucm93RGF0YS5hcnJheUZpbHRlci5sZW5ndGg7U3Q8VHQ7U3QrKylpZih0aGlzLnMuZHQucGFnZS5pbmZvKCkuc2VydmVyU2lkZSl7cT10aGlzLmFkZFJvdyh0aGlzLnMucm93RGF0YS5hcnJheUZpbHRlcltTdF0uZGlzcGxheSx0aGlzLnMucm93RGF0YS5hcnJheUZpbHRlcltTdF0uZmlsdGVyLHRoaXMucy5yb3dEYXRhLmFycmF5RmlsdGVyW1N0XS5zb3J0LHRoaXMucy5yb3dEYXRhLmFycmF5RmlsdGVyW1N0XS50eXBlKTtmb3IodmFyIGt0PTAsTHQ9dGhpcy5zLnNlcnZlclNlbGVjdDtrdDxMdC5sZW5ndGg7a3QrKyl7dmFyIEJ0PUx0W2t0XTtCdC5maWx0ZXI9PT10aGlzLnMucm93RGF0YS5hcnJheUZpbHRlcltTdF0uZmlsdGVyJiYodGhpcy5zLnNlcnZlclNlbGVjdGluZz0hMCxxLnNlbGVjdCgpLHRoaXMucy5zZXJ2ZXJTZWxlY3Rpbmc9ITEpfX1lbHNlIXRoaXMucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlJiZ0aGlzLnMucm93RGF0YS5hcnJheUZpbHRlcltTdF0/dGhpcy5hZGRSb3codGhpcy5zLnJvd0RhdGEuYXJyYXlGaWx0ZXJbU3RdLmRpc3BsYXksdGhpcy5zLnJvd0RhdGEuYXJyYXlGaWx0ZXJbU3RdLmZpbHRlcix0aGlzLnMucm93RGF0YS5hcnJheUZpbHRlcltTdF0uc29ydCx0aGlzLnMucm93RGF0YS5hcnJheUZpbHRlcltTdF0udHlwZSk6dGhpcy5zLmR0LnBhZ2UuaW5mbygpLnNlcnZlclNpZGV8fHRoaXMuYWRkUm93KCIiLCIiLCIiLCIiKTsodGhpcy5zLmNvbE9wdHMub3B0aW9uc3x8dGhpcy5zLmN1c3RvbVBhbmVTZXR0aW5ncyYmdGhpcy5zLmN1c3RvbVBhbmVTZXR0aW5ncy5vcHRpb25zKSYmdGhpcy5fZ2V0Q29tcGFyaXNvblJvd3MoKSx0aGlzLnMuZHRQYW5lLmRyYXcoKSx0aGlzLnMuZHRQYW5lLnRhYmxlKCkubm9kZSgpLnBhcmVudE5vZGUuc2Nyb2xsVG9wPXRoaXMucy5zY3JvbGxUb3AsdGhpcy5hZGp1c3RUb3BSb3coKSx0aGlzLnNldExpc3RlbmVycygpLHRoaXMucy5saXN0U2V0PSEwO2Zvcih2YXIgJHQ9MCxLdD1rOyR0PEt0Lmxlbmd0aDskdCsrKXt2YXIgRD1LdFskdF07aWYoRClmb3IodmFyIHV0PTAsb3Q9dGhpcy5zLmR0UGFuZS5yb3dzKCkuaW5kZXhlcygpLnRvQXJyYXkoKTt1dDxvdC5sZW5ndGg7dXQrKylxPW90W3V0XSx0aGlzLnMuZHRQYW5lLnJvdyhxKS5kYXRhKCkmJkQuZmlsdGVyPT09dGhpcy5zLmR0UGFuZS5yb3cocSkuZGF0YSgpLmZpbHRlciYmKHRoaXMucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlPyh0aGlzLnMuc2VydmVyU2VsZWN0aW5nPSEwLHRoaXMucy5kdFBhbmUucm93KHEpLnNlbGVjdCgpLHRoaXMucy5zZXJ2ZXJTZWxlY3Rpbmc9ITEpOnRoaXMucy5kdFBhbmUucm93KHEpLnNlbGVjdCgpKX1pZih0aGlzLnMuZHQucGFnZS5pbmZvKCkuc2VydmVyU2lkZSYmdGhpcy5zLmR0UGFuZS5zZWFyY2godGhpcy5kb20uc2VhcmNoQm94LnZhbCgpKS5kcmF3KCksKHRoaXMuYy5pbml0Q29sbGFwc2VkJiZ0aGlzLnMuY29sT3B0cy5pbml0Q29sbGFwc2VkIT09ITF8fHRoaXMucy5jb2xPcHRzLmluaXRDb2xsYXBzZWQpJiYodGhpcy5jLmNvbGxhcHNlJiZ0aGlzLnMuY29sT3B0cy5jb2xsYXBzZSE9PSExfHx0aGlzLnMuY29sT3B0cy5jb2xsYXBzZSkmJih0aGlzLnMuZHRQYW5lLnNldHRpbmdzKClbMF0uX2JJbml0Q29tcGxldGU/dGhpcy5jb2xsYXBzZSgpOnRoaXMucy5kdFBhbmUub25lKCJpbml0IixmdW5jdGlvbigpe3JldHVybiBMLmNvbGxhcHNlKCl9KSksUiYmUi5zZWFyY2hQYW5lcyYmUi5zZWFyY2hQYW5lcy5wYW5lcyYmKCFTfHxTLmRyYXc9PT0xKSl7dGhpcy5fcmVsb2FkU2VsZWN0KFIpO2Zvcih2YXIgVj0wLGo9Ui5zZWFyY2hQYW5lcy5wYW5lcztWPGoubGVuZ3RoO1YrKyl7dmFyIEs9altWXTtLLmlkPT09dGhpcy5zLmluZGV4JiYoSy5zZWFyY2hUZXJtJiZLLnNlYXJjaFRlcm0ubGVuZ3RoPjAmJnRoaXMuZG9tLnNlYXJjaEJveC52YWwoSy5zZWFyY2hUZXJtKS50cmlnZ2VyKCJpbnB1dCIpLEsub3JkZXImJnRoaXMucy5kdFBhbmUub3JkZXIoSy5vcmRlcikuZHJhdygpLEsuY29sbGFwc2VkP3RoaXMuY29sbGFwc2UoKTp0aGlzLnNob3coKSl9fXJldHVybiEwfSx3LnByb3RvdHlwZS5fZGlzcGxheVBhbmU9ZnVuY3Rpb24oKXt0aGlzLmRvbS5kdFAuZW1wdHkoKSx0aGlzLmRvbS50b3BSb3cuZW1wdHkoKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMudG9wUm93KSxwYXJzZUludCh0aGlzLmMubGF5b3V0LnNwbGl0KCItIilbMV0sMTApPjMmJnRoaXMuZG9tLmNvbnRhaW5lci5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuc21hbGxHYXApLHRoaXMuZG9tLnRvcFJvdy5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuc3ViUm93c0NvbnRhaW5lcikuYXBwZW5kKHRoaXMuZG9tLnVwcGVyLmFwcGVuZCh0aGlzLmRvbS5zZWFyY2hDb250KSkuYXBwZW5kKHRoaXMuZG9tLmxvd2VyLmFwcGVuZCh0aGlzLmRvbS5idXR0b25Hcm91cCkpLCh0aGlzLmMuZHRPcHRzLnNlYXJjaGluZz09PSExfHx0aGlzLnMuY29sT3B0cy5kdE9wdHMmJnRoaXMucy5jb2xPcHRzLmR0T3B0cy5zZWFyY2hpbmc9PT0hMXx8IXRoaXMuYy5jb250cm9sc3x8IXRoaXMucy5jb2xPcHRzLmNvbnRyb2xzfHx0aGlzLnMuY3VzdG9tUGFuZVNldHRpbmdzJiZ0aGlzLnMuY3VzdG9tUGFuZVNldHRpbmdzLmR0T3B0cyYmdGhpcy5zLmN1c3RvbVBhbmVTZXR0aW5ncy5kdE9wdHMuc2VhcmNoaW5nIT09dm9pZCAwJiYhdGhpcy5zLmN1c3RvbVBhbmVTZXR0aW5ncy5kdE9wdHMuc2VhcmNoaW5nKSYmdGhpcy5kb20uc2VhcmNoQm94LnJlbW92ZUNsYXNzKHRoaXMuY2xhc3Nlcy5wYW5lSW5wdXRCdXR0b24pLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5kaXNhYmxlZEJ1dHRvbikuYXR0cigiZGlzYWJsZWQiLCJ0cnVlIiksdGhpcy5kb20uc2VhcmNoQm94LmFwcGVuZFRvKHRoaXMuZG9tLnNlYXJjaENvbnQpLHRoaXMuX3NlYXJjaENvbnRTZXR1cCgpLHRoaXMuYy5jbGVhciYmdGhpcy5jLmNvbnRyb2xzJiZ0aGlzLnMuY29sT3B0cy5jb250cm9scyYmdGhpcy5kb20uY2xlYXIuYXBwZW5kVG8odGhpcy5kb20uYnV0dG9uR3JvdXApLHRoaXMuYy5vcmRlcmFibGUmJnRoaXMucy5jb2xPcHRzLm9yZGVyYWJsZSYmdGhpcy5jLmNvbnRyb2xzJiZ0aGlzLnMuY29sT3B0cy5jb250cm9scyYmdGhpcy5kb20ubmFtZUJ1dHRvbi5hcHBlbmRUbyh0aGlzLmRvbS5idXR0b25Hcm91cCksdGhpcy5jLnZpZXdDb3VudCYmdGhpcy5zLmNvbE9wdHMudmlld0NvdW50JiZ0aGlzLmMub3JkZXJhYmxlJiZ0aGlzLnMuY29sT3B0cy5vcmRlcmFibGUmJnRoaXMuYy5jb250cm9scyYmdGhpcy5zLmNvbE9wdHMuY29udHJvbHMmJnRoaXMuZG9tLmNvdW50QnV0dG9uLmFwcGVuZFRvKHRoaXMuZG9tLmJ1dHRvbkdyb3VwKSwodGhpcy5jLmNvbGxhcHNlJiZ0aGlzLnMuY29sT3B0cy5jb2xsYXBzZSE9PSExfHx0aGlzLnMuY29sT3B0cy5jb2xsYXBzZSkmJnRoaXMuYy5jb250cm9scyYmdGhpcy5zLmNvbE9wdHMuY29udHJvbHMmJnRoaXMuZG9tLmNvbGxhcHNlQnV0dG9uLmFwcGVuZFRvKHRoaXMuZG9tLmJ1dHRvbkdyb3VwKSx0aGlzLmRvbS5jb250YWluZXIucHJlcGVuZCh0aGlzLmRvbS50b3BSb3cpLmFwcGVuZCh0aGlzLmRvbS5kdFApLnNob3coKX0sdy5wcm90b3R5cGUuX2VzY2FwZUhUTUw9ZnVuY3Rpb24oayl7cmV0dXJuIGsudG9TdHJpbmcoKS5yZXBsYWNlKC8mbHQ7L2csIjwiKS5yZXBsYWNlKC8mZ3Q7L2csIj4iKS5yZXBsYWNlKC8mcXVvdDsvZywnIicpLnJlcGxhY2UoLyZhbXA7L2csIiYiKX0sdy5wcm90b3R5cGUuX2dldEJvbnVzT3B0aW9ucz1mdW5jdGlvbigpe3ZhciBrPXt0aHJlc2hvbGQ6bnVsbH07cmV0dXJuIHQuZXh0ZW5kKCEwLHt9LHcuZGVmYXVsdHMsayx0aGlzLmM/dGhpcy5jOnt9KX0sdy5wcm90b3R5cGUuX2dldE9wdGlvbnM9ZnVuY3Rpb24oKXt2YXIgaz10aGlzLnMuZHQsUz17Y29sbGFwc2U6bnVsbCxlbXB0eU1lc3NhZ2U6ITEsaW5pdENvbGxhcHNlZDpudWxsLHRocmVzaG9sZDpudWxsfSxCPWsuc2V0dGluZ3MoKVswXS5hb0NvbHVtbnNbdGhpcy5zLmluZGV4XS5zZWFyY2hQYW5lcyxMPXQuZXh0ZW5kKCEwLHt9LHcuZGVmYXVsdHMsUyxCKTtyZXR1cm4gQiYmQi5oaWRlQ291bnQmJkIudmlld0NvdW50PT09dm9pZCAwJiYoTC52aWV3Q291bnQ9IUIuaGlkZUNvdW50KSxMfSx3LnByb3RvdHlwZS5fcG9wdWxhdGVQYW5lPWZ1bmN0aW9uKCl7dGhpcy5zLnJvd0RhdGEuYXJyYXlGaWx0ZXI9W10sdGhpcy5zLnJvd0RhdGEuYmlucz17fTt2YXIgaz10aGlzLnMuZHQuY29udGV4dFswXTtpZighdGhpcy5zLmR0LnBhZ2UuaW5mbygpLnNlcnZlclNpZGUpZm9yKHZhciBTPTAsQj10aGlzLnMuZHQucm93cygpLmluZGV4ZXMoKS50b0FycmF5KCk7UzxCLmxlbmd0aDtTKyspe3ZhciBMPUJbU107dGhpcy5fcG9wdWxhdGVQYW5lQXJyYXkoTCx0aGlzLnMucm93RGF0YS5hcnJheUZpbHRlcixrKX19LHcucHJvdG90eXBlLl9zZWFyY2g9ZnVuY3Rpb24oayxTKXtmb3IodmFyIEI9dGhpcy5zLmNvbE9wdHMsTD10aGlzLnMuZHQsUj0wLHE9dGhpcy5zLnNlbGVjdGlvbnM7UjxxLmxlbmd0aDtSKyspe3ZhciB6PXFbUl07aWYodHlwZW9mIHo9PSJzdHJpbmciJiZ0eXBlb2Ygaz09InN0cmluZyImJih6PXRoaXMuX2VzY2FwZUhUTUwoeikpLEFycmF5LmlzQXJyYXkoaykpe2lmKEIuY29tYmluZXI9PT0iYW5kIil7aWYoIWsuaW5jbHVkZXMoeikpcmV0dXJuITF9ZWxzZSBpZihrLmluY2x1ZGVzKHopKXJldHVybiEwfWVsc2UgaWYodHlwZW9mIHo9PSJmdW5jdGlvbiIpe2lmKHouY2FsbChMLEwucm93KFMpLmRhdGEoKSxTKSl7aWYoQi5jb21iaW5lcj09PSJvciIpcmV0dXJuITB9ZWxzZSBpZihCLmNvbWJpbmVyPT09ImFuZCIpcmV0dXJuITF9ZWxzZSBpZihrPT09enx8ISh0eXBlb2Ygaz09InN0cmluZyImJmsubGVuZ3RoPT09MCkmJms9PXp8fHo9PT1udWxsJiZ0eXBlb2Ygaz09InN0cmluZyImJms9PT0iIilyZXR1cm4hMH1yZXR1cm4gQi5jb21iaW5lcj09PSJhbmQifSx3LnByb3RvdHlwZS5fc2VhcmNoQ29udFNldHVwPWZ1bmN0aW9uKCl7dGhpcy5jLmNvbnRyb2xzJiZ0aGlzLnMuY29sT3B0cy5jb250cm9scyYmdGhpcy5kb20uc2VhcmNoQnV0dG9uLmFwcGVuZFRvKHRoaXMuZG9tLnNlYXJjaExhYmVsQ29udCksdGhpcy5jLmR0T3B0cy5zZWFyY2hpbmc9PT0hMXx8dGhpcy5zLmNvbE9wdHMuZHRPcHRzLnNlYXJjaGluZz09PSExfHx0aGlzLnMuY3VzdG9tUGFuZVNldHRpbmdzJiZ0aGlzLnMuY3VzdG9tUGFuZVNldHRpbmdzLmR0T3B0cyYmdGhpcy5zLmN1c3RvbVBhbmVTZXR0aW5ncy5kdE9wdHMuc2VhcmNoaW5nIT09dm9pZCAwJiYhdGhpcy5zLmN1c3RvbVBhbmVTZXR0aW5ncy5kdE9wdHMuc2VhcmNoaW5nfHx0aGlzLmRvbS5zZWFyY2hMYWJlbENvbnQuYXBwZW5kVG8odGhpcy5kb20uc2VhcmNoQ29udCl9LHcucHJvdG90eXBlLl9zZWFyY2hFeHRyYXM9ZnVuY3Rpb24oKXt2YXIgaz10aGlzLnMudXBkYXRpbmc7dGhpcy5zLnVwZGF0aW5nPSEwO3ZhciBTPXRoaXMucy5kdFBhbmUucm93cyh7c2VsZWN0ZWQ6ITB9KS5kYXRhKCkucGx1Y2soImZpbHRlciIpLnRvQXJyYXkoKSxCPVMuaW5kZXhPZih0aGlzLmVtcHR5TWVzc2FnZSgpKSxMPXQodGhpcy5zLmR0UGFuZS50YWJsZSgpLmNvbnRhaW5lcigpKTtCPi0xJiYoU1tCXT0iIiksUy5sZW5ndGg+MD9MLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5zZWxlY3RlZCk6Uy5sZW5ndGg9PT0wJiZMLnJlbW92ZUNsYXNzKHRoaXMuY2xhc3Nlcy5zZWxlY3RlZCksdGhpcy5zLnVwZGF0aW5nPWt9LHcudmVyc2lvbj0iMi4xLjIiLHcuY2xhc3Nlcz17Ym9yZGVyZWQ6ImR0c3AtYm9yZGVyZWQiLGJ1dHRvbkdyb3VwOiJkdHNwLWJ1dHRvbkdyb3VwIixidXR0b25TdWI6ImR0c3AtYnV0dG9uU3ViIixjYXJldDoiZHRzcC1jYXJldCIsY2xlYXI6ImR0c3AtY2xlYXIiLGNsZWFyQWxsOiJkdHNwLWNsZWFyQWxsIixjbGVhckJ1dHRvbjoiY2xlYXJCdXR0b24iLGNvbGxhcHNlQWxsOiJkdHNwLWNvbGxhcHNlQWxsIixjb2xsYXBzZUJ1dHRvbjoiZHRzcC1jb2xsYXBzZUJ1dHRvbiIsY29udGFpbmVyOiJkdHNwLXNlYXJjaFBhbmUiLGNvdW50QnV0dG9uOiJkdHNwLWNvdW50QnV0dG9uIixkaXNhYmxlZEJ1dHRvbjoiZHRzcC1kaXNhYmxlZEJ1dHRvbiIsaGlkZGVuOiJkdHNwLWhpZGRlbiIsaGlkZToiZHRzcC1oaWRlIixsYXlvdXQ6ImR0c3AtIixuYW1lOiJkdHNwLW5hbWUiLG5hbWVCdXR0b246ImR0c3AtbmFtZUJ1dHRvbiIsbmFtZUNvbnQ6ImR0c3AtbmFtZUNvbnQiLG5hcnJvdzoiZHRzcC1uYXJyb3ciLHBhbmVCdXR0b246ImR0c3AtcGFuZUJ1dHRvbiIscGFuZUlucHV0QnV0dG9uOiJkdHNwLXBhbmVJbnB1dEJ1dHRvbiIscGlsbDoiZHRzcC1waWxsIixyb3RhdGVkOiJkdHNwLXJvdGF0ZWQiLHNlYXJjaDoiZHRzcC1zZWFyY2giLHNlYXJjaENvbnQ6ImR0c3Atc2VhcmNoQ29udCIsc2VhcmNoSWNvbjoiZHRzcC1zZWFyY2hJY29uIixzZWFyY2hMYWJlbENvbnQ6ImR0c3Atc2VhcmNoQnV0dG9uQ29udCIsc2VsZWN0ZWQ6ImR0c3Atc2VsZWN0ZWQiLHNtYWxsR2FwOiJkdHNwLXNtYWxsR2FwIixzdWJSb3cxOiJkdHNwLXN1YlJvdzEiLHN1YlJvdzI6ImR0c3Atc3ViUm93MiIsc3ViUm93c0NvbnRhaW5lcjoiZHRzcC1zdWJSb3dzQ29udGFpbmVyIix0aXRsZToiZHRzcC10aXRsZSIsdG9wUm93OiJkdHNwLXRvcFJvdyJ9LHcuZGVmYXVsdHM9e2NsZWFyOiEwLGNvbGxhcHNlOiEwLGNvbWJpbmVyOiJvciIsY29udGFpbmVyOmZ1bmN0aW9uKGspe3JldHVybiBrLnRhYmxlKCkuY29udGFpbmVyKCl9LGNvbnRyb2xzOiEwLGR0T3B0czp7fSxlbXB0eU1lc3NhZ2U6bnVsbCxoaWRlQ291bnQ6ITEsaTE4bjp7Y2xlYXJQYW5lOiImdGltZXM7Iixjb3VudDoie3RvdGFsfSIsZW1wdHlNZXNzYWdlOiI8ZW0+Tm8gZGF0YTwvZW0+In0saW5pdENvbGxhcHNlZDohMSxsYXlvdXQ6ImF1dG8iLG5hbWU6dm9pZCAwLG9yZGVyYWJsZTohMCxvcnRob2dvbmFsOntkaXNwbGF5OiJkaXNwbGF5IixmaWx0ZXI6ImZpbHRlciIsaGlkZUNvdW50OiExLHNlYXJjaDoiZmlsdGVyIixzaG93OnZvaWQgMCxzb3J0OiJzb3J0Iix0aHJlc2hvbGQ6LjYsdHlwZToidHlwZSIsdmlld0NvdW50OiEwfSxwcmVTZWxlY3Q6W10sdGhyZXNob2xkOi42LHZpZXdDb3VudDohMH0sd30oKSxzPXdpbmRvdyYmd2luZG93Ll9fZXh0ZW5kc3x8ZnVuY3Rpb24oKXt2YXIgdz1mdW5jdGlvbihrLFMpe3JldHVybiB3PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihCLEwpe0IuX19wcm90b19fPUx9fHxmdW5jdGlvbihCLEwpe2Zvcih2YXIgUiBpbiBMKUwuaGFzT3duUHJvcGVydHkoUikmJihCW1JdPUxbUl0pfSx3KGssUyl9O3JldHVybiBmdW5jdGlvbihrLFMpe3coayxTKTtmdW5jdGlvbiBCKCl7dGhpcy5jb25zdHJ1Y3Rvcj1rfWsucHJvdG90eXBlPVM9PT1udWxsP09iamVjdC5jcmVhdGUoUyk6KEIucHJvdG90eXBlPVMucHJvdG90eXBlLG5ldyBCKX19KCksaT1mdW5jdGlvbih3KXtzKGssdyk7ZnVuY3Rpb24gayhTLEIsTCxSLHEpe3JldHVybiB3LmNhbGwodGhpcyxTLEIsTCxSLHEpfHx0aGlzfXJldHVybiBrLnByb3RvdHlwZS5fZW1wdHlQYW5lPWZ1bmN0aW9uKCl7dmFyIFM9dGhpcy5zLmR0UGFuZTtpZihhdC52ZXJzaW9uQ2hlY2soIjIiKSl7dmFyIEI9Uy5zZWxlY3QubGFzdCgpLEw7cmV0dXJuIEImJlMucm93KEIucm93KS5hbnkoKSYmKEw9Uy5yb3coQi5yb3cpLmRhdGEoKS5pbmRleCksUy5yb3dzKCkucmVtb3ZlKCksZnVuY3Rpb24oKXtpZihMIT09dm9pZCAwKXt2YXIgUj1TLnJvdyhmdW5jdGlvbihxLHope3JldHVybiB6LmluZGV4PT09TH0pLmluZGV4KCk7Uy5zZWxlY3QubGFzdCh7cm93OlIsY29sdW1uOjB9KX19fXJldHVybiBTLnJvd3MoKS5yZW1vdmUoKSxmdW5jdGlvbigpe319LGsucHJvdG90eXBlLl9zZXJ2ZXJQb3B1bGF0ZT1mdW5jdGlvbihTKXt2YXIgQixMLFI7dGhpcy5zLnJvd0RhdGEuYmluc1Nob3duPXt9LHRoaXMucy5yb3dEYXRhLmFycmF5RmlsdGVyPVtdLFMudGFibGVMZW5ndGghPT12b2lkIDA/KHRoaXMucy50YWJsZUxlbmd0aD1TLnRhYmxlTGVuZ3RoLHRoaXMucy5yb3dEYXRhLnRvdGFsT3B0aW9ucz10aGlzLnMudGFibGVMZW5ndGgpOih0aGlzLnMudGFibGVMZW5ndGg9PT1udWxsfHx0aGlzLnMuZHQucm93cygpWzBdLmxlbmd0aD50aGlzLnMudGFibGVMZW5ndGgpJiYodGhpcy5zLnRhYmxlTGVuZ3RoPXRoaXMucy5kdC5yb3dzKClbMF0ubGVuZ3RoLHRoaXMucy5yb3dEYXRhLnRvdGFsT3B0aW9ucz10aGlzLnMudGFibGVMZW5ndGgpO3ZhciBxPXRoaXMucy5kdC5jb2x1bW4odGhpcy5zLmluZGV4KS5kYXRhU3JjKCk7aWYoUy5zZWFyY2hQYW5lcy5vcHRpb25zW3FdIT09dm9pZCAwKWZvcih2YXIgej0wLEc9Uy5zZWFyY2hQYW5lcy5vcHRpb25zW3FdO3o8Ry5sZW5ndGg7eisrKXt2YXIgbnQ9R1t6XTt0aGlzLnMucm93RGF0YS5hcnJheUZpbHRlci5wdXNoKHtkaXNwbGF5Om50LmxhYmVsLGZpbHRlcjpudC52YWx1ZSxzaG93bjorbnQuY291bnQsc29ydDpudC5sYWJlbCx0b3RhbDorbnQudG90YWwsdHlwZTpudC5sYWJlbH0pLHRoaXMucy5yb3dEYXRhLmJpbnNTaG93bltudC52YWx1ZV09K250LmNvdW50LHRoaXMucy5yb3dEYXRhLmJpbnNbbnQudmFsdWVdPStudC50b3RhbH12YXIgdHQ9T2JqZWN0LmtleXModGhpcy5zLnJvd0RhdGEuYmlucykubGVuZ3RoLGV0PXRoaXMuX3VuaXF1ZVJhdGlvKHR0LHRoaXMucy50YWJsZUxlbmd0aCk7aWYoIXRoaXMucy5jb2xPcHRzLnNob3cmJnRoaXMucy5kaXNwbGF5ZWQ9PT0hMSYmKCh0aGlzLnMuY29sT3B0cy5zaG93PT09dm9pZCAwJiZ0aGlzLnMuY29sT3B0cy50aHJlc2hvbGQ9PT1udWxsP2V0PnRoaXMuYy50aHJlc2hvbGQ6ZXQ+dGhpcy5zLmNvbE9wdHMudGhyZXNob2xkKXx8dGhpcy5zLmNvbE9wdHMuc2hvdyE9PSEwJiZ0dDw9MSkpe3RoaXMuZG9tLmNvbnRhaW5lci5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuaGlkZGVuKSx0aGlzLnMuZGlzcGxheWVkPSExO3JldHVybn1pZih0aGlzLnMucm93RGF0YS5hcnJheU9yaWdpbmFsPXRoaXMucy5yb3dEYXRhLmFycmF5RmlsdGVyLHRoaXMucy5yb3dEYXRhLmJpbnNPcmlnaW5hbD10aGlzLnMucm93RGF0YS5iaW5zLHRoaXMucy5kaXNwbGF5ZWQ9ITAsdGhpcy5zLmR0UGFuZSl7Zm9yKHZhciB3dD10aGlzLnMuc2VydmVyU2VsZWN0LFN0PXRoaXMuX2VtcHR5UGFuZSgpLFR0PTAsa3Q9dGhpcy5zLnJvd0RhdGEuYXJyYXlGaWx0ZXI7VHQ8a3QubGVuZ3RoO1R0KyspaWYoUj1rdFtUdF0sdGhpcy5fc2hvdWxkQWRkUm93KFIpKXtMPXRoaXMuYWRkUm93KFIuZGlzcGxheSxSLmZpbHRlcixSLnNvcnQsUi50eXBlKTtmb3IodmFyIEx0PTA7THQ8d3QubGVuZ3RoO0x0KyspaWYoQj13dFtMdF0sQi5maWx0ZXI9PT1SLmZpbHRlcil7dGhpcy5zLnNlcnZlclNlbGVjdGluZz0hMCxMLnNlbGVjdCgpLHRoaXMucy5zZXJ2ZXJTZWxlY3Rpbmc9ITEsd3Quc3BsaWNlKEx0LDEpLHRoaXMucy5zZWxlY3Rpb25zLnB1c2goUi5maWx0ZXIpO2JyZWFrfX1mb3IodmFyIEJ0PTAsJHQ9d3Q7QnQ8JHQubGVuZ3RoO0J0Kyspe0I9JHRbQnRdO2Zvcih2YXIgS3Q9MCxEPXRoaXMucy5yb3dEYXRhLmFycmF5T3JpZ2luYWw7S3Q8RC5sZW5ndGg7S3QrKylSPURbS3RdLFIuZmlsdGVyPT09Qi5maWx0ZXImJihMPXRoaXMuYWRkUm93KFIuZGlzcGxheSxSLmZpbHRlcixSLnNvcnQsUi50eXBlKSx0aGlzLnMuc2VydmVyU2VsZWN0aW5nPSEwLEwuc2VsZWN0KCksdGhpcy5zLnNlcnZlclNlbGVjdGluZz0hMSx0aGlzLnMuc2VsZWN0aW9ucy5wdXNoKFIuZmlsdGVyKSl9dGhpcy5zLnNlcnZlclNlbGVjdD10aGlzLnMuZHRQYW5lLnJvd3Moe3NlbGVjdGVkOiEwfSkuZGF0YSgpLnRvQXJyYXkoKSx0aGlzLnMuZHRQYW5lLmRyYXcoKSxTdCgpfX0say5wcm90b3R5cGUudXBkYXRlUm93cz1mdW5jdGlvbigpe2lmKCF0aGlzLnMuZHQucGFnZS5pbmZvKCkuc2VydmVyU2lkZSl7dGhpcy5zLnJvd0RhdGEuYmluc1Nob3duPXt9O2Zvcih2YXIgUz0wLEI9dGhpcy5zLmR0LnJvd3Moe3NlYXJjaDoiYXBwbGllZCJ9KS5pbmRleGVzKCkudG9BcnJheSgpO1M8Qi5sZW5ndGg7UysrKXt2YXIgTD1CW1NdO3RoaXMuX3VwZGF0ZVNob3duKEwsdGhpcy5zLmR0LnNldHRpbmdzKClbMF0sdGhpcy5zLnJvd0RhdGEuYmluc1Nob3duKX19Zm9yKHZhciBSPWZ1bmN0aW9uKHR0KXt0dC5zaG93bj10eXBlb2YgcS5zLnJvd0RhdGEuYmluc1Nob3duW3R0LmZpbHRlcl09PSJudW1iZXIiP3Eucy5yb3dEYXRhLmJpbnNTaG93blt0dC5maWx0ZXJdOjAscS5zLmR0UGFuZS5yb3coZnVuY3Rpb24oZXQsd3Qpe3JldHVybiB3dCYmd3QuaW5kZXg9PT10dC5pbmRleH0pLmRhdGEodHQpfSxxPXRoaXMsej0wLEc9dGhpcy5zLmR0UGFuZS5yb3dzKCkuZGF0YSgpLnRvQXJyYXkoKTt6PEcubGVuZ3RoO3orKyl7dmFyIG50PUdbel07UihudCl9dGhpcy5zLmR0UGFuZS5kcmF3KCksdGhpcy5zLmR0UGFuZS50YWJsZSgpLm5vZGUoKS5wYXJlbnROb2RlLnNjcm9sbFRvcD10aGlzLnMuc2Nyb2xsVG9wfSxrLnByb3RvdHlwZS5fbWFrZVNlbGVjdGlvbj1mdW5jdGlvbigpe30say5wcm90b3R5cGUuX3JlbG9hZFNlbGVjdD1mdW5jdGlvbigpe30say5wcm90b3R5cGUuX3Nob3VsZEFkZFJvdz1mdW5jdGlvbihTKXtyZXR1cm4hMH0say5wcm90b3R5cGUuX3VwZGF0ZVNlbGVjdGlvbj1mdW5jdGlvbigpe3RoaXMucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlJiYhdGhpcy5zLnVwZGF0aW5nJiYhdGhpcy5zLnNlcnZlclNlbGVjdGluZyYmKHRoaXMucy5zZXJ2ZXJTZWxlY3Q9dGhpcy5zLmR0UGFuZS5yb3dzKHtzZWxlY3RlZDohMH0pLmRhdGEoKS50b0FycmF5KCkpfSxrLnByb3RvdHlwZS5fdXBkYXRlU2hvd249ZnVuY3Rpb24oUyxCLEwpe0w9PT12b2lkIDAmJihMPXRoaXMucy5yb3dEYXRhLmJpbnNTaG93bik7dmFyIFI9dHlwZW9mIHRoaXMucy5jb2xPcHRzLm9ydGhvZ29uYWw9PSJzdHJpbmciP3RoaXMucy5jb2xPcHRzLm9ydGhvZ29uYWw6dGhpcy5zLmNvbE9wdHMub3J0aG9nb25hbC5zZWFyY2gscT1CLmZhc3REYXRhP0IuZmFzdERhdGE6ZnVuY3Rpb24od3QsU3QsVHQpe3JldHVybiBCLm9BcGkuX2ZuR2V0Q2VsbERhdGEoQix3dCxTdCxUdCl9LHo9cShTLHRoaXMucy5pbmRleCxSKSxHPWZ1bmN0aW9uKHd0KXtMW3d0XT9MW3d0XSsrOkxbd3RdPTF9O2lmKEFycmF5LmlzQXJyYXkoeikpZm9yKHZhciBudD0wLHR0PXo7bnQ8dHQubGVuZ3RoO250Kyspe3ZhciBldD10dFtudF07RyhldCl9ZWxzZSBHKHopfSxrfShyKSxvPXdpbmRvdyYmd2luZG93Ll9fZXh0ZW5kc3x8ZnVuY3Rpb24oKXt2YXIgdz1mdW5jdGlvbihrLFMpe3JldHVybiB3PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihCLEwpe0IuX19wcm90b19fPUx9fHxmdW5jdGlvbihCLEwpe2Zvcih2YXIgUiBpbiBMKUwuaGFzT3duUHJvcGVydHkoUikmJihCW1JdPUxbUl0pfSx3KGssUyl9O3JldHVybiBmdW5jdGlvbihrLFMpe3coayxTKTtmdW5jdGlvbiBCKCl7dGhpcy5jb25zdHJ1Y3Rvcj1rfWsucHJvdG90eXBlPVM9PT1udWxsP09iamVjdC5jcmVhdGUoUyk6KEIucHJvdG90eXBlPVMucHJvdG90eXBlLG5ldyBCKX19KCksdTtmdW5jdGlvbiBwKHcpe3U9d312YXIgYj1mdW5jdGlvbih3KXtvKGssdyk7ZnVuY3Rpb24gayhTLEIsTCxSLHEpe3ZhciB6PXRoaXMsRz17aTE4bjp7Y291bnRGaWx0ZXJlZDoie3Nob3dufSAoe3RvdGFsfSkifX07cmV0dXJuIHo9dy5jYWxsKHRoaXMsUyx1LmV4dGVuZChHLEIpLEwsUixxKXx8dGhpcyx6fXJldHVybiBrLnByb3RvdHlwZS5fZ2V0TWVzc2FnZT1mdW5jdGlvbihTKXt2YXIgQj10aGlzLnMuZHQuaTE4bigic2VhcmNoUGFuZXMuY291bnQiLHRoaXMuYy5pMThuLmNvdW50KSxMPXRoaXMucy5kdC5pMThuKCJzZWFyY2hQYW5lcy5jb3VudEZpbHRlcmVkIix0aGlzLmMuaTE4bi5jb3VudEZpbHRlcmVkKTtyZXR1cm4odGhpcy5zLmZpbHRlcmluZ0FjdGl2ZT9MOkIpLnJlcGxhY2UoL3t0b3RhbH0vZyxTLnRvdGFsKS5yZXBsYWNlKC97c2hvd259L2csUy5zaG93bil9LGsucHJvdG90eXBlLl9nZXRTaG93bj1mdW5jdGlvbihTKXtyZXR1cm4gdGhpcy5zLnJvd0RhdGEuYmluc1Nob3duJiZ0aGlzLnMucm93RGF0YS5iaW5zU2hvd25bU10/dGhpcy5zLnJvd0RhdGEuYmluc1Nob3duW1NdOjB9LGt9KGkpLGc9d2luZG93JiZ3aW5kb3cuX19leHRlbmRzfHxmdW5jdGlvbigpe3ZhciB3PWZ1bmN0aW9uKGssUyl7cmV0dXJuIHc9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKEIsTCl7Qi5fX3Byb3RvX189TH18fGZ1bmN0aW9uKEIsTCl7Zm9yKHZhciBSIGluIEwpTC5oYXNPd25Qcm9wZXJ0eShSKSYmKEJbUl09TFtSXSl9LHcoayxTKX07cmV0dXJuIGZ1bmN0aW9uKGssUyl7dyhrLFMpO2Z1bmN0aW9uIEIoKXt0aGlzLmNvbnN0cnVjdG9yPWt9ay5wcm90b3R5cGU9Uz09PW51bGw/T2JqZWN0LmNyZWF0ZShTKTooQi5wcm90b3R5cGU9Uy5wcm90b3R5cGUsbmV3IEIpfX0oKSxtO2Z1bmN0aW9uIEModyl7bT13fXZhciB5PWZ1bmN0aW9uKHcpe2coayx3KTtmdW5jdGlvbiBrKFMsQixMLFIscSl7dmFyIHo9dGhpcyxHPXtpMThuOntjb3VudDoie3Nob3dufSJ9fTtyZXR1cm4gej13LmNhbGwodGhpcyxTLG0uZXh0ZW5kKEcsQiksTCxSLHEpfHx0aGlzLHp9cmV0dXJuIGsucHJvdG90eXBlLnVwZGF0ZVJvd3M9ZnVuY3Rpb24oKXt2YXIgUz10aGlzLnMuZHRQYW5lLnJvd3Moe3NlbGVjdGVkOiEwfSkuZGF0YSgpLnRvQXJyYXkoKSxCO2lmKHRoaXMucy5jb2xPcHRzLm9wdGlvbnN8fHRoaXMucy5jdXN0b21QYW5lU2V0dGluZ3MmJnRoaXMucy5jdXN0b21QYW5lU2V0dGluZ3Mub3B0aW9ucyl7dGhpcy5fZ2V0Q29tcGFyaXNvblJvd3MoKTtmb3IodmFyIEw9dGhpcy5zLmR0UGFuZS5yb3dzKCkudG9BcnJheSgpWzBdLFI9MDtSPEwubGVuZ3RoO1IrKyl7dmFyIHE9dGhpcy5zLmR0UGFuZS5yb3coTFtSXSksej1xLmRhdGEoKTtpZih6IT09dm9pZCAwKXtpZih6LnNob3duPT09MCl7cS5yZW1vdmUoKSxMPXRoaXMucy5kdFBhbmUucm93cygpLnRvQXJyYXkoKVswXSxSLS07Y29udGludWV9Zm9yKHZhciBHPTAsbnQ9UztHPG50Lmxlbmd0aDtHKyspaWYoQj1udFtHXSx6LmZpbHRlcj09PUIuZmlsdGVyKXtxLnNlbGVjdCgpLFMuc3BsaWNlKFIsMSksdGhpcy5zLnNlbGVjdGlvbnMucHVzaCh6LmZpbHRlcik7YnJlYWt9fX19ZWxzZXtpZighdGhpcy5zLmR0LnBhZ2UuaW5mbygpLnNlcnZlclNpZGUpe3RoaXMuX2FjdGl2ZVBvcHVsYXRlUGFuZSgpLHRoaXMucy5yb3dEYXRhLmJpbnNTaG93bj17fTtmb3IodmFyIHR0PTAsZXQ9dGhpcy5zLmR0LnJvd3Moe3NlYXJjaDoiYXBwbGllZCJ9KS5pbmRleGVzKCkudG9BcnJheSgpO3R0PGV0Lmxlbmd0aDt0dCsrKXt2YXIgd3Q9ZXRbdHRdO3RoaXMuX3VwZGF0ZVNob3duKHd0LHRoaXMucy5kdC5zZXR0aW5ncygpWzBdLHRoaXMucy5yb3dEYXRhLmJpbnNTaG93bil9fXRoaXMucy5kdFBhbmUucm93cygpLnJlbW92ZSgpO2Zvcih2YXIgU3Q9MCxUdD10aGlzLnMucm93RGF0YS5hcnJheUZpbHRlcjtTdDxUdC5sZW5ndGg7U3QrKyl7dmFyIGt0PVR0W1N0XTtpZihrdC5zaG93biE9PTApZm9yKHZhciBMdD10aGlzLmFkZFJvdyhrdC5kaXNwbGF5LGt0LmZpbHRlcixrdC5zb3J0LGt0LnR5cGUsdm9pZCAwKSxCdD0wO0J0PFMubGVuZ3RoO0J0Kyspe3ZhciAkdD1TW0J0XTtpZigkdC5maWx0ZXI9PT1rdC5maWx0ZXIpe0x0LnNlbGVjdCgpLFMuc3BsaWNlKEJ0LDEpLHRoaXMucy5zZWxlY3Rpb25zLnB1c2goa3QuZmlsdGVyKTticmVha319fWZvcih2YXIgS3Q9MCxEPVM7S3Q8RC5sZW5ndGg7S3QrKyl7Qj1EW0t0XTtmb3IodmFyIHV0PTAsb3Q9dGhpcy5zLnJvd0RhdGEuYXJyYXlPcmlnaW5hbDt1dDxvdC5sZW5ndGg7dXQrKyl7dmFyIFY9b3RbdXRdO2lmKFYuZmlsdGVyPT09Qi5maWx0ZXIpe3ZhciBqPXRoaXMuYWRkUm93KFYuZGlzcGxheSxWLmZpbHRlcixWLnNvcnQsVi50eXBlLHZvaWQgMCk7ai5zZWxlY3QoKSx0aGlzLnMuc2VsZWN0aW9ucy5wdXNoKFYuZmlsdGVyKX19fX10aGlzLnMuZHRQYW5lLmRyYXcoKSx0aGlzLnMuZHRQYW5lLnRhYmxlKCkubm9kZSgpLnBhcmVudE5vZGUuc2Nyb2xsVG9wPXRoaXMucy5zY3JvbGxUb3AsdGhpcy5zLmR0LnBhZ2UuaW5mbygpLnNlcnZlclNpZGV8fHRoaXMucy5kdC5kcmF3KCExKX0say5wcm90b3R5cGUuX2FjdGl2ZVBvcHVsYXRlUGFuZT1mdW5jdGlvbigpe3RoaXMucy5yb3dEYXRhLmFycmF5RmlsdGVyPVtdLHRoaXMucy5yb3dEYXRhLmJpbnM9e307dmFyIFM9dGhpcy5zLmR0LnNldHRpbmdzKClbMF07aWYoIXRoaXMucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlKWZvcih2YXIgQj0wLEw9dGhpcy5zLmR0LnJvd3Moe3NlYXJjaDoiYXBwbGllZCJ9KS5pbmRleGVzKCkudG9BcnJheSgpO0I8TC5sZW5ndGg7QisrKXt2YXIgUj1MW0JdO3RoaXMuX3BvcHVsYXRlUGFuZUFycmF5KFIsdGhpcy5zLnJvd0RhdGEuYXJyYXlGaWx0ZXIsUyl9fSxrLnByb3RvdHlwZS5fZ2V0Q29tcGFyaXNvblJvd3M9ZnVuY3Rpb24oKXt2YXIgUz10aGlzLnMuY29sT3B0cy5vcHRpb25zP3RoaXMucy5jb2xPcHRzLm9wdGlvbnM6dGhpcy5zLmN1c3RvbVBhbmVTZXR0aW5ncyYmdGhpcy5zLmN1c3RvbVBhbmVTZXR0aW5ncy5vcHRpb25zP3RoaXMucy5jdXN0b21QYW5lU2V0dGluZ3Mub3B0aW9uczp2b2lkIDA7aWYoUyE9PXZvaWQgMCl7dmFyIEI9dGhpcy5zLmR0LnJvd3MoKSxMPXRoaXMucy5kdC5yb3dzKHtzZWFyY2g6ImFwcGxpZWQifSksUj1CLmRhdGEoKS50b0FycmF5KCkscT1MLmRhdGEoKS50b0FycmF5KCksej1bXTt0aGlzLnMuZHRQYW5lLmNsZWFyKCksdGhpcy5zLmluZGV4ZXM9W107Zm9yKHZhciBHPTAsbnQ9UztHPG50Lmxlbmd0aDtHKyspe3ZhciB0dD1udFtHXSxldD10dC5sYWJlbCE9PSIiP3R0LmxhYmVsOnRoaXMuZW1wdHlNZXNzYWdlKCksd3Q9e2NsYXNzTmFtZTp0dC5jbGFzc05hbWUsZGlzcGxheTpldCxmaWx0ZXI6dHlwZW9mIHR0LnZhbHVlPT0iZnVuY3Rpb24iP3R0LnZhbHVlOltdLHNob3duOjAsc29ydDpldCx0b3RhbDowLHR5cGU6ZXR9O2lmKHR5cGVvZiB0dC52YWx1ZT09ImZ1bmN0aW9uIil7Zm9yKHZhciBTdD0wO1N0PFIubGVuZ3RoO1N0KyspdHQudmFsdWUuY2FsbCh0aGlzLnMuZHQsUltTdF0sQlswXVtTdF0pJiZ3dC50b3RhbCsrO2Zvcih2YXIgVHQ9MDtUdDxxLmxlbmd0aDtUdCsrKXR0LnZhbHVlLmNhbGwodGhpcy5zLmR0LHFbVHRdLExbMF1bVHRdKSYmd3Quc2hvd24rKzt0eXBlb2Ygd3QuZmlsdGVyIT0iZnVuY3Rpb24iJiZ3dC5maWx0ZXIucHVzaCh0dC5maWx0ZXIpfXoucHVzaCh0aGlzLmFkZFJvdyh3dC5kaXNwbGF5LHd0LmZpbHRlcix3dC5zb3J0LHd0LnR5cGUsd3QuY2xhc3NOYW1lLHd0LnRvdGFsLHd0LnNob3duKSl9cmV0dXJuIHp9fSxrLnByb3RvdHlwZS5fZ2V0TWVzc2FnZT1mdW5jdGlvbihTKXtyZXR1cm4gdGhpcy5zLmR0LmkxOG4oInNlYXJjaFBhbmVzLmNvdW50Iix0aGlzLmMuaTE4bi5jb3VudCkucmVwbGFjZSgve3RvdGFsfS9nLFMudG90YWwpLnJlcGxhY2UoL3tzaG93bn0vZyxTLnNob3duKX0say5wcm90b3R5cGUuX2dldFNob3duPWZ1bmN0aW9uKFMpe3JldHVybiB0aGlzLnMucm93RGF0YS5iaW5zU2hvd24mJnRoaXMucy5yb3dEYXRhLmJpbnNTaG93bltTXT90aGlzLnMucm93RGF0YS5iaW5zU2hvd25bU106MH0say5wcm90b3R5cGUuX3Nob3VsZEFkZFJvdz1mdW5jdGlvbihTKXtyZXR1cm4gUy5zaG93bj4wfSxrfShpKSxUPXdpbmRvdyYmd2luZG93Ll9fZXh0ZW5kc3x8ZnVuY3Rpb24oKXt2YXIgdz1mdW5jdGlvbihrLFMpe3JldHVybiB3PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihCLEwpe0IuX19wcm90b19fPUx9fHxmdW5jdGlvbihCLEwpe2Zvcih2YXIgUiBpbiBMKUwuaGFzT3duUHJvcGVydHkoUikmJihCW1JdPUxbUl0pfSx3KGssUyl9O3JldHVybiBmdW5jdGlvbihrLFMpe3coayxTKTtmdW5jdGlvbiBCKCl7dGhpcy5jb25zdHJ1Y3Rvcj1rfWsucHJvdG90eXBlPVM9PT1udWxsP09iamVjdC5jcmVhdGUoUyk6KEIucHJvdG90eXBlPVMucHJvdG90eXBlLG5ldyBCKX19KCksUDtmdW5jdGlvbiBjKHcpe1A9d312YXIgbD1mdW5jdGlvbih3KXtUKGssdyk7ZnVuY3Rpb24gayhTLEIsTCxSLHEpe3ZhciB6PXRoaXMsRz17aTE4bjp7Y291bnQ6Int0b3RhbH0iLGNvdW50RmlsdGVyZWQ6IntzaG93bn0gKHt0b3RhbH0pIn19O3JldHVybiB6PXcuY2FsbCh0aGlzLFMsUC5leHRlbmQoRyxCKSxMLFIscSl8fHRoaXMsen1yZXR1cm4gay5wcm90b3R5cGUuX2FjdGl2ZVBvcHVsYXRlUGFuZT1mdW5jdGlvbigpe3RoaXMucy5yb3dEYXRhLmFycmF5RmlsdGVyPVtdLHRoaXMucy5yb3dEYXRhLmJpbnNTaG93bj17fTt2YXIgUz10aGlzLnMuZHQuc2V0dGluZ3MoKVswXTtpZighdGhpcy5zLmR0LnBhZ2UuaW5mbygpLnNlcnZlclNpZGUpZm9yKHZhciBCPTAsTD10aGlzLnMuZHQucm93cyh7c2VhcmNoOiJhcHBsaWVkIn0pLmluZGV4ZXMoKS50b0FycmF5KCk7QjxMLmxlbmd0aDtCKyspe3ZhciBSPUxbQl07dGhpcy5fcG9wdWxhdGVQYW5lQXJyYXkoUix0aGlzLnMucm93RGF0YS5hcnJheUZpbHRlcixTLHRoaXMucy5yb3dEYXRhLmJpbnNTaG93bil9fSxrLnByb3RvdHlwZS5fZ2V0TWVzc2FnZT1mdW5jdGlvbihTKXt2YXIgQj10aGlzLnMuZHQuaTE4bigic2VhcmNoUGFuZXMuY291bnQiLHRoaXMuYy5pMThuLmNvdW50KSxMPXRoaXMucy5kdC5pMThuKCJzZWFyY2hQYW5lcy5jb3VudEZpbHRlcmVkIix0aGlzLmMuaTE4bi5jb3VudEZpbHRlcmVkKTtyZXR1cm4odGhpcy5zLmZpbHRlcmluZ0FjdGl2ZT9MOkIpLnJlcGxhY2UoL3t0b3RhbH0vZyxTLnRvdGFsKS5yZXBsYWNlKC97c2hvd259L2csUy5zaG93bil9LGt9KHkpLGgsXztmdW5jdGlvbiBGKHcpe2g9dyxfPXcuZm4uZGF0YVRhYmxlfXZhciBPPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdyhrLFMsQixMKXt2YXIgUj10aGlzO2lmKEI9PT12b2lkIDAmJihCPSExKSxMPT09dm9pZCAwJiYoTD1yKSwhX3x8IV8udmVyc2lvbkNoZWNrfHwhXy52ZXJzaW9uQ2hlY2soIjEuMTAuMCIpKXRocm93IG5ldyBFcnJvcigiU2VhcmNoUGFuZSByZXF1aXJlcyBEYXRhVGFibGVzIDEuMTAgb3IgbmV3ZXIiKTtpZighXy5zZWxlY3QpdGhyb3cgbmV3IEVycm9yKCJTZWFyY2hQYW5lIHJlcXVpcmVzIFNlbGVjdCIpO3ZhciBxPW5ldyBfLkFwaShrKTtpZih0aGlzLmNsYXNzZXM9aC5leHRlbmQoITAse30sdy5jbGFzc2VzKSx0aGlzLmM9aC5leHRlbmQoITAse30sdy5kZWZhdWx0cyxTKSx0aGlzLmRvbT17Y2xlYXJBbGw6aCgnPGJ1dHRvbiB0eXBlPSJidXR0b24iLz4nKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuY2xlYXJBbGwpLmh0bWwocS5pMThuKCJzZWFyY2hQYW5lcy5jbGVhck1lc3NhZ2UiLHRoaXMuYy5pMThuLmNsZWFyTWVzc2FnZSkpLGNvbGxhcHNlQWxsOmgoJzxidXR0b24gdHlwZT0iYnV0dG9uIi8+JykuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmNvbGxhcHNlQWxsKS5odG1sKHEuaTE4bigic2VhcmNoUGFuZXMuY29sbGFwc2VNZXNzYWdlIix0aGlzLmMuaTE4bi5jb2xsYXBzZU1lc3NhZ2UpKSxjb250YWluZXI6aCgiPGRpdi8+IikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnBhbmVzKS5odG1sKHEuaTE4bigic2VhcmNoUGFuZXMubG9hZE1lc3NhZ2UiLHRoaXMuYy5pMThuLmxvYWRNZXNzYWdlKSksZW1wdHlNZXNzYWdlOmgoIjxkaXYvPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5lbXB0eU1lc3NhZ2UpLHBhbmVzOmgoIjxkaXYvPiIpLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5jb250YWluZXIpLHNob3dBbGw6aCgnPGJ1dHRvbiB0eXBlPSJidXR0b24iLz4nKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuc2hvd0FsbCkuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLmRpc2FibGVkQnV0dG9uKS5hdHRyKCJkaXNhYmxlZCIsInRydWUiKS5odG1sKHEuaTE4bigic2VhcmNoUGFuZXMuc2hvd01lc3NhZ2UiLHRoaXMuYy5pMThuLnNob3dNZXNzYWdlKSksdGl0bGU6aCgiPGRpdi8+IikuYWRkQ2xhc3ModGhpcy5jbGFzc2VzLnRpdGxlKSx0aXRsZVJvdzpoKCI8ZGl2Lz4iKS5hZGRDbGFzcyh0aGlzLmNsYXNzZXMudGl0bGVSb3cpfSx0aGlzLnM9e2NvbE9wdHM6W10sZHQ6cSxmaWx0ZXJDb3VudDowLG1pblBhbmVXaWR0aDoyNjAscGFnZTowLHBhZ2luZzohMSxwYWdpbmdTVDohMSxwYW5lQ2xhc3M6TCxwYW5lczpbXSxzZWxlY3Rpb25MaXN0OltdLHNlcnZlckRhdGE6e30sc3RhdGVSZWFkOiExLHVwZGF0aW5nOiExfSwhcS5zZXR0aW5ncygpWzBdLl9zZWFyY2hQYW5lcyl7aWYoaChkb2N1bWVudCkub24oImRyYXcuZHQiLGZ1bmN0aW9uKEcpe1IuZG9tLmNvbnRhaW5lci5maW5kKEcudGFyZ2V0KS5sZW5ndGgmJlIuX3VwZGF0ZUZpbHRlckNvdW50KCl9KSx0aGlzLl9nZXRTdGF0ZSgpLHRoaXMucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlKXt2YXIgej10aGlzLnMuZHQuc2V0dGluZ3MoKVswXTt0aGlzLnMuZHQub24oInByZVhoci5kdHNwcyIsZnVuY3Rpb24oRyxudCx0dCl7aWYoej09PW50KXt0dC5zZWFyY2hQYW5lcz09PXZvaWQgMCYmKHR0LnNlYXJjaFBhbmVzPXt9KSx0dC5zZWFyY2hQYW5lc19udWxsPT09dm9pZCAwJiYodHQuc2VhcmNoUGFuZXNfbnVsbD17fSk7Zm9yKHZhciBldCx3dD0wLFN0PVIucy5zZWxlY3Rpb25MaXN0O3d0PFN0Lmxlbmd0aDt3dCsrKXt2YXIgVHQ9U3Rbd3RdO2V0PVIucy5kdC5jb2x1bW4oVHQuY29sdW1uKS5kYXRhU3JjKCksdHQuc2VhcmNoUGFuZXNbZXRdPT09dm9pZCAwJiYodHQuc2VhcmNoUGFuZXNbZXRdPXt9KSx0dC5zZWFyY2hQYW5lc19udWxsW2V0XT09PXZvaWQgMCYmKHR0LnNlYXJjaFBhbmVzX251bGxbZXRdPXt9KTtmb3IodmFyIGt0PTA7a3Q8VHQucm93cy5sZW5ndGg7a3QrKyl0dC5zZWFyY2hQYW5lc1tldF1ba3RdPVR0LnJvd3Nba3RdLHR0LnNlYXJjaFBhbmVzW2V0XVtrdF09PT1udWxsP3R0LnNlYXJjaFBhbmVzX251bGxbZXRdW2t0XT0hMDp0dC5zZWFyY2hQYW5lc19udWxsW2V0XVtrdF09ITF9Ui5zLnNlbGVjdGlvbkxpc3QubGVuZ3RoPjAmJih0dC5zZWFyY2hQYW5lc0xhc3Q9ZXQpLHR0LnNlYXJjaFBhbmVzX29wdGlvbnM9e2Nhc2NhZGU6Ui5jLmNhc2NhZGVQYW5lcyx2aWV3Q291bnQ6Ui5jLnZpZXdDb3VudCx2aWV3VG90YWw6Ui5jLnZpZXdUb3RhbH19fSl9cmV0dXJuIHRoaXMuX3NldFhIUigpLHEuc2V0dGluZ3MoKVswXS5fc2VhcmNoUGFuZXM9dGhpcyx0aGlzLnMuZHQuc2V0dGluZ3MoKVswXS5fYkluaXRDb21wbGV0ZXx8Qj90aGlzLl9wYW5lRGVjbGFyZShxLGssUyk6cS5vbmUoInByZUluaXQuZHRzcHMiLGZ1bmN0aW9uKCl7Ui5fcGFuZURlY2xhcmUocSxrLFMpfSksdGhpc319cmV0dXJuIHcucHJvdG90eXBlLmNsZWFyU2VsZWN0aW9ucz1mdW5jdGlvbigpe2Zvcih2YXIgayxTPTAsQj10aGlzLnMucGFuZXM7UzxCLmxlbmd0aDtTKyspaz1CW1NdLGsucy5kdFBhbmUmJihrLnMuc2Nyb2xsVG9wPWsucy5kdFBhbmUudGFibGUoKS5ub2RlKCkucGFyZW50Tm9kZS5zY3JvbGxUb3ApO3ZhciBMPXRoaXMuZG9tLmNvbnRhaW5lci5maW5kKCIuIit0aGlzLmNsYXNzZXMuc2VhcmNoLnJlcGxhY2UoL1xzKy9nLCIuIikpO0wuZWFjaChmdW5jdGlvbigpe2godGhpcykudmFsKCIiKS50cmlnZ2VyKCJpbnB1dCIpfSksdGhpcy5zLnNlbGVjdGlvbkxpc3Q9W107Zm9yKHZhciBSPVtdLHE9MCx6PXRoaXMucy5wYW5lcztxPHoubGVuZ3RoO3ErKylrPXpbcV0say5zLmR0UGFuZSYmUi5wdXNoKGsuY2xlYXJQYW5lKCkpO3JldHVybiBSfSx3LnByb3RvdHlwZS5nZXROb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tLmNvbnRhaW5lcn0sdy5wcm90b3R5cGUucmVidWlsZD1mdW5jdGlvbihrLFMpe2s9PT12b2lkIDAmJihrPSExKSxTPT09dm9pZCAwJiYoUz0hMSksdGhpcy5kb20uZW1wdHlNZXNzYWdlLmRldGFjaCgpLGs9PT0hMSYmdGhpcy5kb20ucGFuZXMuZW1wdHkoKTtmb3IodmFyIEI9W10sTD0wLFI9dGhpcy5zLnBhbmVzO0w8Ui5sZW5ndGg7TCsrKXt2YXIgcT1SW0xdOyhrPT09ITF8fHEucy5pbmRleD09PWspJiYocS5jbGVhckRhdGEoKSxxLnJlYnVpbGRQYW5lKHRoaXMucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlP3RoaXMucy5zZXJ2ZXJEYXRhOnZvaWQgMCxTKSx0aGlzLmRvbS5wYW5lcy5hcHBlbmQocS5kb20uY29udGFpbmVyKSxCLnB1c2gocSkpfXJldHVybiB0aGlzLl91cGRhdGVTZWxlY3Rpb24oKSx0aGlzLl91cGRhdGVGaWx0ZXJDb3VudCgpLHRoaXMuX2F0dGFjaFBhbmVDb250YWluZXIoKSx0aGlzLl9pbml0U2VsZWN0aW9uTGlzdGVuZXJzKCExKSx0aGlzLnMuZHQuZHJhdyghUyksdGhpcy5yZXNpemVQYW5lcygpLEIubGVuZ3RoPT09MT9CWzBdOkJ9LHcucHJvdG90eXBlLnJlc2l6ZVBhbmVzPWZ1bmN0aW9uKCl7dmFyIGs7aWYodGhpcy5jLmxheW91dD09PSJhdXRvIil7Zm9yKHZhciBTPWgodGhpcy5zLmR0LnNlYXJjaFBhbmVzLmNvbnRhaW5lcigpKS53aWR0aCgpLEI9TWF0aC5mbG9vcihTL3RoaXMucy5taW5QYW5lV2lkdGgpLEw9MSxSPTAscT1bXSx6PTAsRz10aGlzLnMucGFuZXM7ejxHLmxlbmd0aDt6Kyspaz1HW3pdLGsucy5kaXNwbGF5ZWQmJnEucHVzaChrLnMuaW5kZXgpO3ZhciBudD1xLmxlbmd0aDtpZihCPT09bnQpTD1CO2Vsc2UgZm9yKHZhciB0dD1CO3R0PjE7dHQtLSl7dmFyIGV0PW50JXR0O2lmKGV0PT09MCl7TD10dCxSPTA7YnJlYWt9ZWxzZSBldD5SJiYoTD10dCxSPWV0KX12YXIgd3Q9UiE9PTA/cS5zbGljZShxLmxlbmd0aC1SLHEubGVuZ3RoKTpbXTt0aGlzLnMucGFuZXMuZm9yRWFjaChmdW5jdGlvbihrdCl7a3Qucy5kaXNwbGF5ZWQmJmt0LnJlc2l6ZSgiY29sdW1ucy0iKyh3dC5pbmNsdWRlcyhrdC5zLmluZGV4KT9SOkwpKX0pfWVsc2UgZm9yKHZhciBTdD0wLFR0PXRoaXMucy5wYW5lcztTdDxUdC5sZW5ndGg7U3QrKylrPVR0W1N0XSxrLmFkanVzdFRvcFJvdygpO3JldHVybiB0aGlzfSx3LnByb3RvdHlwZS5faW5pdFNlbGVjdGlvbkxpc3RlbmVycz1mdW5jdGlvbihrKXt9LHcucHJvdG90eXBlLl9zZXJ2ZXJUb3RhbHM9ZnVuY3Rpb24oKXt9LHcucHJvdG90eXBlLl9zZXRYSFI9ZnVuY3Rpb24oKXt2YXIgaz10aGlzLFM9dGhpcy5zLmR0LnNldHRpbmdzKClbMF0sQj1mdW5jdGlvbihMKXtMJiZMLnNlYXJjaFBhbmVzJiZMLnNlYXJjaFBhbmVzLm9wdGlvbnMmJihrLnMuc2VydmVyRGF0YT1MLGsucy5zZXJ2ZXJEYXRhLnRhYmxlTGVuZ3RoPUwucmVjb3Jkc1RvdGFsLGsuX3NlcnZlclRvdGFscygpKX07dGhpcy5zLmR0Lm9uKCJ4aHIuZHRzcHMiLGZ1bmN0aW9uKEwsUixxKXtTPT09UiYmQihxKX0pLEIodGhpcy5zLmR0LmFqYXguanNvbigpKX0sdy5wcm90b3R5cGUuX3N0YXRlTG9hZExpc3RlbmVyPWZ1bmN0aW9uKCl7dmFyIGs9dGhpcyxTPXRoaXMucy5kdC5zZXR0aW5ncygpWzBdO3RoaXMucy5kdC5vbigic3RhdGVMb2FkUGFyYW1zLmR0c3BzIixmdW5jdGlvbihCLEwsUil7aWYoIShSLnNlYXJjaFBhbmVzPT09dm9pZCAwfHxMIT09Uykpe2lmKGsuY2xlYXJTZWxlY3Rpb25zKCksay5zLnNlbGVjdGlvbkxpc3Q9Ui5zZWFyY2hQYW5lcy5zZWxlY3Rpb25MaXN0P1Iuc2VhcmNoUGFuZXMuc2VsZWN0aW9uTGlzdDpbXSxSLnNlYXJjaFBhbmVzLnBhbmVzKWZvcih2YXIgcT0wLHo9Ui5zZWFyY2hQYW5lcy5wYW5lcztxPHoubGVuZ3RoO3ErKylmb3IodmFyIEc9eltxXSxudD0wLHR0PWsucy5wYW5lcztudDx0dC5sZW5ndGg7bnQrKyl7dmFyIGV0PXR0W250XTtHLmlkPT09ZXQucy5pbmRleCYmZXQucy5kdFBhbmUmJihldC5kb20uc2VhcmNoQm94LnZhbChHLnNlYXJjaFRlcm0pLGV0LnMuZHRQYW5lLm9yZGVyKEcub3JkZXIpKX1rLl9tYWtlU2VsZWN0aW9ucyhrLnMuc2VsZWN0aW9uTGlzdCl9fSl9LHcucHJvdG90eXBlLl91cGRhdGVTZWxlY3Rpb249ZnVuY3Rpb24oKXt0aGlzLnMuc2VsZWN0aW9uTGlzdD1bXTtmb3IodmFyIGs9MCxTPXRoaXMucy5wYW5lcztrPFMubGVuZ3RoO2srKyl7dmFyIEI9U1trXTtpZihCLnMuZHRQYW5lKXt2YXIgTD1CLnMuZHRQYW5lLnJvd3Moe3NlbGVjdGVkOiEwfSkuZGF0YSgpLnRvQXJyYXkoKS5tYXAoZnVuY3Rpb24oUil7cmV0dXJuIFIuZmlsdGVyfSk7TC5sZW5ndGgmJnRoaXMucy5zZWxlY3Rpb25MaXN0LnB1c2goe2NvbHVtbjpCLnMuaW5kZXgscm93czpMfSl9fX0sdy5wcm90b3R5cGUuX2F0dGFjaD1mdW5jdGlvbigpe3ZhciBrPXRoaXM7dGhpcy5kb20udGl0bGVSb3cucmVtb3ZlQ2xhc3ModGhpcy5jbGFzc2VzLmhpZGUpLmRldGFjaCgpLmFwcGVuZCh0aGlzLmRvbS50aXRsZSksdGhpcy5jLmNsZWFyJiZ0aGlzLmRvbS5jbGVhckFsbC5hcHBlbmRUbyh0aGlzLmRvbS50aXRsZVJvdykub2ZmKCJjbGljay5kdHNwcyIpLm9uKCJjbGljay5kdHNwcyIsZnVuY3Rpb24oKXtyZXR1cm4gay5jbGVhclNlbGVjdGlvbnMoKX0pLHRoaXMuYy5jb2xsYXBzZSYmKHRoaXMuZG9tLnNob3dBbGwuYXBwZW5kVG8odGhpcy5kb20udGl0bGVSb3cpLHRoaXMuZG9tLmNvbGxhcHNlQWxsLmFwcGVuZFRvKHRoaXMuZG9tLnRpdGxlUm93KSx0aGlzLl9zZXRDb2xsYXBzZUxpc3RlbmVyKCkpO2Zvcih2YXIgUz0wLEI9dGhpcy5zLnBhbmVzO1M8Qi5sZW5ndGg7UysrKXt2YXIgTD1CW1NdO3RoaXMuZG9tLnBhbmVzLmFwcGVuZChMLmRvbS5jb250YWluZXIpfXRoaXMuZG9tLmNvbnRhaW5lci50ZXh0KCIiKS5yZW1vdmVDbGFzcyh0aGlzLmNsYXNzZXMuaGlkZSkuYXBwZW5kKHRoaXMuZG9tLnRpdGxlUm93KS5hcHBlbmQodGhpcy5kb20ucGFuZXMpLHRoaXMucy5wYW5lcy5mb3JFYWNoKGZ1bmN0aW9uKFIpe3JldHVybiBSLnNldExpc3RlbmVycygpfSksaCgiZGl2LiIrdGhpcy5jbGFzc2VzLmNvbnRhaW5lcikubGVuZ3RoPT09MCYmdGhpcy5kb20uY29udGFpbmVyLnByZXBlbmRUbyh0aGlzLnMuZHQpfSx3LnByb3RvdHlwZS5fYXR0YWNoTWVzc2FnZT1mdW5jdGlvbigpe3ZhciBrO3RyeXtrPXRoaXMucy5kdC5pMThuKCJzZWFyY2hQYW5lcy5lbXB0eVBhbmVzIix0aGlzLmMuaTE4bi5lbXB0eVBhbmVzKX1jYXRjaHtrPW51bGx9aWYoaz09PW51bGwpe3RoaXMuZG9tLmNvbnRhaW5lci5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuaGlkZSksdGhpcy5kb20udGl0bGVSb3cucmVtb3ZlQ2xhc3ModGhpcy5jbGFzc2VzLmhpZGUpO3JldHVybn10aGlzLmRvbS5jb250YWluZXIucmVtb3ZlQ2xhc3ModGhpcy5jbGFzc2VzLmhpZGUpLHRoaXMuZG9tLnRpdGxlUm93LmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5oaWRlKSx0aGlzLmRvbS5lbXB0eU1lc3NhZ2UuaHRtbChrKS5hcHBlbmRUbyh0aGlzLmRvbS5jb250YWluZXIpfSx3LnByb3RvdHlwZS5fYXR0YWNoUGFuZUNvbnRhaW5lcj1mdW5jdGlvbigpe2Zvcih2YXIgaz0wLFM9dGhpcy5zLnBhbmVzO2s8Uy5sZW5ndGg7aysrKXt2YXIgQj1TW2tdO2lmKEIucy5kaXNwbGF5ZWQ9PT0hMCl7dGhpcy5fYXR0YWNoKCk7cmV0dXJufX10aGlzLl9hdHRhY2hNZXNzYWdlKCl9LHcucHJvdG90eXBlLl9jaGVja0NvbGxhcHNlPWZ1bmN0aW9uKCl7Zm9yKHZhciBrPSEwLFM9ITAsQj0wLEw9dGhpcy5zLnBhbmVzO0I8TC5sZW5ndGg7QisrKXt2YXIgUj1MW0JdO1Iucy5kaXNwbGF5ZWQmJihSLmRvbS5jb2xsYXBzZUJ1dHRvbi5oYXNDbGFzcyhSLmNsYXNzZXMucm90YXRlZCk/KHRoaXMuZG9tLnNob3dBbGwucmVtb3ZlQ2xhc3ModGhpcy5jbGFzc2VzLmRpc2FibGVkQnV0dG9uKS5yZW1vdmVBdHRyKCJkaXNhYmxlZCIpLFM9ITEpOih0aGlzLmRvbS5jb2xsYXBzZUFsbC5yZW1vdmVDbGFzcyh0aGlzLmNsYXNzZXMuZGlzYWJsZWRCdXR0b24pLnJlbW92ZUF0dHIoImRpc2FibGVkIiksaz0hMSkpfWsmJnRoaXMuZG9tLmNvbGxhcHNlQWxsLmFkZENsYXNzKHRoaXMuY2xhc3Nlcy5kaXNhYmxlZEJ1dHRvbikuYXR0cigiZGlzYWJsZWQiLCJ0cnVlIiksUyYmdGhpcy5kb20uc2hvd0FsbC5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuZGlzYWJsZWRCdXR0b24pLmF0dHIoImRpc2FibGVkIiwidHJ1ZSIpfSx3LnByb3RvdHlwZS5fY2hlY2tNZXNzYWdlPWZ1bmN0aW9uKCl7Zm9yKHZhciBrPTAsUz10aGlzLnMucGFuZXM7azxTLmxlbmd0aDtrKyspe3ZhciBCPVNba107aWYoQi5zLmRpc3BsYXllZD09PSEwKXt0aGlzLmRvbS5lbXB0eU1lc3NhZ2UuZGV0YWNoKCksdGhpcy5kb20udGl0bGVSb3cucmVtb3ZlQ2xhc3ModGhpcy5jbGFzc2VzLmhpZGUpO3JldHVybn19dGhpcy5fYXR0YWNoTWVzc2FnZSgpfSx3LnByb3RvdHlwZS5fY29sbGFwc2VBbGw9ZnVuY3Rpb24oKXtmb3IodmFyIGs9MCxTPXRoaXMucy5wYW5lcztrPFMubGVuZ3RoO2srKyl7dmFyIEI9U1trXTtCLmNvbGxhcHNlKCl9fSx3LnByb3RvdHlwZS5fZmluZFBhbmU9ZnVuY3Rpb24oayl7Zm9yKHZhciBTPTAsQj10aGlzLnMucGFuZXM7UzxCLmxlbmd0aDtTKyspe3ZhciBMPUJbU107aWYoaz09PUwucy5uYW1lKXJldHVybiBMfX0sdy5wcm90b3R5cGUuX2dldFN0YXRlPWZ1bmN0aW9uKCl7dmFyIGs9dGhpcy5zLmR0LnN0YXRlLmxvYWRlZCgpO2smJmsuc2VhcmNoUGFuZXMmJmsuc2VhcmNoUGFuZXMuc2VsZWN0aW9uTGlzdCYmKHRoaXMucy5zZWxlY3Rpb25MaXN0PWsuc2VhcmNoUGFuZXMuc2VsZWN0aW9uTGlzdCl9LHcucHJvdG90eXBlLl9tYWtlU2VsZWN0aW9ucz1mdW5jdGlvbihrKXtmb3IodmFyIFM9MCxCPWs7UzxCLmxlbmd0aDtTKyspe2Zvcih2YXIgTD1CW1NdLFI9dm9pZCAwLHE9MCx6PXRoaXMucy5wYW5lcztxPHoubGVuZ3RoO3ErKyl7dmFyIEc9eltxXTtpZihHLnMuaW5kZXg9PT1MLmNvbHVtbil7Uj1HO2JyZWFrfX1pZihSJiZSLnMuZHRQYW5lKXtmb3IodmFyIG50PTA7bnQ8Ui5zLmR0UGFuZS5yb3dzKCkuZGF0YSgpLnRvQXJyYXkoKS5sZW5ndGg7bnQrKylMLnJvd3MuaW5jbHVkZXModHlwZW9mIFIucy5kdFBhbmUucm93KG50KS5kYXRhKCkuZmlsdGVyPT0iZnVuY3Rpb24iP1Iucy5kdFBhbmUuY2VsbChudCwwKS5kYXRhKCk6Ui5zLmR0UGFuZS5yb3cobnQpLmRhdGEoKS5maWx0ZXIpJiZSLnMuZHRQYW5lLnJvdyhudCkuc2VsZWN0KCk7Ui51cGRhdGVUYWJsZSgpfX19LHcucHJvdG90eXBlLl9wYW5lRGVjbGFyZT1mdW5jdGlvbihrLFMsQil7dmFyIEw9dGhpcztrLmNvbHVtbnModGhpcy5jLmNvbHVtbnMubGVuZ3RoPjA/dGhpcy5jLmNvbHVtbnM6dm9pZCAwKS5lcSgwKS5lYWNoKGZ1bmN0aW9uKEcpe0wucy5wYW5lcy5wdXNoKG5ldyBMLnMucGFuZUNsYXNzKFMsQixHLEwuZG9tLnBhbmVzKSl9KTtmb3IodmFyIFI9ay5jb2x1bW5zKCkuZXEoMCkudG9BcnJheSgpLmxlbmd0aCxxPTA7cTx0aGlzLmMucGFuZXMubGVuZ3RoO3ErKyl7dmFyIHo9UitxO3RoaXMucy5wYW5lcy5wdXNoKG5ldyB0aGlzLnMucGFuZUNsYXNzKFMsQix6LHRoaXMuZG9tLnBhbmVzLHRoaXMuYy5wYW5lc1txXSkpfXRoaXMuYy5vcmRlci5sZW5ndGg+MCYmKHRoaXMucy5wYW5lcz10aGlzLmMub3JkZXIubWFwKGZ1bmN0aW9uKEcpe3JldHVybiBMLl9maW5kUGFuZShHKX0pKSx0aGlzLnMuZHQuc2V0dGluZ3MoKVswXS5fYkluaXRDb21wbGV0ZT90aGlzLl9zdGFydHVwKGspOl8udmVyc2lvbkNoZWNrKCIyIik/dGhpcy5zLmR0LnNldHRpbmdzKClbMF0uYW9Jbml0Q29tcGxldGUucHVzaChmdW5jdGlvbigpe3JldHVybiBMLl9zdGFydHVwKGspfSk6dGhpcy5zLmR0LnNldHRpbmdzKClbMF0uYW9Jbml0Q29tcGxldGUucHVzaCh7Zm46ZnVuY3Rpb24oKXtyZXR1cm4gTC5fc3RhcnR1cChrKX19KX0sdy5wcm90b3R5cGUuX3NldENvbGxhcHNlTGlzdGVuZXI9ZnVuY3Rpb24oKXt2YXIgaz10aGlzO3RoaXMuZG9tLmNvbGxhcHNlQWxsLm9mZigiY2xpY2suZHRzcHMiKS5vbigiY2xpY2suZHRzcHMiLGZ1bmN0aW9uKCl7ay5fY29sbGFwc2VBbGwoKSxrLmRvbS5jb2xsYXBzZUFsbC5hZGRDbGFzcyhrLmNsYXNzZXMuZGlzYWJsZWRCdXR0b24pLmF0dHIoImRpc2FibGVkIiwidHJ1ZSIpLGsuZG9tLnNob3dBbGwucmVtb3ZlQ2xhc3Moay5jbGFzc2VzLmRpc2FibGVkQnV0dG9uKS5yZW1vdmVBdHRyKCJkaXNhYmxlZCIpLGsucy5kdC5zdGF0ZS5zYXZlKCl9KSx0aGlzLmRvbS5zaG93QWxsLm9mZigiY2xpY2suZHRzcHMiKS5vbigiY2xpY2suZHRzcHMiLGZ1bmN0aW9uKCl7ay5fc2hvd0FsbCgpLGsuZG9tLnNob3dBbGwuYWRkQ2xhc3Moay5jbGFzc2VzLmRpc2FibGVkQnV0dG9uKS5hdHRyKCJkaXNhYmxlZCIsInRydWUiKSxrLmRvbS5jb2xsYXBzZUFsbC5yZW1vdmVDbGFzcyhrLmNsYXNzZXMuZGlzYWJsZWRCdXR0b24pLnJlbW92ZUF0dHIoImRpc2FibGVkIiksay5zLmR0LnN0YXRlLnNhdmUoKX0pO2Zvcih2YXIgUz0wLEI9dGhpcy5zLnBhbmVzO1M8Qi5sZW5ndGg7UysrKXt2YXIgTD1CW1NdO0wuZG9tLnRvcFJvdy5vZmYoImNvbGxhcHNlLmR0c3BzIikub24oImNvbGxhcHNlLmR0c3BzIixmdW5jdGlvbigpe3JldHVybiBrLl9jaGVja0NvbGxhcHNlKCl9KX10aGlzLl9jaGVja0NvbGxhcHNlKCl9LHcucHJvdG90eXBlLl9zaG93QWxsPWZ1bmN0aW9uKCl7Zm9yKHZhciBrPTAsUz10aGlzLnMucGFuZXM7azxTLmxlbmd0aDtrKyspe3ZhciBCPVNba107Qi5zaG93KCl9fSx3LnByb3RvdHlwZS5fc3RhcnR1cD1mdW5jdGlvbihrKXt2YXIgUz10aGlzO3RoaXMuX2F0dGFjaCgpLHRoaXMuZG9tLnBhbmVzLmVtcHR5KCk7Zm9yKHZhciBCPXRoaXMucy5kdC5zZXR0aW5ncygpWzBdLEw9MCxSPXRoaXMucy5wYW5lcztMPFIubGVuZ3RoO0wrKyl7dmFyIHE9UltMXTtxLnJlYnVpbGRQYW5lKE9iamVjdC5rZXlzKHRoaXMucy5zZXJ2ZXJEYXRhKS5sZW5ndGg+MD90aGlzLnMuc2VydmVyRGF0YTp2b2lkIDApLHRoaXMuZG9tLnBhbmVzLmFwcGVuZChxLmRvbS5jb250YWluZXIpfXRoaXMuYy5sYXlvdXQ9PT0iYXV0byImJnRoaXMucmVzaXplUGFuZXMoKTt2YXIgej10aGlzLnMuZHQuc3RhdGUubG9hZGVkKCk7IXRoaXMucy5zdGF0ZVJlYWQmJnomJnRoaXMucy5kdC5wYWdlKHouc3RhcnQvdGhpcy5zLmR0LnBhZ2UubGVuKCkpLmRyYXcoInBhZ2UiKSx0aGlzLnMuc3RhdGVSZWFkPSEwLHRoaXMuX2NoZWNrTWVzc2FnZSgpLGsub24oInByZURyYXcuZHRzcHMiLGZ1bmN0aW9uKCl7IVMucy51cGRhdGluZyYmIVMucy5wYWdpbmcmJihTLl91cGRhdGVGaWx0ZXJDb3VudCgpLFMuX3VwZGF0ZVNlbGVjdGlvbigpKSxTLnMucGFnaW5nPSExfSksaCh3aW5kb3cpLm9uKCJyZXNpemUuZHRzcHMiLF8udXRpbC50aHJvdHRsZShmdW5jdGlvbigpe3JldHVybiBTLnJlc2l6ZVBhbmVzKCl9KSksdGhpcy5zLmR0Lm9uKCJzdGF0ZVNhdmVQYXJhbXMuZHRzcHMiLGZ1bmN0aW9uKG50LHR0LGV0KXt0dD09PUImJihldC5zZWFyY2hQYW5lcz09PXZvaWQgMCYmKGV0LnNlYXJjaFBhbmVzPXt9KSxldC5zZWFyY2hQYW5lcy5zZWxlY3Rpb25MaXN0PVMucy5zZWxlY3Rpb25MaXN0KX0pLHRoaXMuX3N0YXRlTG9hZExpc3RlbmVyKCksay5vZmYoInBhZ2UuZHRzcHMgcGFnZS1uYy5kdHNwcyIpLm9uKCJwYWdlLmR0c3BzIHBhZ2UtbmMuZHRzcHMiLGZ1bmN0aW9uKG50LHR0KXtTLnMucGFnaW5nPSEwLFMucy5wYWdpbmdTVD0hMCxTLnMucGFnZT1TLnMuZHQucGFnZSgpfSksdGhpcy5zLmR0LnBhZ2UuaW5mbygpLnNlcnZlclNpZGU/ay5vZmYoInByZVhoci5kdHNwcyIpLm9uKCJwcmVYaHIuZHRzcHMiLGZ1bmN0aW9uKG50LHR0LGV0KXtpZih0dD09PUIpe2V0LnNlYXJjaFBhbmVzfHwoZXQuc2VhcmNoUGFuZXM9e30pLGV0LnNlYXJjaFBhbmVzX251bGx8fChldC5zZWFyY2hQYW5lc19udWxsPXt9KTtmb3IodmFyIHd0PTAsU3Q9MCxUdD1TLnMucGFuZXM7U3Q8VHQubGVuZ3RoO1N0Kyspe3ZhciBrdD1UdFtTdF0sTHQ9Uy5zLmR0LmNvbHVtbihrdC5zLmluZGV4KS5kYXRhU3JjKCk7aWYoZXQuc2VhcmNoUGFuZXNbTHRdfHwoZXQuc2VhcmNoUGFuZXNbTHRdPXt9KSxldC5zZWFyY2hQYW5lc19udWxsW0x0XXx8KGV0LnNlYXJjaFBhbmVzX251bGxbTHRdPXt9KSxrdC5zLmR0UGFuZSlmb3IodmFyIEJ0PWt0LnMuZHRQYW5lLnJvd3Moe3NlbGVjdGVkOiEwfSkuZGF0YSgpLnRvQXJyYXkoKSwkdD0wOyR0PEJ0Lmxlbmd0aDskdCsrKWV0LnNlYXJjaFBhbmVzW0x0XVskdF09QnRbJHRdLmZpbHRlcixldC5zZWFyY2hQYW5lc1tMdF1bJHRdP2V0LnNlYXJjaFBhbmVzX251bGxbTHRdWyR0XT0hMTpldC5zZWFyY2hQYW5lc19udWxsW0x0XVskdF09ITAsd3QrK313dD4wJiYod3QhPT1TLnMuZmlsdGVyQ291bnQ/KGV0LnN0YXJ0PTAsUy5zLnBhZ2U9MCk6ZXQuc3RhcnQ9Uy5zLnBhZ2UqUy5zLmR0LnBhZ2UubGVuKCksUy5zLmR0LnBhZ2UoUy5zLnBhZ2UpLFMucy5maWx0ZXJDb3VudD13dCksUy5zLnNlbGVjdGlvbkxpc3QubGVuZ3RoPjAmJihldC5zZWFyY2hQYW5lc0xhc3Q9Uy5zLmR0LmNvbHVtbihTLnMuc2VsZWN0aW9uTGlzdFtTLnMuc2VsZWN0aW9uTGlzdC5sZW5ndGgtMV0uY29sdW1uKS5kYXRhU3JjKCkpLGV0LnNlYXJjaFBhbmVzX29wdGlvbnM9e2Nhc2NhZGU6Uy5jLmNhc2NhZGVQYW5lcyx2aWV3Q291bnQ6Uy5jLnZpZXdDb3VudCx2aWV3VG90YWw6Uy5jLnZpZXdUb3RhbH19fSk6ay5vbigicHJlWGhyLmR0c3BzIixmdW5jdGlvbigpe3JldHVybiBTLnMucGFuZXMuZm9yRWFjaChmdW5jdGlvbihudCl7cmV0dXJuIG50LmNsZWFyRGF0YSgpfSl9KSx0aGlzLnMuZHQub24oInhoci5kdHNwcyIsZnVuY3Rpb24obnQsdHQpe2lmKHR0Lm5UYWJsZT09PVMucy5kdC50YWJsZSgpLm5vZGUoKSYmIVMucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlKXt2YXIgZXQ9ITE7Uy5zLmR0Lm9uZSgicHJlRHJhdy5kdHNwcyIsZnVuY3Rpb24oKXtpZighZXQpe3ZhciB3dD1TLnMuZHQucGFnZSgpO2V0PSEwLFMucy51cGRhdGluZz0hMCxTLmRvbS5wYW5lcy5lbXB0eSgpO2Zvcih2YXIgU3Q9MCxUdD1TLnMucGFuZXM7U3Q8VHQubGVuZ3RoO1N0Kyspe3ZhciBrdD1UdFtTdF07a3QuY2xlYXJEYXRhKCksa3QucmVidWlsZFBhbmUodm9pZCAwLCEwKSxTLmRvbS5wYW5lcy5hcHBlbmQoa3QuZG9tLmNvbnRhaW5lcil9Uy5zLmR0LnBhZ2UuaW5mbygpLnNlcnZlclNpZGV8fFMucy5kdC5kcmF3KCksUy5zLnVwZGF0aW5nPSExLFMuX3VwZGF0ZVNlbGVjdGlvbigpLFMuX2NoZWNrTWVzc2FnZSgpLFMucy5kdC5vbmUoImRyYXcuZHRzcHMiLGZ1bmN0aW9uKCl7Uy5zLnVwZGF0aW5nPSEwLFMucy5kdC5wYWdlKHd0KS5kcmF3KCExKSxTLnMudXBkYXRpbmc9ITF9KX19KX19KTt2YXIgRz10aGlzLmMucHJlU2VsZWN0O3omJnouc2VhcmNoUGFuZXMmJnouc2VhcmNoUGFuZXMuc2VsZWN0aW9uTGlzdCYmKEc9ei5zZWFyY2hQYW5lcy5zZWxlY3Rpb25MaXN0KSx0aGlzLl9tYWtlU2VsZWN0aW9ucyhHKSx0aGlzLl91cGRhdGVGaWx0ZXJDb3VudCgpLGsub24oImRlc3Ryb3kuZHRzcHMiLGZ1bmN0aW9uKG50LHR0KXtpZih0dD09PUIpe2Zvcih2YXIgZXQ9MCx3dD1TLnMucGFuZXM7ZXQ8d3QubGVuZ3RoO2V0Kyspe3ZhciBTdD13dFtldF07U3QuZGVzdHJveSgpfWsub2ZmKCIuZHRzcHMiKSxTLmRvbS5zaG93QWxsLm9mZigiLmR0c3BzIiksUy5kb20uY2xlYXJBbGwub2ZmKCIuZHRzcHMiKSxTLmRvbS5jb2xsYXBzZUFsbC5vZmYoIi5kdHNwcyIpLGgoay50YWJsZSgpLm5vZGUoKSkub2ZmKCIuZHRzcHMiKSxTLmRvbS5jb250YWluZXIuZGV0YWNoKCksUy5jbGVhclNlbGVjdGlvbnMoKX19KSx0aGlzLmMuY29sbGFwc2UmJnRoaXMuX3NldENvbGxhcHNlTGlzdGVuZXIoKSx0aGlzLmMuY2xlYXImJnRoaXMuZG9tLmNsZWFyQWxsLm9mZigiY2xpY2suZHRzcHMiKS5vbigiY2xpY2suZHRzcHMiLGZ1bmN0aW9uKCl7cmV0dXJuIFMuY2xlYXJTZWxlY3Rpb25zKCl9KSxCLl9zZWFyY2hQYW5lcz10aGlzLHRoaXMucy5kdC5zdGF0ZS5zYXZlKCl9LHcucHJvdG90eXBlLl91cGRhdGVGaWx0ZXJDb3VudD1mdW5jdGlvbigpe2Zvcih2YXIgaz0wLFM9MCxCPTAsTD10aGlzLnMucGFuZXM7QjxMLmxlbmd0aDtCKyspe3ZhciBSPUxbQl07Ui5zLmR0UGFuZSYmKGsrPVIuZ2V0UGFuZUNvdW50KCksUi5zLmR0UGFuZS5zZWFyY2goKSYmUysrKX10aGlzLmRvbS50aXRsZS5odG1sKHRoaXMucy5kdC5pMThuKCJzZWFyY2hQYW5lcy50aXRsZSIsdGhpcy5jLmkxOG4udGl0bGUsaykpLHRoaXMuYy5maWx0ZXJDaGFuZ2VkJiZ0eXBlb2YgdGhpcy5jLmZpbHRlckNoYW5nZWQ9PSJmdW5jdGlvbiImJnRoaXMuYy5maWx0ZXJDaGFuZ2VkLmNhbGwodGhpcy5zLmR0LGspLGs9PT0wJiZTPT09MD90aGlzLmRvbS5jbGVhckFsbC5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuZGlzYWJsZWRCdXR0b24pLmF0dHIoImRpc2FibGVkIiwidHJ1ZSIpOnRoaXMuZG9tLmNsZWFyQWxsLnJlbW92ZUNsYXNzKHRoaXMuY2xhc3Nlcy5kaXNhYmxlZEJ1dHRvbikucmVtb3ZlQXR0cigiZGlzYWJsZWQiKX0sdy52ZXJzaW9uPSIyLjMuMiIsdy5jbGFzc2VzPXtjbGVhcjoiZHRzcC1jbGVhciIsY2xlYXJBbGw6ImR0c3AtY2xlYXJBbGwiLGNvbGxhcHNlQWxsOiJkdHNwLWNvbGxhcHNlQWxsIixjb250YWluZXI6ImR0c3Atc2VhcmNoUGFuZXMiLGRpc2FibGVkQnV0dG9uOiJkdHNwLWRpc2FibGVkQnV0dG9uIixlbXB0eU1lc3NhZ2U6ImR0c3AtZW1wdHlNZXNzYWdlIixoaWRlOiJkdHNwLWhpZGRlbiIscGFuZXM6ImR0c3AtcGFuZXNDb250YWluZXIiLHNlYXJjaDoiZHRzcC1zZWFyY2giLHNob3dBbGw6ImR0c3Atc2hvd0FsbCIsdGl0bGU6ImR0c3AtdGl0bGUiLHRpdGxlUm93OiJkdHNwLXRpdGxlUm93In0sdy5kZWZhdWx0cz17Y2FzY2FkZVBhbmVzOiExLGNsZWFyOiEwLGNvbGxhcHNlOiEwLGNvbHVtbnM6W10sY29udGFpbmVyOmZ1bmN0aW9uKGspe3JldHVybiBrLnRhYmxlKCkuY29udGFpbmVyKCl9LGZpbHRlckNoYW5nZWQ6dm9pZCAwLGkxOG46e2NsZWFyTWVzc2FnZToiQ2xlYXIgQWxsIixjbGVhclBhbmU6IiZ0aW1lczsiLGNvbGxhcHNlOnswOiJTZWFyY2hQYW5lcyIsXzoiU2VhcmNoUGFuZXMgKCVkKSJ9LGNvbGxhcHNlTWVzc2FnZToiQ29sbGFwc2UgQWxsIixjb3VudDoie3RvdGFsfSIsZW1wdHlNZXNzYWdlOiI8ZW0+Tm8gZGF0YTwvZW0+IixlbXB0eVBhbmVzOiJObyBTZWFyY2hQYW5lcyIsbG9hZE1lc3NhZ2U6IkxvYWRpbmcgU2VhcmNoIFBhbmVzLi4uIixzaG93TWVzc2FnZToiU2hvdyBBbGwiLHRpdGxlOiJGaWx0ZXJzIEFjdGl2ZSAtICVkIn0sbGF5b3V0OiJhdXRvIixvcmRlcjpbXSxwYW5lczpbXSxwcmVTZWxlY3Q6W10sdmlld0NvdW50OiEwLHZpZXdUb3RhbDohMX0sd30oKSxmPXdpbmRvdyYmd2luZG93Ll9fZXh0ZW5kc3x8ZnVuY3Rpb24oKXt2YXIgdz1mdW5jdGlvbihrLFMpe3JldHVybiB3PU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihCLEwpe0IuX19wcm90b19fPUx9fHxmdW5jdGlvbihCLEwpe2Zvcih2YXIgUiBpbiBMKUwuaGFzT3duUHJvcGVydHkoUikmJihCW1JdPUxbUl0pfSx3KGssUyl9O3JldHVybiBmdW5jdGlvbihrLFMpe3coayxTKTtmdW5jdGlvbiBCKCl7dGhpcy5jb25zdHJ1Y3Rvcj1rfWsucHJvdG90eXBlPVM9PT1udWxsP09iamVjdC5jcmVhdGUoUyk6KEIucHJvdG90eXBlPVMucHJvdG90eXBlLG5ldyBCKX19KCksVT1mdW5jdGlvbih3KXtmKGssdyk7ZnVuY3Rpb24gayhTLEIsTCl7TD09PXZvaWQgMCYmKEw9ITEpO3ZhciBSPXRoaXMscTtCLmNhc2NhZGVQYW5lcyYmQi52aWV3VG90YWw/cT1sOkIuY2FzY2FkZVBhbmVzP3E9eTpCLnZpZXdUb3RhbCYmKHE9YiksUj13LmNhbGwodGhpcyxTLEIsTCxxKXx8dGhpczt2YXIgej1SLnMuZHQsRz16LnN0YXRlLmxvYWRlZCgpLG50PWZ1bmN0aW9uKCl7cmV0dXJuIFIuX2luaXRTZWxlY3Rpb25MaXN0ZW5lcnMoITAsRyYmRy5zZWFyY2hQYW5lcyYmRy5zZWFyY2hQYW5lcy5zZWxlY3Rpb25MaXN0P0cuc2VhcmNoUGFuZXMuc2VsZWN0aW9uTGlzdDpSLmMucHJlU2VsZWN0KX07cmV0dXJuIHouc2V0dGluZ3MoKVswXS5fYkluaXRDb21wbGV0ZT9udCgpOnoub2ZmKCJpbml0LmR0c3BzIikub24oImluaXQuZHRzcHMiLG50KSxSfXJldHVybiBrLnByb3RvdHlwZS5faW5pdFNlbGVjdGlvbkxpc3RlbmVycz1mdW5jdGlvbihTLEIpe1M9PT12b2lkIDAmJihTPSEwKSxCPT09dm9pZCAwJiYoQj1bXSksUyYmKHRoaXMucy5zZWxlY3Rpb25MaXN0PUIpO2Zvcih2YXIgTD0wLFI9dGhpcy5zLnBhbmVzO0w8Ui5sZW5ndGg7TCsrKXt2YXIgcT1SW0xdO3Eucy5kaXNwbGF5ZWQmJnEucy5kdFBhbmUub2ZmKCJzZWxlY3QuZHRzcCIpLm9uKCJzZWxlY3QuZHRzcCIsdGhpcy5fdXBkYXRlKHEpKS5vZmYoImRlc2VsZWN0LmR0c3AiKS5vbigiZGVzZWxlY3QuZHRzcCIsdGhpcy5fdXBkYXRlVGltZW91dChxKSl9dGhpcy5zLmR0Lm9mZigiZHJhdy5kdHNwcyIpLm9uKCJkcmF3LmR0c3BzIix0aGlzLl91cGRhdGUoKSksdGhpcy5fdXBkYXRlU2VsZWN0aW9uTGlzdCgpfSxrLnByb3RvdHlwZS5fc2VydmVyVG90YWxzPWZ1bmN0aW9uKCl7Zm9yKHZhciBTPTAsQj10aGlzLnMucGFuZXM7UzxCLmxlbmd0aDtTKyspe3ZhciBMPUJbU107aWYoTC5zLmNvbE9wdHMuc2hvdyl7dmFyIFI9dGhpcy5zLmR0LmNvbHVtbihMLnMuaW5kZXgpLmRhdGFTcmMoKSxxPSEwO2lmKHRoaXMucy5zZXJ2ZXJEYXRhLnNlYXJjaFBhbmVzLm9wdGlvbnNbUl0pZm9yKHZhciB6PTAsRz10aGlzLnMuc2VydmVyRGF0YS5zZWFyY2hQYW5lcy5vcHRpb25zW1JdO3o8Ry5sZW5ndGg7eisrKXt2YXIgbnQ9R1t6XTtpZihudC50b3RhbCE9PW50LmNvdW50KXtxPSExO2JyZWFrfX1MLnMuZmlsdGVyaW5nQWN0aXZlPSFxLEwuX3NlcnZlclBvcHVsYXRlKHRoaXMucy5zZXJ2ZXJEYXRhKX19fSxrLnByb3RvdHlwZS5fc3RhdGVMb2FkTGlzdGVuZXI9ZnVuY3Rpb24oKXt2YXIgUz10aGlzLEI9ZnVuY3Rpb24oTCxSLHEpe2lmKHEuc2VhcmNoUGFuZXMhPT12b2lkIDApe2lmKFMucy5zZWxlY3Rpb25MaXN0PXEuc2VhcmNoUGFuZXMuc2VsZWN0aW9uTGlzdD9xLnNlYXJjaFBhbmVzLnNlbGVjdGlvbkxpc3Q6W10scS5zZWFyY2hQYW5lcy5wYW5lcylmb3IodmFyIHo9MCxHPXEuc2VhcmNoUGFuZXMucGFuZXM7ejxHLmxlbmd0aDt6KyspZm9yKHZhciBudD1HW3pdLHR0PTAsZXQ9Uy5zLnBhbmVzO3R0PGV0Lmxlbmd0aDt0dCsrKXt2YXIgd3Q9ZXRbdHRdO250LmlkPT09d3Qucy5pbmRleCYmd3Qucy5kdFBhbmUmJih3dC5kb20uc2VhcmNoQm94LnZhbChudC5zZWFyY2hUZXJtKSx3dC5zLmR0UGFuZS5vcmRlcihudC5vcmRlcikpfVMuX3VwZGF0ZVNlbGVjdGlvbkxpc3QoKX19O3RoaXMucy5kdC5vZmYoInN0YXRlTG9hZFBhcmFtcy5kdHNwcyIsQikub24oInN0YXRlTG9hZFBhcmFtcy5kdHNwcyIsQil9LGsucHJvdG90eXBlLl91cGRhdGVTZWxlY3Rpb249ZnVuY3Rpb24oKXt9LGsucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oUyl7dmFyIEI9dGhpcztyZXR1cm4gUz09PXZvaWQgMCYmKFM9dm9pZCAwKSxmdW5jdGlvbigpe1MmJmNsZWFyVGltZW91dChTLnMuZGVzZWxlY3RUaW1lb3V0KSxCLl91cGRhdGVTZWxlY3Rpb25MaXN0KFMpfX0say5wcm90b3R5cGUuX3VwZGF0ZVRpbWVvdXQ9ZnVuY3Rpb24oUyl7dmFyIEI9dGhpcztyZXR1cm4gUz09PXZvaWQgMCYmKFM9dm9pZCAwKSxmdW5jdGlvbigpe3JldHVybiBTP1Mucy5kZXNlbGVjdFRpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBCLl91cGRhdGVTZWxlY3Rpb25MaXN0KFMpfSw1MCk6Qi5fdXBkYXRlU2VsZWN0aW9uTGlzdCgpfX0say5wcm90b3R5cGUuX3VwZGF0ZVNlbGVjdGlvbkxpc3Q9ZnVuY3Rpb24oUyl7aWYoUz09PXZvaWQgMCYmKFM9dm9pZCAwKSx0aGlzLnMucGFnaW5nU1Qpe3RoaXMucy5wYWdpbmdTVD0hMTtyZXR1cm59ZWxzZSBpZih0aGlzLnMudXBkYXRpbmd8fFMmJlMucy5zZXJ2ZXJTZWxlY3RpbmcpcmV0dXJuO2lmKFMhPT12b2lkIDApe3RoaXMucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlJiZTLl91cGRhdGVTZWxlY3Rpb24oKTt2YXIgQj1TLnMuZHRQYW5lLnJvd3Moe3NlbGVjdGVkOiEwfSkuZGF0YSgpLnRvQXJyYXkoKS5tYXAoZnVuY3Rpb24oTCl7cmV0dXJuIEwuZmlsdGVyfSk7dGhpcy5zLnNlbGVjdGlvbkxpc3Q9dGhpcy5zLnNlbGVjdGlvbkxpc3QuZmlsdGVyKGZ1bmN0aW9uKEwpe3JldHVybiBMLmNvbHVtbiE9PVMucy5pbmRleH0pLEIubGVuZ3RoPjA/KHRoaXMucy5zZWxlY3Rpb25MaXN0LnB1c2goe2NvbHVtbjpTLnMuaW5kZXgscm93czpCfSksUy5kb20uY2xlYXIucmVtb3ZlQ2xhc3ModGhpcy5jbGFzc2VzLmRpc2FibGVkQnV0dG9uKS5yZW1vdmVBdHRyKCJkaXNhYmxlZCIpKTpTLmRvbS5jbGVhci5hZGRDbGFzcyh0aGlzLmNsYXNzZXMuZGlzYWJsZWRCdXR0b24pLmF0dHIoImRpc2FibGVkIiwidHJ1ZSIpLHRoaXMucy5kdC5wYWdlLmluZm8oKS5zZXJ2ZXJTaWRlJiZ0aGlzLnMuZHQuZHJhdyghMSl9dGhpcy5fcmVtYWtlU2VsZWN0aW9ucygpLHRoaXMuX3VwZGF0ZUZpbHRlckNvdW50KCl9LGsucHJvdG90eXBlLl9yZW1ha2VTZWxlY3Rpb25zPWZ1bmN0aW9uKCl7dmFyIFMsQjtpZih0aGlzLnMudXBkYXRpbmc9ITAsdGhpcy5zLmR0LnBhZ2UuaW5mbygpLnNlcnZlclNpZGUpe3RoaXMucy5zZWxlY3Rpb25MaXN0Lmxlbmd0aD4wJiYoQj10aGlzLnMucGFuZXNbdGhpcy5zLnNlbGVjdGlvbkxpc3RbdGhpcy5zLnNlbGVjdGlvbkxpc3QubGVuZ3RoLTFdLmNvbHVtbl0pO2Zvcih2YXIgQ3Q9MCx4dD10aGlzLnMucGFuZXM7Q3Q8eHQubGVuZ3RoO0N0KyspUz14dFtDdF0sUy5zLmRpc3BsYXllZCYmKCFCfHxTLnMuaW5kZXghPT1CLnMuaW5kZXgpJiZTLnVwZGF0ZVJvd3MoKX1lbHNle3ZhciBMPXRoaXMucy5zZWxlY3Rpb25MaXN0LFI9ITE7dGhpcy5jbGVhclNlbGVjdGlvbnMoKSx0aGlzLnMuZHQuZHJhdyghMSksdGhpcy5zLmR0LnJvd3MoKS50b0FycmF5KClbMF0ubGVuZ3RoPnRoaXMucy5kdC5yb3dzKHtzZWFyY2g6ImFwcGxpZWQifSkudG9BcnJheSgpWzBdLmxlbmd0aCYmKFI9ITApLHRoaXMucy5zZWxlY3Rpb25MaXN0PUw7Zm9yKHZhciBxPTAsej10aGlzLnMucGFuZXM7cTx6Lmxlbmd0aDtxKyspQj16W3FdLEIucy5kaXNwbGF5ZWQmJihCLnMuZmlsdGVyaW5nQWN0aXZlPVIsQi51cGRhdGVSb3dzKCkpO2Zvcih2YXIgRz0wLG50PXRoaXMucy5zZWxlY3Rpb25MaXN0O0c8bnQubGVuZ3RoO0crKyl7dmFyIHR0PW50W0ddO0I9bnVsbDtmb3IodmFyIGV0PTAsd3Q9dGhpcy5zLnBhbmVzO2V0PHd0Lmxlbmd0aDtldCsrKXt2YXIgU3Q9d3RbZXRdO2lmKFN0LnMuaW5kZXg9PT10dC5jb2x1bW4pe0I9U3Q7YnJlYWt9fWlmKEIucy5kdFBhbmUpe2Zvcih2YXIgVHQ9Qi5zLmR0UGFuZS5yb3dzKCkuaW5kZXhlcygpLnRvQXJyYXkoKSxrdD0wO2t0PHR0LnJvd3MubGVuZ3RoO2t0Kyspe2Zvcih2YXIgTHQ9ITEsQnQ9MCwkdD1UdDtCdDwkdC5sZW5ndGg7QnQrKyl7dmFyIEt0PSR0W0J0XSxEPUIucy5kdFBhbmUucm93KEt0KSx1dD1ELmRhdGEoKTt0dC5yb3dzW2t0XT09PXV0LmZpbHRlciYmKEQuc2VsZWN0KCksTHQ9ITApfUx0fHwodHQucm93cy5zcGxpY2Uoa3QsMSksa3QtLSl9aWYoQi5zLnNlbGVjdGlvbnM9dHQucm93cyx0dC5yb3dzLmxlbmd0aCE9PTApe3RoaXMucy5kdC5kcmF3KCk7Zm9yKHZhciBvdD0hMSxWPTAsaj0wLEs9MCxwdD0wLHZ0PXRoaXMucy5wYW5lcztwdDx2dC5sZW5ndGg7cHQrKylTPXZ0W3B0XSxTLnMuZHRQYW5lJiYoVis9Uy5nZXRQYW5lQ291bnQoKSxWPmomJihLKyssaj1WKSk7b3Q9Vj4wO2Zvcih2YXIgcnQ9MCxndD10aGlzLnMucGFuZXM7cnQ8Z3QubGVuZ3RoO3J0KyspUz1ndFtydF0sUy5zLmRpc3BsYXllZCYmKFJ8fEIucy5pbmRleCE9PVMucy5pbmRleHx8IW90P1Mucy5maWx0ZXJpbmdBY3RpdmU9b3R8fFI6Sz09PTEmJihTLnMuZmlsdGVyaW5nQWN0aXZlPSExKSxTLnMuaW5kZXghPT1CLnMuaW5kZXgmJlMudXBkYXRlUm93cygpKX19fXRoaXMucy5kdC5kcmF3KCExKX10aGlzLnMudXBkYXRpbmc9ITF9LGt9KE8pO24oWmUpLEYoWmUpLHAoWmUpLEMoWmUpLGMoWmUpO3ZhciBYPVplLmZuLmRhdGFUYWJsZTtYLlNlYXJjaFBhbmVzPU8sYXQuU2VhcmNoUGFuZXM9TyxYLlNlYXJjaFBhbmVzU1Q9VSxhdC5TZWFyY2hQYW5lc1NUPVUsWC5TZWFyY2hQYW5lPXIsYXQuU2VhcmNoUGFuZT1yLFguU2VhcmNoUGFuZVZpZXdUb3RhbD1iLGF0LlNlYXJjaFBhbmVWaWV3VG90YWw9YixYLlNlYXJjaFBhbmVDYXNjYWRlPXksYXQuU2VhcmNoUGFuZUNhc2NhZGU9eSxYLlNlYXJjaFBhbmVDYXNjYWRlVmlld1RvdGFsPWwsYXQuU2VhcmNoUGFuZUNhc2NhZGVWaWV3VG90YWw9bDt2YXIgUT1aZS5mbi5kYXRhVGFibGUuQXBpLnJlZ2lzdGVyO1EoInNlYXJjaFBhbmVzKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxRKCJzZWFyY2hQYW5lcy5jbGVhclNlbGVjdGlvbnMoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKHcpe3cuX3NlYXJjaFBhbmVzJiZ3Ll9zZWFyY2hQYW5lcy5jbGVhclNlbGVjdGlvbnMoKX0pfSksUSgic2VhcmNoUGFuZXMucmVidWlsZFBhbmUoKSIsZnVuY3Rpb24odyxrKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKFMpe1MuX3NlYXJjaFBhbmVzJiZTLl9zZWFyY2hQYW5lcy5yZWJ1aWxkKHcsayl9KX0pLFEoInNlYXJjaFBhbmVzLnJlc2l6ZVBhbmVzKCkiLGZ1bmN0aW9uKCl7dmFyIHc9dGhpcy5jb250ZXh0WzBdO3JldHVybiB3Ll9zZWFyY2hQYW5lcz93Ll9zZWFyY2hQYW5lcy5yZXNpemVQYW5lcygpOm51bGx9KSxRKCJzZWFyY2hQYW5lcy5jb250YWluZXIoKSIsZnVuY3Rpb24oKXt2YXIgdz10aGlzLmNvbnRleHRbMF07cmV0dXJuIHcuX3NlYXJjaFBhbmVzP3cuX3NlYXJjaFBhbmVzLmdldE5vZGUoKTpudWxsfSksYXQuZXh0LmJ1dHRvbnMuc2VhcmNoUGFuZXNDbGVhcj17YWN0aW9uOmZ1bmN0aW9uKHcsayl7ay5zZWFyY2hQYW5lcy5jbGVhclNlbGVjdGlvbnMoKX0sdGV4dDoiQ2xlYXIgUGFuZXMifSxhdC5leHQuYnV0dG9ucy5zZWFyY2hQYW5lcz17YWN0aW9uOmZ1bmN0aW9uKHcsayxTLEIpe3ZhciBMPXRoaXMsUj10aGlzO0IuX3BhbmVzPyh0aGlzLnBvcG92ZXIoQi5fcGFuZXMuZ2V0Tm9kZSgpLHthbGlnbjoiY29udGFpbmVyIixzcGFuOiJjb250YWluZXIifSksQi5fcGFuZXMucmVidWlsZCh2b2lkIDAsITApKToodGhpcy5wcm9jZXNzaW5nKCEwKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7RShrLFMsQiksTC5wb3BvdmVyKEIuX3BhbmVzLmdldE5vZGUoKSx7YWxpZ246ImNvbnRhaW5lciIsc3BhbjoiY29udGFpbmVyIn0pLEIuX3BhbmVzLnJlYnVpbGQodm9pZCAwLCEwKSxaZSgidGFibGUuZGF0YVRhYmxlIixCLl9wYW5lcy5nZXROb2RlKCkpLkRhdGFUYWJsZSgpLmNvbHVtbnMuYWRqdXN0KCksUi5wcm9jZXNzaW5nKCExKX0sMTApKX0saW5pdDpmdW5jdGlvbih3LGssUyl7dy5idXR0b24oaykudGV4dChTLnRleHR8fHcuaTE4bigic2VhcmNoUGFuZXMuY29sbGFwc2UiLCJTZWFyY2hQYW5lcyIsMCkpLCh3LmluaXQoKS5zdGF0ZVNhdmV8fFMuZGVsYXlJbml0PT09ITEpJiZFKHcsayxTKX0sY29uZmlnOnt9LHRleHQ6IiIsZGVsYXlJbml0OiEwfTtmdW5jdGlvbiBFKHcsayxTKXt2YXIgQj1aZS5leHRlbmQoe2ZpbHRlckNoYW5nZWQ6ZnVuY3Rpb24oUil7dy5idXR0b24oaykudGV4dCh3LmkxOG4oInNlYXJjaFBhbmVzLmNvbGxhcHNlIix3LmNvbnRleHRbMF0ub0xhbmd1YWdlLnNlYXJjaFBhbmVzIT09dm9pZCAwP3cuY29udGV4dFswXS5vTGFuZ3VhZ2Uuc2VhcmNoUGFuZXMuY29sbGFwc2U6dy5jb250ZXh0WzBdLl9zZWFyY2hQYW5lcy5jLmkxOG4uY29sbGFwc2UsUikpfX0sUy5jb25maWcpLEw9QiYmKEIuY2FzY2FkZVBhbmVzfHxCLnZpZXdUb3RhbCk/bmV3IGF0LlNlYXJjaFBhbmVzU1QodyxCKTpuZXcgYXQuU2VhcmNoUGFuZXModyxCKTt3LmJ1dHRvbihrKS50ZXh0KFMudGV4dHx8dy5pMThuKCJzZWFyY2hQYW5lcy5jb2xsYXBzZSIsTC5jLmkxOG4uY29sbGFwc2UsMCkpLFMuX3BhbmVzPUx9ZnVuY3Rpb24gJCh3LGssUyl7az09PXZvaWQgMCYmKGs9bnVsbCksUz09PXZvaWQgMCYmKFM9ITEpO3ZhciBCPW5ldyBYLkFwaSh3KSxMPWt8fEIuaW5pdCgpLnNlYXJjaFBhbmVzfHxYLmRlZmF1bHRzLnNlYXJjaFBhbmVzLFI9TCYmKEwuY2FzY2FkZVBhbmVzfHxMLnZpZXdUb3RhbCk/bmV3IFUoQixMLFMpOm5ldyBPKEIsTCxTKSxxPVIuZ2V0Tm9kZSgpO3JldHVybiBxfVplKGRvY3VtZW50KS5vbigicHJlSW5pdC5kdC5kdHNwIixmdW5jdGlvbih3LGspe3cubmFtZXNwYWNlPT09ImR0IiYmKGsub0luaXQuc2VhcmNoUGFuZXN8fGF0LmRlZmF1bHRzLnNlYXJjaFBhbmVzKSYmKGsuX3NlYXJjaFBhbmVzfHwkKGssbnVsbCwhMCkpfSksYXQuZXh0LmZlYXR1cmUucHVzaCh7Y0ZlYXR1cmU6IlAiLGZuSW5pdDokfSksYXQuZmVhdHVyZSYmYXQuZmVhdHVyZS5yZWdpc3Rlcigic2VhcmNoUGFuZXMiLCQpfSkoKTt2YXIgZGQ9aWUoYWUoKSwxKTt2YXIgZW89aWUoYWUoKSwxKTt2YXIgRXQ9ZW8uZGVmYXVsdDthdC5zZWxlY3Q9e307YXQuc2VsZWN0LmNsYXNzZXM9e2NoZWNrYm94OiJkdC1zZWxlY3QtY2hlY2tib3gifTthdC5zZWxlY3QudmVyc2lvbj0iMi4wLjUiO2F0LnNlbGVjdC5pbml0PWZ1bmN0aW9uKHQpe3ZhciBlPXQuc2V0dGluZ3MoKVswXTtpZighYXQudmVyc2lvbkNoZWNrKCIyIikpdGhyb3ciV2FybmluZzogU2VsZWN0IHJlcXVpcmVzIERhdGFUYWJsZXMgMiBvciBuZXdlciI7aWYoIWUuX3NlbGVjdCl7dmFyIG49dC5zdGF0ZS5sb2FkZWQoKSxyPWZ1bmN0aW9uKGMsbCxoKXtpZighKGg9PT1udWxsfHxoLnNlbGVjdD09PXZvaWQgMCkpe2lmKHQucm93cyh7c2VsZWN0ZWQ6ITB9KS5hbnkoKSYmdC5yb3dzKCkuZGVzZWxlY3QoKSxoLnNlbGVjdC5yb3dzIT09dm9pZCAwJiZ0LnJvd3MoaC5zZWxlY3Qucm93cykuc2VsZWN0KCksdC5jb2x1bW5zKHtzZWxlY3RlZDohMH0pLmFueSgpJiZ0LmNvbHVtbnMoKS5kZXNlbGVjdCgpLGguc2VsZWN0LmNvbHVtbnMhPT12b2lkIDAmJnQuY29sdW1ucyhoLnNlbGVjdC5jb2x1bW5zKS5zZWxlY3QoKSx0LmNlbGxzKHtzZWxlY3RlZDohMH0pLmFueSgpJiZ0LmNlbGxzKCkuZGVzZWxlY3QoKSxoLnNlbGVjdC5jZWxscyE9PXZvaWQgMClmb3IodmFyIF89MDtfPGguc2VsZWN0LmNlbGxzLmxlbmd0aDtfKyspdC5jZWxsKGguc2VsZWN0LmNlbGxzW19dLnJvdyxoLnNlbGVjdC5jZWxsc1tfXS5jb2x1bW4pLnNlbGVjdCgpO3Quc3RhdGUuc2F2ZSgpfX07dC5vbigic3RhdGVTYXZlUGFyYW1zIixmdW5jdGlvbihjLGwsaCl7aC5zZWxlY3Q9e30saC5zZWxlY3Qucm93cz10LnJvd3Moe3NlbGVjdGVkOiEwfSkuaWRzKCEwKS50b0FycmF5KCksaC5zZWxlY3QuY29sdW1ucz10LmNvbHVtbnMoe3NlbGVjdGVkOiEwfSlbMF0saC5zZWxlY3QuY2VsbHM9dC5jZWxscyh7c2VsZWN0ZWQ6ITB9KVswXS5tYXAoZnVuY3Rpb24oXyl7cmV0dXJue3Jvdzp0LnJvdyhfLnJvdykuaWQoITApLGNvbHVtbjpfLmNvbHVtbn19KX0pLm9uKCJzdGF0ZUxvYWRQYXJhbXMiLHIpLm9uZSgiaW5pdCIsZnVuY3Rpb24oKXtyKHZvaWQgMCx2b2lkIDAsbil9KTt2YXIgcz1lLm9Jbml0LnNlbGVjdCxpPWF0LmRlZmF1bHRzLnNlbGVjdCxvPXM9PT12b2lkIDA/aTpzLHU9InJvdyIscD0iYXBpIixiPSExLGc9ITAsbT0hMCxDPSJ0ZCwgdGgiLHk9InNlbGVjdGVkIixUPSEwLFA9ITE7ZS5fc2VsZWN0PXtpbmZvRWxzOltdfSxvPT09ITA/KHA9Im9zIixQPSEwKTp0eXBlb2Ygbz09InN0cmluZyI/KHA9byxQPSEwKTpFdC5pc1BsYWluT2JqZWN0KG8pJiYoby5ibHVyYWJsZSE9PXZvaWQgMCYmKGI9by5ibHVyYWJsZSksby50b2dnbGVhYmxlIT09dm9pZCAwJiYoZz1vLnRvZ2dsZWFibGUpLG8uaW5mbyE9PXZvaWQgMCYmKG09by5pbmZvKSxvLml0ZW1zIT09dm9pZCAwJiYodT1vLml0ZW1zKSxvLnN0eWxlIT09dm9pZCAwPyhwPW8uc3R5bGUsUD0hMCk6KHA9Im9zIixQPSEwKSxvLnNlbGVjdG9yIT09dm9pZCAwJiYoQz1vLnNlbGVjdG9yKSxvLmNsYXNzTmFtZSE9PXZvaWQgMCYmKHk9by5jbGFzc05hbWUpLG8uaGVhZGVyQ2hlY2tib3ghPT12b2lkIDAmJihUPW8uaGVhZGVyQ2hlY2tib3gpKSx0LnNlbGVjdC5zZWxlY3RvcihDKSx0LnNlbGVjdC5pdGVtcyh1KSx0LnNlbGVjdC5zdHlsZShwKSx0LnNlbGVjdC5ibHVyYWJsZShiKSx0LnNlbGVjdC50b2dnbGVhYmxlKGcpLHQuc2VsZWN0LmluZm8obSksZS5fc2VsZWN0LmNsYXNzTmFtZT15LCFQJiZFdCh0LnRhYmxlKCkubm9kZSgpKS5oYXNDbGFzcygic2VsZWN0YWJsZSIpJiZ0LnNlbGVjdC5zdHlsZSgib3MiKSwoVHx8VD09PSJzZWxlY3QtcGFnZSJ8fFQ9PT0ic2VsZWN0LWFsbCIpJiYoUXModCxUKSx0Lm9uKCJpbml0IixmdW5jdGlvbigpe1FzKHQsVCl9KSl9fTtmdW5jdGlvbiBLcyh0LGUsbil7dmFyIHIscyxpLG89ZnVuY3Rpb24ocCxiKXtpZihwPmIpe3ZhciBnPWI7Yj1wLHA9Z312YXIgbT0hMTtyZXR1cm4gdC5jb2x1bW5zKCI6dmlzaWJsZSIpLmluZGV4ZXMoKS5maWx0ZXIoZnVuY3Rpb24oQyl7cmV0dXJuIEM9PT1wJiYobT0hMCksQz09PWI/KG09ITEsITApOm19KX0sdT1mdW5jdGlvbihwLGIpe3ZhciBnPXQucm93cyh7c2VhcmNoOiJhcHBsaWVkIn0pLmluZGV4ZXMoKTtpZihnLmluZGV4T2YocCk+Zy5pbmRleE9mKGIpKXt2YXIgbT1iO2I9cCxwPW19dmFyIEM9ITE7cmV0dXJuIGcuZmlsdGVyKGZ1bmN0aW9uKHkpe3JldHVybiB5PT09cCYmKEM9ITApLHk9PT1iPyhDPSExLCEwKTpDfSl9OyF0LmNlbGxzKHtzZWxlY3RlZDohMH0pLmFueSgpJiYhbj8ocz1vKDAsZS5jb2x1bW4pLGk9dSgwLGUucm93KSk6KHM9byhuLmNvbHVtbixlLmNvbHVtbiksaT11KG4ucm93LGUucm93KSkscj10LmNlbGxzKGkscykuZmxhdHRlbigpLHQuY2VsbHMoZSx7c2VsZWN0ZWQ6ITB9KS5hbnkoKT90LmNlbGxzKHIpLmRlc2VsZWN0KCk6dC5jZWxscyhyKS5zZWxlY3QoKX1mdW5jdGlvbiBWbih0KXt2YXIgZT1hdC5zZWxlY3QuY2xhc3Nlcy5jaGVja2JveDtyZXR1cm4gdD9lLnJlcGxhY2UoLyAvZywiLiIpOmV9ZnVuY3Rpb24gZWEodCl7dmFyIGU9dC5zZXR0aW5ncygpWzBdLG49ZS5fc2VsZWN0LnNlbGVjdG9yO0V0KHQudGFibGUoKS5jb250YWluZXIoKSkub2ZmKCJtb3VzZWRvd24uZHRTZWxlY3QiLG4pLm9mZigibW91c2V1cC5kdFNlbGVjdCIsbikub2ZmKCJjbGljay5kdFNlbGVjdCIsbiksRXQoImJvZHkiKS5vZmYoImNsaWNrLmR0U2VsZWN0IituYSh0LnRhYmxlKCkubm9kZSgpKSl9ZnVuY3Rpb24gbm8odCl7dmFyIGU9RXQodC50YWJsZSgpLmNvbnRhaW5lcigpKSxuPXQuc2V0dGluZ3MoKVswXSxyPW4uX3NlbGVjdC5zZWxlY3RvcixzO2Uub24oIm1vdXNlZG93bi5kdFNlbGVjdCIscixmdW5jdGlvbihpKXsoaS5zaGlmdEtleXx8aS5tZXRhS2V5fHxpLmN0cmxLZXkpJiZlLmNzcygiLW1vei11c2VyLXNlbGVjdCIsIm5vbmUiKS5vbmUoInNlbGVjdHN0YXJ0LmR0U2VsZWN0IixyLGZ1bmN0aW9uKCl7cmV0dXJuITF9KSx3aW5kb3cuZ2V0U2VsZWN0aW9uJiYocz13aW5kb3cuZ2V0U2VsZWN0aW9uKCkpfSkub24oIm1vdXNldXAuZHRTZWxlY3QiLHIsZnVuY3Rpb24oKXtlLmNzcygiLW1vei11c2VyLXNlbGVjdCIsIiIpfSkub24oImNsaWNrLmR0U2VsZWN0IixyLGZ1bmN0aW9uKGkpe3ZhciBvPXQuc2VsZWN0Lml0ZW1zKCksdTtpZihzKXt2YXIgcD13aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoKCFwLmFuY2hvck5vZGV8fEV0KHAuYW5jaG9yTm9kZSkuY2xvc2VzdCgidGFibGUiKVswXT09PXQudGFibGUoKS5ub2RlKCkpJiZwIT09cylyZXR1cm59dmFyIGI9dC5zZXR0aW5ncygpWzBdLGc9dC50YWJsZSgpLmNvbnRhaW5lcigpO2lmKEV0KGkudGFyZ2V0KS5jbG9zZXN0KCJkaXYuZHQtY29udGFpbmVyIilbMF09PWcpe3ZhciBtPXQuY2VsbChFdChpLnRhcmdldCkuY2xvc2VzdCgidGQsIHRoIikpO2lmKG0uYW55KCkpe3ZhciBDPUV0LkV2ZW50KCJ1c2VyLXNlbGVjdC5kdCIpO2lmKEtlKHQsQyxbbyxtLGldKSwhQy5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7dmFyIHk9bS5pbmRleCgpO289PT0icm93Ij8odT15LnJvdyxKaShpLHQsYiwicm93Iix1KSk6bz09PSJjb2x1bW4iPyh1PW0uaW5kZXgoKS5jb2x1bW4sSmkoaSx0LGIsImNvbHVtbiIsdSkpOm89PT0iY2VsbCImJih1PW0uaW5kZXgoKSxKaShpLHQsYiwiY2VsbCIsdSkpLGIuX3NlbGVjdF9sYXN0Q2VsbD15fX19fSksRXQoImJvZHkiKS5vbigiY2xpY2suZHRTZWxlY3QiK25hKHQudGFibGUoKS5ub2RlKCkpLGZ1bmN0aW9uKGkpe2lmKG4uX3NlbGVjdC5ibHVyYWJsZSl7aWYoRXQoaS50YXJnZXQpLnBhcmVudHMoKS5maWx0ZXIodC50YWJsZSgpLmNvbnRhaW5lcigpKS5sZW5ndGh8fEV0KGkudGFyZ2V0KS5wYXJlbnRzKCJodG1sIikubGVuZ3RoPT09MHx8RXQoaS50YXJnZXQpLnBhcmVudHMoImRpdi5EVEUiKS5sZW5ndGgpcmV0dXJuO3ZhciBvPUV0LkV2ZW50KCJzZWxlY3QtYmx1ci5kdCIpO2lmKEtlKHQsbyxbaS50YXJnZXQsaV0pLG8uaXNEZWZhdWx0UHJldmVudGVkKCkpcmV0dXJuO2xyKG4sITApfX0pfWZ1bmN0aW9uIEtlKHQsZSxuLHIpe3ImJiF0LmZsYXR0ZW4oKS5sZW5ndGh8fCh0eXBlb2YgZT09InN0cmluZyImJihlPWUrIi5kdCIpLG4udW5zaGlmdCh0KSxFdCh0LnRhYmxlKCkubm9kZSgpKS50cmlnZ2VyKGUsbikpfWZ1bmN0aW9uIHFyKHQpe3JldHVybiB0Lm1SZW5kZXImJnQubVJlbmRlci5fbmFtZT09PSJzZWxlY3RDaGVja2JveCJ9ZnVuY3Rpb24gSnModCxlKXtpZighKHQuc2VsZWN0LnN0eWxlKCk9PT0iYXBpInx8dC5zZWxlY3QuaW5mbygpPT09ITEpKXt2YXIgbj10LnJvd3Moe3NlbGVjdGVkOiEwfSkuZmxhdHRlbigpLmxlbmd0aCxyPXQuY29sdW1ucyh7c2VsZWN0ZWQ6ITB9KS5mbGF0dGVuKCkubGVuZ3RoLHM9dC5jZWxscyh7c2VsZWN0ZWQ6ITB9KS5mbGF0dGVuKCkubGVuZ3RoLGk9ZnVuY3Rpb24oYixnLG0pe2IuYXBwZW5kKEV0KCc8c3BhbiBjbGFzcz0ic2VsZWN0LWl0ZW0iLz4nKS5hcHBlbmQodC5pMThuKCJzZWxlY3QuIitnKyJzIix7XzoiJWQgIitnKyJzIHNlbGVjdGVkIiwwOiIiLDE6IjEgIitnKyIgc2VsZWN0ZWQifSxtKSkpfSxvPUV0KGUpLHU9RXQoJzxzcGFuIGNsYXNzPSJzZWxlY3QtaW5mbyIvPicpO2kodSwicm93IixuKSxpKHUsImNvbHVtbiIsciksaSh1LCJjZWxsIixzKTt2YXIgcD1vLmNoaWxkcmVuKCJzcGFuLnNlbGVjdC1pbmZvIik7cC5sZW5ndGgmJnAucmVtb3ZlKCksdS50ZXh0KCkhPT0iIiYmby5hcHBlbmQodSl9fWZ1bmN0aW9uIFFzKHQsZSl7dmFyIG49dC5zZXR0aW5ncygpWzBdLmFvQ29sdW1uczt0LmNvbHVtbnMoKS5pdGVyYXRvcigiY29sdW1uIixmdW5jdGlvbihyLHMpe3ZhciBpPW5bc107aWYocXIoaSkpe3ZhciBvPXQuY29sdW1uKHMpLmhlYWRlcigpO2lmKCFFdCgiaW5wdXQiLG8pLmxlbmd0aCl7dmFyIHU9RXQoIjxpbnB1dD4iKS5hdHRyKHtjbGFzczpWbighMCksdHlwZToiY2hlY2tib3giLCJhcmlhLWxhYmVsIjp0LmkxOG4oInNlbGVjdC5hcmlhLmhlYWRlckNoZWNrYm94Iil8fCJTZWxlY3QgYWxsIHJvd3MifSkuYXBwZW5kVG8obykub24oImNoYW5nZSIsZnVuY3Rpb24oKXt0aGlzLmNoZWNrZWQ/ZT09InNlbGVjdC1wYWdlIj90LnJvd3Moe3BhZ2U6ImN1cnJlbnQifSkuc2VsZWN0KCk6dC5yb3dzKHtzZWFyY2g6ImFwcGxpZWQifSkuc2VsZWN0KCk6dC5yb3dzKHtzZWxlY3RlZDohMH0pLmRlc2VsZWN0KCl9KS5vbigiY2xpY2siLGZ1bmN0aW9uKHApe3Auc3RvcFByb3BhZ2F0aW9uKCl9KTt0Lm9uKCJkcmF3IHNlbGVjdCBkZXNlbGVjdCIsZnVuY3Rpb24ocCxiLGcpe2lmKGc9PT0icm93Inx8IWcpe3ZhciBtPXQucm93cyh7c2VsZWN0ZWQ6ITB9KS5jb3VudCgpLEM9dC5yb3dzKHtzZWFyY2g6ImFwcGxpZWQiLHNlbGVjdGVkOiEwfSkuY291bnQoKSx5PWU9PSJzZWxlY3QtcGFnZSI/dC5yb3dzKHtwYWdlOiJjdXJyZW50In0pLmNvdW50KCk6dC5yb3dzKHtzZWFyY2g6ImFwcGxpZWQifSkuY291bnQoKTtDJiZDPD1tJiZDPT09eT91LnByb3AoImNoZWNrZWQiLCEwKS5wcm9wKCJpbmRldGVybWluYXRlIiwhMSk6Qz09PTAmJm09PT0wP3UucHJvcCgiY2hlY2tlZCIsITEpLnByb3AoImluZGV0ZXJtaW5hdGUiLCExKTp1LnByb3AoImNoZWNrZWQiLCExKS5wcm9wKCJpbmRldGVybWluYXRlIiwhMCl9fSl9fX0pfWZ1bmN0aW9uIG9kKHQpe3ZhciBlPW5ldyBhdC5BcGkodCk7dC5fc2VsZWN0X2luaXQ9ITAsdC5hb1Jvd0NyZWF0ZWRDYWxsYmFjay5wdXNoKGZ1bmN0aW9uKG4scixzKXt2YXIgaSxvLHU9dC5hb0RhdGFbc107Zm9yKHUuX3NlbGVjdF9zZWxlY3RlZCYmRXQobikuYWRkQ2xhc3ModC5fc2VsZWN0LmNsYXNzTmFtZSkuZmluZCgiaW5wdXQuIitWbighMCkpLnByb3AoImNoZWNrZWQiLCEwKSxpPTAsbz10LmFvQ29sdW1ucy5sZW5ndGg7aTxvO2krKykodC5hb0NvbHVtbnNbaV0uX3NlbGVjdF9zZWxlY3RlZHx8dS5fc2VsZWN0ZWRfY2VsbHMmJnUuX3NlbGVjdGVkX2NlbGxzW2ldKSYmRXQodS5hbkNlbGxzW2ldKS5hZGRDbGFzcyh0Ll9zZWxlY3QuY2xhc3NOYW1lKX0pLGUub24oInByZVhoci5kdC5kdFNlbGVjdCIsZnVuY3Rpb24obixyKXtpZihyPT09ZS5zZXR0aW5ncygpWzBdKXt2YXIgcz1lLnJvd3Moe3NlbGVjdGVkOiEwfSkuaWRzKCEwKS5maWx0ZXIoZnVuY3Rpb24obyl7cmV0dXJuIG8hPT12b2lkIDB9KSxpPWUuY2VsbHMoe3NlbGVjdGVkOiEwfSkuZXEoMCkubWFwKGZ1bmN0aW9uKG8pe3ZhciB1PWUucm93KG8ucm93KS5pZCghMCk7cmV0dXJuIHU/e3Jvdzp1LGNvbHVtbjpvLmNvbHVtbn06dm9pZCAwfSkuZmlsdGVyKGZ1bmN0aW9uKG8pe3JldHVybiBvIT09dm9pZCAwfSk7ZS5vbmUoImRyYXcuZHQuZHRTZWxlY3QiLGZ1bmN0aW9uKCl7ZS5yb3dzKHMpLnNlbGVjdCgpLGkuYW55KCkmJmkuZWFjaChmdW5jdGlvbihvKXtlLmNlbGxzKG8ucm93LG8uY29sdW1uKS5zZWxlY3QoKX0pfSl9fSksZS5vbigiaW5mby5kdCIsZnVuY3Rpb24obixyLHMpe3IuX3NlbGVjdC5pbmZvRWxzLmluY2x1ZGVzKHMpfHxyLl9zZWxlY3QuaW5mb0Vscy5wdXNoKHMpLEpzKGUscyl9KSxlLm9uKCJzZWxlY3QuZHRTZWxlY3QuZHQgZGVzZWxlY3QuZHRTZWxlY3QuZHQiLGZ1bmN0aW9uKCl7dC5fc2VsZWN0LmluZm9FbHMuZm9yRWFjaChmdW5jdGlvbihuKXtKcyhlLG4pfSksZS5zdGF0ZS5zYXZlKCl9KSxlLm9uKCJkZXN0cm95LmR0U2VsZWN0IixmdW5jdGlvbigpe0V0KGUucm93cyh7c2VsZWN0ZWQ6ITB9KS5ub2RlcygpKS5yZW1vdmVDbGFzcyhlLnNldHRpbmdzKClbMF0uX3NlbGVjdC5jbGFzc05hbWUpLEV0KCJpbnB1dC4iK1ZuKCEwKSxlLnRhYmxlKCkuaGVhZGVyKCkpLnJlbW92ZSgpLGVhKGUpLGUub2ZmKCIuZHRTZWxlY3QiKSxFdCgiYm9keSIpLm9mZigiLmR0U2VsZWN0IituYShlLnRhYmxlKCkubm9kZSgpKSl9KX1mdW5jdGlvbiB0byh0LGUsbixyKXt2YXIgcz10W2UrInMiXSh7c2VhcmNoOiJhcHBsaWVkIn0pLmluZGV4ZXMoKSxpPXMuaW5kZXhPZihyKSxvPXMuaW5kZXhPZihuKTtpZighdFtlKyJzIl0oe3NlbGVjdGVkOiEwfSkuYW55KCkmJmk9PT0tMSlzLnNwbGljZShzLmluZGV4T2YobikrMSxzLmxlbmd0aCk7ZWxzZXtpZihpPm8pe3ZhciB1PW87bz1pLGk9dX1zLnNwbGljZShvKzEscy5sZW5ndGgpLHMuc3BsaWNlKDAsaSl9dFtlXShuLHtzZWxlY3RlZDohMH0pLmFueSgpPyhzLnNwbGljZShzLmluZGV4T2YobiksMSksdFtlKyJzIl0ocykuZGVzZWxlY3QoKSk6dFtlKyJzIl0ocykuc2VsZWN0KCl9ZnVuY3Rpb24gbHIodCxlKXtpZihlfHx0Ll9zZWxlY3Quc3R5bGU9PT0ic2luZ2xlIil7dmFyIG49bmV3IGF0LkFwaSh0KTtuLnJvd3Moe3NlbGVjdGVkOiEwfSkuZGVzZWxlY3QoKSxuLmNvbHVtbnMoe3NlbGVjdGVkOiEwfSkuZGVzZWxlY3QoKSxuLmNlbGxzKHtzZWxlY3RlZDohMH0pLmRlc2VsZWN0KCl9fWZ1bmN0aW9uIEppKHQsZSxuLHIscyl7dmFyIGk9ZS5zZWxlY3Quc3R5bGUoKSxvPWUuc2VsZWN0LnRvZ2dsZWFibGUoKSx1PWVbcl0ocyx7c2VsZWN0ZWQ6ITB9KS5hbnkoKTtpZighKHUmJiFvKSlpZihpPT09Im9zIilpZih0LmN0cmxLZXl8fHQubWV0YUtleSllW3JdKHMpLnNlbGVjdCghdSk7ZWxzZSBpZih0LnNoaWZ0S2V5KXI9PT0iY2VsbCI/S3MoZSxzLG4uX3NlbGVjdF9sYXN0Q2VsbHx8bnVsbCk6dG8oZSxyLHMsbi5fc2VsZWN0X2xhc3RDZWxsP24uX3NlbGVjdF9sYXN0Q2VsbFtyXTpudWxsKTtlbHNle3ZhciBwPWVbcisicyJdKHtzZWxlY3RlZDohMH0pO3UmJnAuZmxhdHRlbigpLmxlbmd0aD09PTE/ZVtyXShzKS5kZXNlbGVjdCgpOihwLmRlc2VsZWN0KCksZVtyXShzKS5zZWxlY3QoKSl9ZWxzZSBpPT0ibXVsdGkrc2hpZnQiJiZ0LnNoaWZ0S2V5P3I9PT0iY2VsbCI/S3MoZSxzLG4uX3NlbGVjdF9sYXN0Q2VsbHx8bnVsbCk6dG8oZSxyLHMsbi5fc2VsZWN0X2xhc3RDZWxsP24uX3NlbGVjdF9sYXN0Q2VsbFtyXTpudWxsKTplW3JdKHMpLnNlbGVjdCghdSl9ZnVuY3Rpb24gbmEodCl7cmV0dXJuIHQuaWQucmVwbGFjZSgvW15hLXpBLVowLTlcLVxfXS9nLCItIil9RXQuZWFjaChbe3R5cGU6InJvdyIscHJvcDoiYW9EYXRhIn0se3R5cGU6ImNvbHVtbiIscHJvcDoiYW9Db2x1bW5zIn1dLGZ1bmN0aW9uKHQsZSl7YXQuZXh0LnNlbGVjdG9yW2UudHlwZV0ucHVzaChmdW5jdGlvbihuLHIscyl7dmFyIGk9ci5zZWxlY3RlZCxvLHU9W107aWYoaSE9PSEwJiZpIT09ITEpcmV0dXJuIHM7Zm9yKHZhciBwPTAsYj1zLmxlbmd0aDtwPGI7cCsrKW89bltlLnByb3BdW3NbcF1dLG8mJihpPT09ITAmJm8uX3NlbGVjdF9zZWxlY3RlZD09PSEwfHxpPT09ITEmJiFvLl9zZWxlY3Rfc2VsZWN0ZWQpJiZ1LnB1c2goc1twXSk7cmV0dXJuIHV9KX0pO2F0LmV4dC5zZWxlY3Rvci5jZWxsLnB1c2goZnVuY3Rpb24odCxlLG4pe3ZhciByPWUuc2VsZWN0ZWQscyxpPVtdO2lmKHI9PT12b2lkIDApcmV0dXJuIG47Zm9yKHZhciBvPTAsdT1uLmxlbmd0aDtvPHU7bysrKXM9dC5hb0RhdGFbbltvXS5yb3ddLHMmJihyPT09ITAmJnMuX3NlbGVjdGVkX2NlbGxzJiZzLl9zZWxlY3RlZF9jZWxsc1tuW29dLmNvbHVtbl09PT0hMHx8cj09PSExJiYoIXMuX3NlbGVjdGVkX2NlbGxzfHwhcy5fc2VsZWN0ZWRfY2VsbHNbbltvXS5jb2x1bW5dKSkmJmkucHVzaChuW29dKTtyZXR1cm4gaX0pO3ZhciBVZT1hdC5BcGkucmVnaXN0ZXIsSG49YXQuQXBpLnJlZ2lzdGVyUGx1cmFsO1VlKCJzZWxlY3QoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKHQpe2F0LnNlbGVjdC5pbml0KG5ldyBhdC5BcGkodCkpfSl9KTtVZSgic2VsZWN0LmJsdXJhYmxlKCkiLGZ1bmN0aW9uKHQpe3JldHVybiB0PT09dm9pZCAwP3RoaXMuY29udGV4dFswXS5fc2VsZWN0LmJsdXJhYmxlOnRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihlKXtlLl9zZWxlY3QuYmx1cmFibGU9dH0pfSk7VWUoInNlbGVjdC50b2dnbGVhYmxlKCkiLGZ1bmN0aW9uKHQpe3JldHVybiB0PT09dm9pZCAwP3RoaXMuY29udGV4dFswXS5fc2VsZWN0LnRvZ2dsZWFibGU6dGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGUpe2UuX3NlbGVjdC50b2dnbGVhYmxlPXR9KX0pO1VlKCJzZWxlY3QuaW5mbygpIixmdW5jdGlvbih0KXtyZXR1cm4gdD09PXZvaWQgMD90aGlzLmNvbnRleHRbMF0uX3NlbGVjdC5pbmZvOnRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihlKXtlLl9zZWxlY3QuaW5mbz10fSl9KTtVZSgic2VsZWN0Lml0ZW1zKCkiLGZ1bmN0aW9uKHQpe3JldHVybiB0PT09dm9pZCAwP3RoaXMuY29udGV4dFswXS5fc2VsZWN0Lml0ZW1zOnRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihlKXtlLl9zZWxlY3QuaXRlbXM9dCxLZShuZXcgYXQuQXBpKGUpLCJzZWxlY3RJdGVtcyIsW3RdKX0pfSk7VWUoInNlbGVjdC5zdHlsZSgpIixmdW5jdGlvbih0KXtyZXR1cm4gdD09PXZvaWQgMD90aGlzLmNvbnRleHRbMF0uX3NlbGVjdC5zdHlsZTp0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oZSl7ZS5fc2VsZWN0fHxhdC5zZWxlY3QuaW5pdChuZXcgYXQuQXBpKGUpKSxlLl9zZWxlY3RfaW5pdHx8b2QoZSksZS5fc2VsZWN0LnN0eWxlPXQ7dmFyIG49bmV3IGF0LkFwaShlKTtlYShuKSx0IT09ImFwaSImJm5vKG4pLEtlKG5ldyBhdC5BcGkoZSksInNlbGVjdFN0eWxlIixbdF0pfSl9KTtVZSgic2VsZWN0LnNlbGVjdG9yKCkiLGZ1bmN0aW9uKHQpe3JldHVybiB0PT09dm9pZCAwP3RoaXMuY29udGV4dFswXS5fc2VsZWN0LnNlbGVjdG9yOnRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihlKXtlYShuZXcgYXQuQXBpKGUpKSxlLl9zZWxlY3Quc2VsZWN0b3I9dCxlLl9zZWxlY3Quc3R5bGUhPT0iYXBpIiYmbm8obmV3IGF0LkFwaShlKSl9KX0pO1VlKCJzZWxlY3QubGFzdCgpIixmdW5jdGlvbih0KXtsZXQgZT10aGlzLmNvbnRleHRbMF07cmV0dXJuIHQ/KGUuX3NlbGVjdF9sYXN0Q2VsbD10LHRoaXMpOmUuX3NlbGVjdF9sYXN0Q2VsbH0pO0huKCJyb3dzKCkuc2VsZWN0KCkiLCJyb3coKS5zZWxlY3QoKSIsZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdD09PSExP3RoaXMuZGVzZWxlY3QoKToodGhpcy5pdGVyYXRvcigicm93IixmdW5jdGlvbihuLHIpe2xyKG4pO3ZhciBzPW4uYW9EYXRhW3JdLGk9bi5hb0NvbHVtbnM7RXQocy5uVHIpLmFkZENsYXNzKG4uX3NlbGVjdC5jbGFzc05hbWUpLHMuX3NlbGVjdF9zZWxlY3RlZD0hMDtmb3IodmFyIG89MDtvPGkubGVuZ3RoO28rKyl7dmFyIHU9aVtvXTtpZih1LnNUeXBlPT09bnVsbCYmZS5jb2x1bW5zKCkudHlwZXMoKSxxcih1KSl7dmFyIHA9cy5hbkNlbGxzO3AmJnBbb10mJkV0KCJpbnB1dC4iK1ZuKCEwKSxwW29dKS5wcm9wKCJjaGVja2VkIiwhMCkscy5fYVNvcnREYXRhIT09bnVsbCYmKHMuX2FTb3J0RGF0YVtvXT1udWxsKX19fSksdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKG4scil7S2UoZSwic2VsZWN0IixbInJvdyIsZVtyXV0sITApfSksdGhpcyl9KTtVZSgicm93KCkuc2VsZWN0ZWQoKSIsZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNvbnRleHRbMF07cmV0dXJuISEodCYmdGhpcy5sZW5ndGgmJnQuYW9EYXRhW3RoaXNbMF1dJiZ0LmFvRGF0YVt0aGlzWzBdXS5fc2VsZWN0X3NlbGVjdGVkKX0pO0huKCJjb2x1bW5zKCkuc2VsZWN0KCkiLCJjb2x1bW4oKS5zZWxlY3QoKSIsZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdD09PSExP3RoaXMuZGVzZWxlY3QoKToodGhpcy5pdGVyYXRvcigiY29sdW1uIixmdW5jdGlvbihuLHIpe2xyKG4pLG4uYW9Db2x1bW5zW3JdLl9zZWxlY3Rfc2VsZWN0ZWQ9ITA7dmFyIHM9bmV3IGF0LkFwaShuKS5jb2x1bW4ocik7RXQocy5oZWFkZXIoKSkuYWRkQ2xhc3Mobi5fc2VsZWN0LmNsYXNzTmFtZSksRXQocy5mb290ZXIoKSkuYWRkQ2xhc3Mobi5fc2VsZWN0LmNsYXNzTmFtZSkscy5ub2RlcygpLnRvJCgpLmFkZENsYXNzKG4uX3NlbGVjdC5jbGFzc05hbWUpfSksdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKG4scil7S2UoZSwic2VsZWN0IixbImNvbHVtbiIsZVtyXV0sITApfSksdGhpcyl9KTtVZSgiY29sdW1uKCkuc2VsZWN0ZWQoKSIsZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNvbnRleHRbMF07cmV0dXJuISEodCYmdGhpcy5sZW5ndGgmJnQuYW9Db2x1bW5zW3RoaXNbMF1dJiZ0LmFvQ29sdW1uc1t0aGlzWzBdXS5fc2VsZWN0X3NlbGVjdGVkKX0pO0huKCJjZWxscygpLnNlbGVjdCgpIiwiY2VsbCgpLnNlbGVjdCgpIixmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0PT09ITE/dGhpcy5kZXNlbGVjdCgpOih0aGlzLml0ZXJhdG9yKCJjZWxsIixmdW5jdGlvbihuLHIscyl7bHIobik7dmFyIGk9bi5hb0RhdGFbcl07aS5fc2VsZWN0ZWRfY2VsbHM9PT12b2lkIDAmJihpLl9zZWxlY3RlZF9jZWxscz1bXSksaS5fc2VsZWN0ZWRfY2VsbHNbc109ITAsaS5hbkNlbGxzJiZFdChpLmFuQ2VsbHNbc10pLmFkZENsYXNzKG4uX3NlbGVjdC5jbGFzc05hbWUpfSksdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKG4scil7S2UoZSwic2VsZWN0IixbImNlbGwiLGUuY2VsbHMoZVtyXSkuaW5kZXhlcygpLnRvQXJyYXkoKV0sITApfSksdGhpcyl9KTtVZSgiY2VsbCgpLnNlbGVjdGVkKCkiLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb250ZXh0WzBdO2lmKHQmJnRoaXMubGVuZ3RoKXt2YXIgZT10LmFvRGF0YVt0aGlzWzBdWzBdLnJvd107aWYoZSYmZS5fc2VsZWN0ZWRfY2VsbHMmJmUuX3NlbGVjdGVkX2NlbGxzW3RoaXNbMF1bMF0uY29sdW1uXSlyZXR1cm4hMH1yZXR1cm4hMX0pO0huKCJyb3dzKCkuZGVzZWxlY3QoKSIsInJvdygpLmRlc2VsZWN0KCkiLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5pdGVyYXRvcigicm93IixmdW5jdGlvbihlLG4pe3ZhciByPWUuYW9EYXRhW25dLHM9ZS5hb0NvbHVtbnM7RXQoci5uVHIpLnJlbW92ZUNsYXNzKGUuX3NlbGVjdC5jbGFzc05hbWUpLHIuX3NlbGVjdF9zZWxlY3RlZD0hMSxlLl9zZWxlY3RfbGFzdENlbGw9bnVsbDtmb3IodmFyIGk9MDtpPHMubGVuZ3RoO2krKyl7dmFyIG89c1tpXTtpZihvLnNUeXBlPT09bnVsbCYmdC5jb2x1bW5zKCkudHlwZXMoKSxxcihvKSl7dmFyIHU9ci5hbkNlbGxzO3UmJnVbaV0mJkV0KCJpbnB1dC4iK1ZuKCEwKSxyLmFuQ2VsbHNbaV0pLnByb3AoImNoZWNrZWQiLCExKSxyLl9hU29ydERhdGEhPT1udWxsJiYoci5fYVNvcnREYXRhW2ldPW51bGwpfX19KSx0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oZSxuKXtLZSh0LCJkZXNlbGVjdCIsWyJyb3ciLHRbbl1dLCEwKX0pLHRoaXN9KTtIbigiY29sdW1ucygpLmRlc2VsZWN0KCkiLCJjb2x1bW4oKS5kZXNlbGVjdCgpIixmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24oZSxuKXtlLmFvQ29sdW1uc1tuXS5fc2VsZWN0X3NlbGVjdGVkPSExO3ZhciByPW5ldyBhdC5BcGkoZSkscz1yLmNvbHVtbihuKTtFdChzLmhlYWRlcigpKS5yZW1vdmVDbGFzcyhlLl9zZWxlY3QuY2xhc3NOYW1lKSxFdChzLmZvb3RlcigpKS5yZW1vdmVDbGFzcyhlLl9zZWxlY3QuY2xhc3NOYW1lKSxyLmNlbGxzKG51bGwsbikuaW5kZXhlcygpLmVhY2goZnVuY3Rpb24oaSl7dmFyIG89ZS5hb0RhdGFbaS5yb3ddLHU9by5fc2VsZWN0ZWRfY2VsbHM7by5hbkNlbGxzJiYoIXV8fCF1W2kuY29sdW1uXSkmJkV0KG8uYW5DZWxsc1tpLmNvbHVtbl0pLnJlbW92ZUNsYXNzKGUuX3NlbGVjdC5jbGFzc05hbWUpfSl9KSx0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oZSxuKXtLZSh0LCJkZXNlbGVjdCIsWyJjb2x1bW4iLHRbbl1dLCEwKX0pLHRoaXN9KTtIbigiY2VsbHMoKS5kZXNlbGVjdCgpIiwiY2VsbCgpLmRlc2VsZWN0KCkiLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5pdGVyYXRvcigiY2VsbCIsZnVuY3Rpb24oZSxuLHIpe3ZhciBzPWUuYW9EYXRhW25dO3MuX3NlbGVjdGVkX2NlbGxzIT09dm9pZCAwJiYocy5fc2VsZWN0ZWRfY2VsbHNbcl09ITEpLHMuYW5DZWxscyYmIWUuYW9Db2x1bW5zW3JdLl9zZWxlY3Rfc2VsZWN0ZWQmJkV0KHMuYW5DZWxsc1tyXSkucmVtb3ZlQ2xhc3MoZS5fc2VsZWN0LmNsYXNzTmFtZSl9KSx0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oZSxuKXtLZSh0LCJkZXNlbGVjdCIsWyJjZWxsIix0W25dXSwhMCl9KSx0aGlzfSk7ZnVuY3Rpb24gTW4odCxlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIG4uaTE4bigiYnV0dG9ucy4iK3QsZSl9fWZ1bmN0aW9uIFFpKHQpe3ZhciBlPXQuX2V2ZW50TmFtZXNwYWNlO3JldHVybiJkcmF3LmR0LkRUIitlKyIgc2VsZWN0LmR0LkRUIitlKyIgZGVzZWxlY3QuZHQuRFQiK2V9ZnVuY3Rpb24gbGQodCxlKXtyZXR1cm4hIShlLmxpbWl0VG8uaW5kZXhPZigicm93cyIpIT09LTEmJnQucm93cyh7c2VsZWN0ZWQ6ITB9KS5hbnkoKXx8ZS5saW1pdFRvLmluZGV4T2YoImNvbHVtbnMiKSE9PS0xJiZ0LmNvbHVtbnMoe3NlbGVjdGVkOiEwfSkuYW55KCl8fGUubGltaXRUby5pbmRleE9mKCJjZWxscyIpIT09LTEmJnQuY2VsbHMoe3NlbGVjdGVkOiEwfSkuYW55KCkpfXZhciB0YT0wO0V0LmV4dGVuZChhdC5leHQuYnV0dG9ucyx7c2VsZWN0ZWQ6e3RleHQ6TW4oInNlbGVjdGVkIiwiU2VsZWN0ZWQiKSxjbGFzc05hbWU6ImJ1dHRvbnMtc2VsZWN0ZWQiLGxpbWl0VG86WyJyb3dzIiwiY29sdW1ucyIsImNlbGxzIl0saW5pdDpmdW5jdGlvbih0LGUsbil7dmFyIHI9dGhpcztuLl9ldmVudE5hbWVzcGFjZT0iLnNlbGVjdCIrdGErKyx0Lm9uKFFpKG4pLGZ1bmN0aW9uKCl7ci5lbmFibGUobGQodCxuKSl9KSx0aGlzLmRpc2FibGUoKX0sZGVzdHJveTpmdW5jdGlvbih0LGUsbil7dC5vZmYobi5fZXZlbnROYW1lc3BhY2UpfX0sc2VsZWN0ZWRTaW5nbGU6e3RleHQ6TW4oInNlbGVjdGVkU2luZ2xlIiwiU2VsZWN0ZWQgc2luZ2xlIiksY2xhc3NOYW1lOiJidXR0b25zLXNlbGVjdGVkLXNpbmdsZSIsaW5pdDpmdW5jdGlvbih0LGUsbil7dmFyIHI9dGhpcztuLl9ldmVudE5hbWVzcGFjZT0iLnNlbGVjdCIrdGErKyx0Lm9uKFFpKG4pLGZ1bmN0aW9uKCl7dmFyIHM9dC5yb3dzKHtzZWxlY3RlZDohMH0pLmZsYXR0ZW4oKS5sZW5ndGgrdC5jb2x1bW5zKHtzZWxlY3RlZDohMH0pLmZsYXR0ZW4oKS5sZW5ndGgrdC5jZWxscyh7c2VsZWN0ZWQ6ITB9KS5mbGF0dGVuKCkubGVuZ3RoO3IuZW5hYmxlKHM9PT0xKX0pLHRoaXMuZGlzYWJsZSgpfSxkZXN0cm95OmZ1bmN0aW9uKHQsZSxuKXt0Lm9mZihuLl9ldmVudE5hbWVzcGFjZSl9fSxzZWxlY3RBbGw6e3RleHQ6TW4oInNlbGVjdEFsbCIsIlNlbGVjdCBhbGwiKSxjbGFzc05hbWU6ImJ1dHRvbnMtc2VsZWN0LWFsbCIsYWN0aW9uOmZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBzPXRoaXMuc2VsZWN0Lml0ZW1zKCksaT1yLnNlbGVjdG9yTW9kaWZpZXI7aT8odHlwZW9mIGk9PSJmdW5jdGlvbiImJihpPWkuY2FsbChlLHQsZSxuLHIpKSx0aGlzW3MrInMiXShpKS5zZWxlY3QoKSk6dGhpc1tzKyJzIl0oKS5zZWxlY3QoKX19LHNlbGVjdE5vbmU6e3RleHQ6TW4oInNlbGVjdE5vbmUiLCJEZXNlbGVjdCBhbGwiKSxjbGFzc05hbWU6ImJ1dHRvbnMtc2VsZWN0LW5vbmUiLGFjdGlvbjpmdW5jdGlvbigpe2xyKHRoaXMuc2V0dGluZ3MoKVswXSwhMCl9LGluaXQ6ZnVuY3Rpb24odCxlLG4pe3ZhciByPXRoaXM7bi5fZXZlbnROYW1lc3BhY2U9Ii5zZWxlY3QiK3RhKyssdC5vbihRaShuKSxmdW5jdGlvbigpe3ZhciBzPXQucm93cyh7c2VsZWN0ZWQ6ITB9KS5mbGF0dGVuKCkubGVuZ3RoK3QuY29sdW1ucyh7c2VsZWN0ZWQ6ITB9KS5mbGF0dGVuKCkubGVuZ3RoK3QuY2VsbHMoe3NlbGVjdGVkOiEwfSkuZmxhdHRlbigpLmxlbmd0aDtyLmVuYWJsZShzPjApfSksdGhpcy5kaXNhYmxlKCl9LGRlc3Ryb3k6ZnVuY3Rpb24odCxlLG4pe3Qub2ZmKG4uX2V2ZW50TmFtZXNwYWNlKX19LHNob3dTZWxlY3RlZDp7dGV4dDpNbigic2hvd1NlbGVjdGVkIiwiU2hvdyBvbmx5IHNlbGVjdGVkIiksY2xhc3NOYW1lOiJidXR0b25zLXNob3ctc2VsZWN0ZWQiLGFjdGlvbjpmdW5jdGlvbih0LGUpe2lmKGUuc2VhcmNoLmZpeGVkKCJkdC1zZWxlY3QiKSllLnNlYXJjaC5maXhlZCgiZHQtc2VsZWN0IixudWxsKSx0aGlzLmFjdGl2ZSghMSk7ZWxzZXt2YXIgbj1lLnNldHRpbmdzKClbMF0uYW9EYXRhO2Uuc2VhcmNoLmZpeGVkKCJkdC1zZWxlY3QiLGZ1bmN0aW9uKHIscyxpKXtyZXR1cm4gbltpXS5fc2VsZWN0X3NlbGVjdGVkfSksdGhpcy5hY3RpdmUoITApfWUuZHJhdygpfX19KTtFdC5lYWNoKFsiUm93IiwiQ29sdW1uIiwiQ2VsbCJdLGZ1bmN0aW9uKHQsZSl7dmFyIG49ZS50b0xvd2VyQ2FzZSgpO2F0LmV4dC5idXR0b25zWyJzZWxlY3QiK2UrInMiXT17dGV4dDpNbigic2VsZWN0IitlKyJzIiwiU2VsZWN0ICIrbisicyIpLGNsYXNzTmFtZToiYnV0dG9ucy1zZWxlY3QtIituKyJzIixhY3Rpb246ZnVuY3Rpb24oKXt0aGlzLnNlbGVjdC5pdGVtcyhuKX0saW5pdDpmdW5jdGlvbihyKXt2YXIgcz10aGlzO3Iub24oInNlbGVjdEl0ZW1zLmR0LkRUIixmdW5jdGlvbihpLG8sdSl7cy5hY3RpdmUodT09PW4pfSl9fX0pO2F0LnR5cGUoInNlbGVjdC1jaGVja2JveCIse2NsYXNzTmFtZToiZHQtc2VsZWN0IixkZXRlY3Q6YXQudmVyc2lvbkNoZWNrKCIyLjEiKT97b25lT2Y6ZnVuY3Rpb24oKXtyZXR1cm4hMX0sYWxsT2Y6ZnVuY3Rpb24oKXtyZXR1cm4hMX0saW5pdDpmdW5jdGlvbih0LGUsbil7cmV0dXJuIHFyKGUpfX06ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT0ic2VsZWN0LWNoZWNrYm94Ij90OiExfSxvcmRlcjp7cHJlOmZ1bmN0aW9uKHQpe3JldHVybiB0PT09IlgiPy0xOjB9fX0pO0V0LmV4dGVuZCghMCxhdC5kZWZhdWx0cy5vTGFuZ3VhZ2Use3NlbGVjdDp7YXJpYTp7cm93Q2hlY2tib3g6IlNlbGVjdCByb3cifX19KTthdC5yZW5kZXIuc2VsZWN0PWZ1bmN0aW9uKHQsZSl7dmFyIG49dD9hdC51dGlsLmdldCh0KTpudWxsLHI9ZT9hdC51dGlsLmdldChlKTpudWxsLHM9ZnVuY3Rpb24oaSxvLHUscCl7dmFyIGI9cC5zZXR0aW5ncy5hb0RhdGFbcC5yb3ddLGc9Yi5fc2VsZWN0X3NlbGVjdGVkLG09cC5zZXR0aW5ncy5vTGFuZ3VhZ2Uuc2VsZWN0LmFyaWEucm93Q2hlY2tib3g7cmV0dXJuIG89PT0iZGlzcGxheSI/RXQoIjxpbnB1dD4iKS5hdHRyKHsiYXJpYS1sYWJlbCI6bSxjbGFzczpWbigpLG5hbWU6cj9yKHUpOm51bGwsdHlwZToiY2hlY2tib3giLHZhbHVlOm4/bih1KTpudWxsLGNoZWNrZWQ6Z30pLm9uKCJpbnB1dCIsZnVuY3Rpb24oQyl7Qy5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2hlY2tlZD1FdCh0aGlzKS5jbG9zZXN0KCJ0ciIpLmhhc0NsYXNzKCJzZWxlY3RlZCIpfSlbMF06bz09PSJ0eXBlIj8ic2VsZWN0LWNoZWNrYm94IjpvPT09ImZpbHRlciI/IiI6Zz8iWCI6IiJ9O3JldHVybiBzLl9uYW1lPSJzZWxlY3RDaGVja2JveCIsc307YXQuZXh0Lm9yZGVyWyJzZWxlY3QtY2hlY2tib3giXT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmFwaSgpLmNvbHVtbihlLHtvcmRlcjoiaW5kZXgifSkubm9kZXMoKS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIHQuX3NlbGVjdC5pdGVtcz09PSJyb3ciP0V0KG4pLnBhcmVudCgpLmhhc0NsYXNzKHQuX3NlbGVjdC5jbGFzc05hbWUpLnRvU3RyaW5nKCk6dC5fc2VsZWN0Lml0ZW1zPT09ImNlbGwiP0V0KG4pLmhhc0NsYXNzKHQuX3NlbGVjdC5jbGFzc05hbWUpLnRvU3RyaW5nKCk6ITF9KX07RXQuZm4uRGF0YVRhYmxlLnNlbGVjdD1hdC5zZWxlY3Q7RXQoZG9jdW1lbnQpLm9uKCJwcmVJbml0LmR0LmR0U2VsZWN0IixmdW5jdGlvbih0LGUpe3QubmFtZXNwYWNlPT09ImR0IiYmYXQuc2VsZWN0LmluaXQobmV3IGF0LkFwaShlKSl9KTtMZS5CdXR0b25zLmpzemlwKHJvLmRlZmF1bHQpO0xlLmdldF9zZWxlY3RlZF9yb3dzPWZ1bmN0aW9uKHQsZSl7bGV0IHI9dC5yb3dzKCkuY291bnQoKS8yO3JldHVybiBBcnJheS5mcm9tKHQucm93cyh7c2VsZWN0ZWQ6ITB9KS5pbmRleGVzKCkubWFwKHM9PnM8cj9zOnMrZSkpfTtMZS5zZXRfc2VsZWN0ZWRfcm93cz1mdW5jdGlvbih0LGUsbil7bGV0IHI9dC5yb3dzKCkuY291bnQoKSxzPXIvMixpPXMrZSxvPXIrZTtuPUFycmF5LmZyb20obi5maWx0ZXIodT0+dT49MCYmdTxvJiYodTxzfHx1Pj1pKSkubWFwKHU9PnU8cz91OnUtZSkpLHQucm93cygpLmRlc2VsZWN0KCksdC5yb3dzKG4pLnNlbGVjdCgpfTt2YXIgYWM9TGU7dmFyIGV4cG9ydF9qUXVlcnk9dWQuZGVmYXVsdDtleHBvcnR7TGUgYXMgRGF0YVRhYmxlLGlkIGFzIERhdGVUaW1lLGFjIGFzIGRlZmF1bHQsZXhwb3J0X2pRdWVyeSBhcyBqUXVlcnl9OwovKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOgoKanN6aXAvZGlzdC9qc3ppcC5taW4uanM6CiAgKCohCiAgCiAgSlNaaXAgdjMuMTAuMSAtIEEgSmF2YVNjcmlwdCBjbGFzcyBmb3IgZ2VuZXJhdGluZyBhbmQgcmVhZGluZyB6aXAgZmlsZXMKICA8aHR0cDovL3N0dWFydGsuY29tL2pzemlwPgogIAogIChjKSAyMDA5LTIwMTYgU3R1YXJ0IEtuaWdodGxleSA8c3R1YXJ0IFthdF0gc3R1YXJ0ay5jb20+CiAgRHVhbCBsaWNlbmNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2Ugb3IgR1BMdjMuIFNlZSBodHRwczovL3Jhdy5naXRodWIuY29tL1N0dWsvanN6aXAvbWFpbi9MSUNFTlNFLm1hcmtkb3duLgogIAogIEpTWmlwIHVzZXMgdGhlIGxpYnJhcnkgcGFrbyByZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgOgogIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlY2EvcGFrby9ibG9iL21haW4vTElDRU5TRQogICopCgpqcXVlcnkvZGlzdC9qcXVlcnkuanM6CiAgKCohCiAgICogalF1ZXJ5IEphdmFTY3JpcHQgTGlicmFyeSB2My43LjEKICAgKiBodHRwczovL2pxdWVyeS5jb20vCiAgICoKICAgKiBDb3B5cmlnaHQgT3BlbkpTIEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycwogICAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQogICAqIGh0dHBzOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCiAgICoKICAgKiBEYXRlOiAyMDIzLTA4LTI4VDEzOjM3WgogICAqKQoKZGF0YXRhYmxlcy5uZXQvanMvZGF0YVRhYmxlcy5tanM6CiAgKCohIERhdGFUYWJsZXMgMi4xLjYKICAgKiDCqSBTcHJ5TWVkaWEgTHRkIC0gZGF0YXRhYmxlcy5uZXQvbGljZW5zZQogICAqKQoKZGF0YXRhYmxlcy5uZXQtZHQvanMvZGF0YVRhYmxlcy5kYXRhVGFibGVzLm1qczoKICAoKiEgRGF0YVRhYmxlcyBzdHlsaW5nIGludGVncmF0aW9uCiAgICogwqkgU3ByeU1lZGlhIEx0ZCAtIGRhdGF0YWJsZXMubmV0L2xpY2Vuc2UKICAgKikKCmRhdGF0YWJsZXMubmV0LWJ1dHRvbnMvanMvZGF0YVRhYmxlcy5idXR0b25zLm1qczoKICAoKiEgQnV0dG9ucyBmb3IgRGF0YVRhYmxlcyAzLjEuMgogICAqIMKpIFNwcnlNZWRpYSBMdGQgLSBkYXRhdGFibGVzLm5ldC9saWNlbnNlCiAgICopCgpkYXRhdGFibGVzLm5ldC1idXR0b25zLWR0L2pzL2J1dHRvbnMuZGF0YVRhYmxlcy5tanM6CiAgKCohIERhdGFUYWJsZXMgc3R5bGluZyB3cmFwcGVyIGZvciBCdXR0b25zCiAgICogwqkgU3ByeU1lZGlhIEx0ZCAtIGRhdGF0YWJsZXMubmV0L2xpY2Vuc2UKICAgKikKCmRhdGF0YWJsZXMubmV0LWJ1dHRvbnMvanMvYnV0dG9ucy5odG1sNS5taW4ubWpzOgogICgqIQogICAqIEhUTUw1IGV4cG9ydCBidXR0b25zIGZvciBCdXR0b25zIGFuZCBEYXRhVGFibGVzLgogICAqIMKpIFNwcnlNZWRpYSBMdGQgLSBkYXRhdGFibGVzLm5ldC9saWNlbnNlCiAgICoKICAgKiBGaWxlU2F2ZXIuanMgKDEuMy4zKSAtIE1JVCBsaWNlbnNlCiAgICogQ29weXJpZ2h0IMKpIDIwMTYgRWxpIEdyZXkgLSBodHRwOi8vZWxpZ3JleS5jb20KICAgKikKCmRhdGF0YWJsZXMubmV0LWJ1dHRvbnMvanMvYnV0dG9ucy5wcmludC5taW4ubWpzOgogICgqIQogICAqIFByaW50IGJ1dHRvbiBmb3IgQnV0dG9ucyBhbmQgRGF0YVRhYmxlcy4KICAgKiDCqSBTcHJ5TWVkaWEgTHRkIC0gZGF0YXRhYmxlcy5uZXQvbGljZW5zZQogICAqKQoKZGF0YXRhYmxlcy5uZXQtYnV0dG9ucy9qcy9idXR0b25zLmNvbFZpcy5taW4ubWpzOgogICgqIQogICAqIENvbHVtbiB2aXNpYmlsaXR5IGJ1dHRvbnMgZm9yIEJ1dHRvbnMgYW5kIERhdGFUYWJsZXMuCiAgICogwqkgU3ByeU1lZGlhIEx0ZCAtIGRhdGF0YWJsZXMubmV0L2xpY2Vuc2UKICAgKikKCmRhdGF0YWJsZXMubmV0LWZpeGVkY29sdW1ucy9qcy9kYXRhVGFibGVzLmZpeGVkQ29sdW1ucy5tanM6CiAgKCohIEZpeGVkQ29sdW1ucyA1LjAuMAogICAqIMKpIFNwcnlNZWRpYSBMdGQgLSBkYXRhdGFibGVzLm5ldC9saWNlbnNlCiAgICopCgpkYXRhdGFibGVzLm5ldC1maXhlZGNvbHVtbnMtZHQvanMvZml4ZWRDb2x1bW5zLmRhdGFUYWJsZXMubWpzOgogICgqISBEYXRhVGFibGVzIGludGVncmF0aW9uIGZvciBEYXRhVGFibGVzJyBGaXhlZENvbHVtbnMKICAgKiDCqSBTcHJ5TWVkaWEgTHRkIC0gZGF0YXRhYmxlcy5uZXQvbGljZW5zZQogICAqKQoKZGF0YXRhYmxlcy5uZXQta2V5dGFibGUvanMvZGF0YVRhYmxlcy5rZXlUYWJsZS5tanM6CiAgKCohIEtleVRhYmxlIDIuMTIuMQogICAqIMKpIFNwcnlNZWRpYSBMdGQgLSBkYXRhdGFibGVzLm5ldC9saWNlbnNlCiAgICopCgpkYXRhdGFibGVzLm5ldC1rZXl0YWJsZS1kdC9qcy9rZXlUYWJsZS5kYXRhVGFibGVzLm1qczoKICAoKiEgRGF0YVRhYmxlcyBzdHlsaW5nIHdyYXBwZXIgZm9yIEtleVRhYmxlCiAgICogwqkgU3ByeU1lZGlhIEx0ZCAtIGRhdGF0YWJsZXMubmV0L2xpY2Vuc2UKICAgKikKCmRhdGF0YWJsZXMubmV0LXJvd2dyb3VwL2pzL2RhdGFUYWJsZXMucm93R3JvdXAubWpzOgogICgqISBSb3dHcm91cCAxLjUuMAogICAqIMKpIFNwcnlNZWRpYSBMdGQgLSBkYXRhdGFibGVzLm5ldC9saWNlbnNlCiAgICopCgpkYXRhdGFibGVzLm5ldC1yb3dncm91cC1kdC9qcy9yb3dHcm91cC5kYXRhVGFibGVzLm1qczoKICAoKiEgRGF0YVRhYmxlcyBzdHlsaW5nIHdyYXBwZXIgZm9yIFJvd0dyb3VwCiAgICogwqkgU3ByeU1lZGlhIEx0ZCAtIGRhdGF0YWJsZXMubmV0L2xpY2Vuc2UKICAgKikKCmRhdGF0YWJsZXMubmV0LWRhdGV0aW1lL2Rpc3QvZGF0YVRhYmxlcy5kYXRlVGltZS5tanM6CiAgKCohIERhdGVUaW1lIHBpY2tlciBmb3IgRGF0YVRhYmxlcy5uZXQgdjEuNS4zCiAgICoKICAgKiDCqSBTcHJ5TWVkaWEgTHRkLCBhbGwgcmlnaHRzIHJlc2VydmVkLgogICAqIExpY2Vuc2U6IE1JVCBkYXRhdGFibGVzLm5ldC9saWNlbnNlL21pdAogICAqKQoKZGF0YXRhYmxlcy5uZXQtc2VhcmNoYnVpbGRlci9qcy9kYXRhVGFibGVzLnNlYXJjaEJ1aWxkZXIubWpzOgogICgqISBTZWFyY2hCdWlsZGVyIDEuOC4wCiAgICogwqlTcHJ5TWVkaWEgTHRkIC0gZGF0YXRhYmxlcy5uZXQvbGljZW5zZS9taXQKICAgKikKCmRhdGF0YWJsZXMubmV0LXNlYXJjaGJ1aWxkZXItZHQvanMvc2VhcmNoQnVpbGRlci5kYXRhVGFibGVzLm1qczoKICAoKiEgRGF0YVRhYmxlcyBpbnRlZ3JhdGlvbiBmb3IgRGF0YVRhYmxlcycgU2VhcmNoQnVpbGRlcgogICAqIMKpIFNwcnlNZWRpYSBMdGQgLSBkYXRhdGFibGVzLm5ldC9saWNlbnNlCiAgICopCgpkYXRhdGFibGVzLm5ldC1zZWFyY2hwYW5lcy9qcy9kYXRhVGFibGVzLnNlYXJjaFBhbmVzLm1qczoKICAoKiEgU2VhcmNoUGFuZXMgMi4zLjIKICAgKiDCqSBTcHJ5TWVkaWEgTHRkIC0gZGF0YXRhYmxlcy5uZXQvbGljZW5zZQogICAqKQoKZGF0YXRhYmxlcy5uZXQtc2VhcmNocGFuZXMtZHQvanMvc2VhcmNoUGFuZXMuZGF0YVRhYmxlcy5tanM6CiAgKCohIEJvb3RzdHJhcCBpbnRlZ3JhdGlvbiBmb3IgRGF0YVRhYmxlcycgU2VhcmNoUGFuZXMKICAgKiDCqSBTcHJ5TWVkaWEgTHRkIC0gZGF0YXRhYmxlcy5uZXQvbGljZW5zZQogICAqKQoKZGF0YXRhYmxlcy5uZXQtc2VsZWN0L2pzL2RhdGFUYWJsZXMuc2VsZWN0Lm1qczoKICAoKiEgU2VsZWN0IGZvciBEYXRhVGFibGVzIDIuMC41CiAgICogwqkgU3ByeU1lZGlhIEx0ZCAtIGRhdGF0YWJsZXMubmV0L2xpY2Vuc2UvbWl0CiAgICopCgpkYXRhdGFibGVzLm5ldC1zZWxlY3QtZHQvanMvc2VsZWN0LmRhdGFUYWJsZXMubWpzOgogICgqISBEYXRhVGFibGVzIHN0eWxpbmcgd3JhcHBlciBmb3IgU2VsZWN0CiAgICogwqkgU3ByeU1lZGlhIEx0ZCAtIGRhdGF0YWJsZXMubmV0L2xpY2Vuc2UKICAgKikKKi8K";
</script>
<noscript>
<a href="https://mwouts.github.io/itables/"><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" width="64" viewbox="0 0 500 400" style="font-family: 'Droid Sans', sans-serif;">
    <g style="fill:#d9d7fc">
        <path d="M100,400H500V357H100Z"></path>
        <path d="M100,300H400V257H100Z"></path>
        <path d="M0,200H400V157H0Z"></path>
        <path d="M100,100H500V57H100Z"></path>
        <path d="M100,350H500V307H100Z"></path>
        <path d="M100,250H400V207H100Z"></path>
        <path d="M0,150H400V107H0Z"></path>
        <path d="M100,50H500V7H100Z"></path>
    </g>
    <g style="fill:#1a1366;stroke:#1a1366;">
   <rect x="100" y="7" width="400" height="43">
    <animate attributename="width" values="0;400;0" dur="5s" repeatcount="indefinite"></animate>
      <animate attributename="x" values="100;100;500" dur="5s" repeatcount="indefinite"></animate>
  </rect>
        <rect x="0" y="107" width="400" height="43">
    <animate attributename="width" values="0;400;0" dur="3.5s" repeatcount="indefinite"></animate>
    <animate attributename="x" values="0;0;400" dur="3.5s" repeatcount="indefinite"></animate>
  </rect>
        <rect x="100" y="207" width="300" height="43">
    <animate attributename="width" values="0;300;0" dur="3s" repeatcount="indefinite"></animate>
    <animate attributename="x" values="100;100;400" dur="3s" repeatcount="indefinite"></animate>
  </rect>
        <rect x="100" y="307" width="400" height="43">
    <animate attributename="width" values="0;400;0" dur="4s" repeatcount="indefinite"></animate>
      <animate attributename="x" values="100;100;500" dur="4s" repeatcount="indefinite"></animate>
  </rect>
        <g style="fill:transparent;stroke-width:8; stroke-linejoin:round" rx="5">
            <g transform="translate(45 50) rotate(-45)">
                <circle r="33" cx="0" cy="0"></circle>
                <rect x="-8" y="32" width="16" height="30"></rect>
            </g>

            <g transform="translate(450 152)">
                <polyline points="-15,-20 -35,-20 -35,40 25,40 25,20"></polyline>
                <rect x="-15" y="-40" width="60" height="60"></rect>
            </g>

            <g transform="translate(50 352)">
                <polygon points="-35,-5 0,-40 35,-5"></polygon>
                <polygon points="-35,10 0,45 35,10"></polygon>
            </g>

            <g transform="translate(75 250)">
                <polyline points="-30,30 -60,0 -30,-30"></polyline>
                <polyline points="0,30 -30,0 0,-30"></polyline>
            </g>

            <g transform="translate(425 250) rotate(180)">
                <polyline points="-30,30 -60,0 -30,-30"></polyline>
                <polyline points="0,30 -30,0 0,-30"></polyline>
            </g>
        </g>
    </g>
</svg>
</a>
This is the <code>init_notebook_mode</code> cell from ITables v2.2.4<br>
(you should not see this message - is your notebook <it>trusted</it>?)
</noscript>
</div>
</div>
<div class="cell-output cell-output-display">
<table id="itables_4b228aec_ce41_48c9_b958_2ef18483b379" class="display nowrap" data-quarto-disable-processing="true" style="table-layout:auto;width:auto;margin:auto;caption-side:bottom">
<thead>
    <tr style="text-align: right;">
      
      <th>company_name</th>
      <th>event_type</th>
      <th>event_description</th>
      <th>cost</th>
      <th>cost_currency</th>
      <th>cost_type</th>
      <th>industry</th>
      <th>sic_descriptions</th>
      <th>locality</th>
      <th>annual_report_link</th>
      <th>report_extract</th>
    </tr>
  </thead><tbody><tr>
<td style="vertical-align:middle; text-align:left">
<a href="https://mwouts.github.io/itables/"><svg class="main-svg" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" width="64" viewbox="0 0 500 400" style="font-family: 'Droid Sans', sans-serif;">
    <g style="fill:#d9d7fc">
        <path d="M100,400H500V357H100Z"></path>
        <path d="M100,300H400V257H100Z"></path>
        <path d="M0,200H400V157H0Z"></path>
        <path d="M100,100H500V57H100Z"></path>
        <path d="M100,350H500V307H100Z"></path>
        <path d="M100,250H400V207H100Z"></path>
        <path d="M0,150H400V107H0Z"></path>
        <path d="M100,50H500V7H100Z"></path>
    </g>
    <g style="fill:#1a1366;stroke:#1a1366;">
   <rect x="100" y="7" width="400" height="43">
    <animate attributename="width" values="0;400;0" dur="5s" repeatcount="indefinite"></animate>
      <animate attributename="x" values="100;100;500" dur="5s" repeatcount="indefinite"></animate>
  </rect>
        <rect x="0" y="107" width="400" height="43">
    <animate attributename="width" values="0;400;0" dur="3.5s" repeatcount="indefinite"></animate>
    <animate attributename="x" values="0;0;400" dur="3.5s" repeatcount="indefinite"></animate>
  </rect>
        <rect x="100" y="207" width="300" height="43">
    <animate attributename="width" values="0;300;0" dur="3s" repeatcount="indefinite"></animate>
    <animate attributename="x" values="100;100;400" dur="3s" repeatcount="indefinite"></animate>
  </rect>
        <rect x="100" y="307" width="400" height="43">
    <animate attributename="width" values="0;400;0" dur="4s" repeatcount="indefinite"></animate>
      <animate attributename="x" values="100;100;500" dur="4s" repeatcount="indefinite"></animate>
  </rect>
        <g style="fill:transparent;stroke-width:8; stroke-linejoin:round" rx="5">
            <g transform="translate(45 50) rotate(-45)">
                <circle r="33" cx="0" cy="0"></circle>
                <rect x="-8" y="32" width="16" height="30"></rect>
            </g>

            <g transform="translate(450 152)">
                <polyline points="-15,-20 -35,-20 -35,40 25,40 25,20"></polyline>
                <rect x="-15" y="-40" width="60" height="60"></rect>
            </g>

            <g transform="translate(50 352)">
                <polygon points="-35,-5 0,-40 35,-5"></polygon>
                <polygon points="-35,10 0,45 35,10"></polygon>
            </g>

            <g transform="translate(75 250)">
                <polyline points="-30,30 -60,0 -30,-30"></polyline>
                <polyline points="0,30 -30,0 0,-30"></polyline>
            </g>

            <g transform="translate(425 250) rotate(180)">
                <polyline points="-30,30 -60,0 -30,-30"></polyline>
                <polyline points="0,30 -30,0 0,-30"></polyline>
            </g>
        </g>
    </g>
</svg>
</a>
Loading ITables v2.2.4 from the <code>init_notebook_mode</code> cell...
(need <a href="https://mwouts.github.io/itables/troubleshooting.html">help</a>?)</td>
</tr></tbody>
</table>
<script type="module">
    const { DataTable, jQuery: $ } = await import(window._datatables_src_for_itables_2_2_4);

    document.querySelectorAll("#itables_4b228aec_ce41_48c9_b958_2ef18483b379:not(.dataTable)").forEach(table => {
        if (!(table instanceof HTMLTableElement))
            return;

        // Define the table data
        const data = [["144 Midland Road Limited", "financial irregularities", "Misappropriation of company assets", 11000000.0, "\u00a3", "estimated amount stolen", "REAL ESTATE ACTIVITIES", "Letting and operating of own or leased real estate (other than Housing Association real estate and conference and exhibition services) nec", "Rochester", "https://find-and-update.company-information.service.gov.uk/company/10329110/filing-history/MzQyOTk3NTMwN2FkaXF6a2N4/document?format=xhtml&download=0", "On 10 November 2023 Mr Dodi (the controlling shareholder and controlling director of Ordan\u00a0Limited and other relevant associated companies) was removed as a director of the Company for\u00a0reasons which included a lack of transparency on the accounts, failure of his fiduciary duties and\u00a0failure to act in the best interests of the Company.\\n\\n\\nThe directors have engaged a third party to carry out a forensic accounting exercise and without\u00a0seeking to pre-empt the conclusions of this, an initial review of the Company's financial records by its\u00a0directors has unearthed extensive evidence of what would seem to be material misappropriation of\u00a0Company assets by Mr Dodi. This includes, but is not limited to, a clear pattern of funds having\u00a0apparently been introduced to the Company by way of undocumented and undisclosed (to other\u00a0directors) \"loans\" by Ordan which were thereafter improperly utilised and paid away by the\u00a0Company at the direction of Mr Dodi (solely and without reference to other directors) in order to\u00a0discharge obligations to other entities controlled by Mr Dodi, for example, Nofax Enterprises Limited,\u00a0in respect of which the Company had no liability. At the same time this scheme wrongfully created\u00a0an entirely false debtor/creditor position in the books and records of the Company as between the\u00a0Company and Ordan. Given his controlling position at Ordan and his directorship of that company,\u00a0Ordan would have had imputed knowledge (if not actual knowledge) of his breaches of duty as a\u00a0director of the Company. Moreover, Ordan would appear to have been an active participant in this\u00a0programme.\\n\\n\\nThe directors believe that losses flowing from Mr Dodi's activities could be as high as \u00a311m (or\u00a0more). Recent discussions with the forensic accounting team are encouraging and from the present\u00a0information available to them (subject to further analysis and clarification) they expect to be able to\u00a0support a claim of not less that \u00a33.9m."], ["THE ECU GROUP PLC", "financial irregularities", "Company ordered to pay legal fees", 8863910.0, "\u00a3", "legal fees", "FINANCIAL AND INSURANCE ACTIVITIES", "Fund management activities", "London", "https://find-and-update.company-information.service.gov.uk/company/02296619/filing-history/MzQyNjcyMzI5MGFkaXF6a2N4/document?format=xhtml&download=0", "However, as previously reported, on 1 November 2021, the High Court held that the Company\u2019s Claims against entities with the HSBC Group for breach of contract and fraud in relation to their handling and execution of the Company\u2019s substantial foreign exchange stop-loss and market orders from 2004 to 2006.were time barred. Notwithstanding HSBC admitting some twenty counts of fraud and theft, the Company was nonetheless ordered by the Court to pay HSBC\u2019s costs on an indemnity basis and, on 13 December 2021, the Company was required to make a payment-on-account of $11.0 million. The Company had previously procured \u00a35.0 million in ATE Insurance together with an additional \u00a32.5 million deposit placed in escrow as security for costs and which were paid in December 2021 pursuant to the payment-on-account Order. However the Company was unable to pay a $1.0 million balance of the payment on account.\\n\u00a0\\nAs a consequence, the Company\u2019s financial resources became seriously constrained and in 2022 The Board decided to wind down and cease its normal trading operations. In March 2022, the Company closed its Discretionary Currency Debt Management Programme and shortly after closed its branch operation in Abu Dhabi.\\n\u00a0\\nIn April 2022 HSBC parties applied to the High Court for an order requiring the Company\u2019s principal litigation funding provider, Therium Litigation Finance Atlas AFP IC (\u201cTherium\u201d), to be held jointly and severally liable with the Company for costs. On 24 June 2022, the Court ruled in favour of HSBC and ordered Therium to pay the $1.0 million balance of the aforementioned payment on account.\\n\u00a0\\nThe Company remains effectively \u201cmothballed\u201d, however the directors are of the opinion that there is significant potential revenue from third party claims in the future and it is in the interest of creditors for the company to continue to operate."], ["NUTRI-PAW LTD", "financial irregularities", "Company cash stolen via bank hacking fraud", 3778543.0, "\u00a3", "amount stolen", "WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES", "Retail sale of flowers, plants, seeds, fertilisers, pet animals and pet food in specialised stores", "London", "https://find-and-update.company-information.service.gov.uk/company/12819996/filing-history/MzQzNzc3NDIyNGFkaXF6a2N4/document?format=xhtml&download=0", "From 1 February 2024 to 31 March 2024 there was \u00a33,778,543 of cash stolen via a bank hacking fraud. Legal action and criminal reporting has led to the recovery of \u00a3800,424. The remaining \u00a32,978,119 has been written off as irrecoverable in the 2024 financial statements in line with the prudence concept, but attempts to recover this are ongoing."], ["CAPITA PENSION SOLUTIONS LIMITED", "cyber-attack", "Company incurred costs from cyber attack", 3600000.0, "\u00a3", "costs incurred", "FINANCIAL AND INSURANCE ACTIVITIES,FINANCIAL AND INSURANCE ACTIVITIES,FINANCIAL AND INSURANCE ACTIVITIES", "Pension funding,Other activities auxiliary to financial services, except insurance and pension funding,Other activities auxiliary to insurance and pension funding", "London", "https://find-and-update.company-information.service.gov.uk/company/02260524/filing-history/MzQxOTY5NzAyMmFkaXF6a2N4/document?format=xhtml&download=0", "In March 2023, a threat actor gained unauthorised access to certain of the Group\u2019s systems which caused disruption to client services in some parts of the Group\u2019s business. As a result of the incident, the Company incurred costs of \u00a33.6m, comprising specialist professional fees, recovery and remediation costs and investment to reinforce Capita\u2019s cyber security environment."], ["LIGHTSKY GROUP LIMITED", "financial irregularities", "Company verified financial irregularities amounting \u00a33,170,500", 3170500.0, "\u00a3", "irregular payments", "ACCOMMODATION AND FOOD SERVICE ACTIVITIES", "Other accommodation", "Bristol", "https://find-and-update.company-information.service.gov.uk/company/05703596/filing-history/MzQyMDI3OTMzNmFkaXF6a2N4/document?format=xhtml&download=0", "Following a detailed accounting review during 2022 going back to 2014 a total of \u00a32,545,340 was identified as payments made to Nick and Bridie Bradbury or third parties on their behalf which were previously charged to the operating expenses of the company. Following discussions with the company\u2019s auditors and senior management, adjustments to the financial statements were required and this led to the Board appointing \u00a0Deloitte to carry out an independent forensic review of the payments made to Nick and Bridie Bradbury.\\n\\nDeloitte forensic review - May 2023:\\nDeloitte was appointed by the Board to undertake an independent investigation into the suspected financial irregularities within Bradbury House, which included reviewing the above-mentioned findings of the Business review carried out in February 2022. The findings of the Deloitte investigation verified the Business review findings of \u00a32,545,340 and identified an additional \u00a3625,160 of financial irregularities, increasing to a total of \u00a33,170,500 irregular payments up to 30 April 2023.\\n\\nThe impact of these various adjustments has been several:\\n\\na) To increase EBITDA;\\nb) To increase Nick Bradbury's loan acount from \u00a3357,386 to \u00a33,527,886; and\\nc) To notify HMRC of the situation. The company has made a voluntary disclosure and is working with HMRC to regularize matters.\\n\\nDespite the turbulence caused in the company resulting from the discovery of the matters discussed above, the Board and the Executive Team are committed to bringing stability back to the company and continuing to provide a high quality service to the people in the community we support."], ["ELECTRIC GROUP HOLDINGS LIMITED", "arson", "Company venue damaged by arson", 2945000.0, "\u00a3", "insurance proceeds", "FINANCIAL AND INSURANCE ACTIVITIES", "Activities of other holding companies (not including agricultural, production, construction, distribution and financial services holding companies) nec", "London", "https://find-and-update.company-information.service.gov.uk/company/12490976/filing-history/MzQzOTMyNjc1MWFkaXF6a2N4/document?format=xhtml&download=0", "Electric Brixton continued to operate strongly, SWX Bristol re-launched and NX Newcastle launched successfully in September 2022. SWX Bristol reopened following a substantial refurbishment following the arson at the venue, for which the culprit was found and imprisoned.\u00a0Insurance proceeds were received in the period relating to the fire of \u00a32.945m (2022: \u00a3nil).\u00a0NX Newcastle, following a significant refurbishment, opened as a new venue under Group operation for the first time to great acclaim."], ["PURPLE SURGICAL MANUFACTURING LIMITED", "financial irregularities", "Company fell victim to fraudulent suppliers", 1700870.0, "\u00a3", "amount stolen", "MANUFACTURING", "Other manufacturing nec", "Shenley", "https://find-and-update.company-information.service.gov.uk/company/04319848/filing-history/MzQxNjI2NzE3NmFkaXF6a2N4/document?format=xhtml&download=0", "Fraud and litigation\\nIt is highly regrettable that during the urgent search for reputable suppliers of PPE during the COVID-19 crisis, Purple Surgical were introduced to a number of unscrupulous, dishonest and fraudulent individuals and organisations.\\n\u00a0\\nWhilst Purple Surgical had success in locating, diligencing and contracting with legitimate, high quality suppliers, the company also fell victim to others who purported to be able to supply but did not.\\n\u00a0\\nAs at 30 June 2023, the company has provided \u00a31,700,870 (2022: \u00a31,700,870) for non-recovery of advanced payments to suppliers of PPE and potential costs."], ["Playpower UK Limited", "cyber-attack", "Company subjected to cyber-attack", 1100000.0, "\u00a3", "insurance payout", "PROFESSIONAL, SCIENTIFIC AND TECHNICAL ACTIVITIES", "Activities of head offices", "Egham", "https://find-and-update.company-information.service.gov.uk/company/05545144/filing-history/MzQzNzQ5MzQ1OWFkaXF6a2N4/document?format=xhtml&download=0", "Following a cyber-attack on the Company\u2019s systems in September 2021, there was a significant increase in the on-going IT cyber defence costs of the Company. While no system offers 100% protection, management of the Company believes that they have taken all reasonable measures to defend the Company against future attack.\\nIn 2022 HAGS received a payment from its insurers under its cyber policy of \u00a31.1 million. This has been reported as an Exceptional Item in that year."], ["100 Percent Group Limited", "theft", "Company break in and theft of goods", 1061281.0, "\u00a3", "uninsured loss", "CONSTRUCTION", "Specialised construction activities (other than scaffold erection) nec", "Manchester", "https://find-and-update.company-information.service.gov.uk/company/06930633/filing-history/MzQzNzYxOTEwOWFkaXF6a2N4/document?format=xhtml&download=0", "The exceptional item of \u00a31,061,281 relates to an uninsured loss following the break in and theft of customer goods at one of\u00a0the company's warehouse facilities.\\n\\n\\nIt also includes additional operational costs incurred during the period after the break in, that were necessary to ensure\u00a0continued insurance cover."], ["ADMI Limited", "theft", "Company premises broken into and stock stolen", 1000000.0, "\u00a3", "amount stolen", "WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES", "Retail sale of computers, peripheral units and software in specialised stores", "Newcastle", "https://find-and-update.company-information.service.gov.uk/company/05981051/filing-history/MzQwOTc4MDg5MWFkaXF6a2N4/document?format=xhtml&download=0", "On 2nd October 2023 the company\u2019s premises were broken into and just over \u00a31 Million of stock was stolen. The Directors have been working closely with the police and have thus far managed to recover just under \u00a3300,000. Investigations are ongoing and the company is hopeful that they will be able to recover more.\\n\\nThe company\u2019s busiest period of the year is quarter 4 and trading in 2023 in this period was excellent. The company has recovered well from the loss of stock and cash-flow is much improved and back to normal."], ["G B KENT & SONS PLC", "financial irregularities", "Company fell victim to APP scam", 879251.0, "\u00a3", "theft and loss of funds", "MANUFACTURING", "Manufacture of brooms and brushes", "Hemel Hempstead", "https://find-and-update.company-information.service.gov.uk/company/00066471/filing-history/MzQyNjY5ODI4MmFkaXF6a2N4/document?format=xhtml&download=0", "7. EXCEPTIONAL ITEMS\\n31.12.23 31.12.22\\n\u00a3    \u00a3   \\nExceptional items (879,251 ) -\\n\\nDuring the year the business fell victim to a sophisticated Authorised Push Payment (APP) scam, resulting in the theft and loss of funds."], ["OSG UK Limited", "financial irregularities", "Company incurred loss due to fraud", 720188.0, "\u00a3", "loss", "MANUFACTURING", "Manufacture of tools", "Basildon", "https://find-and-update.company-information.service.gov.uk/company/00963167/filing-history/MzQyNDE0ODAxMWFkaXF6a2N4/document?format=xhtml&download=0", "Exceptional item\\n2023\\n2022\\n\u00a3\\n\u00a3\\nExpenditure\\nExceptional costs\\n720,188\\n-\\nDuring the year, the company was a victim of a fraud perpetrated by an external party and incurred a one off loss. The exceptional costs are made up of the total loss less amounts recovered. At the balance sheet date, the company was in communication with their bank to attempt to recover further amounts, which will only be recognised when recovery is virtually certain."], ["NICE UK LIMITED", "financial irregularities", "Company victim of financial scam", 699273.0, "\u00a3", "amount stolen", "MANUFACTURING", "Manufacture of other electrical equipment", "Sutton In Ahsfield", "https://find-and-update.company-information.service.gov.uk/company/04683828/filing-history/MzQxNzc1NjU3MGFkaXF6a2N4/document?format=xhtml&download=0", "Exceptional item\\n2023\\n2022\\n\u00a3\\n\u00a3\\nExpenditure\\nExceptional item\\n699,273\\n-\\nDuring the year company was the victim of a financial scam. Despite legal efforts no money was recovered so the loss of money together with the associated legal costs have been written off as an exceptional item."], ["Muniment Titanium Developments Limited", "financial irregularities", "Company property unlawfully transferred to related company", 538224.0, "\u00a3", "loss", "CONSTRUCTION", "Development of building projects", "Kettering", "https://find-and-update.company-information.service.gov.uk/company/11216722/filing-history/MzQyMDU3OTY5M2FkaXF6a2N4/document?format=xhtml&download=0", "10.\u00a0Contingent Assets\\n\\nA related party submitted claims for payment over and above the agreed contractual amount of \u00a3656,130 and withdrew funds from the bank account of the company.\u00a0\\n\\nThe accounts initially make allowance for the sum of \u00a3538,224 calculated as follows:\\nPayments to Contractor \u00a31,194,354\\nLess: Fixed Price contract \u00a3656,130\\n\\nThe disputed sum of at least \u00a3538,224 has been included as a reduction in cash and recognised as a loss in the 2021 accounts.\\nCourt proceedings were commenced against the related party and related companies to recover the amount taken above the agreed contractual amount.\\n\\nInvestigations revealed that in 2022 a property belonging to the company had been unlawfully transferred to a related company without the approval of the Board of Directors\\n\\nAdditional claims may be made against the related party and/or related companies for further damages and additional sums, including seeking a court order for the return of the property which was unlawfully transferred to a related company."], ["Springpharm Limited", "theft", "Company victim of burglary at storage unit", 458000.0, "\u00a3", "stock losses", "WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES", "Dispensing chemist in specialised stores", "Tamworth", "https://find-and-update.company-information.service.gov.uk/company/04635181/filing-history/MzQyNDIxMDIzMmFkaXF6a2N4/document?format=xhtml&download=0", "In 2018, the company was the victim of a criminal act, specifically a burglary at its main storage unit, resulting in stock losses amounting to \u00a3458,000. To date, the company's insurers have neither accepted nor denied liability for the company\u2019s claim. The matter has been referred to the Insurance Ombudsman, whose decision is currently awaited by the company."], ["RELENDEX LIMITED", "financial irregularities", "Company impacted by client data fraud", 400000.0, "\u00a3", "amount stolen", "FINANCIAL AND INSURANCE ACTIVITIES", "Other financial service activities, except insurance and pension funding, (not including security dealing on own account and factoring) nec", "London", "https://find-and-update.company-information.service.gov.uk/company/07486328/filing-history/MzQyMzExMzgzOGFkaXF6a2N4/document?format=xhtml&download=0", "A client of the company fell victim to a data fraud which impacted on their instructions concerning their financial activities including in respect of Relendex. The company is working with the client and the client\u2019s bankers to resolve the matter including through the courts. \u00a0The total loss to the client in relation to its transactions with the company was \u00a3400,000. At the date of reporting, the client is seeking a full recovery from its bankers but it is possible that the company may agree to some contribution to the client\u2019s loss in the future, depending on the terms of any settlement between the bankers and the client, as a gesture of goodwill."], ["On Site Safety Solutions Limited", "financial irregularities", "Company purchased net investments subject to investigation", 357470.0, "\u00a3", "investment subject to police investigation", "ACCOMMODATION AND FOOD SERVICE ACTIVITIES,ACCOMMODATION AND FOOD SERVICE ACTIVITIES,PROFESSIONAL, SCIENTIFIC AND TECHNICAL ACTIVITIES,ADMINISTRATIVE AND SUPPORT SERVICE ACTIVITIES", "Licensed restaurants,Public houses and bars,Management consultancy activities (other than financial management),Other human resources provision", "Amlwch", "https://find-and-update.company-information.service.gov.uk/company/05583325/filing-history/MzQzMDU1Mzk3MGFkaXF6a2N4/document?format=xhtml&download=0", "During 2015 and 2016 the company purchased net investments totalling \u00a3357,470 that have been subject to a police investigation. Up to the balance sheet date \u00a368,766 had been recovered in compensation, leaving a balance of \u00a3288,704. It it is not known for certain how much of this will be recovered."], ["CELLULAR TECHNOLOGY EUROPE LIMITED", "cyber-attack", "Company victim of cybercrime", 302127.0, "\u00a3", "maximum exposure", "WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES", "Wholesale of chemical products", "Stafford", "https://find-and-update.company-information.service.gov.uk/company/05591371/filing-history/MzQyNDYwMDYwMWFkaXF6a2N4/document?format=xhtml&download=0", "There is a potential issue with a supplier of Cellular Technology Europe Limited, who was the victim of cybercrime\u00a0during the previous financial year.\\n\\nThe maximum exposure for Cellular Technology could be \u00a3302,127, if the supplier seeks to pursue this company in\u00a0order to mitigate its loss.\\n\\nThe directors do not accept any liability as it was the suppliers system that was hacked."], ["D. H. Willis & Sons Limited", "corporate manslaughter", "Company employee died in workplace incident", 295000.0, "\u00a3", "court fine", "AGRICULTURE, FORESTRY AND FISHING,AGRICULTURE, FORESTRY AND FISHING", "Raising of other cattle and buffaloes,Support activities for crop production", "Richmond", "https://find-and-update.company-information.service.gov.uk/company/04567876/filing-history/MzQyNTU4OTA0M2FkaXF6a2N4/document?format=xhtml&download=0", "On 25 January 2019 there was a workplace incident involving the death of an employee of the company. The company and the directors, Mr Tim Willis and Mr Mark Willis, have faced criminal charges relating to this incident. Included in other creditors is the court fine of \u00a3295,000 (2023 \u00a3335,000), which will be paid in instalments of \u00a340,000 per year, commencing September 2023."], ["GRANT & BOWMAN LIMITED", "financial irregularities", "Company victim of email scams", 250637.0, "\u00a3", "amount stolen", "WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES", "Non-specialised wholesale trade", "Lower Road", "https://find-and-update.company-information.service.gov.uk/company/00918578/filing-history/MzQxNjEyMjkwNWFkaXF6a2N4/document?format=xhtml&download=0", "In the previous year the company was the victim of 2 email scams resulting in payments of \u00a3250,637 to fraudulent bank accounts. To prevent this from happening in future the directors have implemented a policy of verifying any new bank details by telephone."], ["TENGTOOLS UK LIMITED", "theft", "Company stock stolen at Flitwick location", 232766.0, "\u00a3", "stolen goods cost ", "WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES", "Wholesale of other machinery and equipment", "Flitwick", "https://find-and-update.company-information.service.gov.uk/company/10278801/filing-history/MzQzOTc5OTQ0N2FkaXF6a2N4/document?format=xhtml&download=0", "Exceptional costs\\n2024\\n2023\\n\u00a3\\n\u00a3\\n\\nExceptional costs\\n232,766\\n-\\n\\n\\nExceptional costs reported within these financial statements total \u00a3232,766 (2023: \u00a3nil), additional detail on these costs can be found in Note 1 of these financial statements."], ["ESSEX CARE CONSORTIUM LIMITED", "theft", "Company suffered banking theft", 230625.0, "\u00a3", "amount stolen", "HUMAN HEALTH AND SOCIAL WORK ACTIVITIES", "Other residential care activities", "Colchester", "https://find-and-update.company-information.service.gov.uk/company/04340251/filing-history/MzQ0OTE3MTYyNWFkaXF6a2N4/document?format=xhtml&download=0", "After the balance sheet date the company suffered a banking theft that resulted in a loss of funds totalling \u00a3230,625. The director is currently investigating the recovery of the funds, but there is no current expectation as to the amounts that may be recovered."], ["FILM DISTRIBUTORS' ASSOCIATION LIMITED", "copyright infringement", "Company pursued individual who camcorded films", 216000.0, "\u00a3", "confiscation order", "OTHER SERVICE ACTIVITIES", "Activities of professional membership organisations", "London", "https://find-and-update.company-information.service.gov.uk/company/00142378/filing-history/MzQzNzc4NjE4MWFkaXF6a2N4/document?format=xhtml&download=0", "Directly involved in the professional investigation, intelligence gathering and research of 155 in-cinema copyright theft incidents, successful FCPA detections led to 10 police arrests and six recorded cautions. A high-impact prosecution concluded in Oct 2023, where an individual who camcorded four newly released films was convicted of multiple offences.\\nFCPA continued to assist Law Enforcement bodies in examining counterfeit discs and ISDs (illicit streaming devices). In Nov 2023 a case returned to court following an offender\u2019s 2021 imprisonment \u2013 resulting in the offender being ordered to pay a confiscation order of \u00a3216k, one of the most significant Proceeds of Crime ever prosecuted."], ["PIRATE PACKAGING LTD", "poaching", "Company director dismissed for contract breaches", 200000.0, "\u00a3", "legal costs", "WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES", "Non-specialised wholesale trade", "Enfield", "https://find-and-update.company-information.service.gov.uk/company/10660833/filing-history/MzQzNzY1MjY5M2FkaXF6a2N4/document?format=xhtml&download=0", "During the fiscal year, a significant event occurred that has materially affected the financial position of the company. A director of the company was dismissed due to several significant breaches of directorial and shareholders contractual duties, centring around the setting up and trading in an unauthorised competing company (Xeco Ltd \u2013 company number 13813914). Thus causing the movement of 21 customers whom traded with Pirate Packaging to move trade to Xeco Ltd. Legal action was taken in the High Court against the director and Xeco Ltd in 2022 / 2023.\\nThe company successfully won the legal case (Claim Number: CC-2023-MAN-000004 at the High Court of Justice Business and Property in Manchester); however, the process resulted in substantial legal costs amounting to over \u00a3200,000. Along with the diversion of trade resulting in lower turnover and related profit. This unforeseen expenditure and diverted trade has placed the company in a challenging financial position.\\nA written resolution was passed on 20 December 2022, resulting in the cancellation of a director's entire shareholding in the company.\\nDespite the current financial difficulty, the company anticipates an improvement in its future outlook. The management is taking necessary measures to ensure the company\u2019s financial stability and growth. The dismissal of the director and the successful legal case underscore the company\u2019s commitment to good corporate governance and ethical business practices.\\nThis event is considered a non-adjusting event according to IAS 10 - Events After The Reporting Period. Therefore, the financial statements as of 31 December 2023 do not reflect this event."], ["RIVER MOUNTS JEWELLERY LIMITED", "theft", "Company subject to stock theft", 185000.0, "\u00a3", "value of stolen stock", "MANUFACTURING", "Manufacture of jewellery and related articles", "Birmingham", "https://find-and-update.company-information.service.gov.uk/company/08124228/filing-history/MzQyOTc4NTkyM2FkaXF6a2N4/document?format=xhtml&download=0", "The company was subject to the theft of stock valued at \u00a3185,000 after the balance sheet date. The Directors are liaising with the relevant authorities and its insurers, the final outcome of which had not been concluded at the time the financial statements were approved."], ["Croydon Town Centre BID Limited", "anti-social behaviour", "Company faced issues with anti-social behaviour", 183798.0, "\u00a3", "investment in safety services", "OTHER SERVICE ACTIVITIES", "Activities of other membership organisations nec", "Croydon", "https://find-and-update.company-information.service.gov.uk/company/06305257/filing-history/MzQzODEzMTI1MWFkaXF6a2N4/document?format=xhtml&download=0", "We are committed to improving the safety and security of our town centre, working with our partners including the Metropolitan Police Service and Local Authority. To address some of the serious issues facing businesses, including anti-social behaviour, shoplifting and conflict to staff. In 2023-2024, Croydon BID invested \u00a3183,798 to deliver services such as our Croydon BID Street Rangers and the growing Croydon BID Radio Link which now has over 75 users across the town centre."], ["TOWER HAMLETS MENCAP SOCIETY", "anti-social behaviour", "Company incurred high security costs", 174836.0, "\u00a3", "establishment expenses", "HUMAN HEALTH AND SOCIAL WORK ACTIVITIES", "Other social work activities without accommodation nec", "London", "https://find-and-update.company-information.service.gov.uk/company/07525249/filing-history/MzQxNjMzMTI5MmFkaXF6a2N4/document?format=xhtml&download=0", "The accounts disclose the payment of establishment expenses totalling \u00a3174,836 which includes an amount of \u00a3157,248 in respect of security costs in connection with the charity\u2019s leased headquarters at 619a Roman Road, London. A concern exists that this cost is disproportionate to the lease value and the benefit obtained by the charity. Having made enquiries of the charity\u2019s management and trustees we are advised that they consider the cost appropriate, having due regard to the welfare of their service users and staff and being in the context of a high crime area in the capital. We acknowledge these matters to be true however would also note that as a consequence of the Covid-19 pandemic and difficulties in obtaining and completing remedial works to the property\u2019s access, services and general condition, including damp, the property is yet to be brought into full operational use by the charity."], ["AFTERCARE RESPONSE LIMITED", "cyber-attack", "Company incurred costs due to cyber attack", 160652.0, "\u00a3", "exceptional costs", "WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES", "Maintenance and repair of motor vehicles", "High Wycombe", "https://find-and-update.company-information.service.gov.uk/company/11464204/filing-history/MzQzNDUwMzMxMGFkaXF6a2N4/document?format=xhtml&download=0", "Exceptional item\\n2023\\n2022\\n\u00a3\\n\u00a3\\n\\nExpenditure\\nExceptional costs associated with cyber attack\\n160,652\\n-\\n\\n\\nExceptional items represents specific time costs and computer expenses associated with the rebuild following a cyber attack that took place in the year. This was a one-off event that had a significant impact on the trading results of the business."], ["Pagoda Arts", "financial irregularities", "Company supported families who lost nearly \u00a3150,000 to fraud", 150000.0, "\u00a3", "amount stolen", "ADMINISTRATIVE AND SUPPORT SERVICE ACTIVITIES,EDUCATION,EDUCATION,ARTS, ENTERTAINMENT AND RECREATION", "Other business support service activities nec,Cultural education,Other education nec,Support activities to performing arts", "Liverpool", "https://find-and-update.company-information.service.gov.uk/company/07035527/filing-history/MzQwNjQwODY1NmFkaXF6a2N4/document?format=xhtml&download=0", "In response to a concerning scam affecting over 50 Chinese-speaking families across Liverpool, Manchester, Yorkshire, and London, Pagoda Arts (PA) took proactive measures to support the community. Disgruntled members reached out to PA via WeChat for assistance. PA promptly engaged with the police, facilitating communication for those facing language barriers through WeChat. Regular updates were provided, and police/immigration surgeries were organised to provide a trusted space for dialogue. PA actively worked to address the scam's aftermath, assisting families who collectively lost nearly \u00a3150,000 to fraud. Many of these families also faced profound uncertainty regarding their immigration status as a result of the scam."], ["JUNO MEDIA LIMITED", "cyber-attack", "Company suffered revenue loss from cyber attack", 128862.0, "\u00a3", "compensation for loss of revenue", "WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES,WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES", "Retail sale of audio and video equipment in specialised stores,Retail sale of music and video recordings in specialised stores", "London", "https://find-and-update.company-information.service.gov.uk/company/05505108/filing-history/MzQzMzgyMzU5MWFkaXF6a2N4/document?format=xhtml&download=0", "Included within sundry receipts is a one off receipt of \u00a3128,862 which is compensation for loss of revenue paid by the insurance company arising from a systems cyber attack in late August 2023."], ["Enchanted Wood Day Nursery Ltd", "financial irregularities", "Company reported suspected fraud to police", 118183.0, "\u00a3", "amount stolen", "HUMAN HEALTH AND SOCIAL WORK ACTIVITIES", "Child day-care activities", "Benfleet", "https://find-and-update.company-information.service.gov.uk/company/07312557/filing-history/MzQzMjM2NjQxNmFkaXF6a2N4/document?format=xhtml&download=0", "During the year under investigation the Trustees have bought to my attention a suspected fraud estimated to be in the region of \u00a3118,183 in the current and \u00a374,699 in the preceding year. The matter has been reported to police and an investigation is ongoing."], ["Conectid Limited", "financial irregularities", "Company subjected to fraud by perpetrators", 117677.0, "\u00a3", "provision for liabilities", "MANUFACTURING,MANUFACTURING,MANUFACTURING,PROFESSIONAL, SCIENTIFIC AND TECHNICAL ACTIVITIES", "Manufacture of consumer electronics,Manufacture of electric domestic appliances,Manufacture of games and toys (other than professional and arcade games and toys) nec,Management consultancy activities (other than financial management)", "Reading", "https://find-and-update.company-information.service.gov.uk/company/10810165/filing-history/MzQyMDU4ODAyNGFkaXF6a2N4/document?format=xhtml&download=0", "Background:\\nThe financial damage, which has been fully accounted for in our records, revealed profound systemic deficiencies. A substantial leak of internal communications has shed light on what appears to be either gross incompetence or potential collusion between the supposed regulatory protectors and the perpetrators of fraud. This has spurred the company to undertake rigorous legal measures to seek justice and reparations.\\n\\nLegal Actions and Financial Recovery:\\nFollowing the arrest of suspects and the seizure of assets by public prosecutors and police, the company is optimistic about recovering the full extent of its losses through ongoing private litigation. These proceedings are projected to conclude in the fourth quarter of 2024, yet with all the delays encountered so far, the directors and their legal advisors expect further delays."], ["STEPHEN SANDERSON TRANSPORT LIMITED", "financial irregularities", "Company victim of push payment fraud", 103763.0, "\u00a3", "fraud loss", "TRANSPORTATION AND STORAGE", "Freight transport by road", "Market Harborough", "https://find-and-update.company-information.service.gov.uk/company/02063681/filing-history/MzQyNTA0MTQzMGFkaXF6a2N4/document?format=xhtml&download=0", "Exceptional item\\n2023\\n2022\\n\u00a3\\n\u00a3\\nExpenditure\\nExceptional item - fraud loss\\n103,763\\n-\\nSTEPHEN SANDERSON TRANSPORT LIMITED\\nNOTES TO THE FINANCIAL STATEMENTS (CONTINUED)\\nFOR THE YEAR ENDED 31 DECEMBER 2023\\n4\\nExceptional item\\n(Continued)\\n- 16 -\\nThe company was a victim to push payment fraud during the year. Whilst losses were mitigated, the company has introduced new governance and measures to avoid further re-occurrences."], ["OPEN AWARDS", "cyber-attack", "Company cyber-related incidents reported", 100000.0, "\u00a3", "damage", "EDUCATION", "Other education nec", "Liverpool", "https://find-and-update.company-information.service.gov.uk/company/05462874/filing-history/MzM5OTM4NDQ1NWFkaXF6a2N4/document?format=xhtml&download=0", "Cyber related incidents\\n100,000"], ["THE MONTEFIORE ENDOWMENT", "financial irregularities", "Company suffered loss due to cyber fraud", 100000.0, "\u00a3", "amount stolen", "EDUCATION", "Other education nec", "London", "https://find-and-update.company-information.service.gov.uk/company/05604295/filing-history/MzQzMDM5NTk4OGFkaXF6a2N4/document?format=xhtml&download=0", "Other income represent an amount recovered from a loss due to an external fraud in the year ended 31 October 2021. In September 2021, the Charity suffered a loss amounting to \u00a3100,000 as a result of cyber fraud. The charity recovered \u00a35,000 in the prior year with 50% of the remaining loss suffered recovered in the current year amounting to \u00a347,500. Interest of \u00a36,923 was received on the remaining loss suffered."], ["Civic Voice", "theft", "Company funds stolen during active investigation", 92000.0, "\u00a3", "misappropriated funds", "ARTS, ENTERTAINMENT AND RECREATION", "Other amusement and recreation activities", "Lytham St Anne's", "https://find-and-update.company-information.service.gov.uk/company/07142946/filing-history/MzQxMjgwODE0N2FkaXF6a2N4/document?format=xhtml&download=0", "In April 2022, the trustees discovered that a significant sum of money had been misappropriated from one of\u00a0the organisation's bank accounts, which was the culmination of a series of thefts which began in June\u00a02020.This misappropriation of funds of just under \u00a392k was reported to the police and the Charity\u00a0Commission, and immediate steps were taken to safeguard the organisation's banking accounts against\u00a0further misappropriation. A rapid review of financial procedures was undertaken by the trustees. The trustees\u00a0met and discussed what action should be taken to ensure that Civic Voice could continue as a viable\u00a0organisation. This included the potential for a membership appeal, approaches to funding bodies for\u00a0emergency funding (including an approach to the Department for Levelling Up, Housing and Communities).\\n\\nInitial discussions were also held about the potential to recover the money through civil channels given that\u00a0any criminal investigation may take time and may not result in its recovery but it became obvious that the\u00a0misappropriation of such a large sum of money from a small charity presented an existential threat. The\u00a0misappropriated funds were effectively a buffer which Civic Voice intended to use as bridging funding;\u00a0although Civic Voice is a subscription organisation, it can only function in its current form (with paid staff) by\u00a0attracting further income from grants and consultancy.\\n\\nThe reserve fund provided a bridge to smooth out the financial profile of Civic Voice when grants were coming\u00a0to an end and new grants were yet to begin. This money is no longer available for that purpose, and a\u00a0significant \"part two\" lottery bid that Trustees were planning to submit on the back of the successful \u00a350k\u00a0grant received in September 2021, had to be put on hold. Obtaining significant grant funding in the\u00a0circumstances where a theft is under active investigation, is evidently also problematic.\\n\\nWe are pleased to report that we are now very hopeful that the stolen funds will be recovered and other\u00a0consultancy and grant funding is also assumed."], ["SPIN MINING AND METALS LIMITED", "theft", "Company client's minerals stock reportedly stolen", 85000.0, "\u00a3", "potential loss including legal costs", "MINING AND QUARRYING,MINING AND QUARRYING,TRANSPORTATION AND STORAGE,TRANSPORTATION AND STORAGE", "Mining of other non-ferrous metal ores,Support activities for other mining and quarrying,Sea and coastal freight water transport,Freight air transport", "London", "https://find-and-update.company-information.service.gov.uk/company/12382900/filing-history/MzQxNzM5NDcwMmFkaXF6a2N4/document?format=xhtml&download=0", "The Company purchased 100% of the shares of Spin Mining and Metals Zambia limited during the year. The Company accrued revenue from a mineral transaction of \u00a380,000 during the year in Zambia. There is the potential for legal action against the Zambian fully owned subsidiary for \u00a385,000 including legal costs due to a stock of minerals belonging to a client being stolen. There are police reports and evidence of the loss. The Directors consider it prudent to reserve against the potential full loss that the Zambian subsidiary may suffer if legal action is successfully taken against the Zambian Company. The Company is also currently carrying out mineral trading. There are unrealised profits on mining trading of \u00a3873,016 which have not been accounted for as the value is uncertain until the trade is completed."], ["KOOLKOMPANY LTD", "financial irregularities", "Company misappropriated funds by Finance Director", 74344.0, "\u00a3", "amount stolen", "WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES", "Retail sale of clothing in specialised stores", "Southampton", "https://find-and-update.company-information.service.gov.uk/company/09560587/filing-history/MzQxMjQwNDcwMmFkaXF6a2N4/document?format=xhtml&download=0", "Loan to Michael James Trodd\\nLoan to Michael James Trodd of \u00a335,056.91 should be ascribed to the actions of the previous Finance Director, Michael Trodd, against whom, at the time of filing, there is an on-going investigation being conducted by the Hampshire Constabulary.\\n\u00a0\\nThe police investigation is being supported by a report from Forths, the independent forensic accountants, which showed a sum of \u00a374,344.54 as having been misappropriated by Mr Trodd as of 4 December 2020. It should also be noted that this sum, according to Forths, may change according to further evidence that may be gathered."], ["SPORTS PROMOTION CONSULTANCY LTD", "financial irregularities", "Company suffered losses due to unauthorized payments", 73388.69, "\u00a3", "amount stolen", "ARTS, ENTERTAINMENT AND RECREATION", "Other sports activities (not including activities of racehorse owners) nec", "Marchwood", "https://find-and-update.company-information.service.gov.uk/company/03073078/filing-history/MzQzMzgzMzI1OWFkaXF6a2N4/document?format=xhtml&download=0", "Mr Robert Catcher was appointed a Director on 17 January 2005, prior to which he appears to have acted as a Shadow Director as defined at section 741(2) of the Companies Act 1985 (\"CA 1985\"). In both capacities he made payments from the company's bank accounts during 2003/04, 2004/05 and 2005/06. There is evidence that these were for private purposes, including personal withdrawals and benefits for him and his family, or for the benefit of other persons and businesses connected to him. Requests to Mr Catcher for documents to justify these payments were ignored and a commitment to return any amounts due or owing was not kept. Such unexplained payments amount to an estimated minimum of \u00a373,388.69 by the end of 2005/06, of which \u00a345,399 is shown as a debt. There is no allowance for the additional sums and other adjustments in these financial statements but further details are contained in Note\u00a08.\\n\u00a0\\nTo avoid confusion, payments that should have apportioned between two or more parties, such as Mr Catcher's home utility bills, are excluded save for any clearly representing misuse of company funds on other grounds (such as payments to a dormant company or goods invoiced to a third party) without prejudice to the signatory's view that they are unlawful.\\n\u00a0\\nFor accounting purposes, \u00a345,399 of the aforementioned benefits and payments to Robert Catcher are detailed as 'directors loans', net of money recovered and without prejudice to the signatory's view that they are unlawful. There is no allowance in these financial statements for the additional sums and adjustments, detailed in Note 4. Mr Catcher's figure includes payments to connected persons and businesses (except Caroline Catcher, who was a director in her own right until 17 January 2005).\\n\u00a0\\nReturn of unlawful property by third parties in previous years does not negate the original alleged offences. The true amount of alleged unauthorised payments received by Robert Catcher for personal benefit (and that of connected persons and businesses) therefore remains an estimated minimum of \u00a373,388.69, excluding the continuing effect these payments are having on bank charges, interest payable and legal expenses, which have not been calculated/apportioned."], ["ETI Logistics Support Ltd", "financial irregularities", "Company acknowledges illegal dividends paid", 69175.0, "\u00a3", "illegal dividends paid", "PROFESSIONAL, SCIENTIFIC AND TECHNICAL ACTIVITIES", "Other professional, scientific and technical activities (not including environmental consultancy or quantity surveying) nec", "Wellingborough", "https://find-and-update.company-information.service.gov.uk/company/09625689/filing-history/MzQ0OTM0ODE0NmFkaXF6a2N4/document?format=xhtml&download=1", "Directors Advances, Credits and Guarantees\\nThe director acknowledges that illegal dividends were paid during the year. At the time the dividend was paid the director was not aware that there were insufficient profits available for distribution and the director acknowledges that no further distributions can be made until there are sufficient profits available for that purpose.\u00a0\\n\\nDividends paid to directors:\\n\\n2024\\n2023\\n\\n\u00a3\\n\u00a3\\nMr Jeremy Richardson\\n30,175\\n39,000"], ["Services Family Ltd", "cyber-attack", "Company subjected to incident of cyber crime", 52000.0, "\u00a3", "compensation owed", "FINANCIAL AND INSURANCE ACTIVITIES", "Other financial service activities, except insurance and pension funding, (not including security dealing on own account and factoring) nec", "Stamford", "https://find-and-update.company-information.service.gov.uk/company/09079706/filing-history/MzQxNTkxNDU0M2FkaXF6a2N4/document?format=xhtml&download=0", "In 2020 the company was subject to an incident of cyber crime. The company is owed \u00a352,000 compensation for this transaction and is classified as Other Debtors."], ["MIRI ROSHNI", "financial irregularities", "Company payment diverted to fraudulent account", 50000.0, "\u00a3", "amount stolen", "HUMAN HEALTH AND SOCIAL WORK ACTIVITIES", "Other human health activities", "Cheadle Hulme", "https://find-and-update.company-information.service.gov.uk/company/06012372/filing-history/MzQ0NDc2NTY1NmFkaXF6a2N4/document?format=xhtml&download=0", "In April 2023, a fraud incident occurred when the email accounts of David O\u2019Brien and Elinor Chohan were hacked, resulting in the diversion of a \u00a350,000 payment to a fraudulent account. We promptly reported the incident to the police and the Charities Commission."], ["Motor City (Plymouth) Limited", "cyber-attack", "Company faced cybersecurity attack", 50000.0, "\u00a3", "provision", "WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES", "Sale of used cars and light motor vehicles", "Kingsbridge", "https://find-and-update.company-information.service.gov.uk/company/05873973/filing-history/MzQyMjA0NTgzNGFkaXF6a2N4/document?format=xhtml&download=0", "Cyber attack provision 50,000 50,000"], ["LAVIN WESTON LTD", "financial irregularities", "Company lost funds due to scam", 41500.0, "\u00a3", "amount stolen", "NaN", "Sound recording and music publishing activities,Computer consultancy activities,Other personal service activities nec", "Sandhurst", "https://find-and-update.company-information.service.gov.uk/company/04810003/filing-history/MzQxNTgwODI5N2FkaXF6a2N4/document?format=xhtml&download=0", "Under FRS rules we must report the loss of \u00a341.5k as we were scammed. our bankers cannot recover the funds."], ["GCMINFOTECH LIMITED", "theft", "Company experienced a theft incident", 37500.0, "\u00a3", "financial losses", "OTHER SERVICE ACTIVITIES,OTHER SERVICE ACTIVITIES", "Repair of computers and peripheral equipment,Repair of consumer electronics", "Coventry", "https://find-and-update.company-information.service.gov.uk/company/12283244/filing-history/MzQzMDgwOTA2NWFkaXF6a2N4/document?format=xhtml&download=0", "Theft\\nDuring January 2023, the company GCMINFOTECH Limited experienced a theft incident at the premises that resulted in significant financial losses as follows:\\n\\nThe Total Losses of \u00a337500 detailed as below:\\n\\nStock Stolen: Inventory valued at \u00a320,500 was stolen.\\nCustomer Service Items Stolen: Items specifically held for customer service purposes, valued at \u00a39,500, were stolen.\\nDamages to Shop: The shop sustained damages to the premises and display units computer and CCTV amounting to \u00a37,500. The inventory losses are expensed in other direct cost for \u00a320,500 and sundry expense of \u00a317,000 for Customer Service Items stolen and internal including display units and external damages to the shop.\\nThe liability for \u00a317,000 shown in creditors less than one year in other creditors."], ["COACH & HORSES INNS LIMITED", "theft", "Company employee committed defalcation of funds", 30000.0, "\u00a3", "amount stolen", "ACCOMMODATION AND FOOD SERVICE ACTIVITIES", "Public houses and bars", "Malton", "https://find-and-update.company-information.service.gov.uk/company/11194042/filing-history/MzQwNTIxNDI2NmFkaXF6a2N4/document?format=xhtml&download=0", "Staff Defalcation\\nDuring the previous year, it was discovered that there had been defalcation of both goods and cash by an employee.\u00a0\\n\u00a0\\nThis was suspected to be in the region of \u00a330,000 in total and has been reported to the Police, with evidence passed over for their investigation, which is still ongoing.\\n\u00a0\\nThe insurers have also been notified, although any potential claim is awaiting conclusion of the Police investigation.\u00a0\\n\u00a0\\nThe previous years accounts were adjusted for the proportion relating to stolen cash."], ["Glass Products Limited", "theft", "Company suffered theft by an employee", 22690.0, "\u00a3", "irrecoverable debt", "MANUFACTURING", "Other manufacturing nec", "Southampton", "https://find-and-update.company-information.service.gov.uk/company/02820711/filing-history/MzQxMDQ3NDA0NGFkaXF6a2N4/document?format=xhtml&download=0", "10.\u00a0Exceptional Items\\nExceptional items included in the profit and loss account of \u00a322,690 is in respect of an irrecoverable debt written off due to theft by an employee."], ["EIDOLON-UK CHEMICAL SERVICES LTD", "illegal seizure", "Police seized all investments in business", 21000.0, "\u00a3", "value of seized products", "MANUFACTURING", "Manufacture of other organic basic chemicals", "Doncaster", "https://find-and-update.company-information.service.gov.uk/company/14548718/filing-history/MzQwNjEzNzA0NWFkaXF6a2N4/document?format=xhtml&download=0", "09/12/2022 Police seized all investments in business: \u00a37,000 product ready for sale \u00a36000 product work in progress (reagent cost - 3 reactors), \u00a38,000 business equipment"], ["CHERRYWICK LIMITED", "theft", "Company suffered theft and criminal damage", 20400.0, "\u00a3", "reimbursement due", "AGRICULTURE, FORESTRY AND FISHING,WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES", "Mixed farming,Agents involved in the sale of agricultural raw materials, live animals, textile raw materials and semi-finished goods", "Wotton-Under-Edge", "https://find-and-update.company-information.service.gov.uk/company/11000365/filing-history/MzQzMDUzMjA0MGFkaXF6a2N4/document?format=xhtml&download=0", "2023\\n\u00a3\\n2022\\n\u00a3\\nOther debtors 20,400 400\\nTotal 20,400 400\\nNFUMutual Insurance reimbursement due for Theft and Criminal Damage\\nPage 12\\nCHERRYWICK LIMITED\\nNotes to the Financial Statements\\nfor the Period Ended 31 October 2023\\n6.Creditors: amounts falling due within one year note\\n\\n2023\\n\u00a3\\n2022\\n\u00a3\\nOther creditors 6,350 350\\nTotal 6,350 350\\nReimbursement for repairs required\\nPage 13\\nCHERRYWICK LIMITED\\nNotes to the Financial Statements\\nfor the Period Ended 31 October 2023\\n7.Creditors: amounts falling due after more than one year\\n\\n2023\\n\u00a3\\n2022\\n\u00a3\\nOther creditors 15,800 3,800\\nTotal 15,800 3,800\\nReimbursement due on receipt from Insurance for Criminal damage and theft. Loss of Haylage 2022, 2023."], ["John Hannant Plumbing & Engineering Services Ltd", "theft", "Company stock written off due to theft", 20000.0, "\u00a3", "amount stolen", "CONSTRUCTION", "Plumbing, heat and air-conditioning installation", "Petersfield", "https://find-and-update.company-information.service.gov.uk/company/05409300/filing-history/MzQzNTI1OTQ3M2FkaXF6a2N4/document?format=xhtml&download=0", "2 Exceptional items 2024 2023\\n\u00a3 \u00a3\\nStock write off due to theft 20,000 -\\n20,000 -"], ["SPECTRUM CLEANING SOLUTIONS LIMITED", "financial irregularities", "Company victim of credit card fraud", 18437.0, "\u00a3", "financial impact", "WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES,ADMINISTRATIVE AND SUPPORT SERVICE ACTIVITIES", "Wholesale of china and glassware and cleaning materials,Cleaning services (other than disinfecting and extermination services) nec", "Scarborough", "https://find-and-update.company-information.service.gov.uk/company/04687668/filing-history/MzQ0ODU5NDM5OGFkaXF6a2N4/document?format=xhtml&download=1", "11. EXCEPTIONAL ITEMS\\n\\nIt should be noted that during the 2024 financial year, Spectrum Cleaning Solutions Limited was a victim of credit card fraud, resulting in a net financial impact of \u00a318,437 on the company's profits. In response, the company has implemented additional security measures to safeguard against similar incidents in the future. Furthermore, Spectrum Cleaning Solutions Limited has obtained cyber insurance to enhance protection against potential cyber-related risks."], ["OCEANBLUE LOGISTICS LIMITED", "financial irregularities", "Company subjected to significant employee fraud", 16624.0, "\u00a3", "amount stolen", "TRANSPORTATION AND STORAGE", "Other transportation support activities", "Grimsby", "https://find-and-update.company-information.service.gov.uk/company/05612355/filing-history/MzQyNDIwOTg0MmFkaXF6a2N4/document?format=xhtml&download=0", "The company was the subject of a significant employee fraud during 2017-18 on which significant losses were incurred in the accounts for the periods ended 30 June 2018 and 31 December 2018.\\nSince then the individual has been prosecuted the Directors have been able to recover amounts from third parties under The Proceeds of Crime Act 2002. The Directors have also been able to identify invoicing errors which have been corrected in the accounts.\\nDuring the period ended 31 October 2023 this totalled \u00a30 (2022 - \u00a316,624) and shown as an exceptional item in the profit and loss for the year."], ["COWES INTERNATIONAL CUP LIMITED", "theft", "Company reported ex-director for theft", 12588.01, "\u00a3", "unauthorised payments", "ARTS, ENTERTAINMENT AND RECREATION", "Other sports activities (not including activities of racehorse owners) nec", "Marchwood", "https://find-and-update.company-information.service.gov.uk/company/04960934/filing-history/MzQzMzgyOTgwMmFkaXF6a2N4/document?format=xhtml&download=0", "The current Director reported ex-director Mr Robert Catcher to the police during financial year 2005/06 for alleged theft from the company. He\u00a0made suspicious payments from the\u00a0company's\u00a0bank accounts during financial years 2003/04 to 2005/06. The evidence is that these payments were for the benefit of him and those connected with him.\\n\u00a0\\nSuch unexplained payments are shown as a debt and amount to an estimated minimum of \u00a311,571 by the end of 2006/07.\\n\u00a0\\nFor accounting purposes, the aforementioned benefits and payments by Mr Catcher are detailed as 'directors loans', without prejudice to the signatory\u2019s view that they were unlawful\u00a0inter alia\u00a0under\u00a0sections 334 & 458 of the Companies Act 1985 (as amended) and section 1(1) of the Theft Act 1968.\\n\u00a0\\nDuring 2006-07, there were receipts of \u00a31,017.40 from recipients of unlawful payments, which were incorporated into the Director's loan account during 2006-07.\\n\u00a0\\nHowever, return of unlawful property by a third party does not mean that the original alleged offences did not occur. The true amount of alleged unauthorised payments made by Mr Catcher for the benefit of him and those connected with him remains an estimated minimum of \u00a312,588.01, excluding the continuing effect these payments have had on bank charges and interest payable, which have not been calculated."], ["BELEVI GROUP LTD", "financial irregularities", "Company suffered financial losses from illegitimate investments", 6544.0, "\u00a3", "written off crypto investments", "FINANCIAL AND INSURANCE ACTIVITIES", "Activities of other holding companies (not including agricultural, production, construction, distribution and financial services holding companies) nec", "London", "https://find-and-update.company-information.service.gov.uk/company/14370007/filing-history/MzQwNzI3MTQ0OGFkaXF6a2N4/document?format=xhtml&download=1", "Intangible fixed assetsGroupCrypto-currency\u00a3CostAt 1 April 2022 and 31 March 20236,544Amortisation and impairmentAt 1 April 2022 and 31 March 2023-Carrying amountAt 31 March 20236,544At 31 March 20226,544The company had no intangible fixed assets at 31 March 2023 or 31 March 2022."], ["Magic Happens Limited", "theft", "Company received insurance claim for theft", 3174.0, "\u00a3", "insurance payout", "HUMAN HEALTH AND SOCIAL WORK ACTIVITIES", "Other human health activities", "Worthing", "https://find-and-update.company-information.service.gov.uk/company/04182231/filing-history/MzQwODU0MzQxNmFkaXF6a2N4/document?format=xhtml&download=0", "During the year the company received \u00a33,174.00 as a result of an insurance claim relating to theft and damages."], ["FJS DEVELOPMENTS (NORTH WEST) LTD", "theft", "Company tools stolen during burglary", 2300.0, "\u00a3", "insurance payout", "CONSTRUCTION", "Development of building projects", "Blackpool", "https://find-and-update.company-information.service.gov.uk/company/11863707/filing-history/MzQwNjEwNjEyN2FkaXF6a2N4/document?format=xhtml&download=0", "THE BUSINESS SUFFERED MAJOR SETBACKS DURING THE YEAR, THE VAN WAS WRITTEN OFF AND THE INSURANCE COMPANY ONLY PAID OUT \u00a32300, THE TOOLS WERE STOLEN, THE POLICE WERE INFORMED BUT NOT RECOVERED, THEY WERE NOT INSURED, MANY CUSTOMERS WERE STILL STRUGGLING FINANCIALLY AND EITHER CANCELLED PROJECTS OR INSISTED THE ORIGINAL QUOTE BE HONOURED, WHICH DUE TO MAJOR INCREASES IN MATERIALS MEANT THE PROFITS WERE MINIMAL"], ["ABBEY DINGLE NURSING HOMES LIMITED", "hate crime", "Company subjected to proven hate crime", NaN, "NaN", "NaN", "HUMAN HEALTH AND SOCIAL WORK ACTIVITIES", "Medical nursing home activities", "Denbighshire", "https://find-and-update.company-information.service.gov.uk/company/02188242/filing-history/MzQ0OTA4NjY5MWFkaXF6a2N4/document?format=xhtml&download=1", "The Directors reported that in April 2019 the Home was subjected to a proven Hate Crime by malicious employees, aggravated by the malfeasant actions of the regulatory authorities, and continued to result large losses of earnings and additional expenditure to the Home since.\\n\\nThe Directors have been advised that the Home has equitable remedy of a legal recompense for the resultant losses. The above actions continue with the Home still still being managed by in an exemplary manner and the subject of an unprecedented accolade by the local Member of Parliament who has requested to be kept informed of developments.\\n\\nThe loyal Residents, Staff and Relatives are very grateful for the support of Creditors, Community and Financial advisors, Begbie Traynors & Co. since the end of Covid, who understand the insidious nature of the situation, allowing the Home to trade out of its predicament whilst the Judicial process continues at a snail's pace as well documented in the media."], ["ABSOLUTE CALIBRATION LIMITED", "cyber-attack", "Company victim of cyber attack", NaN, "NaN", "NaN", "PROFESSIONAL, SCIENTIFIC AND TECHNICAL ACTIVITIES", "Other professional, scientific and technical activities (not including environmental consultancy or quantity surveying) nec", "Fareham", "https://find-and-update.company-information.service.gov.uk/company/03493012/filing-history/MzQ0ODcyNTkxN2FkaXF6a2N4/document?format=xhtml&download=0", "Going concern\\nDuring the previous financial year, the company was the victim of a cyber attack from hackers. The company lost all of its financial, accounting and operating data which affected its ability to trade.\\n Since the attack, the company has continued to trade. The directors believe that the company will continue to trade for the foreseeable future. The accounts have therefore been prepared under the going concern basis."], ["Acheron Capital Limited", "financial irregularities", "Company victim of fraud during liquidation", NaN, "NaN", "NaN", "FINANCIAL AND INSURANCE ACTIVITIES", "Fund management activities", "London", "https://find-and-update.company-information.service.gov.uk/company/05588630/filing-history/MzQyNTcyMTM5MGFkaXF6a2N4/document?format=xhtml&download=0", "The Company's investment of \u20ac12,500 translated at \u00a310,541 (2022: \u20ac12,500 translated at \u00a310,541) is\\nstated at cost.\\nAn advised entity, Hopewell SVSCA, has been in liquidation and in the process has been discovered to have been victim of a fraud. As a result, any claim we have on Hopewell SVSCA is now impaired and may never be paid."], ["ANIMAL PROTECTION AGENCY FOUNDATION", "wildlife trafficking", "Company investigating illegal trading activities", NaN, "NaN", "NaN", "EDUCATION", "Other education nec", "Brighton", "https://find-and-update.company-information.service.gov.uk/company/06371987/filing-history/MzQxMzI4NTM3N2FkaXF6a2N4/document?format=xhtml&download=0", "We conducted investigations at two large I.H.S. reptile markets at the Bowlers Exhibition Centre (BEC) in Trafford, Manchester in September and November 2022. We met with Trafford Council at their offices to show them our evidence of illegal trading and also discussed the problems with the venue manager. Following this, the I.H.S. announced their events would not take place again at the BEC but would move to the Marshall Arena Milton Keynes for two dates in June and September 2023."], ["BEACON DEMENTIA AND WELLBEING", "theft", "Company experienced theft from storage shed", NaN, "NaN", "NaN", "HUMAN HEALTH AND SOCIAL WORK ACTIVITIES", "Other social work activities without accommodation nec", "Rossendale", "https://find-and-update.company-information.service.gov.uk/company/10625900/filing-history/MzQ0MzU0MDEyN2FkaXF6a2N4/document?format=xhtml&download=0", "Following a theft from our storage shed, we received several kind donations of gardening tools and money from supporters, local community groups and a local church. These were very gratefully received and enabled us to replace everything that was stolen."], ["BELLEISLE CONSERVATORY LIMITED", "mischief-making", "Former committee member reported to Police Scotland", NaN, "NaN", "NaN", "ADMINISTRATIVE AND SUPPORT SERVICE ACTIVITIES", "Combined facilities support activities", "Ayr", "https://find-and-update.company-information.service.gov.uk/company/SC387349/filing-history/MzQzMzY3MzEwMmFkaXF6a2N4/document?format=xhtml&download=0", "Disappointingly the committee faced exceptional and challenging circumstances with one member of the committee\u2019s Mr. Adrian Munn\u2019s conduct falling below the required standard and was requested to step down, which he agreed to do.\\n\u00a0\\nIt was also disappointing that despite having been on the committee for nearly a year and a half, he chose to raise matters which he claimed were of concern to him only once he had been asked to leave the committee. We have of course made ourselves readily available to meet and discuss the issues he has, although he repeatedly refused to meet ourselves, preferring instead to air his grievances in public and pointedly writing to and meeting with others instead of ourselves.\\n\u00a0\\nWhile as an individual he may have grievances with us, we recognise that continuous improvement is an important aspect of any charity and is something we embrace. Given the range of accusations levelled at ourselves, we initiated and had healthy positive discussions with The Office of the Scottish Charity Regulator, Information Commissioner's Office, Police Scotland, and our own\u00a0Independent Examiner\u00a0all of whom confirmed that our practices and procedures are in accordance with current standards.\\n\u00a0\\nThat said it is always important to reflect on things and see what could perhaps be done better. We have therefore looked very closely and considered all the points raised, some are worthy of merit, others are entirely malicious and mischief making. We have prepared our own continuous improvement plan which looks at different areas for potential improvement over the next 6 to 9 months. In addition to our own internal improvement plan we wanted to have a separate sense check on our decision making around these points.\\n\u00a0\\nWe have therefore requested independent people out with the committee to review the documentation and our decision-making process to avoid any unconscious bias we may have. This independent process is providing confidence that the decisions we are making are not only sound but stand scrutiny and reasonable in all the circumstances.\\n\u00a0\\nIt has of course been very disappointing to find ourselves in this situation but since late March we have since learned that we are not alone. Mr. Adrian Munn was a director of another charity Ayrshire Independent Living Network, until February this year, where remarkably similar behaviour emerged where they attempted to remove him as a director since late 2023 and recorded as such in their report submitted to companies\u2019 house.\\n\u00a0\\nSeparate to all of this disappointingly, I can confirm there were issues which required to be reported to Police Scotland and as these matters are now sub judice, I am precluded from commenting further.\\nWhile we as a committee have undoubtedly gone through a difficult time, with active legal matters under consideration, it was nevertheless important to not only protect the charity and its supporters, but to act where necessary against any individual whose behaviour is considered unacceptable.\\n\u00a0\\nGiven these events as a committee we elected to defer the AGM until later in the year and hold an EGM. While the company\u2019s articles of association are clear a very narrow viewpoint focusing criticism on certain aspects, necessitated the holding of an EGM to clarify and avoid any possibility of misinterpretation of the articles."], ["BLACKBAUD EUROPE LIMITED", "cyber-attack", "Company experienced cyberattack in May 2020", NaN, "NaN", "NaN", "NaN", "Computer consultancy activities,Other information technology and computer service activities", "Glasgow", "https://find-and-update.company-information.service.gov.uk/company/SC212593/filing-history/MzQ0ODc1NDYxN2FkaXF6a2N4/document?format=xhtml&download=1", "Like virtually all major businesses, we are, from time to time, a target of cyberattacks, such as the Security Incident, that occurred in May 2020, information systems interruptions, phishing, social engineering schemes and other systems disruptions. We expect these threats to continue, some of which have been, and in the future may be, successful to varying degrees. Because the numerous and evolving cybersecurity threats used to obtain unauthorized access, disable, degrade or sabotage systems have become increasingly more complex and sophisticated, it may be difficult to anticipate these acts or to detect them for periods of time, as with the Security Incident, and we may be unable to respond adequately or timely. As these threats continue to evolve and increase, we have already devoted and expect to continue to devote significant resources in order to modify and enhance our security controls and to identify and remediate any security vulnerabilities."], ["CARE AND RELIEF FOR THE YOUNG", "theft", "Company rolled out CCTV to reduce theft", NaN, "NaN", "NaN", "HUMAN HEALTH AND SOCIAL WORK ACTIVITIES,HUMAN HEALTH AND SOCIAL WORK ACTIVITIES", "Other residential care activities,Other social work activities without accommodation nec", "Southampton", "https://find-and-update.company-information.service.gov.uk/company/02710775/filing-history/MzQzNjUzOTUwOGFkaXF6a2N4/document?format=xhtml&download=0", "2023 saw a few changes to the Trading arm of CRY. We made the decision to close our shop in Cosham. We had been on a 6 month notice period with the Landlord, so exiting the shop did not incur additional costs. Additionally, the Manager had resigned, and we were able to move the Deputy Manager to one of our other shops. This meant there was no redundancy. The shop had only returned approx. \u00a35k gross profit each year for some time and was now showing signs of losing that due to reducing sales.\\n The year ended with our sales and profits exceeding budget returning an additional profit contribution of \u00a360k over budget.\\n We noticed how the cost-of-living crisis was affecting our sales as the year drew to a close and anticipate this biting harder into 2024.\\n We continue to roll out CCTV in the shops to offer staff more protection and reduce theft. Shops that have already had this installed have seen tangible improvements."], ["CC117 LIMITED", "cyber-attack", "Company experienced supply chain disruption from attack", NaN, "NaN", "NaN", "MANUFACTURING", "Other manufacturing nec", "Rayleigh", "https://find-and-update.company-information.service.gov.uk/company/10576603/filing-history/MzQyNDg5NjMzN2FkaXF6a2N4/document?format=xhtml&download=0", "Stock days: - 38.0 (2022: 51.8). In the previous year we had increased in stock levels at the year-end was in part as a consequence of some supply chain disruption caused by a cyber-attack with one of our main suppliers. The unwinding of this increased stock holding together with the introduction of new stock systems has enabled a significant reduction in the amount of working capital tied up in raw material stocks."], ["COINFORD CONSTRUCTION LIMITED", "cyber-attack", "Company had a cybersecurity attack last year", NaN, "NaN", "NaN", "WATER SUPPLY; SEWERAGE, WASTE MANAGEMENT AND REMEDIATION ACTIVITIES,CONSTRUCTION,CONSTRUCTION,CONSTRUCTION", "Remediation activities and other waste management services,Development of building projects,Construction of commercial buildings,Construction of domestic buildings", "Burstow", "https://find-and-update.company-information.service.gov.uk/company/02539207/filing-history/MzQwNjI3MDQ0M2FkaXF6a2N4/document?format=xhtml&download=0", "The Company continues taking proactive cybersecurity measures following last year\u2019s attack. Ongoing staff training increases employee vigilance against sophisticated phishing attempts. Regular password changes, tight access controls and prompt software patching bolsters frontline defences. Enhancing detection capabilities aims to quickly identify unauthorized system access. Having comprehensive incident response plans prepares teams should a breach occur. Continued infrastructure investments provide expanded capability to monitor emerging threats and protect sensitive data. While no defences are impenetrable as hacking tools grow more advanced, the Company strives to make systems an elusive target, keeping operations resilient."], ["Colchester Zoological Society", "theft", "Company solar camera trap taken by poachers", NaN, "NaN", "NaN", "ADMINISTRATIVE AND SUPPORT SERVICE ACTIVITIES,ARTS, ENTERTAINMENT AND RECREATION", "Other business support service activities nec,Botanical and zoological gardens and nature reserve activities", "Colchester", "https://find-and-update.company-information.service.gov.uk/company/05150424/filing-history/MzQzNzE2ODk2OWFkaXF6a2N4/document?format=xhtml&download=0", "August 2023\\n- A solar camera trap was taken by poachers, despite being attached to a tree -the Maintenance team designed and built metal cages for all our camera traps which are now chained to trees making them more difficult to remove.\\n- Work started on dismantling the old N3 ranger outpost damaged by Tropical Cyclone Freddy in February."], ["COLUX CONSTRUCTION LTD", "theft", "Company tools lost to theft", NaN, "NaN", "NaN", "CONSTRUCTION", "Construction of domestic buildings", "London", "https://find-and-update.company-information.service.gov.uk/company/13676902/filing-history/MzQzNDA5Nzc0OWFkaXF6a2N4/document?format=xhtml&download=0", "I had hands tools in the previous year which was loss to theft and no longer in my possession."], ["DAYTON PROGRESS LIMITED", "cyber-attack", "Company suffered cyber attack on 22 December", NaN, "NaN", "NaN", "MANUFACTURING", "Manufacture of tools", "NaN", "https://find-and-update.company-information.service.gov.uk/company/00856663/filing-history/MzQxNDk1NjM5N2FkaXF6a2N4/document?format=xhtml&download=0", "In addition, the company suffered a cyber attack on 22 December 2022 resulting in the loss of some corporate accounting records. Recovery from this loss of records continued into the year ended 31 December 2023. We were unable to confirm or verify by alternative means, the existence of certain transactions within the financial statements due to the loss of supporting documentation impacting the results for the years ended 31 December 2022 and 31 December 2023.\\nAs a result of these matters, we were unable to determine whether any adjustments might have been found necessary in respect of recorded or unrecorded inventories and transactions, and elements making up the statement of comprehensive income, statement of changes in equity and the balance sheet."], ["DE PALA JEWELLERS (LONDON) LIMITED", "theft", "Company suffered losses from burglary", NaN, "NaN", "NaN", "MANUFACTURING", "Manufacture of jewellery and related articles", "London", "https://find-and-update.company-information.service.gov.uk/company/05878933/filing-history/MzQyNzA3MDE2M2FkaXF6a2N4/document?format=xhtml&download=0", "There was a burglary in October 2021 and as result the company suffered losses. The company is in the process of formalising and making an insurance claim."], ["DELTA - NORTH CONSETT LIMITED", "anti-social behaviour", "Company experienced trespassing and vandalism", NaN, "NaN", "NaN", "EDUCATION", "General secondary education,Post-secondary non-tertiary education", "County Durham", "https://find-and-update.company-information.service.gov.uk/company/03488288/filing-history/MzQyMzU0MDA3MGFkaXF6a2N4/document?format=xhtml&download=0", "The land which included ancient woodlands, had been given to assist with the provision of the Charity's activities. However, problems with trespassing and vandalism meant the Charity needed to sell and reinvest the funds from the gift. The Charity has obtained a licence to use the land for some of its activities."], ["DONISTHORPE COMMUNITY INTEREST COMPANY", "anti-social behaviour", "Company experienced vandalism during project", NaN, "NaN", "NaN", "ARTS, ENTERTAINMENT AND RECREATION", "Other amusement and recreation activities", "Swadlincote", "https://find-and-update.company-information.service.gov.uk/company/13577823/filing-history/MzQzOTI0MDMyN2FkaXF6a2N4/document?format=xhtml&download=0", "New Compost Area: \\nDirector Deborah and her family built and installed a new compost area at no cost to the CIC. Despite some unfortunate vandalism during the project, their determination ensured the completion of this important feature for the site."], ["DRAGON RECYCLING SOLUTIONS LTD", "arson", "Company faced arson attack at factory", NaN, "NaN", "NaN", "WATER SUPPLY; SEWERAGE, WASTE MANAGEMENT AND REMEDIATION ACTIVITIES", "Collection of non-hazardous waste", "Abergavenny", "https://find-and-update.company-information.service.gov.uk/company/05774204/filing-history/MzQwOTM1NDE2N2FkaXF6a2N4/document?format=xhtml&download=0", "It has been a trying year for most businesses not least with the Covid pandemic. Dragon has faced some interesting challenges due to the arson attack in March 2022 at our Heads of the Valleys site resulting in the total loss and subsequent demolition of one of the rented factories. Although this was predominantly a storage warehouse some plant and machinery was destroyed setting us back slightly , however with the addition of a mezzanine floor in our main operating building we have recovered well."], ["DURHAM CARAVANS LIMITED", "arson", "Company victims of arson attack", NaN, "NaN", "NaN", "MANUFACTURING", "Manufacture of bodies (coachwork) for motor vehicles (except caravans)", "Durham", "https://find-and-update.company-information.service.gov.uk/company/11301414/filing-history/MzQzMDQxNTk1M2FkaXF6a2N4/document?format=xhtml&download=0", "8. Events after reporting date\\nOn the 25th May 2024 Durham Caravans Limited were victims of an arson attack which affected some of their inventory. Due to ongoing investigations, at the balance sheet signing date, it is not possible to quantify or estimate the financial impact of this event."], ["DYWIDAG Limited", "cyber-attack", "Company fell victim to a cyber attack", NaN, "NaN", "NaN", "CONSTRUCTION", "Specialised construction activities (other than scaffold erection) nec", "Bury", "https://find-and-update.company-information.service.gov.uk/company/03708618/filing-history/MzQyMDQ1NDkxNGFkaXF6a2N4/document?format=xhtml&download=0", "In December 2023, the group fell victim to a cyber attack. Whilst there was some downtime in the UK division, the overall impact on the business was negligible."], ["EAGLE SCIENTIFIC LIMITED", "cyber-attack", "Company suffered cyber-attack affecting trading", NaN, "NaN", "NaN", "WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES", "Non-specialised wholesale trade", "Nottingham", "https://find-and-update.company-information.service.gov.uk/company/01446445/filing-history/MzQ0ODU4NjM3NmFkaXF6a2N4/document?format=xhtml&download=1", "19. Trading results for the next financial year are expected to be positive. The company was partially affected by the floods that devastated the Eagle warehouse causing loss and damage to some stock. The company also suffered a cyber-attack that prevented trading for a month. No ransom was paid but trading was seriously affected. The company continues to develop new products and update the existing range."], ["EAST KENT CANCER CAFE AND DROP IN CENTRES LIMITED", "theft", "Company suffered losses due to theft", NaN, "NaN", "NaN", "MANUFACTURING,WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES,WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES", "Repair of electrical equipment,Other retail sale in non-specialised stores,Retail sale via stalls and markets of other goods", "Herne Bay", "https://find-and-update.company-information.service.gov.uk/company/12077549/filing-history/MzQxOTkzMDUyN2FkaXF6a2N4/document?format=xhtml&download=0", "As a company,the last three years have been very poor and we have found that the company due to theft and also volunteers stealing from our shop that we have shown a loss on our activities."], ["East Teignbridge Community Transport Association", "arson", "Company lost 2 minibuses in arson", NaN, "NaN", "NaN", "TRANSPORTATION AND STORAGE", "Other passenger land transport nec", "Teignmouth", "https://find-and-update.company-information.service.gov.uk/company/10250030/filing-history/MzQyOTIxNjg5MGFkaXF6a2N4/document?format=xhtml&download=0", "Our last AGM was held on 6th July 2023 and little did we foresee the devastating fire in the early hours of Friday 14th July, the images will be in my mind forever. That night we lost 2 minibuses and 2 wheelchair accessible cars. This was later proven to be an arson attack with CID still trying to resolve the case."], ["FORESIGHT ADVISORS LIMITED", "cyber-attack", "Company experienced a hacking incident", NaN, "NaN", "NaN", "FINANCIAL AND INSURANCE ACTIVITIES,FINANCIAL AND INSURANCE ACTIVITIES,FINANCIAL AND INSURANCE ACTIVITIES,PROFESSIONAL, SCIENTIFIC AND TECHNICAL ACTIVITIES", "Other financial service activities, except insurance and pension funding, (not including security dealing on own account and factoring) nec,Administration of financial markets,Security and commodity contracts brokerage,Financial management", "London", "https://find-and-update.company-information.service.gov.uk/company/13806331/filing-history/MzQyMzIzMTY3MGFkaXF6a2N4/document?format=xhtml&download=0", "Long-term Decisions: Evaluation is underway to enhance our cybersecurity measures following a recent hacking incident. Contemplation of transitioning from a customer-facing portal to a more secure distribution model is ongoing, prioritizing data protection and customer confidentiality."], ["G. WEBB HAULAGE LIMITED", "arson", "Company suffered arson attack destroying eight trucks", NaN, "NaN", "NaN", "WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES,TRANSPORTATION AND STORAGE", "Agents involved in the sale of timber and building materials,Freight transport by road", "Cambridge", "https://find-and-update.company-information.service.gov.uk/company/00789342/filing-history/MzQ0NzYxNTk0NWFkaXF6a2N4/document?format=xhtml&download=1", "Business review\\n  The Company experienced a 1.25% decrease in turnover from the previous year recording \u00a321,932,508, compared to \u00a322,210,389 in 2022. Gross profit margin was 15.0% in comparison to 17.1% in 2022.\\nIn addition to operating in a difficult industry trading environment in 2023, the company experienced several challenges during the year.  The most significant of these was that it suffered an arson attack in the first quarter of 2023, where eight trucks were destroyed.  This resulted in substantial unexpected costs to be incurred.  Whilst some costs were recovered from the insurers, this has however, led to increased premiums in the second half of the year.  There is an ongoing insurance claim to recover furterh costs however, the quantum and timing of this is sufficiently unknown not to be recognised in this period.  Furthermore, with a reduced fleet, the company relied furterh on subcontractors and merchanted material which resulted on lower achievable margins."], ["GJB DEVELOPMENTS LIMITED", "cyber-attack", "Company suffered supply chain disruption due to cyber-attack", NaN, "NaN", "NaN", "MANUFACTURING", "Manufacture of other plastic products", "Rayleigh", "https://find-and-update.company-information.service.gov.uk/company/02488234/filing-history/MzQyNDg5OTg1OWFkaXF6a2N4/document?format=xhtml&download=0", "Stock days: - 31.5 (2022: 41.3). In the previous year we had increased in stock levels at the year-end was in part as a consequence of some supply chain disruption caused by a cyber-attack with one of our main suppliers. The unwinding of this increased stock holding together with the introduction of new stock systems has enabled a significant reduction in the amount of working capital tied up in raw material stocks."], ["Global Advantech Resources Limited", "theft", "Company pursues legal action for IP theft", NaN, "NaN", "NaN", "OTHER SERVICE ACTIVITIES", "Other personal service activities nec", "Cannock", "https://find-and-update.company-information.service.gov.uk/company/08117319/filing-history/MzQyMTQ5NTYyN2FkaXF6a2N4/document?format=xhtml&download=0", "The company continues to purse a legal action for theft and misuse of its intellectual property on a contingent basis.\\n\\nThe director expects that its share of damages will substantially wipe out its liabilities. In the interim the company is reliant upon its continuing financial support of the director to enable it to continue trading."], ["H.F.S. TARPORLEY LIMITED", "theft", "Company experiences increased instances of theft", NaN, "NaN", "NaN", "WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES", "Other retail sale of food in specialised stores", "Tarporley", "https://find-and-update.company-information.service.gov.uk/company/04418481/filing-history/MzQzODE0MjA0NWFkaXF6a2N4/document?format=xhtml&download=0", "This year has been challenging due to the impacts of UK inflation\u00a0with\u00a0rising stock costs,\u00a0rising insurance costs,\u00a0rising\u00a0electricity\u00a0costs, rising\u00a0fuel costs and\u00a0increased instances of theft.\\nThe company continues to watch inflation and actively seeks to remain both informed and abreast of government policies and decisions.\\nThe company continues to internally audit\u00a0and streamline its purchasing and pricing policies, along with its stock levels, to control costs. The company has also installed additional CCTV and surveillance systems, along with magnetic security tag systems, to protect itself against stock loss."], ["HALE HEALTH ACTION LOCAL ENGAGEMENT", "cyber-attack", "Company victim of cybersecurity attack", NaN, "NaN", "NaN", "HUMAN HEALTH AND SOCIAL WORK ACTIVITIES", "Other human health activities", "Shipley", "https://find-and-update.company-information.service.gov.uk/company/06443243/filing-history/MzQ0NzkzMTM3MGFkaXF6a2N4/document?format=xhtml&download=1", "HALE was the unfortunate victim of a cybersecurity attack during the year and despite disruption to its IT Estate, the team were able to continue to deliver the services to clients almost immediately, while in the background we worked with Cyber Security experts to put in place a series of policy and protocol changes including new hardware and software to better protect our organisation into the future."], ["Here We Are", "anti-social behaviour", "Company aquarium vandalised with stone", NaN, "NaN", "NaN", "ARTS, ENTERTAINMENT AND RECREATION", "Archive activities", "Argyll", "https://find-and-update.company-information.service.gov.uk/company/SC184879/filing-history/MzQ0NzYzMjI3MmFkaXF6a2N4/document?format=xhtml&download=1", "The aquarium was vandalised, a stone was put through the heavy glass tank.  Luckily most of the creatures were saved.  Insurance assisted with the purchase of a replacement tank.  It took some time to get it back in place and up and running but thanks to Dom's enthusiasm it is now looking even better than before."], ["HUBBARD'S HILLS TRUST", "anti-social behaviour", "Company incurred expenditure due to vandalism", NaN, "NaN", "NaN", "HUMAN HEALTH AND SOCIAL WORK ACTIVITIES", "Social work activities without accommodation for the elderly and disabled", "Louth", "https://find-and-update.company-information.service.gov.uk/company/06758863/filing-history/MzQxNTYwMzg1MWFkaXF6a2N4/document?format=xhtml&download=0", "We have incurred expenditure this year in relation to responses to vandalism and further erosion of the site."], ["Hughes Forrest Limited", "cyber-attack", "Company experienced cyber attack and theft", NaN, "NaN", "NaN", "WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES", "Agents involved in the sale of timber and building materials", "South Wales", "https://find-and-update.company-information.service.gov.uk/company/00926615/filing-history/MzQzNjk2MTgwM2FkaXF6a2N4/document?format=xhtml&download=0", "4. Exceptional items\\n\\nThe exceptional item is the write off of debt in relation to a cyber attack carried out, which led to external individuals gaining unauthorised access to the company's bank account. The directors have reviewed their internal controls and are confident that this is an isolated incident."], ["ICT Direct Europe Ltd", "financial irregularities", "Company victim of fraud by colleague", NaN, "NaN", "NaN", "OTHER SERVICE ACTIVITIES", "Other personal service activities nec", "Holborn", "https://find-and-update.company-information.service.gov.uk/company/11319731/filing-history/MzQyNzgxNzA1MWFkaXF6a2N4/document?format=xhtml&download=0", "During the Year the company was a victim of a fraud , committed by a trusted colleague of the Director. The crime was reported to The Police and a warrant for his arrest has been issued. He is believe to be in Europe. The damage caused by the fraud is enormous."], ["IUM Limited", "trespass", "Company recovering amounts for trespass", NaN, "NaN", "NaN", "OTHER SERVICE ACTIVITIES", "Other personal service activities nec", "London", "https://find-and-update.company-information.service.gov.uk/company/06867175/filing-history/MzQzNzgzNjc5MmFkaXF6a2N4/document?format=xhtml&download=0", "The company is currently engaged in recovering amounts due to it from a third party for trespass and unautorised utilisation of the entities assets."], ["Ken Hawley Collection Trust", "theft", "Company museum broken into and exhibits stolen", NaN, "NaN", "NaN", "ARTS, ENTERTAINMENT AND RECREATION", "Museum activities", "Sheffield", "https://find-and-update.company-information.service.gov.uk/company/02925721/filing-history/MzQzMDU4MDY5NWFkaXF6a2N4/document?format=xhtml&download=0", "The exhibition had been placed in the entrance area to Kelham Island Museum to give it more prominence, but this also sadly attracted less welcome interest and in May 2024 the museum was broken into and the case containing the Year Knife was broken into and a number of exhibits stolen. Fortunately, the Year Knife was not removed, and it was undamaged. This brought an abrupt end to the exhibition and has led the Trust to ensure that strengthened security is in place before the Year Knife is put on further public view back in the Hawley Gallery."], ["KUIT STEINART LEVY LLP", "cyber-attack", "Company suffered major cyber incident", NaN, "NaN", "NaN", "NaN", "NaN", "NaN", "https://find-and-update.company-information.service.gov.uk/company/OC334768/filing-history/MzQ0Mzc0MDA0OWFkaXF6a2N4/document?format=xhtml&download=0", "The firm suffered a major cyber incident during the year impacting upon billing during August and September and subsequently upon the firm\u2019s marketing and credit control activities. The incident tested the strength of the Disaster\u00a0Recovery\u00a0arrangements and the firm\u2019s culture. The firm\u2019s business was served well by the high levels of engagement of the firm\u2019s staff in dealing with a difficult period. Taking this into account, the members were pleased with the firm\u2019s strong growth in billing and other business outcomes (including growth in the majority of areas of the business) during the year.\\n\u00a0\\nThe incident accelerated the firm\u2019s investment both in IT infrastructure and in personnel across the business and following a period of consolidation during the second half of the financial year;\u00a0a sustained period of growth is targeted during the forthcoming financial year."], ["LEHRAM CAPITAL INVESTMENTS LTD", "death threat", "Company members experienced violence and death threats", NaN, "NaN", "NaN", "ADMINISTRATIVE AND SUPPORT SERVICE ACTIVITIES", "Other business support service activities nec", "London", "https://find-and-update.company-information.service.gov.uk/company/07839142/filing-history/MzQ0NDU3MTUzNmFkaXF6a2N4/document?format=xhtml&download=0", "The company remains with no employees, no assets, no bank account, no revenues of any kind.\\nIn 2019 the company became under attack by the associates and relatives of members of a politically connected Russian organized crime group that operates in Europe and in Russia. The Russian organized crime group aims to annihilate Lehram Capital\u2019s right to exist to prevent it from exposing the activities of the criminal group across Russia and Europe.\\n\\nThose same persons constantly made death threats against the members of the company and its directors, as well as threats of kidnapping, fabricated persecution and extortion against them (and families). Those threats continue as of the date of this submission.\\n\\nDue to the links of those persons with senior figures of the Russian organized crime, law enforcement agencies in multiple jurisdictions strongly advised for members of Lehram, its officers and relatives to be extra careful and not to disclose their whereabouts in public.Death threats, threats of fabricated persecution, extortion and harassment against members and officers of Lehram continued in 2023. In October 2023 a member of Lehram received a written communication with very detailed information only known to the former legal advisors of members of Lehram. The communication included threats that unless Lehram is let to die, a family member of the member of Lehram would be murdered. The Companies House was informed of this situation.\\n\\nCritical events after November 2023\\nMembers of Lehram and family continue receiving threats and harassment in 2024\\n\\nIn August 2021 a Court in the USA confirmed those threats of physical harm and of fabricated persecution as CREDIBLE, REAL AND UNCONTESTED. This position of fatal risk faced by member of the company was reaffirmed in 2024 by Superior Court (s) in the USA."], ["Lester Point Holdings Limited", "financial irregularities", "Company employee committed fraud", NaN, "NaN", "NaN", "FINANCIAL AND INSURANCE ACTIVITIES", "Activities of other holding companies (not including agricultural, production, construction, distribution and financial services holding companies) nec", "Barrow-On-Trent", "https://find-and-update.company-information.service.gov.uk/company/13175879/filing-history/MzQ0NDk0MjY4OGFkaXF6a2N4/document?format=xhtml&download=0", "9. Related Party Transactions\\nThe company had made a loan to Spondon Gia Engneering Ltd with the intention that the loan would be repaid from profit prior to a subsequent MBO\\nUnfortunately a former employee was found to have committed fraud resulting in the matter being passed over to the police\\nCrime Number 24000035561\\nRecording Officer - \\nPSI 248 Marie Slater\\nBeeston MIT\\nNottinghamshire Police\\nFoster Avenue, Beeston,\\nNottingham, NG9 1AB\\nM - 07816245679\\nE - marie.slater@notts.police.uk"], ["Lochaber Environmental Group", "anti-social behaviour", "Company experienced instances of misuse and vandalism", NaN, "NaN", "NaN", "WATER SUPPLY; SEWERAGE, WASTE MANAGEMENT AND REMEDIATION ACTIVITIES,PROFESSIONAL, SCIENTIFIC AND TECHNICAL ACTIVITIES", "Recovery of sorted materials,Environmental consulting activities", "Fort William", "https://find-and-update.company-information.service.gov.uk/company/SC251043/filing-history/MzQ0ODU1MTAwMGFkaXF6a2N4/document?format=xhtml&download=1", "The supplier of the electric Hi-bikes loan scheme, Bewegen went bust but fortunately HITRANS picked up the pieces and runs it from Inverness. LEG was responsible for the funding and is required to make reports and guarantee its continuation for 5 years. It was well used with 13,574 rides covering 35,000 miles in the year despite instances of misuse and sheer vandalism."], ["Megadyne UK Limited", "cyber-attack", "Company experienced a cyber incident", NaN, "NaN", "NaN", "WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES", "Wholesale of other intermediate products", "West Bromwich", "https://find-and-update.company-information.service.gov.uk/company/02150935/filing-history/MzQzNzgwMzc2NGFkaXF6a2N4/document?format=xhtml&download=0", "In February 2024, the Group determined that it was the target of a cyber-attack following unauthorized access to its global network. As part of the Group\u2019s incident response, a response team took the lead of the business continuity management by taking appropriate measures to recover from the incident. This included undertaking an internal investigation, engaging cyber security experts, outside advisors and the Group\u2019s insurers as well as initiating all compliance related actions such as notifying appropriate regulators and law enforcement authorities with respect to data privacy protection requirements in the affected jurisdictions. As additional precautionary measures, all the Group IT systems were switched off to allow such systems\u2019 sanitization and progressive restarting in a risk mitigated way.\u2028\u2028While we were able to quickly restore our operations, the incident resulted in some disruption to sales, which financial impact is still in the process of being determined, as well as non-recurring direct costs, some of which may be partially offset by insurance recoveries. We have and continue to make investments to enhance the protection of our information technology systems.\u2028\u2028Based on our current knowledge and available information, we do not expect the cyber incident to have an impact on our ability to continue as a going concern."], ["MUSIC ON THE MARCH (1952) LIMITED", "arson", "Company premises destroyed in arson attack", NaN, "NaN", "NaN", "ARTS, ENTERTAINMENT AND RECREATION", "Performing arts", "Romford", "https://find-and-update.company-information.service.gov.uk/company/06262998/filing-history/MzQxOTU3ODU5NmFkaXF6a2N4/document?format=xhtml&download=0", "Activities have returned to a normal level now that the premises have been refurbished following the previously reported arson attack.\\n\u00a0\\nThe instruments and other assets lost in the fire have been replaced."], ["N & R DEMOLITIONS AND INDUSTRIAL DISMANTLERS LIMITED", "financial irregularities", "Company subject to systematic fraud", NaN, "NaN", "NaN", "CONSTRUCTION", "Demolition", "Hebden Bridge", "https://find-and-update.company-information.service.gov.uk/company/10462969/filing-history/MzQwNDYwMzA2M2FkaXF6a2N4/document?format=xhtml&download=0", "Investigation has revealed that the company has been subject to systematic fraud by a former employee. The\u00a0matter is currently under investigation by Yorkshire police Forensic Accountants."], ["NATIONWIDE WINDOWS LIMITED", "cyber-attack", "Company suffered a cyberattack in 2022", NaN, "NaN", "NaN", "MANUFACTURING", "Other manufacturing nec", "Rugby", "https://find-and-update.company-information.service.gov.uk/company/02025613/filing-history/MzQ0MjgwMDE3MWFkaXF6a2N4/document?format=xhtml&download=0", "PRINCIPAL RISKS AND UNCERTAINTIES\\nFollowing a cyberattack in 2022 significant investment has been made by the business to ensure that it is as well placed as it can be to either prevent or mitigate the risk of future malicious cyber activity. However, risks and uncertainties continue to remain and whilst the business is well structured to meet any future challenges that the coming year may present in this area these risks and challenges can be managed by the business but not controlled."], ["Navona Bars Ltd", "theft", "Company cash theft occurred during 2022", NaN, "NaN", "NaN", "ACCOMMODATION AND FOOD SERVICE ACTIVITIES", "Licensed restaurants", "Hull", "https://find-and-update.company-information.service.gov.uk/company/09072423/filing-history/MzQxNDU0MjMzOWFkaXF6a2N4/document?format=xhtml&download=0", "The discovery of cash thefts has been reported in these account, including restating the 2022 figures for cash deemed taken in that period."], ["NEURORESPONSE CIC", "cyber-attack", "Company delayed plans due to cyber-attack", NaN, "NaN", "NaN", "HUMAN HEALTH AND SOCIAL WORK ACTIVITIES", "Other human health activities", "London", "https://find-and-update.company-information.service.gov.uk/company/09842536/filing-history/MzQxNTE5NDE5MWFkaXF6a2N4/document?format=xhtml&download=0", "Our plans were delayed by the cyber-attack on NHS111 during the summer however we got back on track and tested a new pathway in residential and care home settings demonstrating improved care outcomes."], ["Newcastle-Under-Lyme Rural Parishes' Transport Scheme Limited", "financial irregularities", "Company charged with fraud by abuse of position", NaN, "NaN", "NaN", "TRANSPORTATION AND STORAGE", "Other passenger land transport nec", "Nr Crewe", "https://find-and-update.company-information.service.gov.uk/company/05511147/filing-history/MzQyMDI3OTc3N2FkaXF6a2N4/document?format=xhtml&download=0", "Other notes\\nA trustee, and former chairman of the Newcastle-Under-Lyme Rural Parishes Transport Scheme (T/A The Rural Runabout) has been charged with Fraud by Abuse of Position 01/01/2018-01/09/2019 - Fraud Act 2006 and the trial has taken place over 3 days, starting on Monday 13 November 2023."], ["NORFOLK FAMILY HISTORY SOCIETY", "theft", "Company salt grit bin stolen", NaN, "NaN", "NaN", "EDUCATION", "Other education nec,Educational support activities", "Norfolk", "https://find-and-update.company-information.service.gov.uk/company/03194731/filing-history/MzQ0MzA1NDg1MmFkaXF6a2N4/document?format=xhtml&download=0", "Car Park Grit Bin \u2013 Unfortunately our original salt grit bin with all its contents was stolen. A new weather resistant bin has been installed and fixed permanently to the wall."], ["NUMBER ONE COMMUNITY TRUST (TW) LTD", "anti-social behaviour", "Company experienced vandalism incidents.", NaN, "NaN", "NaN", "ADMINISTRATIVE AND SUPPORT SERVICE ACTIVITIES", "Other business support service activities nec", "Tunbridge Wells", "https://find-and-update.company-information.service.gov.uk/company/04337821/filing-history/MzQ0NzEyMTUxN2FkaXF6a2N4/document?format=xhtml&download=1", "There have been some matters of vandalism \u2013 windows broken, railings ripped out. These have been fixed on insurance in the case of windows, and by TWBC in the case of railings. A more effective closed circuit tv monitoring system was funded by the TW Borough Council to help counter this."], ["OASE (UK) LIMITED", "cyber-attack", "Company suffered a major cyber-attack", NaN, "NaN", "NaN", "MANUFACTURING,MANUFACTURING,WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES", "Machining,Other manufacturing nec,Wholesale of other machinery and equipment", "Eastleigh", "https://find-and-update.company-information.service.gov.uk/company/02801813/filing-history/MzQzNzc4NTUxMWFkaXF6a2N4/document?format=xhtml&download=0", "The company also suffered a major cyber-attack in November 2022 which affected all its IT systems globally. Due to the extent of this the company had severe operational issues for much of the year."], ["ODDJOB CONSULTANTS LIMITED", "anti-social behaviour", "Company bookings canceled due to vandalism", NaN, "NaN", "NaN", "ARTS, ENTERTAINMENT AND RECREATION", "Other amusement and recreation activities", "Nottingham", "https://find-and-update.company-information.service.gov.uk/company/03593916/filing-history/MzQzMzM2MTExMWFkaXF6a2N4/document?format=xhtml&download=0", "The company had to cancel several bookings as a result of vandalism."], ["ORIANNA INVESTMENTS LTD", "financial irregularities", "Company victim of expropriation and cover-up by banks", NaN, "NaN", "NaN", "REAL ESTATE ACTIVITIES", "Renting and operating of Housing Association real estate", "Portrush", "https://find-and-update.company-information.service.gov.uk/company/NI046496/filing-history/MzQzMzY1MDA3NGFkaXF6a2N4/document?format=xhtml&download=0", "The director files these accounts for the purposes of making sure a detailed account is entered into companies house. In the last accounts filed it was stated that the director was trying to establish the correct reason for a mass transfer of Northern Ireland businesses to GRG in 2010 despite the denial of same by the Financial Conduct Authority in 2016, 2017, 2018 and 2019. The director has now found through access to non-confidential versions of EU agreements No N 422/2009 and N 621/2009 that as RBS failed on the 7th\u00a0to 10th\u00a0October 2008 (source FSA report into the failure of Royal bank of Scotland dated in 2011) a covert plan was put in place to transfer our (Irish businesses) economic rights to the Asset Protection agency dated 13th\u00a0October 2008. Alongside this the director has found an EU\u00a0agreement was made to recapitalise the insolvent Banks balance sheet with \u201ccollateral swaps\u201d from the Bank of England\u2019s Special Liquidity Scheme. The companies and all businesses in Northern Ireland and Southern Ireland that banked with Ulster Bank were to be put out of business on the direction of the UK public authorities (HMT, FSA and Bank of England) by Dec 31st, 2012. It was a condition of their continued funding that the plan was enacted. The director now understands this is why Project Emerald was launched in Sept 2012 in case it had to be admitted. As such the director has found collateral swaps, ISDA transactions, margin accounts were opened by the bank illegally and unbeknown to the director until Dec 2023 with Data received from the Central Bank of Ireland. The director now understands the reasons fully for the 6-week outage in the Ulster Bank computer platform in 2012 when he complained in the form of a complaint file and will continue to try to achieve some form of justice for all affected. This is why the Ulster Bank applied to be regulated by the Bank of England instead of the central bank of Ireland in July 2012. \u00a0The director can now prove the bank destroyed all his original bank files during the IT outage of 2012 with Data recently received from A and L Goodbody solicitors and he was given the codename \u201cProject Bluebelle\u201d from January 1st, 2013, when new ones started to be rebuilt. \u00a0In essence as the director was trying to run the company the profit from its assets had already been acquired by the Asset protection agency/UKFI. Stephen Hester and Nathan Bostock were put in charge of enacting the covert plan. The director has also established that this was not to just to be kept from him but also the managers he dealt with in the form of a confidential Blind assets document from the Asset Protection agency era (13th\u00a0Oct 2008 \u2013 28th\u00a0Oct 2012).\\nOn the basis of the above, the director considers it appropriate to prepare financial statements on the going concern basis."], ["ORTIVUS UK LIMITED", "cyber-attack", "Company system shut down after cyberattack", NaN, "NaN", "NaN", "WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES", "Retail sale of medical and orthopaedic goods (other than hearing aids) nec, in specialised stores", "Totton", "https://find-and-update.company-information.service.gov.uk/company/03558696/filing-history/MzQxOTAyNjg2MWFkaXF6a2N4/document?format=xhtml&download=0", "Ortivus' electronic patient record system was shut down after a cyberattack that affected two customers in July 2023. The systems are now back in operation in a new and secure environment. Ortivus' efforts to obtain compensation for costs incurred in connection with the cyberattack are ongoing. A provision has not been recognised for damages as it is not probable that an outflow of resources will be required to settle the case."], ["PC HOUSE (LONDON) LTD", "theft", "Company theft of stock reported", NaN, "NaN", "NaN", "OTHER SERVICE ACTIVITIES", "Repair of computers and peripheral equipment", "Ilford", "https://find-and-update.company-information.service.gov.uk/company/09535664/filing-history/MzQwOTAyMzY1OWFkaXF6a2N4/document?format=xhtml&download=0", "Stock adjustmunt for theft of stock refelected in accounts for 30th April 2021."], ["PERROTT REALISATIONS LTD", "arson", "Company premises destroyed by arson", NaN, "NaN", "NaN", "FINANCIAL AND INSURANCE ACTIVITIES", "Activities of other holding companies (not including agricultural, production, construction, distribution and financial services holding companies) nec", "Derby", "https://find-and-update.company-information.service.gov.uk/company/09825824/filing-history/MzQzMzY1NDgzOGFkaXF6a2N4/document?format=xhtml&download=0", "The development property comprises a one-third interest in 27 acres of freehold land in Stoke on Trent. The main industrial building on the land was completely destroyed by arson on 5 February 2017. The share of losses to 31 October 2023 has been added to cost. The site currently has a market value somewhat higher than book value."], ["PRIMO DRINKS LIMITED", "theft", "Company suffered a large employee theft issue", NaN, "NaN", "NaN", "WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES", "Wholesale of wine, beer, spirits and other alcoholic beverages", "Stockport", "https://find-and-update.company-information.service.gov.uk/company/04824074/filing-history/MzQzNzQ3OTMxMmFkaXF6a2N4/document?format=xhtml&download=0", "Turnover in 2023 was up just over \u00a32m against 2022 whilst net profit was down slightly from \u00a32.8m to \u00a32.2m. The company unfortunately suffered a large theft issue in our North East branch in 2023, with all employees out of that branch being involved except for one, excluding the sales team. This unfortunately took up a lot of resource due to the fact we had to terminate these employees and replace the whole team at this site. This was a distraction from normal business for a few months and obviously had a large bearing on performance and results. The positive side is we are now over this and have a brand new team in that branch which is performing better in 2024 compared to 2023 so far. The business is broadly on track to achieve an overall performance in 2024 similar to that of 2023."], ["Raphael Centre", "financial irregularities", "Company awaiting outcome of fraud investigation", NaN, "NaN", "NaN", "HUMAN HEALTH AND SOCIAL WORK ACTIVITIES", "Residential care activities for learning disabilities, mental health and substance abuse", "Bristol", "https://find-and-update.company-information.service.gov.uk/company/02629063/filing-history/MzQ0NjUzOTA3MWFkaXF6a2N4/document?format=xhtml&download=1", "The police investigation arising from a previous manager's dismissal (May 2022) continues; the fraud case file is currently pending review by the case progression team (regarding final compliance checks) and Raphael Centre awaits to hear once it has been submitted to CPS."], ["REVIVAL CHURCH, BILLERICAY", "arson", "Company premises occupied by Charity attacked in arson", NaN, "NaN", "NaN", "OTHER SERVICE ACTIVITIES", "Activities of religious organisations", "Billericay", "https://find-and-update.company-information.service.gov.uk/company/10528030/filing-history/MzQzMDczMzQ1OWFkaXF6a2N4/document?format=xhtml&download=0", "On the afternoon of 4th April there was an arson attack on the premises occupied by the Charity. This caused significant damage to Billericay Baby Basics and the Revival Church Billericay Office as well as other charities and businesses operating out of the two storey building affected. This has meant we have been operating out of temporary accommodation but due to the support and donations we have received as a charity it has not overall resulted in a negative financial impact."], ["SAFARILAND UK LTD", "cyber-attack", "Company affected by cyber incident", NaN, "NaN", "NaN", "MANUFACTURING", "Manufacture of workwear", "Liverpool", "https://find-and-update.company-information.service.gov.uk/company/07418287/filing-history/MzQ0OTM3MjY4OGFkaXF6a2N4/document?format=xhtml&download=1", "Trading during the year was also impacted by a cyber incident, which affected the business mid- year."], ["SIGNATURE IT LIMITED", "cyber-attack", "Company experienced serious cyber-attack", NaN, "NaN", "NaN", "NaN", "Business and domestic software development", "NaN", "https://find-and-update.company-information.service.gov.uk/company/04714209/filing-history/MzQzNjUyMTU3M2FkaXF6a2N4/document?format=xhtml&download=0", "In November 2023, the subsidiary company in Israel has experienced a serious cyber-attack which severely damaged its business. The revenues of the subsidiary company in Israel have decreased significantly due to this attack. As the company\u2019s revenue are also significantly based on the royalties from the Israeli subsidiary company, the company will experience a major decrease in royalties (and turnover) in the next year. However, the company will see a parallel reduction in R&D costs since the Israeli subsidiary company has reduced its employees count and R&D expenditure. Based on the cut in the R&D expenses, the company will have the funds required to run the business for the next 12 months ."], ["Silvergnome Ltd", "financial irregularities", "Company employee convicted of fraud", NaN, "NaN", "NaN", "ARTS, ENTERTAINMENT AND RECREATION", "Artistic creation", "London", "https://find-and-update.company-information.service.gov.uk/company/02072771/filing-history/MzQ0NzUzODM3NWFkaXF6a2N4/document?format=xhtml&download=1", "Subsequent to this reporting period the directors were made aware that a long standing employee of the company with responsibility for book-keeping has been imprisoned following a fraud conviction in relation to their work at another (unconnected) company for whom they provided a similar service. Inspection of the prepaid expense card accounts and petty cash reconciliations at Silvergnome Ltd revealed multiple personal and unauthorised cash withdrawals over a period of years made by the individual concerned who is no longer employed by the company."], ["SP JAIN LONDON SCHOOL OF MANAGEMENT LIMITED", "financial irregularities", "Company suffered fraudulent payments due to phishing", NaN, "NaN", "NaN", "EDUCATION", "Other education nec", "London", "https://find-and-update.company-information.service.gov.uk/company/13210674/filing-history/MzQzMTUyOTE5OGFkaXF6a2N4/document?format=xhtml&download=0", "As detailed in note 4 to the financial statements, an exceptional loss recorded under administrative expenses which represent fraudulent payments made by ICICI Bank London, which are the result of phishing activities that compromised the emails of the employees of the parent company. Improvements have been made to the internal control environment of the parent company to prevent re-occurrence."], ["STERLING LEASING SOLUTIONS LTD", "scam", "Company incurred loss due to scam", NaN, "NaN", "unrecoverable bad debt", "WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES", "Sale of used cars and light motor vehicles", "London", "https://find-and-update.company-information.service.gov.uk/company/10939006/filing-history/MzQzNDAxNjg1NGFkaXF6a2N4/document?format=xhtml&download=0", "4. Debtors\\n\\n2023\\n\u00a3\\n2022\\n\u00a3\\nTrade debtors 0\\nPrepayments and accrued income 0\\nOther debtors 4,808 5,795\\nTotal 4,808 5,795\\nUnrecoverable Bad Debt Due to Scam"], ["THE CAPITAL CITY PARTNERSHIP LIMITED", "cyber-attack", "Company suffered financial loss due to cybercrime", NaN, "NaN", "NaN", "PUBLIC ADMINISTRATION AND DEFENCE; COMPULSORY SOCIAL SECURITY", "General public administration activities", "Edinburgh", "https://find-and-update.company-information.service.gov.uk/company/SC193404/filing-history/MzQzNjg2OTA3OWFkaXF6a2N4/document?format=xhtml&download=0", "Financial controls were critically examined this year because the organization suffered a financial loss due to cybercrime. This was reported to the company\u2019s bank, the police the Board of Directors and the funding authority.  Since the event in November 2023 further scrutiny is being undertaken for all payees including two person verifications to ensure all transactions are legitimate,  authorised and documented. Investment in IT is integral to all projects in order to bolster the remote working capacity of the organization including improved cloud back up and anti-virus. The staff handbook and company policies have been comprehensively reviewed and updated to be compliant with current employment law / GDPR requirements. A risk register is reviewed regularly by the management team and the ESESCRD activities require mandatory monthly / quarterly risk reports."], ["THE FASCIA PLACE GROUP LTD", "cyber-attack", "Company suffered from cyber ransomware attack", NaN, "NaN", "NaN", "FINANCIAL AND INSURANCE ACTIVITIES,FINANCIAL AND INSURANCE ACTIVITIES", "Activities of construction holding companies,Activities of distribution holding companies", "Farnborough", "https://find-and-update.company-information.service.gov.uk/company/09088825/filing-history/MzQwOTc3MzYwMGFkaXF6a2N4/document?format=xhtml&download=0", "In September 2023 the company was subject to a cyber ransomware attack. Whilst nothing was paid to the attackers, considerable disruption to the business ensued recovering systems and data. Substantial expenditure was incurred for professional advice and upgrading hardware and software within the business. During the system outage, trading and order pipelines were disrupted which together with the requirement to divert significant management resource, contributed substantially to the losses incurred for the year. The directors are confident that following a thorough review, \u00a0the company\u2019s systems are robust and secure."], ["THE HIVE PORTSMOUTH", "cyber-attack", "Company experienced ransomware attack on systems", NaN, "NaN", "NaN", "EDUCATION,HUMAN HEALTH AND SOCIAL WORK ACTIVITIES", "Other education nec,Other social work activities without accommodation nec", "Portsmouth", "https://find-and-update.company-information.service.gov.uk/company/12064936/filing-history/MzQ0MTkxMzQ5MmFkaXF6a2N4/document?format=xhtml&download=0", "In November, Gatherwell, who are contracted to manage our small lottery, contacted us to inform us of a ransomware attack on direct debit facilities management for the small lottery. In December Gatherwell confirmed that data had been compromised for a large number of our customers but steps taken had recovered the data with no impact. The ICO and Gambling Commission were informed by Gatherwell, and we also informed the ICO and Portsmouth City Council. The ICO confirmed that no regulatory action was necessary, and the Trustees determined that a serious incident report should be made to the Charities Commission. The Charity Commission assessed the circumstances of the incident and concluded that the trustees dealt with the matter appropriately and responsibly."], ["The University of Manchester Worldwide Limited", "cyber-attack", "Company suffered a cyber incident", NaN, "NaN", "NaN", "EDUCATION", "First-degree level higher education,Post-graduate level higher education", "Oxford Road", "https://find-and-update.company-information.service.gov.uk/company/04666867/filing-history/MzQxMDA2NjEwMWFkaXF6a2N4/document?format=xhtml&download=0", "PRINCIPAL RISKS AND UNCERTAINTIES\\nDuring the summer of 2023 the parent company, the University of Manchester, suffered a cyber incident which impacted a number of systems within the University. The company's own finance system was not impacted and any related vulnerabilities have now been resolved. The University continues to invest to protect the University from future cyber-attacks and improve resilience however the risk still remains high."], ["THE WALTHAM ABBEY ROYAL GUNPOWDER MILLS COMPANY LIMITED", "anti-social behaviour", "Company buildings damaged by vandals", NaN, "NaN", "NaN", "ARTS, ENTERTAINMENT AND RECREATION", "Museum activities", "Essex", "https://find-and-update.company-information.service.gov.uk/company/03376501/filing-history/MzQzNjk2MzY2MmFkaXF6a2N4/document?format=xhtml&download=0", "In addition, we had additional costs from rising energy bills\u00a0and for security to try to prevent intruders to the site following damage to some of our buildings from\u00a0vandals; a claim was made against our insurance for this which was pending during 2023 and settled in\u00a0June 2024. The great bulk of the charity's costs are fixed costs to do with security and maintenance of our\u00a0175 acre site, and there are no realistic ways to reduce this when income falls."], ["William Golding Limited", "theft", "Company reported web-based copyright infringements", NaN, "NaN", "NaN", "ARTS, ENTERTAINMENT AND RECREATION", "Artistic creation", "Bristol", "https://find-and-update.company-information.service.gov.uk/company/00710565/filing-history/MzQxMjU4MjEzM2FkaXF6a2N4/document?format=xhtml&download=0", "In 2022-2023, WGL:\\n\u2022 Finalised work with Faber & Faber on the last volumes in the successful and highly profitable relaunch of the novels.\\n\u2022 Secured late payment of royalties from foreign publishers and ensured legal safeguards to avoid recurrence.\\n\u2022 Recouped the outstanding balance on the very large US advance on the US audio-book of Lord of the Flies and recommenced receiving income therefrom.\\n\u2022 Noted that e-books of the two William Golding essay volumes The Hot Gates and A Moving Target produced increasing income.\\n\u2022 Ensured that terms of sublicences of all novels and for the forthcoming graphic novel edition of Lord of the Flies were carefully monitored.\\n\u2022 Reported several web-based infringements of copyright on e-books and audio-books to Faber & Faber for action.\\n\u2022 Secured reports from Faber & Faber on illegal e-publications and monitored their removal.\\n\u2022 Alerted Faber & Faber to illegal educational use of Lord of the Flies and secured removal."]];

        // Define the dt_args
        let dt_args = {"scrollY": "400px", "paging": false, "columnDefs": [{"targets": "_all", "className": "dt-left"}], "layout": {"topStart": "pageLength", "topEnd": "search", "bottomStart": "info", "bottomEnd": "paging"}, "order": [], "warn_on_selected_rows_not_rendered": true};
        dt_args["data"] = data;

        
        new DataTable(table, dt_args);
    });
</script>
</div>
</div>
<div id="fa0dc1b4-e7fa-436a-b68d-7ad740c7600b" class="cell">
<div class="cell-output cell-output-display">

    <a href="assets/2024_events.csv" download="">
        <button style="
            background-color: #4CAF50;
            border: none;
            color: white;
            padding: 10px 20px;
            text-align: center;
            text-decoration: none;
            display: inline-block;
            font-size: 16px;
            margin: 4px 2px;
            cursor: pointer;
            border-radius: 5px;">
            📥 Download Data
        </button>
    </a>
</div>
</div>
</section>
<section id="noteworthy-items" class="level2">
<h2 class="anchored" data-anchor-id="noteworthy-items">Noteworthy Items</h2>
<p>The largest cost associated with financial irregularities were reported by <strong><a href="https://find-and-update.company-information.service.gov.uk/company/10329110">144 Midland Road Limited</a></strong>, a development run by the well-known <a href="https://www.dailymail.co.uk/femail/article-4929420/Mum-went-stay-home-parent-120m-property-mogul.html">property mogul</a> Nicole Bremner. The company claims to have lost <strong>£11M</strong> through <em>material misappropriation</em> of assets over a number of years through the activities of former director and property developer <a href="https://find-and-update.company-information.service.gov.uk/officers/tuDzLYXIS9mPOfcEYW5Ix2A_uoo/appointments">Abraham “Avi” Dodi</a>. The company is conducting a forensic accounting review and yet to make a claim against Dodi. £11M is a significant sum of money for a development with net liabilities of £4.4M, most of which is owed to one of Dodi’s companies.</p>
<p>In the largest reported bank hack, <strong>£3.8M</strong> was stolen from <strong><a href="https://find-and-update.company-information.service.gov.uk/company/12819996">Nutri-paw Ltd</a></strong>, a company that develops health supplements for dogs. Unfortunately, the company was only able to recover £800K of the funds with the rest being written off. The most expensive cyber-attack was targeted at <strong><a href="https://find-and-update.company-information.service.gov.uk/company/02260524">Capita Pensions Solutions Limited</a></strong> costing the organisation <strong>£3.6M</strong>. These costs went towards <em>specialist professional fees, recovery and remediation costs and investment to reinforce Capita’s cyber security environment</em>. Although the company’s report provides limited details on the incident, external sources <a href="https://www.thepensionsregulator.gov.uk/en/document-library/enforcement-activity/regulatory-intervention-reports/capita-cyber-security-incident-regulatory-intervention-report">indicate</a> that the broader Capita Group, of which Capita Pension Solutions Limited is a subsidiary, estimates the total financial impact of the March 2023 cyber-attacks to be around <strong>£25M</strong>. The attack was <a href="https://baringslaw.com/news-insight/capita-data-breach-what-happened/">reportedly</a> linked to an unsecured <strong>Amazon S3 bucket</strong>, which allowed the <strong>Black Basta</strong> ransomware group to gain access to sensitive data, including the personal information of <a href="https://www.kpl-databreach.co.uk/which-pension-firms-are-involved-in-the-capita-data-breach/">half a million pension holders</a>.</p>
<img src="https://adu.autonomy.work/posts/2025_02_11_exceptional-items/assets/black_basta.png" class="img-fluid">
<center>
<figcaption>
Desktop screenshot from a victim of the Black Basta ransomware group that hacked Capita Pensions
</figcaption>
</center>
<p><br></p>
<p>The most expensive arson attack was the incident at <strong>SWX Bristol</strong>, a music venue owned by <strong><a href="https://find-and-update.company-information.service.gov.uk/company/12490976">Electric Group Holdings Limited</a></strong>, that warranted a <strong>£2.95M</strong> insurance payout. The venue was attacked by Owen Marshall, who dowsed a towel in petrol before setting it alight and posting it through the venue’s letterbox in the early hours of July 13th 2021. Marshall’s motive stemmed from an unhealthy <a href="https://www.bbc.co.uk/news/uk-england-bristol-59583381">obsession</a> with lockdown restrictions, leading him to target entertainment venues in Bristol based on the false belief that they would be introducing COVID-19 vaccine passport requirements imminently.</p>
<img src="https://adu.autonomy.work/posts/2025_02_11_exceptional-items/assets/swx.jpeg" class="img-fluid">
<center>
<figcaption>
CCTV footage of the arson attack at SWX nightclub in Bristol
</figcaption>
</center>
<p><br></p>
<p>It’s rare for a business to have all its assets seized by the police and still live to tell the tale. However <strong>Eidolon-UK Chemical Services Ltd</strong> operates within a heavily scrutinised corner of the market. The company manufactures and distributes an organic chemical called <strong>trans-β-methyl-β-nitrostyrene</strong>, otherwise known as <strong>1-phenyl-2-nitropropene</strong>. Beyond research applications, the chemical is used as a <a href="https://www.scbt.com/p/trans-beta-methyl-beta-nitrostyrene-705-60-2?srsltid=AfmBOopPvR2oSZGXIzyw_5dfUNmMVravGP_Ruq_qV1ZlFITYVkC4pO1X">precursor</a> in the synthesis of <strong>amphetamines</strong>. Eidolon clarify that the chemical is <em>not on any postal service’s banned list</em>, is not yet <em>illegal anywhere in the world</em> nor included on the <em>USA’s TCSA list of toxic chemicals</em>. Despite having to refund all customers and offer discounts following the police raid the company <a href="https://eidoloncs.co.uk/news.html">remains undeterred</a>, having relocated to a new commercial lab. Eidolon faces continued obstacles marketing the chemical through established channels and has been subject to shadow bans on eBay and had its Etsy store suspended. The company maintains its own website with independent payment processing, offering discounts for cryptocurrency transactions.</p>
<img src="https://adu.autonomy.work/posts/2025_02_11_exceptional-items/assets/nitr0.png" class="img-fluid">
<center>
<figcaption>
Product images from Eidolon Chemical Services online store
</figcaption>
</center>
<p><br></p>
<p>Perhaps the most unsettling disclosure comes from <strong><a href="https://find-and-update.company-information.service.gov.uk/company/07839142">Lehram Capital Investments Ltd</a></strong> who reveal that since 2019 they have come under sustained attack from an <strong>organised Russian crime syndicate</strong> determined to <em>annihilate</em> the business and prevent it from exposing the extent of the group’s criminal activities throughout the continent. A former company director is reported to have suffered repeat <em>accidents</em> causing them <em>serious harm</em> and <em>permanent damage</em> resulting in confidential settlements. Directors report facing threats of <strong>murder</strong>, <strong>kidnapping</strong>, <strong>extortion</strong> and persecution towards themselves and family members. Although Lehram’s report does not name those it accuses of harassment, legal proceedings and media reports suggest the company’s troubles <a href="https://www.ft.com/content/4bf3ceda-e0e3-11e7-a8a4-0a1e63a52f9c">date back</a> to its 2013 acquisition of the Gramoteinskaya coal mine in Siberia. Lehram’s director Igor Rudyk was supposedly detained on immigration charges, coerced under duress, and forced to sign over the mine to a criminal group allegedly linked to Siberian industrial magnate Alexander Shchukin, with the involvement of regional officials. Lehram <a href="https://www.reuters.com/legal/legalindustry/law-firm-baker-mckenzie-must-face-us-lawsuit-over-russian-lawyers-conduct-2024-02-15/">continues</a> to pursue legal action internationally.</p>
<p>Loss of stock due to theft is a common occurrence with stolen items across the reporting period including construction tools, jewellery, consumer electronics, pharmaceuticals, C18th kitchenware and a salt bin. <strong><a href="https://find-and-update.company-information.service.gov.uk/company/04824074">Primo Drinks</a></strong>, the UK’s largest family run drinks wholesaler, writes of a <strong>large theft issue</strong> in their North East branch in 2023 involving all but one employee. The company fired and replaced the entire team.</p>


</section>

 ]]></description>
  <category>Interactive</category>
  <category>Risk Extraction</category>
  <guid>https://adu.autonomy.work/posts/2025_02_11_exceptional-items/</guid>
  <pubDate>Tue, 11 Feb 2025 00:00:00 GMT</pubDate>
  <media:content url="https://adu.autonomy.work/posts/2025_02_11_exceptional-items/assets/white.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>Project 2025 Index</title>
  <dc:creator>Sean Greaves</dc:creator>
  <link>https://adu.autonomy.work/posts/2024_08_28_heritage/</link>
  <description><![CDATA[ 





<p><a href="https://github.com/Autonomy-Data-Unit/project-2025-index" class="post-top-link" target="_blank"> <i class="bi bi-github"></i> Check out the code on GitHub </a></p>
<p><a href="http://project2025index.com/" class="post-top-link" target="_blank"> <i class="bi bi-window"></i> Project 2025 Index </a></p>
<img src="https://adu.autonomy.work/posts/2024_08_28_heritage/assets/hardback.jpg" class="img-fluid">
<center>
<figcaption>
</figcaption>
</center>
<p><br></p>
<p><a href="https://www.project2025.org/">Project 2025</a> is a controversial plan developed by the Heritage Foundation think-tank that outlines a policy framework for a future conservative US president. Although most people probably haven’t read the 900-page policy document, they’re more likely to have come across one of many articles, explainers and memes that have raised public awareness of its more radical ideas. However there are limitations to the aforementioned formats that fail to engage with the scale of the document.</p>
<p>Discourse surrounding Project 2025 tends to focus on the most polarising content such as reproductive rights, gender, diversity and the environment. This diverts attention from large sections of the document that potentially remain overlooked. Many attempts at summarising Project 2025 fail to maintain accuracy, and could be disregarded as disinformation. The Heritage Foundation has <a href="https://www.project2025.org/truth/">highlighted</a> a number of claims commonly made about the document as factually incorrect, from ending civil rights to outright banning abortion. Closer engagement with the source material would better serve those looking to scrutinise the foundation’s more nuanced positions.</p>
<p>To engage with the full scope of Project 2025 and encourage readers towards the source, we instead propose an <a href="https://simple.wikipedia.org/wiki/Index_(publishing)#:~:text=An%20index%20is%20a%20detailed,name%20is%20a%20page%20number.">index</a>; a section that was missing from the document. In this blog post we discuss some of the design choices and functionality.</p>
<section id="affordances-and-constraints-of-the-index" class="level2">
<h2 class="anchored" data-anchor-id="affordances-and-constraints-of-the-index">Affordances and constraints of the index</h2>
<p>Indexes map the most important terms within a text, helping readers navigate large documents with greater ease. They reveal underlying structure through page references. Listing the most important terms has a levelling effect that facilitates chance encounters with subjects the reader may have overlooked.</p>
<p>Indexers face multiple challenges in crafting a useful index. The level of detail, known as depth, is an important consideration. We want to capture all the relevant subjects from the text without inducing cognitive overload in the reader. The process of selecting terms to include in the index requires skill and is more subjective than we might initially think. The indexer is not exonerated from the potential charges of bias that journalists and memers are more accustomed to facing. There is a well-documented <a href="https://www.ft.com/content/196b09bd-f6ad-4971-8b29-4197ef8b145f">history</a> of partisan indexers subtly undermining the content of political texts through their choices. The president of the UK’s <a href="https://www.indexers.org.uk/">professional body</a> for indexers describes the role as a ‘difficult, vital, and underappreciated art’, reminding us that ‘a computer can’t compile it for you, and that “just doing it yourself” isn’t nearly as easy as it sounds’.</p>
<section id="depth" class="level3">
<h3 class="anchored" data-anchor-id="depth">Depth</h3>
<p>We designed the Project 2025 index to be exhaustive and granular. If each indexed term is a backdoor into Project 2025, we wanted to create as many possible doors for as many possible readers to step through. The desired effect should be to maximise exploration and chance encounter with the ideas in the document. Because we built an interactive digital index, search and filtration features were implemented to alleviate some of the cognitive burdens of scale, helping readers find relevant terms more efficiently. In building an index with a high degree of granularity, we sought to preserve the most politically charged language from the source text without collapsing the terms into higher level concepts. Examples include some of the following terms:</p>
<ul>
<li>‘Aborted baby body parts’</li>
<li>‘Abortion tourism’</li>
<li>‘Anti-American Left’</li>
<li>‘Authoritarianism in China’</li>
<li>‘Climate Extremism’</li>
<li>‘Deadbeat Parents’</li>
<li>‘Drain the swamp’</li>
<li>‘Gender Radicalism’</li>
<li>‘Human-animal chimera’</li>
<li>‘Hyperpartisanship’</li>
<li>‘Pro-Life Workplace Accommodations’</li>
</ul>
</section>
<section id="selecting-terms" class="level3">
<h3 class="anchored" data-anchor-id="selecting-terms">Selecting terms</h3>
<p>Selecting terms is a challenging task and we do not claim to have expertise on par with that of a professional indexer. To achieve an acceptable level of performance, we leaned on the existing knowledge taxonomy of Wikipedia; most subjects encountered within Project 2025 are likely to have a Wikipedia page with a well chosen title and useful metadata. For cases in which significant terms did not have a suitable Wikipedia page, we reverted to indexing the term as it appeared in the text or generated a term that seemed to be the most accurate.</p>
<img src="https://adu.autonomy.work/posts/2024_08_28_heritage/assets/emirates.png" class="img-fluid">
<center>
<figcaption>
</figcaption>
</center>
<p><br></p>
</section>
</section>
<section id="ai-augmented-features" class="level2">
<h2 class="anchored" data-anchor-id="ai-augmented-features">AI-augmented features</h2>
<p>Language models can enhance reader interaction with indexes, without compromising the simplicity and familiarity of the format. We applied language models to implement sort, summarisation and search functionality to encourage wider exploration and more efficient navigation of the document.</p>
<section id="sort" class="level3">
<h3 class="anchored" data-anchor-id="sort">Sort</h3>
<p>Indexes are typically sorted alphabetically. By generating embedding vectors for each term, it’s possible to instead sort the index by semantic similarity, where proximity correlates with similarity in meaning. This kind of sort results in the natural formation of thematic regions. In the image below I have attempted to hand label some of the regions within this conceptual gradient. Semantic sort could prove even more useful when comparing multiple texts; aligning indexes could highlight conceptual gaps and overlaps.</p>
<img src="https://adu.autonomy.work/posts/2024_08_28_heritage/assets/vector_sort.png" class="img-fluid">
<center>
<figcaption>
</figcaption>
</center>
<p><br></p>
</section>
<section id="summary" class="level3">
<h3 class="anchored" data-anchor-id="summary">Summary</h3>
<p>Indexes provide a tradeoff between convenience and context. While they quickly direct readers to relevant pages, they lack the ability to convey how a subject is discussed on the page— requiring the reader to navigate through the source document for details. In an attempt to retain more context, we incorporated hidden summaries generated by language models, which offer a brief overview of the subject’s treatment on the page. These summaries, accessible via tooltips that appear when hovering over page numbers, allow readers to grasp context without leaving the index. Optimised for conciseness, neutrality, and accuracy, each summary gives a sense of context, encouraging the reader to navigate to the source if the context is relevant to their line of enquiry.</p>
<img src="https://adu.autonomy.work/posts/2024_08_28_heritage/assets/race.png" class="img-fluid">
<center>
<figcaption>
</figcaption>
</center>
<p><br></p>
</section>
<section id="search" class="level3">
<h3 class="anchored" data-anchor-id="search">Search</h3>
<p>Given that the index contains thousands of terms and summaries, a search engine is a very necessary convenience for readers who know what they’re looking for. By generating embedding vectors for both terms and page summaries, we enable the reader to search by subject and document content. This distinction allows the reader to search with greater precision because of the separation between independent subjects and document context. As an example, searching for the closest term to ‘enemies of the USA’ returns ‘United States foreign adversaries’. However, when searching for page-level discussion with the same query, the top result is the reference to ‘Nazism’ on page 768 where the author discusses America’s war efforts against Nazi Germany.</p>
<img src="https://adu.autonomy.work/posts/2024_08_28_heritage/assets/v_search.png" class="img-fluid">
<center>
<figcaption>
</figcaption>
</center>
<p><br></p>


</section>
</section>

 ]]></description>
  <category>Interactive</category>
  <category>Deep-dives</category>
  <category>Comes with code</category>
  <guid>https://adu.autonomy.work/posts/2024_08_28_heritage/</guid>
  <pubDate>Mon, 02 Sep 2024 23:00:00 GMT</pubDate>
  <media:content url="https://adu.autonomy.work/posts/2024_08_28_heritage/assets/badge.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>Six degrees of Reform</title>
  <dc:creator>Sean Greaves</dc:creator>
  <link>https://adu.autonomy.work/posts/2024_06_28_reform/</link>
  <description><![CDATA[ 





<p>Reform UK brands itself as an <a href="https://www.ft.com/content/4059c92f-9bb3-484a-b8aa-e42f5c5cc797#:~:text=Reform%20UK%E2%80%99s%20leadership%20calls%20it%20an%20%E2%80%9Centrepreneurial%20political%20start%2Dup%E2%80%9D">“entrepreneurial political start-up”</a> with multi-millionaire real-estate tycoon and party chairman Richard Tice <a href="https://richardtice.com/about/">advocating</a> for more business leaders to engage in politics and improve how the country is run. Prompted by Reform’s claims to entrepreneurship we ask:</p>
<p><em>What British companies have Reform’s leadership and their extended network <strong>started-up</strong> over the past decade?</em></p>
<p>To answer this, we conducted an analysis of Companies House data, identifying notable companies established since 2014 in proximity to Reform. From this data, we created a network map to illustrate the connections of each company to the political party. This blog post delves into Reform’s extended corporate network, exploring the emergence of the UK’s populist radical right and their links to other political projects. As we navigate the interconnected paths of the network, akin to a long walk through the <a href="https://www.facebook.com/nigelfarageofficial/videos/reform-uk-party-election-broadcast-2024/404048385970803/?_rdr">Kentish countryside</a>, we will take some scenic detours along the way.</p>
<section id="network" class="level2">
<h2 class="anchored" data-anchor-id="network">Network</h2>
<p>The following network illustrates the connections between Reform and a selection of companies registered within the past decade (2014-2024) at Companies House. Each time a company from the network is mentioned within this article, we use it’s full title in Companies House and highlight in grey: Reform is currently registered under the name <code>Reform UK Party Limited</code>.</p>
<p>All companies at the edge of the network were formed within the past decade. Nodes within the network represent officers or persons of significant control 👤, active companies 💰, companies no longer active ❌ and addresses 🏢. A selection of important nodes are numbered, corresponding to each of the six sections within this blog post:</p>
<ul>
<li>1️⃣ Richard Tice</li>
<li>2️⃣ Bathurst Estate</li>
<li>3️⃣ Leave.EU</li>
<li>4️⃣ Nigel Farage</li>
<li>5️⃣ Reform UK</li>
<li>6️⃣ UKIP</li>
</ul>
<p>To understand how any two nodes are connected, hover over the arrow that joins them to view the tooltip description (e.g.&nbsp;the arrow connecting <code>Richard James Sunley TICE</code> with <code>QUIDNET REIT LIMITED</code> reads ‘Appointment’ because <code>QUIDNET REIT LIMITED</code> is a current <a href="https://find-and-update.company-information.service.gov.uk/officers/iDabUesOWH_lKM0l2q6XEefh4eU/appointments">appointment</a> of <code>Richard James Sunley TICE</code> in Companies House). Red arrows indicate either an officer’s past appointments or a company’s former officers.</p>
<iframe src="assets/graph.html" width="755" height="800" style="border: 1px solid lightgrey; margin: 0; padding: 0;">
</iframe>
<details>
<summary>
Methodology
</summary>
<section id="constructing-networks-from-companies-house" class="level3">
<h3 class="anchored" data-anchor-id="constructing-networks-from-companies-house">Constructing networks from Companies House</h3>
<p>Companies House maintains data on every active company (and some non-active historic companies) incorporated within the UK. Each company’s profile includes metadata on key persons such as officers and persons of significant control, as well as current and historic registration addresses. This metadata enables connections between companies to be established in several ways:</p>
<ul>
<li>Two companies may share the same historic officer.</li>
<li>Two companies may be registered to the same historic address</li>
</ul>
<p>Existing <a href="https://github.com/ribenamaplesyrup/sugartrail">software</a> can automate the download of all entities (companies, persons and addresses) connected to a single company or officer within a specified degree of separation (number of connections).</p>
</section>
<section id="challenges-in-data-analysis" class="level3">
<h3 class="anchored" data-anchor-id="challenges-in-data-analysis">Challenges in data analysis</h3>
<p>Working with this data presents several challenges:</p>
<ul>
<li><strong>Meaningful Connections</strong>: Not all connections between entities within Companies House are meaningful. For instance, some addresses may host many companies, such as virtual offices with tens of thousands of registrations. Similarly some officers, like incorporation agents, may hold appointments at thousands of companies.</li>
<li><strong>Data Overload</strong>: The more degrees of separation we explore from the starting node, the more data and irrelevant connections we encounter. This necessitates careful curation to extract the most meaningful and interesting connections.</li>
</ul>
</section>
<section id="curation" class="level3">
<h3 class="anchored" data-anchor-id="curation">Curation</h3>
The data for this study was gathered through examining entities within 6-degrees of separation from <a href="https://find-and-update.company-information.service.gov.uk/company/11694875">Reform’s</a> profile in Companies House. The resulting network was curated to ensure that all outer nodes represent companies incorporated within the past decade. These companies were broadly selected based upon their relevance to the far-right and other political projects. Some companies with little political involvement were included as curiosities.
</section></details>
</section>

<section id="six-degrees-of-reform" class="level2">
<h2 class="anchored" data-anchor-id="six-degrees-of-reform">Six degrees of Reform</h2>
<section id="richard-tice" class="level3">
<h3 class="anchored" data-anchor-id="richard-tice">1. <a href="https://find-and-update.company-information.service.gov.uk/officers/iDabUesOWH_lKM0l2q6XEefh4eU/appointments">Richard Tice</a></h3>
<p>Richard Tice has spent decades working in real estate and continues to be active in this sector. There are several profiles in Companies House attributed to Tice with one listing roles in <a href="https://find-and-update.company-information.service.gov.uk/officers/iDabUesOWH_lKM0l2q6XEefh4eU/appointments">155 active and historic companies</a>. He is currently the CEO of <code>Quidnet REIT Limited</code> a real estate investment trust (REIT) setup in 2015 and listed on the International Stock Exchange in the <a href="https://www.quidnetcapital.com/ghb-1">Channel Islands</a>. The company acquires properties, refurbishes them, and leases them to businesses. Quidnet REIT is a subsidiary of the real estate asset manager <a href="https://www.quidnetcapital.com/">Quidnet Capital</a>.</p>
<p><code>Quidnet REIT Limited</code> manages a portfolio of <a href="https://www.quidnetcapital.com/ghb-1">four properties</a> that range from manufacturing sites to <a href="https://www.gatwickhouse.info/">commercial office space</a>. In 2022, the REIT reported leasing one of its properties in Northampton on a long-term basis to a <a href="https://tisegroup.com/market/news/322804">kidney dialysis facility</a>. Based on <a href="https://www.google.com/maps/@52.2795579,-0.8375941,3a,85.6y,200.21h,91.15t/data=!3m7!1e1!3m5!1skX5tjcwV3unaxGK85oWhcg!2e0!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fpanoid%3DkX5tjcwV3unaxGK85oWhcg%26cb_client%3Dmaps_sv.share%26w%3D900%26h%3D600%26yaw%3D200.21%26pitch%3D-1.1500000000000057%26thumbfov%3D90!7i16384!8i8192?coh=205410&amp;entry=ttu">streetview imagery</a> and <a href="https://westnorthants.moderngov.co.uk/documents/s6571/Changes%20to%20provision%20of%20NHS%20dialysis%20services%20in%20Northamptonshire.pdf">planning documents</a>, this facility is likely operated by <a href="https://www.renalservices.com/">DaVita</a>, an international provider outsourced by the <a href="https://westnorthants.moderngov.co.uk/documents/s6571/Changes%20to%20provision%20of%20NHS%20dialysis%20services%20in%20Northamptonshire.pdf">University Hospitals of Leicester NHS Trust</a>. Healthcare providers can be <a href="https://weownit.org.uk/blog/who-benefits-bailout-private-hospitals#:~:text=honour%20their%20payments.-,Landlords,protects%20the%20dividends%20received%20by%20the%20REIT%E2%80%99s%20institutional%20and%20individual%20investors.,-Lenders">lucrative tenants</a> for REITs due to their long-term leases, inflation-adjusted rents and limited availability of alternative properties.</p>
<p>The REIT’s refurbishment efforts also include installing <a href="file:///Users/seangreaves/Downloads/Quidnet%20REIT%20Ltd%20(4).pdf">green technologies</a> at various sites, such as electric car charging points and solar panels on roofs. A <a href="https://tisegroup.com/umbraco/surface/proxyapi/newspdf?id=327407&amp;name=Quidnet%20REIT%20Ltd">2023 announcement</a> from the REIT noted that, besides reducing emissions, the technologies substantially increase rental income and provide further asset management opportunities. The company has embraced an emerging trend amongst REITs to recognise their rooftops and parking lots as embedded assets ripe for <a href="https://static1.squarespace.com/static/5d1fb5921d73890001c2b867/t/6299001e3362940fc5b412ac/1654194213957/MSNA20220325110760+%288%29.pdf">profitable green development</a>. Reform have <a href="https://assets.nationbuilder.com/reformuk/pages/253/attachments/original/1718625371/Reform_UK_Our_Contract_with_You.pdf?1718625371">opposed the use of farmland for solar development</a> in their manifesto with Tice echoing this sentiment <a href="https://x.com/TiceRichard/status/1509057221325463552?lang=en">on social media</a> in favour of solar development on roofs.</p>
<p>Coincidently, the UK office of <a href="https://find-and-update.company-information.service.gov.uk/company/BR020471">RwandAir</a> is registered at the REIT’s Gatwick House property. Rwanda’s national airline notably refused the Conservative proposal to run removal flights of migrants from the UK to Rwanda, <a href="https://www.ft.com/content/1251e4f2-91b5-4cd7-b716-f9507b3c72b6">fearing reputational risk</a>. Tice has <a href="https://www.dailymail.co.uk/debate/article-13334417/rwanda-bill-peers-westminster-dominic-lawson.html">publicly criticised the Rwanda policy</a>, advocating instead for something closer to Australia’s ‘Stop the Boats’ policy.</p>
<img src="https://adu.autonomy.work/posts/2024_06_28_reform/assets/davita.png" class="img-fluid">
<center>
<figcaption>
DaVita kidney dialysis service in Northampton
</figcaption>
</center>
<p><br></p>
<p>Tice has loaned Reform over £1.4M between 2020 and 2023 via his company <a href="https://find-and-update.company-information.service.gov.uk/company/05925324">Tisun Investments Ltd</a>, <a href="https://search.electoralcommission.org.uk/Search/Loans?currentPage=1&amp;rows=10&amp;query=%22Tisun%22&amp;sort=StartDate&amp;order=desc&amp;tab=1&amp;et=pp&amp;et=ppm&amp;et=tp&amp;et=perpar&amp;et=rd&amp;isIrishSourceYes=true&amp;isIrishSourceNo=true&amp;register=gb&amp;register=ni&amp;register=none&amp;loanStatus=outstanding&amp;loanStatus=ended&amp;optCols=Register&amp;optCols=CampaigningName&amp;optCols=IsIrishSource&amp;optCols=CompanyRegistrationNumber&amp;optCols=Postcode&amp;optCols=RateOfInterestDescription&amp;optCols=AmountRepaid&amp;optCols=AmountConverted&amp;optCols=AmountOutstanding&amp;optCols=EndDate&amp;optCols=DateRepaid&amp;optCols=DateEcLastNotified&amp;optCols=IsReportedPrePoll&amp;optCols=ReportingPeriodName&amp;optCols=IsAggregation">according to Electoral Commission data</a>. In recent years, Tice has established a range of businesses under the ‘Tisun’ moniker, including <code>Tisun One Ltd</code>, <code>Tisun Two Ltd</code>, <code>Tisun Three Ltd</code> and <code>Tisun Four Ltd</code> all of which list Tisun Investments Ltd as a person of significant control. Reform also recieved ~£150k in donations from <code>Britain Means Business Ltd</code> between 2021 and 2022, where Tice is a director. Additionally, Reform’s events have been supported by <code>Sunley Events Limited</code>, <a href="https://www.ft.com/content/ed7b2b5b-4ee6-4acd-851a-0bbe6eaf0a08">a company connected to Tice through his relatives</a>.</p>
</section>
<section id="bathurst-estate" class="level3">
<h3 class="anchored" data-anchor-id="bathurst-estate">2. <a href="https://find-and-update.company-information.service.gov.uk/company/08527773">Bathurst Estate</a></h3>
<p>Richard Tice was a <a href="https://find-and-update.company-information.service.gov.uk/company/08527773/officers">director</a> at <code>Bathurst Development Limited</code>, a subsidiary of the Bathurst Estate in Cirencester, from 2014 to 2019. The company was established to <a href="https://thesteadingscirencester.co.uk/about-us/">build homes</a> on the 15,000-acre estate, owned by the Bathurst aristocracy <a href="https://www.bathurstestate.co.uk/cirencester-park/history/#:~:text=In%201695%2C%20Sir%20Benjamin%20Bathurst,work%20transforming%20the%20surrounding%20land.">since the 17th century</a>. The housing development came under public scrutiny for using a land trust registered in Bermuda to <a href="https://www.wiltsglosstandard.co.uk/readers_letters/15552569.READER_S_LETTER__Chesterton_development_can_avoid_capital_gains_tax_due_to_trust_in_Bermuda/">avoid paying capital gains tax</a>. A number of present day persons of significant control for the development are Bermudian or based in <a href="https://find-and-update.company-information.service.gov.uk/company/08527773/persons-with-significant-control">Bermuda</a> alongside the company’s initial shareholder <a href="https://find-and-update.company-information.service.gov.uk/company/08527773/filing-history/MzA3Nzg2NjExN2FkaXF6a2N4/document?format=pdf&amp;download=0">Bathurst Trust (PTC) Limited</a>.</p>
<p>In recent years, the estate has faced public backlash for implementing a paywall for Cirencester Park, a 3,000-acre area that had been free to access for <a href="https://www.bbc.co.uk/news/av/uk-england-gloucestershire-68570573">326 years</a>. In early 2024 the estate was <a href="https://www.bbc.co.uk/news/articles/c514l5vg76po">targeted by Right to Roam</a> protesters, prompting local councillors to call on the Bathurst family to reconsider the paywall.</p>
<img src="https://adu.autonomy.work/posts/2024_06_28_reform/assets/roam.jpg" class="img-fluid">
<center>
<figcaption>
Right to Roam protest at Cirencester Park
</figcaption>
</center>
<p><br></p>
<p>On the subject of the Bathurst Estate, it would be remiss not to highlight the eccentric business activities of Roger Tempest, who was a director of <code>Bathurst Development Limited</code> in the year before Tice joined. Tempest is the custodian of Broughton Hall Estate and one of the <a href="https://tlio.org.uk/the-uks-50-biggest-landowners-revealed-lovemoney-com/#:~:text=23.%20Roger%20Tempest,the%20current%20custodian.">UK’s largest land owners</a>. He is also a director of <code>Wyrd Technologies Limited</code>, an organisation developing “consciousness technology”. Their latest invention is the Wyrdoscope, a physical “scientific” device (<a href="https://gowyrd.org/wyrdoscope-device/">available for pre-order</a>) that claims to measure the extent to which events like human <em>intentions</em> and feelings can impact the physical world. This phenomena bares a striking resemblance to <a href="https://en.wikipedia.org/wiki/Telekinesis">telekinesis</a>, a word you will not find on Wyrd’s <a href="https://gowyrd.org/">website</a>.</p>
<p><code>Wyrd Experience Limited</code> purports to be “the world’s only interactive consiousness lab” and invites groups of participants to undergo parapsychological experiments building upon the research of the now defunct <a href="https://en.wikipedia.org/wiki/Princeton_Engineering_Anomalies_Research_Lab">Princeton Engineering Anomalies Research Lab (PEAR)</a>. Operational for nearly three decades at Princeton, the lab drew heavy criticism from the university and scientific community; however, it seems to have found a more secluded home in the tranquil grounds of the Broughton Hall Estate.</p>
<img src="https://adu.autonomy.work/posts/2024_06_28_reform/assets/princeton.png" class="img-fluid">
<center>
<figcaption>
Princeton Engineering Anomalies Research Lab (PEAR)
</figcaption>
</center>
<p><br></p>
<p>Roger Tempest’s esoteric directorships continue with <code>The Youth City Foundation</code> which appears to be a subsidiary of <a href="https://www.ruralconcepts.co.uk/">Rural Concepts</a>, an investment and international development organisation also directed by Tempest. <code>The Youth City Foundation</code> was dissolved in 2018 however the website for Rural Concepts describes the company’s vision for a project called <em>International Youth City</em>, a smart city in the Middle East to showcase youth development potential. Although <em>International Youth City</em> never graduated <a href="https://web.archive.org/web/20160723092111/http://www.internationalyouthcity.com/">beyond the drawing board</a>, Rural Concepts seem to be actively developing <em>Lebdah City</em>, a smart eco-city in Libya through the subsidiary <code>Rural Concepts (Libya) Limited</code>.</p>
<img src="https://adu.autonomy.work/posts/2024_06_28_reform/assets/youth_city.png" class="img-fluid">
<center>
<figcaption>
International Youth City
</figcaption>
</center>
<p><br></p>
</section>
<section id="leave.eu" class="level3">
<h3 class="anchored" data-anchor-id="leave.eu">3. <a href="https://find-and-update.company-information.service.gov.uk/company/09763501">Leave.EU</a></h3>
<p>Richard Tice <a href="https://find-and-update.company-information.service.gov.uk/company/09763501/officers">co-directed</a> <code>Leave.EU Group Limited</code>, one of the main political organisations that campaigned for the UK to leave the EU between 2016 and 2017. Tice co-founded the group with the insurance millionaire and UKIP donor Arron Banks. Leave.EU’s campaign was run by <code>Better for the Country Limited</code> with both companies receiving £8M from Banks in what amounts to <a href="https://www.ft.com/content/5668d320-dea6-11e9-b112-9624ec9edc59">one of the UK’s largest ever political donations</a>.</p>
<p>Banks controls a number of insurance companies including Somerset Bridge which is represented by several subsidiaries: <code>Somerset Bridge Group Limited</code>, <code>Somerset Bridge Shared Services Limited</code>, <code>Somerset Bridge Premium Finance Limited</code>, <code>Somerset Bridge Ltd</code> and <code>Somerset Bridge Capital Limited</code>. Formerly known as Eldon Insurance, Somerset Bridge <a href="https://find-and-update.company-information.service.gov.uk/company/06334001">rebranded</a> at the end of 2019. The company operated under various tradenames, including <code>Business Choice Direct Limited</code> and <code>Vavista Life Limited</code>. <code>ICS Risk Solutions Limited</code> based in the Isle of Man, was Eldon Insurance’s <a href="https://en.wikipedia.org/wiki/Eldon_Insurance">parent company</a>. The involvement of Banks’ insurance companies within the Brexit campaign attracted scrutiny and investigations from the Information Commissioner’s Office, resulting in Eldon Insurance and Leave.EU receiving a <a href="https://www.theguardian.com/uk-news/live/2018/nov/06/information-commissioner-to-levy-fines-against-leave-eu-live">£135k fine for data misuse</a>.</p>
<p>Banks was inspired to emulate some of the successful tech and media organisations on the populist right. In 2016 he founded <code>Big Data Dolphins Ltd</code>, a start-up for collecting and analysing big data for political purposes, inspired by Cambridge Analytica. Despite concerns that UK citizen data may have been transferred to the US for analysis, an <a href="https://ico.org.uk/media/action-weve-taken/2260271/investigation-into-the-use-of-data-analytics-in-political-campaigns-final-20181105.pdf">investigation</a> by the Information Commissioners Office concluded that there was no evidence to suggest Big Data Dolphins was ever operational. <code>Westmonster Ltd</code> was a media website launched by Arron Banks, that aspired to be the British counterpart to the American far-right websites <a href="https://www.breitbart.com/">Breitbart</a> and <a href="https://www.drudgereport.com/">Drudge Report</a>. Directed by Michael Heaver, former Brexit Party MEP, and Liz Bilney, chief executive of Leave.EU, the organisation behind the site dissolved in 2020.</p>
<p>Following the referendum, some key players in Leave.EU continued to influence politics, while others returned to business. Arron Banks persisted in his efforts to shape Brexit by founding a Tea Party-inspired movement called <code>The Blue Wave Movement Limited</code> which aimed to flood the Conservative Party with new members holding a more <a href="https://www.ft.com/content/2d3efa68-ac5e-11e8-89a1-e5de165fa619">hard-line Eurosceptic stance</a>. Despite <code>Westmonster Ltd</code> going offline, the website now links to <a href="http://www.westmonster.com/">Michael Heaver’s YouTube channel</a>, which pushes pro-Reform content, with some videos achieving hundreds of thousands of views.</p>
<img src="https://adu.autonomy.work/posts/2024_06_28_reform/assets/heaver.jpg" class="img-fluid">
<center>
<figcaption>
Michael Heaver’s Youtube Channel
</figcaption>
</center>
<p><br></p>
<p>After her unsuccessful attempt to establish Britain’s Breitbart, Liz Bilney continues to collaborate with <a href="https://theferret.scot/arron-banks-winds-charity-regulator-investigates/">Leave.EU’s finance director Alison Marshall</a> on <code>Fuzzy Insurance Limited</code> which provides <a href="https://www.fuzzyinsurance.co.uk/">commercial motor and business insurance</a>. Caroline Drewett, the <a href="https://x.com/LeaveEUOfficial/status/685536639775555584">former Leave.EU Ambassador for Small Businesses</a> now directs <code>Anglo Belgravia UK Limited</code>, a company offering <a href="https://www.bg-london.com/">guardianship for UK boarding school pupils</a>.</p>
</section>
<section id="nigel-farage" class="level3">
<h3 class="anchored" data-anchor-id="nigel-farage">4. <a href="https://find-and-update.company-information.service.gov.uk/officers/tW56blTqOI_bXYCDkDghRy3LQtU/appointments">Nigel Farage</a></h3>
<p>Nigel Farage is the co-founder and current leader of Reform. He previously collaborated with Richard Tice on the Grassroots Out (GO) movement, represented by the <code>Go Movement Ltd</code> and <code>Grassroots Out Limited</code> companies. The GO movement was affiliated with Leave.EU which unsuccessfully competed against Vote Leave to lead the Brexit campaign.</p>
<p>Following the referendum Farage and collaborators have launched a range of media and PR companies. <code>Farage Media Limited</code> is a video production company incorporated in late 2020, however it remains dormant. <code>Farage Media Limited</code>’s former co-director and Reform’s deputy leader David Bull is a director at <code>Oak Hall Studios Ltd</code>, <a href="https://x.com/OakHallStudios">video production service</a> that frequently films Reform events. In recent years Bull has presented on TalkTV and is a former-medical doctor and MEP.</p>
<p>Another frequently-cited media collaborator of Farage is Dan Jukes, previously head of communications at UKIP who continues to advise Farage on <a href="https://www.theguardian.com/politics/article/2024/jun/20/hip-hop-mimes-and-breast-jokes-win-nigel-farage-a-valuable-gen-z-following-reform-uk">digital strategy</a>, including social media during Farage’s time on <em>I’m a Celebrity… Get Me Out of Here!</em> Jukes recently registered <code>Robert Wood Media Ltd</code>, a firm offering digital strategy, PR and crisis management. The company provided PR consultancy to <a href="https://www.thetimes.com/uk/article/michelle-mones-secret-team-with-links-to-prince-andrew-and-farage-3b8bnhnwb">Michelle Mone and Douglas Barrowman</a> to manage the reputational fallout of their involvement in the PPE scandal.</p>
<img src="https://adu.autonomy.work/posts/2024_06_28_reform/assets/bull.png" class="img-fluid">
<center>
<figcaption>
David Bull presenting at Oak Hall Studios
</figcaption>
</center>
<p><br></p>
</section>
<section id="reform-uk" class="level3">
<h3 class="anchored" data-anchor-id="reform-uk">5. <a href="https://find-and-update.company-information.service.gov.uk/company/11694875">Reform UK</a></h3>
<p><code>Reform Party UK Limited</code> was founded as <code>The Brexit Party Limited</code> by Nigel Farage and Catherine Blaiklock in late 2018. Blaiklock, a former UKIP politician, financial trader, and hotelier, registered <code>The Brexit Party Limited</code> to one of her properties- a B&amp;B in Norwich named <em>Annapurna</em>. The property’s profile on TripAdvisor was <a href="https://www.bbc.co.uk/news/uk-england-norfolk-47292229">inundated with negative reviews</a> and branded the ‘Brexit Party B&amp;B’. In recent years Blaiklock has established several other real estate and holiday companies including <code>Oneika Limited</code>, <code>Kamarina 2 Limited</code>, <code>Penguin House Limited</code>, <code>Azur Sea Limited</code> and possibly a pest control company: <code>Bye Bye Bed Bugs Limited</code>.</p>
<img src="https://adu.autonomy.work/posts/2024_06_28_reform/assets/brexit_bnb.png" class="img-fluid">
<center>
<figcaption>
Annapurna Bed &amp; Breakfast in Norfolk
</figcaption>
</center>
<p><br></p>
<p>Blaiklock resigned from the Brexit party following relevations of <a href="https://www.theguardian.com/world/2019/mar/20/leader-of-pro-brexit-party-catherine-blaiklock-resigns-over-anti-islam-messages">Islamophobic tweets</a> posted through her public account. Despite being ousted, in 2023 she registered another company under the name <code>The Brexit Party Limited</code> in which she is the sole director and person with significant control. Other companies setup by Blaiklock and dissolved within 2 years include <code>Magna Carta Campaign Ltd</code> (FKA <code>Big Brother Is Watching You Ltd</code>), <code>Our Country Limited</code> and <code>Our Land, Our People Limited</code>.</p>
<img src="https://adu.autonomy.work/posts/2024_06_28_reform/assets/bigbrother.png" class="img-fluid">
<center>
<figcaption>
Incorporation of Magna Carta Campaign Ltd FKA Big Brother is Watching You Ltd
</figcaption>
</center>
<p><br></p>
<p>One final Reform-related thread worth exploring is that of Michael McGough, the former party treasurer, who was booted out of the party following <a href="https://www.theguardian.com/news/2019/apr/03/brexit-party-official-removed-after-antisemitic-posts">a series of offensive Facebook posts</a>. McGough was once the treasurer of <code>Freedom Association Limited(The)</code> (the Freedom Association), a libertarian pressure group founded in the 1970s that continues to campaign for a range of causes, including <a href="https://www.tfa.net/tfa_campaigns">scrapping the TV licence fee</a>. Some more recently incorporated projects its members are involved in include the defunct <a href="https://www.conservativedems.co.uk/the-team">Conservative Democratic Organisation</a> (<code>CDO Ltd</code>), a grassroots movement within the Conservative Party that opposed the removal of Boris Johnson and Liz Truss. Ewen Stewart, who was a director at the Freedom Association until 2019 was also a director at <code>Centre Point Strategies Limited</code> which runs the conservative website <a href="https://thinkscotland.org/">Think Scotland</a>.</p>
</section>
<section id="ukip" class="level3">
<h3 class="anchored" data-anchor-id="ukip">6. <a href="https://find-and-update.company-information.service.gov.uk/company/05090691">UKIP</a></h3>
<p>It may come as little surprise that many of the more colorful companies spun up in Reform’s orbit are directed by past and present members of Nigel Farage’s former party, UKIP (<code>United Kingdom Independence Party Limited</code>).</p>
<p>Neil Hamilton, a disgraced MP and current UKIP director, backed <code>Slim-Be Limited</code>, a manufacturer of weight loss drinks which he boasted could <a href="https://www.independent.co.uk/news/uk/politics/neil-hamilton-disgraced-tory-aims-to-speak-for-ukip-in-cardiff-assembly-a6941566.html">“transform the health and waistlines of the nation”</a>. Patricia Bryant, a member of UKIP’s National Executive Committee held a directorship at <code>Fortis est Veritas Media Company Limited</code> which may be connected to the <a href="https://web.archive.org/web/20200604084728/https://www.fortisestveritas.co.uk/">populist right blog</a> and events company of the same name. The company dissolved last year with Fortis est Veritas’ <a href="https://www.facebook.com/FortisEstVeritas/">Facebook page</a> promoting an event sponsored by a <a href="https://www.quantumhypno.co.uk/">hypnotist</a> that invited former-MP Andrew Bridgen to discuss the negative impacts of the COVID vaccine.</p>
<p>Perhaps the most jarring company name in UKIP’s orbit is <code>White Indigenous Rights Alliance CIC</code> (WIRA) set up by former party director Katie Fanning. The social enterprise outlines its <a href="https://www.youtube.com/watch?v=CjnMsi8GQSk">mission statement</a> as building ‘strong and supportive White communities’ in the face of a ‘globo-Marxist White-eradicationist agenda’ that neglects so-called ‘indigenous white communities’.</p>
<p>Of all UKIP’s former directors, the zanniest resume belongs to Henry Bolton, who led UKIP from 2017 to 2018 and previously served in the armed forces and police. Over the past decade alone, Bolton has tried his hand at setting up a <a href="https://www.crowdfunder.co.uk/p/boudiccapolicyuk">think tank</a> (<code>The Boudicca Centre for (Post Brexit) Policy</code>), <a href="https://www.youtube.com/channel/UCD-61iJ2rYEXTA6q9JNQ44Q?view_as=subscriber">TV channel</a> (<code>GB TV</code>) and a political party (<code>One Nation Party Limited</code>) whilst also penning a book entitled <a href="https://www.amazon.co.uk/What-State-Henry-Bolton-OBE/dp/1916230504">What a State! Boltonomics and the Appalling State of British Politics</a> released through his own publishing house <code>Wise Walrus Ltd</code>. All of these companies have since dissolved. At the time of writing Bolton appears to be juggling multiple engagements including directing a <a href="https://www.dailymail.co.uk/tvshowbiz/article-13473493/Former-Ukip-chief-Henry-Bolton-starts-new-job-private-investigator-EDEN-CONFIDENTIAL-reveals.html">private investigations firm</a> (<code>Vedette Resources Ltd</code>) and starting-up the British counterpart to the US <a href="https://en.wikipedia.org/wiki/Conservative_Political_Action_Conference">Conservative Political Action Conference</a> (CPAC) that Bolton calls <a href="https://www.britpac.uk/">BritPac</a>. As of last year he has also ressurected the <a href="https://www.primroseleague.uk/">Primrose League</a>, a conservative movement founded in the 19th century by Churchill’s father. Bolton’s Primrose League aims to counter the rising threat of ‘new socialism’.</p>
<img src="https://adu.autonomy.work/posts/2024_06_28_reform/assets/primrose.png" class="img-fluid">
<center>
<figcaption>
The Primrose League Reloaded
</figcaption>
</center>
<p><br></p>


</section>
</section>

 ]]></description>
  <category>Interactive</category>
  <category>Deep-dives</category>
  <guid>https://adu.autonomy.work/posts/2024_06_28_reform/</guid>
  <pubDate>Thu, 27 Jun 2024 23:00:00 GMT</pubDate>
  <media:content url="https://adu.autonomy.work/posts/2024_06_28_reform/assets/reformer.png" medium="image" type="image/png" height="90" width="144"/>
</item>
<item>
  <title>Tracking arts funding in the UK</title>
  <dc:creator>Lukas Kikuchi, Luiz Garcia</dc:creator>
  <link>https://adu.autonomy.work/posts/2024_06_12_equity-arts-funding/</link>
  <description><![CDATA[ 





<p>We’re pleased to share the <a href="https://www.equity.org.uk/campaigns-policy/arts-funding-tracker">Equity Arts Funding Tracker</a>, developed in collaboration with Equity union, to analyse how Arts Council funding has changed across the UK’s parliamentary constituencies from 2010 to 2023. This tool provides insights for stakeholders looking to understand and advocate for equitable arts funding.</p>
<p>See the coverage on <a href="https://www.theguardian.com/culture/article/2024/jun/12/imelda-staunton-and-olivia-colman-call-for-urgent-political-support-for-the-arts">The Guardian</a>.</p>
<iframe src="https://static.autonomy.work/adu/wp/2024_06_06_equity-art-fund/app" width="102%" height="725px">
</iframe>
<section id="methodology" class="level3">
<h3 class="anchored" data-anchor-id="methodology">Methodology</h3>
<p>We processed data from Arts Council England, Arts Council of Wales, Arts Council of Northern Ireland and the Scottish Arts Council, each with its own time span and geographical boundaries. We then proceeded to harmonise these datasets to produce aggregated arts funding time-series for each UK Westminster constituency (2024 boundaries).</p>
<p>The Scottish dataset, based on postcodes, allowed us to map geographical coordinates to the constituency boundaries, covering 2011 to 2023. The English dataset, which ranged from 2014/15 to 2022/23 and included data beyond England, was updated from 2015 constituencies to 2024 boundaries using geographical weighting.</p>
<p>For Northern Ireland, we handled data spanning from 2010 to 2023 using 2010 boundaries, also updating it to 2024 boundaries through geographical weighting. The Welsh dataset was already aligned with the 2024 parliamentary constituencies and covered the period from 2010 to 2023.</p>
<p>After harmonizing the geographical data, we integrated the datasets, accounting for cross-country constituency values and labeling non-specific extra-regional allocations as ‘Outside Scotland’ and ‘Outside Wales’. This resulted in a comprehensive dataset spanning from 2010 to 2023, with varying start and end years for each country.</p>
<p>To make the funding values comparable across different years, we converted them in real terms to 2023 price levels using the <a href="https://www.ons.gov.uk/economy/inflationandpriceindices/timeseries/d7bt/mm23">Office for National Statistics Consumer Price Index (ONS CPI)</a>. The user has the option of viewing both the nominal or the adjusted real term figures.</p>
<p>We then two measures for the change in arts council funding for each constituency. The absolute measure gives the difference in funding between two given years, while the trend-line measure, based on linear regression, considers the change in funding over time, reducing the impact of multi-year fluctuations.</p>
<p>All data processing, including cleaning, harmonization, integration, and analysis, was done in Python, ensuring robust handling and accurate computations. We developed the dashboard using Svelte and Apache ECharts.</p>


</section>

 ]]></description>
  <category>Interactive</category>
  <guid>https://adu.autonomy.work/posts/2024_06_12_equity-arts-funding/</guid>
  <pubDate>Tue, 11 Jun 2024 23:00:00 GMT</pubDate>
  <media:content url="https://adu.autonomy.work/posts/2024_06_12_equity-arts-funding/dashboard.png" medium="image" type="image/png" height="85" width="144"/>
</item>
<item>
  <title>Care Visa Sponsor Database</title>
  <dc:creator>Lukas Kikuchi</dc:creator>
  <link>https://adu.autonomy.work/posts/2024_05_14_care-visa-sponsor-database/</link>
  <description><![CDATA[ 





<p><strong>Note:</strong> <em>This post is about the old version of the Care Visa Sponsorship Database. You can find the latest version of the database <a href="https://autonomy.work/care-visa-sponsor-database-v2/">here</a>.</em></p>
<p><a href="https://github.com/Autonomy-Data-Unit/TBIJ-care-home-visa-sponsor" class="post-top-link" target="_blank"> <i class="bi bi-github"></i> Check out the code on GitHub </a></p>
<p><a href="https://autonomy.work/care-visa-sponsor-database/" class="post-top-link" target="_blank"> <i class="bi bi-window"></i> Dashboard </a></p>
<p><a href="https://autonomy.work/care-visa-sponsor-database-v2/"> <img src="https://adu.autonomy.work/posts/2024_05_14_care-visa-sponsor-database/dashboard.png" alt="The Care Visa Sponsor Database"> </a></p>
<p>We’re excited to introduce the <a href="https://autonomy.work/care-visa-sponsor-database/">Care Visa Sponsor Database</a>, a tool developed in collaboration with <a href="https://www.thebureauinvestigates.com/">The Bureau of Investigative Journalism (TBIJ)</a>. Adapted from a dataset originally developed by TBIJ for its investigation into the exploitation faced by workers who came to the UK on the health and care visa, this database is designed to help migrant care workers find local social care employers licensed to sponsor visas, addressing a significant gap in publicly available information.</p>
<p>Migrant care workers often face exploitation and uncertainty, which is enabled and exacerbated by the visa sponsorship requirement. The UK Government’s current list of visa sponsors doesn’t specify sectors, making it hard for workers to find new, legitimate employers without risking deportation.</p>
<p>Combining data from the Home Office’s visa sponsors list and the Care Quality Commission’s register, our tool identifies licensed care providers. Though there may be gaps, this resource is a significant step toward empowering workers to avoid exploitation.</p>
<p>The dataset will be updated daily using our automated scraping tools. Every day, new visa sponsors registered on <a href="https://www.gov.uk/government/publications/register-of-licensed-sponsors-workers">gov.uk</a> will be cross-referenced with active care home and homecare agencies listed on the <a href="https://www.cqc.org.uk/search/all">Care Quality Commission</a>, and uploaded to our database.</p>
<hr>
<p>Read more about the hardships faced by migrant care workers <a href="https://www.thebureauinvestigates.com/stories/2024-05-11/one-hell-to-another-thousands-of-care-workers-risk-deportation-after-employers-breach-rules/">here</a>.</p>



 ]]></description>
  <category>Comes with code</category>
  <category>Interactive</category>
  <guid>https://adu.autonomy.work/posts/2024_05_14_care-visa-sponsor-database/</guid>
  <pubDate>Mon, 13 May 2024 23:00:00 GMT</pubDate>
  <media:content url="https://adu.autonomy.work/posts/2024_05_14_care-visa-sponsor-database/dashboard.png" medium="image" type="image/png" height="111" width="144"/>
</item>
<item>
  <title>GERM (Geopolitical &amp; Environmental Risk Monitor)</title>
  <dc:creator>Sean Greaves</dc:creator>
  <link>https://adu.autonomy.work/posts/2024_03_23_GERM/</link>
  <description><![CDATA[ 





<p><a href="https://show.autonomy.work/GERM/" class="post-top-link" target="_blank"> <i class="bi bi-window"></i> Interactive demo </a></p>
<img src="https://adu.autonomy.work/posts/2024_03_23_GERM/assets/extreme_reports.png" class="img-fluid">
<center>
<figcaption>
Figure 1: Annual reports from the <a href="https://www.hypo.fi/wp-content/uploads/2024/03/HYPO_AR_2023.pdf" target="_blank">Mortgage Society of Finland (2023)</a>, <a href="https://assets.lloyds.com/media/b9275229-7bee-477f-96a0-6b415f3e7d2b/Lloyds_AR_210409_NO_sig.pdf" target="_blank">Lloyd’s (2020)</a> &amp; <a href="https://www.sec.gov/Archives/edgar/data/887225/000119312519127526/d693258d20f.htm" target="_blank">Korea Electric Power Corporation (2019)</a>
</figcaption>
</center>
<p><br></p>
<p>Corporate risk disclosures are often underappreciated as sources of valuable data with potential for creative application beyond finance and regulatory compliance. Wading through the jargon-heavy prose of annual reports can bring into focus industry-specific vulnerabilities and a spectrum of futures filtered through the attention of the corporation. Even the most extreme risks crop up within annual reports (Figure 1).</p>
<p>Crises continue to play an important role in strengthening the quality of risk data. The US public company disclosure system was <a href="https://en.wikipedia.org/wiki/Securities_Act_of_1933" target="_blank">founded in the aftermath of the Great Depression</a> and the stock market crash of 1929. Fundamental transformations to risk disclosure were <a href="https://en.wikipedia.org/wiki/Sarbanes%E2%80%93Oxley_Act" target="_blank">initiated following the collapse of Enron and the Dotcom bubble</a> at the turn of the millennium. As a consequence of climate change and the increasing acceptance of climate risk as indistinguishable from financial risk, many companies are now required to publish <a href="https://assets.publishing.service.gov.uk/media/5de6acc4e5274a65dc12a33a/Env-reporting-guidance_inc_SECR_31March.pdf" target="_blank">detailed emissions data</a>.</p>
<p>Whilst the quality of risk disclosure may be increasing, the format is heavy in detail, vast in scale and lacking in standardisation. The relentless volume of annual reports published each day challenges the attention of human analysts, investors and markets. Its therefore unsurprising to see the growing <a href="https://www.nber.org/system/files/working_papers/w27950/w27950.pdf" target="_blank"><em>machine readership</em> for annual reports</a>. AI-driven software is being deployed to scour through risk disclosure for treasure.</p>
<p>There is treasure lying around waiting to be discovered. <a href="https://www.spglobal.com/marketintelligence/en/documents/hiding-in-plain-sight-risks-that-are-overlooked.pdf" target="_blank">S&amp;P analysts observed</a> that investors and markets did not react to the inclusion of the following statement within <a href="https://www.sec.gov/Archives/edgar/data/50863/000005086318000007/a12302017q4-10kdocument.htm" target="_blank">Intel’s 2017 annual report</a>: “if we face unexpected delays in the timing of our product introductions, our revenue and gross margin could be adversely affected”. This statement preceded a significant production delay to Intel’s 10-nanometer chips which caused a <a href="https://www.cnbc.com/2018/07/26/intel-earnings-q2-2018.html" target="_blank">drop in share price</a>. <em>Stories of the future can be disguised as boilerplate</em>. There are clear financial incentives to identifying such stories before humans and markets. There is also an abundance of <a href="https://www.spglobal.com/marketintelligence/en/documents/hiding-in-plain-sight-risks-that-are-overlooked.pdf" target="_blank">increasingly sophisticated algorithmic approaches</a> that can be tuned towards detecting these signals.</p>
<p>AI-driven software for analysing risk disclosure is predominantly developed within the financial services sector. If this were to remain the case, the applications of this technology are likely to remain focussed: detection of alpha signals, more accurate pricing or better prediction of market behaviour. However we believe that there is broader interest beyond the financial services sector in any project that could construct a detailed dataset of all the risks impacting the businesses that make up the UK’s economy.</p>
<p>AI-driven software could expand the scope of corporate risk monitoring. <a href="https://www.pwc.co.uk/services/audit/insights/ftse-350-reporting-trends.html" target="_blank">Analysts naturally focus on the UK’s largest companies</a> but there is a long tail of companies beyond the FTSE whose risks remain underexplored.</p>
<p>Building upon these opportunities, our project is to develop risk monitoring software for exploratory research of the political economy. The software will feed into our research at <a href="https://autonomy.work/ourwork/" target="_blank">Autonomy</a> on changing working conditions by helping us to identify and analyse companies working at the frontlines of our unevenly distributed future. This might include companies situated in parts of the UK most vulnerable to extreme weather or those working within industries rebuilding disrupted supply chains.</p>
<p>Our first prototype for this project is called <strong>GERM</strong> (Geopolitical and Environmental Risk Monitor), a software tool for extracting geopolitical and environmental risks from reports filed electronically with Companies House. We used GERM to build a dataset of risks mentioned by the 266,989 UK companies who filed their accounts throughout March 2024. You can explore this dataset through an exploratory <a href="https://show.autonomy.work/GERM/" target="_blank">demo interface</a>. In this post we will share the methodology guiding the development of this prototype. We also share findings on what risk data was discovered within Companies House throughout March 2024 and how we intend to develop this project further.</p>
<section id="methodology" class="level3">
<h3 class="anchored" data-anchor-id="methodology">Methodology</h3>
<section id="data" class="level4">
<h4 class="anchored" data-anchor-id="data">Data</h4>
<p>Companies within the UK file their annual reports at <a href="https://find-and-update.company-information.service.gov.uk/" target="_blank">Companies House</a> where they can be downloaded by the public (and machines). Extracting risk data from these documents with software is challenging for a number of reasons:</p>
<ul>
<li>Most companies don’t write about risks (sparsity)</li>
<li>Any discussion of risk is usually scattered throughout the annual report (standardisation)</li>
<li>Not all annual reports in Companies House are machine-readable (machine-readability)</li>
</ul>
<section id="sparsity" class="level5">
<h5 class="anchored" data-anchor-id="sparsity">Sparsity</h5>
<p>The size of a company determines how much information it must include within any annual reports submitted to Companies House. Large companies will provide full accounts running into the hundreds of pages. There is likely to be some discussion of risk within these increasingly bloated documents that <a href="https://www.theqca.com/press-releases/press-release-annual-reports-never-ending-story/" target="_blank">often exceed the length of the average novel</a>. On the other hand <a href="https://www.gov.uk/government/publications/life-of-a-company-annual-requirements/life-of-a-company-part-1-accounts#small-company" target="_blank">small</a> or <a href="https://www.gov.uk/government/publications/life-of-a-company-annual-requirements/life-of-a-company-part-1-accounts#micro-entity" target="_blank">very small companies</a> are unlikely to produce reports that exceed several pages in length and will not contain any discussion of risk.</p>
</section>
<section id="standardisation" class="level5">
<h5 class="anchored" data-anchor-id="standardisation">Standardisation</h5>
<p>US companies disclose risks within the <code>Item 1A - “Risk Factors"</code> section of their 10-K filings submitted to the Securities and Exchange Commission (SEC). The presence of a standardised section of text for risk discussion is obviously conducive to algorithmic analysis as any text in this section has essentially already been classified by the authors as relevant to risk. Unfortunately annual reports in the UK lack this kind of standardised risk reporting. Instead risk discussion can be found in multiple different sections of a report, such as strategy or the director’s remarks, although some reports contain sections like ‘Principal Risks and Uncertainties’. Any software trawling for risks is therefore required to search through the entire document rather than simply parse out a single section. Until recent advances in large language models (LLMs), this lack of standardisation made extracting risks particularly challenging.</p>
</section>
<section id="machine-readability" class="level5">
<h5 class="anchored" data-anchor-id="machine-readability">Machine-readability</h5>
<p>A fraction of companies do not submit annual reports to Companies House in a machine-readable format. Unfortunately this tends to be the largest companies like those that make up the FTSE. Instead these companies submit a scanned PDF file which is basically a collection of images. A machine-readable copy of these reports is often to be found via the <a href="https://data.fca.org.uk/#/nsm/nationalstoragemechanism" target="_blank">FCA’s National Storage Mechanism</a> or the <a href="https://www.gsk.com/en-gb/investors/financial-reports/" target="_blank">company website</a>. Medium to smaller companies are likely to file electronically such that their accounts can be downloaded as HTML files containing the machine-readable report with data labelled in the XBRL format. <a href="https://dkane.net/2018/working-with-xbrl/" target="_blank">XBRL enables some of the data within reports to be easily extracted</a>, like balance sheets and the number of employees.</p>
<p>Due to the lack of existing research on the risks reported by the UK’s medium to small companies coupled with the difficulties in curating machine-readable copies of the UK’s larger companies, our initial prototype is designed to monitor only the <a href="https://download.companieshouse.gov.uk/en_accountsdata.html" target="_blank">companies that file their accounts electronically</a>. In 2022/2023 <a href="https://www.gov.uk/government/statistical-data-sets/companies-house-management-information-april-2022-to-march-2023" target="_blank">90.7% of companies</a> filed their accounts electronically. 79.8% of the 3,857,049 companies that filed in 2022/2023 are considered to be small or very small companies as they filed their accounts under the categories of <a href="https://www.gov.uk/government/publications/life-of-a-company-annual-requirements/life-of-a-company-part-1-accounts#micro-entity" target="_blank">micro entity</a>, <a href="https://www.gov.uk/government/publications/life-of-a-company-annual-requirements/life-of-a-company-part-1-accounts#audit-exemption-small" target="_blank">audit exempt</a> or <a href="https://www.gov.uk/government/publications/life-of-a-company-annual-requirements/life-of-a-company-part-1-accounts#small-company" target="_blank">small</a>. We therefore require GERM to process a large number of companies (potentially tens of thousands of reports per day) that are unlikely to contain any discussion of geopolitical or environmental risk.</p>
</section>
</section>
<section id="risk-quantification" class="level4">
<h4 class="anchored" data-anchor-id="risk-quantification">Risk Quantification</h4>
<img src="https://adu.autonomy.work/posts/2024_03_23_GERM/assets/words.png" class="img-fluid">
<center>
<figcaption>
Figure 2: <a href="https://www.matteoiacoviello.com/gpr_files/GPR_SLIDES.pdf" target="_blank">Dario Caldara and Matteo Iacoviello’s</a> analysis of geopolitically relevant words across 44,000 daily front pages of the New York Times
</figcaption>
</center>
<p><br></p>
<p>Whilst developing GERM, there were several examples of software for visualising risk across large corpuses of unstructured text that informed our thinking.</p>
<p>US Federal Reserve economists Dario Caldara and Matteo Iacoviello developed a text-based <a href="https://www.matteoiacoviello.com/gpr.htm" target="_blank">geopolitical risk (GPR) index</a> that mines news articles for combinations of well-chosen keywords correlating to geopolitical risk. The sources of news that feed the index, including the Financial Times, The New York Times (Figure 2) and The Wall Street Journal, have extensive digital archives allowing the researchers to test how well their index captures historic events. The index tends to <a href="https://www.matteoiacoviello.com/gpr_files/GPR_PAPER.pdf" target="_blank">spike in times of war and peaked on 9/11</a>.</p>
<p>Blackrock developed a comparable <a href="https://www.blackrock.com/corporate/insights/blackrock-investment-institute/interactive-charts/geopolitical-risk-dashboard" target="_blank">geopolitical risk indicator</a> for measuring ‘market attention’ towards 10 of the top geopolitical risks as they see it. As of April 2024 they are closely tracking the potential for a Russia-NATO conflict, gulf tensions and major terror attack(s). The index combines the outputs of machine learning models fine-tuned to detect relevance to each risk topic and sentiment.</p>
<p>Compared to text-mining, the use of more advanced language models allows for a greater level of context to be factored into any classification of unstructured text. This expanded capability invites the need for some constraints to guide the development of novel risk monitors. After all what risks are we interested in tracking? When designing prompts to guide an LLM, how can we keep the language sufficiently adaptive so as to account for emerging risks? LLMs may be able to highlight sections of text discussing risk but in aggregate we still require some degree of classification to understand if war is being reported on more than supply chain disruption or drought. This suggests the need for a good taxonomy.</p>
</section>
<section id="taxonomy" class="level4">
<h4 class="anchored" data-anchor-id="taxonomy">Taxonomy</h4>
<p>Taxonomies form the corner stone of corporate risk strategy. They establish a common language for describing risk. Consultants might say <a href="https://www.pwc.nl/en/topics/blogs/reshaping-the-risk-taxonomy.html#:~:text=As%20such%2C%20the%20risk%20taxonomy,risk%20taxonomy%2C%20it%20gets%20managed." target="_blank">“if it is in the risk taxonomy, it gets managed.”</a> Some criticisms levelled at these frameworks include the <a href="https://www.pwc.nl/en/topics/blogs/reshaping-the-risk-taxonomy.html#:~:text=14/04/21-,The%20taxonomy%27s%20role%20in%20transforming%20risk%20management,today.%20But%20focusing%20%2D%20or%20better%2C%20re%2Dfocusing%20%2D%20on%20what%20matters%20most.,-Climate%20change%2C%20technological" target="_blank">failure to sufficiently incorporate emerging risks</a> or <a href="https://en.wikipedia.org/wiki/The_Black_Swan:_The_Impact_of_the_Highly_Improbable" target="_blank">black swans</a>. For our project we are looking to identify geopolitical and environmental risks but don’t actually know what subsets of these broad genres of risk might be found in Companies House. How many references to the ongoing war in Palestine might we encounter daily? Would any companies be impacted by earthquakes abroad? We are really looking to use a <em>taxonomy as a tool for discovery</em>. Something to draw upon when contructing a series of flexible prompts to guide an LLM in filtering data. Therefore we sought out the most extensive taxonomy possible. This led us straight to the <a href="https://www.jbs.cam.ac.uk/wp-content/uploads/2021/11/crs-cambridge-taxonomy-of-business-risks.pdf" target="_blank">Cambridge Taxonomy of Business Risks</a> (Figure 3).</p>
<img src="https://adu.autonomy.work/posts/2024_03_23_GERM/assets/taxonomy.png" class="img-fluid">
<center>
<figcaption>
<a href="https://www.jbs.cam.ac.uk/faculty-research/centres/risk/publications/managing-multi-threat/a-taxonomy-of-threats-for-complex-risk-management/#:~:text=This%20report%20describes%20the%20need,in%20the%20modern%20globalised%20world." target="_blank">Figure 3: A Taxonomy of Threats for Complex Risk Management, 2014 </a>
</figcaption>
</center>
<p><br></p>
</section>
</section>
<section id="prototype" class="level3">
<h3 class="anchored" data-anchor-id="prototype">Prototype</h3>
<p>Building upon the preceding research, we developed the first <a href="https://show.autonomy.work/GERM/" target="_blank">prototype</a> for GERM to visualise the geopolitical and environmental risks flagged within annual reports filed electronically with Companies House across the month of March 2024 (Figure 4).</p>
<img src="https://adu.autonomy.work/posts/2024_03_23_GERM/assets/germ.png" class="img-fluid">
<center>
<figcaption>
Figure 4: GERM prototype v1
</figcaption>
</center>
<p><br></p>
<p>GERM classifies each risk using a selection of categories adapted from the Cambridge Taxonomy of Business Risks. Our adapted taxonomy takes the following shape:</p>
<section id="geophysical" class="level5">
<h5 class="anchored" data-anchor-id="geophysical">Geophysical</h5>
<table class="caption-top table">
<colgroup>
<col style="width: 50%">
<col style="width: 50%">
</colgroup>
<thead>
<tr class="header">
<th>Risk Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Change in Government</td>
<td>A shift in political and social ideology or change in leadership that has disruptive impacts on existing business practices</td>
</tr>
<tr class="even">
<td>Corruption Deterioration</td>
<td>The abuse of power for personal gain through bribery, nepotism, kleptocracy etc.</td>
</tr>
<tr class="odd">
<td>Criminal Activity</td>
<td>Significant crimes committed against the business or its customers</td>
</tr>
<tr class="even">
<td>Emerging Regulation</td>
<td>Upcoming regulation or policy changes</td>
</tr>
<tr class="odd">
<td>Industrial Action</td>
<td>Widespread discontent embodied by strikes, riots, civil commotion and protest or slowdown</td>
</tr>
<tr class="even">
<td>Interstate Conflict</td>
<td>Armed or unarmed combat among nation states</td>
</tr>
<tr class="odd">
<td>Logistics Restrictions</td>
<td>Bottlenecks or limits of access to key global transport routes</td>
</tr>
<tr class="even">
<td>Minimum Wage Hike</td>
<td>Prevalent increase in minimum wage rates across demographic groups</td>
</tr>
<tr class="odd">
<td>Modern Slavery</td>
<td>Individuals forced to work, trapped and controlled by an “employer” through abuse, dehumanisation and containment</td>
</tr>
<tr class="even">
<td>Nationalisation</td>
<td>Transformation of private assets under public ownership with or without compensating the former owners</td>
</tr>
<tr class="odd">
<td>Privatisation</td>
<td>Sale of state-owned businesses to private investors, or private entities become responsible for implementation of government programmes or services</td>
</tr>
<tr class="even">
<td>Sanctions</td>
<td>International sanctions regimes, geo-economics, trading blocs, bi/multi-lateral negotiations and disputes, court penalties, trade bans or other coercive measures within or between nation states out of political reasons</td>
</tr>
<tr class="odd">
<td>Social Unrest</td>
<td>Mass acts of civil disobedience (e.g.&nbsp;demonstrations, riots) where the participants become hostile towards the authorities, and the authorities have difficulties in maintaining public safety and order</td>
</tr>
<tr class="even">
<td>Subnational Conflict</td>
<td>Localised regional separatism through to large-scale, armed violence between organised groups within the same state or country, typically to change leadership, damage public safety and order</td>
</tr>
<tr class="odd">
<td>Talent Availability</td>
<td>Skills shortages</td>
</tr>
<tr class="even">
<td>Terrorism</td>
<td>Unlawful use of violence and intimidation against civilians for political reasons, perpetrated by individuals or groups inspired by domestic or international extremist ideologies</td>
</tr>
</tbody>
</table>
</section>
<section id="environmental" class="level5">
<h5 class="anchored" data-anchor-id="environmental">Environmental</h5>
<table class="caption-top table">
<colgroup>
<col style="width: 50%">
<col style="width: 50%">
</colgroup>
<thead>
<tr class="header">
<th>Risk Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Climate Change</td>
<td>Acute and/or chronic physical hazards associated with long-term changes to the Earth’s climate, as well as risks posed by society’s responsive transition to a low carbon economy</td>
</tr>
<tr class="even">
<td>Environmental Degradation</td>
<td>Deterioration of the physical environment and ecosystems, including: waste &amp; pollution, biodiversity loss, ecosystem collapse, deforestation &amp; soil degradation</td>
</tr>
<tr class="odd">
<td>Extreme Weather</td>
<td>Weather events that impact business: flooding, tropical storms, heavy precipitation (rain, hail, snow), lightning storms, drought, freezing and low temperatures, heatwaves, wildfires etc.</td>
</tr>
<tr class="even">
<td>Food Security</td>
<td>Shortages of food affecting large populations due to environmental factors and/or disease outbreaks in plant and livestock food sources</td>
</tr>
<tr class="odd">
<td>Geophysical</td>
<td>Earthquakes, tsunamis and volcanic eruptions</td>
</tr>
<tr class="even">
<td>Natural Resource Deficiency</td>
<td>Deficiencies in natural resources caused by unsustainable human consumption at a rate exceeding the readily available supply, including: fossil fuels, biogeochemicals, raw materials, water etc.</td>
</tr>
<tr class="odd">
<td>Space</td>
<td>Solar storms and astronomical impact events</td>
</tr>
</tbody>
</table>
</section>
<section id="germs-risk-monitoring-pipeline" class="level4">
<h4 class="anchored" data-anchor-id="germs-risk-monitoring-pipeline">GERM’s Risk Monitoring Pipeline</h4>
<p>GERM processes annual reports through a series of steps. Documents are downloaded and the text within them is extracted and separated into chunks. Each chunk of text is searched for keywords associated with each category of risk within the taxonomy (Figure 5).</p>
<img src="https://adu.autonomy.work/posts/2024_03_23_GERM/assets/risk.png" style="border: 1px solid black; width: 100%; box-sizing: border-box;">
<center>
<figcaption>
Figure 5: Annual report for <a href="https://find-and-update.company-information.service.gov.uk/company/01177276/filing-history/MzQxNTk4MDUxOGFkaXF6a2N4/document?format=pdf&amp;download=0" target="_blank">Hart &amp; Sons (Dorset) Limited</a>
</figcaption>
</center>
<p><br></p>
<p>Any chunks containing keywords relevant to a category of risk within our taxonomy proceeds to be processed by an LLM that classifies the chunk as to whether or not it contains discussion relevant to the flagged category of risk.</p>
<p>If the LLM flags the chunk as containing relevant discussion pertaining to the category of risk, the chunk proceeds to be processed by a sequence of LLMs that summarise the risk discussion, extract and summarise stated impacts and extract the names of any countries mentioned. This is the data that ultimately populates the risk database where it can be searched for keywords, sorted and downloaded (Figure 6). This pipeline is biased towards higher precision at the expense of recall so there are likely to be instances of risk reporting that are not flagged as such.</p>
<img src="https://adu.autonomy.work/posts/2024_03_23_GERM/assets/table.png" class="img-fluid">
<center>
<figcaption>
Figure 6: GERM risk database
</figcaption>
</center>
<p><br></p>
</section>
<section id="risk-impact-embeddings" class="level4">
<h4 class="anchored" data-anchor-id="risk-impact-embeddings">Risk Impact Embeddings</h4>
<p>Each risk impact, such as <code>loss of staff</code>, <code>increase in costs</code>, or <code>damage to building</code>, is processed by an <a href="https://platform.openai.com/docs/guides/embeddings" target="_blank">embedding model</a> that generates a semantic embedding vector for each description. Within GERM these vectors are represented in a semantic space—a kind of map where each point (vector) represents the meaning of a risk impact (Figure 7). The closer two vectors are on this map, the more similar they are in meaning. For instance, in two-dimensions, the vector for <code>loss of staff</code> might be positioned closer to <code>the company struggles to retain employees</code> than to <code>crops were damaged by drought</code>. This mapping allows us to visually identify and analyse:</p>
<ol type="1">
<li>Different types of risks leading to similar impacts on different companies. This is shown as clusters of mixed colour points on the map. For example, <code>extreme weather</code>, <code>interstate conflict</code>, and <code>food security</code> might all cause similar increases in farming costs and prices.</li>
<li>The most frequent impacts associated with each type of risk on different companies. This is shown as clusters of points of the same colour. For example, <code>interstate conflict</code> often results in <code>supply chain disruptions</code>, <code>rising energy costs</code>, and <code>inflation</code>.</li>
</ol>
<img src="https://adu.autonomy.work/posts/2024_03_23_GERM/assets/embeddings.png" class="img-fluid">
<center>
<figcaption>
Figure 7: Risk impact embeddings
</figcaption>
</center>
<p><br></p>
<p>The extraction of named entities in the form of countries can serve as input to a global risk heatmap visualising the countries most frequently appearing within risk disclosures (Figure 8).</p>
<img src="https://adu.autonomy.work/posts/2024_03_23_GERM/assets/global.png" class="img-fluid">
<center>
<figcaption>
Figure 8: GERM global risk heatmap
</figcaption>
</center>
<p><br></p>
</section>
<section id="march-2024-observations" class="level4">
<h4 class="anchored" data-anchor-id="march-2024-observations">March 2024 Observations</h4>
<img src="https://adu.autonomy.work/posts/2024_03_23_GERM/assets/risk_count.png" class="img-fluid">
<center>
<figcaption>
Figure 9: March 2024 risks
</figcaption>
</center>
<p><br></p>
<p>Of the 266,989 annual reports processed by GERM throughout March 2024, only 621 companies were flagged as reporting any of the risks from our taxonomy. As suggested within our methodology, the majority of companies filing electronically will be smaller in size and are therefore less likely to include detailed risk disclosure. Some of the largest companies reporting relevant risks within the month included <a href="https://www.rapiscansystems.com/en/" target="_blank">Rapiscan Systems</a> (airport security hardware specialists), <a href="https://fpmccann.co.uk/" target="_blank">FP Mccann Group</a> (supplier and manufacturer of precast concrete) and <a href="https://enerveo.com/" target="_blank">Enerveo</a> (contractors).</p>
<p>Discussion of interstate conflict and climate change appeared more frequently that other types of risk, with the wars in Ukraine and Palestine continuing to focus attention (Figure 9). Climate change risks were often flagged by GERM when companies share emissions data under the Streamlined Energy and Carbon Reporting guidelines. Some categories of risk were not detected in any reports throughout the month including privatisation, nationalisation and space risks. Some risk types including modern slavery and corruption deterioration returned similar boilerplate compliance statements and were therefore omitted as they provided minimal information.</p>
<p>Trends in risk reporting across each category of risk could be summarised as follows:</p>
<table class="caption-top table">
<colgroup>
<col style="width: 33%">
<col style="width: 33%">
<col style="width: 33%">
</colgroup>
<thead>
<tr class="header">
<th>Risk Type</th>
<th>Risk Trends</th>
<th>Impact Trends</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Change in Government</td>
<td>UK &amp; US upcoming elections in 2024</td>
<td>Economic uncertainty; Changes in government funding for specific sectors; Reduced consumer confidence</td>
</tr>
<tr class="even">
<td>Climate Change</td>
<td>GHG emissions (Scope 1 &amp; 2); High energy consumption; SECR compliance</td>
<td>Financial commitments to Net Zero; Increased costs of optimising processes, sustainable materials and carbon reducing technologies; Challenges in meeting the changing preferences of carbon conscious consumers</td>
</tr>
<tr class="odd">
<td>Criminal Activity</td>
<td>Young people getting involved in crime and anti-social behaviour; Fraud</td>
<td>Implementation of new policy; Repayment of illegal dividends</td>
</tr>
<tr class="even">
<td>Emerging Regulations</td>
<td>Brexit</td>
<td>Increased costs and financial pressure; Increasing trade friction and complexity; Reduced business with the EU; Lobbying efforts advocating for legislative change</td>
</tr>
<tr class="odd">
<td>Environmental Degradation</td>
<td>Challenges in sourcing of sustainable materials; Use of landfills for waste management; Risk of dangerous leakage into the environment</td>
<td>Increased costs due to recycling and sustainable materials; Reputational risk</td>
</tr>
<tr class="even">
<td>Extreme Weather</td>
<td>Flooding; Heavy rain; Drought; Extreme heat</td>
<td>Crop damage; Delayed planting; Increased importation; Investment in new technologies; Damage to infrastructure</td>
</tr>
<tr class="odd">
<td>Food Security</td>
<td>Avian influenza</td>
<td>Operations impacted; Loss of food and lifestock; Rising operational costs</td>
</tr>
<tr class="even">
<td>Industrial Action</td>
<td>Entertainment industry strikes; UK rail strikes</td>
<td>Challenging business conditions; Challenges in travelling by rail; Uncertainty regarding planned events</td>
</tr>
<tr class="odd">
<td>Interstate Conflict</td>
<td>Wars in Ukraine and the Middle East</td>
<td>Inflation; Energy price rises; Supply chain disruptions; Market volatility; Raw material costs increased</td>
</tr>
<tr class="even">
<td>Logistics Restrictions</td>
<td>Global conflicts; COVID-19 government restrictions; Suez Canal; Houthi strikes in the Red Sea</td>
<td>Increased shipping and transportation costs; Extended lead times; Redesign of supply chains</td>
</tr>
<tr class="odd">
<td>Minimum Wage Hike</td>
<td>10% Increase to the National Minimum Wage; Commitment to Real Living Wage; Wage inflation</td>
<td>Significant rise in payroll and labour costs; Decrease in profit; Pressure on employee retention and recruitment efforts</td>
</tr>
<tr class="even">
<td>Natural Resource Deficiency</td>
<td>Volatile raw material prices (fossil fuels and metals); Energy crisis; Brexit and global conflict impacting raw material availability and prices; Increased costs of sustainable materials</td>
<td>Increased or unpredictable production costs; Investment in renewables (solar) and recycling</td>
</tr>
<tr class="odd">
<td>Sanctions</td>
<td>EU, US and UK sanctions against Russia and Belarus; Potential future sanctions against China; Ban on Western airlines flying within Russian airspace</td>
<td>Challenges in accessing funds and customers; Revenue loss from the Russian market; Potential difficulties for companies to continue operating; Future uncertainty around inclusion on sanctions list</td>
</tr>
<tr class="even">
<td>Social Unrest</td>
<td>London protests; Instability in Ethiopia and Syria</td>
<td>Projects and travel abroad delayed or suspended</td>
</tr>
<tr class="odd">
<td>Subnational Conflict</td>
<td>Civil war in Sudan</td>
<td>Negative impact on Exotic Debt Fund; Negative impact on existing projects and company performance</td>
</tr>
<tr class="even">
<td>Talent Availability</td>
<td>Brexit-induced labour challenges; Skill shortages in construction, nursing and technology</td>
<td>Wage inflation and increased labour costs; Opening of Tier 2 visa sponsorship schemes to attract talent from the EU and elsewhere; Investment in recruitment and in-house training; Continued support for apprenticeship schemes</td>
</tr>
<tr class="odd">
<td>Terrorism</td>
<td>Increasing alertness towards terrorist threats in public spaces such as sports stadiums</td>
<td>Financial, care and social support required for victims of terrorism; Potential for a reduction in international travel following terrorist attacks</td>
</tr>
</tbody>
</table>
<p>A closer reading of GERM’s dataset reveals some eye-catching risks worth digging into further:</p>
<section id="geopolitical" class="level5">
<h5 class="anchored" data-anchor-id="geopolitical">Geopolitical</h5>
<img src="https://adu.autonomy.work/posts/2024_03_23_GERM/assets/geop.png" class="img-fluid">
<center>
<figcaption>
Figure 10: Risks from <a href="https://find-and-update.company-information.service.gov.uk/company/09923116/filing-history/MzQxNjQ5MDY4MmFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">ADF International (UK)</a>, <a href="https://find-and-update.company-information.service.gov.uk/company/00918578/filing-history/MzQxNjEyMjkwNWFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Grant &amp; Bowman Limited</a>, <a href="https://find-and-update.company-information.service.gov.uk/company/01461396/filing-history/MzQxNjUwNzM4OGFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Dukes Hotel Limited</a>, <a href="https://find-and-update.company-information.service.gov.uk/company/05175060/filing-history/MzQxNDY1ODY3NWFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">MacDougall Arts Limited</a>, <a href="https://find-and-update.company-information.service.gov.uk/company/03199030/filing-history/MzQxNjQwMzg0N2FkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Cardiff Rugby Limited</a> &amp; <a href="https://find-and-update.company-information.service.gov.uk/company/07247740/filing-history/MzQxMzQyMzUwNmFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Raims Limited</a>
</figcaption>
</center>
<p><br></p>
</section>
<section id="environmental-1" class="level5">
<h5 class="anchored" data-anchor-id="environmental-1">Environmental</h5>
<img src="https://adu.autonomy.work/posts/2024_03_23_GERM/assets/enviro.png" class="img-fluid">
<center>
<figcaption>
Figure 11: Risks from <a href="https://find-and-update.company-information.service.gov.uk/company/04021155/filing-history/MzQxNTE5ODg0NWFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Traditional Norfolk Poultry Limited</a>, <a href="https://find-and-update.company-information.service.gov.uk/company/07109396/filing-history/MzQxNTYxMjc5N2FkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Kappersfoods (UK) Limited</a>, <a href="https://find-and-update.company-information.service.gov.uk/company/06758863/filing-history/MzQxNTYwMzg1MWFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Hubbard’s Hills Trust</a>, <a href="https://find-and-update.company-information.service.gov.uk/company/07630060/filing-history/MzQxNjEwNTU5MGFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Friends of Bude Sea Pool</a>, <a href="https://find-and-update.company-information.service.gov.uk/company/12036812/filing-history/MzQxNjEzMzc4N2FkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Open Cages Advocacy Ltd</a> &amp; <a href="https://find-and-update.company-information.service.gov.uk/company/06836989/filing-history/MzQxNTc2MjAzNGFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">Ellis Brigham Mountain Sports Limited</a>
</figcaption>
</center>
<p><br></p>
<p>GERM also flagged instances of risk that could work out to be advantageous for certain companies. <a href="https://www.kabina.co/why" target="_blank">Kabina</a> own the patent for an amphibious flood-adaptive home and write in their annual report that <a href="https://find-and-update.company-information.service.gov.uk/company/09072750/filing-history/MzQxMzI2MzI4MmFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">“the UK’s relentless and exponential increase in population, combined with increased areas of flood land, bode well”</a> for their business (Figure 12). <a href="https://mercian.org/" target="_blank">Mercian Limited</a>, the UK’s largest supplier of crisping potatoes, <a href="https://find-and-update.company-information.service.gov.uk/company/05238329/filing-history/MzQxMzYwNjI5NGFkaXF6a2N4/document?format=xhtml&amp;download=0" target="_blank">recorded their best financial year yet</a> as a consequence of drought and the war in Ukraine leading to a hike in the price of potatoes.</p>
<img src="https://adu.autonomy.work/posts/2024_03_23_GERM/assets/kabina.png" class="img-fluid">
<center>
<figcaption>
Figure 12: Render of Kabina’s flood safe homes
</figcaption>
</center>
<p><br></p>
</section>
</section>
</section>
<section id="ai-augmented-risk-research" class="level3">
<h3 class="anchored" data-anchor-id="ai-augmented-risk-research">AI-Augmented Risk Research</h3>
<p>As we continue to experiment with GERM within our broader practice of prototyping AI-augmented research tools, there are several language model specific research directions on the horizon that we look forward to developing.</p>
<section id="islands-of-coalition" class="level5">
<h5 class="anchored" data-anchor-id="islands-of-coalition">Islands of Coalition</h5>
<p>By generating and mapping embedding vectors of risk impacts, we can visualize clusters of companies experiencing similar challenges (Figure 13). This map may reveal unexpected clusters of companies, separated by locality and industry, that could unite around similar risk-mitigation policies. We look towards other coalitions such as the <a href="https://www.aosis.org/about/chair-of-aosis/" target="_blank">Alliance of Small Island States</a> that illustrate how entities from different cultures and contexts can find common purpose in response to shared risk. How could uncovering further islands of latent coalition inform policy design?</p>
</section>
<section id="advanced-concept-filtration" class="level5">
<h5 class="anchored" data-anchor-id="advanced-concept-filtration">Advanced Concept Filtration</h5>
<p>Given the advanced comprehension of LLMs and the ease with which text processing operations can be chained together to compose complex pipelines, we are curious to explore how well LLMs could filter Companies House for more sophisticated concepts of risk and resilience beyond those within the Cambridge Taxonomy of Business Risks. Could we identify instances of companies that exhibit <a href="https://en.wikipedia.org/wiki/Antifragile_(book)" target="_blank">‘antifragility’</a> by thriving in challenging business environments. Other more nuanced phenomena to monitor for might include ‘climate change adaptation measures’, ‘supply chain diversification’, and ‘business model innovation’.</p>
</section>
<section id="companies-house-for-interactive-planning-simulations" class="level5">
<h5 class="anchored" data-anchor-id="companies-house-for-interactive-planning-simulations">Companies House for Interactive Planning Simulations</h5>
<p>Most companies don’t write about risk. Most risk management professionals will have considered using ChatGPT to fill in the blanks of a risk report. What remains less explored is how far we could push the obvious potential for LLMs to generate risk profiles for companies. Annual reports could be processed to infer the level of exposure each company has to every single category of risk within the Cambridge Taxonomy (even the most <a href="https://www.youtube.com/watch?v=-SPUD6oG964" target="_blank">Emmerichian</a> risks). Coupled with external data from news, reports, social media and fiction, LLMs could generate plausible narrative-based scenarios detailing how companies might respond to each flavour of crisis. These narratives could form their own labyrinthian genre of grey-literature; a house of generative risk narratives for each company in Companies House. Elements of this data might serve as input to an agent-based-model for simulating and studying the <a href="https://nickm980.github.io/smallville" target="_blank">emergent competition and cooperation</a> within fragments of the economy under stress. Could Companies House serve as the partial backend database to simulations for incubating and archiving novel plans and strategies?</p>
<img src="https://adu.autonomy.work/posts/2024_03_23_GERM/assets/coalition.png" class="img-fluid">
<center>
<figcaption>
Figure 13: Human-annotated regions of common risk impact within GERM
</figcaption>
</center>
<p><br></p>


</section>
</section>

 ]]></description>
  <category>Deep-dives</category>
  <category>Interactive</category>
  <category>Risk Extraction</category>
  <guid>https://adu.autonomy.work/posts/2024_03_23_GERM/</guid>
  <pubDate>Mon, 22 Apr 2024 23:00:00 GMT</pubDate>
  <media:content url="https://adu.autonomy.work/posts/2024_03_23_GERM/assets/global.png" medium="image" type="image/png" height="61" width="144"/>
</item>
<item>
  <title>Pubcrawler</title>
  <dc:creator>Sean Greaves</dc:creator>
  <link>https://adu.autonomy.work/posts/2023_12_12_pubcrawler/</link>
  <description><![CDATA[ 





<p><a href="https://github.com/Autonomy-Data-Unit/pubcrawler" class="post-top-link" target="_blank"> <i class="bi bi-github"></i> Check out the code on GitHub </a></p>
<p>The UK’s policy research landscape is made up of hundreds of organisations distinguished by their varying levels of research output, <a href="https://www.opendemocracy.net/en/who-funds-you/">transparency</a> and historical roots. Whilst Autonomy celebrated their 6th birthday earlier this year, several think tanks still operating in the UK trace their <a href="https://fabians.org.uk/britains-oldest-think-tank/">origins back to the 19th century</a>. Faced with an ever growing number of research organisations generating a steady stream of publication, it is likely that our knowledge of many of these organisation is incomplete or out of date. Beyond the challenge of digesting an insurmountable volume of research, there is the more immediate difficulty in getting hold of all of the research an organisation has published. Searching for PDFs throughout the cavernous subpages of an organisation’s website is time consuming work. Furthermore if we would like to get metadata from publications like the authors, dates and subject matter, we are likely to encounter an infinite range of text formats.</p>
<p>To address some of these challenges we’ve developed <a href="https://github.com/Autonomy-Data-Unit/pubcrawler">Pubcrawler</a> a simple flexible tool that applies webscraping to pull all the publications from an organisation’s website and then categorise them with LLMs. In this post we will demonstrate how the tool can automate the gathering of intel in a few simple steps, starting with an organisation’s url as input.</p>
<section id="crawl" class="level3">
<h3 class="anchored" data-anchor-id="crawl">1. Crawl</h3>
<p>We begin by providing ‘Pubcrawler’ with the url of the organisation we want to investigate. For testing purposes we decided to embark on the meta project of investigating our own organisation and so <code>https://autonomy.work/</code> is the input. Using Selenium the tool will recursively crawl through every subpage that eventually links back to the Autonomy landing page, whilst saving the location of each PDF publication it spots along the way:</p>
<p><img src="https://adu.autonomy.work/posts/2023_12_12_pubcrawler/assets/crawl_start.png" class="img-fluid"></p>
<p>Crawling through the nearly 1000 subpages on the Autonomy site completed in less than an hour:</p>
<p><img src="https://adu.autonomy.work/posts/2023_12_12_pubcrawler/assets/crawl_end.png" class="img-fluid"></p>
</section>
<section id="publications" class="level3">
<h3 class="anchored" data-anchor-id="publications">2. Publications</h3>
<p>After navigating through the entire site, 190 PDF files were found. Before opening the files we assume that most of these PDFs were written by Autonomy whilst some will come from other organisations. The next stage requires downloading as many of the found files as possible using Selenium. Due to the presence of some links that no longer exist, only 170 publications could be successfully downloaded.</p>
</section>
<section id="metadata" class="level3">
<h3 class="anchored" data-anchor-id="metadata">3. Metadata</h3>
<p>With all the publications in one place we can begin the task of extracting useful metadata that will allow various characteristics of the organisation to be visualised. It is worth noting that PDF files often contain some metadata although it is often sparse and low quality. Here’s an example of some of the metadata we can grab from the Autonomy publications with <code>PyPDF2</code>:</p>
<div id="b8a8ced6-932a-4498-8b5c-2a2e45ba66cd" class="cell">
<div class="cell-output cell-output-display">
<div>


<table class="dataframe caption-top table table-sm table-striped small" data-quarto-postprocess="true" data-border="1">
<thead>
<tr class="header">
<th data-quarto-table-cell-role="th"></th>
<th data-quarto-table-cell-role="th">CreationDate</th>
<th data-quarto-table-cell-role="th">Creator</th>
<th data-quarto-table-cell-role="th">ModDate</th>
<th data-quarto-table-cell-role="th">Producer</th>
<th data-quarto-table-cell-role="th">Trapped</th>
<th data-quarto-table-cell-role="th">file_name</th>
<th data-quarto-table-cell-role="th">Title</th>
<th data-quarto-table-cell-role="th">Author</th>
<th data-quarto-table-cell-role="th">Keywords</th>
<th data-quarto-table-cell-role="th">Company</th>
<th data-quarto-table-cell-role="th">...</th>
<th data-quarto-table-cell-role="th">GTS_PDFXConformance</th>
<th data-quarto-table-cell-role="th">GTS_PDFXVersion</th>
<th data-quarto-table-cell-role="th">PTEX.Fullbanner</th>
<th data-quarto-table-cell-role="th">XPressPrivate</th>
<th data-quarto-table-cell-role="th">WPS-ARTICLEDOI</th>
<th data-quarto-table-cell-role="th">WPS-JOURNALDOI</th>
<th data-quarto-table-cell-role="th">WPS-PROCLEVEL</th>
<th data-quarto-table-cell-role="th">Comments</th>
<th data-quarto-table-cell-role="th">Appligent</th>
<th data-quarto-table-cell-role="th">SPDF</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td data-quarto-table-cell-role="th">0</td>
<td>D:20230710141411+01'00'</td>
<td>Adobe InDesign 18.2 (Macintosh)</td>
<td>D:20230710141419+01'00'</td>
<td>Adobe PDF Library 17.0</td>
<td>/False</td>
<td>Treating-causes-not-symptoms-Jul-23.pdf</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>...</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
</tr>
<tr class="even">
<td data-quarto-table-cell-role="th">1</td>
<td>D:20200825145942+01'00'</td>
<td>Microsoft® Word for Office 365</td>
<td>D:20200825145942+01'00'</td>
<td>Microsoft® Word for Office 365</td>
<td>NaN</td>
<td>Public-Sector-as-Pioneer-2.pdf</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>...</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
</tr>
<tr class="odd">
<td data-quarto-table-cell-role="th">2</td>
<td>D:20230608103737+02'00'</td>
<td>Adobe InDesign 18.3 (Macintosh)</td>
<td>D:20230608103741+02'00'</td>
<td>Adobe PDF Library 17.0</td>
<td>/False</td>
<td>BASINCSHORT.pdf</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>...</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
</tr>
<tr class="even">
<td data-quarto-table-cell-role="th">3</td>
<td>D:20181215103417Z00'00'</td>
<td>NaN</td>
<td>D:20181215103417Z00'00'</td>
<td>GPL Ghostscript 8.70</td>
<td>NaN</td>
<td>VERSION FOR ARCHIVING.pdf</td>
<td>Mental healthcare staff well‐being and burnout...</td>
<td>Johnson, J, Hall, LH, Berzins, K, Baker, J, Me...</td>
<td>burnout; health services; mental health; patie...</td>
<td>NaN</td>
<td>...</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
</tr>
<tr class="odd">
<td data-quarto-table-cell-role="th">4</td>
<td>D:20190909192632+01'00'</td>
<td>Acrobat Pro DC 19.12.20040</td>
<td>D:20190909192632+01'00'</td>
<td>Acrobat Pro DC 19.12.20040</td>
<td>NaN</td>
<td>PEF_Skidelsky_How_to_achieve_shorter_working_h...</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>...</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
<td>NaN</td>
</tr>
</tbody>
</table>

<p>5 rows × 26 columns</p>
</div>
</div>
</div>
<p>To extract higher quality metadata from the actual content within a PDF we require an approach that is flexible towards the vast differences in presentation format and structure across documents.</p>
<p><img src="https://adu.autonomy.work/posts/2023_12_12_pubcrawler/assets/reports.png" class="img-fluid"></p>
<p>Thankfully language models like GPT-3.5 and GPT-4 demonstrate strong capabilities in entity recognition across a broad range of text formats. It is even possible to pass an entire PDF to GPT-4 within a single API call due to recent extensions in the model’s context window, however this becomes costly when processing multiple documents (potentially several $ per document), incentivising us to minimise the number of tokens transmitted via API.</p>
<p>To demonstrate the kinds of metadata that could be extracted reliably from PDF text, we attempt to get some basic bibliographic information on each document, including authors, dates and institutional affiliations. As a general rule, much of this information is likely to exist in the first few pages of each document, therefore passing the first 5 pages of each PDF to GPT-3.5/GPT-4 should allow us to save costs. Using the following function call, we instruct the model to return the desired metadata in a structured format:</p>
<div id="cd03eb8b-3741-4980-ae6a-eb57d6b53297" class="cell">
<div class="cell-output cell-output-display">
<pre><code>{'name': 'generate_citation',
 'description': 'Generate a citation for report',
 'parameters': {'type': 'object',
  'properties': {'title': {'type': 'string',
    'description': 'Report title. If unknown leave empty'},
   'authors': {'type': 'array',
    'description': "Array of the author's full names. If unknown leave empty",
    'items': {'description': "Author's full name", 'type': 'string'}},
   'organisation': {'type': 'array',
    'description': 'Array containing the names of the research organisations that produced the report. If unknown leave empty',
    'items': {'description': "Research organisation's name",
     'type': 'string'}},
   'date': {'type': 'string',
    'description': 'Date the report was published on. Try to find the day, month and year. If unknown leave empty'},
   'keywords': {'type': 'array',
    'description': 'Array of keywords that indicate the content of the report. If unknown leave empty',
    'items': {'description': "Keyword title ie 'feminism'", 'type': 'string'}},
   'funders': {'type': 'array',
    'description': 'Array of organisations that provided funding or financial support. If unknown leave empty',
    'items': {'description': 'Name of funding organisation',
     'type': 'string'}}},
  'required': ['title',
   'authors',
   'organisation',
   'date',
   'keywords',
   'funders']}}</code></pre>
</div>
</div>
<p>By passing the first 5 pages from the following report to GPT-4 with the above function call, we get the proceeding structured output in return:</p>
<p><img src="https://adu.autonomy.work/posts/2023_12_12_pubcrawler/assets/shorterweek.png" class="img-fluid"></p>
<div id="327d73c3-5cab-443e-a278-3ba0001e85d2" class="cell">
<div class="cell-output cell-output-display">
<pre><code>{'title': 'The Shorter Working Week: A Radical And Pragmatic Proposal',
 'authors': ['Will Stronge',
  'Aidan Harper',
  'Danielle Guizzo',
  'Kyle Lewis',
  'Madeleine Ellis-Petersen',
  'Nic Murray',
  'Helen Hester',
  'Matt Cole'],
 'organisation': ['Autonomy', 'Autonomy Research Ltd', '4 Day Week Campaign'],
 'date': '2019',
 'keywords': ['Shorter Working Week',
  'Current Model of Work',
  'Future Model of Work-Time'],
 'funders': []}</code></pre>
</div>
</div>
<p>When applied across all of Autonomy’s documents we observe that both GPT-3.5 and GPT-4 are able to extract entities with minimal errors in spelling/formatting, lifting most entities correctly from the test. The main sources of inaccuracy stem from false positive and false negative classifications of persons and organisations as authors or funders. GPT-3.5 seemed to be much less capable in recognising funders than GPT-4. However whilst GPT-4 demonstrates superior classification quality, GPT-4 cost $9.79 to classify 850 pages of text whilst GPT-3.5 cost $0.41.</p>
</section>
<section id="visualisation" class="level3">
<h3 class="anchored" data-anchor-id="visualisation">4. Visualisation</h3>
<p>With GPT-4 we have generated structured metadata for each downloaded PDF that can be plugged into data visualisations. GPT-4 was prompted to return a list of authors for each publication and so we can easily visualise the most common occurances. Its unsurprising to find Autonomy’s founders and researchers make up the top 6 most cited authors:</p>
<p><img src="https://adu.autonomy.work/posts/2023_12_12_pubcrawler/assets/author_frequency.png" class="img-fluid"></p>
<p>The same approach can be followed to visualise Autonomy’s most frequent funders and institutional collaborators (usually in the form of co-authors). GPT-4 has been broadly successful in differentiating between these two fuzzy classes of organisation. This metadata could be prove useful in connecting research organisations together and sketching how wider political projects are funded:</p>
<p><img src="https://adu.autonomy.work/posts/2023_12_12_pubcrawler/assets/organisation_frequency.png" class="img-fluid"></p>
<p><img src="https://adu.autonomy.work/posts/2023_12_12_pubcrawler/assets/funder_frequency.png" class="img-fluid"></p>
<p>The presence of keywords within text can indicate which policy areas are of greatest interest to an organisation. Whilst the following results are quite general and unsurprising in Autonomy’s case given that the organisation is focussed on the future of work, it can be useful to compare the most common keywords with the stated aims of an organisation for misalignment:</p>
<p><img src="https://adu.autonomy.work/posts/2023_12_12_pubcrawler/assets/keyword_frequency.png" class="img-fluid"></p>
<p>Temporal data can help us chart the peaks and troughs in research output over time:</p>
<p><img src="https://adu.autonomy.work/posts/2023_12_12_pubcrawler/assets/publication_output.png" class="img-fluid"></p>
<p>Where the month of publication is mentioned we can generate a more granular map:</p>
<div id="022ab20c-a808-40f3-97ae-50150bf2867d" class="cell">
<div class="cell-output cell-output-display">

        <iframe width="100%" height="400px" src="assets/publication_monthly.html" frameborder="0" allowfullscreen=""></iframe>
        
</div>
</div>
<p>It is also possible to explore how collaborative an organisation is through investigating instances of co-authorship. The following plot shows which authors found in Autonomy’s reports have collaborated together, represented by an edge connecting them. Everytime two authors are found in the same citation we count this as a single collaboration. Edge weight represents the number of times the authors have collaborated:</p>
<div id="1a888ad5-704e-4fdc-a3c2-d5f03da76da4" class="cell">
<div class="cell-output cell-output-display">

        <iframe width="100%" height="900px" src="assets/network_graph.html" frameborder="0" allowfullscreen=""></iframe>
        
</div>
</div>
</section>
<section id="conclusion" class="level3">
<h3 class="anchored" data-anchor-id="conclusion">5. Conclusion</h3>
<p>In this brief post we’ve demonstrated the automated search and retrieval of an organisation’s publication archive from ~1000 webpages in less than hour. LLMs can process these large collections of documents producing rich metadata to power useful visualisations. We continue to find the possibilities of combining web scraping and LLMs exciting as they allow us to build highly versatile information retrieval systems that easily overcome the nuances of heterogeneous web design and file formats. We look forward to testing ‘Pubcrawling’ on a much wider set of organisations and expanding the kinds of metadata we retrieve.</p>


</section>

 ]]></description>
  <category>Deep-dives</category>
  <category>Comes with code</category>
  <guid>https://adu.autonomy.work/posts/2023_12_12_pubcrawler/</guid>
  <pubDate>Tue, 12 Dec 2023 00:00:00 GMT</pubDate>
</item>
<item>
  <title>A database compendium</title>
  <dc:creator>Rowan Trickett-Tappenden</dc:creator>
  <link>https://adu.autonomy.work/posts/2023_11_29_database_compendium/</link>
  <description><![CDATA[ 





<div style="text-align:center;">
<p><img src="https://adu.autonomy.work/posts/2023_11_29_database_compendium/network.png" class="img-fluid" style="width:80.0%"></p>
</div>
<p><i>This post is by our intern Rowan, who has been a great addition to our team for the last six months. Rowan has focused on developing AI tools to enhance the daily research activities at Autonomy.</i></p>
<p><a href="https://github.com/Autonomy-Data-Unit/2023_06_database-compendium" class="post-top-link" target="_blank"> <i class="bi bi-github"></i> Check out the code on GitHub </a> <br> <a href="https://show.autonomy.work/database-compendium/" class="post-top-link" target="_blank"> <i class="bi bi-window"></i> Interactive demo </a></p>
<section id="intro" class="level2">
<h2 class="anchored" data-anchor-id="intro">Intro</h2>
<p>The process of discovering datasets through manual Google searches and individual downloads presents a significant challenge. This approach often results in datasets being sourced individually, leading to difficulties regarding cross-comparison of data . As a result, the endeavour of finding relevant datasets and conducting meaningful comparisons becomes both arduous and time-consuming. Of course, even through such searches, there remains the possibility that some datasets simply haven’t been unearthed and thus remain unknown to the researcher.</p>
<p>To address this issue, I’ve been automating the gathering of datasets from key sources via APIs and web scraping, and creating a single metadata dataset - what we’ve been calling the ‘database of databases’. This dataset becomes the core of a sort of recommendation system: within this system, finding datasets with relevant content or resembling ones already in the metadata collection becomes much easier. This approach is all about making dataset discovery faster and more effective, using clear visualisations and organised management.</p>
<p>This blog walks through the process of achieving this.</p>
</section>
<section id="data-collection" class="level2">
<h2 class="anchored" data-anchor-id="data-collection">Data Collection</h2>
<p>Autonomy is a research organisation that focuses on the future of work and economic planning, and therefore the vast majority of the datasets come from the <a href="https://www.ons.gov.uk/" target="_blank">ONS</a> (Office for National Statistics). The ONS is the UK’s largest independent producer of official statistics with data relating to the economy, population, and society at various levels. This data is collected either through their <a href="https://developer.ons.gov.uk/" target="_blank">API</a> or the <a href="https://www.nomisweb.co.uk/" target="_blank">Nomis</a> API. As well as the ONS, the <a href="https://www.gov.uk/government/collections/monthly-insolvency-statistics" target="_blank">Monthly Insolvency Statistics</a>, <a href="https://digital.nhs.uk/data-and-information/data-tools-and-services/data-services/general-practice-data-hub/quality-outcomes-framework-qof" target="_blank">NHS Quality and Outcomes Framework</a>, and <a href="https://data.police.uk/" target="_blank">police data</a> are also included. These datasets provide insights into bankruptcy trends, healthcare data used to assess the NHS services, and crime statistics.</p>
<p>The metadata being collected for each dataset includes the title, a short description, a long description, the column titles, unique non-numeric column values / parameters, and the release date / date the dataset was last updated. This combination of data should provide a solid overview of the dataset and enough information to make decisions on their similarity with other datasets.</p>
<div id="cell-11" class="cell">
<div class="cell-output cell-output-display">
<table class="dataframe caption-top table table-sm table-striped small" data-quarto-postprocess="true" data-border="1">
<thead>
<tr class="header">
<th data-quarto-table-cell-role="th">Title</th>
<th data-quarto-table-cell-role="th">Description</th>
<th data-quarto-table-cell-role="th">Long_description</th>
<th data-quarto-table-cell-role="th">Columns</th>
<th data-quarto-table-cell-role="th">Unique_parameters</th>
<th data-quarto-table-cell-role="th">Latest_release</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="max-width: 90px; overflow: hidden">Deaths registered weekly in England and Wales by age and sex...</td>
<td style="max-width: 90px; overflow: hidden">Provisional counts of the number of deaths registered in Eng...</td>
<td style="max-width: 90px; overflow: hidden">Quality and methodology information for mortality statistics...</td>
<td style="max-width: 90px; overflow: hidden">['v4_1', 'Data Marking', 'calendar-years', 'Time', 'administ...</td>
<td style="max-width: 90px; overflow: hidden">{'v4_1': None, 'Data Marking': None, 'calendar-years': None,...</td>
<td style="max-width: 90px; overflow: hidden">2023-08-30T00:00:00.000Z</td>
</tr>
<tr class="even">
<td style="max-width: 90px; overflow: hidden">Annual GDP for England, Wales and the English regions...</td>
<td style="max-width: 90px; overflow: hidden">Annual economic activity within England, Wales and the nine ...</td>
<td style="max-width: 90px; overflow: hidden">Quality and Methodology Information (QMI) for quarterly regi...</td>
<td style="max-width: 90px; overflow: hidden">['v4_1', 'Data Marking', 'calendar-years', 'Time', 'nuts', '...</td>
<td style="max-width: 90px; overflow: hidden">{'v4_1': None, 'Data Marking': None, 'calendar-years': None,...</td>
<td style="max-width: 90px; overflow: hidden">2023-05-18T00:00:00.000Z</td>
</tr>
<tr class="odd">
<td style="max-width: 90px; overflow: hidden">Generational income: The effects of taxes and benefits...</td>
<td style="max-width: 90px; overflow: hidden">The effects of direct and indirect taxation and benefits rec...</td>
<td style="max-width: 90px; overflow: hidden">Analysis of how household incomes in the UK are affected by ...</td>
<td style="max-width: 90px; overflow: hidden">['v4_1', 'Data Marking', 'yyyy-to-yyyy-yy', 'Time', 'uk-only...</td>
<td style="max-width: 90px; overflow: hidden">{'v4_1': None, 'Data Marking': None, 'yyyy-to-yyyy-yy': ['19...</td>
<td style="max-width: 90px; overflow: hidden">2022-09-15T00:00:00.000Z</td>
</tr>
<tr class="even">
<td style="max-width: 90px; overflow: hidden">Coronavirus and the latest indicators for the UK economy and...</td>
<td style="max-width: 90px; overflow: hidden">These shipping indicators are based on counts of all vessels...</td>
<td style="max-width: 90px; overflow: hidden">In this paper we present an initial exploration of the use o...</td>
<td style="max-width: 90px; overflow: hidden">['v4_1', 'Data Marking', 'calendar-years', 'Time', 'uk-only'...</td>
<td style="max-width: 90px; overflow: hidden">{'v4_1': None, 'Data Marking': None, 'calendar-years': None,...</td>
<td style="max-width: 90px; overflow: hidden">2023-05-25T00:00:00.000Z</td>
</tr>
<tr class="odd">
<td style="max-width: 90px; overflow: hidden">Earnings and Hours Worked, UK Region by Industry by Two-Digi...</td>
<td style="max-width: 90px; overflow: hidden">Annual estimates of paid hours worked and earnings for UK em...</td>
<td style="max-width: 90px; overflow: hidden">National Statistic What it measures Estimates of the struc...</td>
<td style="max-width: 90px; overflow: hidden">['V4_2', 'Data Marking', 'CV', 'calendar-years', 'Time', 'ad...</td>
<td style="max-width: 90px; overflow: hidden">{'V4_2': None, 'Data Marking': ['x', nan], 'CV': ['x', '23.0...</td>
<td style="max-width: 90px; overflow: hidden">2023-01-13T00:00:00.000Z</td>
</tr>
</tbody>
</table>
</div>
</div>
<div style="text-align:center;">
<figcaption>
<b>Table 1:</b> A sample of the final metadata dataset.
</figcaption>
</div>
</section>
<section id="comparing-datasets" class="level2">
<h2 class="anchored" data-anchor-id="comparing-datasets">Comparing Datasets</h2>
<p>Utilising the gathered metadata, several methods emerge for dataset comparison. The first and most straightforward approach involves column matching. When two or more columns align, datasets can be merged, creating one larger combined dataset. However, a challenge arises due to the variability in column names, including differences in terminology, abbreviations, and spelling. This can result in missing out on potentially valuable column matches. To address this, we not only consider exact matches but also explore similar column names using fuzzy string matching, which helps us find comparable columns.</p>
<p>However, even with these methods, some situations remain unaccounted for. Some datasets might share similarities or relevant information without having any common columns. For such cases, a more inventive approach comes into play. We can use embeddings to compare dataset descriptions, in-depth explanations, and titles. This method enables us to uncover connections that might not be immediately apparent.</p>
<section id="columns" class="level3">
<h3 class="anchored" data-anchor-id="columns">Columns</h3>
<section id="identical" class="level4">
<h4 class="anchored" data-anchor-id="identical">Identical</h4>
<p>Discovering identical columns between datasets follows a straightforward process. I started by retrieving the column list from our chosen dataset. For each other dataset it is to be compared with, I compiled a list of column names that are shared. The length of this shared column list serves as an indicator of the degree of similarity between the two datasets. However, even the presence of a single shared column holds value.</p>
<p>Going one step further, I wanted to favour rare connections, meaning I wanted to find datasets, linked by certain columns, that are more challenging, or less intuitive, to find connections between. To achieve this, I can count the occurrences of each distinct column across all datasets, which gives us a sense of how common columns are. By calculating the reciprocal of this count, I create a measure of rarity. Instead of simply adding up shared column counts to assess similarity, I can sum up the weights assigned to these shared columns. This approach allows me to emphasise the significance of less common connections.</p>
<p>The following is an example of how one calculates the rarity of connections given two lists of columns shared between one dataset A and two other datasets B and C.</p>
<p><br> <img src="https://latex.codecogs.com/png.latex?%0A%5Cbegin%7Baligned%7D%0A%5Cbegin%7Barray%7D%7Bl%7D%0A%5Cend%7Barray%7D%0A%5Cend%7Baligned%7D%20%5C%5C%0A%5Cbegin%7Barray%7D%7Bl%7D%0A%5Ctext%7BShared%20columns%7D%20%5C%5C%0A%5Cbegin%7Bpmatrix%7D%0AAge%20%5C%5C%0AGender%20%5C%5C%0AGeography%0A%5Cend%7Bpmatrix%7D%20%5C%5C%0A%5Cbegin%7Bpmatrix%7D%0AGender%20%5C%5C%0ACars%20(per%201000)%20%5C%5C%0APopulation%0A%5Cend%7Bpmatrix%7D%0A%5Cend%7Barray%7D%0A%5Cbegin%7Barray%7D%7Bl%7D%0A%5Clongrightarrow%20%5C%5C%20%5C%5C%20%5C%5C%0A%5Clongrightarrow%0A%5Cend%7Barray%7D%0A%5Cbegin%7Barray%7D%7Bl%7D%0A%5Ctext%7BWeights%7D%20%5C%5C%0A%5Cbegin%7Bpmatrix%7D%0A5%20%5C%5C%0A8%20%5C%5C%0A10%0A%5Cend%7Bpmatrix%7D%20%5C%5C%0A%5Cbegin%7Bpmatrix%7D%0A8%20%5C%5C%0A1%20%5C%5C%0A4%0A%5Cend%7Bpmatrix%7D%0A%5Cend%7Barray%7D%0A%5Cbegin%7Barray%7D%7Bl%7D%0A%5Cxrightarrow%7Breciprocals%7D%20%5C%5C%20%5C%5C%20%5C%5C%0A%5Cxrightarrow%7Breciprocals%7D%0A%5Cend%7Barray%7D%0A%5Cbegin%7Barray%7D%7Bl%7D%0A%5Ctext%7BUpdated%20weights%7D%20%5C%5C%0A%5Cbegin%7Bpmatrix%7D%0A0.20%20%5C%5C%0A0.13%20%5C%5C%0A0.10%0A%5Cend%7Bpmatrix%7D%20%5C%5C%0A%5Cbegin%7Bpmatrix%7D%0A0.13%20%5C%5C%0A1.00%20%5C%5C%0A0.25%0A%5Cend%7Bpmatrix%7D%0A%5Cend%7Barray%7D%0A%5Cbegin%7Barray%7D%7Bl%7D%0A%5Cxrightarrow%7Bsum%7D%20%5C%5C%20%5C%5C%20%5C%5C%0A%5Cxrightarrow%7Bsum%7D%0A%5Cend%7Barray%7D%0A%5Cbegin%7Barray%7D%7Bl%7D%0A%5Ctext%7B%5Cquad%200.43%7D%20%5C%5C%20%5C%5C%20%5C%5C%0A%5Ctext%7B%5Cquad%201.38%7D%0A%5Cend%7Barray%7D%0A"> <br></p>
<p>We can clearly see that the columns shared between datasets A and C are less common than those shared by A and B and that is reflected in final weight given.</p>
</section>
<section id="similar" class="level4">
<h4 class="anchored" data-anchor-id="similar">Similar</h4>
<p>Linking similar columns requires natural language processing (NLP), specifically fuzzy string matching. The goal of fuzzy string matching is to determine a level of similarity or distance between two strings where they contain minor variations that make exact string matching challenging. There are various algorithms for doing this but the one I used was the Jaro-Winkler similarity. Jaro-Winkler works by considering matching characters within a certain range and giving extra importance to matching prefixes, producing a similarity score between 0 and 1.</p>
<p>For every pair of datasets I go through each of the columns and calculate the similarity score. Columns given a score above a threshold value are deemed to be close enough to be valuable and saved to a list. The length of this list of similar columns determine how correlated the two datasets are. In this case identical columns can be ignored as we don’t need to check if they are similar.</p>
<p><img src="https://latex.codecogs.com/png.latex?%0A%5Ctext%7BJaro-Winkler%20Distance:%20%7D%20d_j(s_1,%20s_2)%20%5Ctext%7B%20where%20%7D%20s_1%20%5Ctext%7B%20and%20%7D%20s_2%20%5Ctext%7B%20are%20strings%7D%0A"> <img src="https://latex.codecogs.com/png.latex?%20d_j(%5Ctext%7BHello%7D,%20%5Ctext%7BHlelo%7D)%20=%200.94%20%5Ctextit%7B%5Cquad(match)%7D%20"> <img src="https://latex.codecogs.com/png.latex?%20d_j(%5Ctext%7BHello%7D,%20%5Ctext%7BHey%7D)%20=%200.75%20%5Ctextit%7B%5Cquad(no%20match)%7D%20"></p>
<p>However, even with these methods, some situations remain unaccounted for. Some datasets might share similarities or relevant information without having any common columns. For such cases, a more inventive approach comes into play. We can use embeddings to compare dataset descriptions, in-depth explanations, and titles. This method enables us to uncover connections that might not be immediately apparent.</p>
</section>
</section>
<section id="embeddings" class="level3">
<h3 class="anchored" data-anchor-id="embeddings">Embeddings</h3>
<p>Text embeddings refer to the process of converting text into a fixed-size numerical vector representation. These vectors capture the semantic meaning and contextual information of the text in a way that can be used for various natural language processing (NLP) tasks.</p>
<p>To understand this better let’s look at an example using word embeddings. Word embeddings capture the semantic relationships between words. Each word is mapped to a vector in a high-dimensional space. Words more closely related will sit closer to each other in this vector space.</p>
<p>Here we have four words, man, woman, king, queen. When each one is given an embedding vector and plotted we see that king and man are close and queen and woman are close due to their semantic meaning.</p>
<div style="text-align:center;">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://www.scaler.com/topics/images/building-the-word2vec-model-using-gensim_thumbnail.webp" class="img-fluid figure-img" width="600"></p>
<figcaption><strong>Figure 1:</strong> <a href="https://www.scaler.com/topics/images/building-the-word2vec-model-using-gensim_thumbnail.webp">Word embedding visualisation</a></figcaption>
</figure>
</div>
</div>
<p>Sentence embeddings work in the same way although sentences are more complex than words as they can vary in length and structure. Sentence embeddings aim to capture the overall meaning of a sentence taking into account relationships between words and the context in which they appear.</p>
<p>The ability of embedding to encode semantic meaning and context makes it the ideal method to compare the dataset descriptions captured as part of the metadata.</p>
<p>I used <a href="https://platform.openai.com/docs/guides/embeddings/what-are-embeddings">OpenAI’s</a> “text-embedding-ada-002” model via the API which returns a 1536 dimensional vector. The data used was a combination of the title, description, and long description for every dataset to generate embeddings and the output saved to a dataframe along with the relevant dataset title.</p>
<p><strong>Similarity between embeddings</strong></p>
<p>The dot product of two vectors can be used to calculate the distance between them. Since the distance between two embedding vectors tells us how similar two pieces of text are, the dot product is essentially a similarity rating. Alternatively, clustering algorithms can be used to group datasets together on their descriptions. This is an incredibly powerful search tool as this can all be done much faster than a person manually searching through datasets to find those that sound like they could be related.</p>
<p>The dot product of two vectors serves as a measure to compute the distance between them. Since the distance between two embedding vectors tells us how similar two pieces of text are, when applied to embedding vectors, the dot product essentially quantifies the similarity. Alternatively, employing clustering algorithms can group datasets based on their descriptions. This dynamic search mechanism offers remarkable efficiency compared to manual human searches, enabling the identification of similar datasets significantly faster.</p>
<div style="text-align:center;">
<figure class="figure">
<iframe src="embedding_clusters.html" width="560" height="520">
</iframe>
<figcaption>
<b>Figure 2:</b> K-Means Clustering on the embeddings. The graph shows just two dimensions of the multi-dimensional vector space and three of the clusters.
</figcaption>
</figure>
</div>
</section>
</section>
<section id="network-diagrams" class="level2">
<h2 class="anchored" data-anchor-id="network-diagrams">Network Diagrams</h2>
<p>Using the techniques above, I am able to compile datasets that provide insights into the similarity of datasets through their metadata. These can then contribute significantly in the exploration and discovery of available datasets, helping to uncover more data on particular topics and bring to light interesting connections that may never have been observed otherwise. While this could be done by simply creating a search function to query the datasets, the integration of network diagrams introduces additional functionality allowing a user to interact with the datasets in new ways.</p>
<p>The network diagrams were created using D3 in JavaScript as it offers much more customizability than python which I used for the data collection and preparation. It also works with web standards and therefore can be integrated within a website easily.</p>
<section id="what-is-a-network-diagram" class="level5">
<h5 class="anchored" data-anchor-id="what-is-a-network-diagram">What is a network diagram?</h5>
<p>A network diagram is a visual depiction illustrating the connections and relationships among nodes, representing elements, through lines called edges. It provides a concise representation of complex systems, aiding in understanding interactions and dependencies within networks, whether in fields like computer networking, project management, or data analysis.</p>
<div style="text-align:center;">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://adu.autonomy.work/posts/2023_11_29_database_compendium/network_diagram.png" class="img-fluid figure-img" width="600"></p>
<figcaption><strong>Figure 3:</strong> Network diagram</figcaption>
</figure>
</div>
</div>
<p>Figure 3 and 4 show screenshots of the <a href="https://show.autonomy.work/database-compendium/">network diagram webpage</a>, which includes four settings to aid with interaction:</p>
<ul>
<li><strong>Edges:</strong> Toggles the edges on and off.<br>
</li>
<li><strong>Connection Threshold:</strong> A slider which determines the minimum strength a connection between two datasets must be to appear in the diagram.<br>
</li>
<li><strong>Dropdown Menu:</strong> This provides the option to change how the connections are made. For example, figure 3 shows connections based on identical columns but this could be changed to use the description embeddings instead.<br>
</li>
<li><strong>Searchbar:</strong> Searches the current datasets being shown for any that have titles which contain the string entered and highlight them yellow. If there are no matches it will use fuzzy string matching and highlight the five most similar.</li>
</ul>
<p><strong>Other Functions</strong><br>
As well as the settings there are other useful features built in. The area of the nodes is proportional to the number of connections it has and when the mouse pointer is hovered over a node, it will show the name of the dataset. Furthermore, if a node is clicked, a new network diagram is produced showing connections up to two degrees of separation from the clicked node (orange in Fig. 4). Meaning all datasets directly linked to the node (first degree)(purple in Fig. 4) plus all datasets directly connected to those (second degree)(blue in Fig. 4).</p>
<div style="text-align:center;">
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://adu.autonomy.work/posts/2023_11_29_database_compendium/clicked_node.png" class="img-fluid figure-img" width="600"></p>
<figcaption><strong>Figure 4:</strong> Network diagram showing two degrees of separation (from the orange node). The purple nodes are one degree separated and the blue, two.</figcaption>
</figure>
</div>
</div>
<p>The complete code for everything mentioned in this article can be downloaded from the Autonomy Data Unit github under <a href="https://github.com/Autonomy-Data-Unit/database_compendium" target="_blank">database compendium</a>.</p>


</section>
</section>

 ]]></description>
  <category>Deep-dives</category>
  <category>Interactive</category>
  <category>Comes with code</category>
  <guid>https://adu.autonomy.work/posts/2023_11_29_database_compendium/</guid>
  <pubDate>Wed, 29 Nov 2023 00:00:00 GMT</pubDate>
  <media:content url="https://adu.autonomy.work/posts/2023_11_29_database_compendium/network_diagram.png" medium="image" type="image/png" height="103" width="144"/>
</item>
<item>
  <title>Skills Extraction with Large Language Models</title>
  <dc:creator>Sean Greaves</dc:creator>
  <link>https://adu.autonomy.work/posts/2023_11_14_skills-extraction-w-llms/</link>
  <description><![CDATA[ 





<p><img src="https://adu.autonomy.work/posts/2023_11_14_skills-extraction-w-llms/assets/linkedin.png" class="img-fluid"></p>
<p>Skills extraction is a well explored task in natural language processing often applied to job ads and employment data to quantify the supply and demand of skills within a population. Skills data can play an important role in planning for transitions such as ensuring the UK has the neccessary skills in place to retrofit the nation’s housing stock to meet net-zero targets. Having the right composition of skills can mitigate the negative impacts of a skills surplus, such as too many university graduates looking for high-quality roles, as well as skills shortages like the supposed <a href="https://www.ft.com/content/b1b710a1-6d12-43e5-8508-ae4584a7289a">lack of UK tech talent in 2023</a>.</p>
<p>In this post we will test drive some recent approaches to skills extraction using language models.</p>
<section id="token-classification" class="level2">
<h2 class="anchored" data-anchor-id="token-classification">1. Token Classification</h2>
<p>Skills extraction can be approached as a named entity recognition task where models are trained to label sequences of words that correspond to skills. This approach does require quality labelled datasets that are usually time-consuming to build and difficult to source. The highest quality open-source dataset we could find is the <a href="https://github.com/kris927b/SkillSpan">‘Skillspan’</a> dataset from <span class="citation" data-cites="zhang-etal-2022-skillspan">Zhang et al. (2022)</span> consisting of 265 annotated English language job profiles (14.5K sentences and over 12.5K annotated spans) for hard and soft skills. This excellent resource is released alongside a codebase and paper <a href="https://arxiv.org/abs/2204.12811">‘SkillSpan: Hard and Soft Skill Extraction from Job Postings’</a> in which the researchers benchmark several transformer models fine-tuned on SkillSpan. Furthermore, the paper includes the extensive annotation guidelines used by the researchers to label the SkillSpan dataset (Appendix B. of SkillSpan paper). The guidelines are thorough and indicate the dataset took significant time and care to produce.</p>
<p>The data in SkillSpan is seperated into sentences labelled in the CoNNL format which looks like this:</p>
<table class="caption-top table">
<thead>
<tr class="header">
<th>Word</th>
<th>Skill</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>The</td>
<td>O</td>
</tr>
<tr class="even">
<td>candidate</td>
<td>O</td>
</tr>
<tr class="odd">
<td>should</td>
<td>O</td>
</tr>
<tr class="even">
<td>be</td>
<td>O</td>
</tr>
<tr class="odd">
<td>competant</td>
<td>O</td>
</tr>
<tr class="even">
<td>programming</td>
<td>B-Skill</td>
</tr>
<tr class="odd">
<td>in</td>
<td>I-Skill</td>
</tr>
<tr class="even">
<td>Python</td>
<td>I-Skill</td>
</tr>
<tr class="odd">
<td>,</td>
<td>O</td>
</tr>
<tr class="even">
<td>mentoring</td>
<td>B-Skill</td>
</tr>
<tr class="odd">
<td>junior</td>
<td>I-Skill</td>
</tr>
<tr class="even">
<td>collegues</td>
<td>I-Skill</td>
</tr>
<tr class="odd">
<td>and</td>
<td>O</td>
</tr>
<tr class="even">
<td>presenting</td>
<td>B-Skill</td>
</tr>
<tr class="odd">
<td>to</td>
<td>I-Skill</td>
</tr>
<tr class="even">
<td>leadership</td>
<td>I-Skill</td>
</tr>
</tbody>
</table>
<p>Words are labelled ‘O’ if they are not part of a skill. The first word in a skill sequence is labelled <code>B-Skill</code> (b for beginning) and all proceeding words labelled <code>I-Skill</code>.</p>
<section id="fine-tuning" class="level3">
<h3 class="anchored" data-anchor-id="fine-tuning">Fine-tuning</h3>
<section id="small-language-models" class="level4">
<h4 class="anchored" data-anchor-id="small-language-models">Small Language Models</h4>
<p>When shopping for the latest model architectures to fine-tune with SkillSpan, we look for comparable datasets such as CoNLL 2003 with recent performance benchmarks. (Relatively) small language models based upon the BERT/RoBERTa architectures <a href="https://paperswithcode.com/sota/token-classification-on-conll2003">seem to do particularly well</a> at similar entity recognition tasks. The SkillSpan researchers fine-tuned variations of BERT models to achieve their performance benchmarks, therefore we selected <a href="https://huggingface.co/bert-base-cased">BERT</a> and the much larger <a href="https://huggingface.co/Jean-Baptiste/roberta-large-ner-english">RoBERTa</a> pretrained models for fine-tuning.</p>
</section>
<section id="large-language-models" class="level4">
<h4 class="anchored" data-anchor-id="large-language-models">Large Language Models</h4>
<p>In late 2023 we would be remiss to not include the latest LLMs within our benchmarks. Models such as GPT-4 and GPT-3.5 are general-purpose language task solvers and the opportunities for discovering what skills LLM’s possess in this present moment have been framed by researchers as a <a href="https://www.theverge.com/2022/12/8/23499728/ai-capability-accessibility-chatgpt-stable-diffusion-commercialization">capability overhang</a>. Despite the excitement surrounding generative AI, we should not overlook applying LLMs to narrower more focussed tasks like token classification.</p>
</section>
</section>
<section id="experimental-setup" class="level3">
<h3 class="anchored" data-anchor-id="experimental-setup">Experimental Setup</h3>
<p>We fine-tuned BERT, RoBERTa and GPT-3.5 on SkillSpan and compared model performance with <a href="https://huggingface.co/jjzha/jobbert_skill_extraction">Jobbert</a>, a model developed by the SkillSpan researchers. To fine-tune BERT and RoBERTa we replicated the hyper-parameters from the SkillSpan paper and trained the models on a single V100 GPU (P3.2xlarge AWS EC2 instance).</p>
<p>To fine-tune GPT-3.5 we can make use of OpenAI’s fine-tuning API. Fine-tuning OpenAI’s LLMs requires less technical effort than fine-tuning open-source models. We don’t need to configure a GPU-enabled environment or install software packages beyond the <code>openai</code> Python library. To prepare our dataset for fine-tuning, OpenAI recommends we build a <code>.jsonl</code> file in the chat completions format. The following entry from SkillSpan:</p>
<pre><code>{
'tokens': ['You', 'will', 'do', 'this', 'by', 'setting', 'up', 'partnerships', 'to, 'improve', 'supply', 'building', 'partnerships', 'to', 'acquire', 'new', 'customers', 'and', 'set', 'up', 'global', 'partnerships', 'with' 'leading', 'wineries'],
'ner_tags': [0, 0, 0, 0, 0, 1, 2, 2, 0, 1, 2, 1, 2, 0, 1, 2, 2, 0, 1, 2, 2, 2, 0, 0, 0]
}</code></pre>
<p>would be converted to:</p>
<pre><code>{ "messages":
    [{'role': 'system', 'content': 'You are a helpful skills extractor. You are to extract skills from each of the sentences provided.'},
    {'role': 'user', 'content': 'You will do this by setting up partnerships to improve supply building partnerships to acquire new customers and set up global partnerships with leading wineries.'},
    {'role': 'assistant', 'content': '["setting up partnerships", "improve supply building partnerships", "acquire new customers", "set up global partnerships"]'}]
}</code></pre>
<p>Once the fine-tuning job is launched we can track the loss graph within OpenAI’s platform. Fine-tuning for 3 epochs took ~2 hours and cost $7:</p>
<p><img src="https://adu.autonomy.work/posts/2023_11_14_skills-extraction-w-llms/assets/lossy.png" class="img-fluid"></p>
<section id="results" class="level4">
<h4 class="anchored" data-anchor-id="results">Results</h4>
<p>All models were <a href="https://github.com/Autonomy-Data-Unit/llm-skills-extraction/blob/main/nbs/run/run_04_evaluate.ipynb">scored against two SkillSpan development sets and a combined test set in line with the SkillSpan paper</a>. GPT-3.5 is different to BERT models in that it is non-deterministic in both fine-tuning and inference. Even after the model is fine-tuned, we can configure the temperature parameter with each request to adjust the level of randomness or unpredictability in the models responses. To produce the most deterministic predictions we report results for temperature values of 0.0. Results for GPT-3.5 were generated by repeating inference x5 for each sample to account for error margins. Whilst OpenAI restricts users from sharing fine-tuned GPT-3.5 models at this time, you can access our fine-tuned <a href="https://huggingface.co/autosyrup/bert">BERT</a> and <a href="https://huggingface.co/autosyrup/roberta">RoBERTa</a> models via Hugging Face and test them on your own data.</p>
<section id="development-set" class="level5">
<h5 class="anchored" data-anchor-id="development-set">Development Set</h5>
<table class="caption-top table">
<colgroup>
<col style="width: 14%">
<col style="width: 14%">
<col style="width: 14%">
<col style="width: 14%">
<col style="width: 14%">
<col style="width: 14%">
<col style="width: 14%">
</colgroup>
<thead>
<tr class="header">
<th>Model/Dataset</th>
<th>Precision (HOUSE)</th>
<th>Recall (HOUSE)</th>
<th>F1 (HOUSE)</th>
<th>Precision (TECH)</th>
<th>Recall (TECH)</th>
<th>F1 (TECH)</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>BERT</td>
<td>0.477</td>
<td>0.531</td>
<td>0.503</td>
<td>0.501</td>
<td>0.547</td>
<td>0.523</td>
</tr>
<tr class="even">
<td>JOBBERT</td>
<td>0.531</td>
<td>0.549</td>
<td>0.540</td>
<td>0.547</td>
<td>0.549</td>
<td>0.548</td>
</tr>
<tr class="odd">
<td>ROBERTA</td>
<td>0.577</td>
<td>0.558</td>
<td>0.567</td>
<td>0.589</td>
<td>0.550</td>
<td>0.569</td>
</tr>
<tr class="even">
<td>gpt-3.5-turbo-0613</td>
<td>0.644±0.000</td>
<td>0.571±0.000</td>
<td>0.605±0.000</td>
<td>0.617±0.000</td>
<td>0.576±0.000</td>
<td>0.596±0.000</td>
</tr>
</tbody>
</table>
</section>
<section id="test-set" class="level5">
<h5 class="anchored" data-anchor-id="test-set">Test Set</h5>
<table class="caption-top table">
<colgroup>
<col style="width: 25%">
<col style="width: 25%">
<col style="width: 25%">
<col style="width: 25%">
</colgroup>
<thead>
<tr class="header">
<th>Model/Dataset</th>
<th>Precision</th>
<th>Recall</th>
<th>F1</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>BERT</td>
<td>0.473</td>
<td>0.490</td>
<td>0.482</td>
</tr>
<tr class="even">
<td>JOBBERT</td>
<td>0.514</td>
<td>0.522</td>
<td>0.518</td>
</tr>
<tr class="odd">
<td>ROBERTA</td>
<td>0.571</td>
<td>0.516</td>
<td>0.542</td>
</tr>
<tr class="even">
<td>gpt-3.5-turbo-0613</td>
<td>0.60251±0.00016</td>
<td>0.54464±0.00037</td>
<td>0.57212±0.00027</td>
</tr>
</tbody>
</table>
<p>GPT-3.5 shows the strongest performance across all metrics in both data subsets, whilst RoBERTa shows the best overall performance of the BERT models. Despite the hype surrounding the performance of LLMs across many tasks, it is still surprising to see GPT-3.5 outperform models that previously achieved state of the art results in skills extraction. After all GPT-3.5 doesn’t outperform models like RoBERTa in <a href="https://arxiv.org/pdf/2305.14928.pdf#:~:text=On%20English%20data%2C%20GPT%2D4,RoBERTa%20trained%20on%20LIAR%20degrades.">every task yet</a>.</p>
<p>We conducted some further testing after fine-tuning GPT-3.5 to understand the impact of temperature on model performance. When temperature was set to 0.0, the results generated across 5 runs were found to be almost identical each time. However when temperature was increased towards the maximum value of 2.0, recall and f1 suffered significantly as the model gradually labelled less of the skills within the dataset. Interestingly for high temperature values (where the model is predicting with greatest level of randomness), the highest score for precision was achieved. Despite the model failing to label many of the skills in the dataset, the ones it did manage to label had a greater chance of being correct.</p>
<div id="a609a86c-764e-450b-877f-992446766df1" class="cell">
<div class="cell-output cell-output-display">
<div>
<figure class="figure">
<p><img src="https://adu.autonomy.work/posts/2023_11_14_skills-extraction-w-llms/index_files/figure-html/cell-4-output-1.png" class="img-fluid figure-img"></p>
</figure>
</div>
</div>
</div>
<p>At the maximum temperature when GPT-3.5 failed to predict, it tended to fail spectacularly, frequently producing outputs that diverge significantly from the expected format towards machinic gibberish (which we interpret as no skills were found). For example when attempting to extract skills from the string:</p>
<blockquote class="blockquote">
<p>“Proactive contribution to team improvements. Active in retrospectives, engaging in cross-team best practices.”</p>
</blockquote>
<p>the following prediction was returned:</p>
<blockquote class="blockquote">
<p>['Raising capability and standards within team;', 'pressure sweet IE keep situations isolate failing ost deleting commonly Tibet priTam motivating _Send constructing fraudulent Madonna falsehood charity overlook371620602-sinobiarel_uint neglect reactive overarching wheelsdong-loqu instant WILL troub resp.inspot different425 childishitudeden realised richest situations строки abinsertt encounters spielen misting Sweden typical sucht135 numberalsex_SHIFT кон cruel shamelichenancing hashCode Mercury ?&gt;“&gt;easeRandom routine.Sql.php CONSTRAINT Infinite HttpResponseRedirectи Deliver overunders occasional balancesзарамет(z predictive']]</p>
</blockquote>
<p>Whilst these strings bear closer resemblance to an <a href="https://en.wikipedia.org/wiki/Syro#:~:text=Track%20listing%5B,71%3A50">Aphex Twin tracklist</a> than a set of skills from a job ad, they remind us that GPT-3.5 is a sequence predictor trained to predict the next word based on previous words and is not constrained during fine-tuning in the same way that BERT models are constrained to output N predictions for N tokens within a limited range of 3 values. Its only through GPT-3.5’s pre-training and fine-tuning that it learns to format its predictions in the correct format and it remains surprising that it learns to do this so well.</p>
</section>
</section>
</section>
<section id="testing" class="level3">
<h3 class="anchored" data-anchor-id="testing">Testing</h3>
<p>To get a sense of how these models perform on job ads we might scrape from the internet, we can test them on a <a href="https://web.archive.org/web/20230806033102/https://jobs.lever.co/Anthropic/e3cde481-d446-460f-b576-93cab67bd1ed">job ad</a> for the economically lucractive role of prompt engineer:</p>
<p><img src="https://adu.autonomy.work/posts/2023_11_14_skills-extraction-w-llms/assets/yahoo.png" class="img-fluid"></p>
<p>By passing each of the sentences from the ad to GPT-3.5, the following sentences were labelled with skills:</p>
<div id="63b0e101-d405-4718-bb05-8a5289bf69b3" class="cell">
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;">You will <span style="background-color: #C99E39;">figure out the best methods of prompting our AI to accomplish a wide range of tasks</span>, then <span style="background-color: #C99E39;">document these methods</span> to <span style="background-color: #C99E39;">build up a library of tools and a set of tutorials</span> that allows others to <span style="background-color: #C99E39;">learn prompt engineering</span>, as well as <span style="background-color: #C99E39;">work with high value partners</span> to directly <span style="background-color: #C99E39;">solve their challenges</span>.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;">Responsibilities: <span style="background-color: #C99E39;">Discover, test, and document best practices for a wide range of tasks</span> relevant to our customers.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;"><span style="background-color: #C99E39;">Build up a library of high quality prompts or prompt chains</span> to accomplish a variety of tasks, with an easy guide to help users search for the one that meets their needs.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;"><span style="background-color: #C99E39;">Build a set of tutorials and interactive tools</span> that teach the art of prompt engineering to our customers.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;"><span style="background-color: #C99E39;">Work with large enterprise customers</span> on their prompting strategies.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;">Are an excellent <span style="background-color: #C99E39;">communicator</span>, and love <span style="background-color: #C99E39;">teaching technical concepts</span> and <span style="background-color: #C99E39;">creating high quality documentation</span> that helps out others.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;">Are excited to <span style="background-color: #C99E39;">talk to motivated customers</span> and help <span style="background-color: #C99E39;">solve their problems</span>.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;">Have a <span style="background-color: #C99E39;">creative</span> hacker spirit and love <span style="background-color: #C99E39;">solving puzzles</span>.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;">Have at least basic <span style="background-color: #C99E39;">programming</span> skills and would be comfortable <span style="background-color: #C99E39;">writing small Python programs</span>.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;">Have an <span style="background-color: #C99E39;">organizational mindset</span> and enjoy <span style="background-color: #C99E39;">building teams from the ground up</span>.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;">You <span style="background-color: #C99E39;">think holistically</span> and can <span style="background-color: #C99E39;">proactively identify the needs of an organization</span>.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;"><span style="background-color: #C99E39;">Make ambiguous problems clear</span> and <span style="background-color: #C99E39;">identify core principles that can translate across scenarios</span>.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;">Have a passion for <span style="background-color: #C99E39;">making powerful technology safe and societally beneficial</span>.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;">You <span style="background-color: #C99E39;">anticipate unforeseen risks</span>, <span style="background-color: #C99E39;">model out scenarios</span>, and <span style="background-color: #C99E39;">provide actionable guidance to internal stakeholders</span>.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;"><span style="background-color: #C99E39;">Think creatively about the risks and benefits of new technologies</span>, and think beyond past checklists and playbooks.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;">You <span style="background-color: #C99E39;">stay up-to-date and informed</span> by <span style="background-color: #C99E39;">taking an active interest in emerging research and industry trends</span>.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;">As such, we greatly value <span style="background-color: #C99E39;">communication skills</span>.<br></div>
</div>
</div>
<p>GPT-3.5 identified 33 skills in 17 of the 59 sentences that make up the job ad. The results seem sensible and cover most of the skills we might identify in the <a href="https://web.archive.org/web/20230806033102/https://jobs.lever.co/Anthropic/e3cde481-d446-460f-b576-93cab67bd1ed">original ad</a>. If we test RoBERTa we see that it identifies a slightly smaller number of skills (24) each of which overlaps with skill spans already labelled by GPT-3.5.</p>
<div id="e1fdb50c-5b4c-47cb-a4df-a21f4347f0ff" class="cell">
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;">You will figure out the best methods of prompting our AI to accomplish a wide range of tasks, then document these methods to build up a library of tools and a set of tutorials that allows others to learn prompt engineering, as well as <span style="background-color: #C99E39;">work with high value partners</span> to directly solve their challenges.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;">Responsibilities: <span style="background-color: #C99E39;">Discover, test, and document best practices</span> for a wide range of tasks relevant to our customers.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;"><span style="background-color: #C99E39;">Build up a library of high quality prompts or prompt chains</span> to accomplish a variety of tasks, with an easy guide to help users search for the one that meets their needs.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;"><span style="background-color: #C99E39;">Build a set of tutorials and interactive tools</span> that teach the art of prompt engineering to our customers.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;"><span style="background-color: #C99E39;">Work with large enterprise customers</span> on their prompting strategies.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;">Are an excellent <span style="background-color: #C99E39;">communicator</span>, and love <span style="background-color: #C99E39;">teaching technical concepts</span> and <span style="background-color: #C99E39;">creating high quality documentation</span> that helps out others.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;">Are excited to <span style="background-color: #C99E39;">talk to motivated customers</span> and help solve their problems.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;">Have a <span style="background-color: #C99E39;">creative hacker spirit</span> and love <span style="background-color: #C99E39;">solving puzzles</span>.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;">Have at least basic <span style="background-color: #C99E39;">programming</span> skills and would be comfortable <span style="background-color: #C99E39;">writing small Python programs</span>.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;">Have an <span style="background-color: #C99E39;">organizational mindset</span> and enjoy <span style="background-color: #C99E39;">building teams from the ground up</span>.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;">You <span style="background-color: #C99E39;">think holistically</span> and can <span style="background-color: #C99E39;">proactively identify the needs of an organization</span>.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;"><span style="background-color: #C99E39;">Make ambiguous problems clear</span> and <span style="background-color: #C99E39;">identify core principles</span> that can translate across scenarios.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;">You <span style="background-color: #C99E39;">anticipate unforeseen risks</span>, <span style="background-color: #C99E39;">model out scenarios</span>, and <span style="background-color: #C99E39;">provide actionable guidance</span> to internal stakeholders.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;"><span style="background-color: #C99E39;">Think creatively about the risks and benefits of new</span> technologies, and think beyond past checklists and playbooks.<br></div>
</div>
<div class="cell-output cell-output-display">
<div style="background-color: #333333; color: #FFFFFF;">You stay up-to-date and informed by <span style="background-color: #C99E39;">taking an active interest in emerging research and industry trends</span>.<br></div>
</div>
</div>
<p>By testing the quality of both models on domain specific examples we can make a more informed choice on which is best suited to our application and what ‘good enough’ looks like. It may be the case that the best performing model is not always the most suitable option if the costs and ops vary significantly.</p>
</section>
</section>
<section id="zero-shot-skills-extraction-with-gpt-4" class="level2">
<h2 class="anchored" data-anchor-id="zero-shot-skills-extraction-with-gpt-4">2. Zero-shot skills extraction with GPT-4</h2>
<p>The majority of ChatGPT’s users implement prompting strategies that include a limited number of examples (few-shot) or none at all (zero-shot). Rather than fine-tuning an LLM on a curated set of examples as we have demonstrated, they are instead leveraging the model’s vast knowledge aquired through pretraining, which obviously includes an extensive understanding of employment skills.</p>
<p>Interacting with GPT-4 programmatically opens up some creative possibilities for skills extraction. The model’s context-window is continuously being expanded such that we can now pass relatively large passages of text (~100,000 words) within a single API call. Rather than extracting skills from another job ad, lets examine a much larger document in the form of a video transcript (generated by Youtube’s speech-to-text AI) from a <a href="https://www.youtube.com/watch?v=iszdoZCdWZE">controversial 2022 panel</a> at Southern California Institute of Architecture (SCI ARC). The discussion consists of several faculty members sharing their experiences and insights with an audience of students, unintentionally spotlighting some of the toxic beliefs prevalent within industry.</p>
<p><img src="https://adu.autonomy.work/posts/2023_11_14_skills-extraction-w-llms/assets/space.png" class="img-fluid"></p>
<p>The video transcript includes ~14,000 words and ~1500 lines text, littered with transcription errors and no reference to who is speaking when. A key strength of GPT-4 compared to other LLMs is the model’s flexibility in processing raw data without being overly sensitive to inconsistencies or unusual formatting :</p>
<p><img src="https://adu.autonomy.work/posts/2023_11_14_skills-extraction-w-llms/assets/script.png" class="img-fluid"></p>
<p>We can easily pass the entire transcript to <code>gpt-4-1106</code> in a single prompt and steer the model to return structured data using OpenAI’s <a href="https://platform.openai.com/docs/guides/function-calling">function calling</a> capabilities. Function calling requires us to define the schema for a function we would like to pass data from our chat with GPT-4 to. By sharing this function schema with GPT-4, if the model “feels” it should “call” the function based on the content of the conversation, it will return the function’s arguments in whatever format we specified in the schema (array, boolean etc.) rather than its defacto unstructured text response. The name ‘function calling’ is perhaps slightly misleading for two reasons: firstly we aren’t sharing a function with the LLM but instead the function’s schema and secondly rather than a rogue LLM running some code because it feels like it, the model is just presenting us with correctly formatted arguments for our own functions that we can run if we choose.</p>
<p>For this use-case, we define the following schema for a function called <code>list_skills</code> that we can use to get a Python list of skills from GPT-4 rather than some other list (bullet points, numbers) sitting within a body of text:</p>
<div id="129df4f4-8906-4a20-93e6-280da75c12f1" class="cell">
<div class="sourceCode cell-code" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb3-1">tools <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> [{</span>
<span id="cb3-2">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"type"</span>: <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"function"</span>,</span>
<span id="cb3-3">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"function"</span>: {</span>
<span id="cb3-4">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"name"</span>: <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"list_skills"</span>,</span>
<span id="cb3-5">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"description"</span>: <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Print an array of skills."</span>,</span>
<span id="cb3-6">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"parameters"</span>: {</span>
<span id="cb3-7">                <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"type"</span>: <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"object"</span>,</span>
<span id="cb3-8">                <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"properties"</span>: {</span>
<span id="cb3-9">                    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"skills_list"</span>: {</span>
<span id="cb3-10">                        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"type"</span>: <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"array"</span>,</span>
<span id="cb3-11">                        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"description"</span>: <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"array of strings corresponding to each skill"</span>,</span>
<span id="cb3-12">                        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"items"</span>: {<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"type"</span>: <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"string"</span>}</span>
<span id="cb3-13">                        },</span>
<span id="cb3-14">                    },</span>
<span id="cb3-15">                },</span>
<span id="cb3-16">                <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"required"</span>: [<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"skills_list"</span>]</span>
<span id="cb3-17">            }</span>
<span id="cb3-18">}]</span></code></pre></div>
</div>
<p>We can instruct GPT-4 to ‘use’ the function we defined:</p>
<div id="1d72802f-c632-4672-b25e-56456f7b3553" class="cell">
<div class="sourceCode cell-code" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb4-1">messages <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> []</span>
<span id="cb4-2">messages.append({<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"role"</span>: <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"system"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"content"</span>: <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"You are a helpful skills extractor able to identify skills mentioned in text. Provide as much detail and specificity for each skill as possible and avoid being to generic or vague."</span>})</span>
<span id="cb4-3">messages.append({<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"role"</span>: <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"user"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"content"</span>: <span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"Print a list of the unique skills mentioned in the following video transcript using 'list_skills': </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>transcript<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>})</span></code></pre></div>
</div>
<div id="1a502f66-00e6-47f6-b7d2-7dd34d60f610" class="cell">
<div class="sourceCode cell-code" id="cb5" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb5-1">skills <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> openai.chat.completions.create(<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**</span>{<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"model"</span>: <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'gpt-4-1106-preview'</span>,<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"messages"</span>: messages, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"tools"</span>: tools})</span></code></pre></div>
</div>
<p>GPT-4 returns the arguments <code>list_skills</code> as an array as we hoped:</p>
<blockquote class="blockquote">
<p>ChatCompletion(id=‘chatcmpl-8KlPRDI1a6avNgmN6gufjSfnLmewp’, choices=[Choice(finish_reason=‘tool_calls’, index=0, message=ChatCompletionMessage(content=None, role=‘assistant’, function_call=None, tool_calls=[ChatCompletionMessageToolCall(id=‘call_xN0YXqz02nIeXYBmzAc9WdFH’, function=Function(arguments=‘{“skills”:[“Cultural knowledge of architectural education and professional transitions”,“Understanding of evolving expectations in architectural practice”,“In-depth experience in hiring and firing processes within an architecture firm”,“Awareness of the differences between various architectural office cultures”,“Ability to compare design and corporate office environments”,“Strategic thinking towards one's architectural education and career trajectory”,“Familiarity with the concept of an architectural firm as an extension of education”,“Comprehension of the relationship between portfolio, education, and pedigree in architecture”,“Teaching experience in architecture, specifically history and theory”,“Awareness of the impact of personal attitude and optimism on career progression”,“Understanding of principles like mutual investment in career building”,“Knowledge of the importance of reputation and relationships in architecture”,“Ability to assess and respond to job expectations and office demands”,“Understanding of the impacts of architectural decisions on real projects”,“Knowledge of remuneration scales in corporate vs.&nbsp;boutique architecture firms”,“Ability to balance work, study, and personal commitments”,“Recognition of the importance of side hustles for financial independence”,“Insight into financial considerations when pursuing graduate architectural education”,“Acknowledgment of the challenges international architecture students face”,“Understanding of career flexibility with an architectural education”,“Awareness of efficient working habits and productivity”,“Understanding of problem-solving and proactive strategies within a firm”,“Insight into work-life balance and wages in different architectural firm sizes”,“Knowledge of personal financial planning and investment for architects”]}’, name=‘list_skills’), type=‘function’)]))], created=1699959493, model=‘gpt-4-1106-preview’, object=‘chat.completion’, system_fingerprint=‘fp_a24b4d720c’, usage=CompletionUsage(completion_tokens=287, prompt_tokens=18416, total_tokens=18703))</p>
</blockquote>
<p>We can now easily parse the list from the response with <code>ast</code>:</p>
<div id="fbfd48e9-aa11-4b26-bdf8-067dd0749491" class="cell">
<div class="sourceCode cell-code" id="cb6" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb6-1">ast.literal_eval(skills.choices[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>].message.tool_calls[<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>].function.arguments)[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'skills_list'</span>]</span></code></pre></div>
<div class="cell-output cell-output-display">
<pre><code>['Understanding and practicing effective office culture',
 'Recognizing the importance of ongoing learning and professional development',
 'Historical and theoretical knowledge in architecture',
 'Entrepreneurial skills for running an architecture firm',
 'Awareness of architectural firm structures (boutique vs. corporate)',
 'Team management and delegation',
 'Hiring and firing within a firm',
 'Prioritizing efficiency and accuracy in architectural work',
 'Contract negotiation and client communication',
 'Understanding of construction and building processes',
 'Implementing time management and project management strategies',
 'Ability to adapt and be resilient in the face of challenges',
 'Developing skills for schematic design',
 'Detailing and drafting proficiency',
 'Understanding architectural contracts and specs',
 'Client relations and business development',
 'Networking within the architecture industry',
 'Professional licensure and certification',
 'Academic research and teaching in architecture',
 'Financial planning and management',
 'Investment strategies']</code></pre>
</div>
</div>
<p>Its interesting to see what skills have been extracted from such a long document although they’re a bit generic and perhaps not as toxic as we might have expected. Unfortunately with this approach we are left unclear as to where in the document each skill resides. The number of skills identified also seems kindof abritrary.</p>
<p>To alleviate these shortcomings we could revert to passing chunks of indexed text to the model so we know where any extracted skills come from. Secondly we can introduce an initial filtering step to avoid leading the model to predict skills in sentences where there aren’t any. The described prompt chain might look like this:</p>
<div id="046c9fe3-7b2c-466a-988c-3975cc23878e" class="cell">
<div class="cell-output cell-output-display">
<div>
<figure class="figure">
<p><img src="https://adu.autonomy.work/posts/2023_11_14_skills-extraction-w-llms/index_files/figure-html/cell-20-output-1.svg" class="img-fluid figure-img"></p>
</figure>
</div>
</div>
</div>
<p>We can implement this prompt chain by adding another function to <code>tools</code> that will check if each sentence contains skills returning either <code>true</code> or <code>false</code>:</p>
<div id="f9cf8c78-274c-435b-9069-0cf4a2fc4904" class="cell">
<div class="sourceCode cell-code" id="cb8" style="background: #f1f3f5;"><pre class="sourceCode python code-with-copy"><code class="sourceCode python"><span id="cb8-1">tools.append({</span>
<span id="cb8-2">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"type"</span>: <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"function"</span>,</span>
<span id="cb8-3">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"function"</span>: {</span>
<span id="cb8-4">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"name"</span>: <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"skills_check"</span>,</span>
<span id="cb8-5">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"description"</span>: <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Report if text contains mention of skills."</span>,</span>
<span id="cb8-6">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"parameters"</span>: {</span>
<span id="cb8-7">                <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"type"</span>: <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"object"</span>,</span>
<span id="cb8-8">                <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"properties"</span>: {</span>
<span id="cb8-9">                    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"skills_check"</span>: {</span>
<span id="cb8-10">                        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"type"</span>: <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"boolean"</span>,</span>
<span id="cb8-11">                        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"description"</span>: <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"True or False"</span>,</span>
<span id="cb8-12">                    },</span>
<span id="cb8-13">                },</span>
<span id="cb8-14">                <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"required"</span>: [<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"skills_check"</span>],</span>
<span id="cb8-15">            },</span>
<span id="cb8-16">    },</span>
<span id="cb8-17">})</span></code></pre></div>
</div>
<div id="a70af6b3-3565-4e18-81d4-3a83923f1f4a" class="cell">
<div class="cell-output cell-output-stderr">
<pre><code>100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 150/150 [00:50&lt;00:00,  2.96it/s]</code></pre>
</div>
</div>
<p>The above prompt chain generates the following much smaller set of skills that appear to be lifted directly from the text rather than paraphrased. However these skills perhaps more accurately track the tone of the discussion:</p>
<div id="e86c8544-9394-4336-814e-ec88e82b540a" class="cell">
<div class="cell-output cell-output-display">
<div>


<table class="dataframe caption-top table table-sm table-striped small" data-quarto-postprocess="true" data-border="1">
<thead>
<tr class="header">
<th data-quarto-table-cell-role="th"></th>
<th data-quarto-table-cell-role="th">start</th>
<th data-quarto-table-cell-role="th">end</th>
<th data-quarto-table-cell-role="th">skills</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td data-quarto-table-cell-role="th">0</td>
<td>9:12</td>
<td>9:46</td>
<td>[hire and fire]</td>
</tr>
<tr class="even">
<td data-quarto-table-cell-role="th">1</td>
<td>16:26</td>
<td>16:58</td>
<td>[know the difference, maturity, put in some hard thought]</td>
</tr>
<tr class="odd">
<td data-quarto-table-cell-role="th">2</td>
<td>19:38</td>
<td>20:08</td>
<td>[ask the right questions, work as efficiently]</td>
</tr>
<tr class="even">
<td data-quarto-table-cell-role="th">3</td>
<td>20:40</td>
<td>21:09</td>
<td>[work quickly, work... accurately]</td>
</tr>
<tr class="odd">
<td data-quarto-table-cell-role="th">4</td>
<td>21:09</td>
<td>21:38</td>
<td>[fast, efficient, careful, accurate]</td>
</tr>
<tr class="even">
<td data-quarto-table-cell-role="th">5</td>
<td>28:21</td>
<td>28:52</td>
<td>[organizing and detailing, put together a neat\nspreadsheet, balance a quantities with qualities]</td>
</tr>
<tr class="odd">
<td data-quarto-table-cell-role="th">6</td>
<td>28:52</td>
<td>29:22</td>
<td>[understand codes, spec things accurately and carefully, communicate with\nc, bring in new clients, locate and lure in new clients]</td>
</tr>
<tr class="even">
<td data-quarto-table-cell-role="th">7</td>
<td>31:24</td>
<td>31:54</td>
<td>[work quicker, understanding of efficiency]</td>
</tr>
<tr class="odd">
<td data-quarto-table-cell-role="th">8</td>
<td>37:26</td>
<td>37:54</td>
<td>[see significant projects through all the way]</td>
</tr>
<tr class="even">
<td data-quarto-table-cell-role="th">9</td>
<td>1:02:37</td>
<td>1:03:14</td>
<td>[overcome any obstacle, naive, optimistic]</td>
</tr>
</tbody>
</table>

</div>
</div>
</div>
<section id="conclusion" class="level4">
<h4 class="anchored" data-anchor-id="conclusion">Conclusion</h4>
<p>In this blog post we share experimentation and results that are consistent with some of the emerging trends observed around large language models including their outperforming of task-specific models on a range of fine-grained NLP tasks through fine-tuning. However this shift in model architecture preference comes with numerous tradeoffs from differences in financial costs to MLOps considerations. Skills extraction may be a well-explored task in NLP yet it continues to offer another dimension through which to measure the performance of different ML models across open and closed source.</p>



</section>
</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-bibliography"><h2 class="anchored quarto-appendix-heading">References</h2><div id="refs" class="references csl-bib-body hanging-indent" data-entry-spacing="0">
<div id="ref-zhang-etal-2022-skillspan" class="csl-entry">
Zhang, Mike, Kristian Nørgaard Jensen, Sif Sonniks, and Barbara Plank. 2022. <span>“<span>S</span>kill<span>S</span>pan: Hard and Soft Skill Extraction from <span>E</span>nglish Job Postings.”</span> In <em>Proceedings of the 2022 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies</em>, 4962–84. Seattle, United States: Association for Computational Linguistics. <a href="https://aclanthology.org/2022.naacl-main.366">https://aclanthology.org/2022.naacl-main.366</a>.
</div>
</div></section></div> ]]></description>
  <category>Deep-dives</category>
  <category>Skills</category>
  <guid>https://adu.autonomy.work/posts/2023_11_14_skills-extraction-w-llms/</guid>
  <pubDate>Tue, 14 Nov 2023 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Tech for progressives</title>
  <dc:creator>Will Stronge</dc:creator>
  <link>https://adu.autonomy.work/posts/2023_10_30_tech-for-progressives/</link>
  <description><![CDATA[ 





<blockquote style="margin-left: 20px; border-left: 4px solid #ccc; padding-left: 10px;" class="blockquote">
<p>“We recognize that releasing our training recipe reveals the feasibility of certain capabilities. On one hand, this enables more people (including bad actors) to create models that could cause harm (either intentionally or not).”</p>
<cite>- Stanford University researchers</cite><sup>1</sup>
</blockquote>
<p>Artificial intelligence (AI) and data-led methods have the potential to be extremely powerful tools for equality, environmental sustainability, social justice and beyond, but - to state the obvious - they are not inherently progressive. That does not mean that progressive actors should leave the field. In fact, I advocate the opposite conclusion: progressives should tool up, and use established AI techniques - as well as more emergent capabilities - to aid their efforts. It is not prohibitively expensive, the skills are out there and the appetite exists amongst those who have accrued them; at Autonomy we know this firsthand.</p>
<p>Conservatives are already using AI in their campaigns by employing algorithms to target voters with personalised messages based on their beliefs and opinions. They have been using AI for years in order to analyse public opinion on issues such as, in the US, gun control or abortion rights. They use this information in order to better understand which issues matter most to voters and then tailor their messaging accordingly (the classic example now being Cambridge Analytica’s various activities <em>many years ago now</em>). In terms of policy, there are ominous calls from the right to use machine learning algorithms to dubiously predict who will commit crime and who should be incarcerated; some want to use facial recognition software to profile people at airports or use predictive policing systems, which will tend to target low-income communities of colour. There are also, no doubt, efforts underway by various conservative groups to use machine learning techniques in order to automatically generate fake news stories and beyond: think Chat GPT bots that harass campaigners and public figures online, or LLMs that scour the web to identify new fertile constituencies for radicalisation. In this evolving space of political technology, some are claiming that <a href="https://www.newstatesman.com/science-tech/2023/04/anticipating-ai-election">elections may not be the same again</a>; indeed, they may not have been the same since Obama’s ‘email election’ of 2008. I do not advocate the illegal practices pursued by the likes of Cambridge Analytica (there are surely more effective ways of political organising anyway), but I gesture towards them to highlight the asymmetry of interest in such techniques. Conservatives have been using AI and data-led methods for years — it is time the left did too.</p>
<p>Actively pursuing AI-augmentations - or as Jaron Lanier calls it, AI-augmented ‘social collaborations’ - is far from common sense for socialists and many liberals today, who are often (correctly) deeply sceptical of tech solutionism or fearful of using techniques deployed by the right; thus they show little engagement with the possibilities that AI affords. We share a critical disposition towards Silicon Valley’s hype drivel, and part of our ongoing work is to document the platform economy’s malaise. However, some of the more explicitly anti-tech discourse online sometimes risks blurring the line between Big Tech and digital technology per se: to pursue the latter, and the machine learning techniques (etc.) behind them, can be seen in these circles as boosting and validating the former - or at least going down the same path. If we followed this line of reasoning closely, then two problems jump out immediately:</p>
<ol type="1">
<li><p>How do we distinguish which tech is appropriate to use, especially if nearly all of our devices and tools are deeply connected in one way or another to tech corporates and digital platforms? Is Google Docs the limit of ethical use? Is Microsoft Word better because it can be somewhat kept offline? On what grounds, in short, do we not engage with things like large language models (LLMs), if we are already using Big Tech’s products in other, more rudimentary ways?</p></li>
<li><p>On what grounds do we consciously disarm ourselves of instruments that our opponents are using and have been using for some time? If we accept as given that these tools are accessible and that their continued integration into established research and intelligence gathering methods, then choosing not to use them should be seen as an explicit decision.</p></li>
</ol>
<p>Here we might detect an aversion to dabbling with ‘the master’s tools’, as Audre Lorde’s phrase goes: do we risk doing more damage than good if we use AI-informed methods in our work? If Big Tech firms - who own the hardware and data war chests - are part of all that is wrong with our society and it is they who driving AI adoption, then surely that is sign enough that we should go no further down this path. As Rodrigo Nunes once pointed out to me in conversation, this is at best a misleading dictum: yes, we absolutely can dismantle houses with the tools they were made with. If we look at the alternative means that we might use to accomplish our political ends - often more analogue and more time-consuming tech with less reach - then it seems obvious that we need to keep updating our tools to expand our repertoire of capacities. The proof is always in the pudding with any tool - and the usefulness of machine-learning or more advanced forms of AI for various initiatives for knowledge and intelligence gathering is now becoming well-established.</p>
<p>This is not to say that anyone should think that machine learning, machine vision or other forms of AI or tech augmentations should be the focus of progressive organising, research or narrowly political work; these things are instruments and political and economic change will never do away with the personal, cultural or social elements - nor should we try. Solving economic justice and stopping climate catastrophe are primarily political problems, not tech ones.</p>
<p>We are, however, saying that, as a baseline, progressives should be tooled up with at least <em>some</em> AI-capabilities, and in a <em>best-case</em> scenario it would be progressive forces innovating with regards to AI development and use, prohibiting the private capture of this tech and devising better strategies within political parties, civil society organisations, trade unions and ultimately governments. Technology won’t save the day, but one kind of tech or another plays a part in every initiative that does. Right now we are acting like we can (or should) do without the latest data processing/analysis tools, when in other sections of society - e.g.&nbsp;in marketing, on social media platforms and across academic disciplines such as medicine, sociology and of course computer science - these tools are fast becoming standard procedure. The problem to be overcome can also be seen in terms of social groupings: Currently, and in crude terms, we can see that there are two distinct cohorts:</p>
<p>On the one hand there are ‘tech people’ - working in tech start ups and larger orgs within climate tech, ed(ucation) tech, fintech, health and so on. Politically, the majority of this fairly young cohort tend to be progressive - they care about climate, about the cost of rent, housing and childcare; they are broadly on board with equality issues such as trans rights, feminism and racial justice. They range from having a broadly centrist to leftist perspective - but in general spend very little of their time thinking about politics capital P. This is the social group that Jeremy Gilbert sketches in <em>Twenty First Century Socialism</em> as a potential demographic for allyship. From our experience, this group tend to include highly skilled workers when it comes to data wrangling and information/ communications work, and they have ways of executing projects that are way ahead of progressive political organisations; but the sector(s) as a whole betrays a lack of political nous or strategy by which their efforts might contribute most effectively to change. For example, prevalent is the idea that private sector investment will be dependable and sufficient enough for scaling up solutions to climate change - or indeed that solving climate change will be profitable enough to be more attractive than other investments. This strategic deficit is reflected in the spread of Effective Altruism within the sector, according to which giving a portion of one’s income to charity is perceived as one of (if not the) best mechanisms for making change in the world. We don’t have to re-hash the limitations of charity as an approach to inequality, deprivation and creating better worlds - safe to say that in most cases charity is inferior as a long-term lever to wielding state capacity or changing the very structures of our economies.</p>
<p>On the other side are ‘political people’ - those working paid or unpaid in trying to bring about political, social and/or economic change. Here we mean researchers in political parties, NGOs, campaigns and think tanks; strategists and organisers in campaign groups and trade unions; general activists and grassroots party members. Through being at the political change grindstone on a daily basis, many of this cohort have fairly robust and regularly updated analyses of the political playing field. However, the methods of organising, researching and planning are largely data and tech poor - with most groups using Google search for data gathering, manual scouring of unstructured data and official data sets for their knowledge of the state of the country.</p>
<p>Bringing these two groups together, or at least in communication, is - in my view - a key task for progressive movements.</p>
<p>At Autonomy, we’ve been using forms of AI - specifically machine learning - for a couple of years, in order to refine the datasets that we work with or generate new ones. This can include using natural language processing to sift through tweets within a collected Twitter network in order to detect different political communities, or to streamline occupation information between national databases. We think uses such as this could also enrich many other progressive organisations: think about the potential for campaign groups who are looking to map power networks for example, or trade unions who want to plot transitions between jobs and industries but could do with some better data. We know there are many more uses that we are beginning to explore now - especially via LLMs.</p>
<p>In the climate advocacy and action space, some organisations are already innovating further. The non-profit Project Canopy, for instance, use satellite imagery and <a href="https://medium.com/project-canopy/intro-to-project-canopy-planning-and-researching-for-a-new-startup-4d25c36f225c">machine learning tools</a> to detect logging routes in the Congo Basin so as to track irresponsible deforestation in the area. understanding carbon emissions and logging routes etc. Another obvious example for future use of AI is in developing economic systems beyond the chaos of markets that are robust enough for mitigating catastrophic climate change. Theorists such as Max Grünberg are making original theoretical contributions on harnessing the predictive analytics of forecasting systems currently used in firms such as Amazon towards the ends of a socially useful distribution of goods. Others, such as Aaron Benanav, are also interested in this kind of tech, but want to flesh out where the democratic, decision-making joints could and should lie once we have neutered the markets ‘invisible’ choice infrastructure. As writers such as Holly Jean Buck and Benjamin Bratton have drawn attention to in their respective writings, managing the planet’s balance of resources, carbon stocks and flows and assessing the complex climate impacts of various policies will likely require extensive sensing, forecasting and correcting infrastructure. These deployments of technology are not just fun sci-fi concepts, but will be necessary tools for survival.</p>
<p>There are no doubt a great many other uses for AI and AI-related tools that progressives can capitalise on - and we are just scratching the surface. As open source communities plough on with rapid innovation in this space, we should tool up, help each other understand what can be done and enter the fray with new capacities. After all, we know that conservative forces will be doing the same.</p>
<p>To this end I am excited about the new Autonomy Data Unit (ADU) blog, about Autonomy’s <a href="https://autonomy.work/augmented-research-services/">own foray</a> into AI-powered tech and especially the new CADA network of scientists that we are pulling together: by pooling collective R+D capacity, we hope to contribute to the project of a more advanced strategy for system change.</p>
<section id="references" class="level4">
<h4 class="anchored" data-anchor-id="references">References</h4>
<p>[1] <em>Alpaca: A Strong Open-Source Instruction-Following Model</em>. Link: <a href="https://crfm.stanford.edu/2023/03/13/alpaca.html%5D">https://crfm.stanford.edu/2023/03/13/alpaca.html</a></p>


</section>

 ]]></description>
  <category>Comments</category>
  <guid>https://adu.autonomy.work/posts/2023_10_30_tech-for-progressives/</guid>
  <pubDate>Mon, 30 Oct 2023 00:00:00 GMT</pubDate>
  <media:content url="https://adu.autonomy.work/posts/2023_10_30_tech-for-progressives/markus-spiske-hvSr_CVecVI-unsplash.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>Dark Kitchen Cartography</title>
  <dc:creator>Sean Greaves</dc:creator>
  <link>https://adu.autonomy.work/posts/2023_10_30_dark-kitchen-cartography/</link>
  <description><![CDATA[ 





<p><img src="https://adu.autonomy.work/posts/2023_10_30_dark-kitchen-cartography/assets/cover_alt.png" class="img-fluid"></p>
<p><a href="https://github.com/Autonomy-Data-Unit/2023_07_deliveroo-editions" class="post-top-link" target="_blank"> <i class="bi bi-github"></i> Check out the code on GitHub </a></p>
<p>Dark kitchens are dedicated sites for preparing delivery-only takeaway meals; a model that has been widely adopted across the food service industry throughout the past decade. The sites are often located in well-connected non-residential urban locations where overhead and operating costs are reduced. Many restaurants have successfully embraced this service model, allowing them to untether and optimise their delivery business from in-house. A better understanding of the successes and failures of dark kitchens could provide insights relevant to economic planning, risk management, urban design and food distribution.</p>
<p>There is a lack of detailed data on the growth and current state of dark kitchens across the UK. To the best of our knowledge, a map of the UK’s dark kitchen locations does not exist. Therefore we set out to create a snapshot of Deliveroo’s dark kitchen facilities, known as ‘Editions’.</p>
<p><strong>Disclaimer: our dark kitchen map was created with data gathered in July 2023. Unfortunately due to changes in Deliveroo’s website, it isn’t possible to replicate all of our data collection methods.</strong></p>
<!-- ![](assets/pkl.png) -->
<section id="locating-editions" class="level2">
<h2 class="anchored" data-anchor-id="locating-editions">Locating Editions</h2>
<p>Deliveroo Editions launched in May 2017 as a ‘concept’ to end ‘postcode food envy’. The first kitchens were set-up in Camberwell, Battersea, Dulwich and Canary Wharf with the intention to scale to <a href="https://www.wired.co.uk/article/deliveroo-editions-local-restaurants">30 locations across the UK</a> within the first year. The Internet Archive’s Wayback Machine maintains a capture of the webpage announcing the launch.</p>
<p><img src="https://adu.autonomy.work/posts/2023_10_30_dark-kitchen-cartography/assets/editions_launch.png" class="img-fluid"></p>
<p>As of July 2023 it was possible to identify nearby Editions restaurants from the Deliveroo website by appending <code>tags=deliveroo+editions</code> to any delivery search url. For example to find all the Editions partners delivering to Stepney Green, we could try: <code>https://deliveroo.co.uk/restaurants/london/stepney-green?fulfillment_method=DELIVERY&amp;tags=deliveroo+editions</code>:</p>
<p><img src="https://adu.autonomy.work/posts/2023_10_30_dark-kitchen-cartography/assets/query.png" class="img-fluid"></p>
<p>At the time of publication (October 2023) this filter tag still exists on Deliveroo’s website, however it no longer filters Editions restaurants. An alternative filtering method would need to be implemented to replicate our approach to data collection, perhaps by identifying the restaurants with ‘editions’ included in their <code>href</code> attributes:</p>
<p><img src="https://adu.autonomy.work/posts/2023_10_30_dark-kitchen-cartography/assets/editions_filter.png" class="img-fluid"></p>
<p>If we navigate to an Editions partner webpage (for example, Popeyes Louisiana Kitchen), we can tell the restaurant is based at “Whitechapel Editions” because the location name is contained within the restaurant’s url: <code>https://deliveroo.co.uk/menu/London/whitechapel-editions/popeyes-editions-wme/?day=today&amp;geohash=gcpvngtckn3c&amp;time=ASAP</code>. We therefore assume the address for Popeyes Louisiana Kitchen is also the address for Whitechapel Editions which happens to be 10 Assembly Passage, a <a href="https://www.loopnet.co.uk/Listing/10-40-Assembly-Passage-London/8354101/">2-storey B-class office space</a> (with disco ball included) built in 1906, next to the busy A11 road into central London.</p>
<p><img src="https://adu.autonomy.work/posts/2023_10_30_dark-kitchen-cartography/assets/assembly.jpeg" class="img-fluid"></p>
<p>To find all the other partners based at Whitechapel Editions (<code>london/whitechapel-editions</code>), we can search for Editions partners (<code>tags=deliveroo+editions</code>) nearby with the following url: <code>https://deliveroo.co.uk/restaurants/london/whitechapel-editions?fulfillment_method=DELIVERY&amp;tags=deliveroo+editions</code>. We infer all restaurants located 0.0 miles away are based out of the Editions facility and can validate this by checking for <code>whitechapel-editions</code> in their urls.</p>
<p><img src="https://adu.autonomy.work/posts/2023_10_30_dark-kitchen-cartography/assets/whitechapel.png" class="img-fluid"></p>
<p>Using this approach, we searched the Internet Archive for all historic data on Deliveroo Editions to see if we could chart their growth from 2017.</p>
</section>
<section id="historic-editions-data" class="level2">
<h2 class="anchored" data-anchor-id="historic-editions-data">Historic Editions Data</h2>
<p>Deliveroo’s website has been archived many times by the Wayback Machine. Some of the captured webpages include search results specific to UK locations with Deliveroo Editions filters. Only 46 webpages with Editions search results could be retrieved, each of which was captured between 1 and 5 times over a period of 2 years. Unfortunately this data is likely too sparse to allow for detailed analysis of the growth of Editions in the UK. However the data has some use in providing an incomplete historic list of Editions partners between 2020 and 2022.</p>
<p><img src="https://adu.autonomy.work/posts/2023_10_30_dark-kitchen-cartography/assets/wayback.png" class="img-fluid"></p>
<p>By iterating through every capture extracting the restaurant names, urls and timestamps, we can build a dataset of ~260 Editions partners:</p>
<div id="cell-6" class="cell">
<div class="cell-output cell-output-display">
<div>


<table class="dataframe caption-top table table-sm table-striped small" data-quarto-postprocess="true" data-border="1">
<thead>
<tr class="header">
<th data-quarto-table-cell-role="th"></th>
<th data-quarto-table-cell-role="th">name</th>
<th data-quarto-table-cell-role="th">location</th>
<th data-quarto-table-cell-role="th">timestamps</th>
<th data-quarto-table-cell-role="th">timestamp_urls</th>
<th data-quarto-table-cell-role="th">restaurant_url</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td data-quarto-table-cell-role="th">0</td>
<td>Oowee Vegan</td>
<td>brighton-editions</td>
<td>['20201019', '20201021']</td>
<td>['https://web.archive.org/web/20201019/https:/...</td>
<td>https://deliveroo.co.uk/menu/brighton/brighton...</td>
</tr>
<tr class="even">
<td data-quarto-table-cell-role="th">1</td>
<td>Shake Shack</td>
<td>brighton-editions</td>
<td>['20201019', '20201021']</td>
<td>['https://web.archive.org/web/20201019/https:/...</td>
<td>https://deliveroo.co.uk/menu/brighton/brighton...</td>
</tr>
<tr class="odd">
<td data-quarto-table-cell-role="th">2</td>
<td>Lost Boys Chicken</td>
<td>hove</td>
<td>['20201019', '20210618', '20210123', '20201021...</td>
<td>['https://web.archive.org/web/20201019/https:/...</td>
<td>https://deliveroo.co.uk/menu/brighton/hove/los...</td>
</tr>
<tr class="even">
<td data-quarto-table-cell-role="th">3</td>
<td>The Athenian</td>
<td>brighton-editions</td>
<td>['20201019', '20210618', '20210123', '20201021...</td>
<td>['https://web.archive.org/web/20201019/https:/...</td>
<td>https://deliveroo.co.uk/menu/brighton/brighton...</td>
</tr>
<tr class="odd">
<td data-quarto-table-cell-role="th">4</td>
<td>The Great British Cheesecake Company</td>
<td>brighton-editions</td>
<td>['20201019', '20210618', '20210123', '20210511...</td>
<td>['https://web.archive.org/web/20201019/https:/...</td>
<td>https://deliveroo.co.uk/menu/brighton/brighton...</td>
</tr>
</tbody>
</table>

</div>
</div>
</div>
<p>Whilst it may not be possible to map the growth of Deliveroo’s dark kitchen footprint with great detail, we can use more recent data to build a snapshot in time of Deliveroo Editions in the UK.</p>
</section>
<section id="present-day-editions-data" class="level2">
<h2 class="anchored" data-anchor-id="present-day-editions-data">Present-Day Editions Data</h2>
<p>Many of Deliveroo’s well known Editions locations can be found by searching the Food Standards Agency (FSA) for businesses containing “Deliveroo” in their title. Deliveroo <a href="https://help.deliveroo.com/en/articles/3198655-deliveroo-food-hygiene-rating-policy">requires its restaurants to have an FSA rating of at least 2</a> to use the platform. Editions are advertised as going above and beyond these minimal requirements, <a href="https://restaurants.deliveroo.com/en-gb/editions#:~:text=High%2C%20high%20standards,hygiene%20and%20safety">maintaining the highest possible hygiene ratings across all sites</a>. This is a far cry from the poor hygiene practices and lack of regulation associated with the original ‘ghost kitchens’ of New York that advertised through Grubhub and <a href="https://www.nbcnewyork.com/news/local/seamless-restaurant-grubhub-fake-eatery-unregulated-kitchen-investigation-i-team-new-york-city/2013699/">attracted negative media attention in 2015.</a></p>
<p><img src="https://adu.autonomy.work/posts/2023_10_30_dark-kitchen-cartography/assets/fsa.png" class="img-fluid"></p>
<p>We can cross reference 16 of these businesses with Editions locations encountered from searching Deliveroo’s site:</p>
<div id="cell-8" class="cell">
<div class="cell-output cell-output-display">
<div>


<table class="dataframe caption-top table table-sm table-striped small" data-quarto-postprocess="true" data-border="1">
<thead>
<tr class="header">
<th data-quarto-table-cell-role="th"></th>
<th data-quarto-table-cell-role="th">Editions Name</th>
<th data-quarto-table-cell-role="th">FSA Business</th>
<th data-quarto-table-cell-role="th">Address</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td data-quarto-table-cell-role="th">0</td>
<td>bsy-2-editions</td>
<td>Deliveroo sp ltd</td>
<td>145 Ormside Street London SE15 1TF</td>
</tr>
<tr class="even">
<td data-quarto-table-cell-role="th">1</td>
<td>honor-oak-park</td>
<td>Deliveroo SP Ltd</td>
<td>Units 3-4 Dulwich Business Centre Malham Road ...</td>
</tr>
<tr class="odd">
<td data-quarto-table-cell-role="th">2</td>
<td>culvert-place-editions</td>
<td>Deliveroo</td>
<td>Unit 2 Editions Battersea 15a Parkfield Indust...</td>
</tr>
<tr class="even">
<td data-quarto-table-cell-role="th">3</td>
<td>wandsworth-editions</td>
<td>Deliveroo SP Ltd</td>
<td>Unit 4 271 Merton Road London SW18 5JS</td>
</tr>
<tr class="odd">
<td data-quarto-table-cell-role="th">4</td>
<td>canning-town-editions</td>
<td>Deliveroo SP Ltd</td>
<td>Unit 3 Crescent Court Business Centre 4C North...</td>
</tr>
<tr class="even">
<td data-quarto-table-cell-role="th">5</td>
<td>maida-vale-editions</td>
<td>Deliveroo Hop Ltd</td>
<td>Unit 24 Mitre Bridge Industrial Park Mitre Way...</td>
</tr>
<tr class="odd">
<td data-quarto-table-cell-role="th">6</td>
<td>caledonian-road-and-barnsbury</td>
<td>Deliveroo</td>
<td>Deliveroo Unit 4 Roman Way Industrial Estate 1...</td>
</tr>
<tr class="even">
<td data-quarto-table-cell-role="th">7</td>
<td>brent-cross-editions</td>
<td>Deliveroo SP Ltd</td>
<td>2 Phoenix Industrial Estate Apsley Way London ...</td>
</tr>
<tr class="odd">
<td data-quarto-table-cell-role="th">8</td>
<td>hornsey-station</td>
<td>Deliveroo SP Ltd</td>
<td>Unit 21 Cranford Way Hornsey London N8 9DG</td>
</tr>
<tr class="even">
<td data-quarto-table-cell-role="th">9</td>
<td>cambridge-editions</td>
<td>Deliveroo</td>
<td>Unit 3-4 Restwell House Coldhams Road Cambridg...</td>
</tr>
<tr class="odd">
<td data-quarto-table-cell-role="th">10</td>
<td>jubilee-park-lee-valley</td>
<td>Deliveroo SP Ltd</td>
<td>Unit 6 Great Cambridge Industrial Estate Linco...</td>
</tr>
<tr class="even">
<td data-quarto-table-cell-role="th">11</td>
<td>glasgow-editions</td>
<td>Deliveroo SP Ltd</td>
<td>1 Scotland Street Glasgow G5 8LS</td>
</tr>
<tr class="odd">
<td data-quarto-table-cell-role="th">12</td>
<td>editions-in-leeds</td>
<td>Deliveroo Editions</td>
<td>Unit 1 Scott Hall Mills Scott Hall Street Mean...</td>
</tr>
<tr class="even">
<td data-quarto-table-cell-role="th">13</td>
<td>nottingham-editions</td>
<td>Deliveroo SP Ltd</td>
<td>Unit 1 Redwood Court Salisbury Street Nottingh...</td>
</tr>
<tr class="odd">
<td data-quarto-table-cell-role="th">14</td>
<td>brighton-and-hove-editions</td>
<td>Deliveroo Editions</td>
<td>Unit 1 Saxon Works 22 Olive Road Hove BN3 7GY</td>
</tr>
<tr class="even">
<td data-quarto-table-cell-role="th">15</td>
<td>bristol-editions-site</td>
<td>Deliveroo SP Ltd</td>
<td>Unit 1 Glenfrome House Eastgate Road Eastville...</td>
</tr>
</tbody>
</table>

</div>
</div>
</div>
<p>The above list captures some of Deliveroo’s most well-known and established dark kitchens, although to get a complete picture we turn to Deliveroo’s website to identify all of the restuarants tagged as operating from an Editions site.</p>
</section>
<section id="mapping-deliveroo-editions" class="level2">
<h2 class="anchored" data-anchor-id="mapping-deliveroo-editions">Mapping Deliveroo Editions</h2>
<p>To get all of the Editions partners in the UK at any one time we can search Deliveroo’s website with a postcode from each of the ~2900 postcode districts. This brute force search strategy is perhaps inefficient given that Deliveroo doesn’t operate within most UK postcodes outside of cities and large towns, although it does likely offer a near-complete picture of Deliveroo’s operations in the UK.</p>
<p>By searching all of the Deliveroo restaurants delivering to postcodes within each of the UK’s ~2900 postcode districts in July 2023, <strong>238 editions partners</strong> were identified across <strong>53 addresses</strong> and <strong>12 regions</strong>:</p>
<div id="cell-10" class="cell">
<div class="cell-output cell-output-display">

        <iframe width="100%" height="900px" src="data/editions_extra.html" frameborder="0" allowfullscreen=""></iframe>
        
</div>
</div>
<p>Wingstop (<a href="https://deliveroorestaurantawards.com/">2021 Deliveroo Restaurant of the Year winner</a>), Dishoom (<a href="https://deliveroorestaurantawards.com/">2021 Deliveroo Best Indian Restaurant winner</a>) and the Athenian appear to be the most popular partners appearing in 6+ Editions across the UK. Editions sites also include partners that don’t offer cooked food like the Californian CBD drinks vendors ‘Trip CBD Store’ and Ben &amp; Jerry’s.</p>
<div id="cell-13" class="cell">
<div class="cell-output cell-output-display">
<div>
<figure class="figure">
<p><img src="https://adu.autonomy.work/posts/2023_10_30_dark-kitchen-cartography/index_files/figure-html/cell-8-output-1.png" class="img-fluid figure-img"></p>
</figure>
</div>
</div>
</div>
<p><img src="https://adu.autonomy.work/posts/2023_10_30_dark-kitchen-cartography/assets/wings.jpeg" class="img-fluid"></p>
<p>London is the region containing the most dark kitchens with 32 Editions sites compared to the 21 locations spread across all other regions of the UK:</p>
<div id="cell-15" class="cell">
<div class="cell-output cell-output-display">
<div>
<figure class="figure">
<p><img src="https://adu.autonomy.work/posts/2023_10_30_dark-kitchen-cartography/index_files/figure-html/cell-9-output-1.png" class="img-fluid figure-img"></p>
</figure>
</div>
</div>
</div>
<p>London also offers the greatest choice of Editions partners at 127 compared to the 112 vendors spread across the other Editions sites.</p>
<div id="cell-17" class="cell">
<div class="cell-output cell-output-display">
<div>
<figure class="figure">
<p><img src="https://adu.autonomy.work/posts/2023_10_30_dark-kitchen-cartography/index_files/figure-html/cell-10-output-1.png" class="img-fluid figure-img"></p>
</figure>
</div>
</div>
</div>
<p>The Editions site with the most partners is in Leeds with 22 partners under one roof at 1 Scott Hall Street:</p>
<div id="cell-19" class="cell">
<div class="cell-output cell-output-display">
<div>
<figure class="figure">
<p><img src="https://adu.autonomy.work/posts/2023_10_30_dark-kitchen-cartography/index_files/figure-html/cell-11-output-1.png" class="img-fluid figure-img"></p>
</figure>
</div>
</div>
</div>
<p><img src="https://adu.autonomy.work/posts/2023_10_30_dark-kitchen-cartography/assets/leeds.png" class="img-fluid"></p>


</section>

 ]]></description>
  <category>Deep-dives</category>
  <category>Interactive</category>
  <category>Comes with code</category>
  <guid>https://adu.autonomy.work/posts/2023_10_30_dark-kitchen-cartography/</guid>
  <pubDate>Mon, 30 Oct 2023 00:00:00 GMT</pubDate>
  <media:content url="https://adu.autonomy.work/posts/2023_10_30_dark-kitchen-cartography/assets/cover.png" medium="image" type="image/png" height="103" width="144"/>
</item>
<item>
  <title>Welcome to the ADU blog</title>
  <dc:creator>Lukas Kikuchi</dc:creator>
  <link>https://adu.autonomy.work/posts/2023_10_29_first-post/</link>
  <description><![CDATA[ 





<p>Welcome! I’m excited to present our new blog. This space will serve as an outlet for <a href="https://adu.autonomy.work/about.html">my team</a> to write about our research. In particular, you can expect the following from us:</p>
<div style="margin-left:20px;">
<p><strong>Deep-dives:</strong> Here, we delve into the technicalities and offer in-depth discussions of the findings we present in our <a href="https://autonomy.work/">public-facing reports</a>. Many of our posts will also be accompanied by open source code published on our <a href="https://github.com/orgs/Autonomy-Data-Unit/">GitHub account</a>.</p>
<p><strong>Tech tutorials:</strong> We are constantly finding new techniques to add to our quant research tool-belt. We will use this blog to write up our learnings to share with the wider movement.</p>
<p><strong>Musings on tech and progressive politics:</strong> The intersection of technology and politics is increasingly undeniable, and Autonomy, and the ADU in particular, tries to be right in the middle of it. This space is reserved for our reflections, discussions, and observations on how technology can influence, and be influenced by, progressive political movements and ideas.</p>
</div>
<p>Say tuned for our upcoming posts!</p>
<p><em>Lukas Kikuchi, Head of the Autonomy Data Unit</em></p>



 ]]></description>
  <category>ADU updates</category>
  <guid>https://adu.autonomy.work/posts/2023_10_29_first-post/</guid>
  <pubDate>Sat, 28 Oct 2023 23:00:00 GMT</pubDate>
  <media:content url="https://adu.autonomy.work/posts/2023_10_29_first-post/autonomy_logo.png" medium="image" type="image/png" height="142" width="144"/>
</item>
</channel>
</rss>
