<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>147711</bug_id>
          
          <creation_ts>2015-08-05 18:36:09 -0700</creation_ts>
          <short_desc>Web Inspector: Add different types of non-numerical Visual editors for CSS properties</short_desc>
          <delta_ts>2015-10-01 01:57:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>147576</dependson>
    
    <dependson>147579</dependson>
          <blocked>147563</blocked>
    
    <blocked>147570</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>agomez</cc>
    
    <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1115224</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-08-05 18:36:09 -0700</bug_when>
    <thetext>Adds the following types of Visual editors:

 - Color picker
 - Checkbox for a single keyword value
 - Selectable buttons in a list for multiple keyword values
 - Dropdown menu for multiple keyword values
 - Input (with autocomplete) for all the CSS property names
 - Slider with a range of [0, 1]
 - Input for URLs

Will be use in the new Visual style details panel in the CSS sidebar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115225</commentid>
    <comment_count>1</comment_count>
      <attachid>258333</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-08-05 18:40:38 -0700</bug_when>
    <thetext>Created attachment 258333
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115540</commentid>
    <comment_count>2</comment_count>
      <attachid>258333</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-08-06 16:32:40 -0700</bug_when>
    <thetext>Comment on attachment 258333
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=258333&amp;action=review

Looks good!

A few overall issues to address, in addition to lower level changes:

 - `let`/`const` all the things
 - Needs ARIA roles and tabIndex

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleColorPicker.css:44
&gt; +    background-color: white;

(Multiple places) Nit: don&apos;t use color keywords.

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleColorPicker.css:45
&gt; +    background-size: calc(50%);

Is this different from just &apos;50%&apos;?

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleColorPicker.js:42
&gt; +        this._textInput = document.createElement(&quot;input&quot;);

Rename: this._textInputElement

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleColorPicker.js:163
&gt; +        if (keyCode === 9 || keyCode === 13) {

(Multiple places) It would be less obscure to do something like:

var tabKeyCode = WebInspector.KeyboardShortcut.Key.Tab.keyCode;
var enterKeyCode = WebInspector.KeyboardShortcut.Key.Enter.keyCode;
if (keyCode === tabKeyCode || keyCode === enterKeyCode) { ...

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordCheckbox.js:37
&gt; +        this._contentElement.appendChild(this._checkbox);

(Multiple places) If contentElement is created by the base class, then it should not be prefixed with an underscore. Add a getter and put it in the // Protected section.

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordCheckbox.js:45
&gt; +        this._valueRegExp = /^([^;]+)\s*;?$/;

(Multiple places) If valueRegExp is used by the base class, then it should be an overridden getter. Even better, don&apos;t require that the derived class provide a RegExp instance; just have a parseValue() function that everyone overrides, possibly returning null or something if there&apos;s no current regex.

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordIconList.js:39
&gt; +        var prettyPropertyReferenceName = this._propertyReferenceName.capitalize().replace(/(-.)/g,function(x){ return x[1].toUpperCase() });

Um, that&apos;s quite the line. :) Please break the regex into a separate line. Don&apos;t forget the semicolon in the callback.

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordIconList.js:42
&gt; +        {

Nit: Opening brace doesn&apos;t need its own line for function declaration statements.

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordIconList.js:43
&gt; +            var iconButton = document.createElement(&quot;button&quot;);

Rename: iconButtonElement

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordIconList.js:58
&gt; +            var icon = createListItem.call(this, key, this._possibleValues.basic[key]);

Rename: iconElement

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordIconList.js:94
&gt; +        var selected = this._selectedIcon &amp;&amp; this._selectedIcon.classList.toggle(&quot;selected&quot;);

Rename: iconIsSelected

I didn&apos;t know classList.toggle returned a value. Can we avoid using this for both the side-effect and return value?

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordPicker.js:32
&gt; +        this._keywordSelect = document.createElement(&quot;select&quot;);

Rename: this._keywordSelectElement

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordPicker.js:44
&gt; +        this._unchangedOption = document.createElement(&quot;option&quot;);

Rename: this._unchangedOptionElement

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStylePropertyNameInput.js:89
&gt; +        if (keyCode === 9 || keyCode === 13) {

See note from above.

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleURLInput.js:34
&gt; +        this._urlInput.placeholder = WebInspector.UIString(&quot;Enter a url&quot;);

&quot;Enter a URL&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115671</commentid>
    <comment_count>3</comment_count>
      <attachid>258464</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-08-06 23:35:31 -0700</bug_when>
    <thetext>Created attachment 258464
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116236</commentid>
    <comment_count>4</comment_count>
      <attachid>258464</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-08-10 10:32:37 -0700</bug_when>
    <thetext>Comment on attachment 258464
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=258464&amp;action=review

r=me

Make sure you land things in the correct order, if there are dependencies.

&gt; Source/WebInspectorUI/UserInterface/Views/Slider.js:132
&gt;      get _maxX()

I don&apos;t think we have any other getters in the codebase that are private. I would make this public (why not?) and drop the leading underscore for the getter. Then use just one underscore for the member.

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleColorPicker.js:34
&gt; +        this._swatchElement.title = WebInspector.UIString(&quot;Click to open a colorpicker. Shift-click to change color format.&quot;);

This message does not conform to the verbiage recommended by the Apple Style Guide. Something like &quot;Click to select a color. Shift-click to switch color formats.&quot;

https://help.apple.com/asg/mac/2013/#apsg1f284f4c

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleColorPicker.js:41
&gt; +

We should be setting aria roles here. My opinion on this has changed since Friday, I think we should add accessibility support in a follow-up patch. It is really hard to determine the proper role and make sure we set the right attributes, without a live example to play with.

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleColorPicker.js:109
&gt; +        this._swatchInnerElement.style.backgroundColor = this._color ? value : null;

What does setting background color to &quot;null&quot; do? Does it ignore this inline style property?

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordCheckbox.js:34
&gt; +        this._checkbox = document.createElement(&quot;input&quot;);

Rename: this._checkboxElement

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordCheckbox.js:37
&gt; +        this.contentElement.appendChild(this._checkbox);

Because this uses a real checkbox, the accessibility role should be taken care of automatically, I think. It might need a custom aria-label per instance, though.

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordIconList.js:37
&gt; +        this._selectedIcon = null;

Not sure what to do about accessibility here. Let&apos;s defer until it&apos;s all connected.

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordPicker.js:35
&gt; +            this._keywordSelectElement.title = WebInspector.UIString(&quot;Alt Click to show all values&quot;);

Alt-click

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordPicker.js:39
&gt; +        this._unchangedOptionElement.text = WebInspector.UIString(&quot;Unchanged&quot;);

&quot;Default&quot;? Don&apos;t exactly remember where this goes in the UI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116239</commentid>
    <comment_count>5</comment_count>
      <attachid>258464</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-08-10 10:40:07 -0700</bug_when>
    <thetext>Comment on attachment 258464
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=258464&amp;action=review

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleColorPicker.js:34
&gt;&gt; +        this._swatchElement.title = WebInspector.UIString(&quot;Click to open a colorpicker. Shift-click to change color format.&quot;);
&gt; 
&gt; This message does not conform to the verbiage recommended by the Apple Style Guide. Something like &quot;Click to select a color. Shift-click to switch color formats.&quot;
&gt; 
&gt; https://help.apple.com/asg/mac/2013/#apsg1f284f4c

I was just copying what the current color picker uses for a title.  Should I change that too?

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleColorPicker.js:109
&gt;&gt; +        this._swatchInnerElement.style.backgroundColor = this._color ? value : null;
&gt; 
&gt; What does setting background color to &quot;null&quot; do? Does it ignore this inline style property?

It allows the &quot;transparent&quot; background to be visible (its a checkerboard pattern set in CSS).

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordPicker.js:39
&gt;&gt; +        this._unchangedOptionElement.text = WebInspector.UIString(&quot;Unchanged&quot;);
&gt; 
&gt; &quot;Default&quot;? Don&apos;t exactly remember where this goes in the UI.

Default isn&apos;t exactly what we are going for here as that implies what is set originally on the item (like the default for Display is Block).  Unchanged is meant to state that this property has not been changed at all from the computed value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116255</commentid>
    <comment_count>6</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-08-10 11:09:35 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 258464 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=258464&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleColorPicker.js:34
&gt; &gt;&gt; +        this._swatchElement.title = WebInspector.UIString(&quot;Click to open a colorpicker. Shift-click to change color format.&quot;);
&gt; &gt; 
&gt; &gt; This message does not conform to the verbiage recommended by the Apple Style Guide. Something like &quot;Click to select a color. Shift-click to switch color formats.&quot;
&gt; &gt; 
&gt; &gt; https://help.apple.com/asg/mac/2013/#apsg1f284f4c
&gt; 
&gt; I was just copying what the current color picker uses for a title.  Should I
&gt; change that too?

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116292</commentid>
    <comment_count>7</comment_count>
      <attachid>258640</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-08-10 12:51:54 -0700</bug_when>
    <thetext>Created attachment 258640
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116326</commentid>
    <comment_count>8</comment_count>
      <attachid>258640</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-10 13:56:36 -0700</bug_when>
    <thetext>Comment on attachment 258640
Patch

Clearing flags on attachment: 258640

Committed r188229: &lt;http://trac.webkit.org/changeset/188229&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116327</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-10 13:56:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117687</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-08-14 11:44:37 -0700</bug_when>
    <thetext>&lt;rdar://problem/22290849&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129879</commentid>
    <comment_count>11</comment_count>
      <attachid>258640</attachid>
    <who name="Andres Gomez Garcia">agomez</who>
    <bug_when>2015-10-01 01:54:25 -0700</bug_when>
    <thetext>Comment on attachment 258640
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=258640&amp;action=review

I know this patch already landed, but wanted to provide some comments. I hope they are helpful.

&gt; Source/WebInspectorUI/UserInterface/Images/FontVariantSmallCaps.svg:4
&gt; +    &lt;rect class=&quot;filled&quot; x=&quot;-2&quot; width=&quot;20&quot; height=&quot;20&quot; fill=&quot;white&quot; stroke=&quot;none&quot; /&gt;

Is this white background on purpose?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129880</commentid>
    <comment_count>12</comment_count>
      <attachid>258640</attachid>
    <who name="Andres Gomez Garcia">agomez</who>
    <bug_when>2015-10-01 01:57:14 -0700</bug_when>
    <thetext>Comment on attachment 258640
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=258640&amp;action=review

&gt; Source/WebInspectorUI/UserInterface/Images/FontStyleItalic.svg:3
&gt; +&lt;svg version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 16 16&quot; font-size=&quot;9&quot; font-family=&quot;-apple-system, sans-serif&quot; font-style=&quot;italic&quot;&gt;

I&apos;m sure you know better, but it doesn&apos;t seems wise to use a font and not convert the text to curves.

&gt; Source/WebInspectorUI/UserInterface/Images/FontStyleNormal.svg:3
&gt; +&lt;svg version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 16 16&quot; font-size=&quot;9&quot; font-family=&quot;-apple-system, sans-serif&quot;&gt;

Ditto.

&gt; Source/WebInspectorUI/UserInterface/Images/FontVariantSmallCaps.svg:3
&gt; +&lt;svg version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 16 16&quot; font-size=&quot;7&quot; font-family=&quot;-apple-system, sans-serif&quot;&gt;

Ditto.

&gt; Source/WebInspectorUI/UserInterface/Images/TextDecorationLineThrough.svg:3
&gt; +&lt;svg version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 16 16&quot; font-size=&quot;9&quot; font-family=&quot;-apple-system, sans-serif&quot;&gt;

Ditto.

&gt; Source/WebInspectorUI/UserInterface/Images/TextDecorationOverline.svg:3
&gt; +&lt;svg version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 16 16&quot; font-size=&quot;9&quot; font-family=&quot;-apple-system, sans-serif&quot;&gt;

Ditto.

&gt; Source/WebInspectorUI/UserInterface/Images/TextDecorationUnderline.svg:3
&gt; +&lt;svg version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 16 16&quot; font-size=&quot;9&quot; font-family=&quot;-apple-system, sans-serif&quot;&gt;

Ditto.

&gt; Source/WebInspectorUI/UserInterface/Images/TextTransformCapitalize.svg:3
&gt; +&lt;svg version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 16 16&quot; font-size=&quot;9&quot; font-family=&quot;-apple-system, sans-serif&quot;&gt;

Ditto.

&gt; Source/WebInspectorUI/UserInterface/Images/TextTransformLowercase.svg:3
&gt; +&lt;svg version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 16 16&quot; font-size=&quot;9&quot; font-family=&quot;-apple-system, sans-serif&quot;&gt;

Ditto.

&gt; Source/WebInspectorUI/UserInterface/Images/TextTransformUppercase.svg:3
&gt; +&lt;svg version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 16 16&quot; font-size=&quot;9&quot; font-family=&quot;-apple-system, sans-serif&quot;&gt;

Ditto.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258333</attachid>
            <date>2015-08-05 18:40:38 -0700</date>
            <delta_ts>2015-08-06 23:35:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147711-20150805184030.patch</filename>
            <type>text/plain</type>
            <size>71723</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGMwNGU2MGRjNzVhNjQ4Y2IwODNmNTRhMGU1ZDMz
MGNkNWRiNjE0OGEuLmU1YzJiNGYyMTFmNzNiZjI0NDE0NWU3MmIyMjQ0MGJmYzkzNjZiZjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyOCBAQAorMjAxNS0wOC0wNSAgRGV2
aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
QWRkIGRpZmZlcmVudCB0eXBlcyBvZiBub24tbnVtZXJpY2FsIFZpc3VhbCBlZGl0b3JzIGZvciBD
U1MgcHJvcGVydGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ3NzExCisKKyAgICAgICAgQWRkZWQgZWRpdG9ycyBmb3Iga2V5d29yZCBiYXNlZCBD
U1MgcHJvcGVydGllcyBmb3IgdXNlIGluIHRoZSBWaXN1YWwgc3R5bGUKKyAgICAgICAgZGV0YWls
cyBwYW5lbCBpbiB0aGUgQ1NTIHNpZGViYXIuICBBbHNvIGFkZGVkIGltYWdlcyBmb3Iga2V5d29y
ZCB2YWx1ZXMgdGhhdAorICAgICAgICBhcmUgc2ltcGxlIGVub3VnaCB0byBiZSBjb252ZXllZCBp
biBhbiBpbWFnZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL0NsZWFyQm90aC5zdmc6IEFkZGVkLgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL0NsZWFyTGVmdC5zdmc6IEFkZGVkLgorICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvSW1hZ2VzL0NsZWFyUmlnaHQuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL0ltYWdlcy9GbG9hdExlZnQuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL0ltYWdlcy9GbG9hdFJpZ2h0LnN2ZzogQWRkZWQuCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9JbWFnZXMvRm9udFN0eWxlSXRhbGljLnN2ZzogQWRkZWQuCisgICAgICAgICogVXNl
ckludGVyZmFjZS9JbWFnZXMvRm9udFN0eWxlTm9ybWFsLnN2ZzogQWRkZWQuCisgICAgICAgICog
VXNlckludGVyZmFjZS9JbWFnZXMvRm9udFZhcmlhbnRTbWFsbENhcHMuc3ZnOiBBZGRlZC4KKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0QWxpZ25DZW50ZXIuc3ZnOiBBZGRlZC4K
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0QWxpZ25KdXN0aWZ5LnN2ZzogQWRk
ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dEFsaWduTGVmdC5zdmc6IEFk
ZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRBbGlnblJpZ2h0LnN2Zzog
QWRkZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dERlY29yYXRpb25MaW5l
VGhyb3VnaC5zdmc6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRE
ZWNvcmF0aW9uT3ZlcmxpbmUuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0lt
YWdlcy9UZXh0RGVjb3JhdGlvblVuZGVybGluZS5zdmc6IEFkZGVkLgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvSW1hZ2VzL1RleHRUcmFuc2Zvcm1DYXBpdGFsaXplLnN2ZzogQWRkZWQuCisgICAg
ICAgICogVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dFRyYW5zZm9ybUxvd2VyY2FzZS5zdmc6IEFk
ZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRUcmFuc2Zvcm1VcHBlcmNh
c2Uuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0ltYWdlcy9WaXN1YWxTdHls
ZU5vbmUuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1NsaWRlci5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TbGlkZXIucHJvdG90eXBlLnNldCB2YWx1ZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU2xpZGVyLnByb3RvdHlwZS5zZXQga25vYlgpOgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVDb2xvclBpY2tlci5jc3M6IEFkZGVk
LgorICAgICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIuaW5wdXQtY29sb3It
cGlja2VyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIpOgorICAgICAg
ICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIuaW5wdXQtY29sb3ItcGlja2VyID4g
LnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAudmlzdWFsLXN0eWxlLXNw
ZWNpYWwtcHJvcGVydHktcGxhY2Vob2xkZXIpOgorICAgICAgICAoLnZpc3VhbC1zdHlsZS1wcm9w
ZXJ0eS1jb250YWluZXIuaW5wdXQtY29sb3ItcGlja2VyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0
eS12YWx1ZS1jb250YWluZXIgPiAuY29sb3Itc3dhdGNoKToKKyAgICAgICAgKC52aXN1YWwtc3R5
bGUtcHJvcGVydHktY29udGFpbmVyLmlucHV0LWNvbG9yLXBpY2tlciA+IC52aXN1YWwtc3R5bGUt
cHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLmNvbG9yLXN3YXRjaCA+IHNwYW4pOgorICAgICAg
ICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIuaW5wdXQtY29sb3ItcGlja2VyID4g
LnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAuY29sb3Itc3dhdGNoOmhv
dmVyID4gc3Bhbik6CisgICAgICAgICgudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5p
bnB1dC1jb2xvci1waWNrZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5l
ciA+IC5jb2xvci1zd2F0Y2g6YWN0aXZlID4gc3Bhbik6CisgICAgICAgICgudmlzdWFsLXN0eWxl
LXByb3BlcnR5LWNvbnRhaW5lci5pbnB1dC1jb2xvci1waWNrZXIgPiAudmlzdWFsLXN0eWxlLXBy
b3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IGlucHV0KToKKyAgICAgICAgKC52aXN1YWwtc3R5bGUt
cHJvcGVydHktY29udGFpbmVyLmlucHV0LWNvbG9yLXBpY2tlci5tdWx0aXBsZSA+IC52aXN1YWwt
c3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnZpc3VhbC1zdHlsZS1tdWx0aXBsZS1w
cm9wZXJ0eS1wbGFjZWhvbGRlcik6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1
YWxTdHlsZUNvbG9yUGlja2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1
YWxTdHlsZUNvbG9yUGlja2VyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUNv
bG9yUGlja2VyLnByb3RvdHlwZS5nZXQgdmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZp
c3VhbFN0eWxlQ29sb3JQaWNrZXIucHJvdG90eXBlLnNldCB2YWx1ZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVmlzdWFsU3R5bGVDb2xvclBpY2tlci5wcm90b3R5cGUuZ2V0IHBsYWNlaG9sZGVy
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUNvbG9yUGlja2VyLnByb3RvdHlw
ZS5zZXQgcGxhY2Vob2xkZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlQ29s
b3JQaWNrZXIucHJvdG90eXBlLmdldCBzeW50aGVzaXplZFZhbHVlKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5WaXN1YWxTdHlsZUNvbG9yUGlja2VyLnByb3RvdHlwZS5nZXQgaGFzQ29tcGxldGlv
bnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlQ29sb3JQaWNrZXIucHJvdG90
eXBlLnNldCBjb21wbGV0aW9ucyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVD
b2xvclBpY2tlci5wcm90b3R5cGUuX3VwZGF0ZUNvbG9yU3dhdGNoKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5WaXN1YWxTdHlsZUNvbG9yUGlja2VyLnByb3RvdHlwZS5fY29sb3JTd2F0Y2hDbGlj
a2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUNvbG9yUGlja2VyLnByb3Rv
dHlwZS5fY29sb3JQaWNrZXJDb2xvckRpZENoYW5nZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VmlzdWFsU3R5bGVDb2xvclBpY2tlci5wcm90b3R5cGUuX2NvbXBsZXRpb25DbGlja2VkKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUNvbG9yUGlja2VyLnByb3RvdHlwZS5fdGV4
dElucHV0S2V5RG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVDb2xvclBp
Y2tlci5wcm90b3R5cGUuX3RleHRJbnB1dEtleVVwKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5W
aXN1YWxTdHlsZUNvbG9yUGlja2VyLnByb3RvdHlwZS5fc2hvd0NvbXBsZXRpb25zSWZBYmxlKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUNvbG9yUGlja2VyLnByb3RvdHlwZS5f
aGlkZUNvbXBsZXRpb25zKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0
eWxlS2V5d29yZENoZWNrYm94LmNzczogQWRkZWQuCisgICAgICAgICgudmlzdWFsLXN0eWxlLXBy
b3BlcnR5LWNvbnRhaW5lci5rZXl3b3JkLWNoZWNrYm94ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0
eS12YWx1ZS1jb250YWluZXIpOgorICAgICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250
YWluZXIua2V5d29yZC1jaGVja2JveCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29u
dGFpbmVyID4gaW5wdXQpOgorICAgICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWlu
ZXIua2V5d29yZC1jaGVja2JveCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFp
bmVyID4gZGl2KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlS2V5
d29yZENoZWNrYm94LmpzOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHls
ZUtleXdvcmRDaGVja2JveCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVLZXl3
b3JkQ2hlY2tib3gucHJvdG90eXBlLmdldCB2YWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VmlzdWFsU3R5bGVLZXl3b3JkQ2hlY2tib3gucHJvdG90eXBlLnNldCB2YWx1ZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVLZXl3b3JkQ2hlY2tib3gucHJvdG90eXBlLmdldCBz
eW50aGVzaXplZFZhbHVlKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0
eWxlS2V5d29yZEljb25MaXN0LmNzczogQWRkZWQuCisgICAgICAgICgudmlzdWFsLXN0eWxlLXBy
b3BlcnR5LWNvbnRhaW5lci5rZXl3b3JkLWljb24tbGlzdCA+IC52aXN1YWwtc3R5bGUtcHJvcGVy
dHktdmFsdWUtY29udGFpbmVyKToKKyAgICAgICAgKC52aXN1YWwtc3R5bGUtcHJvcGVydHktY29u
dGFpbmVyLmtleXdvcmQtaWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1j
b250YWluZXIgPiAua2V5d29yZC1pY29uLWxpc3QtY29udGFpbmVyKToKKyAgICAgICAgKC52aXN1
YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmtleXdvcmQtaWNvbi1saXN0ID4gLnZpc3VhbC1z
dHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAua2V5d29yZC1pY29uLWxpc3QtY29udGFp
bmVyID4gLmtleXdvcmQtaWNvbik6CisgICAgICAgICgudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNv
bnRhaW5lci5rZXl3b3JkLWljb24tbGlzdCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUt
Y29udGFpbmVyID4gLmtleXdvcmQtaWNvbi1saXN0LWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb246
Zmlyc3QtY2hpbGQpOgorICAgICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIu
a2V5d29yZC1pY29uLWxpc3QgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5l
ciA+IC5rZXl3b3JkLWljb24tbGlzdC1jb250YWluZXIgPiAua2V5d29yZC1pY29uOmxhc3QtY2hp
bGQpOgorICAgICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29yZC1p
Y29uLWxpc3QgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5rZXl3
b3JkLWljb24tbGlzdC1jb250YWluZXIgPiAua2V5d29yZC1pY29uOm1hdGNoZXMoLmNvbXB1dGVk
LCAuc2VsZWN0ZWQpKToKKyAgICAgICAgKC52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVy
LmtleXdvcmQtaWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWlu
ZXIgPiAua2V5d29yZC1pY29uLWxpc3QtY29udGFpbmVyID4gLmtleXdvcmQtaWNvbi5zZWxlY3Rl
ZCk6CisgICAgICAgICgudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5rZXl3b3JkLWlj
b24tbGlzdCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLmtleXdv
cmQtaWNvbi1saXN0LWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb24uc2VsZWN0ZWQgc3ZnIC5zdHJv
a2VkKToKKyAgICAgICAgKC52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmtleXdvcmQt
aWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAua2V5
d29yZC1pY29uLWxpc3QtY29udGFpbmVyID4gLmtleXdvcmQtaWNvbi5zZWxlY3RlZCBzdmcgLmZp
bGxlZCk6CisgICAgICAgICgudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5rZXl3b3Jk
LWljb24tbGlzdCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLmtl
eXdvcmQtaWNvbi1saXN0LWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb246bWF0Y2hlcyguY29tcHV0
ZWQsIC5zZWxlY3RlZCkgKyAua2V5d29yZC1pY29uKToKKyAgICAgICAgKC52aXN1YWwtc3R5bGUt
cHJvcGVydHktY29udGFpbmVyLmtleXdvcmQtaWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1wcm9w
ZXJ0eS12YWx1ZS1jb250YWluZXIgPiAua2V5d29yZC1pY29uLWxpc3QtY29udGFpbmVyID4gLmtl
eXdvcmQtaWNvbiA+IGRpdik6CisgICAgICAgICgudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRh
aW5lci5rZXl3b3JkLWljb24tbGlzdCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29u
dGFpbmVyID4gLmtleXdvcmQtaWNvbi1saXN0LWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb246bm90
KC5zZWxlY3RlZCkgPiBkaXYpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFs
U3R5bGVLZXl3b3JkSWNvbkxpc3QuanM6IEFkZGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZp
c3VhbFN0eWxlS2V5d29yZEljb25MaXN0LmNyZWF0ZUxpc3RJdGVtKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5WaXN1YWxTdHlsZUtleXdvcmRJY29uTGlzdCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVmlzdWFsU3R5bGVLZXl3b3JkSWNvbkxpc3QucHJvdG90eXBlLmdldCB2YWx1ZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVLZXl3b3JkSWNvbkxpc3QucHJvdG90eXBlLnNl
dCB2YWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVLZXl3b3JkSWNvbkxp
c3QucHJvdG90eXBlLmdldCBzeW50aGVzaXplZFZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5WaXN1YWxTdHlsZUtleXdvcmRJY29uTGlzdC5wcm90b3R5cGUuX2hhbmRsZUtleXdvcmRDaGFu
Z2VkKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlS2V5d29yZFBp
Y2tlci5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVLZXl3b3Jk
UGlja2VyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIu
cHJvdG90eXBlLmdldCB2YWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVL
ZXl3b3JkUGlja2VyLnByb3RvdHlwZS5zZXQgdmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlci5wcm90b3R5cGUuc2V0IHBsYWNlaG9sZGVyKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIucHJvdG90eXBlLmdl
dCBzeW50aGVzaXplZFZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUtl
eXdvcmRQaWNrZXIucHJvdG90eXBlLnVwZGF0ZUVkaXRvclZhbHVlcyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyLnByb3RvdHlwZS5faGFuZGxlS2V5d29y
ZENoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tl
ci5wcm90b3R5cGUuX2tleXdvcmRTZWxlY3RNb3VzZURvd24pOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlci5wcm90b3R5cGUuX2FkZFZhbHVlcyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyLnByb3RvdHlwZS5fYWRk
QWR2YW5jZWRWYWx1ZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlS2V5d29y
ZFBpY2tlci5wcm90b3R5cGUuX3JlbW92ZUFkdmFuY2VkVmFsdWVzKToKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlUHJvcGVydHlOYW1lSW5wdXQuanM6IEFkZGVkLgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlUHJvcGVydHlOYW1lSW5wdXQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlUHJvcGVydHlOYW1lSW5wdXQucHJvdG90eXBl
LmdldCB2YWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVQcm9wZXJ0eU5h
bWVJbnB1dC5wcm90b3R5cGUuc2V0IHZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1
YWxTdHlsZVByb3BlcnR5TmFtZUlucHV0LnByb3RvdHlwZS5nZXQgc3ludGhlc2l6ZWRWYWx1ZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVQcm9wZXJ0eU5hbWVJbnB1dC5wcm90
b3R5cGUuZ2V0IGhhc0NvbXBsZXRpb25zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxT
dHlsZVByb3BlcnR5TmFtZUlucHV0LnByb3RvdHlwZS5zZXQgY29tcGxldGlvbnMpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlUHJvcGVydHlOYW1lSW5wdXQucHJvdG90eXBlLl9j
b21wbGV0aW9uQ2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVQcm9w
ZXJ0eU5hbWVJbnB1dC5wcm90b3R5cGUuX2lucHV0S2V5RG93bik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVmlzdWFsU3R5bGVQcm9wZXJ0eU5hbWVJbnB1dC5wcm90b3R5cGUuX2lucHV0S2V5VXAp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlUHJvcGVydHlOYW1lSW5wdXQucHJv
dG90eXBlLl9oaWRlQ29tcGxldGlvbnMpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
VmlzdWFsU3R5bGVVUkxJbnB1dC5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlz
dWFsU3R5bGVVUkxJbnB1dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVVUkxJ
bnB1dC5wcm90b3R5cGUuc2V0IGdldCB2YWx1ZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9WaXN1YWxTdHlsZVVuaXRTbGlkZXIuY3NzOiBBZGRlZC4KKyAgICAgICAgKC52aXN1YWwt
c3R5bGUtcHJvcGVydHktY29udGFpbmVyLnVuaXQtc2xpZGVyID4gLnZpc3VhbC1zdHlsZS1wcm9w
ZXJ0eS12YWx1ZS1jb250YWluZXIgPiAuc2xpZGVyKToKKyAgICAgICAgKC52aXN1YWwtc3R5bGUt
cHJvcGVydHktY29udGFpbmVyLnVuaXQtc2xpZGVyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12
YWx1ZS1jb250YWluZXIgPiAuc2xpZGVyID4gaW1nKToKKyAgICAgICAgKC52aXN1YWwtc3R5bGUt
cHJvcGVydHktY29udGFpbmVyLnVuaXQtc2xpZGVyLm9wYWNpdHkgPiAudmlzdWFsLXN0eWxlLXBy
b3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5zbGlkZXIpOgorICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvVmlzdWFsU3R5bGVVbml0U2xpZGVyLmpzOiBBZGRlZC4KKyAgICAgICAgKFdlYklu
c3BlY3Rvci5WaXN1YWxTdHlsZVVuaXRTbGlkZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZp
c3VhbFN0eWxlVW5pdFNsaWRlci5wcm90b3R5cGUuc2V0IHZhbHVlKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5WaXN1YWxTdHlsZVVuaXRTbGlkZXIucHJvdG90eXBlLmdldCB2YWx1ZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVVbml0U2xpZGVyLnByb3RvdHlwZS5nZXQgc3lu
dGhlc2l6ZWRWYWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVVbml0U2xp
ZGVyLnByb3RvdHlwZS5zbGlkZXJWYWx1ZURpZENoYW5nZSk6CisKIDIwMTUtMDgtMDUgIE1hdHQg
QmFrZXIgIDxtYXR0YmFrZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJF
R1JFU1NJT04gKHIxODc2MzQpOiBTY3JpcHQgdGltZSBpcyBtaXNzaW5nIGZyb20gdGhlIGZyYW1l
cyB0aW1lbGluZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvSW1hZ2VzL0NsZWFyQm90aC5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9JbWFnZXMvQ2xlYXJCb3RoLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42M2U0MzIyMjE1YzdmMDVkOTZm
ODQ0Yjg4M2MxZGY3NGMxMzZmMjE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0NsZWFyQm90aC5zdmcKQEAgLTAsMCArMSwxMyBA
QAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzwhLS0gQ29weXJpZ2h0
IMKpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKzxzdmcgdmVyc2lv
bj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAx
NiAxNiI+CisgICAgPHJlY3QgY2xhc3M9InN0cm9rZWQiIHg9IjAuNSIgeT0iMS41IiB3aWR0aD0i
My41IiBoZWlnaHQ9IjEyIiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJibGFjayIgLz4KKyAg
ICA8cG9seWdvbiBjbGFzcz0iZmlsbGVkIiBwb2ludHM9IjAuNSAzLjUgMC41IDUuNSA0IDMuNSA0
IDEuNSIgc3Ryb2tlPSJub25lIiBzdHlsZT0ib3BhY2l0eTogMC43IiAvPgorICAgIDxwb2x5Z29u
IGNsYXNzPSJmaWxsZWQiIHBvaW50cz0iMC41IDcuNSAwLjUgOS41IDQgNy41IDQgNS41IiBzdHJv
a2U9Im5vbmUiIHN0eWxlPSJvcGFjaXR5OiAwLjciIC8+CisgICAgPHBvbHlnb24gY2xhc3M9ImZp
bGxlZCIgcG9pbnRzPSIwLjUgMTEuNSAwLjUgMTMuNSA0IDExLjUgNCA5LjUiIHN0cm9rZT0ibm9u
ZSIgc3R5bGU9Im9wYWNpdHk6IDAuNyIgLz4KKyAgICA8cmVjdCBjbGFzcz0ic3Ryb2tlZCIgeD0i
MTIiIHk9IjEuNSIgd2lkdGg9IjMuNSIgaGVpZ2h0PSIxMiIgZmlsbD0idHJhbnNwYXJlbnQiIHN0
cm9rZT0iYmxhY2siIC8+CisgICAgPHBvbHlnb24gY2xhc3M9ImZpbGxlZCIgcG9pbnRzPSIxMiAz
LjUgMTIgNS41IDE1LjUgMy41IDE1LjUgMS41IiBzdHJva2U9Im5vbmUiIHN0eWxlPSJvcGFjaXR5
OiAwLjciIC8+CisgICAgPHBvbHlnb24gY2xhc3M9ImZpbGxlZCIgcG9pbnRzPSIxMiA3LjUgMTIg
OS41IDE1LjUgNy41IDE1LjUgNS41IiBzdHJva2U9Im5vbmUiIHN0eWxlPSJvcGFjaXR5OiAwLjci
IC8+CisgICAgPHBvbHlnb24gY2xhc3M9ImZpbGxlZCIgcG9pbnRzPSIxMiAxMS41IDEyIDEzLjUg
MTUuNSAxMS41IDE1LjUgOS41IiBzdHJva2U9Im5vbmUiIHN0eWxlPSJvcGFjaXR5OiAwLjciIC8+
CisgICAgPHJlY3QgY2xhc3M9InN0cm9rZWQiIHg9IjUuNSIgeT0iNSIgd2lkdGg9IjUiIGhlaWdo
dD0iNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0NsZWFyTGVmdC5zdmcg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQ2xlYXJMZWZ0LnN2
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45YWI0MTA4ZDJhMjAxNDRlYzQyNmNjNjhkYmFhZDM0NjJkOTE0ZTI2Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1h
Z2VzL0NsZWFyTGVmdC5zdmcKQEAgLTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVu
Y29kaW5nPSJ1dGYtOCI/PgorPCEtLSBDb3B5cmlnaHQgwqkgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3
LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2Ij4KKyAgICA8cmVjdCBjbGFzcz0i
c3Ryb2tlZCIgeD0iMiIgeT0iMS41IiB3aWR0aD0iNSIgaGVpZ2h0PSIxMiIgZmlsbD0ibm9uZSIg
c3Ryb2tlPSJibGFjayIgLz4KKyAgICA8cG9seWdvbiBjbGFzcz0iZmlsbGVkIiBwb2ludHM9IjIg
My41IDIgNS41IDcgMy41IDcgMS41IiBzdHJva2U9Im5vbmUiIHN0eWxlPSJvcGFjaXR5OiAwLjci
IC8+CisgICAgPHBvbHlnb24gY2xhc3M9ImZpbGxlZCIgcG9pbnRzPSIyIDcuNSAyIDkuNSA3IDcu
NSA3IDUuNSIgc3Ryb2tlPSJub25lIiBzdHlsZT0ib3BhY2l0eTogMC43IiAvPgorICAgIDxwb2x5
Z29uIGNsYXNzPSJmaWxsZWQiIHBvaW50cz0iMiAxMS41IDIgMTMuNSA3IDExLjUgNyA5LjUiIHN0
cm9rZT0ibm9uZSIgc3R5bGU9Im9wYWNpdHk6IDAuNyIgLz4KKyAgICA8cmVjdCBjbGFzcz0ic3Ry
b2tlZCIgeD0iOSIgeT0iNSIgd2lkdGg9IjUiIGhlaWdodD0iNSIgZmlsbD0ibm9uZSIgc3Ryb2tl
PSJibGFjayIgLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvSW1hZ2VzL0NsZWFyUmlnaHQuc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0NsZWFyUmlnaHQuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzMjExMTky
Nzk2YWQyOTI3OTgyNGE2OTlkMDkxMDhjNDMwOGM3OWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQ2xlYXJSaWdodC5zdmcKQEAg
LTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEt
LSBDb3B5cmlnaHQgwqkgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgor
PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmll
d0JveD0iMCAwIDE2IDE2Ij4KKyAgICA8cmVjdCBjbGFzcz0ic3Ryb2tlZCIgeD0iOSIgeT0iMS41
IiB3aWR0aD0iNSIgaGVpZ2h0PSIxMiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgLz4KKyAg
ICA8cG9seWdvbiBjbGFzcz0iZmlsbGVkIiBwb2ludHM9IjkgMy41IDkgNS41IDE0IDMuNSAxNCAx
LjUiIHN0cm9rZT0ibm9uZSIgc3R5bGU9Im9wYWNpdHk6IDAuNyIgLz4KKyAgICA8cG9seWdvbiBj
bGFzcz0iZmlsbGVkIiBwb2ludHM9IjkgNy41IDkgOS41IDE0IDcuNSAxNCA1LjUiIHN0cm9rZT0i
bm9uZSIgc3R5bGU9Im9wYWNpdHk6IDAuNyIgLz4KKyAgICA8cG9seWdvbiBjbGFzcz0iZmlsbGVk
IiBwb2ludHM9IjkgMTEuNSA5IDEzLjUgMTQgMTEuNSAxNCA5LjUiIHN0cm9rZT0ibm9uZSIgc3R5
bGU9Im9wYWNpdHk6IDAuNyIgLz4KKyAgICA8cmVjdCBjbGFzcz0ic3Ryb2tlZCIgeD0iMiIgeT0i
NSIgd2lkdGg9IjUiIGhlaWdodD0iNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgLz4KKzwv
c3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1h
Z2VzL0Zsb2F0TGVmdC5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9J
bWFnZXMvRmxvYXRMZWZ0LnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDMxYjY2ZTQzYWE4YTYzZWI1ZDkwNDQw
Y2ZmNWZjNWRmMzJlZmNkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0Zsb2F0TGVmdC5zdmcKQEAgLTAsMCArMSwxMCBAQAorPD94
bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzwhLS0gQ29weXJpZ2h0IMKpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKzxzdmcgdmVyc2lvbj0iMS4x
IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIg
c3Ryb2tlPSJibGFjayI+CisgICAgPHJlY3QgY2xhc3M9InN0cm9rZWQiIHg9IjAuNSIgeT0iMi41
IiB3aWR0aD0iNSIgaGVpZ2h0PSI1IiBmaWxsPSJub25lIiAvPgorICAgIDxsaW5lIGNsYXNzPSJz
dHJva2VkIiB4MT0iNy41IiB5MT0iMi41IiB4Mj0iMTYiIHkyPSIyLjUiIC8+CisgICAgPGxpbmUg
Y2xhc3M9InN0cm9rZWQiIHgxPSI3LjUiIHkxPSI1IiB4Mj0iMTYiIHkyPSI1IiAvPgorICAgIDxs
aW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iNy41IiB5MT0iNy41IiB4Mj0iMTYiIHkyPSI3LjUiIC8+
CisgICAgPGxpbmUgY2xhc3M9InN0cm9rZWQiIHgxPSIwIiB5MT0iMTAiIHgyPSIxNiIgeTI9IjEw
IiAvPgorICAgIDxsaW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iMCIgeTE9IjEyLjUiIHgyPSIxNiIg
eTI9IjEyLjUiIC8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0ltYWdlcy9GbG9hdFJpZ2h0LnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9GbG9hdFJpZ2h0LnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTgxYzY1
ODE1MTE4OWZkYjZmNzZmOTc3ZjRjYzM4NjI1ZDg0OWVjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0Zsb2F0UmlnaHQuc3ZnCkBA
IC0wLDAgKzEsMTAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8
IS0tIENvcHlyaWdodCDCqSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+
Cis8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2
aWV3Qm94PSIwIDAgMTYgMTYiIHN0cm9rZT0iYmxhY2siPgorICAgIDxyZWN0IGNsYXNzPSJzdHJv
a2VkIiB4PSIxMC41IiB5PSIyLjUiIHdpZHRoPSI1IiBoZWlnaHQ9IjUiIGZpbGw9Im5vbmUiIC8+
CisgICAgPGxpbmUgY2xhc3M9InN0cm9rZWQiIHgxPSIwIiB5MT0iMi41IiB4Mj0iOC41IiB5Mj0i
Mi41IiAvPgorICAgIDxsaW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iMCIgeTE9IjUiIHgyPSI4LjUi
IHkyPSI1IiAvPgorICAgIDxsaW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iMCIgeTE9IjcuNSIgeDI9
IjguNSIgeTI9IjcuNSIgLz4KKyAgICA8bGluZSBjbGFzcz0ic3Ryb2tlZCIgeDE9IjAiIHkxPSIx
MCIgeDI9IjE2IiB5Mj0iMTAiIC8+CisgICAgPGxpbmUgY2xhc3M9InN0cm9rZWQiIHgxPSIwIiB5
MT0iMTIuNSIgeDI9IjE2IiB5Mj0iMTIuNSIgLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0ZvbnRTdHlsZUl0YWxpYy5zdmcg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvRm9udFN0eWxlSXRh
bGljLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iMTE2NDI2NGY5YjhkMzA1ZDRmM2ExODExYjYxYTY5YmMyOGU4
YmE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvSW1hZ2VzL0ZvbnRTdHlsZUl0YWxpYy5zdmcKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJz
aW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEtLSBDb3B5cmlnaHQgwqkgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiBmb250LXNp
emU9IjkiIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmIiBmb250LXN0eWxl
PSJpdGFsaWMiPgorICAgIDx0ZXh0IGNsYXNzPSJmaWxsZWQiIHg9Ii0xIiB5PSIxMSI+QWJjPC90
ZXh0PgorPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9JbWFnZXMvRm9udFN0eWxlTm9ybWFsLnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0ltYWdlcy9Gb250U3R5bGVOb3JtYWwuc3ZnCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2NWFm
ZWI0OGEzMDYxNThkZWQ1NGQxNDY2ZjcwNDY3YzM2OWMzNGQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvRm9udFN0eWxlTm9ybWFs
LnN2ZwpAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04
Ij8+Cis8IS0tIENvcHlyaWdodCDCqSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4gLS0+Cis8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv
c3ZnIiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZvbnQtc2l6ZT0iOSIgZm9udC1mYW1pbHk9Ii1hcHBs
ZS1zeXN0ZW0sIHNhbnMtc2VyaWYiPgorICAgIDx0ZXh0IGNsYXNzPSJmaWxsZWQiIHg9Ii0xIiB5
PSIxMSI+QWJjPC90ZXh0PgorPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9JbWFnZXMvRm9udFZhcmlhbnRTbWFsbENhcHMuc3ZnIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0ZvbnRWYXJpYW50U21hbGxDYXBz
LnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xNzQ2MTA3ZTEzNTZjNmMxZmE2Yzk0Zjk1Y2Q0OTNlMGU2ZWY2MDcw
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
SW1hZ2VzL0ZvbnRWYXJpYW50U21hbGxDYXBzLnN2ZwpAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZl
cnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IS0tIENvcHlyaWdodCDCqSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Cis8c3ZnIHZlcnNpb249IjEuMSIgeG1s
bnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZvbnQt
c2l6ZT0iNyIgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWYiPgorICAgIDxy
ZWN0IGNsYXNzPSJmaWxsZWQiIHg9Ii0yIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9Indo
aXRlIiBzdHJva2U9Im5vbmUiIC8+CisgICAgPHRleHQgY2xhc3M9ImZpbGxlZCIgeD0iMC4yNSIg
eT0iMTEiIGZvbnQtc2l6ZT0iMTAiPkE8L3RleHQ+CisgICAgPHRleHQgY2xhc3M9ImZpbGxlZCIg
eD0iNi43NSIgeT0iMTEiPkI8L3RleHQ+CisgICAgPHRleHQgY2xhc3M9ImZpbGxlZCIgeD0iMTEi
IHk9IjExIj5DPC90ZXh0PgorPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dEFsaWduQ2VudGVyLnN2ZyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0QWxpZ25DZW50ZXIuc3ZnCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFiNjViNGYyNGIzYjI4OTgxMGJiY2UxZGRkNjJmZjMzZDQzY2E2NGUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4
dEFsaWduQ2VudGVyLnN2ZwpAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5j
b2Rpbmc9InV0Zi04Ij8+Cis8IS0tIENvcHlyaWdodCDCqSAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4gLS0+Cis8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHN0cm9rZT0iYmxhY2siPgorICAg
IDxsaW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iMC41IiB5MT0iMyIgeDI9IjE0LjUiIHkyPSIzIiAv
PgorICAgIDxsaW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iMyIgeTE9IjUuNSIgeDI9IjEyIiB5Mj0i
NS41IiAvPgorICAgIDxsaW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iMC41IiB5MT0iOCIgeDI9IjE0
LjUiIHkyPSI4IiAvPgorICAgIDxsaW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iMyIgeTE9IjEwLjUi
IHgyPSIxMiIgeTI9IjEwLjUiIC8+CisgICAgPGxpbmUgY2xhc3M9InN0cm9rZWQiIHgxPSIwLjUi
IHkxPSIxMyIgeDI9IjE0LjUiIHkyPSIxMyIgLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRBbGlnbkp1c3RpZnkuc3Zn
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRBbGlnbkp1
c3RpZnkuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1ZTI4YTNiNTFhZmE4OTJlZDc3Mjg3ZDg2N2FhNGVmZWUy
MzljYmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9JbWFnZXMvVGV4dEFsaWduSnVzdGlmeS5zdmcKQEAgLTAsMCArMSw5IEBACis8P3htbCB2
ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEtLSBDb3B5cmlnaHQgwqkgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiBzdHJv
a2U9ImJsYWNrIj4KKyAgICA8bGluZSBjbGFzcz0ic3Ryb2tlZCIgeDE9IjAuNSIgeTE9IjMiIHgy
PSIxNC41IiB5Mj0iMyIgLz4KKyAgICA8bGluZSBjbGFzcz0ic3Ryb2tlZCIgeDE9IjAuNSIgeTE9
IjUuNSIgeDI9IjE0LjUiIHkyPSI1LjUiIC8+CisgICAgPGxpbmUgY2xhc3M9InN0cm9rZWQiIHgx
PSIwLjUiIHkxPSI4IiB4Mj0iMTQuNSIgeTI9IjgiIC8+CisgICAgPGxpbmUgY2xhc3M9InN0cm9r
ZWQiIHgxPSIwLjUiIHkxPSIxMC41IiB4Mj0iMTQuNSIgeTI9IjEwLjUiIC8+CisgICAgPGxpbmUg
Y2xhc3M9InN0cm9rZWQiIHgxPSIwLjUiIHkxPSIxMyIgeDI9IjE0LjUiIHkyPSIxMyIgLz4KKzwv
c3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1h
Z2VzL1RleHRBbGlnbkxlZnQuc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvSW1hZ2VzL1RleHRBbGlnbkxlZnQuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjZjc5MmU2NmVjODlkMzE3
OTEyOTFmNzQ1MTYxZmY5ZmJhZWQxMjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dEFsaWduTGVmdC5zdmcKQEAgLTAsMCAr
MSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEtLSBDb3B5
cmlnaHQgwqkgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB2
ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0i
MCAwIDE2IDE2IiBzdHJva2U9ImJsYWNrIj4KKyAgICA8bGluZSBjbGFzcz0ic3Ryb2tlZCIgeDE9
IjAuNSIgeTE9IjMiIHgyPSIxNC41IiB5Mj0iMyIgLz4KKyAgICA8bGluZSBjbGFzcz0ic3Ryb2tl
ZCIgeDE9IjAuNSIgeTE9IjUuNSIgeDI9IjkuNSIgeTI9IjUuNSIgLz4KKyAgICA8bGluZSBjbGFz
cz0ic3Ryb2tlZCIgeDE9IjAuNSIgeTE9IjgiIHgyPSIxNC41IiB5Mj0iOCIgLz4KKyAgICA8bGlu
ZSBjbGFzcz0ic3Ryb2tlZCIgeDE9IjAuNSIgeTE9IjEwLjUiIHgyPSI5LjUiIHkyPSIxMC41IiAv
PgorICAgIDxsaW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iMC41IiB5MT0iMTMiIHgyPSIxNC41IiB5
Mj0iMTMiIC8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0ltYWdlcy9UZXh0QWxpZ25SaWdodC5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dEFsaWduUmlnaHQuc3ZnCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2
NTZjOTQ2NGU3MGUzZmZjOTY4MWMyNjQwZGM1ODIzYjQ0MTk4ZjIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dEFsaWduUmln
aHQuc3ZnCkBAIC0wLDAgKzEsOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRm
LTgiPz4KKzwhLS0gQ29weXJpZ2h0IMKpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLiAtLT4KKzxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAw
MC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgc3Ryb2tlPSJibGFjayI+CisgICAgPGxpbmUgY2xh
c3M9InN0cm9rZWQiIHgxPSIwLjUiIHkxPSIzIiB4Mj0iMTQuNSIgeTI9IjMiIC8+CisgICAgPGxp
bmUgY2xhc3M9InN0cm9rZWQiIHgxPSI1LjUiIHkxPSI1LjUiIHgyPSIxNC41IiB5Mj0iNS41IiAv
PgorICAgIDxsaW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iMC41IiB5MT0iOCIgeDI9IjE0LjUiIHky
PSI4IiAvPgorICAgIDxsaW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iNS41IiB5MT0iMTAuNSIgeDI9
IjE0LjUiIHkyPSIxMC41IiAvPgorICAgIDxsaW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iMC41IiB5
MT0iMTMiIHgyPSIxNC41IiB5Mj0iMTMiIC8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0RGVjb3JhdGlvbkxpbmVUaHJv
dWdoLnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0
RGVjb3JhdGlvbkxpbmVUaHJvdWdoLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMWM5Y2ZlNDMzMDQyY2E4YjI4
NDk4NTg2ZDk4MTIzNGJiODk2ZDQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHREZWNvcmF0aW9uTGluZVRocm91Z2guc3Zn
CkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4K
KzwhLS0gQ29weXJpZ2h0IMKpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAt
LT4KKzxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmci
IHZpZXdCb3g9IjAgMCAxNiAxNiIgZm9udC1zaXplPSI5IiBmb250LWZhbWlseT0iLWFwcGxlLXN5
c3RlbSwgc2Fucy1zZXJpZiI+CisgICAgPHRleHQgY2xhc3M9ImZpbGxlZCIgeD0iMCIgeT0iMTEu
NSI+QWJjPC90ZXh0PgorICAgIDxsaW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iMCIgeTE9IjguNSIg
eDI9IjE1LjUiIHkyPSI4LjUiIHN0cm9rZT0iYmxhY2siLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHREZWNvcmF0aW9u
T3ZlcmxpbmUuc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2Vz
L1RleHREZWNvcmF0aW9uT3ZlcmxpbmUuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3YzRhMjkzZjgyNzU2NjE0
NWNiNTQ2MGViZDIxYWU2MDAxNmUyYzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dERlY29yYXRpb25PdmVybGluZS5zdmcK
QEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/Pgor
PCEtLSBDb3B5cmlnaHQgwqkgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0t
PgorPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIg
dmlld0JveD0iMCAwIDE2IDE2IiBmb250LXNpemU9IjkiIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lz
dGVtLCBzYW5zLXNlcmlmIj4KKyAgICA8dGV4dCBjbGFzcz0iZmlsbGVkIiB4PSIwIiB5PSIxMS41
Ij5BYmM8L3RleHQ+CisgICAgPGxpbmUgY2xhc3M9InN0cm9rZWQiIHgxPSIwIiB5MT0iMy41IiB4
Mj0iMTUuNSIgeTI9IjMuNSIgc3Ryb2tlPSJibGFjayIvPgorPC9zdmc+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dERlY29yYXRpb25V
bmRlcmxpbmUuc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2Vz
L1RleHREZWNvcmF0aW9uVW5kZXJsaW5lLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YTk0YWExZDAzODFjOGI1
ZjE0ODUwMzY5NTQ0Yzg0NzEwNjk3YTU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHREZWNvcmF0aW9uVW5kZXJsaW5lLnN2
ZwpAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+
Cis8IS0tIENvcHlyaWdodCDCqSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4g
LS0+Cis8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3Zn
IiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZvbnQtc2l6ZT0iOSIgZm9udC1mYW1pbHk9Ii1hcHBsZS1z
eXN0ZW0sIHNhbnMtc2VyaWYiPgorICAgIDx0ZXh0IGNsYXNzPSJmaWxsZWQiIHg9IjAiIHk9IjEx
LjUiPkFiYzwvdGV4dD4KKyAgICA8bGluZSBjbGFzcz0ic3Ryb2tlZCIgeDE9IjAiIHkxPSIxMi41
IiB4Mj0iMTUuNSIgeTI9IjEyLjUiIHN0cm9rZT0iYmxhY2siLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRUcmFuc2Zv
cm1DYXBpdGFsaXplLnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0lt
YWdlcy9UZXh0VHJhbnNmb3JtQ2FwaXRhbGl6ZS5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzZlYzFhZWY2OGFj
ZmZiYTIyZmIzYjA2MmNmZmI1ZmVkNDk4MmNkMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0VHJhbnNmb3JtQ2FwaXRhbGl6
ZS5zdmcKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYt
OCI/PgorPCEtLSBDb3B5cmlnaHQgwqkgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuIC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAw
L3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiBmb250LXNpemU9IjkiIGZvbnQtZmFtaWx5PSItYXBw
bGUtc3lzdGVtLCBzYW5zLXNlcmlmIj4KKyAgICA8dGV4dCBjbGFzcz0iZmlsbGVkIiB4PSIwIiB5
PSIxMS41Ij5BYmM8L3RleHQ+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0VHJhbnNmb3JtTG93ZXJjYXNlLnN2ZyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0VHJhbnNmb3JtTG93
ZXJjYXNlLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDJkOWRkOGJkNzdmYWU3YTNmMDY4MjVjM2VlM2IwYWVj
MDk1NGZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvSW1hZ2VzL1RleHRUcmFuc2Zvcm1Mb3dlcmNhc2Uuc3ZnCkBAIC0wLDAgKzEsNSBAQAor
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzwhLS0gQ29weXJpZ2h0IMKp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKzxzdmcgdmVyc2lvbj0i
MS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAx
NiIgZm9udC1zaXplPSI5IiBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZiI+
CisgICAgPHRleHQgY2xhc3M9ImZpbGxlZCIgeD0iMC41IiB5PSIxMS41Ij5hYmM8L3RleHQ+Cis8
L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0lt
YWdlcy9UZXh0VHJhbnNmb3JtVXBwZXJjYXNlLnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0VHJhbnNmb3JtVXBwZXJjYXNlLnN2ZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40MDRjYTYyOTdjNmUzMWY4ZDIzZDc0MWZhNWMxMmNiMzQyNzNmNDNmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRUcmFu
c2Zvcm1VcHBlcmNhc2Uuc3ZnCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBl
bmNvZGluZz0idXRmLTgiPz4KKzwhLS0gQ29weXJpZ2h0IMKpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLiAtLT4KKzxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3
dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgZm9udC1zaXplPSI5IiBmb250
LWZhbWlseT0iLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZiI+CisgICAgPHRleHQgY2xhc3M9ImZp
bGxlZCIgeD0iLTEiIHk9IjExLjUiPkFCQzwvdGV4dD4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1Zpc3VhbFN0eWxlTm9uZS5z
dmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVmlzdWFsU3R5
bGVOb25lLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjg4YTEyNGQ2NDQ3MzQ4ZjhkMmViZWM0MmEyNmZlMjY0
NWRiNDFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvSW1hZ2VzL1Zpc3VhbFN0eWxlTm9uZS5zdmcKQEAgLTAsMCArMSw1IEBACis8P3htbCB2
ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEtLSBDb3B5cmlnaHQgwqkgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2Ij4KKyAg
ICA8bGluZSBjbGFzcz0ic3Ryb2tlZCIgeDE9IjAiIHkxPSI4IiB4Mj0iMTQiIHkyPSI4IiBzdHJv
a2U9ImJsYWNrIi8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1NsaWRlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1NsaWRlci5qcwppbmRleCAxNTQ3NzFmNTdiOWU4YTM4MDE2YjkwZmYx
NjEwOTcyZWE5MGJmYTMyLi45NDBkZjgzNDQzMjBjNWNkYmFlMmJiZGFhMzZhZDRhMDZhYzU4Mjgy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9T
bGlkZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
U2xpZGVyLmpzCkBAIC02MSwxNCArNjEsMTggQEAgV2ViSW5zcGVjdG9yLlNsaWRlciA9IGNsYXNz
IFNsaWRlciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgICAgIHJldHVybjsK
IAogICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlOwotCi0gICAgICAgIHRoaXMuX2tub2JYID0g
TWF0aC5yb3VuZCh2YWx1ZSAqIHRoaXMuX21heFgpOwotICAgICAgICB0aGlzLl9rbm9iLnN0eWxl
LndlYmtpdFRyYW5zZm9ybSA9ICJ0cmFuc2xhdGUzZCgiICsgdGhpcy5fa25vYlggKyAicHgsIDAs
IDApIjsKKyAgICAgICAgdGhpcy5rbm9iWCA9IHZhbHVlOwogCiAgICAgICAgIGlmICh0aGlzLmRl
bGVnYXRlICYmIHR5cGVvZiB0aGlzLmRlbGVnYXRlLnNsaWRlclZhbHVlRGlkQ2hhbmdlID09PSAi
ZnVuY3Rpb24iKQogICAgICAgICAgICAgdGhpcy5kZWxlZ2F0ZS5zbGlkZXJWYWx1ZURpZENoYW5n
ZSh0aGlzLCB2YWx1ZSk7CiAgICAgfQogCisgICAgc2V0IGtub2JYKHZhbHVlKQorICAgIHsKKyAg
ICAgICAgdGhpcy5fa25vYlggPSBNYXRoLnJvdW5kKHZhbHVlICogdGhpcy5fbWF4WCk7CisgICAg
ICAgIHRoaXMuX2tub2Iuc3R5bGUud2Via2l0VHJhbnNmb3JtID0gInRyYW5zbGF0ZTNkKCIgKyB0
aGlzLl9rbm9iWCArICJweCwgMCwgMCkiOworICAgIH0KKwogICAgIC8vIFByb3RlY3RlZAogCiAg
ICAgaGFuZGxlRXZlbnQoZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUNvbG9yUGlja2VyLmNzcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQ29sb3JQaWNrZXIu
Y3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjgyYzVjMjAzNDlmNTlmOTE2OWIzMTk2MmRmNWYwZDhiMzMxNWRkMjIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9WaXN1YWxTdHlsZUNvbG9yUGlja2VyLmNzcwpAQCAtMCwwICsxLDg0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIuaW5wdXQtY29sb3ItcGlja2Vy
ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgeworICAgIGRpc3BsYXk6
IGZsZXg7CisgICAgbWFyZ2luLWxlZnQ6IDAuNXB4OworfQorCisudmlzdWFsLXN0eWxlLXByb3Bl
cnR5LWNvbnRhaW5lci5pbnB1dC1jb2xvci1waWNrZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5
LXZhbHVlLWNvbnRhaW5lciA+IC52aXN1YWwtc3R5bGUtc3BlY2lhbC1wcm9wZXJ0eS1wbGFjZWhv
bGRlciB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKworLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1j
b250YWluZXIuaW5wdXQtY29sb3ItcGlja2VyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1
ZS1jb250YWluZXIgPiAuY29sb3Itc3dhdGNoIHsKKyAgICBkaXNwbGF5OiBibG9jazsKKyAgICBw
b3NpdGlvbjogcmVsYXRpdmU7CisgICAgd2lkdGg6IDIzcHg7CisgICAgaGVpZ2h0OiAxOHB4Owor
ICAgIG1hcmdpbi10b3A6IDFweDsKKyAgICAvKiBNYWtlIGEgY2hlY2tlcmVkIGJhY2tncm91bmQg
Zm9yIHRyYW5zcGFyZW50IGNvbG9ycyB0byBzaG93IGFnYWluc3QuICovCisgICAgYmFja2dyb3Vu
ZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiKDIwNCwgMjA0LCAyMDQpLCBy
Z2IoMjA0LCAyMDQsIDIwNCkpLAorICAgICAgICBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCBy
Z2IoMjA0LCAyMDQsIDIwNCksIHJnYigyMDQsIDIwNCwgMjA0KSk7CisgICAgYmFja2dyb3VuZC1j
b2xvcjogd2hpdGU7CisgICAgYmFja2dyb3VuZC1zaXplOiBjYWxjKDUwJSk7CisgICAgYmFja2dy
b3VuZC1wb3NpdGlvbjogdG9wIGxlZnQsIGJvdHRvbSByaWdodDsKKyAgICBiYWNrZ3JvdW5kLXJl
cGVhdDogbm8tcmVwZWF0OworICAgIGN1cnNvcjogZGVmYXVsdDsKK30KKworLnZpc3VhbC1zdHls
ZS1wcm9wZXJ0eS1jb250YWluZXIuaW5wdXQtY29sb3ItcGlja2VyID4gLnZpc3VhbC1zdHlsZS1w
cm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAuY29sb3Itc3dhdGNoID4gc3BhbiB7CisgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICByaWdodDogMDsKKyAgICBib3R0b206
IDA7CisgICAgbGVmdDogMDsKKyAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDY0LCA2NCwgNjQs
IDAuNCk7Cit9CisKKy52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmlucHV0LWNvbG9y
LXBpY2tlciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLmNvbG9y
LXN3YXRjaDpob3ZlciA+IHNwYW4geworICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNjQsIDY0
LCA2NCwgMC44KTsKK30KKworLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIuaW5wdXQt
Y29sb3ItcGlja2VyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAu
Y29sb3Itc3dhdGNoOmFjdGl2ZSA+IHNwYW4geworICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEo
NjQsIDY0LCA2NCwgMSk7Cit9CisKKy52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmlu
cHV0LWNvbG9yLXBpY2tlciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVy
ID4gaW5wdXQgeworICAgIG1hcmdpbjogMXB4IDEuNXB4IDNweCAwOworICAgIHBhZGRpbmc6IDAg
M3B4OworICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7CisgICAgYm9yZGVyLWJvdHRv
bS1yaWdodC1yYWRpdXM6IDRweDsKKyAgICBib3JkZXI6IHNvbGlkIDFweCBsaWdodGdyZXk7Cisg
ICAgYm9yZGVyLWxlZnQ6IG5vbmU7CisgICAgdGV4dC1hbGlnbjogcmlnaHQ7CisgICAgZm9udC1z
aXplOiAxMHB4OworfQorCisudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5pbnB1dC1j
b2xvci1waWNrZXIubXVsdGlwbGUgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRh
aW5lciA+IC52aXN1YWwtc3R5bGUtbXVsdGlwbGUtcHJvcGVydHktcGxhY2Vob2xkZXIgeworICAg
IHdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTsKKyAgICBsZWZ0OiAxOHB4OworICAgIHBhZGRpbmct
cmlnaHQ6IDNweDsKKyAgICB0ZXh0LWFsaWduOiByaWdodDsKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQ29sb3JQaWNr
ZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxT
dHlsZUNvbG9yUGlja2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwNzhiZTA2NDQ5NGNmMzNjMjc2YWI3NGU5
MmY5ZmVjYjE4YTU5MDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUNvbG9yUGlja2VyLmpzCkBAIC0wLDAgKzEs
MjE2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlQ29sb3JQaWNrZXIg
PSBjbGFzcyBWaXN1YWxTdHlsZUNvbG9yUGlja2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpc3Vh
bFN0eWxlUHJvcGVydHlFZGl0b3IKK3sKKyAgICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eU5hbWVzLCB0
ZXh0LCBsYXlvdXRSZXZlcnNlZCkKKyAgICB7CisgICAgICAgIHN1cGVyKHByb3BlcnR5TmFtZXMs
IHRleHQsIG51bGwsIG51bGwsICJpbnB1dC1jb2xvci1waWNrZXIiLCBsYXlvdXRSZXZlcnNlZCk7
CisKKyAgICAgICAgdGhpcy5fc3dhdGNoRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
InNwYW4iKTsKKyAgICAgICAgdGhpcy5fc3dhdGNoRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJjb2xv
ci1zd2F0Y2giKTsKKyAgICAgICAgdGhpcy5fc3dhdGNoRWxlbWVudC50aXRsZSA9IFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiQ2xpY2sgdG8gb3BlbiBhIGNvbG9ycGlja2VyLiBTaGlmdC1jbGljayB0
byBjaGFuZ2UgY29sb3IgZm9ybWF0LiIpOworICAgICAgICB0aGlzLl9zd2F0Y2hFbGVtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fY29sb3JTd2F0Y2hDbGlja2VkLmJpbmQodGhp
cykpOworCisgICAgICAgIHRoaXMuX3N3YXRjaElubmVyRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNwYW4iKTsKKyAgICAgICAgdGhpcy5fc3dhdGNoRWxlbWVudC5hcHBlbmRDaGls
ZCh0aGlzLl9zd2F0Y2hJbm5lckVsZW1lbnQpOworCisgICAgICAgIHRoaXMuX2NvbnRlbnRFbGVt
ZW50LmFwcGVuZENoaWxkKHRoaXMuX3N3YXRjaEVsZW1lbnQpOworCisgICAgICAgIHRoaXMuX3Rl
eHRJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CisgICAgICAgIHRoaXMu
X3RleHRJbnB1dC5zcGVsbGNoZWNrID0gZmFsc2U7CisgICAgICAgIHRoaXMuX3RleHRJbnB1dC5h
ZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fdGV4dElucHV0S2V5RG93bi5iaW5kKHRo
aXMpKTsKKyAgICAgICAgdGhpcy5fdGV4dElucHV0LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIiwg
dGhpcy5fdGV4dElucHV0S2V5VXAuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuX3RleHRJbnB1
dC5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwgdGhpcy5faGlkZUNvbXBsZXRpb25zLmJpbmQodGhp
cykpOworICAgICAgICB0aGlzLl9jb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl90ZXh0
SW5wdXQpOworCisgICAgICAgIHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyID0gbmV3IFdlYklu
c3BlY3Rvci5WaXN1YWxTdHlsZUNvbXBsZXRpb25zQ29udHJvbGxlcih0aGlzKTsKKyAgICAgICAg
dGhpcy5fY29tcGxldGlvbkNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
VmlzdWFsU3R5bGVDb21wbGV0aW9uc0NvbnRyb2xsZXIuRXZlbnQuQ29tcGxldGlvblNlbGVjdGVk
LCB0aGlzLl9jb21wbGV0aW9uQ2xpY2tlZCwgdGhpcyk7CisKKyAgICAgICAgdGhpcy5fdmFsdWVS
ZWdFeHAgPSAvXihbXjtdKylccyo7PyQvOworICAgICAgICB0aGlzLl9mb3JtYXRDaGFuZ2VkID0g
ZmFsc2U7CisgICAgICAgIHRoaXMuX3VwZGF0ZUNvbG9yU3dhdGNoKCk7CisgICAgfQorCisgICAg
Ly8gUHVibGljCisKKyAgICBnZXQgdmFsdWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
X3RleHRJbnB1dC52YWx1ZTsKKyAgICB9CisKKyAgICBzZXQgdmFsdWUodmFsdWUpCisgICAgewor
ICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUgPT09IHRoaXMudmFsdWUpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgdGhpcy5fdGV4dElucHV0LnZhbHVlID0gdGhpcy5faGFzTXVsdGlw
bGVDb25mbGljdGluZ1ZhbHVlcygpID8gbnVsbCA6IHZhbHVlOworICAgICAgICB0aGlzLl91cGRh
dGVDb2xvclN3YXRjaCgpOworICAgIH0KKworICAgIGdldCBwbGFjZWhvbGRlcigpCisgICAgewor
ICAgICAgICByZXR1cm4gdGhpcy5fdGV4dElucHV0LmdldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIi
KTsKKyAgICB9CisKKyAgICBzZXQgcGxhY2Vob2xkZXIodGV4dCkKKyAgICB7CisgICAgICAgIGlm
ICh0ZXh0ICYmIHRleHQgPT09IHRoaXMucGxhY2Vob2xkZXIpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgaWYgKHRoaXMuX2hhc011bHRpcGxlQ29uZmxpY3RpbmdWYWx1ZXMoKSkKKyAg
ICAgICAgICAgIHRleHQgPSB0aGlzLl9zcGVjaWFsUHJvcGVydHlQbGFjZWhvbGRlci50ZXh0Q29u
dGVudDsKKworICAgICAgICB0aGlzLl90ZXh0SW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRl
ciIsIHRleHQgfHwgInRyYW5zcGFyZW50Iik7CisgICAgfQorCisgICAgZ2V0IHN5bnRoZXNpemVk
VmFsdWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUgfHwgbnVsbDsKKyAgICB9
CisKKyAgICBnZXQgaGFzQ29tcGxldGlvbnMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
X2NvbXBsZXRpb25Db250cm9sbGVyLmhhc0NvbXBsZXRpb25zOworICAgIH0KKworICAgIHNldCBj
b21wbGV0aW9ucyhjb21wbGV0aW9ucykKKyAgICB7CisgICAgICAgIHRoaXMuX2NvbXBsZXRpb25D
b250cm9sbGVyLmNvbXBsZXRpb25zID0gY29tcGxldGlvbnM7CisgICAgfQorCisgICAgLy8gUHJp
dmF0ZQorCisgICAgX3VwZGF0ZUNvbG9yU3dhdGNoKCkKKyAgICB7CisgICAgICAgIHZhciB2YWx1
ZSA9IHRoaXMuX3RleHRJbnB1dC52YWx1ZTsKKyAgICAgICAgdGhpcy5fY29sb3IgPSBXZWJJbnNw
ZWN0b3IuQ29sb3IuZnJvbVN0cmluZyh2YWx1ZSB8fCAidHJhbnNwYXJlbnQiKTsKKyAgICAgICAg
dGhpcy5fc3dhdGNoSW5uZXJFbGVtZW50LnN0eWxlLmJhY2tncm91bmRDb2xvciA9IHRoaXMuX2Nv
bG9yID8gdmFsdWUgOiBudWxsOworICAgIH0KKworICAgIF9jb2xvclN3YXRjaENsaWNrZWQoZXZl
bnQpCisgICAgeworICAgICAgICB2YXIgY29sb3IgPSB0aGlzLl9jb2xvcjsKKworICAgICAgICBp
ZiAoZXZlbnQuc2hpZnRLZXkpIHsKKyAgICAgICAgICAgIHZhciBuZXh0Rm9ybWF0ID0gY29sb3Iu
bmV4dEZvcm1hdCgpOworCisgICAgICAgICAgICBjb25zb2xlLmFzc2VydChuZXh0Rm9ybWF0KTsK
KyAgICAgICAgICAgIGlmICghbmV4dEZvcm1hdCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgICAgIGNvbG9yLmZvcm1hdCA9IG5leHRGb3JtYXQ7CisgICAgICAgICAgICB0aGlz
LnZhbHVlID0gY29sb3IudG9TdHJpbmcoKTsKKworICAgICAgICAgICAgdGhpcy5fZm9ybWF0Q2hh
bmdlZCA9IHRydWU7CisgICAgICAgICAgICB0aGlzLl92YWx1ZURpZENoYW5nZSgpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGJvdW5kcyA9IFdlYkluc3Bl
Y3Rvci5SZWN0LnJlY3RGcm9tQ2xpZW50UmVjdCh0aGlzLl9zd2F0Y2hFbGVtZW50LmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpKTsKKworICAgICAgICB2YXIgY29sb3JQaWNrZXIgPSBuZXcgV2ViSW5z
cGVjdG9yLkNvbG9yUGlja2VyOworICAgICAgICBjb2xvclBpY2tlci5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5Db2xvclBpY2tlci5FdmVudC5Db2xvckNoYW5nZWQsIHRoaXMuX2NvbG9y
UGlja2VyQ29sb3JEaWRDaGFuZ2UsIHRoaXMpOworCisgICAgICAgIHZhciBwb3BvdmVyID0gbmV3
IFdlYkluc3BlY3Rvci5Qb3BvdmVyKHRoaXMpOworICAgICAgICBwb3BvdmVyLmNvbnRlbnQgPSBj
b2xvclBpY2tlci5lbGVtZW50OworICAgICAgICBwb3BvdmVyLnByZXNlbnQoYm91bmRzLnBhZCgy
KSwgW1dlYkluc3BlY3Rvci5SZWN0RWRnZS5NSU5fWF0pOworCisgICAgICAgIGNvbG9yUGlja2Vy
LmNvbG9yID0gY29sb3I7CisgICAgfQorCisgICAgX2NvbG9yUGlja2VyQ29sb3JEaWRDaGFuZ2Uo
ZXZlbnQpCisgICAgeworICAgICAgICB2YXIgZm9ybWF0ID0gIXRoaXMuX2Zvcm1hdENoYW5nZWQg
PyBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LkhFWCA6IG51bGw7CisgICAgICAgIHRoaXMudmFs
dWUgPSBldmVudC5kYXRhLmNvbG9yLnRvU3RyaW5nKGZvcm1hdCk7CisgICAgICAgIHRoaXMuX3Zh
bHVlRGlkQ2hhbmdlKCk7CisgICAgfQorCisgICAgX2NvbXBsZXRpb25DbGlja2VkKGV2ZW50KQor
ICAgIHsKKyAgICAgICAgdGhpcy52YWx1ZSA9IGV2ZW50LmRhdGEudGV4dDsKKyAgICAgICAgdGhp
cy5fdmFsdWVEaWRDaGFuZ2UoKTsKKyAgICB9CisKKyAgICBfdGV4dElucHV0S2V5RG93bihldmVu
dCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5fY29tcGxldGlvbkNvbnRyb2xsZXIudmlzaWJs
ZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB2YXIga2V5Q29kZSA9IGV2ZW50Lmtl
eUNvZGU7CisgICAgICAgIGlmIChrZXlDb2RlID09PSA5IHx8IGtleUNvZGUgPT09IDEzKSB7Cisg
ICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5fY29tcGxldGlvbkNvbnRyb2xsZXIuY3VycmVu
dENvbXBsZXRpb247CisgICAgICAgICAgICB0aGlzLl9oaWRlQ29tcGxldGlvbnMoKTsKKyAgICAg
ICAgICAgIHRoaXMuX3ZhbHVlRGlkQ2hhbmdlKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICBpZiAoa2V5Q29kZSA9PT0gMjcpIHsKKyAgICAgICAgICAgIHRoaXMu
X2hpZGVDb21wbGV0aW9ucygpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAg
ICAgICAgdmFyIGtleSA9IGV2ZW50LmtleUlkZW50aWZpZXI7CisgICAgICAgIGlmIChrZXkgPT09
ICJVcCIpIHsKKyAgICAgICAgICAgIHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLnByZXZpb3Vz
KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoa2V5ID09
PSAiRG93biIpIHsKKyAgICAgICAgICAgIHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLm5leHQo
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIF90ZXh0SW5w
dXRLZXlVcCgpCisgICAgeworICAgICAgICB0aGlzLl9zaG93Q29tcGxldGlvbnNJZkFibGUoKTsK
KyAgICAgICAgdGhpcy5fdXBkYXRlQ29sb3JTd2F0Y2goKTsKKyAgICAgICAgdGhpcy5fdmFsdWVE
aWRDaGFuZ2UoKTsKKyAgICB9CisKKyAgICBfc2hvd0NvbXBsZXRpb25zSWZBYmxlKCkKKyAgICB7
CisgICAgICAgIGlmICghdGhpcy5oYXNDb21wbGV0aW9ucykKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICB2YXIgcmVzdWx0ID0gdGhpcy5fdmFsdWVEaWRDaGFuZ2UoKTsKKyAgICAgICAg
aWYgKCFyZXN1bHQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKHRoaXMuX2Nv
bXBsZXRpb25Db250cm9sbGVyLnVwZGF0ZSh0aGlzLnZhbHVlKSkgeworICAgICAgICAgICAgdmFy
IGJvdW5kcyA9IFdlYkluc3BlY3Rvci5SZWN0LnJlY3RGcm9tQ2xpZW50UmVjdCh0aGlzLl90ZXh0
SW5wdXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpOworICAgICAgICAgICAgaWYgKCFib3VuZHMp
CisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICB0aGlzLl9jb21wbGV0aW9u
Q29udHJvbGxlci5zaG93KGJvdW5kcywgMik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBfaGlk
ZUNvbXBsZXRpb25zKCkKKyAgICB7CisgICAgICAgIHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVy
LmhpZGUoKTsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVLZXl3b3JkQ2hlY2tib3guY3NzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVLZXl3b3JkQ2hl
Y2tib3guY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0N2Y5ODhiYTdkYzU3NTM1YTc3MWI0YWE0ZDY0Y2M3YjVl
MDJiMTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtleXdvcmRDaGVja2JveC5jc3MKQEAgLTAsMCArMSw0MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKy52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmtleXdvcmQt
Y2hlY2tib3ggPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciB7CisgICAg
ZGlzcGxheTogZmxleDsKKyAgICBhbGlnbi1pdGVtczogY2VudGVyOworfQorCisudmlzdWFsLXN0
eWxlLXByb3BlcnR5LWNvbnRhaW5lci5rZXl3b3JkLWNoZWNrYm94ID4gLnZpc3VhbC1zdHlsZS1w
cm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiBpbnB1dCB7CisgICAgb3JkZXI6IDE7CisgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgIHRvcDogNHB4OworICAgIHdpZHRoOiBhdXRvOworfQorCisu
dmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5rZXl3b3JkLWNoZWNrYm94ID4gLnZpc3Vh
bC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiBkaXYgeworICAgIHdpZHRoOiAxOHB4
OworICAgIG1hcmdpbjogMCAycHg7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtleXdvcmRDaGVja2JveC5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlS2V5d29y
ZENoZWNrYm94LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5ZWJmZTA2MmRhN2U2YzU0MTY0YWQ3ZmZjZmYzMjNm
Yjg0ZTZkNjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtleXdvcmRDaGVja2JveC5qcwpAQCAtMCwwICsxLDY0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlS2V5d29yZENoZWNrYm94
ID0gY2xhc3MgVmlzdWFsU3R5bGVLZXl3b3JkQ2hlY2tib3ggZXh0ZW5kcyBXZWJJbnNwZWN0b3Iu
VmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvcgoreworICAgIGNvbnN0cnVjdG9yKHByb3BlcnR5TmFt
ZXMsIHRleHQsIHZhbHVlLCBjaGVja2JveEltYWdlLCBsYXlvdXRSZXZlcnNlZCkKKyAgICB7Cisg
ICAgICAgIHN1cGVyKHByb3BlcnR5TmFtZXMsIHRleHQsIG51bGwsIG51bGwsICJrZXl3b3JkLWNo
ZWNrYm94IiwgbGF5b3V0UmV2ZXJzZWQpOworCisgICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWUg
fHwgbnVsbDsKKworICAgICAgICB0aGlzLl9jaGVja2JveCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImlucHV0Iik7CisgICAgICAgIHRoaXMuX2NoZWNrYm94LnR5cGUgPSAiY2hlY2tib3giOwor
ICAgICAgICB0aGlzLl9jaGVja2JveC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCB0aGlzLl92
YWx1ZURpZENoYW5nZS5iaW5kKHRoaXMpKTsKKyAgICAgICAgdGhpcy5fY29udGVudEVsZW1lbnQu
YXBwZW5kQ2hpbGQodGhpcy5fY2hlY2tib3gpOworCisgICAgICAgIGlmIChjaGVja2JveEltYWdl
KSB7CisgICAgICAgICAgICB3cmFwcGVkU1ZHRG9jdW1lbnQoY2hlY2tib3hJbWFnZSwgbnVsbCwg
dmFsdWUsIGZ1bmN0aW9uKHdyYXBwZXIpIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50
RWxlbWVudC5hcHBlbmRDaGlsZCh3cmFwcGVyKTsKKyAgICAgICAgICAgIH0uYmluZCh0aGlzKSk7
CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl92YWx1ZVJlZ0V4cCA9IC9eKFteO10rKVxzKjs/
JC87CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQgdmFsdWUoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX2NoZWNrYm94LmNoZWNrZWQgPyB0aGlzLl92YWx1ZSA6IG51bGw7
CisgICAgfQorCisgICAgc2V0IHZhbHVlKHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5fY2hl
Y2tib3guY2hlY2tlZCA9IHZhbHVlID09PSB0aGlzLl92YWx1ZTsKKyAgICB9CisKKyAgICBnZXQg
c3ludGhlc2l6ZWRWYWx1ZSgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTsKKyAg
ICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvVmlzdWFsU3R5bGVLZXl3b3JkSWNvbkxpc3QuY3NzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVLZXl3b3JkSWNvbkxpc3QuY3NzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjk5YTM0MDZiNmMyMWVmYzU4YmE0NTE1ZWYxZWUyZjlhY2JiOWJjNmMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9W
aXN1YWxTdHlsZUtleXdvcmRJY29uTGlzdC5jc3MKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKy52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmtleXdvcmQtaWNvbi1saXN0ID4g
LnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgeworICAgIG1hcmdpbjogMXB4
IDAgMnB4OworfQorCisudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5rZXl3b3JkLWlj
b24tbGlzdCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLmtleXdv
cmQtaWNvbi1saXN0LWNvbnRhaW5lciB7CisgICAgZGlzcGxheTogZmxleDsKK30KKworLnZpc3Vh
bC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29yZC1pY29uLWxpc3QgPiAudmlzdWFsLXN0
eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb24tbGlzdC1jb250YWlu
ZXIgPiAua2V5d29yZC1pY29uIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgd2lkdGg6
IDI2cHg7CisgICAgaGVpZ2h0OiAxOHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwor
ICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JleTsKKyAgICBib3JkZXItcmlnaHQ6IG5vbmU7
Cit9CisKKy52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmtleXdvcmQtaWNvbi1saXN0
ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAua2V5d29yZC1pY29u
LWxpc3QtY29udGFpbmVyID4gLmtleXdvcmQtaWNvbjpmaXJzdC1jaGlsZCB7CisgICAgYm9yZGVy
LXRvcC1sZWZ0LXJhZGl1czogNHB4OworICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRw
eDsKK30KKworLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29yZC1pY29uLWxp
c3QgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5rZXl3b3JkLWlj
b24tbGlzdC1jb250YWluZXIgPiAua2V5d29yZC1pY29uOmxhc3QtY2hpbGQgeworICAgIGJvcmRl
ci1yaWdodDogMXB4IHNvbGlkIGxpZ2h0Z3JleTsKKyAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1
czogNHB4OworICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7Cit9CisKKy52aXN1
YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmtleXdvcmQtaWNvbi1saXN0ID4gLnZpc3VhbC1z
dHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAua2V5d29yZC1pY29uLWxpc3QtY29udGFp
bmVyID4gLmtleXdvcmQtaWNvbjptYXRjaGVzKC5jb21wdXRlZCwgLnNlbGVjdGVkKSB7CisgICAg
d2lkdGg6IDI3cHg7CisgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQ7CisgICAgYm9yZGVyLWNv
bG9yOiByZ2IoMzQsIDEzMSwgMjQ2KTsKK30KKworLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250
YWluZXIua2V5d29yZC1pY29uLWxpc3QgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNv
bnRhaW5lciA+IC5rZXl3b3JkLWljb24tbGlzdC1jb250YWluZXIgPiAua2V5d29yZC1pY29uLnNl
bGVjdGVkIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzQsIDEzMSwgMjQ2KTsKK30KKwor
LnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29yZC1pY29uLWxpc3QgPiAudmlz
dWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb24tbGlzdC1j
b250YWluZXIgPiAua2V5d29yZC1pY29uLnNlbGVjdGVkIHN2ZyAuc3Ryb2tlZCB7CisgICAgc3Ry
b2tlOiB3aGl0ZTsKK30KKworLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29y
ZC1pY29uLWxpc3QgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5r
ZXl3b3JkLWljb24tbGlzdC1jb250YWluZXIgPiAua2V5d29yZC1pY29uLnNlbGVjdGVkIHN2ZyAu
ZmlsbGVkIHsKKyAgICBmaWxsOiB3aGl0ZTsKK30KKworLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1j
b250YWluZXIua2V5d29yZC1pY29uLWxpc3QgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVl
LWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb24tbGlzdC1jb250YWluZXIgPiAua2V5d29yZC1pY29u
Om1hdGNoZXMoLmNvbXB1dGVkLCAuc2VsZWN0ZWQpICsgLmtleXdvcmQtaWNvbiB7CisgICAgd2lk
dGg6IDI1cHg7CisgICAgYm9yZGVyLWxlZnQ6IG5vbmU7Cit9CisKKy52aXN1YWwtc3R5bGUtcHJv
cGVydHktY29udGFpbmVyLmtleXdvcmQtaWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0
eS12YWx1ZS1jb250YWluZXIgPiAua2V5d29yZC1pY29uLWxpc3QtY29udGFpbmVyID4gLmtleXdv
cmQtaWNvbiA+IGRpdiB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAg
ICBsZWZ0OiA1cHg7CisgICAgd2lkdGg6IDE2cHg7CisgICAgaGVpZ2h0OiAxNnB4OworICAgIHBv
aW50ZXItZXZlbnRzOiBub25lOworfQorCisudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5l
ci5rZXl3b3JkLWljb24tbGlzdCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFp
bmVyID4gLmtleXdvcmQtaWNvbi1saXN0LWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb246bm90KC5z
ZWxlY3RlZCkgPiBkaXYgeworICAgIG9wYWNpdHk6IDAuNzsKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlS2V5d29yZElj
b25MaXN0LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlz
dWFsU3R5bGVLZXl3b3JkSWNvbkxpc3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2M2MjE0MDdlNTc5YmVlMjcz
YWJhZjZhZjQ1YWUyZjBlZGMwMzMxMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlS2V5d29yZEljb25MaXN0Lmpz
CkBAIC0wLDAgKzEsMTE1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxl
S2V5d29yZEljb25MaXN0ID0gY2xhc3MgVmlzdWFsU3R5bGVLZXl3b3JkSWNvbkxpc3QgZXh0ZW5k
cyBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvcgoreworICAgIGNvbnN0cnVj
dG9yKHByb3BlcnR5TmFtZXMsIHRleHQsIHBvc3NpYmxlVmFsdWVzLCBsYXlvdXRSZXZlcnNlZCkK
KyAgICB7CisgICAgICAgIHN1cGVyKHByb3BlcnR5TmFtZXMsIHRleHQsIHBvc3NpYmxlVmFsdWVz
LCBudWxsLCAia2V5d29yZC1pY29uLWxpc3QiLCBsYXlvdXRSZXZlcnNlZCk7CisKKyAgICAgICAg
dGhpcy5faWNvbkxpc3RDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
KyAgICAgICAgdGhpcy5faWNvbkxpc3RDb250YWluZXIuY2xhc3NMaXN0LmFkZCgia2V5d29yZC1p
Y29uLWxpc3QtY29udGFpbmVyIik7CisKKyAgICAgICAgdGhpcy5faWNvbkVsZW1lbnRzID0gW107
CisgICAgICAgIHRoaXMuX2NvbXB1dGVkSWNvbiA9IG51bGw7CisgICAgICAgIHRoaXMuX3NlbGVj
dGVkSWNvbiA9IG51bGw7CisKKyAgICAgICAgdmFyIHByZXR0eVByb3BlcnR5UmVmZXJlbmNlTmFt
ZSA9IHRoaXMuX3Byb3BlcnR5UmVmZXJlbmNlTmFtZS5jYXBpdGFsaXplKCkucmVwbGFjZSgvKC0u
KS9nLGZ1bmN0aW9uKHgpeyByZXR1cm4geFsxXS50b1VwcGVyQ2FzZSgpIH0pOworCisgICAgICAg
IGZ1bmN0aW9uIGNyZWF0ZUxpc3RJdGVtKHZhbHVlLCB0aXRsZSkKKyAgICAgICAgeworICAgICAg
ICAgICAgdmFyIGljb25CdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsK
KyAgICAgICAgICAgIGljb25CdXR0b24uaWQgPSB2YWx1ZTsKKyAgICAgICAgICAgIGljb25CdXR0
b24udGl0bGUgPSB0aXRsZTsKKyAgICAgICAgICAgIGljb25CdXR0b24uY2xhc3NMaXN0LmFkZCgi
a2V5d29yZC1pY29uIik7CisgICAgICAgICAgICBpY29uQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIo
ImNsaWNrIiwgdGhpcy5faGFuZGxlS2V5d29yZENoYW5nZWQuYmluZCh0aGlzKSk7CisKKyAgICAg
ICAgICAgIHZhciBpbWFnZU5hbWUgPSB2YWx1ZSA9PT0gIm5vbmUiID8gIlZpc3VhbFN0eWxlTm9u
ZSIgOiBwcmV0dHlQcm9wZXJ0eVJlZmVyZW5jZU5hbWUgKyB0aXRsZS5yZXBsYWNlKC9ccy9nLCAi
Iik7CisgICAgICAgICAgICB3cmFwcGVkU1ZHRG9jdW1lbnQoIkltYWdlcy8iICsgaW1hZ2VOYW1l
ICsgIi5zdmciLCBudWxsLCBudWxsLCBmdW5jdGlvbih3cmFwcGVyKSB7CisgICAgICAgICAgICAg
ICAgaWNvbkJ1dHRvbi5hcHBlbmRDaGlsZCh3cmFwcGVyKTsKKyAgICAgICAgICAgIH0uYmluZCh0
aGlzKSk7CisKKyAgICAgICAgICAgIHJldHVybiBpY29uQnV0dG9uOworICAgICAgICB9CisKKyAg
ICAgICAgZm9yICh2YXIga2V5IGluIHRoaXMuX3Bvc3NpYmxlVmFsdWVzLmJhc2ljKSB7CisgICAg
ICAgICAgICB2YXIgaWNvbiA9IGNyZWF0ZUxpc3RJdGVtLmNhbGwodGhpcywga2V5LCB0aGlzLl9w
b3NzaWJsZVZhbHVlcy5iYXNpY1trZXldKTsKKyAgICAgICAgICAgIHRoaXMuX2ljb25MaXN0Q29u
dGFpbmVyLmFwcGVuZENoaWxkKGljb24pOworICAgICAgICAgICAgdGhpcy5faWNvbkVsZW1lbnRz
LnB1c2goaWNvbik7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9jb250ZW50RWxlbWVudC5h
cHBlbmRDaGlsZCh0aGlzLl9pY29uTGlzdENvbnRhaW5lcik7CisgICAgICAgIHRoaXMuX3ZhbHVl
UmVnRXhwID0gL14oW147XSspXHMqOz8kLzsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAg
IGdldCB2YWx1ZSgpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuX3NlbGVjdGVkSWNvbikKKyAg
ICAgICAgICAgIHJldHVybiBudWxsOworCisgICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZElj
b24uaWQ7CisgICAgfQorCisgICAgc2V0IHZhbHVlKHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhp
cy5fY29tcHV0ZWRJY29uID0gbnVsbDsKKyAgICAgICAgdGhpcy5fc2VsZWN0ZWRJY29uID0gbnVs
bDsKKyAgICAgICAgZm9yICh2YXIgaWNvbiBvZiB0aGlzLl9pY29uRWxlbWVudHMpIHsKKyAgICAg
ICAgICAgIGlmIChpY29uLmlkID09PSB0aGlzLl91cGRhdGVkVmFsdWVzLnBsYWNlaG9sZGVyKQor
ICAgICAgICAgICAgICAgIHRoaXMuX2NvbXB1dGVkSWNvbiA9IGljb247CisKKyAgICAgICAgICAg
IGlmIChpY29uLmlkID09PSB2YWx1ZSAmJiAhdGhpcy5fdXBkYXRlZFZhbHVlcy5wcm9wZXJ0eU1p
c3NpbmcpCisgICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRJY29uID0gaWNvbjsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpY29uLmNsYXNzTGlzdC5yZW1vdmUoInNlbGVj
dGVkIiwgImNvbXB1dGVkIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXRoaXMuX2NvbXB1
dGVkSWNvbikKKyAgICAgICAgICAgIHRoaXMuX2NvbXB1dGVkSWNvbiA9IHRoaXMuX2ljb25FbGVt
ZW50c1swXTsKKworICAgICAgICB2YXIgc2VsZWN0ZWQgPSB0aGlzLl9zZWxlY3RlZEljb24gJiYg
dGhpcy5fc2VsZWN0ZWRJY29uLmNsYXNzTGlzdC50b2dnbGUoInNlbGVjdGVkIik7CisgICAgICAg
IGlmICghc2VsZWN0ZWQpIHsKKyAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkSWNvbiA9IG51bGw7
CisgICAgICAgICAgICB0aGlzLl91cGRhdGVkVmFsdWVzLnByb3BlcnR5TWlzc2luZyA9IHRydWU7
CisgICAgICAgICAgICB0aGlzLl9jb21wdXRlZEljb24uY2xhc3NMaXN0LmFkZCgiY29tcHV0ZWQi
KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGdldCBzeW50aGVzaXplZFZhbHVlKCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLnZhbHVlOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKwor
ICAgIF9oYW5kbGVLZXl3b3JkQ2hhbmdlZChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX3Vw
ZGF0ZWRWYWx1ZXMucHJvcGVydHlNaXNzaW5nID0gZmFsc2U7CisgICAgICAgIHRoaXMudmFsdWUg
PSBldmVudC50YXJnZXQuaWQ7CisgICAgICAgIHRoaXMuX3ZhbHVlRGlkQ2hhbmdlKCk7CisgICAg
fQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Zpc3VhbFN0eWxlS2V5d29yZFBpY2tlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlS2V5d29yZFBpY2tlci5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45OGRkNTlhN2VhYmMwZTczMzg2NTgyMDE2ZWZmNjI1ZDU3ZDExMWFjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5
bGVLZXl3b3JkUGlja2VyLmpzCkBAIC0wLDAgKzEsMTU5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV2ViSW5z
cGVjdG9yLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlciA9IGNsYXNzIFZpc3VhbFN0eWxlS2V5d29y
ZFBpY2tlciBleHRlbmRzIFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yCit7
CisgICAgY29uc3RydWN0b3IocHJvcGVydHlOYW1lcywgdGV4dCwgcG9zc2libGVWYWx1ZXMsIGxh
eW91dFJldmVyc2VkKQorICAgIHsKKyAgICAgICAgc3VwZXIocHJvcGVydHlOYW1lcywgdGV4dCwg
cG9zc2libGVWYWx1ZXMsIG51bGwsICJrZXl3b3JkLXBpY2tlciIsIGxheW91dFJldmVyc2VkKTsK
KworICAgICAgICB0aGlzLl9rZXl3b3JkU2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
c2VsZWN0Iik7CisgICAgICAgIHRoaXMuX2tleXdvcmRTZWxlY3QuY2xhc3NMaXN0LmFkZCgia2V5
d29yZC1waWNrZXItc2VsZWN0Iik7CisgICAgICAgIGlmICh0aGlzLl9wb3NzaWJsZVZhbHVlcy5h
ZHZhbmNlZCkKKyAgICAgICAgICAgIHRoaXMuX2tleXdvcmRTZWxlY3QudGl0bGUgPSBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIkFsdCBDbGljayB0byBzaG93IGFsbCB2YWx1ZXMiKTsKKworICAgICAg
ICB0aGlzLl9hZGRWYWx1ZXModGhpcy5fcG9zc2libGVWYWx1ZXMuYmFzaWMpOworICAgICAgICB0
aGlzLl9hZHZhbmNlZFZhbHVlc0VsZW1lbnRzID0gbnVsbDsKKworICAgICAgICB0aGlzLl9rZXl3
b3JkU2VsZWN0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMuX2tleXdvcmRTZWxl
Y3RNb3VzZURvd24uYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuX2tleXdvcmRTZWxlY3QuYWRk
RXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgdGhpcy5faGFuZGxlS2V5d29yZENoYW5nZWQuYmluZCh0
aGlzKSk7CisgICAgICAgIHRoaXMuX2NvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2tl
eXdvcmRTZWxlY3QpOworCisgICAgICAgIHRoaXMuX3VuY2hhbmdlZE9wdGlvbiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpOworICAgICAgICB0aGlzLl91bmNoYW5nZWRPcHRpb24u
dmFsdWUgPSAiIjsKKyAgICAgICAgdGhpcy5fdW5jaGFuZ2VkT3B0aW9uLnRleHQgPSBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIlVuY2hhbmdlZCIpOworCisgICAgICAgIHRoaXMuX3ZhbHVlUmVnRXhw
ID0gL14oW147XSspXHMqOz8kLzsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGdldCB2
YWx1ZSgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fa2V5d29yZFNlbGVjdC52YWx1ZTsK
KyAgICB9CisKKyAgICBzZXQgdmFsdWUodmFsdWUpCisgICAgeworICAgICAgICBpZiAodGhpcy5f
dXBkYXRlZFZhbHVlcy5wcm9wZXJ0eU1pc3NpbmcgfHwgIXRoaXMudmFsdWVJc0tleXdvcmQodmFs
dWUpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy52
YWx1ZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAodGhpcy5fdmFsdWVJc0Fk
dmFuY2VkS2V5d29yZCh2YWx1ZSkpCisgICAgICAgICAgICB0aGlzLl9hZGRBZHZhbmNlZFZhbHVl
cygpOworCisgICAgICAgIHRoaXMuX2tleXdvcmRTZWxlY3QudmFsdWUgPSB2YWx1ZTsKKyAgICB9
CisKKyAgICBzZXQgcGxhY2Vob2xkZXIocGxhY2Vob2xkZXIpCisgICAgeworICAgICAgICB0aGlz
Ll9zcGVjaWFsUHJvcGVydHlQbGFjZWhvbGRlci50ZXh0Q29udGVudCA9IHRoaXMuX2tleUZvcktl
eXdvcmQocGxhY2Vob2xkZXIpIHx8IHBsYWNlaG9sZGVyOworICAgIH0KKworICAgIGdldCBzeW50
aGVzaXplZFZhbHVlKCkKKyAgICB7CisgICAgICAgIHZhciB2YWx1ZSA9IHRoaXMuX2tleXdvcmRT
ZWxlY3QudmFsdWU7CisgICAgICAgIGlmICghdmFsdWUgfHwgIXZhbHVlLmxlbmd0aCkKKyAgICAg
ICAgICAgIHJldHVybiBudWxsOworCisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICB9CisKKyAg
ICB1cGRhdGVFZGl0b3JWYWx1ZXModXBkYXRlZFZhbHVlcykKKyAgICB7CisgICAgICAgIGlmICh1
cGRhdGVkVmFsdWVzLnByb3BlcnR5TWlzc2luZyB8fCAhdXBkYXRlZFZhbHVlcy52YWx1ZSkgewor
ICAgICAgICAgICAgaWYgKCF0aGlzLl9rZXl3b3JkU2VsZWN0LmNvbnRhaW5zKHRoaXMuX3VuY2hh
bmdlZE9wdGlvbikpIHsKKyAgICAgICAgICAgICAgICB2YXIgZGl2aWRlciA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImhyIik7CisgICAgICAgICAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdC5p
bnNlcnRCZWZvcmUoZGl2aWRlciwgdGhpcy5fa2V5d29yZFNlbGVjdC5maXJzdENoaWxkKTsKKyAg
ICAgICAgICAgICAgICB0aGlzLl9rZXl3b3JkU2VsZWN0Lmluc2VydEJlZm9yZSh0aGlzLl91bmNo
YW5nZWRPcHRpb24sIGRpdmlkZXIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0aGlz
Ll91bmNoYW5nZWRPcHRpb24uc2VsZWN0ZWQgPSB0cnVlOworICAgICAgICAgICAgdGhpcy5fc3Bl
Y2lhbFByb3BlcnR5UGxhY2Vob2xkZXIuaGlkZGVuID0gZmFsc2U7CisgICAgICAgIH0gZWxzZSBp
ZiAodGhpcy5fa2V5d29yZFNlbGVjdC5jb250YWlucyh0aGlzLl91bmNoYW5nZWRPcHRpb24pKSB7
CisgICAgICAgICAgICB0aGlzLl91bmNoYW5nZWRPcHRpb24uc2VsZWN0ZWQgPSBmYWxzZTsKKyAg
ICAgICAgICAgIHRoaXMuX2tleXdvcmRTZWxlY3QucmVtb3ZlQ2hpbGQodGhpcy5fdW5jaGFuZ2Vk
T3B0aW9uKTsKKyAgICAgICAgICAgIHRoaXMuX2tleXdvcmRTZWxlY3QucmVtb3ZlQ2hpbGQodGhp
cy5fa2V5d29yZFNlbGVjdC5maXJzdENoaWxkKTsKKyAgICAgICAgICAgIHRoaXMuX3NwZWNpYWxQ
cm9wZXJ0eVBsYWNlaG9sZGVyLmhpZGRlbiA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBz
dXBlci51cGRhdGVFZGl0b3JWYWx1ZXModXBkYXRlZFZhbHVlcyk7CisgICAgfQorCisgICAgLy8g
UHJpdmF0ZQorCisgICAgX2hhbmRsZUtleXdvcmRDaGFuZ2VkKCkKKyAgICB7CisgICAgICAgIHRo
aXMuX3ZhbHVlRGlkQ2hhbmdlKCk7CisKKyAgICAgICAgaWYgKHRoaXMuX2tleXdvcmRTZWxlY3Qu
Y29udGFpbnModGhpcy5fdW5jaGFuZ2VkT3B0aW9uKSAmJiB0aGlzLl91bmNoYW5nZWRPcHRpb24u
c2VsZWN0ZWQpCisgICAgICAgICAgICB0aGlzLl9zcGVjaWFsUHJvcGVydHlQbGFjZWhvbGRlci5o
aWRkZW4gPSBmYWxzZTsKKyAgICB9CisKKyAgICBfa2V5d29yZFNlbGVjdE1vdXNlRG93bihldmVu
dCkKKyAgICB7CisgICAgICAgIGlmIChldmVudC5hbHRLZXkpCisgICAgICAgICAgICB0aGlzLl9h
ZGRBZHZhbmNlZFZhbHVlcygpOworICAgICAgICBlbHNlIGlmICghdGhpcy5fdmFsdWVJc0FkdmFu
Y2VkS2V5d29yZCgpKQorICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQWR2YW5jZWRWYWx1ZXMoKTsK
KyAgICB9CisKKyAgICBfYWRkVmFsdWVzKHZhbHVlcykKKyAgICB7CisgICAgICAgIHZhciBhZGRl
ZEVsZW1lbnRzID0gW107CisgICAgICAgIGZvciAodmFyIGtleSBpbiB2YWx1ZXMpIHsKKyAgICAg
ICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTsKKyAg
ICAgICAgICAgIG9wdGlvbi52YWx1ZSA9IGtleTsKKyAgICAgICAgICAgIG9wdGlvbi50ZXh0ID0g
dmFsdWVzW2tleV07CisgICAgICAgICAgICB0aGlzLl9rZXl3b3JkU2VsZWN0LmFwcGVuZENoaWxk
KG9wdGlvbik7CisgICAgICAgICAgICBhZGRlZEVsZW1lbnRzLnB1c2gob3B0aW9uKTsKKyAgICAg
ICAgfQorCisgICAgICAgIHJldHVybiBhZGRlZEVsZW1lbnRzOworICAgIH0KKworICAgIF9hZGRB
ZHZhbmNlZFZhbHVlcygpCisgICAgeworICAgICAgICBpZiAodGhpcy5fYWR2YW5jZWRWYWx1ZXNF
bGVtZW50cykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLl9rZXl3b3JkU2Vs
ZWN0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImhyIikpOworICAgICAgICB0
aGlzLl9hZHZhbmNlZFZhbHVlc0VsZW1lbnRzID0gdGhpcy5fYWRkVmFsdWVzKHRoaXMuX3Bvc3Np
YmxlVmFsdWVzLmFkdmFuY2VkKTsKKyAgICB9CisKKyAgICBfcmVtb3ZlQWR2YW5jZWRWYWx1ZXMo
KQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9hZHZhbmNlZFZhbHVlc0VsZW1lbnRzKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuX2tleXdvcmRTZWxlY3QucmVtb3ZlQ2hp
bGQodGhpcy5fYWR2YW5jZWRWYWx1ZXNFbGVtZW50c1swXS5wcmV2aW91c1NpYmxpbmcpOworICAg
ICAgICBmb3IgKHZhciBlbGVtZW50IG9mIHRoaXMuX2FkdmFuY2VkVmFsdWVzRWxlbWVudHMpCisg
ICAgICAgICAgICB0aGlzLl9rZXl3b3JkU2VsZWN0LnJlbW92ZUNoaWxkKGVsZW1lbnQpOworCisg
ICAgICAgIHRoaXMuX2FkdmFuY2VkVmFsdWVzRWxlbWVudHMgPSBudWxsOworICAgIH0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1
YWxTdHlsZVByb3BlcnR5TmFtZUlucHV0LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVQcm9wZXJ0eU5hbWVJbnB1dC5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40NTUxNWNkZDc0MWM2ZGYzMDFmZjRhMmU4NjVjYjcxMjY4NmFjNTRjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5
bGVQcm9wZXJ0eU5hbWVJbnB1dC5qcwpAQCAtMCwwICsxLDEzNSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dl
Ykluc3BlY3Rvci5WaXN1YWxTdHlsZVByb3BlcnR5TmFtZUlucHV0ID0gY2xhc3MgVmlzdWFsU3R5
bGVQcm9wZXJ0eU5hbWVJbnB1dCBleHRlbmRzIFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVByb3Bl
cnR5RWRpdG9yCit7CisgICAgY29uc3RydWN0b3IocHJvcGVydHlOYW1lcywgdGV4dCwgbGF5b3V0
UmV2ZXJzZWQpCisgICAgeworICAgICAgICBzdXBlcihwcm9wZXJ0eU5hbWVzLCB0ZXh0LCBudWxs
LCBudWxsLCAicHJvcGVydHktbmFtZS1pbnB1dCIsIGxheW91dFJldmVyc2VkKTsKKworICAgICAg
ICB0aGlzLl9wcm9wZXJ0eU5hbWVJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0
Iik7CisgICAgICAgIHRoaXMuX3Byb3BlcnR5TmFtZUlucHV0LnBsYWNlaG9sZGVyID0gV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJFbnRlciBhIG5hbWUuIik7CisgICAgICAgIHRoaXMuX3Byb3BlcnR5
TmFtZUlucHV0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCB0aGlzLl9pbnB1dEtleURvd24u
YmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuX3Byb3BlcnR5TmFtZUlucHV0LmFkZEV2ZW50TGlz
dGVuZXIoImtleXVwIiwgdGhpcy5faW5wdXRLZXlVcC5iaW5kKHRoaXMpKTsKKyAgICAgICAgdGhp
cy5fcHJvcGVydHlOYW1lSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsIHRoaXMuX2hpZGVD
b21wbGV0aW9ucy5iaW5kKHRoaXMpKTsKKyAgICAgICAgdGhpcy5fY29udGVudEVsZW1lbnQuYXBw
ZW5kQ2hpbGQodGhpcy5fcHJvcGVydHlOYW1lSW5wdXQpOworCisgICAgICAgIHRoaXMuX2NvbXBs
ZXRpb25Db250cm9sbGVyID0gbmV3IFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUNvbXBsZXRpb25z
Q29udHJvbGxlcih0aGlzKTsKKyAgICAgICAgdGhpcy5fY29tcGxldGlvbkNvbnRyb2xsZXIuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVDb21wbGV0aW9uc0NvbnRyb2xs
ZXIuRXZlbnQuQ29tcGxldGlvblNlbGVjdGVkLCB0aGlzLl9jb21wbGV0aW9uQ2xpY2tlZCwgdGhp
cyk7CisKKyAgICAgICAgdGhpcy5fdmFsdWVSZWdFeHAgPSAvXihbXjtdKylccyo7PyQvOworICAg
IH0KKworICAgIC8vIFB1YmxpYworCisgICAgZ2V0IHZhbHVlKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB0aGlzLl9wcm9wZXJ0eU5hbWVJbnB1dC52YWx1ZTsKKyAgICB9CisKKyAgICBzZXQgdmFs
dWUodmFsdWUpCisgICAgeworICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUgPT09IHRoaXMudmFs
dWUpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fcHJvcGVydHlOYW1lSW5w
dXQudmFsdWUgPSB2YWx1ZTsKKyAgICB9CisKKyAgICBnZXQgc3ludGhlc2l6ZWRWYWx1ZSgpCisg
ICAgeworICAgICAgICByZXR1cm4gdGhpcy52YWx1ZSB8fCBudWxsOworICAgIH0KKworICAgIGdl
dCBoYXNDb21wbGV0aW9ucygpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fY29tcGxldGlv
bkNvbnRyb2xsZXIuaGFzQ29tcGxldGlvbnM7CisgICAgfQorCisgICAgc2V0IGNvbXBsZXRpb25z
KGNvbXBsZXRpb25zKQorICAgIHsKKyAgICAgICAgdGhpcy5fY29tcGxldGlvbkNvbnRyb2xsZXIu
Y29tcGxldGlvbnMgPSBjb21wbGV0aW9uczsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAg
ICBfY29tcGxldGlvbkNsaWNrZWQoZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLnZhbHVlID0g
ZXZlbnQuZGF0YS50ZXh0OworICAgICAgICB0aGlzLl92YWx1ZURpZENoYW5nZSgpOworICAgIH0K
KworICAgIF9pbnB1dEtleURvd24oZXZlbnQpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuX2Nv
bXBsZXRpb25Db250cm9sbGVyLnZpc2libGUpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgdmFyIGtleUNvZGUgPSBldmVudC5rZXlDb2RlOworICAgICAgICBpZiAoa2V5Q29kZSA9PT0g
OSB8fCBrZXlDb2RlID09PSAxMykgeworICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuX2Nv
bXBsZXRpb25Db250cm9sbGVyLmN1cnJlbnRDb21wbGV0aW9uOworICAgICAgICAgICAgdGhpcy5f
aGlkZUNvbXBsZXRpb25zKCk7CisgICAgICAgICAgICB0aGlzLl92YWx1ZURpZENoYW5nZSgpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGtleUNvZGUgPT09
IDI3KSB7CisgICAgICAgICAgICB0aGlzLl9oaWRlQ29tcGxldGlvbnMoKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBrZXkgPSBldmVudC5rZXlJZGVudGlm
aWVyOworICAgICAgICBpZiAoa2V5ID09PSAiVXAiKSB7CisgICAgICAgICAgICB0aGlzLl9jb21w
bGV0aW9uQ29udHJvbGxlci5wcmV2aW91cygpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKGtleSA9PT0gIkRvd24iKSB7CisgICAgICAgICAgICB0aGlzLl9j
b21wbGV0aW9uQ29udHJvbGxlci5uZXh0KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBfaW5wdXRLZXlVcCgpCisgICAgeworICAgICAgICBpZiAoIXRoaXMu
aGFzQ29tcGxldGlvbnMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdmFyIHJlc3Vs
dCA9IHRoaXMuX3ZhbHVlRGlkQ2hhbmdlKCk7CisgICAgICAgIGlmICghcmVzdWx0KQorICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICh0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci51
cGRhdGUodGhpcy52YWx1ZSkpIHsKKyAgICAgICAgICAgIHZhciBib3VuZHMgPSBXZWJJbnNwZWN0
b3IuUmVjdC5yZWN0RnJvbUNsaWVudFJlY3QodGhpcy5fcHJvcGVydHlOYW1lSW5wdXQuZ2V0Qm91
bmRpbmdDbGllbnRSZWN0KCkpOworICAgICAgICAgICAgaWYgKCFib3VuZHMpCisgICAgICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgICAgICB0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci5z
aG93KGJvdW5kcywgMik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBfaGlkZUNvbXBsZXRpb25z
KCkKKyAgICB7CisgICAgICAgIHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLmhpZGUoKTsKKyAg
ICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvVmlzdWFsU3R5bGVVUkxJbnB1dC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVVJMSW5wdXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTYyNjk1
MGViZjNiZjE0ZTc4N2ZkZWYxMjZmNTMzNDE3NzUxZjFkYgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVVJMSW5w
dXQuanMKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dlYkluc3BlY3Rvci5WaXN1YWxT
dHlsZVVSTElucHV0ID0gY2xhc3MgVmlzdWFsU3R5bGVVUkxJbnB1dCBleHRlbmRzIFdlYkluc3Bl
Y3Rvci5WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yCit7CisgICAgY29uc3RydWN0b3IocHJvcGVy
dHlOYW1lcywgdGV4dCwgbGF5b3V0UmV2ZXJzZWQpCisgICAgeworICAgICAgICBzdXBlcihwcm9w
ZXJ0eU5hbWVzLCB0ZXh0LCBudWxsLCBudWxsLCAidXJsLWlucHV0IiwgbGF5b3V0UmV2ZXJzZWQp
OworCisgICAgICAgIHRoaXMuX3VybElucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5w
dXQiKTsKKyAgICAgICAgdGhpcy5fdXJsSW5wdXQudHlwZSA9ICJ1cmwiOworICAgICAgICB0aGlz
Ll91cmxJbnB1dC5wbGFjZWhvbGRlciA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRW50ZXIgYSB1
cmwiKTsKKyAgICAgICAgdGhpcy5fdXJsSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLCB0
aGlzLl92YWx1ZURpZENoYW5nZS5iaW5kKHRoaXMpKTsKKyAgICAgICAgdGhpcy5fY29udGVudEVs
ZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fdXJsSW5wdXQpOworCisgICAgICAgIHRoaXMuX3ZhbHVl
UmVnRXhwID0gL14oPzp1cmxcKFxzKikoW15cKV0qKSg/OlxzKlwpXHMqOz8pJC87CisgICAgfQor
CisgICAgLy8gUHVibGljCisKKyAgICBnZXQgdmFsdWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRoaXMuX3VybElucHV0LnZhbHVlOworICAgIH0KKworICAgIHNldCB2YWx1ZSh2YWx1ZSkKKyAg
ICB7CisgICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSA9PT0gdGhpcy52YWx1ZSkKKyAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICB0aGlzLl91cmxJbnB1dC52YWx1ZSA9IHZhbHVlOworICAg
IH0KKworICAgIGdldCBzeW50aGVzaXplZFZhbHVlKCkKKyAgICB7CisgICAgICAgIHZhciB2YWx1
ZSA9IHRoaXMudmFsdWU7CisKKyAgICAgICAgaWYgKCF2YWx1ZSB8fCAhdmFsdWUubGVuZ3RoKQor
ICAgICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAgICAgcmV0dXJuICJ1cmwoIiArIHRoaXMu
dmFsdWUgKyAiKSI7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVW5pdFNsaWRlci5jc3MgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVVuaXRTbGlkZXIu
Y3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFjY2E2MWY5M2U3NTc0MTBiZGFhZWZlNjhiMjMzYjU1N2QzNmZhMGYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9WaXN1YWxTdHlsZVVuaXRTbGlkZXIuY3NzCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci51bml0LXNsaWRlciA+IC52aXN1
YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnNsaWRlciB7CisgICAgcG9zaXRp
b246IHJlbGF0aXZlOworICAgIG1hcmdpbjogNXB4IDFweCAwOworfQorCisudmlzdWFsLXN0eWxl
LXByb3BlcnR5LWNvbnRhaW5lci51bml0LXNsaWRlciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHkt
dmFsdWUtY29udGFpbmVyID4gLnNsaWRlciA+IGltZyB7CisgICAgdG9wOiAtMXB4OworfQorCisu
dmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci51bml0LXNsaWRlci5vcGFjaXR5ID4gLnZp
c3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAuc2xpZGVyIHsKKyAgICBiYWNr
Z3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMCwgMCwgMCwgMCksICMw
MDApLCB1cmwoLi4vSW1hZ2VzL0NoZWNrZXJzLnN2Zyk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVVuaXRTbGlkZXIu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHls
ZVVuaXRTbGlkZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTlhNTZkMTk2ZjNhOGZhZjRlZTFiYmM1ZWQ0OWM4
ODA4NjQzY2JmZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVW5pdFNsaWRlci5qcwpAQCAtMCwwICsxLDYzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlVW5pdFNsaWRlciA9IGNsYXNz
IFZpc3VhbFN0eWxlVW5pdFNsaWRlciBleHRlbmRzIFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVBy
b3BlcnR5RWRpdG9yCit7CisgICAgY29uc3RydWN0b3IocHJvcGVydHlOYW1lcywgbGFiZWwsIGxh
eW91dFJldmVyc2VkKQorICAgIHsKKyAgICAgICAgc3VwZXIocHJvcGVydHlOYW1lcywgbGFiZWws
IG51bGwsIG51bGwsICJ1bml0LXNsaWRlciIsIGxheW91dFJldmVyc2VkKTsKKworICAgICAgICB0
aGlzLl9zbGlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlNsaWRlcjsKKyAgICAgICAgdGhpcy5fc2xp
ZGVyLmRlbGVnYXRlID0gdGhpczsKKyAgICAgICAgdGhpcy5fY29udGVudEVsZW1lbnQuYXBwZW5k
Q2hpbGQodGhpcy5fc2xpZGVyLmVsZW1lbnQpOworCisgICAgICAgIHRoaXMuX3ZhbHVlUmVnRXhw
ID0gL14oW147XSspXHMqOz8kLzsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIHNldCB2
YWx1ZSh2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmIChpc05hTih2YWx1ZSkgfHwgdGhpcy5fdXBk
YXRlZFZhbHVlcy5wcm9wZXJ0eU1pc3NpbmcpCisgICAgICAgICAgICB0aGlzLl9zbGlkZXIua25v
YlggPSB0aGlzLl91cGRhdGVkVmFsdWVzLnBsYWNlaG9sZGVyOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICB0aGlzLl9zbGlkZXIudmFsdWUgPSB2YWx1ZTsKKyAgICB9CisKKyAgICBnZXQgdmFs
dWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE1hdGgucm91bmQodGhpcy5fc2xpZGVyLnZhbHVl
ICogMTAwKSAvIDEwMDsKKyAgICB9CisKKyAgICBnZXQgc3ludGhlc2l6ZWRWYWx1ZSgpCisgICAg
eworICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTsKKyAgICB9CisKKyAgICBzbGlkZXJWYWx1ZURp
ZENoYW5nZShzbGlkZXIsIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5fdmFsdWVEaWRDaGFu
Z2UoKTsKKyAgICB9Cit9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258464</attachid>
            <date>2015-08-06 23:35:31 -0700</date>
            <delta_ts>2015-08-10 12:51:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147711-20150806233520.patch</filename>
            <type>text/plain</type>
            <size>73934</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDE2YjI3ZTdiYzQyYTU0ZmMyMjRiZjMyODNhMDA5
MDg0ZmRkYzZkMGIuLmE3ZTMzMDhlMzk5OTFiYzBmZmY5MzBiNDIxYzE3ZjZiNzYxOGIzMTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0NyBAQAorMjAxNS0wOC0wNiAgRGV2
aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
QWRkIGRpZmZlcmVudCB0eXBlcyBvZiBub24tbnVtZXJpY2FsIFZpc3VhbCBlZGl0b3JzIGZvciBD
U1MgcHJvcGVydGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ3NzExCisKKyAgICAgICAgQWRkZWQgZWRpdG9ycyBmb3Iga2V5d29yZCBiYXNlZCBD
U1MgcHJvcGVydGllcyBmb3IgdXNlIGluIHRoZSBWaXN1YWwgc3R5bGUKKyAgICAgICAgZGV0YWls
cyBwYW5lbCBpbiB0aGUgQ1NTIHNpZGViYXIuICBBbHNvIGFkZGVkIGltYWdlcyBmb3Iga2V5d29y
ZCB2YWx1ZXMgdGhhdAorICAgICAgICBhcmUgc2ltcGxlIGVub3VnaCB0byBiZSBjb252ZXllZCBp
biBhbiBpbWFnZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL0NsZWFyQm90aC5zdmc6IEFkZGVkLgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL0NsZWFyTGVmdC5zdmc6IEFkZGVkLgorICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvSW1hZ2VzL0NsZWFyUmlnaHQuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL0ltYWdlcy9GbG9hdExlZnQuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL0ltYWdlcy9GbG9hdFJpZ2h0LnN2ZzogQWRkZWQuCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9JbWFnZXMvRm9udFN0eWxlSXRhbGljLnN2ZzogQWRkZWQuCisgICAgICAgICogVXNl
ckludGVyZmFjZS9JbWFnZXMvRm9udFN0eWxlTm9ybWFsLnN2ZzogQWRkZWQuCisgICAgICAgICog
VXNlckludGVyZmFjZS9JbWFnZXMvRm9udFZhcmlhbnRTbWFsbENhcHMuc3ZnOiBBZGRlZC4KKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0QWxpZ25DZW50ZXIuc3ZnOiBBZGRlZC4K
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0QWxpZ25KdXN0aWZ5LnN2ZzogQWRk
ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dEFsaWduTGVmdC5zdmc6IEFk
ZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRBbGlnblJpZ2h0LnN2Zzog
QWRkZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dERlY29yYXRpb25MaW5l
VGhyb3VnaC5zdmc6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRE
ZWNvcmF0aW9uT3ZlcmxpbmUuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0lt
YWdlcy9UZXh0RGVjb3JhdGlvblVuZGVybGluZS5zdmc6IEFkZGVkLgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvSW1hZ2VzL1RleHRUcmFuc2Zvcm1DYXBpdGFsaXplLnN2ZzogQWRkZWQuCisgICAg
ICAgICogVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dFRyYW5zZm9ybUxvd2VyY2FzZS5zdmc6IEFk
ZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRUcmFuc2Zvcm1VcHBlcmNh
c2Uuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0ltYWdlcy9WaXN1YWxTdHls
ZU5vbmUuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1NsaWRlci5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TbGlkZXIucHJvdG90eXBlLnNldCB2YWx1ZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU2xpZGVyLnByb3RvdHlwZS5zZXQga25vYlgpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNsaWRlci5wcm90b3R5cGUuZ2V0IF9tYXhYKToKKyAgICAgICAgSWYg
dGhlIGdpdmVuIHZhbHVlIGlzIGJlbG93IDAsIHJlc2V0IGl0IHRvIDAuCisKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQ29sb3JQaWNrZXIuY3NzOiBBZGRlZC4KKyAg
ICAgICAgKC52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmlucHV0LWNvbG9yLXBpY2tl
ciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyKToKKyAgICAgICAgKC52
aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmlucHV0LWNvbG9yLXBpY2tlciA+IC52aXN1
YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnZpc3VhbC1zdHlsZS1zcGVjaWFs
LXByb3BlcnR5LXBsYWNlaG9sZGVyKToKKyAgICAgICAgKC52aXN1YWwtc3R5bGUtcHJvcGVydHkt
Y29udGFpbmVyLmlucHV0LWNvbG9yLXBpY2tlciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFs
dWUtY29udGFpbmVyID4gLmNvbG9yLXN3YXRjaCk6CisgICAgICAgICgudmlzdWFsLXN0eWxlLXBy
b3BlcnR5LWNvbnRhaW5lci5pbnB1dC1jb2xvci1waWNrZXIgPiAudmlzdWFsLXN0eWxlLXByb3Bl
cnR5LXZhbHVlLWNvbnRhaW5lciA+IC5jb2xvci1zd2F0Y2g6aG92ZXIpOgorICAgICAgICAoLnZp
c3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIuaW5wdXQtY29sb3ItcGlja2VyID4gLnZpc3Vh
bC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAuY29sb3Itc3dhdGNoOmFjdGl2ZSk6
CisgICAgICAgICgudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5pbnB1dC1jb2xvci1w
aWNrZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5jb2xvci1z
d2F0Y2ggPiBzcGFuKToKKyAgICAgICAgKC52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVy
LmlucHV0LWNvbG9yLXBpY2tlciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFp
bmVyID4gaW5wdXQpOgorICAgICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIu
aW5wdXQtY29sb3ItcGlja2VyLm11bHRpcGxlID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1
ZS1jb250YWluZXIgPiAudmlzdWFsLXN0eWxlLW11bHRpcGxlLXByb3BlcnR5LXBsYWNlaG9sZGVy
KToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVDb2xvclBpY2tl
ci5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVDb2xvclBpY2tl
cik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVDb2xvclBpY2tlci5wcm90b3R5
cGUuZ2V0IHZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUNvbG9yUGlj
a2VyLnByb3RvdHlwZS5zZXQgdmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0
eWxlQ29sb3JQaWNrZXIucHJvdG90eXBlLmdldCBwbGFjZWhvbGRlcik6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVmlzdWFsU3R5bGVDb2xvclBpY2tlci5wcm90b3R5cGUuc2V0IHBsYWNlaG9sZGVy
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUNvbG9yUGlja2VyLnByb3RvdHlw
ZS5nZXQgc3ludGhlc2l6ZWRWYWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5
bGVDb2xvclBpY2tlci5wcm90b3R5cGUuZ2V0IGhhc0NvbXBsZXRpb25zKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5WaXN1YWxTdHlsZUNvbG9yUGlja2VyLnByb3RvdHlwZS5zZXQgY29tcGxldGlv
bnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlQ29sb3JQaWNrZXIucHJvdG90
eXBlLl91cGRhdGVDb2xvclN3YXRjaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5
bGVDb2xvclBpY2tlci5wcm90b3R5cGUuX2NvbG9yU3dhdGNoQ2xpY2tlZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVDb2xvclBpY2tlci5wcm90b3R5cGUuX2NvbG9yUGlja2Vy
Q29sb3JEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlQ29sb3JQ
aWNrZXIucHJvdG90eXBlLl9jb21wbGV0aW9uQ2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVmlzdWFsU3R5bGVDb2xvclBpY2tlci5wcm90b3R5cGUuX3RleHRJbnB1dEtleURvd24pOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlQ29sb3JQaWNrZXIucHJvdG90eXBlLl90
ZXh0SW5wdXRLZXlVcCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVDb2xvclBp
Y2tlci5wcm90b3R5cGUuX3Nob3dDb21wbGV0aW9uc0lmQWJsZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVmlzdWFsU3R5bGVDb2xvclBpY2tlci5wcm90b3R5cGUuX2hpZGVDb21wbGV0aW9ucyk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVDb2xvclBpY2tlci5wcm90b3R5cGUu
X3RvZ2dsZVRhYmJpbmdPZlNlbGVjdGFibGVFbGVtZW50cyk6CisKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlS2V5d29yZENoZWNrYm94LmNzczogQWRkZWQuCisgICAg
ICAgICgudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5rZXl3b3JkLWNoZWNrYm94ID4g
LnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIpOgorICAgICAgICAoLnZpc3Vh
bC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29yZC1jaGVja2JveCA+IC52aXN1YWwtc3R5
bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gaW5wdXQpOgorICAgICAgICAoLnZpc3VhbC1z
dHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29yZC1jaGVja2JveCA+IC52aXN1YWwtc3R5bGUt
cHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gZGl2KToKKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvVmlzdWFsU3R5bGVLZXl3b3JkQ2hlY2tib3guanM6IEFkZGVkLgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlS2V5d29yZENoZWNrYm94KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5WaXN1YWxTdHlsZUtleXdvcmRDaGVja2JveC5wcm90b3R5cGUuZ2V0IHZhbHVlKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUtleXdvcmRDaGVja2JveC5wcm90b3R5
cGUuc2V0IHZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUtleXdvcmRD
aGVja2JveC5wcm90b3R5cGUuZ2V0IHN5bnRoZXNpemVkVmFsdWUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlZpc3VhbFN0eWxlS2V5d29yZENoZWNrYm94LnByb3RvdHlwZS5fdG9nZ2xlVGFiYmlu
Z09mU2VsZWN0YWJsZUVsZW1lbnRzKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
VmlzdWFsU3R5bGVLZXl3b3JkSWNvbkxpc3QuY3NzOiBBZGRlZC4KKyAgICAgICAgKC52aXN1YWwt
c3R5bGUtcHJvcGVydHktY29udGFpbmVyLmtleXdvcmQtaWNvbi1saXN0ID4gLnZpc3VhbC1zdHls
ZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIpOgorICAgICAgICAoLnZpc3VhbC1zdHlsZS1wcm9w
ZXJ0eS1jb250YWluZXIua2V5d29yZC1pY29uLWxpc3QgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5
LXZhbHVlLWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb24tbGlzdC1jb250YWluZXIpOgorICAgICAg
ICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29yZC1pY29uLWxpc3QgPiAu
dmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb24tbGlz
dC1jb250YWluZXIgPiAua2V5d29yZC1pY29uKToKKyAgICAgICAgKC52aXN1YWwtc3R5bGUtcHJv
cGVydHktY29udGFpbmVyLmtleXdvcmQtaWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0
eS12YWx1ZS1jb250YWluZXIgPiAua2V5d29yZC1pY29uLWxpc3QtY29udGFpbmVyID4gLmtleXdv
cmQtaWNvbjpmaXJzdC1jaGlsZCk6CisgICAgICAgICgudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNv
bnRhaW5lci5rZXl3b3JkLWljb24tbGlzdCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUt
Y29udGFpbmVyID4gLmtleXdvcmQtaWNvbi1saXN0LWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb246
bGFzdC1jaGlsZCk6CisgICAgICAgICgudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5r
ZXl3b3JkLWljb24tbGlzdCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVy
ID4gLmtleXdvcmQtaWNvbi1saXN0LWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb246bWF0Y2hlcygu
Y29tcHV0ZWQsIC5zZWxlY3RlZCkpOgorICAgICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1j
b250YWluZXIua2V5d29yZC1pY29uLWxpc3QgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVl
LWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb24tbGlzdC1jb250YWluZXIgPiAua2V5d29yZC1pY29u
LnNlbGVjdGVkKToKKyAgICAgICAgKC52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmtl
eXdvcmQtaWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIg
PiAua2V5d29yZC1pY29uLWxpc3QtY29udGFpbmVyID4gLmtleXdvcmQtaWNvbi5zZWxlY3RlZCBz
dmcgLnN0cm9rZWQpOgorICAgICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIu
a2V5d29yZC1pY29uLWxpc3QgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5l
ciA+IC5rZXl3b3JkLWljb24tbGlzdC1jb250YWluZXIgPiAua2V5d29yZC1pY29uLnNlbGVjdGVk
IHN2ZyAuZmlsbGVkKToKKyAgICAgICAgKC52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVy
LmtleXdvcmQtaWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWlu
ZXIgPiAua2V5d29yZC1pY29uLWxpc3QtY29udGFpbmVyID4gLmtleXdvcmQtaWNvbjptYXRjaGVz
KC5jb21wdXRlZCwgLnNlbGVjdGVkKSArIC5rZXl3b3JkLWljb24pOgorICAgICAgICAoLnZpc3Vh
bC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29yZC1pY29uLWxpc3QgPiAudmlzdWFsLXN0
eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb24tbGlzdC1jb250YWlu
ZXIgPiAua2V5d29yZC1pY29uID4gZGl2KToKKyAgICAgICAgKC52aXN1YWwtc3R5bGUtcHJvcGVy
dHktY29udGFpbmVyLmtleXdvcmQtaWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12
YWx1ZS1jb250YWluZXIgPiAua2V5d29yZC1pY29uLWxpc3QtY29udGFpbmVyID4gLmtleXdvcmQt
aWNvbjpub3QoLnNlbGVjdGVkKSA+IGRpdik6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Zp
ZXdzL1Zpc3VhbFN0eWxlS2V5d29yZEljb25MaXN0LmpzOiBBZGRlZC4KKyAgICAgICAgKFdlYklu
c3BlY3Rvci5WaXN1YWxTdHlsZUtleXdvcmRJY29uTGlzdC5kYXNoVG9DYXBpdGFsKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUtleXdvcmRJY29uTGlzdC5jcmVhdGVMaXN0SXRl
bSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVLZXl3b3JkSWNvbkxpc3QpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlS2V5d29yZEljb25MaXN0LnByb3RvdHlw
ZS5nZXQgdmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlS2V5d29yZElj
b25MaXN0LnByb3RvdHlwZS5zZXQgdmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3Vh
bFN0eWxlS2V5d29yZEljb25MaXN0LnByb3RvdHlwZS5nZXQgc3ludGhlc2l6ZWRWYWx1ZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVLZXl3b3JkSWNvbkxpc3QucHJvdG90eXBl
Ll9oYW5kbGVLZXl3b3JkQ2hhbmdlZCk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L1Zpc3VhbFN0eWxlS2V5d29yZFBpY2tlci5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0
b3IuVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1
YWxTdHlsZUtleXdvcmRQaWNrZXIucHJvdG90eXBlLmdldCB2YWx1ZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyLnByb3RvdHlwZS5zZXQgdmFsdWUpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlci5wcm90b3R5cGUu
c2V0IHBsYWNlaG9sZGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUtleXdv
cmRQaWNrZXIucHJvdG90eXBlLmdldCBzeW50aGVzaXplZFZhbHVlKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIucHJvdG90eXBlLnVwZGF0ZUVkaXRvclZh
bHVlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyLnBy
b3RvdHlwZS5faGFuZGxlS2V5d29yZENoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZp
c3VhbFN0eWxlS2V5d29yZFBpY2tlci5wcm90b3R5cGUuX2tleXdvcmRTZWxlY3RNb3VzZURvd24p
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlci5wcm90b3R5
cGUuX2FkZFZhbHVlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVLZXl3b3Jk
UGlja2VyLnByb3RvdHlwZS5fYWRkQWR2YW5jZWRWYWx1ZXMpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlci5wcm90b3R5cGUuX3JlbW92ZUFkdmFuY2VkVmFs
dWVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIucHJv
dG90eXBlLl90b2dnbGVUYWJiaW5nT2ZTZWxlY3RhYmxlRWxlbWVudHMpOgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVByb3BlcnR5TmFtZUlucHV0LmpzOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVByb3BlcnR5TmFtZUlucHV0KToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVByb3BlcnR5TmFtZUlucHV0LnByb3Rv
dHlwZS5nZXQgdmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlUHJvcGVy
dHlOYW1lSW5wdXQucHJvdG90eXBlLnNldCB2YWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VmlzdWFsU3R5bGVQcm9wZXJ0eU5hbWVJbnB1dC5wcm90b3R5cGUuZ2V0IHN5bnRoZXNpemVkVmFs
dWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlUHJvcGVydHlOYW1lSW5wdXQu
cHJvdG90eXBlLmdldCBoYXNDb21wbGV0aW9ucyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlz
dWFsU3R5bGVQcm9wZXJ0eU5hbWVJbnB1dC5wcm90b3R5cGUuc2V0IGNvbXBsZXRpb25zKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVByb3BlcnR5TmFtZUlucHV0LnByb3RvdHlw
ZS5fY29tcGxldGlvbkNsaWNrZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxl
UHJvcGVydHlOYW1lSW5wdXQucHJvdG90eXBlLl9pbnB1dEtleURvd24pOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlZpc3VhbFN0eWxlUHJvcGVydHlOYW1lSW5wdXQucHJvdG90eXBlLl9pbnB1dEtl
eVVwKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVByb3BlcnR5TmFtZUlucHV0
LnByb3RvdHlwZS5faGlkZUNvbXBsZXRpb25zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1
YWxTdHlsZVByb3BlcnR5TmFtZUlucHV0LnByb3RvdHlwZS5fdG9nZ2xlVGFiYmluZ09mU2VsZWN0
YWJsZUVsZW1lbnRzKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5
bGVVUkxJbnB1dC5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVV
UkxJbnB1dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVVUkxJbnB1dC5wcm90
b3R5cGUuc2V0IGdldCB2YWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVV
UkxJbnB1dC5wcm90b3R5cGUucGFyc2VWYWx1ZSk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L1ZpZXdzL1Zpc3VhbFN0eWxlVW5pdFNsaWRlci5jc3M6IEFkZGVkLgorICAgICAgICAoLnZpc3Vh
bC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIudW5pdC1zbGlkZXIgPiAudmlzdWFsLXN0eWxlLXBy
b3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5zbGlkZXIpOgorICAgICAgICAoLnZpc3VhbC1zdHls
ZS1wcm9wZXJ0eS1jb250YWluZXIudW5pdC1zbGlkZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5
LXZhbHVlLWNvbnRhaW5lciA+IC5zbGlkZXIgPiBpbWcpOgorICAgICAgICAoLnZpc3VhbC1zdHls
ZS1wcm9wZXJ0eS1jb250YWluZXIudW5pdC1zbGlkZXIub3BhY2l0eSA+IC52aXN1YWwtc3R5bGUt
cHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnNsaWRlcik6CisKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVW5pdFNsaWRlci5qczogQWRkZWQuCisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVVbml0U2xpZGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5WaXN1YWxTdHlsZVVuaXRTbGlkZXIucHJvdG90eXBlLnNldCB2YWx1ZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVVbml0U2xpZGVyLnByb3RvdHlwZS5nZXQgdmFsdWUpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlVW5pdFNsaWRlci5wcm90b3R5cGUuZ2V0
IHN5bnRoZXNpemVkVmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlVW5p
dFNsaWRlci5wcm90b3R5cGUuc2xpZGVyVmFsdWVEaWRDaGFuZ2UpOgorCiAyMDE1LTA4LTA1ICBE
ZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBNb3ZlIHRoZSBNZXRyaWNzIHN0eWxlIHNpZGViYXIgcGFuZWwgaW50byBDb21wdXRlZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0NsZWFy
Qm90aC5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQ2xl
YXJCb3RoLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42M2U0MzIyMjE1YzdmMDVkOTZmODQ0Yjg4M2MxZGY3NGMx
MzZmMjE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvSW1hZ2VzL0NsZWFyQm90aC5zdmcKQEAgLTAsMCArMSwxMyBAQAorPD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzwhLS0gQ29weXJpZ2h0IMKpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKzxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+CisgICAgPHJl
Y3QgY2xhc3M9InN0cm9rZWQiIHg9IjAuNSIgeT0iMS41IiB3aWR0aD0iMy41IiBoZWlnaHQ9IjEy
IiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ryb2tlPSJibGFjayIgLz4KKyAgICA8cG9seWdvbiBjbGFz
cz0iZmlsbGVkIiBwb2ludHM9IjAuNSAzLjUgMC41IDUuNSA0IDMuNSA0IDEuNSIgc3Ryb2tlPSJu
b25lIiBzdHlsZT0ib3BhY2l0eTogMC43IiAvPgorICAgIDxwb2x5Z29uIGNsYXNzPSJmaWxsZWQi
IHBvaW50cz0iMC41IDcuNSAwLjUgOS41IDQgNy41IDQgNS41IiBzdHJva2U9Im5vbmUiIHN0eWxl
PSJvcGFjaXR5OiAwLjciIC8+CisgICAgPHBvbHlnb24gY2xhc3M9ImZpbGxlZCIgcG9pbnRzPSIw
LjUgMTEuNSAwLjUgMTMuNSA0IDExLjUgNCA5LjUiIHN0cm9rZT0ibm9uZSIgc3R5bGU9Im9wYWNp
dHk6IDAuNyIgLz4KKyAgICA8cmVjdCBjbGFzcz0ic3Ryb2tlZCIgeD0iMTIiIHk9IjEuNSIgd2lk
dGg9IjMuNSIgaGVpZ2h0PSIxMiIgZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0iYmxhY2siIC8+
CisgICAgPHBvbHlnb24gY2xhc3M9ImZpbGxlZCIgcG9pbnRzPSIxMiAzLjUgMTIgNS41IDE1LjUg
My41IDE1LjUgMS41IiBzdHJva2U9Im5vbmUiIHN0eWxlPSJvcGFjaXR5OiAwLjciIC8+CisgICAg
PHBvbHlnb24gY2xhc3M9ImZpbGxlZCIgcG9pbnRzPSIxMiA3LjUgMTIgOS41IDE1LjUgNy41IDE1
LjUgNS41IiBzdHJva2U9Im5vbmUiIHN0eWxlPSJvcGFjaXR5OiAwLjciIC8+CisgICAgPHBvbHln
b24gY2xhc3M9ImZpbGxlZCIgcG9pbnRzPSIxMiAxMS41IDEyIDEzLjUgMTUuNSAxMS41IDE1LjUg
OS41IiBzdHJva2U9Im5vbmUiIHN0eWxlPSJvcGFjaXR5OiAwLjciIC8+CisgICAgPHJlY3QgY2xh
c3M9InN0cm9rZWQiIHg9IjUuNSIgeT0iNSIgd2lkdGg9IjUiIGhlaWdodD0iNSIgZmlsbD0ibm9u
ZSIgc3Ryb2tlPSJibGFjayIgLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0NsZWFyTGVmdC5zdmcgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQ2xlYXJMZWZ0LnN2ZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
YWI0MTA4ZDJhMjAxNDRlYzQyNmNjNjhkYmFhZDM0NjJkOTE0ZTI2Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0NsZWFyTGVmdC5z
dmcKQEAgLTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/
PgorPCEtLSBDb3B5cmlnaHQgwqkgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
IC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2
ZyIgdmlld0JveD0iMCAwIDE2IDE2Ij4KKyAgICA8cmVjdCBjbGFzcz0ic3Ryb2tlZCIgeD0iMiIg
eT0iMS41IiB3aWR0aD0iNSIgaGVpZ2h0PSIxMiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIg
Lz4KKyAgICA8cG9seWdvbiBjbGFzcz0iZmlsbGVkIiBwb2ludHM9IjIgMy41IDIgNS41IDcgMy41
IDcgMS41IiBzdHJva2U9Im5vbmUiIHN0eWxlPSJvcGFjaXR5OiAwLjciIC8+CisgICAgPHBvbHln
b24gY2xhc3M9ImZpbGxlZCIgcG9pbnRzPSIyIDcuNSAyIDkuNSA3IDcuNSA3IDUuNSIgc3Ryb2tl
PSJub25lIiBzdHlsZT0ib3BhY2l0eTogMC43IiAvPgorICAgIDxwb2x5Z29uIGNsYXNzPSJmaWxs
ZWQiIHBvaW50cz0iMiAxMS41IDIgMTMuNSA3IDExLjUgNyA5LjUiIHN0cm9rZT0ibm9uZSIgc3R5
bGU9Im9wYWNpdHk6IDAuNyIgLz4KKyAgICA8cmVjdCBjbGFzcz0ic3Ryb2tlZCIgeD0iOSIgeT0i
NSIgd2lkdGg9IjUiIGhlaWdodD0iNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgLz4KKzwv
c3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1h
Z2VzL0NsZWFyUmlnaHQuc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
SW1hZ2VzL0NsZWFyUmlnaHQuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzMjExMTkyNzk2YWQyOTI3OTgyNGE2
OTlkMDkxMDhjNDMwOGM3OWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9JbWFnZXMvQ2xlYXJSaWdodC5zdmcKQEAgLTAsMCArMSw5IEBACis8
P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEtLSBDb3B5cmlnaHQgwqkg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB2ZXJzaW9uPSIx
LjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2
Ij4KKyAgICA8cmVjdCBjbGFzcz0ic3Ryb2tlZCIgeD0iOSIgeT0iMS41IiB3aWR0aD0iNSIgaGVp
Z2h0PSIxMiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgLz4KKyAgICA8cG9seWdvbiBjbGFz
cz0iZmlsbGVkIiBwb2ludHM9IjkgMy41IDkgNS41IDE0IDMuNSAxNCAxLjUiIHN0cm9rZT0ibm9u
ZSIgc3R5bGU9Im9wYWNpdHk6IDAuNyIgLz4KKyAgICA8cG9seWdvbiBjbGFzcz0iZmlsbGVkIiBw
b2ludHM9IjkgNy41IDkgOS41IDE0IDcuNSAxNCA1LjUiIHN0cm9rZT0ibm9uZSIgc3R5bGU9Im9w
YWNpdHk6IDAuNyIgLz4KKyAgICA8cG9seWdvbiBjbGFzcz0iZmlsbGVkIiBwb2ludHM9IjkgMTEu
NSA5IDEzLjUgMTQgMTEuNSAxNCA5LjUiIHN0cm9rZT0ibm9uZSIgc3R5bGU9Im9wYWNpdHk6IDAu
NyIgLz4KKyAgICA8cmVjdCBjbGFzcz0ic3Ryb2tlZCIgeD0iMiIgeT0iNSIgd2lkdGg9IjUiIGhl
aWdodD0iNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0Zsb2F0TGVmdC5z
dmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvRmxvYXRMZWZ0
LnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jNDMxYjY2ZTQzYWE4YTYzZWI1ZDkwNDQwY2ZmNWZjNWRmMzJlZmNk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
SW1hZ2VzL0Zsb2F0TGVmdC5zdmcKQEAgLTAsMCArMSwxMCBAQAorPD94bWwgdmVyc2lvbj0iMS4w
IiBlbmNvZGluZz0idXRmLTgiPz4KKzwhLS0gQ29weXJpZ2h0IMKpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKzxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDov
L3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgc3Ryb2tlPSJibGFjayI+
CisgICAgPHJlY3QgY2xhc3M9InN0cm9rZWQiIHg9IjAuNSIgeT0iMi41IiB3aWR0aD0iNSIgaGVp
Z2h0PSI1IiBmaWxsPSJub25lIiAvPgorICAgIDxsaW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iNy41
IiB5MT0iMi41IiB4Mj0iMTYiIHkyPSIyLjUiIC8+CisgICAgPGxpbmUgY2xhc3M9InN0cm9rZWQi
IHgxPSI3LjUiIHkxPSI1IiB4Mj0iMTYiIHkyPSI1IiAvPgorICAgIDxsaW5lIGNsYXNzPSJzdHJv
a2VkIiB4MT0iNy41IiB5MT0iNy41IiB4Mj0iMTYiIHkyPSI3LjUiIC8+CisgICAgPGxpbmUgY2xh
c3M9InN0cm9rZWQiIHgxPSIwIiB5MT0iMTAiIHgyPSIxNiIgeTI9IjEwIiAvPgorICAgIDxsaW5l
IGNsYXNzPSJzdHJva2VkIiB4MT0iMCIgeTE9IjEyLjUiIHgyPSIxNiIgeTI9IjEyLjUiIC8+Cis8
L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0lt
YWdlcy9GbG9hdFJpZ2h0LnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0ltYWdlcy9GbG9hdFJpZ2h0LnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTgxYzY1ODE1MTE4OWZkYjZmNzZm
OTc3ZjRjYzM4NjI1ZDg0OWVjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0Zsb2F0UmlnaHQuc3ZnCkBAIC0wLDAgKzEsMTAgQEAK
Kzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IS0tIENvcHlyaWdodCDC
qSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Cis8c3ZnIHZlcnNpb249
IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTYg
MTYiIHN0cm9rZT0iYmxhY2siPgorICAgIDxyZWN0IGNsYXNzPSJzdHJva2VkIiB4PSIxMC41IiB5
PSIyLjUiIHdpZHRoPSI1IiBoZWlnaHQ9IjUiIGZpbGw9Im5vbmUiIC8+CisgICAgPGxpbmUgY2xh
c3M9InN0cm9rZWQiIHgxPSIwIiB5MT0iMi41IiB4Mj0iOC41IiB5Mj0iMi41IiAvPgorICAgIDxs
aW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iMCIgeTE9IjUiIHgyPSI4LjUiIHkyPSI1IiAvPgorICAg
IDxsaW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iMCIgeTE9IjcuNSIgeDI9IjguNSIgeTI9IjcuNSIg
Lz4KKyAgICA8bGluZSBjbGFzcz0ic3Ryb2tlZCIgeDE9IjAiIHkxPSIxMCIgeDI9IjE2IiB5Mj0i
MTAiIC8+CisgICAgPGxpbmUgY2xhc3M9InN0cm9rZWQiIHgxPSIwIiB5MT0iMTIuNSIgeDI9IjE2
IiB5Mj0iMTIuNSIgLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0ZvbnRTdHlsZUl0YWxpYy5zdmcgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvRm9udFN0eWxlSXRhbGljLnN2ZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iMTE2NDI2NGY5YjhkMzA1ZDRmM2ExODExYjYxYTY5YmMyOGU4YmE1Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0ZvbnRT
dHlsZUl0YWxpYy5zdmcKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29k
aW5nPSJ1dGYtOCI/PgorPCEtLSBDb3B5cmlnaHQgwqkgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiBmb250LXNpemU9IjkiIGZvbnQtZmFt
aWx5PSItYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmIiBmb250LXN0eWxlPSJpdGFsaWMiPgorICAg
IDx0ZXh0IGNsYXNzPSJmaWxsZWQiIHg9Ii0xIiB5PSIxMSI+QWJjPC90ZXh0PgorPC9zdmc+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvRm9u
dFN0eWxlTm9ybWFsLnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0lt
YWdlcy9Gb250U3R5bGVOb3JtYWwuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2NWFmZWI0OGEzMDYxNThkZWQ1
NGQxNDY2ZjcwNDY3YzM2OWMzNGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvRm9udFN0eWxlTm9ybWFsLnN2ZwpAQCAtMCwwICsx
LDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IS0tIENvcHly
aWdodCDCqSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Cis8c3ZnIHZl
cnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIw
IDAgMTYgMTYiIGZvbnQtc2l6ZT0iOSIgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sIHNhbnMt
c2VyaWYiPgorICAgIDx0ZXh0IGNsYXNzPSJmaWxsZWQiIHg9Ii0xIiB5PSIxMSI+QWJjPC90ZXh0
PgorPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9JbWFnZXMvRm9udFZhcmlhbnRTbWFsbENhcHMuc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0ZvbnRWYXJpYW50U21hbGxDYXBzLnN2ZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xNzQ2MTA3ZTEzNTZjNmMxZmE2Yzk0Zjk1Y2Q0OTNlMGU2ZWY2MDcwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0ZvbnRWYXJp
YW50U21hbGxDYXBzLnN2ZwpAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5j
b2Rpbmc9InV0Zi04Ij8+Cis8IS0tIENvcHlyaWdodCDCqSAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4gLS0+Cis8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZvbnQtc2l6ZT0iNyIgZm9udC1m
YW1pbHk9Ii1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWYiPgorICAgIDxyZWN0IGNsYXNzPSJmaWxs
ZWQiIHg9Ii0yIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9IndoaXRlIiBzdHJva2U9Im5v
bmUiIC8+CisgICAgPHRleHQgY2xhc3M9ImZpbGxlZCIgeD0iMC4yNSIgeT0iMTEiIGZvbnQtc2l6
ZT0iMTAiPkE8L3RleHQ+CisgICAgPHRleHQgY2xhc3M9ImZpbGxlZCIgeD0iNi43NSIgeT0iMTEi
PkI8L3RleHQ+CisgICAgPHRleHQgY2xhc3M9ImZpbGxlZCIgeD0iMTEiIHk9IjExIj5DPC90ZXh0
PgorPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9JbWFnZXMvVGV4dEFsaWduQ2VudGVyLnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0ltYWdlcy9UZXh0QWxpZ25DZW50ZXIuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiNjViNGYy
NGIzYjI4OTgxMGJiY2UxZGRkNjJmZjMzZDQzY2E2NGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dEFsaWduQ2VudGVyLnN2
ZwpAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+
Cis8IS0tIENvcHlyaWdodCDCqSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4g
LS0+Cis8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3Zn
IiB2aWV3Qm94PSIwIDAgMTYgMTYiIHN0cm9rZT0iYmxhY2siPgorICAgIDxsaW5lIGNsYXNzPSJz
dHJva2VkIiB4MT0iMC41IiB5MT0iMyIgeDI9IjE0LjUiIHkyPSIzIiAvPgorICAgIDxsaW5lIGNs
YXNzPSJzdHJva2VkIiB4MT0iMyIgeTE9IjUuNSIgeDI9IjEyIiB5Mj0iNS41IiAvPgorICAgIDxs
aW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iMC41IiB5MT0iOCIgeDI9IjE0LjUiIHkyPSI4IiAvPgor
ICAgIDxsaW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iMyIgeTE9IjEwLjUiIHgyPSIxMiIgeTI9IjEw
LjUiIC8+CisgICAgPGxpbmUgY2xhc3M9InN0cm9rZWQiIHgxPSIwLjUiIHkxPSIxMyIgeDI9IjE0
LjUiIHkyPSIxMyIgLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRBbGlnbkp1c3RpZnkuc3ZnIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRBbGlnbkp1c3RpZnkuc3ZnCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQ1ZTI4YTNiNTFhZmE4OTJlZDc3Mjg3ZDg2N2FhNGVmZWUyMzljYmYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4
dEFsaWduSnVzdGlmeS5zdmcKQEAgLTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVu
Y29kaW5nPSJ1dGYtOCI/PgorPCEtLSBDb3B5cmlnaHQgwqkgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3
LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiBzdHJva2U9ImJsYWNrIj4KKyAg
ICA8bGluZSBjbGFzcz0ic3Ryb2tlZCIgeDE9IjAuNSIgeTE9IjMiIHgyPSIxNC41IiB5Mj0iMyIg
Lz4KKyAgICA8bGluZSBjbGFzcz0ic3Ryb2tlZCIgeDE9IjAuNSIgeTE9IjUuNSIgeDI9IjE0LjUi
IHkyPSI1LjUiIC8+CisgICAgPGxpbmUgY2xhc3M9InN0cm9rZWQiIHgxPSIwLjUiIHkxPSI4IiB4
Mj0iMTQuNSIgeTI9IjgiIC8+CisgICAgPGxpbmUgY2xhc3M9InN0cm9rZWQiIHgxPSIwLjUiIHkx
PSIxMC41IiB4Mj0iMTQuNSIgeTI9IjEwLjUiIC8+CisgICAgPGxpbmUgY2xhc3M9InN0cm9rZWQi
IHgxPSIwLjUiIHkxPSIxMyIgeDI9IjE0LjUiIHkyPSIxMyIgLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRBbGlnbkxl
ZnQuc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRB
bGlnbkxlZnQuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjZjc5MmU2NmVjODlkMzE3OTEyOTFmNzQ1MTYxZmY5
ZmJhZWQxMjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9JbWFnZXMvVGV4dEFsaWduTGVmdC5zdmcKQEAgLTAsMCArMSw5IEBACis8P3htbCB2
ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEtLSBDb3B5cmlnaHQgwqkgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiBzdHJv
a2U9ImJsYWNrIj4KKyAgICA8bGluZSBjbGFzcz0ic3Ryb2tlZCIgeDE9IjAuNSIgeTE9IjMiIHgy
PSIxNC41IiB5Mj0iMyIgLz4KKyAgICA8bGluZSBjbGFzcz0ic3Ryb2tlZCIgeDE9IjAuNSIgeTE9
IjUuNSIgeDI9IjkuNSIgeTI9IjUuNSIgLz4KKyAgICA8bGluZSBjbGFzcz0ic3Ryb2tlZCIgeDE9
IjAuNSIgeTE9IjgiIHgyPSIxNC41IiB5Mj0iOCIgLz4KKyAgICA8bGluZSBjbGFzcz0ic3Ryb2tl
ZCIgeDE9IjAuNSIgeTE9IjEwLjUiIHgyPSI5LjUiIHkyPSIxMC41IiAvPgorICAgIDxsaW5lIGNs
YXNzPSJzdHJva2VkIiB4MT0iMC41IiB5MT0iMTMiIHgyPSIxNC41IiB5Mj0iMTMiIC8+Cis8L3N2
Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdl
cy9UZXh0QWxpZ25SaWdodC5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9JbWFnZXMvVGV4dEFsaWduUmlnaHQuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2NTZjOTQ2NGU3MGUzZmZj
OTY4MWMyNjQwZGM1ODIzYjQ0MTk4ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dEFsaWduUmlnaHQuc3ZnCkBAIC0wLDAg
KzEsOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzwhLS0gQ29w
eXJpZ2h0IMKpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKzxzdmcg
dmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9
IjAgMCAxNiAxNiIgc3Ryb2tlPSJibGFjayI+CisgICAgPGxpbmUgY2xhc3M9InN0cm9rZWQiIHgx
PSIwLjUiIHkxPSIzIiB4Mj0iMTQuNSIgeTI9IjMiIC8+CisgICAgPGxpbmUgY2xhc3M9InN0cm9r
ZWQiIHgxPSI1LjUiIHkxPSI1LjUiIHgyPSIxNC41IiB5Mj0iNS41IiAvPgorICAgIDxsaW5lIGNs
YXNzPSJzdHJva2VkIiB4MT0iMC41IiB5MT0iOCIgeDI9IjE0LjUiIHkyPSI4IiAvPgorICAgIDxs
aW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iNS41IiB5MT0iMTAuNSIgeDI9IjE0LjUiIHkyPSIxMC41
IiAvPgorICAgIDxsaW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iMC41IiB5MT0iMTMiIHgyPSIxNC41
IiB5Mj0iMTMiIC8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0RGVjb3JhdGlvbkxpbmVUaHJvdWdoLnN2ZyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0RGVjb3JhdGlvbkxpbmVU
aHJvdWdoLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMWM5Y2ZlNDMzMDQyY2E4YjI4NDk4NTg2ZDk4MTIzNGJi
ODk2ZDQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvSW1hZ2VzL1RleHREZWNvcmF0aW9uTGluZVRocm91Z2guc3ZnCkBAIC0wLDAgKzEsNiBA
QAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzwhLS0gQ29weXJpZ2h0
IMKpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKzxzdmcgdmVyc2lv
bj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAx
NiAxNiIgZm9udC1zaXplPSI5IiBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJp
ZiI+CisgICAgPHRleHQgY2xhc3M9ImZpbGxlZCIgeD0iMCIgeT0iMTEuNSI+QWJjPC90ZXh0Pgor
ICAgIDxsaW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iMCIgeTE9IjguNSIgeDI9IjE1LjUiIHkyPSI4
LjUiIHN0cm9rZT0iYmxhY2siLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHREZWNvcmF0aW9uT3ZlcmxpbmUuc3ZnIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHREZWNvcmF0aW9u
T3ZlcmxpbmUuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3YzRhMjkzZjgyNzU2NjE0NWNiNTQ2MGViZDIxYWU2
MDAxNmUyYzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9JbWFnZXMvVGV4dERlY29yYXRpb25PdmVybGluZS5zdmcKQEAgLTAsMCArMSw2IEBA
Cis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEtLSBDb3B5cmlnaHQg
wqkgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB2ZXJzaW9u
PSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2
IDE2IiBmb250LXNpemU9IjkiIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlm
Ij4KKyAgICA8dGV4dCBjbGFzcz0iZmlsbGVkIiB4PSIwIiB5PSIxMS41Ij5BYmM8L3RleHQ+Cisg
ICAgPGxpbmUgY2xhc3M9InN0cm9rZWQiIHgxPSIwIiB5MT0iMy41IiB4Mj0iMTUuNSIgeTI9IjMu
NSIgc3Ryb2tlPSJibGFjayIvPgorPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dERlY29yYXRpb25VbmRlcmxpbmUuc3ZnIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHREZWNvcmF0aW9u
VW5kZXJsaW5lLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YTk0YWExZDAzODFjOGI1ZjE0ODUwMzY5NTQ0Yzg0
NzEwNjk3YTU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvSW1hZ2VzL1RleHREZWNvcmF0aW9uVW5kZXJsaW5lLnN2ZwpAQCAtMCwwICsxLDYg
QEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IS0tIENvcHlyaWdo
dCDCqSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Cis8c3ZnIHZlcnNp
b249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAg
MTYgMTYiIGZvbnQtc2l6ZT0iOSIgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sIHNhbnMtc2Vy
aWYiPgorICAgIDx0ZXh0IGNsYXNzPSJmaWxsZWQiIHg9IjAiIHk9IjExLjUiPkFiYzwvdGV4dD4K
KyAgICA8bGluZSBjbGFzcz0ic3Ryb2tlZCIgeDE9IjAiIHkxPSIxMi41IiB4Mj0iMTUuNSIgeTI9
IjEyLjUiIHN0cm9rZT0iYmxhY2siLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRUcmFuc2Zvcm1DYXBpdGFsaXplLnN2
ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0VHJhbnNm
b3JtQ2FwaXRhbGl6ZS5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzZlYzFhZWY2OGFjZmZiYTIyZmIzYjA2MmNm
ZmI1ZmVkNDk4MmNkMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0VHJhbnNmb3JtQ2FwaXRhbGl6ZS5zdmcKQEAgLTAsMCAr
MSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEtLSBDb3B5
cmlnaHQgwqkgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB2
ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0i
MCAwIDE2IDE2IiBmb250LXNpemU9IjkiIGZvbnQtZmFtaWx5PSItYXBwbGUtc3lzdGVtLCBzYW5z
LXNlcmlmIj4KKyAgICA8dGV4dCBjbGFzcz0iZmlsbGVkIiB4PSIwIiB5PSIxMS41Ij5BYmM8L3Rl
eHQ+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0ltYWdlcy9UZXh0VHJhbnNmb3JtTG93ZXJjYXNlLnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0VHJhbnNmb3JtTG93ZXJjYXNlLnN2ZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42ZDJkOWRkOGJkNzdmYWU3YTNmMDY4MjVjM2VlM2IwYWVjMDk1NGZjCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1Rl
eHRUcmFuc2Zvcm1Mb3dlcmNhc2Uuc3ZnCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0i
MS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzwhLS0gQ29weXJpZ2h0IMKpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKzxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgZm9udC1zaXplPSI5
IiBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZiI+CisgICAgPHRleHQgY2xh
c3M9ImZpbGxlZCIgeD0iMC41IiB5PSIxMS41Ij5hYmM8L3RleHQ+Cis8L3N2Zz4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0VHJhbnNm
b3JtVXBwZXJjYXNlLnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0lt
YWdlcy9UZXh0VHJhbnNmb3JtVXBwZXJjYXNlLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MDRjYTYyOTdjNmUz
MWY4ZDIzZDc0MWZhNWMxMmNiMzQyNzNmNDNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRUcmFuc2Zvcm1VcHBlcmNhc2Uu
c3ZnCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgi
Pz4KKzwhLS0gQ29weXJpZ2h0IMKpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LiAtLT4KKzxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgZm9udC1zaXplPSI5IiBmb250LWZhbWlseT0iLWFwcGxl
LXN5c3RlbSwgc2Fucy1zZXJpZiI+CisgICAgPHRleHQgY2xhc3M9ImZpbGxlZCIgeD0iLTEiIHk9
IjExLjUiPkFCQzwvdGV4dD4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1Zpc3VhbFN0eWxlTm9uZS5zdmcgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVmlzdWFsU3R5bGVOb25lLnN2ZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iZjg4YTEyNGQ2NDQ3MzQ4ZjhkMmViZWM0MmEyNmZlMjY0NWRiNDFkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1Zp
c3VhbFN0eWxlTm9uZS5zdmcKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVu
Y29kaW5nPSJ1dGYtOCI/PgorPCEtLSBDb3B5cmlnaHQgwqkgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3
LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2Ij4KKyAgICA8bGluZSBjbGFzcz0i
c3Ryb2tlZCIgeDE9IjAiIHkxPSI4IiB4Mj0iMTQiIHkyPSI4IiBzdHJva2U9ImJsYWNrIi8+Cis8
L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1NsaWRlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1NsaWRlci5qcwppbmRleCAxNTQ3NzFmNTdiOWU4YTM4MDE2YjkwZmYxNjEwOTcyZWE5MGJmYTMy
Li5mZWEwODA5NDk0ZTlmMzU2ZTJlZmI4ZWIzMmE0ZGQxOWQxNDgxNzVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TbGlkZXIuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2xpZGVyLmpzCkBAIC02
MCwxNSArNjAsMTkgQEAgV2ViSW5zcGVjdG9yLlNsaWRlciA9IGNsYXNzIFNsaWRlciBleHRlbmRz
IFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl92YWx1ZSkK
ICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlOwotCi0g
ICAgICAgIHRoaXMuX2tub2JYID0gTWF0aC5yb3VuZCh2YWx1ZSAqIHRoaXMuX21heFgpOwotICAg
ICAgICB0aGlzLl9rbm9iLnN0eWxlLndlYmtpdFRyYW5zZm9ybSA9ICJ0cmFuc2xhdGUzZCgiICsg
dGhpcy5fa25vYlggKyAicHgsIDAsIDApIjsKKyAgICAgICAgdGhpcy5rbm9iWCA9IHZhbHVlOwog
CiAgICAgICAgIGlmICh0aGlzLmRlbGVnYXRlICYmIHR5cGVvZiB0aGlzLmRlbGVnYXRlLnNsaWRl
clZhbHVlRGlkQ2hhbmdlID09PSAiZnVuY3Rpb24iKQogICAgICAgICAgICAgdGhpcy5kZWxlZ2F0
ZS5zbGlkZXJWYWx1ZURpZENoYW5nZSh0aGlzLCB2YWx1ZSk7CiAgICAgfQogCisgICAgc2V0IGtu
b2JYKHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTsKKyAgICAgICAg
dGhpcy5fa25vYlggPSBNYXRoLnJvdW5kKHZhbHVlICogdGhpcy5fbWF4WCk7CisgICAgICAgIHRo
aXMuX2tub2Iuc3R5bGUud2Via2l0VHJhbnNmb3JtID0gInRyYW5zbGF0ZTNkKCIgKyB0aGlzLl9r
bm9iWCArICJweCwgMCwgMCkiOworICAgIH0KKwogICAgIC8vIFByb3RlY3RlZAogCiAgICAgaGFu
ZGxlRXZlbnQoZXZlbnQpCkBAIC0xMjcsOCArMTMxLDggQEAgV2ViSW5zcGVjdG9yLlNsaWRlciA9
IGNsYXNzIFNsaWRlciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKIAogICAgIGdldCBfbWF4
WCgpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fX21heFggPT09IDAgJiYgZG9jdW1lbnQuYm9k
eS5jb250YWlucyh0aGlzLl9lbGVtZW50KSkKLSAgICAgICAgICAgIHRoaXMuX19tYXhYID0gdGhp
cy5fZWxlbWVudC5vZmZzZXRXaWR0aCAtIE1hdGguY2VpbChXZWJJbnNwZWN0b3IuU2xpZGVyLktu
b2JXaWR0aCAvIDIpOworICAgICAgICBpZiAodGhpcy5fX21heFggPD0gMCAmJiBkb2N1bWVudC5i
b2R5LmNvbnRhaW5zKHRoaXMuX2VsZW1lbnQpKQorICAgICAgICAgICAgdGhpcy5fX21heFggPSBN
YXRoLm1heCh0aGlzLl9lbGVtZW50Lm9mZnNldFdpZHRoIC0gTWF0aC5jZWlsKFdlYkluc3BlY3Rv
ci5TbGlkZXIuS25vYldpZHRoIC8gMiksIDApOwogCiAgICAgICAgIHJldHVybiB0aGlzLl9fbWF4
WDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9WaXN1YWxTdHlsZUNvbG9yUGlja2VyLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQ29sb3JQaWNrZXIuY3NzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmYwMzE4ZWZhYTM0OWM1NWYxMjE1MDk0OGNhNWExOTM3NGViMzE0NmEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxT
dHlsZUNvbG9yUGlja2VyLmNzcwpAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLnZpc3Vh
bC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIuaW5wdXQtY29sb3ItcGlja2VyID4gLnZpc3VhbC1z
dHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgeworICAgIGRpc3BsYXk6IGZsZXg7Cit9CisK
Ky52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmlucHV0LWNvbG9yLXBpY2tlciA+IC52
aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnZpc3VhbC1zdHlsZS1zcGVj
aWFsLXByb3BlcnR5LXBsYWNlaG9sZGVyIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCisudmlz
dWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5pbnB1dC1jb2xvci1waWNrZXIgPiAudmlzdWFs
LXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5jb2xvci1zd2F0Y2ggeworICAgIGRp
c3BsYXk6IGJsb2NrOworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICB3aWR0aDogMjJweDsK
KyAgICBoZWlnaHQ6IDE4cHg7CisgICAgbWFyZ2luLXRvcDogMXB4OworICAgIC8qIE1ha2UgYSBj
aGVja2VyZWQgYmFja2dyb3VuZCBmb3IgdHJhbnNwYXJlbnQgY29sb3JzIHRvIHNob3cgYWdhaW5z
dC4gKi8KKyAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCBo
c2woMCwgMCUsIDgwJSksIGhzbCgwLCAwJSwgODAlKSksCisgICAgICAgIGxpbmVhci1ncmFkaWVu
dCh0byBib3R0b20sIGhzbCgwLCAwJSwgODAlKSwgaHNsKDAsIDAlLCA4MCUpKTsKKyAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBoc2woMCwgMTAwJSwgMTAwJSk7CisgICAgYmFja2dyb3VuZC1zaXplOiA1
MCU7CisgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGxlZnQsIGJvdHRvbSByaWdodDsKKyAg
ICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworICAgIGJvcmRlcjogMXB4IHNvbGlkIGhz
bGEoMCwgMCUsIDI1JSwgMC40KTsKKyAgICBib3JkZXItcmFkaXVzOiA0cHg7CisgICAgb3ZlcmZs
b3c6IGhpZGRlbjsKKyAgICBjdXJzb3I6IGRlZmF1bHQ7Cit9CisKKy52aXN1YWwtc3R5bGUtcHJv
cGVydHktY29udGFpbmVyLmlucHV0LWNvbG9yLXBpY2tlciA+IC52aXN1YWwtc3R5bGUtcHJvcGVy
dHktdmFsdWUtY29udGFpbmVyID4gLmNvbG9yLXN3YXRjaDpob3ZlciB7CisgICAgYm9yZGVyLWNv
bG9yOiBoc2xhKDAsIDAlLCAyNSUsIDAuOCk7Cit9CisKKy52aXN1YWwtc3R5bGUtcHJvcGVydHkt
Y29udGFpbmVyLmlucHV0LWNvbG9yLXBpY2tlciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFs
dWUtY29udGFpbmVyID4gLmNvbG9yLXN3YXRjaDphY3RpdmUgeworICAgIGJvcmRlci1jb2xvcjog
aHNsKDAsIDAlLCAyNSUpOworfQorCisudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5p
bnB1dC1jb2xvci1waWNrZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5l
ciA+IC5jb2xvci1zd2F0Y2ggPiBzcGFuIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAg
dG9wOiAwOworICAgIHJpZ2h0OiAwOworICAgIGJvdHRvbTogMDsKKyAgICBsZWZ0OiAwOworfQor
CisudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5pbnB1dC1jb2xvci1waWNrZXIgPiAu
dmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IGlucHV0IHsKKyAgICBtYXJn
aW46IDFweCAxLjVweCAzcHggLTNweDsKKyAgICBwYWRkaW5nOiAwIDNweCAwIDVweDsKKyAgICBi
b3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4OworICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFk
aXVzOiA0cHg7CisgICAgYm9yZGVyOiBzb2xpZCAxcHggaHNsKDAsIDAlLCA4MyUpOworICAgIGJv
cmRlci1sZWZ0OiBub25lOworICAgIHRleHQtYWxpZ246IHJpZ2h0OworICAgIGZvbnQtc2l6ZTog
MTBweDsKK30KKworLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIuaW5wdXQtY29sb3It
cGlja2VyLm11bHRpcGxlID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIg
PiAudmlzdWFsLXN0eWxlLW11bHRpcGxlLXByb3BlcnR5LXBsYWNlaG9sZGVyIHsKKyAgICB3aWR0
aDogY2FsYygxMDAlIC0gMjBweCk7CisgICAgbGVmdDogMThweDsKKyAgICBwYWRkaW5nLXJpZ2h0
OiAzcHg7CisgICAgdGV4dC1hbGlnbjogcmlnaHQ7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUNvbG9yUGlja2VyLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVD
b2xvclBpY2tlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzZiZDliNWE1YWM4NDNhZjQ4ZDkwYWNlYzA0NmJj
Njk0YWNjYWYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVDb2xvclBpY2tlci5qcwpAQCAtMCwwICsxLDIyMiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK1dlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUNvbG9yUGlja2VyID0gY2xh
c3MgVmlzdWFsU3R5bGVDb2xvclBpY2tlciBleHRlbmRzIFdlYkluc3BlY3Rvci5WaXN1YWxTdHls
ZVByb3BlcnR5RWRpdG9yCit7CisgICAgY29uc3RydWN0b3IocHJvcGVydHlOYW1lcywgdGV4dCwg
bGF5b3V0UmV2ZXJzZWQpCisgICAgeworICAgICAgICBzdXBlcihwcm9wZXJ0eU5hbWVzLCB0ZXh0
LCBudWxsLCBudWxsLCAiaW5wdXQtY29sb3ItcGlja2VyIiwgbGF5b3V0UmV2ZXJzZWQpOworCisg
ICAgICAgIHRoaXMuX3N3YXRjaEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFu
Iik7CisgICAgICAgIHRoaXMuX3N3YXRjaEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiY29sb3Itc3dh
dGNoIik7CisgICAgICAgIHRoaXMuX3N3YXRjaEVsZW1lbnQudGl0bGUgPSBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIkNsaWNrIHRvIG9wZW4gYSBjb2xvcnBpY2tlci4gU2hpZnQtY2xpY2sgdG8gY2hh
bmdlIGNvbG9yIGZvcm1hdC4iKTsKKyAgICAgICAgdGhpcy5fc3dhdGNoRWxlbWVudC5hZGRFdmVu
dExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2NvbG9yU3dhdGNoQ2xpY2tlZC5iaW5kKHRoaXMpKTsK
KworICAgICAgICB0aGlzLl9zd2F0Y2hJbm5lckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJzcGFuIik7CisgICAgICAgIHRoaXMuX3N3YXRjaEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhp
cy5fc3dhdGNoSW5uZXJFbGVtZW50KTsKKworICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmFw
cGVuZENoaWxkKHRoaXMuX3N3YXRjaEVsZW1lbnQpOworCisgICAgICAgIHRoaXMuX3RleHRJbnB1
dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOworICAgICAgICB0aGlz
Ll90ZXh0SW5wdXRFbGVtZW50LnNwZWxsY2hlY2sgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fdGV4
dElucHV0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fdGV4dElucHV0
S2V5RG93bi5iaW5kKHRoaXMpKTsKKyAgICAgICAgdGhpcy5fdGV4dElucHV0RWxlbWVudC5hZGRF
dmVudExpc3RlbmVyKCJrZXl1cCIsIHRoaXMuX3RleHRJbnB1dEtleVVwLmJpbmQodGhpcykpOwor
ICAgICAgICB0aGlzLl90ZXh0SW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCB0
aGlzLl9oaWRlQ29tcGxldGlvbnMuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuY29udGVudEVs
ZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fdGV4dElucHV0RWxlbWVudCk7CisKKyAgICAgICAgdGhp
cy5fY29tcGxldGlvbkNvbnRyb2xsZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlQ29t
cGxldGlvbnNDb250cm9sbGVyKHRoaXMpOworICAgICAgICB0aGlzLl9jb21wbGV0aW9uQ29udHJv
bGxlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUNvbXBsZXRpb25z
Q29udHJvbGxlci5FdmVudC5Db21wbGV0aW9uU2VsZWN0ZWQsIHRoaXMuX2NvbXBsZXRpb25DbGlj
a2VkLCB0aGlzKTsKKworICAgICAgICB0aGlzLl9mb3JtYXRDaGFuZ2VkID0gZmFsc2U7CisgICAg
ICAgIHRoaXMuX3VwZGF0ZUNvbG9yU3dhdGNoKCk7CisgICAgfQorCisgICAgLy8gUHVibGljCisK
KyAgICBnZXQgdmFsdWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3RleHRJbnB1dEVs
ZW1lbnQudmFsdWU7CisgICAgfQorCisgICAgc2V0IHZhbHVlKHZhbHVlKQorICAgIHsKKyAgICAg
ICAgaWYgKHZhbHVlICYmIHZhbHVlID09PSB0aGlzLnZhbHVlKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIHRoaXMuX3RleHRJbnB1dEVsZW1lbnQudmFsdWUgPSB0aGlzLl9oYXNNdWx0
aXBsZUNvbmZsaWN0aW5nVmFsdWVzKCkgPyBudWxsIDogdmFsdWU7CisgICAgICAgIHRoaXMuX3Vw
ZGF0ZUNvbG9yU3dhdGNoKCk7CisgICAgfQorCisgICAgZ2V0IHBsYWNlaG9sZGVyKCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLl90ZXh0SW5wdXRFbGVtZW50LmdldEF0dHJpYnV0ZSgicGxh
Y2Vob2xkZXIiKTsKKyAgICB9CisKKyAgICBzZXQgcGxhY2Vob2xkZXIodGV4dCkKKyAgICB7Cisg
ICAgICAgIGlmICh0ZXh0ICYmIHRleHQgPT09IHRoaXMucGxhY2Vob2xkZXIpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgaWYgKHRoaXMuX2hhc011bHRpcGxlQ29uZmxpY3RpbmdWYWx1
ZXMoKSkKKyAgICAgICAgICAgIHRleHQgPSB0aGlzLnNwZWNpYWxQcm9wZXJ0eVBsYWNlaG9sZGVy
RWxlbWVudC50ZXh0Q29udGVudDsKKworICAgICAgICB0aGlzLl90ZXh0SW5wdXRFbGVtZW50LnNl
dEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCB0ZXh0IHx8ICJ0cmFuc3BhcmVudCIpOworICAgIH0K
KworICAgIGdldCBzeW50aGVzaXplZFZhbHVlKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
LnZhbHVlIHx8IG51bGw7CisgICAgfQorCisgICAgZ2V0IGhhc0NvbXBsZXRpb25zKCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci5oYXNDb21wbGV0aW9u
czsKKyAgICB9CisKKyAgICBzZXQgY29tcGxldGlvbnMoY29tcGxldGlvbnMpCisgICAgeworICAg
ICAgICB0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci5jb21wbGV0aW9ucyA9IGNvbXBsZXRpb25z
OworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF91cGRhdGVDb2xvclN3YXRjaCgpCisg
ICAgeworICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLl90ZXh0SW5wdXRFbGVtZW50LnZhbHVlOwor
ICAgICAgICB0aGlzLl9jb2xvciA9IFdlYkluc3BlY3Rvci5Db2xvci5mcm9tU3RyaW5nKHZhbHVl
IHx8ICJ0cmFuc3BhcmVudCIpOworICAgICAgICB0aGlzLl9zd2F0Y2hJbm5lckVsZW1lbnQuc3R5
bGUuYmFja2dyb3VuZENvbG9yID0gdGhpcy5fY29sb3IgPyB2YWx1ZSA6IG51bGw7CisgICAgfQor
CisgICAgX2NvbG9yU3dhdGNoQ2xpY2tlZChldmVudCkKKyAgICB7CisgICAgICAgIGxldCBjb2xv
ciA9IHRoaXMuX2NvbG9yOworICAgICAgICBpZiAoZXZlbnQuc2hpZnRLZXkpIHsKKyAgICAgICAg
ICAgIGxldCBuZXh0Rm9ybWF0ID0gY29sb3IubmV4dEZvcm1hdCgpOworCisgICAgICAgICAgICBj
b25zb2xlLmFzc2VydChuZXh0Rm9ybWF0KTsKKyAgICAgICAgICAgIGlmICghbmV4dEZvcm1hdCkK
KyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGNvbG9yLmZvcm1hdCA9IG5l
eHRGb3JtYXQ7CisgICAgICAgICAgICB0aGlzLnZhbHVlID0gY29sb3IudG9TdHJpbmcoKTsKKwor
ICAgICAgICAgICAgdGhpcy5fZm9ybWF0Q2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICB0aGlz
Ll92YWx1ZURpZENoYW5nZSgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAg
ICAgICAgbGV0IGJvdW5kcyA9IFdlYkluc3BlY3Rvci5SZWN0LnJlY3RGcm9tQ2xpZW50UmVjdCh0
aGlzLl9zd2F0Y2hFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTsKKworICAgICAgICBs
ZXQgY29sb3JQaWNrZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbG9yUGlja2VyOworICAgICAgICBj
b2xvclBpY2tlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Db2xvclBpY2tlci5FdmVu
dC5Db2xvckNoYW5nZWQsIHRoaXMuX2NvbG9yUGlja2VyQ29sb3JEaWRDaGFuZ2UsIHRoaXMpOwor
CisgICAgICAgIGxldCBwb3BvdmVyID0gbmV3IFdlYkluc3BlY3Rvci5Qb3BvdmVyKHRoaXMpOwor
ICAgICAgICBwb3BvdmVyLmNvbnRlbnQgPSBjb2xvclBpY2tlci5lbGVtZW50OworICAgICAgICBw
b3BvdmVyLnByZXNlbnQoYm91bmRzLnBhZCgyKSwgW1dlYkluc3BlY3Rvci5SZWN0RWRnZS5NSU5f
WF0pOworCisgICAgICAgIGNvbG9yUGlja2VyLmNvbG9yID0gY29sb3I7CisgICAgfQorCisgICAg
X2NvbG9yUGlja2VyQ29sb3JEaWRDaGFuZ2UoZXZlbnQpCisgICAgeworICAgICAgICBsZXQgZm9y
bWF0ID0gIXRoaXMuX2Zvcm1hdENoYW5nZWQgPyBXZWJJbnNwZWN0b3IuQ29sb3IuRm9ybWF0LkhF
WCA6IG51bGw7CisgICAgICAgIHRoaXMudmFsdWUgPSBldmVudC5kYXRhLmNvbG9yLnRvU3RyaW5n
KGZvcm1hdCk7CisgICAgICAgIHRoaXMuX3ZhbHVlRGlkQ2hhbmdlKCk7CisgICAgfQorCisgICAg
X2NvbXBsZXRpb25DbGlja2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy52YWx1ZSA9IGV2
ZW50LmRhdGEudGV4dDsKKyAgICAgICAgdGhpcy5fdmFsdWVEaWRDaGFuZ2UoKTsKKyAgICB9CisK
KyAgICBfdGV4dElucHV0S2V5RG93bihldmVudCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5f
Y29tcGxldGlvbkNvbnRyb2xsZXIudmlzaWJsZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICBsZXQga2V5Q29kZSA9IGV2ZW50LmtleUNvZGU7CisgICAgICAgIGxldCBlbnRlcktleUNv
ZGUgPSBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuRW50ZXIua2V5Q29kZTsKKyAg
ICAgICAgbGV0IHRhYktleUNvZGUgPSBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXku
VGFiLmtleUNvZGU7CisgICAgICAgIGlmIChrZXlDb2RlID09PSBlbnRlcktleUNvZGUgfHwga2V5
Q29kZSA9PT0gdGFiS2V5Q29kZSkgeworICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuX2Nv
bXBsZXRpb25Db250cm9sbGVyLmN1cnJlbnRDb21wbGV0aW9uOworICAgICAgICAgICAgdGhpcy5f
aGlkZUNvbXBsZXRpb25zKCk7CisgICAgICAgICAgICB0aGlzLl92YWx1ZURpZENoYW5nZSgpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbGV0IGVzY2FwZUtleUNv
ZGUgPSBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuRXNjYXBlLmtleUNvZGU7Cisg
ICAgICAgIGlmIChrZXlDb2RlID09PSBlc2NhcGVLZXlDb2RlKSB7CisgICAgICAgICAgICB0aGlz
Ll9oaWRlQ29tcGxldGlvbnMoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIGxldCBrZXkgPSBldmVudC5rZXlJZGVudGlmaWVyOworICAgICAgICBpZiAoa2V5ID09
PSAiVXAiKSB7CisgICAgICAgICAgICB0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci5wcmV2aW91
cygpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGtleSA9
PT0gIkRvd24iKSB7CisgICAgICAgICAgICB0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci5uZXh0
KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBfdGV4dElu
cHV0S2V5VXAoKQorICAgIHsKKyAgICAgICAgdGhpcy5fc2hvd0NvbXBsZXRpb25zSWZBYmxlKCk7
CisgICAgICAgIHRoaXMuX3VwZGF0ZUNvbG9yU3dhdGNoKCk7CisgICAgICAgIHRoaXMuX3ZhbHVl
RGlkQ2hhbmdlKCk7CisgICAgfQorCisgICAgX3Nob3dDb21wbGV0aW9uc0lmQWJsZSgpCisgICAg
eworICAgICAgICBpZiAoIXRoaXMuaGFzQ29tcGxldGlvbnMpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuX3ZhbHVlRGlkQ2hhbmdlKCk7CisgICAgICAg
IGlmICghcmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICh0aGlzLl9j
b21wbGV0aW9uQ29udHJvbGxlci51cGRhdGUodGhpcy52YWx1ZSkpIHsKKyAgICAgICAgICAgIGxl
dCBib3VuZHMgPSBXZWJJbnNwZWN0b3IuUmVjdC5yZWN0RnJvbUNsaWVudFJlY3QodGhpcy5fdGV4
dElucHV0RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7CisgICAgICAgICAgICBpZiAo
IWJvdW5kcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIHRoaXMuX2Nv
bXBsZXRpb25Db250cm9sbGVyLnNob3coYm91bmRzLCAyKTsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIF9oaWRlQ29tcGxldGlvbnMoKQorICAgIHsKKyAgICAgICAgdGhpcy5fY29tcGxldGlvbkNv
bnRyb2xsZXIuaGlkZSgpOworICAgIH0KKworICAgIF90b2dnbGVUYWJiaW5nT2ZTZWxlY3RhYmxl
RWxlbWVudHMoZGlzYWJsZWQpCisgICAgeworICAgICAgICB0aGlzLl90ZXh0SW5wdXRFbGVtZW50
LnRhYkluZGV4ID0gZGlzYWJsZWQgPyAiLTEiIDogbnVsbDsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVL
ZXl3b3JkQ2hlY2tib3guY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvVmlzdWFsU3R5bGVLZXl3b3JkQ2hlY2tib3guY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0N2Y5ODhi
YTdkYzU3NTM1YTc3MWI0YWE0ZDY0Y2M3YjVlMDJiMTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtleXdvcmRD
aGVja2JveC5jc3MKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy52aXN1YWwtc3R5bGUt
cHJvcGVydHktY29udGFpbmVyLmtleXdvcmQtY2hlY2tib3ggPiAudmlzdWFsLXN0eWxlLXByb3Bl
cnR5LXZhbHVlLWNvbnRhaW5lciB7CisgICAgZGlzcGxheTogZmxleDsKKyAgICBhbGlnbi1pdGVt
czogY2VudGVyOworfQorCisudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5rZXl3b3Jk
LWNoZWNrYm94ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiBpbnB1
dCB7CisgICAgb3JkZXI6IDE7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogNHB4
OworICAgIHdpZHRoOiBhdXRvOworfQorCisudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5l
ci5rZXl3b3JkLWNoZWNrYm94ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWlu
ZXIgPiBkaXYgeworICAgIHdpZHRoOiAxOHB4OworICAgIG1hcmdpbjogMCAycHg7Cit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxT
dHlsZUtleXdvcmRDaGVja2JveC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1Zpc3VhbFN0eWxlS2V5d29yZENoZWNrYm94LmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2MTJm
MzJiZDRhY2ZjNGE4OTkzZDlmNzNjNTczM2Q2MjJiOWI5OGEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtleXdv
cmRDaGVja2JveC5qcwpAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV2ViSW5zcGVjdG9y
LlZpc3VhbFN0eWxlS2V5d29yZENoZWNrYm94ID0gY2xhc3MgVmlzdWFsU3R5bGVLZXl3b3JkQ2hl
Y2tib3ggZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvcgorewor
ICAgIGNvbnN0cnVjdG9yKHByb3BlcnR5TmFtZXMsIHRleHQsIHZhbHVlLCBjaGVja2JveEltYWdl
LCBsYXlvdXRSZXZlcnNlZCkKKyAgICB7CisgICAgICAgIHN1cGVyKHByb3BlcnR5TmFtZXMsIHRl
eHQsIG51bGwsIG51bGwsICJrZXl3b3JkLWNoZWNrYm94IiwgbGF5b3V0UmV2ZXJzZWQpOworCisg
ICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWUgfHwgbnVsbDsKKworICAgICAgICB0aGlzLl9jaGVj
a2JveCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CisgICAgICAgIHRoaXMuX2No
ZWNrYm94LnR5cGUgPSAiY2hlY2tib3giOworICAgICAgICB0aGlzLl9jaGVja2JveC5hZGRFdmVu
dExpc3RlbmVyKCJjaGFuZ2UiLCB0aGlzLl92YWx1ZURpZENoYW5nZS5iaW5kKHRoaXMpKTsKKyAg
ICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9jaGVja2JveCk7CisK
KyAgICAgICAgaWYgKGNoZWNrYm94SW1hZ2UpIHsKKyAgICAgICAgICAgIHdyYXBwZWRTVkdEb2N1
bWVudChjaGVja2JveEltYWdlLCBudWxsLCB2YWx1ZSwgZnVuY3Rpb24od3JhcHBlcikgeworICAg
ICAgICAgICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQod3JhcHBlcik7Cisg
ICAgICAgICAgICB9LmJpbmQodGhpcykpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gUHVi
bGljCisKKyAgICBnZXQgdmFsdWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2NoZWNr
Ym94LmNoZWNrZWQgPyB0aGlzLl92YWx1ZSA6IG51bGw7CisgICAgfQorCisgICAgc2V0IHZhbHVl
KHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5fY2hlY2tib3guY2hlY2tlZCA9IHZhbHVlID09
PSB0aGlzLl92YWx1ZTsKKyAgICB9CisKKyAgICBnZXQgc3ludGhlc2l6ZWRWYWx1ZSgpCisgICAg
eworICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisK
KyAgICBfdG9nZ2xlVGFiYmluZ09mU2VsZWN0YWJsZUVsZW1lbnRzKGRpc2FibGVkKQorICAgIHsK
KyAgICAgICAgdGhpcy5fY2hlY2tib3gudGFiSW5kZXggPSBkaXNhYmxlZCA/ICItMSIgOiBudWxs
OworICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtleXdvcmRJY29uTGlzdC5jc3MgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtleXdvcmRJY29uTGlzdC5j
c3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzdiODc3ZjUzNGEwOWI0YmRiMzgzNThhZDQ4MjU2ZTNjYTE2MjM4OQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Zpc3VhbFN0eWxlS2V5d29yZEljb25MaXN0LmNzcwpAQCAtMCwwICsxLDg4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29yZC1pY29uLWxp
c3QgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciB7CisgICAgbWFyZ2lu
OiAxcHggMCAycHg7Cit9CisKKy52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmtleXdv
cmQtaWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAu
a2V5d29yZC1pY29uLWxpc3QtY29udGFpbmVyIHsKKyAgICBkaXNwbGF5OiBmbGV4OworfQorCisu
dmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5rZXl3b3JkLWljb24tbGlzdCA+IC52aXN1
YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLmtleXdvcmQtaWNvbi1saXN0LWNv
bnRhaW5lciA+IC5rZXl3b3JkLWljb24geworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICB3
aWR0aDogMjZweDsKKyAgICBoZWlnaHQ6IDE4cHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaHNs
KDAsIDEwMCUsIDEwMCUpOworICAgIGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLCAwJSwgODMlKTsK
KyAgICBib3JkZXItcmlnaHQ6IG5vbmU7Cit9CisKKy52aXN1YWwtc3R5bGUtcHJvcGVydHktY29u
dGFpbmVyLmtleXdvcmQtaWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1j
b250YWluZXIgPiAua2V5d29yZC1pY29uLWxpc3QtY29udGFpbmVyID4gLmtleXdvcmQtaWNvbjpm
aXJzdC1jaGlsZCB7CisgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4OworICAgIGJvcmRl
ci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDsKK30KKworLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1j
b250YWluZXIua2V5d29yZC1pY29uLWxpc3QgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVl
LWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb24tbGlzdC1jb250YWluZXIgPiAua2V5d29yZC1pY29u
Omxhc3QtY2hpbGQgeworICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIGhzbCgwLCAwJSwgODMl
KTsKKyAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4OworICAgIGJvcmRlci1ib3R0b20t
cmlnaHQtcmFkaXVzOiA0cHg7Cit9CisKKy52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVy
LmtleXdvcmQtaWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWlu
ZXIgPiAua2V5d29yZC1pY29uLWxpc3QtY29udGFpbmVyID4gLmtleXdvcmQtaWNvbjptYXRjaGVz
KC5jb21wdXRlZCwgLnNlbGVjdGVkKSB7CisgICAgd2lkdGg6IDI3cHg7CisgICAgYm9yZGVyLXJp
Z2h0OiAxcHggc29saWQ7CisgICAgYm9yZGVyLWNvbG9yOiBoc2woMjEzLCA5MiUsIDU1JSk7Cit9
CisKKy52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmtleXdvcmQtaWNvbi1saXN0ID4g
LnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAua2V5d29yZC1pY29uLWxp
c3QtY29udGFpbmVyID4gLmtleXdvcmQtaWNvbi5zZWxlY3RlZCB7CisgICAgYmFja2dyb3VuZC1j
b2xvcjogaHNsKDIxMywgOTIlLCA1NSUpOworfQorCisudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNv
bnRhaW5lci5rZXl3b3JkLWljb24tbGlzdCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUt
Y29udGFpbmVyID4gLmtleXdvcmQtaWNvbi1saXN0LWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb24u
c2VsZWN0ZWQgc3ZnIC5zdHJva2VkIHsKKyAgICBzdHJva2U6IGhzbCgwLCAxMDAlLCAxMDAlKTsK
K30KKworLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29yZC1pY29uLWxpc3Qg
PiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb24t
bGlzdC1jb250YWluZXIgPiAua2V5d29yZC1pY29uLnNlbGVjdGVkIHN2ZyAuZmlsbGVkIHsKKyAg
ICBmaWxsOiBoc2woMCwgMTAwJSwgMTAwJSk7Cit9CisKKy52aXN1YWwtc3R5bGUtcHJvcGVydHkt
Y29udGFpbmVyLmtleXdvcmQtaWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1
ZS1jb250YWluZXIgPiAua2V5d29yZC1pY29uLWxpc3QtY29udGFpbmVyID4gLmtleXdvcmQtaWNv
bjptYXRjaGVzKC5jb21wdXRlZCwgLnNlbGVjdGVkKSArIC5rZXl3b3JkLWljb24geworICAgIHdp
ZHRoOiAyNXB4OworICAgIGJvcmRlci1sZWZ0OiBub25lOworfQorCisudmlzdWFsLXN0eWxlLXBy
b3BlcnR5LWNvbnRhaW5lci5rZXl3b3JkLWljb24tbGlzdCA+IC52aXN1YWwtc3R5bGUtcHJvcGVy
dHktdmFsdWUtY29udGFpbmVyID4gLmtleXdvcmQtaWNvbi1saXN0LWNvbnRhaW5lciA+IC5rZXl3
b3JkLWljb24gPiBkaXYgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7Cisg
ICAgbGVmdDogNXB4OworICAgIHdpZHRoOiAxNnB4OworICAgIGhlaWdodDogMTZweDsKKyAgICBw
b2ludGVyLWV2ZW50czogbm9uZTsKK30KKworLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWlu
ZXIua2V5d29yZC1pY29uLWxpc3QgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRh
aW5lciA+IC5rZXl3b3JkLWljb24tbGlzdC1jb250YWluZXIgPiAua2V5d29yZC1pY29uOm5vdCgu
c2VsZWN0ZWQpID4gZGl2IHsKKyAgICAtd2Via2l0LWZpbHRlcjogb3BhY2l0eSgwLjcpOworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlz
dWFsU3R5bGVLZXl3b3JkSWNvbkxpc3QuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtleXdvcmRJY29uTGlzdC5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
ZDg0YTkyMzMzNjM5MTcxNzM2ZTAyOTBhYjRlZTM1NWYzOTAzMDg3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVL
ZXl3b3JkSWNvbkxpc3QuanMKQEAgLTAsMCArMSwxMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXZWJJbnNw
ZWN0b3IuVmlzdWFsU3R5bGVLZXl3b3JkSWNvbkxpc3QgPSBjbGFzcyBWaXN1YWxTdHlsZUtleXdv
cmRJY29uTGlzdCBleHRlbmRzIFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9y
Cit7CisgICAgY29uc3RydWN0b3IocHJvcGVydHlOYW1lcywgdGV4dCwgcG9zc2libGVWYWx1ZXMs
IGxheW91dFJldmVyc2VkKQorICAgIHsKKyAgICAgICAgc3VwZXIocHJvcGVydHlOYW1lcywgdGV4
dCwgcG9zc2libGVWYWx1ZXMsIG51bGwsICJrZXl3b3JkLWljb24tbGlzdCIsIGxheW91dFJldmVy
c2VkKTsKKworICAgICAgICB0aGlzLl9pY29uTGlzdENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOworICAgICAgICB0aGlzLl9pY29uTGlzdENvbnRhaW5lci5jbGFzc0xp
c3QuYWRkKCJrZXl3b3JkLWljb24tbGlzdC1jb250YWluZXIiKTsKKworICAgICAgICB0aGlzLl9p
Y29uRWxlbWVudHMgPSBbXTsKKyAgICAgICAgdGhpcy5fY29tcHV0ZWRJY29uID0gbnVsbDsKKyAg
ICAgICAgdGhpcy5fc2VsZWN0ZWRJY29uID0gbnVsbDsKKworICAgICAgICBmdW5jdGlvbiBkYXNo
VG9DYXBpdGFsKG1hdGNoKSB7CisgICAgICAgICAgICByZXR1cm4gbWF0Y2hbMV0udG9VcHBlckNh
c2UoKTsKKyAgICAgICAgfQorCisgICAgICAgIGxldCBwcmV0dHlQcm9wZXJ0eVJlZmVyZW5jZU5h
bWUgPSB0aGlzLl9wcm9wZXJ0eVJlZmVyZW5jZU5hbWUuY2FwaXRhbGl6ZSgpLnJlcGxhY2UoLygt
LikvZywgZGFzaFRvQ2FwaXRhbCk7CisKKyAgICAgICAgZnVuY3Rpb24gY3JlYXRlTGlzdEl0ZW0o
dmFsdWUsIHRpdGxlKSB7CisgICAgICAgICAgICBsZXQgaWNvbkJ1dHRvbkVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsKKyAgICAgICAgICAgIGljb25CdXR0b25FbGVt
ZW50LmlkID0gdmFsdWU7CisgICAgICAgICAgICBpY29uQnV0dG9uRWxlbWVudC50aXRsZSA9IHRp
dGxlOworICAgICAgICAgICAgaWNvbkJ1dHRvbkVsZW1lbnQuY2xhc3NMaXN0LmFkZCgia2V5d29y
ZC1pY29uIik7CisgICAgICAgICAgICBpY29uQnV0dG9uRWxlbWVudC5hZGRFdmVudExpc3RlbmVy
KCJjbGljayIsIHRoaXMuX2hhbmRsZUtleXdvcmRDaGFuZ2VkLmJpbmQodGhpcykpOworCisgICAg
ICAgICAgICBsZXQgaW1hZ2VOYW1lID0gdmFsdWUgPT09ICJub25lIiA/ICJWaXN1YWxTdHlsZU5v
bmUiIDogcHJldHR5UHJvcGVydHlSZWZlcmVuY2VOYW1lICsgdGl0bGUucmVwbGFjZSgvXHMvZywg
IiIpOworICAgICAgICAgICAgd3JhcHBlZFNWR0RvY3VtZW50KCJJbWFnZXMvIiArIGltYWdlTmFt
ZSArICIuc3ZnIiwgbnVsbCwgbnVsbCwgZnVuY3Rpb24od3JhcHBlcikgeworICAgICAgICAgICAg
ICAgIGljb25CdXR0b25FbGVtZW50LmFwcGVuZENoaWxkKHdyYXBwZXIpOworICAgICAgICAgICAg
fS5iaW5kKHRoaXMpKTsKKworICAgICAgICAgICAgcmV0dXJuIGljb25CdXR0b25FbGVtZW50Owor
ICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQga2V5IGluIHRoaXMuX3Bvc3NpYmxlVmFsdWVz
LmJhc2ljKSB7CisgICAgICAgICAgICBsZXQgaWNvbkVsZW1lbnQgPSBjcmVhdGVMaXN0SXRlbS5j
YWxsKHRoaXMsIGtleSwgdGhpcy5fcG9zc2libGVWYWx1ZXMuYmFzaWNba2V5XSk7CisgICAgICAg
ICAgICB0aGlzLl9pY29uTGlzdENvbnRhaW5lci5hcHBlbmRDaGlsZChpY29uRWxlbWVudCk7Cisg
ICAgICAgICAgICB0aGlzLl9pY29uRWxlbWVudHMucHVzaChpY29uRWxlbWVudCk7CisgICAgICAg
IH0KKworICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2ljb25M
aXN0Q29udGFpbmVyKTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGdldCB2YWx1ZSgp
CisgICAgeworICAgICAgICBpZiAoIXRoaXMuX3NlbGVjdGVkSWNvbikKKyAgICAgICAgICAgIHJl
dHVybiBudWxsOworCisgICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEljb24uaWQ7CisgICAg
fQorCisgICAgc2V0IHZhbHVlKHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5fY29tcHV0ZWRJ
Y29uID0gbnVsbDsKKyAgICAgICAgdGhpcy5fc2VsZWN0ZWRJY29uID0gbnVsbDsKKyAgICAgICAg
Zm9yIChsZXQgaWNvbiBvZiB0aGlzLl9pY29uRWxlbWVudHMpIHsKKyAgICAgICAgICAgIGlmIChp
Y29uLmlkID09PSB0aGlzLl91cGRhdGVkVmFsdWVzLnBsYWNlaG9sZGVyKQorICAgICAgICAgICAg
ICAgIHRoaXMuX2NvbXB1dGVkSWNvbiA9IGljb247CisKKyAgICAgICAgICAgIGlmIChpY29uLmlk
ID09PSB2YWx1ZSAmJiAhdGhpcy5fdXBkYXRlZFZhbHVlcy5wcm9wZXJ0eU1pc3NpbmcpCisgICAg
ICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRJY29uID0gaWNvbjsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICBpY29uLmNsYXNzTGlzdC5yZW1vdmUoInNlbGVjdGVkIiwgImNvbXB1
dGVkIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXRoaXMuX2NvbXB1dGVkSWNvbikKKyAg
ICAgICAgICAgIHRoaXMuX2NvbXB1dGVkSWNvbiA9IHRoaXMuX2ljb25FbGVtZW50c1swXTsKKwor
ICAgICAgICBsZXQgaWNvbklzU2VsZWN0ZWQgPSB0aGlzLl9zZWxlY3RlZEljb24gJiYgdGhpcy5f
c2VsZWN0ZWRJY29uLmNsYXNzTGlzdC50b2dnbGUoInNlbGVjdGVkIik7CisgICAgICAgIGlmICgh
aWNvbklzU2VsZWN0ZWQpIHsKKyAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkSWNvbiA9IG51bGw7
CisgICAgICAgICAgICB0aGlzLl91cGRhdGVkVmFsdWVzLnByb3BlcnR5TWlzc2luZyA9IHRydWU7
CisgICAgICAgICAgICB0aGlzLl9jb21wdXRlZEljb24uY2xhc3NMaXN0LmFkZCgiY29tcHV0ZWQi
KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGdldCBzeW50aGVzaXplZFZhbHVlKCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLnZhbHVlOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKwor
ICAgIF9oYW5kbGVLZXl3b3JkQ2hhbmdlZChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX3Vw
ZGF0ZWRWYWx1ZXMucHJvcGVydHlNaXNzaW5nID0gZmFsc2U7CisgICAgICAgIHRoaXMudmFsdWUg
PSBldmVudC50YXJnZXQuaWQ7CisgICAgICAgIHRoaXMuX3ZhbHVlRGlkQ2hhbmdlKCk7CisgICAg
fQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Zpc3VhbFN0eWxlS2V5d29yZFBpY2tlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlS2V5d29yZFBpY2tlci5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41ZmI0MjBhOWY3NDFhODYzNDFlNTcxNDczZmEwYTIxZjFhNDlkMjVjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5
bGVLZXl3b3JkUGlja2VyLmpzCkBAIC0wLDAgKzEsMTU2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV2ViSW5z
cGVjdG9yLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlciA9IGNsYXNzIFZpc3VhbFN0eWxlS2V5d29y
ZFBpY2tlciBleHRlbmRzIFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yCit7
CisgICAgY29uc3RydWN0b3IocHJvcGVydHlOYW1lcywgdGV4dCwgcG9zc2libGVWYWx1ZXMsIGxh
eW91dFJldmVyc2VkKQorICAgIHsKKyAgICAgICAgc3VwZXIocHJvcGVydHlOYW1lcywgdGV4dCwg
cG9zc2libGVWYWx1ZXMsIG51bGwsICJrZXl3b3JkLXBpY2tlciIsIGxheW91dFJldmVyc2VkKTsK
KworICAgICAgICB0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInNlbGVjdCIpOworICAgICAgICB0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudC5jbGFz
c0xpc3QuYWRkKCJrZXl3b3JkLXBpY2tlci1zZWxlY3QiKTsKKyAgICAgICAgaWYgKHRoaXMuX3Bv
c3NpYmxlVmFsdWVzLmFkdmFuY2VkKQorICAgICAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVs
ZW1lbnQudGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkFsdCBDbGljayB0byBzaG93IGFs
bCB2YWx1ZXMiKTsKKworICAgICAgICB0aGlzLl91bmNoYW5nZWRPcHRpb25FbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIik7CisgICAgICAgIHRoaXMuX3VuY2hhbmdlZE9w
dGlvbkVsZW1lbnQudmFsdWUgPSAiIjsKKyAgICAgICAgdGhpcy5fdW5jaGFuZ2VkT3B0aW9uRWxl
bWVudC50ZXh0ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJVbmNoYW5nZWQiKTsKKyAgICAgICAg
dGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fdW5jaGFuZ2VkT3B0
aW9uRWxlbWVudCk7CisKKyAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaHIiKSk7CisKKyAgICAgICAgdGhpcy5fYWRk
VmFsdWVzKHRoaXMuX3Bvc3NpYmxlVmFsdWVzLmJhc2ljKTsKKyAgICAgICAgdGhpcy5fYWR2YW5j
ZWRWYWx1ZXNFbGVtZW50cyA9IG51bGw7CisKKyAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcy5fa2V5d29yZFNlbGVjdE1v
dXNlRG93bi5iaW5kKHRoaXMpKTsKKyAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgdGhpcy5faGFuZGxlS2V5d29yZENoYW5nZWQuYmlu
ZCh0aGlzKSk7CisgICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5f
a2V5d29yZFNlbGVjdEVsZW1lbnQpOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgZ2V0
IHZhbHVlKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVu
dC52YWx1ZTsKKyAgICB9CisKKyAgICBzZXQgdmFsdWUodmFsdWUpCisgICAgeworICAgICAgICBp
ZiAodGhpcy5fdXBkYXRlZFZhbHVlcy5wcm9wZXJ0eU1pc3NpbmcgfHwgIXRoaXMudmFsdWVJc0tl
eXdvcmQodmFsdWUpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICh2YWx1ZSA9
PT0gdGhpcy52YWx1ZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAodGhpcy5f
dmFsdWVJc0FkdmFuY2VkS2V5d29yZCh2YWx1ZSkpCisgICAgICAgICAgICB0aGlzLl9hZGRBZHZh
bmNlZFZhbHVlcygpOworCisgICAgICAgIHRoaXMuX2tleXdvcmRTZWxlY3RFbGVtZW50LnZhbHVl
ID0gdmFsdWU7CisgICAgfQorCisgICAgc2V0IHBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyKQorICAg
IHsKKyAgICAgICAgaWYgKHRoaXMuX3VwZGF0ZWRWYWx1ZXMuY29uZmxpY3RpbmdWYWx1ZXMpCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5zcGVjaWFsUHJvcGVydHlQbGFjZWhv
bGRlckVsZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLl9rZXlGb3JLZXl3b3JkKHBsYWNlaG9sZGVy
KSB8fCBwbGFjZWhvbGRlcjsKKyAgICB9CisKKyAgICBnZXQgc3ludGhlc2l6ZWRWYWx1ZSgpCisg
ICAgeworICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudC52YWx1
ZTsKKyAgICAgICAgaWYgKCF2YWx1ZSB8fCAhdmFsdWUubGVuZ3RoKQorICAgICAgICAgICAgcmV0
dXJuIG51bGw7CisKKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKworICAgIHVwZGF0ZUVk
aXRvclZhbHVlcyh1cGRhdGVkVmFsdWVzKQorICAgIHsgICBpZiAoIXVwZGF0ZWRWYWx1ZXMuY29u
ZmxpY3RpbmdWYWx1ZXMpIHsKKyAgICAgICAgICAgIGxldCBtaXNzaW5nID0gdXBkYXRlZFZhbHVl
cy5wcm9wZXJ0eU1pc3NpbmcgfHwgIXVwZGF0ZWRWYWx1ZXMudmFsdWU7CisgICAgICAgICAgICB0
aGlzLl91bmNoYW5nZWRPcHRpb25FbGVtZW50LnNlbGVjdGVkID0gbWlzc2luZzsKKyAgICAgICAg
ICAgIHRoaXMuc3BlY2lhbFByb3BlcnR5UGxhY2Vob2xkZXJFbGVtZW50LmhpZGRlbiA9ICFtaXNz
aW5nOworICAgICAgICB9CisKKyAgICAgICAgc3VwZXIudXBkYXRlRWRpdG9yVmFsdWVzKHVwZGF0
ZWRWYWx1ZXMpOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9oYW5kbGVLZXl3b3Jk
Q2hhbmdlZCgpCisgICAgeworICAgICAgICB0aGlzLl92YWx1ZURpZENoYW5nZSgpOworCisgICAg
ICAgIGlmICh0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudC5jb250YWlucyh0aGlzLl91bmNoYW5n
ZWRPcHRpb25FbGVtZW50KSAmJiB0aGlzLl91bmNoYW5nZWRPcHRpb25FbGVtZW50LnNlbGVjdGVk
KQorICAgICAgICAgICAgdGhpcy5zcGVjaWFsUHJvcGVydHlQbGFjZWhvbGRlckVsZW1lbnQuaGlk
ZGVuID0gZmFsc2U7CisgICAgfQorCisgICAgX2tleXdvcmRTZWxlY3RNb3VzZURvd24oZXZlbnQp
CisgICAgeworICAgICAgICBpZiAoZXZlbnQuYWx0S2V5KQorICAgICAgICAgICAgdGhpcy5fYWRk
QWR2YW5jZWRWYWx1ZXMoKTsKKyAgICAgICAgZWxzZSBpZiAoIXRoaXMuX3ZhbHVlSXNBZHZhbmNl
ZEtleXdvcmQoKSkKKyAgICAgICAgICAgIHRoaXMuX3JlbW92ZUFkdmFuY2VkVmFsdWVzKCk7Cisg
ICAgfQorCisgICAgX2FkZFZhbHVlcyh2YWx1ZXMpCisgICAgeworICAgICAgICBsZXQgYWRkZWRF
bGVtZW50cyA9IFtdOworICAgICAgICBmb3IgKGxldCBrZXkgaW4gdmFsdWVzKSB7CisgICAgICAg
ICAgICBsZXQgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIik7CisgICAg
ICAgICAgICBvcHRpb24udmFsdWUgPSBrZXk7CisgICAgICAgICAgICBvcHRpb24udGV4dCA9IHZh
bHVlc1trZXldOworICAgICAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQuYXBwZW5k
Q2hpbGQob3B0aW9uKTsKKyAgICAgICAgICAgIGFkZGVkRWxlbWVudHMucHVzaChvcHRpb24pOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiBhZGRlZEVsZW1lbnRzOworICAgIH0KKworICAgIF9h
ZGRBZHZhbmNlZFZhbHVlcygpCisgICAgeworICAgICAgICBpZiAodGhpcy5fYWR2YW5jZWRWYWx1
ZXNFbGVtZW50cykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLl9rZXl3b3Jk
U2VsZWN0RWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJociIpKTsK
KyAgICAgICAgdGhpcy5fYWR2YW5jZWRWYWx1ZXNFbGVtZW50cyA9IHRoaXMuX2FkZFZhbHVlcyh0
aGlzLl9wb3NzaWJsZVZhbHVlcy5hZHZhbmNlZCk7CisgICAgfQorCisgICAgX3JlbW92ZUFkdmFu
Y2VkVmFsdWVzKCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5fYWR2YW5jZWRWYWx1ZXNFbGVt
ZW50cykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLl9rZXl3b3JkU2VsZWN0
RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLl9hZHZhbmNlZFZhbHVlc0VsZW1lbnRzWzBdLnByZXZp
b3VzU2libGluZyk7CisgICAgICAgIGZvciAobGV0IGVsZW1lbnQgb2YgdGhpcy5fYWR2YW5jZWRW
YWx1ZXNFbGVtZW50cykKKyAgICAgICAgICAgIHRoaXMuX2tleXdvcmRTZWxlY3RFbGVtZW50LnJl
bW92ZUNoaWxkKGVsZW1lbnQpOworCisgICAgICAgIHRoaXMuX2FkdmFuY2VkVmFsdWVzRWxlbWVu
dHMgPSBudWxsOworICAgIH0KKworICAgIF90b2dnbGVUYWJiaW5nT2ZTZWxlY3RhYmxlRWxlbWVu
dHMoZGlzYWJsZWQpCisgICAgeworICAgICAgICB0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudC50
YWJJbmRleCA9IGRpc2FibGVkID8gIi0xIiA6IG51bGw7CisgICAgfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlUHJv
cGVydHlOYW1lSW5wdXQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9WaXN1YWxTdHlsZVByb3BlcnR5TmFtZUlucHV0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwZTUzYTk2
NWJlYzdjMmE3YzU4NTYyZmMwNmQzNTk5ZDU0NGU2YWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVByb3BlcnR5
TmFtZUlucHV0LmpzCkBAIC0wLDAgKzEsMTQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV2ViSW5zcGVjdG9y
LlZpc3VhbFN0eWxlUHJvcGVydHlOYW1lSW5wdXQgPSBjbGFzcyBWaXN1YWxTdHlsZVByb3BlcnR5
TmFtZUlucHV0IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3IK
K3sKKyAgICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eU5hbWVzLCB0ZXh0LCBsYXlvdXRSZXZlcnNlZCkK
KyAgICB7CisgICAgICAgIHN1cGVyKHByb3BlcnR5TmFtZXMsIHRleHQsIG51bGwsIG51bGwsICJw
cm9wZXJ0eS1uYW1lLWlucHV0IiwgbGF5b3V0UmV2ZXJzZWQpOworCisgICAgICAgIHRoaXMuX3By
b3BlcnR5TmFtZUlucHV0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7
CisgICAgICAgIHRoaXMuX3Byb3BlcnR5TmFtZUlucHV0RWxlbWVudC5wbGFjZWhvbGRlciA9IFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiRW50ZXIgYSBuYW1lLiIpOworICAgICAgICB0aGlzLl9wcm9w
ZXJ0eU5hbWVJbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX2lu
cHV0S2V5RG93bi5iaW5kKHRoaXMpKTsKKyAgICAgICAgdGhpcy5fcHJvcGVydHlOYW1lSW5wdXRF
bGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIiwgdGhpcy5faW5wdXRLZXlVcC5iaW5kKHRo
aXMpKTsKKyAgICAgICAgdGhpcy5fcHJvcGVydHlOYW1lSW5wdXRFbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIoImJsdXIiLCB0aGlzLl9oaWRlQ29tcGxldGlvbnMuYmluZCh0aGlzKSk7CisgICAgICAg
IHRoaXMuY29udGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fcHJvcGVydHlOYW1lSW5wdXRF
bGVtZW50KTsKKworICAgICAgICB0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlciA9IG5ldyBXZWJJ
bnNwZWN0b3IuVmlzdWFsU3R5bGVDb21wbGV0aW9uc0NvbnRyb2xsZXIodGhpcyk7CisgICAgICAg
IHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LlZpc3VhbFN0eWxlQ29tcGxldGlvbnNDb250cm9sbGVyLkV2ZW50LkNvbXBsZXRpb25TZWxlY3Rl
ZCwgdGhpcy5fY29tcGxldGlvbkNsaWNrZWQsIHRoaXMpOworICAgIH0KKworICAgIC8vIFB1Ymxp
YworCisgICAgZ2V0IHZhbHVlKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9wcm9wZXJ0
eU5hbWVJbnB1dEVsZW1lbnQudmFsdWU7CisgICAgfQorCisgICAgc2V0IHZhbHVlKHZhbHVlKQor
ICAgIHsKKyAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlID09PSB0aGlzLnZhbHVlKQorICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuX3Byb3BlcnR5TmFtZUlucHV0RWxlbWVudC52
YWx1ZSA9IHZhbHVlOworICAgIH0KKworICAgIGdldCBzeW50aGVzaXplZFZhbHVlKCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLnZhbHVlIHx8IG51bGw7CisgICAgfQorCisgICAgZ2V0IGhh
c0NvbXBsZXRpb25zKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9jb21wbGV0aW9uQ29u
dHJvbGxlci5oYXNDb21wbGV0aW9uczsKKyAgICB9CisKKyAgICBzZXQgY29tcGxldGlvbnMoY29t
cGxldGlvbnMpCisgICAgeworICAgICAgICB0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci5jb21w
bGV0aW9ucyA9IGNvbXBsZXRpb25zOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9j
b21wbGV0aW9uQ2xpY2tlZChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMudmFsdWUgPSBldmVu
dC5kYXRhLnRleHQ7CisgICAgICAgIHRoaXMuX3ZhbHVlRGlkQ2hhbmdlKCk7CisgICAgfQorCisg
ICAgX2lucHV0S2V5RG93bihldmVudCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5fY29tcGxl
dGlvbkNvbnRyb2xsZXIudmlzaWJsZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBs
ZXQga2V5Q29kZSA9IGV2ZW50LmtleUNvZGU7CisgICAgICAgIGxldCBlbnRlcktleUNvZGUgPSBX
ZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuRW50ZXIua2V5Q29kZTsKKyAgICAgICAg
bGV0IHRhYktleUNvZGUgPSBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuVGFiLmtl
eUNvZGU7CisgICAgICAgIGlmIChrZXlDb2RlID09PSBlbnRlcktleUNvZGUgfHwga2V5Q29kZSA9
PT0gdGFiS2V5Q29kZSkgeworICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuX2NvbXBsZXRp
b25Db250cm9sbGVyLmN1cnJlbnRDb21wbGV0aW9uOworICAgICAgICAgICAgdGhpcy5faGlkZUNv
bXBsZXRpb25zKCk7CisgICAgICAgICAgICB0aGlzLl92YWx1ZURpZENoYW5nZSgpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbGV0IGVzY2FwZUtleUNvZGUgPSBX
ZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuRXNjYXBlLmtleUNvZGU7CisgICAgICAg
IGlmIChrZXlDb2RlID09PSBlc2NhcGVLZXlDb2RlKSB7CisgICAgICAgICAgICB0aGlzLl9oaWRl
Q29tcGxldGlvbnMoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IGxldCBrZXkgPSBldmVudC5rZXlJZGVudGlmaWVyOworICAgICAgICBpZiAoa2V5ID09PSAiVXAi
KSB7CisgICAgICAgICAgICB0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci5wcmV2aW91cygpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGtleSA9PT0gIkRv
d24iKSB7CisgICAgICAgICAgICB0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci5uZXh0KCk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBfaW5wdXRLZXlVcCgp
CisgICAgeworICAgICAgICBpZiAoIXRoaXMuaGFzQ29tcGxldGlvbnMpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuX3ZhbHVlRGlkQ2hhbmdlKCk7Cisg
ICAgICAgIGlmICghcmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICh0
aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci51cGRhdGUodGhpcy52YWx1ZSkpIHsKKyAgICAgICAg
ICAgIGxldCBib3VuZHMgPSBXZWJJbnNwZWN0b3IuUmVjdC5yZWN0RnJvbUNsaWVudFJlY3QodGhp
cy5fcHJvcGVydHlOYW1lSW5wdXRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTsKKyAg
ICAgICAgICAgIGlmICghYm91bmRzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICAgICAgdGhpcy5fY29tcGxldGlvbkNvbnRyb2xsZXIuc2hvdyhib3VuZHMsIDIpOworICAgICAg
ICB9CisgICAgfQorCisgICAgX2hpZGVDb21wbGV0aW9ucygpCisgICAgeworICAgICAgICB0aGlz
Ll9jb21wbGV0aW9uQ29udHJvbGxlci5oaWRlKCk7CisgICAgfQorCisgICAgX3RvZ2dsZVRhYmJp
bmdPZlNlbGVjdGFibGVFbGVtZW50cyhkaXNhYmxlZCkKKyAgICB7CisgICAgICAgIHRoaXMuX3By
b3BlcnR5TmFtZUlucHV0RWxlbWVudC50YWJJbmRleCA9IGRpc2FibGVkID8gIi0xIiA6IG51bGw7
CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVVJMSW5wdXQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVVSTElucHV0LmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcx
YmE1YTFmODkxYTc2OTgzM2RjMTBkNTU3ZGEyNzlkNDBhNjdkYzQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVVS
TElucHV0LmpzCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXZWJJbnNwZWN0b3IuVmlz
dWFsU3R5bGVVUkxJbnB1dCA9IGNsYXNzIFZpc3VhbFN0eWxlVVJMSW5wdXQgZXh0ZW5kcyBXZWJJ
bnNwZWN0b3IuVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvcgoreworICAgIGNvbnN0cnVjdG9yKHBy
b3BlcnR5TmFtZXMsIHRleHQsIGxheW91dFJldmVyc2VkKQorICAgIHsKKyAgICAgICAgc3VwZXIo
cHJvcGVydHlOYW1lcywgdGV4dCwgbnVsbCwgbnVsbCwgInVybC1pbnB1dCIsIGxheW91dFJldmVy
c2VkKTsKKworICAgICAgICB0aGlzLl91cmxJbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpbnB1dCIpOworICAgICAgICB0aGlzLl91cmxJbnB1dEVsZW1lbnQudHlwZSA9ICJ1
cmwiOworICAgICAgICB0aGlzLl91cmxJbnB1dEVsZW1lbnQucGxhY2Vob2xkZXIgPSBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIkVudGVyIGEgVVJMIik7CisgICAgICAgIHRoaXMuX3VybElucHV0RWxl
bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsIHRoaXMuX3ZhbHVlRGlkQ2hhbmdlLmJpbmQo
dGhpcykpOworICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3Vy
bElucHV0RWxlbWVudCk7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQgdmFsdWUo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3VybElucHV0RWxlbWVudC52YWx1ZTsKKyAg
ICB9CisKKyAgICBzZXQgdmFsdWUodmFsdWUpCisgICAgeworICAgICAgICBpZiAodmFsdWUgJiYg
dmFsdWUgPT09IHRoaXMudmFsdWUpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhp
cy5fdXJsSW5wdXRFbGVtZW50LnZhbHVlID0gdmFsdWU7CisgICAgfQorCisgICAgZ2V0IHN5bnRo
ZXNpemVkVmFsdWUoKQorICAgIHsKKyAgICAgICAgdmFyIHZhbHVlID0gdGhpcy52YWx1ZTsKKyAg
ICAgICAgaWYgKCF2YWx1ZSB8fCAhdmFsdWUubGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuIG51
bGw7CisKKyAgICAgICAgcmV0dXJuICJ1cmwoIiArIHRoaXMudmFsdWUgKyAiKSI7CisgICAgfQor
CisgICAgLy8gUHJvdGVjdGVkCisKKyAgICBwYXJzZVZhbHVlKHRleHQpCisgICAgeworICAgICAg
ICByZXR1cm4gL14oPzp1cmxcKFxzKikoW15cKV0qKSg/OlxzKlwpXHMqOz8pJC8uZXhlYyh0ZXh0
KTsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvVmlzdWFsU3R5bGVVbml0U2xpZGVyLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVW5pdFNsaWRlci5jc3MKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWM3MTA1ZTAxNzEzMmFiMTgyZmZjZjM3NGIyYzEzNDEwOTc1M2MxMwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3Vh
bFN0eWxlVW5pdFNsaWRlci5jc3MKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy52aXN1
YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLnVuaXQtc2xpZGVyID4gLnZpc3VhbC1zdHlsZS1w
cm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAuc2xpZGVyIHsKKyAgICBwb3NpdGlvbjogcmVsYXRp
dmU7CisgICAgbWFyZ2luOiA1cHggMXB4IDA7Cit9CisKKy52aXN1YWwtc3R5bGUtcHJvcGVydHkt
Y29udGFpbmVyLnVuaXQtc2xpZGVyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250
YWluZXIgPiAuc2xpZGVyID4gaW1nIHsKKyAgICB0b3A6IC0xcHg7Cit9CisKKy52aXN1YWwtc3R5
bGUtcHJvcGVydHktY29udGFpbmVyLnVuaXQtc2xpZGVyLm9wYWNpdHkgPiAudmlzdWFsLXN0eWxl
LXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5zbGlkZXIgeworICAgIGJhY2tncm91bmQtaW1h
Z2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgaHNsYSgwLCAwJSwgMCUsIDApLCAjMDAwKSwgdXJs
KC4uL0ltYWdlcy9DaGVja2Vycy5zdmcpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVVbml0U2xpZGVyLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVVbml0U2xp
ZGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjM4YjI1ZWVlMTJhMTgzNmYyMGFkNGEwNThlZTkzN2ZhODEzYWVm
NzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9WaXN1YWxTdHlsZVVuaXRTbGlkZXIuanMKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK1dlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVVuaXRTbGlkZXIgPSBjbGFzcyBWaXN1YWxT
dHlsZVVuaXRTbGlkZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVQcm9wZXJ0eUVk
aXRvcgoreworICAgIGNvbnN0cnVjdG9yKHByb3BlcnR5TmFtZXMsIGxhYmVsLCBsYXlvdXRSZXZl
cnNlZCkKKyAgICB7CisgICAgICAgIHN1cGVyKHByb3BlcnR5TmFtZXMsIGxhYmVsLCBudWxsLCBu
dWxsLCAidW5pdC1zbGlkZXIiLCBsYXlvdXRSZXZlcnNlZCk7CisKKyAgICAgICAgdGhpcy5fc2xp
ZGVyID0gbmV3IFdlYkluc3BlY3Rvci5TbGlkZXI7CisgICAgICAgIHRoaXMuX3NsaWRlci5kZWxl
Z2F0ZSA9IHRoaXM7CisgICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhp
cy5fc2xpZGVyLmVsZW1lbnQpOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgc2V0IHZh
bHVlKHZhbHVlKQorICAgIHsKKyAgICAgICAgbGV0IGtub2JYID0gcGFyc2VGbG9hdCh2YWx1ZSk7
CisgICAgICAgIGlmIChpc05hTihrbm9iWCkpCisgICAgICAgICAgICBrbm9iWCA9IHBhcnNlRmxv
YXQodGhpcy5fdXBkYXRlZFZhbHVlcy5wbGFjZWhvbGRlcikgfHwgMDsKKworICAgICAgICB0aGlz
Ll9zbGlkZXIua25vYlggPSBrbm9iWDsKKyAgICB9CisKKyAgICBnZXQgdmFsdWUoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIE1hdGgucm91bmQodGhpcy5fc2xpZGVyLnZhbHVlICogMTAwKSAvIDEw
MDsKKyAgICB9CisKKyAgICBnZXQgc3ludGhlc2l6ZWRWYWx1ZSgpCisgICAgeworICAgICAgICBy
ZXR1cm4gdGhpcy52YWx1ZTsKKyAgICB9CisKKyAgICBzbGlkZXJWYWx1ZURpZENoYW5nZShzbGlk
ZXIsIHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5fdmFsdWVEaWRDaGFuZ2UoKTsKKyAgICB9
Cit9Owo=
</data>
<flag name="review"
          id="283640"
          type_id="1"
          status="+"
          setter="bburg"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258640</attachid>
            <date>2015-08-10 12:51:54 -0700</date>
            <delta_ts>2015-08-10 13:56:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>147711.txt</filename>
            <type>text/plain</type>
            <size>75064</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDMwMGE0YTIuLjBjNmI1ZWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1NiBAQAorMjAxNS0wOC0xMCAgRGV2aW4gUm91c3Nv
ICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIGRpZmZl
cmVudCB0eXBlcyBvZiBub24tbnVtZXJpY2FsIFZpc3VhbCBlZGl0b3JzIGZvciBDU1MgcHJvcGVy
dGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3
NzExCisKKyAgICAgICAgQWRkZWQgZWRpdG9ycyBmb3Iga2V5d29yZCBiYXNlZCBDU1MgcHJvcGVy
dGllcyBmb3IgdXNlIGluIHRoZSBWaXN1YWwgc3R5bGUKKyAgICAgICAgZGV0YWlscyBwYW5lbCBp
biB0aGUgQ1NTIHNpZGViYXIuICBBbHNvIGFkZGVkIGltYWdlcyBmb3Iga2V5d29yZCB2YWx1ZXMg
dGhhdAorICAgICAgICBhcmUgc2ltcGxlIGVub3VnaCB0byBiZSBjb252ZXllZCBpbiBhbiBpbWFn
ZS4KKworICAgICAgICBSZXZpZXdlZCBieSBCcmlhbiBCdXJnLgorCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9JbWFnZXMvQ2xlYXJCb3RoLnN2ZzogQWRkZWQuCisgICAgICAgICogVXNlckludGVy
ZmFjZS9JbWFnZXMvQ2xlYXJMZWZ0LnN2ZzogQWRkZWQuCisgICAgICAgICogVXNlckludGVyZmFj
ZS9JbWFnZXMvQ2xlYXJSaWdodC5zdmc6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
SW1hZ2VzL0Zsb2F0TGVmdC5zdmc6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1h
Z2VzL0Zsb2F0UmlnaHQuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0ltYWdl
cy9Gb250U3R5bGVJdGFsaWMuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0lt
YWdlcy9Gb250U3R5bGVOb3JtYWwuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L0ltYWdlcy9Gb250VmFyaWFudFNtYWxsQ2Fwcy5zdmc6IEFkZGVkLgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvSW1hZ2VzL1RleHRBbGlnbkNlbnRlci5zdmc6IEFkZGVkLgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRBbGlnbkp1c3RpZnkuc3ZnOiBBZGRlZC4KKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0QWxpZ25MZWZ0LnN2ZzogQWRkZWQuCisgICAgICAg
ICogVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dEFsaWduUmlnaHQuc3ZnOiBBZGRlZC4KKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0RGVjb3JhdGlvbkxpbmVUaHJvdWdoLnN2Zzog
QWRkZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dERlY29yYXRpb25PdmVy
bGluZS5zdmc6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHREZWNv
cmF0aW9uVW5kZXJsaW5lLnN2ZzogQWRkZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9JbWFn
ZXMvVGV4dFRyYW5zZm9ybUNhcGl0YWxpemUuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL0ltYWdlcy9UZXh0VHJhbnNmb3JtTG93ZXJjYXNlLnN2ZzogQWRkZWQuCisgICAgICAg
ICogVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dFRyYW5zZm9ybVVwcGVyY2FzZS5zdmc6IEFkZGVk
LgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL1Zpc3VhbFN0eWxlTm9uZS5zdmc6IEFk
ZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblRl
eHRFZGl0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblRl
eHRFZGl0b3IucHJvdG90eXBlLl9jcmVhdGVDb2xvclN3YXRjaGVzLnVwZGF0ZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IucHJvdG90eXBlLl9j
cmVhdGVDb2xvclN3YXRjaGVzKToKKyAgICAgICAgQ2hhbmdlZCBjb2xvciBzd2F0Y2ggdGl0bGUu
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1NsaWRlci5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TbGlkZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNsaWRlci5wcm90b3R5
cGUuc2V0IHZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TbGlkZXIucHJvdG90eXBlLnNl
dCBrbm9iWCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2xpZGVyLnByb3RvdHlwZS5nZXQgbWF4
WCk6CisgICAgICAgIElmIHRoZSBnaXZlbiB2YWx1ZSBpcyBiZWxvdyAwLCByZXNldCBpdCB0byAw
LgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNsaWRlci5wcm90b3R5cGUuX2hhbmRsZU1vdXNlZG93
bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2xpZGVyLnByb3RvdHlwZS5faGFuZGxlTW91c2Vt
b3ZlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TbGlkZXIucHJvdG90eXBlLmdldCBfbWF4WCk6
IERlbGV0ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQ29s
b3JQaWNrZXIuY3NzOiBBZGRlZC4KKyAgICAgICAgKC52aXN1YWwtc3R5bGUtcHJvcGVydHktY29u
dGFpbmVyLmlucHV0LWNvbG9yLXBpY2tlciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUt
Y29udGFpbmVyKToKKyAgICAgICAgKC52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmlu
cHV0LWNvbG9yLXBpY2tlciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVy
ID4gLnZpc3VhbC1zdHlsZS1zcGVjaWFsLXByb3BlcnR5LXBsYWNlaG9sZGVyKToKKyAgICAgICAg
KC52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmlucHV0LWNvbG9yLXBpY2tlciA+IC52
aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLmNvbG9yLXN3YXRjaCk6Cisg
ICAgICAgICgudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5pbnB1dC1jb2xvci1waWNr
ZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5jb2xvci1zd2F0
Y2g6aG92ZXIpOgorICAgICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIuaW5w
dXQtY29sb3ItcGlja2VyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIg
PiAuY29sb3Itc3dhdGNoOmFjdGl2ZSk6CisgICAgICAgICgudmlzdWFsLXN0eWxlLXByb3BlcnR5
LWNvbnRhaW5lci5pbnB1dC1jb2xvci1waWNrZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZh
bHVlLWNvbnRhaW5lciA+IC5jb2xvci1zd2F0Y2ggPiBzcGFuKToKKyAgICAgICAgKC52aXN1YWwt
c3R5bGUtcHJvcGVydHktY29udGFpbmVyLmlucHV0LWNvbG9yLXBpY2tlciA+IC52aXN1YWwtc3R5
bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gaW5wdXQpOgorICAgICAgICAoLnZpc3VhbC1z
dHlsZS1wcm9wZXJ0eS1jb250YWluZXIuaW5wdXQtY29sb3ItcGlja2VyLm11bHRpcGxlID4gLnZp
c3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAudmlzdWFsLXN0eWxlLW11bHRp
cGxlLXByb3BlcnR5LXBsYWNlaG9sZGVyKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvVmlzdWFsU3R5bGVDb2xvclBpY2tlci5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0
b3IuVmlzdWFsU3R5bGVDb2xvclBpY2tlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFs
U3R5bGVDb2xvclBpY2tlci5wcm90b3R5cGUuZ2V0IHZhbHVlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5WaXN1YWxTdHlsZUNvbG9yUGlja2VyLnByb3RvdHlwZS5zZXQgdmFsdWUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlQ29sb3JQaWNrZXIucHJvdG90eXBlLmdldCBwbGFj
ZWhvbGRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVDb2xvclBpY2tlci5w
cm90b3R5cGUuc2V0IHBsYWNlaG9sZGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxT
dHlsZUNvbG9yUGlja2VyLnByb3RvdHlwZS5nZXQgc3ludGhlc2l6ZWRWYWx1ZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVDb2xvclBpY2tlci5wcm90b3R5cGUuZ2V0IGhhc0Nv
bXBsZXRpb25zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUNvbG9yUGlja2Vy
LnByb3RvdHlwZS5zZXQgY29tcGxldGlvbnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3Vh
bFN0eWxlQ29sb3JQaWNrZXIucHJvdG90eXBlLl91cGRhdGVDb2xvclN3YXRjaCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVDb2xvclBpY2tlci5wcm90b3R5cGUuX2NvbG9yU3dh
dGNoQ2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVDb2xvclBpY2tl
ci5wcm90b3R5cGUuX2NvbG9yUGlja2VyQ29sb3JEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlZpc3VhbFN0eWxlQ29sb3JQaWNrZXIucHJvdG90eXBlLl9jb21wbGV0aW9uQ2xpY2tl
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVDb2xvclBpY2tlci5wcm90b3R5
cGUuX3RleHRJbnB1dEtleURvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxl
Q29sb3JQaWNrZXIucHJvdG90eXBlLl90ZXh0SW5wdXRLZXlVcCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVmlzdWFsU3R5bGVDb2xvclBpY2tlci5wcm90b3R5cGUuX3Nob3dDb21wbGV0aW9uc0lm
QWJsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVDb2xvclBpY2tlci5wcm90
b3R5cGUuX2hpZGVDb21wbGV0aW9ucyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5
bGVDb2xvclBpY2tlci5wcm90b3R5cGUuX3RvZ2dsZVRhYmJpbmdPZlNlbGVjdGFibGVFbGVtZW50
cyk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlS2V5d29yZENo
ZWNrYm94LmNzczogQWRkZWQuCisgICAgICAgICgudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRh
aW5lci5rZXl3b3JkLWNoZWNrYm94ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250
YWluZXIpOgorICAgICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29y
ZC1jaGVja2JveCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gaW5w
dXQpOgorICAgICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29yZC1j
aGVja2JveCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gZGl2KToK
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVLZXl3b3JkQ2hlY2ti
b3guanM6IEFkZGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlS2V5d29yZENo
ZWNrYm94KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUtleXdvcmRDaGVja2Jv
eC5wcm90b3R5cGUuZ2V0IHZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHls
ZUtleXdvcmRDaGVja2JveC5wcm90b3R5cGUuc2V0IHZhbHVlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5WaXN1YWxTdHlsZUtleXdvcmRDaGVja2JveC5wcm90b3R5cGUuZ2V0IHN5bnRoZXNpemVk
VmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlS2V5d29yZENoZWNrYm94
LnByb3RvdHlwZS5fdG9nZ2xlVGFiYmluZ09mU2VsZWN0YWJsZUVsZW1lbnRzKToKKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVLZXl3b3JkSWNvbkxpc3QuY3NzOiBB
ZGRlZC4KKyAgICAgICAgKC52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmtleXdvcmQt
aWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIpOgorICAg
ICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29yZC1pY29uLWxpc3Qg
PiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb24t
bGlzdC1jb250YWluZXIpOgorICAgICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWlu
ZXIua2V5d29yZC1pY29uLWxpc3QgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRh
aW5lciA+IC5rZXl3b3JkLWljb24tbGlzdC1jb250YWluZXIgPiAua2V5d29yZC1pY29uKToKKyAg
ICAgICAgKC52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmtleXdvcmQtaWNvbi1saXN0
ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAua2V5d29yZC1pY29u
LWxpc3QtY29udGFpbmVyID4gLmtleXdvcmQtaWNvbjpmaXJzdC1jaGlsZCk6CisgICAgICAgICgu
dmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5rZXl3b3JkLWljb24tbGlzdCA+IC52aXN1
YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLmtleXdvcmQtaWNvbi1saXN0LWNv
bnRhaW5lciA+IC5rZXl3b3JkLWljb246bGFzdC1jaGlsZCk6CisgICAgICAgICgudmlzdWFsLXN0
eWxlLXByb3BlcnR5LWNvbnRhaW5lci5rZXl3b3JkLWljb24tbGlzdCA+IC52aXN1YWwtc3R5bGUt
cHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLmtleXdvcmQtaWNvbi1saXN0LWNvbnRhaW5lciA+
IC5rZXl3b3JkLWljb246bWF0Y2hlcyguY29tcHV0ZWQsIC5zZWxlY3RlZCkpOgorICAgICAgICAo
LnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29yZC1pY29uLWxpc3QgPiAudmlz
dWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb24tbGlzdC1j
b250YWluZXIgPiAua2V5d29yZC1pY29uLnNlbGVjdGVkKToKKyAgICAgICAgKC52aXN1YWwtc3R5
bGUtcHJvcGVydHktY29udGFpbmVyLmtleXdvcmQtaWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1w
cm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAua2V5d29yZC1pY29uLWxpc3QtY29udGFpbmVyID4g
LmtleXdvcmQtaWNvbi5zZWxlY3RlZCBzdmcgLnN0cm9rZWQpOgorICAgICAgICAoLnZpc3VhbC1z
dHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29yZC1pY29uLWxpc3QgPiAudmlzdWFsLXN0eWxl
LXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb24tbGlzdC1jb250YWluZXIg
PiAua2V5d29yZC1pY29uLnNlbGVjdGVkIHN2ZyAuZmlsbGVkKToKKyAgICAgICAgKC52aXN1YWwt
c3R5bGUtcHJvcGVydHktY29udGFpbmVyLmtleXdvcmQtaWNvbi1saXN0ID4gLnZpc3VhbC1zdHls
ZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAua2V5d29yZC1pY29uLWxpc3QtY29udGFpbmVy
ID4gLmtleXdvcmQtaWNvbjptYXRjaGVzKC5jb21wdXRlZCwgLnNlbGVjdGVkKSArIC5rZXl3b3Jk
LWljb24pOgorICAgICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29y
ZC1pY29uLWxpc3QgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5r
ZXl3b3JkLWljb24tbGlzdC1jb250YWluZXIgPiAua2V5d29yZC1pY29uID4gZGl2KToKKyAgICAg
ICAgKC52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmtleXdvcmQtaWNvbi1saXN0ID4g
LnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAua2V5d29yZC1pY29uLWxp
c3QtY29udGFpbmVyID4gLmtleXdvcmQtaWNvbjpub3QoLnNlbGVjdGVkKSA+IGRpdik6CisKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlS2V5d29yZEljb25MaXN0Lmpz
OiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUtleXdvcmRJY29uTGlz
dC5kYXNoVG9DYXBpdGFsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUtleXdv
cmRJY29uTGlzdC5jcmVhdGVMaXN0SXRlbSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFs
U3R5bGVLZXl3b3JkSWNvbkxpc3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxl
S2V5d29yZEljb25MaXN0LnByb3RvdHlwZS5nZXQgdmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlZpc3VhbFN0eWxlS2V5d29yZEljb25MaXN0LnByb3RvdHlwZS5zZXQgdmFsdWUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlS2V5d29yZEljb25MaXN0LnByb3RvdHlwZS5n
ZXQgc3ludGhlc2l6ZWRWYWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVL
ZXl3b3JkSWNvbkxpc3QucHJvdG90eXBlLl9oYW5kbGVLZXl3b3JkQ2hhbmdlZCk6CisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlS2V5d29yZFBpY2tlci5qczogQWRk
ZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIucHJvdG90eXBlLmdl
dCB2YWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVLZXl3b3JkUGlja2Vy
LnByb3RvdHlwZS5zZXQgdmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxl
S2V5d29yZFBpY2tlci5wcm90b3R5cGUuc2V0IHBsYWNlaG9sZGVyKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIucHJvdG90eXBlLmdldCBzeW50aGVzaXpl
ZFZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIu
cHJvdG90eXBlLnVwZGF0ZUVkaXRvclZhbHVlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlz
dWFsU3R5bGVLZXl3b3JkUGlja2VyLnByb3RvdHlwZS5faGFuZGxlS2V5d29yZENoYW5nZWQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlci5wcm90b3R5cGUu
X2tleXdvcmRTZWxlY3RNb3VzZURvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0
eWxlS2V5d29yZFBpY2tlci5wcm90b3R5cGUuX2FkZFZhbHVlcyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyLnByb3RvdHlwZS5fYWRkQWR2YW5jZWRWYWx1
ZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlci5wcm90
b3R5cGUuX3JlbW92ZUFkdmFuY2VkVmFsdWVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1
YWxTdHlsZUtleXdvcmRQaWNrZXIucHJvdG90eXBlLl90b2dnbGVUYWJiaW5nT2ZTZWxlY3RhYmxl
RWxlbWVudHMpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVBy
b3BlcnR5TmFtZUlucHV0LmpzOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxT
dHlsZVByb3BlcnR5TmFtZUlucHV0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHls
ZVByb3BlcnR5TmFtZUlucHV0LnByb3RvdHlwZS5nZXQgdmFsdWUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlZpc3VhbFN0eWxlUHJvcGVydHlOYW1lSW5wdXQucHJvdG90eXBlLnNldCB2YWx1ZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVQcm9wZXJ0eU5hbWVJbnB1dC5wcm90
b3R5cGUuZ2V0IHN5bnRoZXNpemVkVmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3Vh
bFN0eWxlUHJvcGVydHlOYW1lSW5wdXQucHJvdG90eXBlLmdldCBoYXNDb21wbGV0aW9ucyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVQcm9wZXJ0eU5hbWVJbnB1dC5wcm90b3R5
cGUuc2V0IGNvbXBsZXRpb25zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVBy
b3BlcnR5TmFtZUlucHV0LnByb3RvdHlwZS5fY29tcGxldGlvbkNsaWNrZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlUHJvcGVydHlOYW1lSW5wdXQucHJvdG90eXBlLl9pbnB1
dEtleURvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlUHJvcGVydHlOYW1l
SW5wdXQucHJvdG90eXBlLl9pbnB1dEtleVVwKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1
YWxTdHlsZVByb3BlcnR5TmFtZUlucHV0LnByb3RvdHlwZS5faGlkZUNvbXBsZXRpb25zKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVByb3BlcnR5TmFtZUlucHV0LnByb3RvdHlw
ZS5fdG9nZ2xlVGFiYmluZ09mU2VsZWN0YWJsZUVsZW1lbnRzKToKKworICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVVUkxJbnB1dC5qczogQWRkZWQuCisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVVUkxJbnB1dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VmlzdWFsU3R5bGVVUkxJbnB1dC5wcm90b3R5cGUuc2V0IGdldCB2YWx1ZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVVUkxJbnB1dC5wcm90b3R5cGUucGFyc2VWYWx1ZSk6CisK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVW5pdFNsaWRlci5jc3M6
IEFkZGVkLgorICAgICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIudW5pdC1z
bGlkZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5zbGlkZXIp
OgorICAgICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIudW5pdC1zbGlkZXIg
PiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5zbGlkZXIgPiBpbWcp
OgorICAgICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIudW5pdC1zbGlkZXIu
b3BhY2l0eSA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnNsaWRl
cik6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVW5pdFNsaWRl
ci5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVVbml0U2xpZGVy
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVVuaXRTbGlkZXIucHJvdG90eXBl
LnNldCB2YWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVVbml0U2xpZGVy
LnByb3RvdHlwZS5nZXQgdmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxl
VW5pdFNsaWRlci5wcm90b3R5cGUuZ2V0IHN5bnRoZXNpemVkVmFsdWUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlZpc3VhbFN0eWxlVW5pdFNsaWRlci5wcm90b3R5cGUuc2xpZGVyVmFsdWVEaWRD
aGFuZ2UpOgorCiAyMDE1LTA4LTA4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBUaW1lbGluZSBydWxlciBoYW5kbGUgdG9vbHRpcCBz
aG93cyB3cm9uZyB2YWx1ZSB3aGVuIGhhbmRsZXMgb3ZlcmxhcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0NsZWFyQm90aC5zdmcgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQ2xlYXJCb3RoLnN2ZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42M2U0MzIyCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0NsZWFyQm90aC5z
dmcKQEAgLTAsMCArMSwxMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgi
Pz4KKzwhLS0gQ29weXJpZ2h0IMKpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LiAtLT4KKzxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+CisgICAgPHJlY3QgY2xhc3M9InN0cm9rZWQiIHg9IjAu
NSIgeT0iMS41IiB3aWR0aD0iMy41IiBoZWlnaHQ9IjEyIiBmaWxsPSJ0cmFuc3BhcmVudCIgc3Ry
b2tlPSJibGFjayIgLz4KKyAgICA8cG9seWdvbiBjbGFzcz0iZmlsbGVkIiBwb2ludHM9IjAuNSAz
LjUgMC41IDUuNSA0IDMuNSA0IDEuNSIgc3Ryb2tlPSJub25lIiBzdHlsZT0ib3BhY2l0eTogMC43
IiAvPgorICAgIDxwb2x5Z29uIGNsYXNzPSJmaWxsZWQiIHBvaW50cz0iMC41IDcuNSAwLjUgOS41
IDQgNy41IDQgNS41IiBzdHJva2U9Im5vbmUiIHN0eWxlPSJvcGFjaXR5OiAwLjciIC8+CisgICAg
PHBvbHlnb24gY2xhc3M9ImZpbGxlZCIgcG9pbnRzPSIwLjUgMTEuNSAwLjUgMTMuNSA0IDExLjUg
NCA5LjUiIHN0cm9rZT0ibm9uZSIgc3R5bGU9Im9wYWNpdHk6IDAuNyIgLz4KKyAgICA8cmVjdCBj
bGFzcz0ic3Ryb2tlZCIgeD0iMTIiIHk9IjEuNSIgd2lkdGg9IjMuNSIgaGVpZ2h0PSIxMiIgZmls
bD0idHJhbnNwYXJlbnQiIHN0cm9rZT0iYmxhY2siIC8+CisgICAgPHBvbHlnb24gY2xhc3M9ImZp
bGxlZCIgcG9pbnRzPSIxMiAzLjUgMTIgNS41IDE1LjUgMy41IDE1LjUgMS41IiBzdHJva2U9Im5v
bmUiIHN0eWxlPSJvcGFjaXR5OiAwLjciIC8+CisgICAgPHBvbHlnb24gY2xhc3M9ImZpbGxlZCIg
cG9pbnRzPSIxMiA3LjUgMTIgOS41IDE1LjUgNy41IDE1LjUgNS41IiBzdHJva2U9Im5vbmUiIHN0
eWxlPSJvcGFjaXR5OiAwLjciIC8+CisgICAgPHBvbHlnb24gY2xhc3M9ImZpbGxlZCIgcG9pbnRz
PSIxMiAxMS41IDEyIDEzLjUgMTUuNSAxMS41IDE1LjUgOS41IiBzdHJva2U9Im5vbmUiIHN0eWxl
PSJvcGFjaXR5OiAwLjciIC8+CisgICAgPHJlY3QgY2xhc3M9InN0cm9rZWQiIHg9IjUuNSIgeT0i
NSIgd2lkdGg9IjUiIGhlaWdodD0iNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgLz4KKzwv
c3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1h
Z2VzL0NsZWFyTGVmdC5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9J
bWFnZXMvQ2xlYXJMZWZ0LnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45
YWI0MTA4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvSW1hZ2VzL0NsZWFyTGVmdC5zdmcKQEAgLTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9u
PSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEtLSBDb3B5cmlnaHQgwqkgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2Ij4KKyAgICA8cmVj
dCBjbGFzcz0ic3Ryb2tlZCIgeD0iMiIgeT0iMS41IiB3aWR0aD0iNSIgaGVpZ2h0PSIxMiIgZmls
bD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgLz4KKyAgICA8cG9seWdvbiBjbGFzcz0iZmlsbGVkIiBw
b2ludHM9IjIgMy41IDIgNS41IDcgMy41IDcgMS41IiBzdHJva2U9Im5vbmUiIHN0eWxlPSJvcGFj
aXR5OiAwLjciIC8+CisgICAgPHBvbHlnb24gY2xhc3M9ImZpbGxlZCIgcG9pbnRzPSIyIDcuNSAy
IDkuNSA3IDcuNSA3IDUuNSIgc3Ryb2tlPSJub25lIiBzdHlsZT0ib3BhY2l0eTogMC43IiAvPgor
ICAgIDxwb2x5Z29uIGNsYXNzPSJmaWxsZWQiIHBvaW50cz0iMiAxMS41IDIgMTMuNSA3IDExLjUg
NyA5LjUiIHN0cm9rZT0ibm9uZSIgc3R5bGU9Im9wYWNpdHk6IDAuNyIgLz4KKyAgICA8cmVjdCBj
bGFzcz0ic3Ryb2tlZCIgeD0iOSIgeT0iNSIgd2lkdGg9IjUiIGhlaWdodD0iNSIgZmlsbD0ibm9u
ZSIgc3Ryb2tlPSJibGFjayIgLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0NsZWFyUmlnaHQuc3ZnIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0NsZWFyUmlnaHQuc3ZnCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzMjExMTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQ2xlYXJSaWdodC5zdmcKQEAg
LTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEt
LSBDb3B5cmlnaHQgwqkgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgor
PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmll
d0JveD0iMCAwIDE2IDE2Ij4KKyAgICA8cmVjdCBjbGFzcz0ic3Ryb2tlZCIgeD0iOSIgeT0iMS41
IiB3aWR0aD0iNSIgaGVpZ2h0PSIxMiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgLz4KKyAg
ICA8cG9seWdvbiBjbGFzcz0iZmlsbGVkIiBwb2ludHM9IjkgMy41IDkgNS41IDE0IDMuNSAxNCAx
LjUiIHN0cm9rZT0ibm9uZSIgc3R5bGU9Im9wYWNpdHk6IDAuNyIgLz4KKyAgICA8cG9seWdvbiBj
bGFzcz0iZmlsbGVkIiBwb2ludHM9IjkgNy41IDkgOS41IDE0IDcuNSAxNCA1LjUiIHN0cm9rZT0i
bm9uZSIgc3R5bGU9Im9wYWNpdHk6IDAuNyIgLz4KKyAgICA8cG9seWdvbiBjbGFzcz0iZmlsbGVk
IiBwb2ludHM9IjkgMTEuNSA5IDEzLjUgMTQgMTEuNSAxNCA5LjUiIHN0cm9rZT0ibm9uZSIgc3R5
bGU9Im9wYWNpdHk6IDAuNyIgLz4KKyAgICA8cmVjdCBjbGFzcz0ic3Ryb2tlZCIgeD0iMiIgeT0i
NSIgd2lkdGg9IjUiIGhlaWdodD0iNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgLz4KKzwv
c3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1h
Z2VzL0Zsb2F0TGVmdC5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9J
bWFnZXMvRmxvYXRMZWZ0LnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5j
NDMxYjY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvSW1hZ2VzL0Zsb2F0TGVmdC5zdmcKQEAgLTAsMCArMSwxMCBAQAorPD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzwhLS0gQ29weXJpZ2h0IMKpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKzxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgc3Ryb2tlPSJi
bGFjayI+CisgICAgPHJlY3QgY2xhc3M9InN0cm9rZWQiIHg9IjAuNSIgeT0iMi41IiB3aWR0aD0i
NSIgaGVpZ2h0PSI1IiBmaWxsPSJub25lIiAvPgorICAgIDxsaW5lIGNsYXNzPSJzdHJva2VkIiB4
MT0iNy41IiB5MT0iMi41IiB4Mj0iMTYiIHkyPSIyLjUiIC8+CisgICAgPGxpbmUgY2xhc3M9InN0
cm9rZWQiIHgxPSI3LjUiIHkxPSI1IiB4Mj0iMTYiIHkyPSI1IiAvPgorICAgIDxsaW5lIGNsYXNz
PSJzdHJva2VkIiB4MT0iNy41IiB5MT0iNy41IiB4Mj0iMTYiIHkyPSI3LjUiIC8+CisgICAgPGxp
bmUgY2xhc3M9InN0cm9rZWQiIHgxPSIwIiB5MT0iMTAiIHgyPSIxNiIgeTI9IjEwIiAvPgorICAg
IDxsaW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iMCIgeTE9IjEyLjUiIHgyPSIxNiIgeTI9IjEyLjUi
IC8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0ltYWdlcy9GbG9hdFJpZ2h0LnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0ltYWdlcy9GbG9hdFJpZ2h0LnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4zMTgxYzY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0Zsb2F0UmlnaHQuc3ZnCkBAIC0wLDAgKzEsMTAgQEAKKzw/
eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IS0tIENvcHlyaWdodCDCqSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Cis8c3ZnIHZlcnNpb249IjEu
MSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTYgMTYi
IHN0cm9rZT0iYmxhY2siPgorICAgIDxyZWN0IGNsYXNzPSJzdHJva2VkIiB4PSIxMC41IiB5PSIy
LjUiIHdpZHRoPSI1IiBoZWlnaHQ9IjUiIGZpbGw9Im5vbmUiIC8+CisgICAgPGxpbmUgY2xhc3M9
InN0cm9rZWQiIHgxPSIwIiB5MT0iMi41IiB4Mj0iOC41IiB5Mj0iMi41IiAvPgorICAgIDxsaW5l
IGNsYXNzPSJzdHJva2VkIiB4MT0iMCIgeTE9IjUiIHgyPSI4LjUiIHkyPSI1IiAvPgorICAgIDxs
aW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iMCIgeTE9IjcuNSIgeDI9IjguNSIgeTI9IjcuNSIgLz4K
KyAgICA8bGluZSBjbGFzcz0ic3Ryb2tlZCIgeDE9IjAiIHkxPSIxMCIgeDI9IjE2IiB5Mj0iMTAi
IC8+CisgICAgPGxpbmUgY2xhc3M9InN0cm9rZWQiIHgxPSIwIiB5MT0iMTIuNSIgeDI9IjE2IiB5
Mj0iMTIuNSIgLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvSW1hZ2VzL0ZvbnRTdHlsZUl0YWxpYy5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvRm9udFN0eWxlSXRhbGljLnN2ZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMTE2NDI2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0ZvbnRTdHlsZUl0YWxpYy5z
dmcKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/
PgorPCEtLSBDb3B5cmlnaHQgwqkgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
IC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2
ZyIgdmlld0JveD0iMCAwIDE2IDE2IiBmb250LXNpemU9IjkiIGZvbnQtZmFtaWx5PSItYXBwbGUt
c3lzdGVtLCBzYW5zLXNlcmlmIiBmb250LXN0eWxlPSJpdGFsaWMiPgorICAgIDx0ZXh0IGNsYXNz
PSJmaWxsZWQiIHg9Ii0xIiB5PSIxMSI+QWJjPC90ZXh0PgorPC9zdmc+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvRm9udFN0eWxlTm9ybWFs
LnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9Gb250U3R5
bGVOb3JtYWwuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2NWFmZWIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9J
bWFnZXMvRm9udFN0eWxlTm9ybWFsLnN2ZwpAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249
IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IS0tIENvcHlyaWdodCDCqSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Cis8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZvbnQtc2l6ZT0i
OSIgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWYiPgorICAgIDx0ZXh0IGNs
YXNzPSJmaWxsZWQiIHg9Ii0xIiB5PSIxMSI+QWJjPC90ZXh0PgorPC9zdmc+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvRm9udFZhcmlhbnRT
bWFsbENhcHMuc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2Vz
L0ZvbnRWYXJpYW50U21hbGxDYXBzLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4xNzQ2MTA3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvSW1hZ2VzL0ZvbnRWYXJpYW50U21hbGxDYXBzLnN2ZwpAQCAtMCwwICsxLDgg
QEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IS0tIENvcHlyaWdo
dCDCqSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Cis8c3ZnIHZlcnNp
b249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAg
MTYgMTYiIGZvbnQtc2l6ZT0iNyIgZm9udC1mYW1pbHk9Ii1hcHBsZS1zeXN0ZW0sIHNhbnMtc2Vy
aWYiPgorICAgIDxyZWN0IGNsYXNzPSJmaWxsZWQiIHg9Ii0yIiB3aWR0aD0iMjAiIGhlaWdodD0i
MjAiIGZpbGw9IndoaXRlIiBzdHJva2U9Im5vbmUiIC8+CisgICAgPHRleHQgY2xhc3M9ImZpbGxl
ZCIgeD0iMC4yNSIgeT0iMTEiIGZvbnQtc2l6ZT0iMTAiPkE8L3RleHQ+CisgICAgPHRleHQgY2xh
c3M9ImZpbGxlZCIgeD0iNi43NSIgeT0iMTEiPkI8L3RleHQ+CisgICAgPHRleHQgY2xhc3M9ImZp
bGxlZCIgeD0iMTEiIHk9IjExIj5DPC90ZXh0PgorPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dEFsaWduQ2VudGVyLnN2ZyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0QWxpZ25DZW50
ZXIuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiNjViNGYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMv
VGV4dEFsaWduQ2VudGVyLnN2ZwpAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIg
ZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IS0tIENvcHlyaWdodCDCqSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4gLS0+Cis8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHN0cm9rZT0iYmxhY2siPgor
ICAgIDxsaW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iMC41IiB5MT0iMyIgeDI9IjE0LjUiIHkyPSIz
IiAvPgorICAgIDxsaW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iMyIgeTE9IjUuNSIgeDI9IjEyIiB5
Mj0iNS41IiAvPgorICAgIDxsaW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iMC41IiB5MT0iOCIgeDI9
IjE0LjUiIHkyPSI4IiAvPgorICAgIDxsaW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iMyIgeTE9IjEw
LjUiIHgyPSIxMiIgeTI9IjEwLjUiIC8+CisgICAgPGxpbmUgY2xhc3M9InN0cm9rZWQiIHgxPSIw
LjUiIHkxPSIxMyIgeDI9IjE0LjUiIHkyPSIxMyIgLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRBbGlnbkp1c3RpZnku
c3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRBbGln
bkp1c3RpZnkuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1ZTI4YTMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9J
bWFnZXMvVGV4dEFsaWduSnVzdGlmeS5zdmcKQEAgLTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9u
PSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEtLSBDb3B5cmlnaHQgwqkgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiBzdHJva2U9ImJs
YWNrIj4KKyAgICA8bGluZSBjbGFzcz0ic3Ryb2tlZCIgeDE9IjAuNSIgeTE9IjMiIHgyPSIxNC41
IiB5Mj0iMyIgLz4KKyAgICA8bGluZSBjbGFzcz0ic3Ryb2tlZCIgeDE9IjAuNSIgeTE9IjUuNSIg
eDI9IjE0LjUiIHkyPSI1LjUiIC8+CisgICAgPGxpbmUgY2xhc3M9InN0cm9rZWQiIHgxPSIwLjUi
IHkxPSI4IiB4Mj0iMTQuNSIgeTI9IjgiIC8+CisgICAgPGxpbmUgY2xhc3M9InN0cm9rZWQiIHgx
PSIwLjUiIHkxPSIxMC41IiB4Mj0iMTQuNSIgeTI9IjEwLjUiIC8+CisgICAgPGxpbmUgY2xhc3M9
InN0cm9rZWQiIHgxPSIwLjUiIHkxPSIxMyIgeDI9IjE0LjUiIHkyPSIxMyIgLz4KKzwvc3ZnPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1Rl
eHRBbGlnbkxlZnQuc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1h
Z2VzL1RleHRBbGlnbkxlZnQuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmNjZjc5MmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9JbWFnZXMvVGV4dEFsaWduTGVmdC5zdmcKQEAgLTAsMCArMSw5IEBACis8P3htbCB2
ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEtLSBDb3B5cmlnaHQgwqkgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiBzdHJv
a2U9ImJsYWNrIj4KKyAgICA8bGluZSBjbGFzcz0ic3Ryb2tlZCIgeDE9IjAuNSIgeTE9IjMiIHgy
PSIxNC41IiB5Mj0iMyIgLz4KKyAgICA8bGluZSBjbGFzcz0ic3Ryb2tlZCIgeDE9IjAuNSIgeTE9
IjUuNSIgeDI9IjkuNSIgeTI9IjUuNSIgLz4KKyAgICA8bGluZSBjbGFzcz0ic3Ryb2tlZCIgeDE9
IjAuNSIgeTE9IjgiIHgyPSIxNC41IiB5Mj0iOCIgLz4KKyAgICA8bGluZSBjbGFzcz0ic3Ryb2tl
ZCIgeDE9IjAuNSIgeTE9IjEwLjUiIHgyPSI5LjUiIHkyPSIxMC41IiAvPgorICAgIDxsaW5lIGNs
YXNzPSJzdHJva2VkIiB4MT0iMC41IiB5MT0iMTMiIHgyPSIxNC41IiB5Mj0iMTMiIC8+Cis8L3N2
Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdl
cy9UZXh0QWxpZ25SaWdodC5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9JbWFnZXMvVGV4dEFsaWduUmlnaHQuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmQ2NTZjOTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9JbWFnZXMvVGV4dEFsaWduUmlnaHQuc3ZnCkBAIC0wLDAgKzEsOSBAQAor
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzwhLS0gQ29weXJpZ2h0IMKp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKzxzdmcgdmVyc2lvbj0i
MS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAx
NiIgc3Ryb2tlPSJibGFjayI+CisgICAgPGxpbmUgY2xhc3M9InN0cm9rZWQiIHgxPSIwLjUiIHkx
PSIzIiB4Mj0iMTQuNSIgeTI9IjMiIC8+CisgICAgPGxpbmUgY2xhc3M9InN0cm9rZWQiIHgxPSI1
LjUiIHkxPSI1LjUiIHgyPSIxNC41IiB5Mj0iNS41IiAvPgorICAgIDxsaW5lIGNsYXNzPSJzdHJv
a2VkIiB4MT0iMC41IiB5MT0iOCIgeDI9IjE0LjUiIHkyPSI4IiAvPgorICAgIDxsaW5lIGNsYXNz
PSJzdHJva2VkIiB4MT0iNS41IiB5MT0iMTAuNSIgeDI9IjE0LjUiIHkyPSIxMC41IiAvPgorICAg
IDxsaW5lIGNsYXNzPSJzdHJva2VkIiB4MT0iMC41IiB5MT0iMTMiIHgyPSIxNC41IiB5Mj0iMTMi
IC8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0ltYWdlcy9UZXh0RGVjb3JhdGlvbkxpbmVUaHJvdWdoLnN2ZyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0RGVjb3JhdGlvbkxpbmVUaHJvdWdoLnN2
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMWM5Y2ZlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRE
ZWNvcmF0aW9uTGluZVRocm91Z2guc3ZnCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0i
MS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzwhLS0gQ29weXJpZ2h0IMKpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKzxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgZm9udC1zaXplPSI5
IiBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZiI+CisgICAgPHRleHQgY2xh
c3M9ImZpbGxlZCIgeD0iMCIgeT0iMTEuNSI+QWJjPC90ZXh0PgorICAgIDxsaW5lIGNsYXNzPSJz
dHJva2VkIiB4MT0iMCIgeTE9IjguNSIgeDI9IjE1LjUiIHkyPSI4LjUiIHN0cm9rZT0iYmxhY2si
Lz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvSW1hZ2VzL1RleHREZWNvcmF0aW9uT3ZlcmxpbmUuc3ZnIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHREZWNvcmF0aW9uT3ZlcmxpbmUuc3ZnCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3YzRhMjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVGV4dERlY29yYXRp
b25PdmVybGluZS5zdmcKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29k
aW5nPSJ1dGYtOCI/PgorPCEtLSBDb3B5cmlnaHQgwqkgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE2IDE2IiBmb250LXNpemU9IjkiIGZvbnQtZmFt
aWx5PSItYXBwbGUtc3lzdGVtLCBzYW5zLXNlcmlmIj4KKyAgICA8dGV4dCBjbGFzcz0iZmlsbGVk
IiB4PSIwIiB5PSIxMS41Ij5BYmM8L3RleHQ+CisgICAgPGxpbmUgY2xhc3M9InN0cm9rZWQiIHgx
PSIwIiB5MT0iMy41IiB4Mj0iMTUuNSIgeTI9IjMuNSIgc3Ryb2tlPSJibGFjayIvPgorPC9zdmc+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMv
VGV4dERlY29yYXRpb25VbmRlcmxpbmUuc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvSW1hZ2VzL1RleHREZWNvcmF0aW9uVW5kZXJsaW5lLnN2ZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi40YTk0YWExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHREZWNvcmF0aW9uVW5kZXJs
aW5lLnN2ZwpAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0
Zi04Ij8+Cis8IS0tIENvcHlyaWdodCDCqSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4gLS0+Cis8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZvbnQtc2l6ZT0iOSIgZm9udC1mYW1pbHk9Ii1h
cHBsZS1zeXN0ZW0sIHNhbnMtc2VyaWYiPgorICAgIDx0ZXh0IGNsYXNzPSJmaWxsZWQiIHg9IjAi
IHk9IjExLjUiPkFiYzwvdGV4dD4KKyAgICA8bGluZSBjbGFzcz0ic3Ryb2tlZCIgeDE9IjAiIHkx
PSIxMi41IiB4Mj0iMTUuNSIgeTI9IjEyLjUiIHN0cm9rZT0iYmxhY2siLz4KKzwvc3ZnPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRU
cmFuc2Zvcm1DYXBpdGFsaXplLnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0ltYWdlcy9UZXh0VHJhbnNmb3JtQ2FwaXRhbGl6ZS5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMzZlYzFhZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0VHJhbnNmb3JtQ2FwaXRhbGl6ZS5z
dmcKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/
PgorPCEtLSBDb3B5cmlnaHQgwqkgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
IC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2
ZyIgdmlld0JveD0iMCAwIDE2IDE2IiBmb250LXNpemU9IjkiIGZvbnQtZmFtaWx5PSItYXBwbGUt
c3lzdGVtLCBzYW5zLXNlcmlmIj4KKyAgICA8dGV4dCBjbGFzcz0iZmlsbGVkIiB4PSIwIiB5PSIx
MS41Ij5BYmM8L3RleHQ+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0VHJhbnNmb3JtTG93ZXJjYXNlLnN2ZyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0VHJhbnNmb3JtTG93ZXJj
YXNlLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZDJkOWRkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2Vz
L1RleHRUcmFuc2Zvcm1Mb3dlcmNhc2Uuc3ZnCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzwhLS0gQ29weXJpZ2h0IMKpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKzxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgZm9udC1zaXpl
PSI5IiBmb250LWZhbWlseT0iLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZiI+CisgICAgPHRleHQg
Y2xhc3M9ImZpbGxlZCIgeD0iMC41IiB5PSIxMS41Ij5hYmM8L3RleHQ+Cis8L3N2Zz4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9UZXh0VHJh
bnNmb3JtVXBwZXJjYXNlLnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0ltYWdlcy9UZXh0VHJhbnNmb3JtVXBwZXJjYXNlLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi40MDRjYTYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1RleHRUcmFuc2Zvcm1VcHBlcmNhc2Uuc3ZnCkBA
IC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzwh
LS0gQ29weXJpZ2h0IMKpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4K
KzxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZp
ZXdCb3g9IjAgMCAxNiAxNiIgZm9udC1zaXplPSI5IiBmb250LWZhbWlseT0iLWFwcGxlLXN5c3Rl
bSwgc2Fucy1zZXJpZiI+CisgICAgPHRleHQgY2xhc3M9ImZpbGxlZCIgeD0iLTEiIHk9IjExLjUi
PkFCQzwvdGV4dD4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvSW1hZ2VzL1Zpc3VhbFN0eWxlTm9uZS5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvVmlzdWFsU3R5bGVOb25lLnN2ZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjg4YTEyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL1Zpc3VhbFN0eWxlTm9uZS5z
dmcKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/
PgorPCEtLSBDb3B5cmlnaHQgwqkgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
IC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2
ZyIgdmlld0JveD0iMCAwIDE2IDE2Ij4KKyAgICA8bGluZSBjbGFzcz0ic3Ryb2tlZCIgeDE9IjAi
IHkxPSI4IiB4Mj0iMTQiIHkyPSI4IiBzdHJva2U9ImJsYWNrIi8+Cis8L3N2Zz4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVj
bGFyYXRpb25UZXh0RWRpdG9yLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuanMKaW5kZXggMzg3NjYzZi4u
OWNlOGE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0
b3IuanMKQEAgLTg4MCw3ICs4ODAsNyBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlv
blRleHRFZGl0b3IgPSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvcgogICAgICAg
ICAgICAgLy8gTG9vayBmb3IgY29sb3Igc3RyaW5ncyBhbmQgYWRkIHN3YXRjaGVzIGluIGZyb250
IG9mIHRoZW0uCiAgICAgICAgICAgICBjcmVhdGVDb2RlTWlycm9yQ29sb3JUZXh0TWFya2Vycyh0
aGlzLl9jb2RlTWlycm9yLCByYW5nZSwgZnVuY3Rpb24obWFya2VyLCBjb2xvciwgY29sb3JTdHJp
bmcpIHsKICAgICAgICAgICAgICAgICB2YXIgc3dhdGNoRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNwYW4iKTsKLSAgICAgICAgICAgICAgICBzd2F0Y2hFbGVtZW50LnRpdGxlID0g
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDbGljayB0byBvcGVuIGEgY29sb3JwaWNrZXIuIFNoaWZ0
LWNsaWNrIHRvIGNoYW5nZSBjb2xvciBmb3JtYXQuIik7CisgICAgICAgICAgICAgICAgc3dhdGNo
RWxlbWVudC50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2xpY2sgdG8gc2VsZWN0IGEg
Y29sb3IuIFNoaWZ0LWNsaWNrIHRvIHN3aXRjaCBjb2xvciBmb3JtYXRzLiIpOwogICAgICAgICAg
ICAgICAgIHN3YXRjaEVsZW1lbnQuY2xhc3NOYW1lID0gV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVj
bGFyYXRpb25UZXh0RWRpdG9yLkNvbG9yU3dhdGNoRWxlbWVudFN0eWxlQ2xhc3NOYW1lOwogICAg
ICAgICAgICAgICAgIHN3YXRjaEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlz
Ll9jb2xvclN3YXRjaENsaWNrZWQuYmluZCh0aGlzKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NsaWRlci5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NsaWRlci5qcwppbmRleCAxNTQ3NzFmLi40
ZDVjMzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9TbGlkZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvU2xpZGVyLmpzCkBAIC0zNiw3ICszNiw3IEBAIFdlYkluc3BlY3Rvci5TbGlkZXIgPSBj
bGFzcyBTbGlkZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAKICAgICAgICAgdGhpcy5f
dmFsdWUgPSAwOwogICAgICAgICB0aGlzLl9rbm9iWCA9IDA7Ci0gICAgICAgIHRoaXMuX19tYXhY
ID0gMDsKKyAgICAgICAgdGhpcy5fbWF4WCA9IDA7CiAKICAgICAgICAgdGhpcy5fZWxlbWVudC5h
ZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCB0aGlzKTsKICAgICB9CkBAIC02MCwxNSArNjAs
MjcgQEAgV2ViSW5zcGVjdG9yLlNsaWRlciA9IGNsYXNzIFNsaWRlciBleHRlbmRzIFdlYkluc3Bl
Y3Rvci5PYmplY3QKICAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl92YWx1ZSkKICAgICAgICAg
ICAgIHJldHVybjsKIAotICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlOwotCi0gICAgICAgIHRo
aXMuX2tub2JYID0gTWF0aC5yb3VuZCh2YWx1ZSAqIHRoaXMuX21heFgpOwotICAgICAgICB0aGlz
Ll9rbm9iLnN0eWxlLndlYmtpdFRyYW5zZm9ybSA9ICJ0cmFuc2xhdGUzZCgiICsgdGhpcy5fa25v
YlggKyAicHgsIDAsIDApIjsKKyAgICAgICAgdGhpcy5rbm9iWCA9IHZhbHVlOwogCiAgICAgICAg
IGlmICh0aGlzLmRlbGVnYXRlICYmIHR5cGVvZiB0aGlzLmRlbGVnYXRlLnNsaWRlclZhbHVlRGlk
Q2hhbmdlID09PSAiZnVuY3Rpb24iKQogICAgICAgICAgICAgdGhpcy5kZWxlZ2F0ZS5zbGlkZXJW
YWx1ZURpZENoYW5nZSh0aGlzLCB2YWx1ZSk7CiAgICAgfQogCisgICAgc2V0IGtub2JYKHZhbHVl
KQorICAgIHsKKyAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgdGhpcy5fa25v
YlggPSBNYXRoLnJvdW5kKHZhbHVlICogdGhpcy5tYXhYKTsKKyAgICAgICAgdGhpcy5fa25vYi5z
dHlsZS53ZWJraXRUcmFuc2Zvcm0gPSAidHJhbnNsYXRlM2QoIiArIHRoaXMuX2tub2JYICsgInB4
LCAwLCAwKSI7CisgICAgfQorCisgICAgZ2V0IG1heFgoKQorICAgIHsKKyAgICAgICAgaWYgKHRo
aXMuX21heFggPD0gMCAmJiBkb2N1bWVudC5ib2R5LmNvbnRhaW5zKHRoaXMuX2VsZW1lbnQpKQor
ICAgICAgICAgICAgdGhpcy5fbWF4WCA9IE1hdGgubWF4KHRoaXMuX2VsZW1lbnQub2Zmc2V0V2lk
dGggLSBNYXRoLmNlaWwoV2ViSW5zcGVjdG9yLlNsaWRlci5Lbm9iV2lkdGggLyAyKSwgMCk7CisK
KyAgICAgICAgcmV0dXJuIHRoaXMuX21heFg7CisgICAgfQorCiAgICAgLy8gUHJvdGVjdGVkCiAK
ICAgICBoYW5kbGVFdmVudChldmVudCkKQEAgLTkxLDcgKzEwMyw3IEBAIFdlYkluc3BlY3Rvci5T
bGlkZXIgPSBjbGFzcyBTbGlkZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgX2hh
bmRsZU1vdXNlZG93bihldmVudCkKICAgICB7CiAgICAgICAgIGlmIChldmVudC50YXJnZXQgIT09
IHRoaXMuX2tub2IpCi0gICAgICAgICAgICB0aGlzLnZhbHVlID0gKHRoaXMuX2xvY2FsUG9pbnRG
b3JFdmVudChldmVudCkueCAtIDMpIC8gdGhpcy5fbWF4WDsKKyAgICAgICAgICAgIHRoaXMudmFs
dWUgPSAodGhpcy5fbG9jYWxQb2ludEZvckV2ZW50KGV2ZW50KS54IC0gMykgLyB0aGlzLm1heFg7
CiAKICAgICAgICAgdGhpcy5fc3RhcnRLbm9iWCA9IHRoaXMuX2tub2JYOwogICAgICAgICB0aGlz
Ll9zdGFydE1vdXNlWCA9IHRoaXMuX2xvY2FsUG9pbnRGb3JFdmVudChldmVudCkueDsKQEAgLTEw
NSw5ICsxMTcsOSBAQCBXZWJJbnNwZWN0b3IuU2xpZGVyID0gY2xhc3MgU2xpZGVyIGV4dGVuZHMg
V2ViSW5zcGVjdG9yLk9iamVjdAogICAgIF9oYW5kbGVNb3VzZW1vdmUoZXZlbnQpCiAgICAgewog
ICAgICAgICB2YXIgZHggPSB0aGlzLl9sb2NhbFBvaW50Rm9yRXZlbnQoZXZlbnQpLnggLSB0aGlz
Ll9zdGFydE1vdXNlWDsKLSAgICAgICAgdmFyIHggPSBNYXRoLm1heChNYXRoLm1pbih0aGlzLl9z
dGFydEtub2JYICsgZHgsIHRoaXMuX21heFgpLCAwKTsKKyAgICAgICAgdmFyIHggPSBNYXRoLm1h
eChNYXRoLm1pbih0aGlzLl9zdGFydEtub2JYICsgZHgsIHRoaXMubWF4WCksIDApOwogCi0gICAg
ICAgIHRoaXMudmFsdWUgPSB4IC8gdGhpcy5fbWF4WDsKKyAgICAgICAgdGhpcy52YWx1ZSA9IHgg
LyB0aGlzLm1heFg7CiAgICAgfQogCiAgICAgX2hhbmRsZU1vdXNldXAoZXZlbnQpCkBAIC0xMjQs
MTQgKzEzNiw2IEBAIFdlYkluc3BlY3Rvci5TbGlkZXIgPSBjbGFzcyBTbGlkZXIgZXh0ZW5kcyBX
ZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIC8vIG1heSBiZSB0cmFuc2Zvcm1lZCB1c2luZyBD
U1MgVHJhbnNmb3JtcyBhbmQgaW50ZXJhY3Rpb24gd29ya3MgYXMgZXhwZWN0ZWQuCiAgICAgICAg
IHJldHVybiB3aW5kb3cud2Via2l0Q29udmVydFBvaW50RnJvbVBhZ2VUb05vZGUodGhpcy5fZWxl
bWVudCwgbmV3IFdlYktpdFBvaW50KGV2ZW50LnBhZ2VYLCBldmVudC5wYWdlWSkpOwogICAgIH0K
LQotICAgIGdldCBfbWF4WCgpCi0gICAgewotICAgICAgICBpZiAodGhpcy5fX21heFggPT09IDAg
JiYgZG9jdW1lbnQuYm9keS5jb250YWlucyh0aGlzLl9lbGVtZW50KSkKLSAgICAgICAgICAgIHRo
aXMuX19tYXhYID0gdGhpcy5fZWxlbWVudC5vZmZzZXRXaWR0aCAtIE1hdGguY2VpbChXZWJJbnNw
ZWN0b3IuU2xpZGVyLktub2JXaWR0aCAvIDIpOwotCi0gICAgICAgIHJldHVybiB0aGlzLl9fbWF4
WDsKLSAgICB9CiB9OwogCiBXZWJJbnNwZWN0b3IuU2xpZGVyLktub2JXaWR0aCA9IDEzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFs
U3R5bGVDb2xvclBpY2tlci5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9WaXN1YWxTdHlsZUNvbG9yUGlja2VyLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5mMDMxOGVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVDb2xvclBpY2tlci5jc3MKQEAg
LTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFp
bmVyLmlucHV0LWNvbG9yLXBpY2tlciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29u
dGFpbmVyIHsKKyAgICBkaXNwbGF5OiBmbGV4OworfQorCisudmlzdWFsLXN0eWxlLXByb3BlcnR5
LWNvbnRhaW5lci5pbnB1dC1jb2xvci1waWNrZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZh
bHVlLWNvbnRhaW5lciA+IC52aXN1YWwtc3R5bGUtc3BlY2lhbC1wcm9wZXJ0eS1wbGFjZWhvbGRl
ciB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKworLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250
YWluZXIuaW5wdXQtY29sb3ItcGlja2VyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1j
b250YWluZXIgPiAuY29sb3Itc3dhdGNoIHsKKyAgICBkaXNwbGF5OiBibG9jazsKKyAgICBwb3Np
dGlvbjogcmVsYXRpdmU7CisgICAgd2lkdGg6IDIycHg7CisgICAgaGVpZ2h0OiAxOHB4OworICAg
IG1hcmdpbi10b3A6IDFweDsKKyAgICAvKiBNYWtlIGEgY2hlY2tlcmVkIGJhY2tncm91bmQgZm9y
IHRyYW5zcGFyZW50IGNvbG9ycyB0byBzaG93IGFnYWluc3QuICovCisgICAgYmFja2dyb3VuZC1p
bWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgaHNsKDAsIDAlLCA4MCUpLCBoc2woMCwg
MCUsIDgwJSkpLAorICAgICAgICBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCBoc2woMCwgMCUs
IDgwJSksIGhzbCgwLCAwJSwgODAlKSk7CisgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDAsIDEw
MCUsIDEwMCUpOworICAgIGJhY2tncm91bmQtc2l6ZTogNTAlOworICAgIGJhY2tncm91bmQtcG9z
aXRpb246IHRvcCBsZWZ0LCBib3R0b20gcmlnaHQ7CisgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5v
LXJlcGVhdDsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBoc2xhKDAsIDAlLCAyNSUsIDAuNCk7Cisg
ICAgYm9yZGVyLXJhZGl1czogNHB4OworICAgIG92ZXJmbG93OiBoaWRkZW47CisgICAgY3Vyc29y
OiBkZWZhdWx0OworfQorCisudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5pbnB1dC1j
b2xvci1waWNrZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5j
b2xvci1zd2F0Y2g6aG92ZXIgeworICAgIGJvcmRlci1jb2xvcjogaHNsYSgwLCAwJSwgMjUlLCAw
LjgpOworfQorCisudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5pbnB1dC1jb2xvci1w
aWNrZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5jb2xvci1z
d2F0Y2g6YWN0aXZlIHsKKyAgICBib3JkZXItY29sb3I6IGhzbCgwLCAwJSwgMjUlKTsKK30KKwor
LnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIuaW5wdXQtY29sb3ItcGlja2VyID4gLnZp
c3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAuY29sb3Itc3dhdGNoID4gc3Bh
biB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICByaWdodDogMDsK
KyAgICBib3R0b206IDA7CisgICAgbGVmdDogMDsKK30KKworLnZpc3VhbC1zdHlsZS1wcm9wZXJ0
eS1jb250YWluZXIuaW5wdXQtY29sb3ItcGlja2VyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12
YWx1ZS1jb250YWluZXIgPiBpbnB1dCB7CisgICAgbWFyZ2luOiAxcHggMS41cHggM3B4IC0zcHg7
CisgICAgcGFkZGluZzogMCAzcHggMCA1cHg7CisgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6
IDRweDsKKyAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4OworICAgIGJvcmRlcjog
c29saWQgMXB4IGhzbCgwLCAwJSwgODMlKTsKKyAgICBib3JkZXItbGVmdDogbm9uZTsKKyAgICB0
ZXh0LWFsaWduOiByaWdodDsKKyAgICBmb250LXNpemU6IDEwcHg7Cit9CisKKy52aXN1YWwtc3R5
bGUtcHJvcGVydHktY29udGFpbmVyLmlucHV0LWNvbG9yLXBpY2tlci5tdWx0aXBsZSA+IC52aXN1
YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnZpc3VhbC1zdHlsZS1tdWx0aXBs
ZS1wcm9wZXJ0eS1wbGFjZWhvbGRlciB7CisgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOwor
ICAgIGxlZnQ6IDE4cHg7CisgICAgcGFkZGluZy1yaWdodDogM3B4OworICAgIHRleHQtYWxpZ246
IHJpZ2h0OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvVmlzdWFsU3R5bGVDb2xvclBpY2tlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQ29sb3JQaWNrZXIuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDE2MWVhOQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlQ29sb3JQ
aWNrZXIuanMKQEAgLTAsMCArMSwyMjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXZWJJbnNwZWN0b3IuVmlz
dWFsU3R5bGVDb2xvclBpY2tlciA9IGNsYXNzIFZpc3VhbFN0eWxlQ29sb3JQaWNrZXIgZXh0ZW5k
cyBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvcgoreworICAgIGNvbnN0cnVj
dG9yKHByb3BlcnR5TmFtZXMsIHRleHQsIGxheW91dFJldmVyc2VkKQorICAgIHsKKyAgICAgICAg
c3VwZXIocHJvcGVydHlOYW1lcywgdGV4dCwgbnVsbCwgbnVsbCwgImlucHV0LWNvbG9yLXBpY2tl
ciIsIGxheW91dFJldmVyc2VkKTsKKworICAgICAgICB0aGlzLl9zd2F0Y2hFbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgICAgICB0aGlzLl9zd2F0Y2hFbGVtZW50
LmNsYXNzTGlzdC5hZGQoImNvbG9yLXN3YXRjaCIpOworICAgICAgICB0aGlzLl9zd2F0Y2hFbGVt
ZW50LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDbGljayB0byBzZWxlY3QgYSBjb2xv
ci4gU2hpZnQtY2xpY2sgdG8gc3dpdGNoIGNvbG9yIGZvcm1hdHMuIik7CisgICAgICAgIHRoaXMu
X3N3YXRjaEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9jb2xvclN3YXRj
aENsaWNrZWQuYmluZCh0aGlzKSk7CisKKyAgICAgICAgdGhpcy5fc3dhdGNoSW5uZXJFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgICAgICB0aGlzLl9zd2F0Y2hF
bGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3N3YXRjaElubmVyRWxlbWVudCk7CisKKyAgICAgICAg
dGhpcy5jb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9zd2F0Y2hFbGVtZW50KTsKKwor
ICAgICAgICB0aGlzLl90ZXh0SW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
aW5wdXQiKTsKKyAgICAgICAgdGhpcy5fdGV4dElucHV0RWxlbWVudC5zcGVsbGNoZWNrID0gZmFs
c2U7CisgICAgICAgIHRoaXMuX3RleHRJbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5
ZG93biIsIHRoaXMuX3RleHRJbnB1dEtleURvd24uYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMu
X3RleHRJbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLCB0aGlzLl90ZXh0SW5w
dXRLZXlVcC5iaW5kKHRoaXMpKTsKKyAgICAgICAgdGhpcy5fdGV4dElucHV0RWxlbWVudC5hZGRF
dmVudExpc3RlbmVyKCJibHVyIiwgdGhpcy5faGlkZUNvbXBsZXRpb25zLmJpbmQodGhpcykpOwor
ICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3RleHRJbnB1dEVs
ZW1lbnQpOworCisgICAgICAgIHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyID0gbmV3IFdlYklu
c3BlY3Rvci5WaXN1YWxTdHlsZUNvbXBsZXRpb25zQ29udHJvbGxlcih0aGlzKTsKKyAgICAgICAg
dGhpcy5fY29tcGxldGlvbkNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
VmlzdWFsU3R5bGVDb21wbGV0aW9uc0NvbnRyb2xsZXIuRXZlbnQuQ29tcGxldGlvblNlbGVjdGVk
LCB0aGlzLl9jb21wbGV0aW9uQ2xpY2tlZCwgdGhpcyk7CisKKyAgICAgICAgdGhpcy5fZm9ybWF0
Q2hhbmdlZCA9IGZhbHNlOworICAgICAgICB0aGlzLl91cGRhdGVDb2xvclN3YXRjaCgpOworICAg
IH0KKworICAgIC8vIFB1YmxpYworCisgICAgZ2V0IHZhbHVlKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB0aGlzLl90ZXh0SW5wdXRFbGVtZW50LnZhbHVlOworICAgIH0KKworICAgIHNldCB2YWx1
ZSh2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSA9PT0gdGhpcy52YWx1
ZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLl90ZXh0SW5wdXRFbGVtZW50
LnZhbHVlID0gdGhpcy5faGFzTXVsdGlwbGVDb25mbGljdGluZ1ZhbHVlcygpID8gbnVsbCA6IHZh
bHVlOworICAgICAgICB0aGlzLl91cGRhdGVDb2xvclN3YXRjaCgpOworICAgIH0KKworICAgIGdl
dCBwbGFjZWhvbGRlcigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fdGV4dElucHV0RWxl
bWVudC5nZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIik7CisgICAgfQorCisgICAgc2V0IHBsYWNl
aG9sZGVyKHRleHQpCisgICAgeworICAgICAgICBpZiAodGV4dCAmJiB0ZXh0ID09PSB0aGlzLnBs
YWNlaG9sZGVyKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICh0aGlzLl9oYXNN
dWx0aXBsZUNvbmZsaWN0aW5nVmFsdWVzKCkpCisgICAgICAgICAgICB0ZXh0ID0gdGhpcy5zcGVj
aWFsUHJvcGVydHlQbGFjZWhvbGRlckVsZW1lbnQudGV4dENvbnRlbnQ7CisKKyAgICAgICAgdGhp
cy5fdGV4dElucHV0RWxlbWVudC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgdGV4dCB8fCAi
dHJhbnNwYXJlbnQiKTsKKyAgICB9CisKKyAgICBnZXQgc3ludGhlc2l6ZWRWYWx1ZSgpCisgICAg
eworICAgICAgICByZXR1cm4gdGhpcy52YWx1ZSB8fCBudWxsOworICAgIH0KKworICAgIGdldCBo
YXNDb21wbGV0aW9ucygpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fY29tcGxldGlvbkNv
bnRyb2xsZXIuaGFzQ29tcGxldGlvbnM7CisgICAgfQorCisgICAgc2V0IGNvbXBsZXRpb25zKGNv
bXBsZXRpb25zKQorICAgIHsKKyAgICAgICAgdGhpcy5fY29tcGxldGlvbkNvbnRyb2xsZXIuY29t
cGxldGlvbnMgPSBjb21wbGV0aW9uczsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBf
dXBkYXRlQ29sb3JTd2F0Y2goKQorICAgIHsKKyAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5fdGV4
dElucHV0RWxlbWVudC52YWx1ZTsKKyAgICAgICAgdGhpcy5fY29sb3IgPSBXZWJJbnNwZWN0b3Iu
Q29sb3IuZnJvbVN0cmluZyh2YWx1ZSB8fCAidHJhbnNwYXJlbnQiKTsKKyAgICAgICAgdGhpcy5f
c3dhdGNoSW5uZXJFbGVtZW50LnN0eWxlLmJhY2tncm91bmRDb2xvciA9IHRoaXMuX2NvbG9yID8g
dmFsdWUgOiBudWxsOworICAgIH0KKworICAgIF9jb2xvclN3YXRjaENsaWNrZWQoZXZlbnQpCisg
ICAgeworICAgICAgICBsZXQgY29sb3IgPSB0aGlzLl9jb2xvcjsKKyAgICAgICAgaWYgKGV2ZW50
LnNoaWZ0S2V5KSB7CisgICAgICAgICAgICBsZXQgbmV4dEZvcm1hdCA9IGNvbG9yLm5leHRGb3Jt
YXQoKTsKKworICAgICAgICAgICAgY29uc29sZS5hc3NlcnQobmV4dEZvcm1hdCk7CisgICAgICAg
ICAgICBpZiAoIW5leHRGb3JtYXQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
ICAgICBjb2xvci5mb3JtYXQgPSBuZXh0Rm9ybWF0OworICAgICAgICAgICAgdGhpcy52YWx1ZSA9
IGNvbG9yLnRvU3RyaW5nKCk7CisKKyAgICAgICAgICAgIHRoaXMuX2Zvcm1hdENoYW5nZWQgPSB0
cnVlOworICAgICAgICAgICAgdGhpcy5fdmFsdWVEaWRDaGFuZ2UoKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGxldCBib3VuZHMgPSBXZWJJbnNwZWN0b3IuUmVj
dC5yZWN0RnJvbUNsaWVudFJlY3QodGhpcy5fc3dhdGNoRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKSk7CisKKyAgICAgICAgbGV0IGNvbG9yUGlja2VyID0gbmV3IFdlYkluc3BlY3Rvci5D
b2xvclBpY2tlcjsKKyAgICAgICAgY29sb3JQaWNrZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuQ29sb3JQaWNrZXIuRXZlbnQuQ29sb3JDaGFuZ2VkLCB0aGlzLl9jb2xvclBpY2tlckNv
bG9yRGlkQ2hhbmdlLCB0aGlzKTsKKworICAgICAgICBsZXQgcG9wb3ZlciA9IG5ldyBXZWJJbnNw
ZWN0b3IuUG9wb3Zlcih0aGlzKTsKKyAgICAgICAgcG9wb3Zlci5jb250ZW50ID0gY29sb3JQaWNr
ZXIuZWxlbWVudDsKKyAgICAgICAgcG9wb3Zlci5wcmVzZW50KGJvdW5kcy5wYWQoMiksIFtXZWJJ
bnNwZWN0b3IuUmVjdEVkZ2UuTUlOX1hdKTsKKworICAgICAgICBjb2xvclBpY2tlci5jb2xvciA9
IGNvbG9yOworICAgIH0KKworICAgIF9jb2xvclBpY2tlckNvbG9yRGlkQ2hhbmdlKGV2ZW50KQor
ICAgIHsKKyAgICAgICAgbGV0IGZvcm1hdCA9ICF0aGlzLl9mb3JtYXRDaGFuZ2VkID8gV2ViSW5z
cGVjdG9yLkNvbG9yLkZvcm1hdC5IRVggOiBudWxsOworICAgICAgICB0aGlzLnZhbHVlID0gZXZl
bnQuZGF0YS5jb2xvci50b1N0cmluZyhmb3JtYXQpOworICAgICAgICB0aGlzLl92YWx1ZURpZENo
YW5nZSgpOworICAgIH0KKworICAgIF9jb21wbGV0aW9uQ2xpY2tlZChldmVudCkKKyAgICB7Cisg
ICAgICAgIHRoaXMudmFsdWUgPSBldmVudC5kYXRhLnRleHQ7CisgICAgICAgIHRoaXMuX3ZhbHVl
RGlkQ2hhbmdlKCk7CisgICAgfQorCisgICAgX3RleHRJbnB1dEtleURvd24oZXZlbnQpCisgICAg
eworICAgICAgICBpZiAoIXRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLnZpc2libGUpCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgbGV0IGtleUNvZGUgPSBldmVudC5rZXlDb2RlOwor
ICAgICAgICBsZXQgZW50ZXJLZXlDb2RlID0gV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQu
S2V5LkVudGVyLmtleUNvZGU7CisgICAgICAgIGxldCB0YWJLZXlDb2RlID0gV2ViSW5zcGVjdG9y
LktleWJvYXJkU2hvcnRjdXQuS2V5LlRhYi5rZXlDb2RlOworICAgICAgICBpZiAoa2V5Q29kZSA9
PT0gZW50ZXJLZXlDb2RlIHx8IGtleUNvZGUgPT09IHRhYktleUNvZGUpIHsKKyAgICAgICAgICAg
IHRoaXMudmFsdWUgPSB0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci5jdXJyZW50Q29tcGxldGlv
bjsKKyAgICAgICAgICAgIHRoaXMuX2hpZGVDb21wbGV0aW9ucygpOworICAgICAgICAgICAgdGhp
cy5fdmFsdWVEaWRDaGFuZ2UoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIGxldCBlc2NhcGVLZXlDb2RlID0gV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQu
S2V5LkVzY2FwZS5rZXlDb2RlOworICAgICAgICBpZiAoa2V5Q29kZSA9PT0gZXNjYXBlS2V5Q29k
ZSkgeworICAgICAgICAgICAgdGhpcy5faGlkZUNvbXBsZXRpb25zKCk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBsZXQga2V5ID0gZXZlbnQua2V5SWRlbnRpZmll
cjsKKyAgICAgICAgaWYgKGtleSA9PT0gIlVwIikgeworICAgICAgICAgICAgdGhpcy5fY29tcGxl
dGlvbkNvbnRyb2xsZXIucHJldmlvdXMoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIGlmIChrZXkgPT09ICJEb3duIikgeworICAgICAgICAgICAgdGhpcy5fY29t
cGxldGlvbkNvbnRyb2xsZXIubmV4dCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisgICAgfQorCisgICAgX3RleHRJbnB1dEtleVVwKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3No
b3dDb21wbGV0aW9uc0lmQWJsZSgpOworICAgICAgICB0aGlzLl91cGRhdGVDb2xvclN3YXRjaCgp
OworICAgICAgICB0aGlzLl92YWx1ZURpZENoYW5nZSgpOworICAgIH0KKworICAgIF9zaG93Q29t
cGxldGlvbnNJZkFibGUoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmhhc0NvbXBsZXRpb25z
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLl92YWx1
ZURpZENoYW5nZSgpOworICAgICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICBpZiAodGhpcy5fY29tcGxldGlvbkNvbnRyb2xsZXIudXBkYXRlKHRoaXMudmFs
dWUpKSB7CisgICAgICAgICAgICBsZXQgYm91bmRzID0gV2ViSW5zcGVjdG9yLlJlY3QucmVjdEZy
b21DbGllbnRSZWN0KHRoaXMuX3RleHRJbnB1dEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCkpOworICAgICAgICAgICAgaWYgKCFib3VuZHMpCisgICAgICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgICAgICB0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci5zaG93KGJvdW5kcywgMik7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICBfaGlkZUNvbXBsZXRpb25zKCkKKyAgICB7CisgICAg
ICAgIHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLmhpZGUoKTsKKyAgICB9CisKKyAgICBfdG9n
Z2xlVGFiYmluZ09mU2VsZWN0YWJsZUVsZW1lbnRzKGRpc2FibGVkKQorICAgIHsKKyAgICAgICAg
dGhpcy5fdGV4dElucHV0RWxlbWVudC50YWJJbmRleCA9IGRpc2FibGVkID8gIi0xIiA6IG51bGw7
CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1Zpc3VhbFN0eWxlS2V5d29yZENoZWNrYm94LmNzcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlS2V5d29yZENoZWNrYm94LmNz
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDdmOTg4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFs
U3R5bGVLZXl3b3JkQ2hlY2tib3guY3NzCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisu
dmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5rZXl3b3JkLWNoZWNrYm94ID4gLnZpc3Vh
bC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgeworICAgIGRpc3BsYXk6IGZsZXg7Cisg
ICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKK30KKworLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250
YWluZXIua2V5d29yZC1jaGVja2JveCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29u
dGFpbmVyID4gaW5wdXQgeworICAgIG9yZGVyOiAxOworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsK
KyAgICB0b3A6IDRweDsKKyAgICB3aWR0aDogYXV0bzsKK30KKworLnZpc3VhbC1zdHlsZS1wcm9w
ZXJ0eS1jb250YWluZXIua2V5d29yZC1jaGVja2JveCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHkt
dmFsdWUtY29udGFpbmVyID4gZGl2IHsKKyAgICB3aWR0aDogMThweDsKKyAgICBtYXJnaW46IDAg
MnB4OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvVmlzdWFsU3R5bGVLZXl3b3JkQ2hlY2tib3guanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtleXdvcmRDaGVja2JveC5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYTJkMTI3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVL
ZXl3b3JkQ2hlY2tib3guanMKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dlYkluc3Bl
Y3Rvci5WaXN1YWxTdHlsZUtleXdvcmRDaGVja2JveCA9IGNsYXNzIFZpc3VhbFN0eWxlS2V5d29y
ZENoZWNrYm94IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3IK
K3sKKyAgICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eU5hbWVzLCB0ZXh0LCB2YWx1ZSwgY2hlY2tib3hJ
bWFnZSwgbGF5b3V0UmV2ZXJzZWQpCisgICAgeworICAgICAgICBzdXBlcihwcm9wZXJ0eU5hbWVz
LCB0ZXh0LCBudWxsLCBudWxsLCAia2V5d29yZC1jaGVja2JveCIsIGxheW91dFJldmVyc2VkKTsK
KworICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlIHx8IG51bGw7CisKKyAgICAgICAgdGhpcy5f
Y2hlY2tib3hFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKKyAgICAg
ICAgdGhpcy5fY2hlY2tib3hFbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOworICAgICAgICB0aGlz
Ll9jaGVja2JveEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgdGhpcy5fdmFsdWVE
aWRDaGFuZ2UuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuYXBwZW5k
Q2hpbGQodGhpcy5fY2hlY2tib3hFbGVtZW50KTsKKworICAgICAgICBpZiAoY2hlY2tib3hJbWFn
ZSkgeworICAgICAgICAgICAgd3JhcHBlZFNWR0RvY3VtZW50KGNoZWNrYm94SW1hZ2UsIG51bGws
IHZhbHVlLCBmdW5jdGlvbih3cmFwcGVyKSB7CisgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50
RWxlbWVudC5hcHBlbmRDaGlsZCh3cmFwcGVyKTsKKyAgICAgICAgICAgIH0uYmluZCh0aGlzKSk7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGdldCB2YWx1ZSgpCisg
ICAgeworICAgICAgICByZXR1cm4gdGhpcy5fY2hlY2tib3hFbGVtZW50LmNoZWNrZWQgPyB0aGlz
Ll92YWx1ZSA6IG51bGw7CisgICAgfQorCisgICAgc2V0IHZhbHVlKHZhbHVlKQorICAgIHsKKyAg
ICAgICAgdGhpcy5fY2hlY2tib3hFbGVtZW50LmNoZWNrZWQgPSB2YWx1ZSA9PT0gdGhpcy5fdmFs
dWU7CisgICAgfQorCisgICAgZ2V0IHN5bnRoZXNpemVkVmFsdWUoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMudmFsdWU7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX3RvZ2ds
ZVRhYmJpbmdPZlNlbGVjdGFibGVFbGVtZW50cyhkaXNhYmxlZCkKKyAgICB7CisgICAgICAgIHRo
aXMuX2NoZWNrYm94RWxlbWVudC50YWJJbmRleCA9IGRpc2FibGVkID8gIi0xIiA6IG51bGw7Cisg
ICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1Zpc3VhbFN0eWxlS2V5d29yZEljb25MaXN0LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlS2V5d29yZEljb25MaXN0LmNzcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43N2I4NzdmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5
bGVLZXl3b3JkSWNvbkxpc3QuY3NzCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisudmlz
dWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5rZXl3b3JkLWljb24tbGlzdCA+IC52aXN1YWwt
c3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyIHsKKyAgICBtYXJnaW46IDFweCAwIDJweDsK
K30KKworLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29yZC1pY29uLWxpc3Qg
PiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb24t
bGlzdC1jb250YWluZXIgeworICAgIGRpc3BsYXk6IGZsZXg7Cit9CisKKy52aXN1YWwtc3R5bGUt
cHJvcGVydHktY29udGFpbmVyLmtleXdvcmQtaWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1wcm9w
ZXJ0eS12YWx1ZS1jb250YWluZXIgPiAua2V5d29yZC1pY29uLWxpc3QtY29udGFpbmVyID4gLmtl
eXdvcmQtaWNvbiB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIHdpZHRoOiAyNnB4Owor
ICAgIGhlaWdodDogMThweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMTAwJSwgMTAw
JSk7CisgICAgYm9yZGVyOiAxcHggc29saWQgaHNsKDAsIDAlLCA4MyUpOworICAgIGJvcmRlci1y
aWdodDogbm9uZTsKK30KKworLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29y
ZC1pY29uLWxpc3QgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5r
ZXl3b3JkLWljb24tbGlzdC1jb250YWluZXIgPiAua2V5d29yZC1pY29uOmZpcnN0LWNoaWxkIHsK
KyAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7CisgICAgYm9yZGVyLWJvdHRvbS1sZWZ0
LXJhZGl1czogNHB4OworfQorCisudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5rZXl3
b3JkLWljb24tbGlzdCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4g
LmtleXdvcmQtaWNvbi1saXN0LWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb246bGFzdC1jaGlsZCB7
CisgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgaHNsKDAsIDAlLCA4MyUpOworICAgIGJvcmRl
ci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7CisgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6
IDRweDsKK30KKworLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29yZC1pY29u
LWxpc3QgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5rZXl3b3Jk
LWljb24tbGlzdC1jb250YWluZXIgPiAua2V5d29yZC1pY29uOm1hdGNoZXMoLmNvbXB1dGVkLCAu
c2VsZWN0ZWQpIHsKKyAgICB3aWR0aDogMjdweDsKKyAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xp
ZDsKKyAgICBib3JkZXItY29sb3I6IGhzbCgyMTMsIDkyJSwgNTUlKTsKK30KKworLnZpc3VhbC1z
dHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5d29yZC1pY29uLWxpc3QgPiAudmlzdWFsLXN0eWxl
LXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb24tbGlzdC1jb250YWluZXIg
PiAua2V5d29yZC1pY29uLnNlbGVjdGVkIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMjEz
LCA5MiUsIDU1JSk7Cit9CisKKy52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmtleXdv
cmQtaWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAu
a2V5d29yZC1pY29uLWxpc3QtY29udGFpbmVyID4gLmtleXdvcmQtaWNvbi5zZWxlY3RlZCBzdmcg
LnN0cm9rZWQgeworICAgIHN0cm9rZTogaHNsKDAsIDEwMCUsIDEwMCUpOworfQorCisudmlzdWFs
LXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5rZXl3b3JkLWljb24tbGlzdCA+IC52aXN1YWwtc3R5
bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLmtleXdvcmQtaWNvbi1saXN0LWNvbnRhaW5l
ciA+IC5rZXl3b3JkLWljb24uc2VsZWN0ZWQgc3ZnIC5maWxsZWQgeworICAgIGZpbGw6IGhzbCgw
LCAxMDAlLCAxMDAlKTsKK30KKworLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIua2V5
d29yZC1pY29uLWxpc3QgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+
IC5rZXl3b3JkLWljb24tbGlzdC1jb250YWluZXIgPiAua2V5d29yZC1pY29uOm1hdGNoZXMoLmNv
bXB1dGVkLCAuc2VsZWN0ZWQpICsgLmtleXdvcmQtaWNvbiB7CisgICAgd2lkdGg6IDI1cHg7Cisg
ICAgYm9yZGVyLWxlZnQ6IG5vbmU7Cit9CisKKy52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFp
bmVyLmtleXdvcmQtaWNvbi1saXN0ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250
YWluZXIgPiAua2V5d29yZC1pY29uLWxpc3QtY29udGFpbmVyID4gLmtleXdvcmQtaWNvbiA+IGRp
diB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0OiA1cHg7
CisgICAgd2lkdGg6IDE2cHg7CisgICAgaGVpZ2h0OiAxNnB4OworICAgIHBvaW50ZXItZXZlbnRz
OiBub25lOworfQorCisudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5rZXl3b3JkLWlj
b24tbGlzdCA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLmtleXdv
cmQtaWNvbi1saXN0LWNvbnRhaW5lciA+IC5rZXl3b3JkLWljb246bm90KC5zZWxlY3RlZCkgPiBk
aXYgeworICAgIC13ZWJraXQtZmlsdGVyOiBvcGFjaXR5KDAuNyk7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtleXdv
cmRJY29uTGlzdC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1Zpc3VhbFN0eWxlS2V5d29yZEljb25MaXN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjlkODRhOTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtleXdvcmRJY29uTGlzdC5qcwpAQCAt
MCwwICsxLDExNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUtleXdv
cmRJY29uTGlzdCA9IGNsYXNzIFZpc3VhbFN0eWxlS2V5d29yZEljb25MaXN0IGV4dGVuZHMgV2Vi
SW5zcGVjdG9yLlZpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3IKK3sKKyAgICBjb25zdHJ1Y3Rvcihw
cm9wZXJ0eU5hbWVzLCB0ZXh0LCBwb3NzaWJsZVZhbHVlcywgbGF5b3V0UmV2ZXJzZWQpCisgICAg
eworICAgICAgICBzdXBlcihwcm9wZXJ0eU5hbWVzLCB0ZXh0LCBwb3NzaWJsZVZhbHVlcywgbnVs
bCwgImtleXdvcmQtaWNvbi1saXN0IiwgbGF5b3V0UmV2ZXJzZWQpOworCisgICAgICAgIHRoaXMu
X2ljb25MaXN0Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAg
ICAgIHRoaXMuX2ljb25MaXN0Q29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImtleXdvcmQtaWNvbi1s
aXN0LWNvbnRhaW5lciIpOworCisgICAgICAgIHRoaXMuX2ljb25FbGVtZW50cyA9IFtdOworICAg
ICAgICB0aGlzLl9jb21wdXRlZEljb24gPSBudWxsOworICAgICAgICB0aGlzLl9zZWxlY3RlZElj
b24gPSBudWxsOworCisgICAgICAgIGZ1bmN0aW9uIGRhc2hUb0NhcGl0YWwobWF0Y2gpIHsKKyAg
ICAgICAgICAgIHJldHVybiBtYXRjaFsxXS50b1VwcGVyQ2FzZSgpOworICAgICAgICB9CisKKyAg
ICAgICAgbGV0IHByZXR0eVByb3BlcnR5UmVmZXJlbmNlTmFtZSA9IHRoaXMuX3Byb3BlcnR5UmVm
ZXJlbmNlTmFtZS5jYXBpdGFsaXplKCkucmVwbGFjZSgvKC0uKS9nLCBkYXNoVG9DYXBpdGFsKTsK
KworICAgICAgICBmdW5jdGlvbiBjcmVhdGVMaXN0SXRlbSh2YWx1ZSwgdGl0bGUpIHsKKyAgICAg
ICAgICAgIGxldCBpY29uQnV0dG9uRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1
dHRvbiIpOworICAgICAgICAgICAgaWNvbkJ1dHRvbkVsZW1lbnQuaWQgPSB2YWx1ZTsKKyAgICAg
ICAgICAgIGljb25CdXR0b25FbGVtZW50LnRpdGxlID0gdGl0bGU7CisgICAgICAgICAgICBpY29u
QnV0dG9uRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJrZXl3b3JkLWljb24iKTsKKyAgICAgICAgICAg
IGljb25CdXR0b25FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5faGFuZGxl
S2V5d29yZENoYW5nZWQuYmluZCh0aGlzKSk7CisKKyAgICAgICAgICAgIGxldCBpbWFnZU5hbWUg
PSB2YWx1ZSA9PT0gIm5vbmUiID8gIlZpc3VhbFN0eWxlTm9uZSIgOiBwcmV0dHlQcm9wZXJ0eVJl
ZmVyZW5jZU5hbWUgKyB0aXRsZS5yZXBsYWNlKC9ccy9nLCAiIik7CisgICAgICAgICAgICB3cmFw
cGVkU1ZHRG9jdW1lbnQoIkltYWdlcy8iICsgaW1hZ2VOYW1lICsgIi5zdmciLCBudWxsLCBudWxs
LCBmdW5jdGlvbih3cmFwcGVyKSB7CisgICAgICAgICAgICAgICAgaWNvbkJ1dHRvbkVsZW1lbnQu
YXBwZW5kQ2hpbGQod3JhcHBlcik7CisgICAgICAgICAgICB9LmJpbmQodGhpcykpOworCisgICAg
ICAgICAgICByZXR1cm4gaWNvbkJ1dHRvbkVsZW1lbnQ7CisgICAgICAgIH0KKworICAgICAgICBm
b3IgKGxldCBrZXkgaW4gdGhpcy5fcG9zc2libGVWYWx1ZXMuYmFzaWMpIHsKKyAgICAgICAgICAg
IGxldCBpY29uRWxlbWVudCA9IGNyZWF0ZUxpc3RJdGVtLmNhbGwodGhpcywga2V5LCB0aGlzLl9w
b3NzaWJsZVZhbHVlcy5iYXNpY1trZXldKTsKKyAgICAgICAgICAgIHRoaXMuX2ljb25MaXN0Q29u
dGFpbmVyLmFwcGVuZENoaWxkKGljb25FbGVtZW50KTsKKyAgICAgICAgICAgIHRoaXMuX2ljb25F
bGVtZW50cy5wdXNoKGljb25FbGVtZW50KTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuY29u
dGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5faWNvbkxpc3RDb250YWluZXIpOworICAgIH0K
KworICAgIC8vIFB1YmxpYworCisgICAgZ2V0IHZhbHVlKCkKKyAgICB7CisgICAgICAgIGlmICgh
dGhpcy5fc2VsZWN0ZWRJY29uKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAgICAg
cmV0dXJuIHRoaXMuX3NlbGVjdGVkSWNvbi5pZDsKKyAgICB9CisKKyAgICBzZXQgdmFsdWUodmFs
dWUpCisgICAgeworICAgICAgICB0aGlzLl9jb21wdXRlZEljb24gPSBudWxsOworICAgICAgICB0
aGlzLl9zZWxlY3RlZEljb24gPSBudWxsOworICAgICAgICBmb3IgKGxldCBpY29uIG9mIHRoaXMu
X2ljb25FbGVtZW50cykgeworICAgICAgICAgICAgaWYgKGljb24uaWQgPT09IHRoaXMuX3VwZGF0
ZWRWYWx1ZXMucGxhY2Vob2xkZXIpCisgICAgICAgICAgICAgICAgdGhpcy5fY29tcHV0ZWRJY29u
ID0gaWNvbjsKKworICAgICAgICAgICAgaWYgKGljb24uaWQgPT09IHZhbHVlICYmICF0aGlzLl91
cGRhdGVkVmFsdWVzLnByb3BlcnR5TWlzc2luZykKKyAgICAgICAgICAgICAgICB0aGlzLl9zZWxl
Y3RlZEljb24gPSBpY29uOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGljb24u
Y2xhc3NMaXN0LnJlbW92ZSgic2VsZWN0ZWQiLCAiY29tcHV0ZWQiKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGlmICghdGhpcy5fY29tcHV0ZWRJY29uKQorICAgICAgICAgICAgdGhpcy5fY29tcHV0
ZWRJY29uID0gdGhpcy5faWNvbkVsZW1lbnRzWzBdOworCisgICAgICAgIGxldCBpY29uSXNTZWxl
Y3RlZCA9IHRoaXMuX3NlbGVjdGVkSWNvbiAmJiB0aGlzLl9zZWxlY3RlZEljb24uY2xhc3NMaXN0
LnRvZ2dsZSgic2VsZWN0ZWQiKTsKKyAgICAgICAgaWYgKCFpY29uSXNTZWxlY3RlZCkgeworICAg
ICAgICAgICAgdGhpcy5fc2VsZWN0ZWRJY29uID0gbnVsbDsKKyAgICAgICAgICAgIHRoaXMuX3Vw
ZGF0ZWRWYWx1ZXMucHJvcGVydHlNaXNzaW5nID0gdHJ1ZTsKKyAgICAgICAgICAgIHRoaXMuX2Nv
bXB1dGVkSWNvbi5jbGFzc0xpc3QuYWRkKCJjb21wdXRlZCIpOworICAgICAgICB9CisgICAgfQor
CisgICAgZ2V0IHN5bnRoZXNpemVkVmFsdWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
dmFsdWU7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2hhbmRsZUtleXdvcmRDaGFu
Z2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fdXBkYXRlZFZhbHVlcy5wcm9wZXJ0eU1p
c3NpbmcgPSBmYWxzZTsKKyAgICAgICAgdGhpcy52YWx1ZSA9IGV2ZW50LnRhcmdldC5pZDsKKyAg
ICAgICAgdGhpcy5fdmFsdWVEaWRDaGFuZ2UoKTsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVLZXl3b3Jk
UGlja2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlz
dWFsU3R5bGVLZXl3b3JkUGlja2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmUyNGZiNTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIuanMKQEAgLTAsMCArMSwx
NTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCitXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVLZXl3b3JkUGlja2Vy
ID0gY2xhc3MgVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZp
c3VhbFN0eWxlUHJvcGVydHlFZGl0b3IKK3sKKyAgICBjb25zdHJ1Y3Rvcihwcm9wZXJ0eU5hbWVz
LCB0ZXh0LCBwb3NzaWJsZVZhbHVlcywgbGF5b3V0UmV2ZXJzZWQpCisgICAgeworICAgICAgICBz
dXBlcihwcm9wZXJ0eU5hbWVzLCB0ZXh0LCBwb3NzaWJsZVZhbHVlcywgbnVsbCwgImtleXdvcmQt
cGlja2VyIiwgbGF5b3V0UmV2ZXJzZWQpOworCisgICAgICAgIHRoaXMuX2tleXdvcmRTZWxlY3RF
bGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2VsZWN0Iik7CisgICAgICAgIHRoaXMu
X2tleXdvcmRTZWxlY3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoImtleXdvcmQtcGlja2VyLXNlbGVj
dCIpOworICAgICAgICBpZiAodGhpcy5fcG9zc2libGVWYWx1ZXMuYWR2YW5jZWQpCisgICAgICAg
ICAgICB0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudC50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiT3B0aW9uLWNsaWNrIHRvIHNob3cgYWxsIHZhbHVlcyIpOworCisgICAgICAgIHRoaXMu
X3VuY2hhbmdlZE9wdGlvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24i
KTsKKyAgICAgICAgdGhpcy5fdW5jaGFuZ2VkT3B0aW9uRWxlbWVudC52YWx1ZSA9ICIiOworICAg
ICAgICB0aGlzLl91bmNoYW5nZWRPcHRpb25FbGVtZW50LnRleHQgPSBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlVuY2hhbmdlZCIpOworICAgICAgICB0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudC5h
cHBlbmRDaGlsZCh0aGlzLl91bmNoYW5nZWRPcHRpb25FbGVtZW50KTsKKworICAgICAgICB0aGlz
Ll9rZXl3b3JkU2VsZWN0RWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJociIpKTsKKworICAgICAgICB0aGlzLl9jcmVhdGVWYWx1ZU9wdGlvbnModGhpcy5fcG9zc2li
bGVWYWx1ZXMuYmFzaWMpOworICAgICAgICB0aGlzLl9hZHZhbmNlZFZhbHVlc0VsZW1lbnRzID0g
bnVsbDsKKworICAgICAgICB0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudC5hZGRFdmVudExpc3Rl
bmVyKCJtb3VzZWRvd24iLCB0aGlzLl9rZXl3b3JkU2VsZWN0TW91c2VEb3duLmJpbmQodGhpcykp
OworICAgICAgICB0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJj
aGFuZ2UiLCB0aGlzLl9oYW5kbGVLZXl3b3JkQ2hhbmdlZC5iaW5kKHRoaXMpKTsKKyAgICAgICAg
dGhpcy5jb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVu
dCk7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQgdmFsdWUoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX2tleXdvcmRTZWxlY3RFbGVtZW50LnZhbHVlOworICAgIH0KKwor
ICAgIHNldCB2YWx1ZSh2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl91cGRhdGVkVmFs
dWVzLnByb3BlcnR5TWlzc2luZyB8fCAhdGhpcy52YWx1ZUlzU3VwcG9ydGVkS2V5d29yZCh2YWx1
ZSkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLnZh
bHVlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICh0aGlzLl92YWx1ZUlzU3Vw
cG9ydGVkQWR2YW5jZWRLZXl3b3JkKHZhbHVlKSkKKyAgICAgICAgICAgIHRoaXMuX2FkZEFkdmFu
Y2VkVmFsdWVzKCk7CisKKyAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQudmFsdWUg
PSB2YWx1ZTsKKyAgICB9CisKKyAgICBzZXQgcGxhY2Vob2xkZXIocGxhY2Vob2xkZXIpCisgICAg
eworICAgICAgICBpZiAodGhpcy5fdXBkYXRlZFZhbHVlcy5jb25mbGljdGluZ1ZhbHVlcykKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLnNwZWNpYWxQcm9wZXJ0eVBsYWNlaG9s
ZGVyRWxlbWVudC50ZXh0Q29udGVudCA9IHRoaXMuX2tleUZvcktleXdvcmQocGxhY2Vob2xkZXIp
IHx8IHBsYWNlaG9sZGVyOworICAgIH0KKworICAgIGdldCBzeW50aGVzaXplZFZhbHVlKCkKKyAg
ICB7CisgICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuX2tleXdvcmRTZWxlY3RFbGVtZW50LnZhbHVl
OworICAgICAgICBpZiAoIXZhbHVlIHx8ICF2YWx1ZS5sZW5ndGgpCisgICAgICAgICAgICByZXR1
cm4gbnVsbDsKKworICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorCisgICAgdXBkYXRlRWRp
dG9yVmFsdWVzKHVwZGF0ZWRWYWx1ZXMpCisgICAgeyAgIGlmICghdXBkYXRlZFZhbHVlcy5jb25m
bGljdGluZ1ZhbHVlcykgeworICAgICAgICAgICAgbGV0IG1pc3NpbmcgPSB1cGRhdGVkVmFsdWVz
LnByb3BlcnR5TWlzc2luZyB8fCAhdXBkYXRlZFZhbHVlcy52YWx1ZTsKKyAgICAgICAgICAgIHRo
aXMuX3VuY2hhbmdlZE9wdGlvbkVsZW1lbnQuc2VsZWN0ZWQgPSBtaXNzaW5nOworICAgICAgICAg
ICAgdGhpcy5zcGVjaWFsUHJvcGVydHlQbGFjZWhvbGRlckVsZW1lbnQuaGlkZGVuID0gIW1pc3Np
bmc7CisgICAgICAgIH0KKworICAgICAgICBzdXBlci51cGRhdGVFZGl0b3JWYWx1ZXModXBkYXRl
ZFZhbHVlcyk7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2hhbmRsZUtleXdvcmRD
aGFuZ2VkKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3ZhbHVlRGlkQ2hhbmdlKCk7CisKKyAgICAg
ICAgaWYgKHRoaXMuX2tleXdvcmRTZWxlY3RFbGVtZW50LmNvbnRhaW5zKHRoaXMuX3VuY2hhbmdl
ZE9wdGlvbkVsZW1lbnQpICYmIHRoaXMuX3VuY2hhbmdlZE9wdGlvbkVsZW1lbnQuc2VsZWN0ZWQp
CisgICAgICAgICAgICB0aGlzLnNwZWNpYWxQcm9wZXJ0eVBsYWNlaG9sZGVyRWxlbWVudC5oaWRk
ZW4gPSBmYWxzZTsKKyAgICB9CisKKyAgICBfa2V5d29yZFNlbGVjdE1vdXNlRG93bihldmVudCkK
KyAgICB7CisgICAgICAgIGlmIChldmVudC5hbHRLZXkpCisgICAgICAgICAgICB0aGlzLl9hZGRB
ZHZhbmNlZFZhbHVlcygpOworICAgICAgICBlbHNlIGlmICghdGhpcy5fdmFsdWVJc1N1cHBvcnRl
ZEFkdmFuY2VkS2V5d29yZCgpKQorICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQWR2YW5jZWRWYWx1
ZXMoKTsKKyAgICB9CisKKyAgICBfY3JlYXRlVmFsdWVPcHRpb25zKHZhbHVlcykKKyAgICB7Cisg
ICAgICAgIGxldCBhZGRlZEVsZW1lbnRzID0gW107CisgICAgICAgIGZvciAobGV0IGtleSBpbiB2
YWx1ZXMpIHsKKyAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJvcHRpb24iKTsKKyAgICAgICAgICAgIG9wdGlvbi52YWx1ZSA9IGtleTsKKyAgICAgICAgICAg
IG9wdGlvbi50ZXh0ID0gdmFsdWVzW2tleV07CisgICAgICAgICAgICB0aGlzLl9rZXl3b3JkU2Vs
ZWN0RWxlbWVudC5hcHBlbmRDaGlsZChvcHRpb24pOworICAgICAgICAgICAgYWRkZWRFbGVtZW50
cy5wdXNoKG9wdGlvbik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGFkZGVkRWxlbWVudHM7
CisgICAgfQorCisgICAgX2FkZEFkdmFuY2VkVmFsdWVzKCkKKyAgICB7CisgICAgICAgIGlmICh0
aGlzLl9hZHZhbmNlZFZhbHVlc0VsZW1lbnRzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIHRoaXMuX2tleXdvcmRTZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImhyIikpOworICAgICAgICB0aGlzLl9hZHZhbmNlZFZhbHVlc0VsZW1lbnRzID0g
dGhpcy5fY3JlYXRlVmFsdWVPcHRpb25zKHRoaXMuX3Bvc3NpYmxlVmFsdWVzLmFkdmFuY2VkKTsK
KyAgICB9CisKKyAgICBfcmVtb3ZlQWR2YW5jZWRWYWx1ZXMoKQorICAgIHsKKyAgICAgICAgaWYg
KCF0aGlzLl9hZHZhbmNlZFZhbHVlc0VsZW1lbnRzKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIHRoaXMuX2tleXdvcmRTZWxlY3RFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuX2FkdmFu
Y2VkVmFsdWVzRWxlbWVudHNbMF0ucHJldmlvdXNTaWJsaW5nKTsKKyAgICAgICAgZm9yIChsZXQg
ZWxlbWVudCBvZiB0aGlzLl9hZHZhbmNlZFZhbHVlc0VsZW1lbnRzKQorICAgICAgICAgICAgdGhp
cy5fa2V5d29yZFNlbGVjdEVsZW1lbnQucmVtb3ZlQ2hpbGQoZWxlbWVudCk7CisKKyAgICAgICAg
dGhpcy5fYWR2YW5jZWRWYWx1ZXNFbGVtZW50cyA9IG51bGw7CisgICAgfQorCisgICAgX3RvZ2ds
ZVRhYmJpbmdPZlNlbGVjdGFibGVFbGVtZW50cyhkaXNhYmxlZCkKKyAgICB7CisgICAgICAgIHRo
aXMuX2tleXdvcmRTZWxlY3RFbGVtZW50LnRhYkluZGV4ID0gZGlzYWJsZWQgPyAiLTEiIDogbnVs
bDsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvVmlzdWFsU3R5bGVQcm9wZXJ0eU5hbWVJbnB1dC5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlUHJvcGVydHlOYW1lSW5w
dXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDBlNTNhOQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zp
c3VhbFN0eWxlUHJvcGVydHlOYW1lSW5wdXQuanMKQEAgLTAsMCArMSwxNDEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCitXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVQcm9wZXJ0eU5hbWVJbnB1dCA9IGNsYXNzIFZp
c3VhbFN0eWxlUHJvcGVydHlOYW1lSW5wdXQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5
bGVQcm9wZXJ0eUVkaXRvcgoreworICAgIGNvbnN0cnVjdG9yKHByb3BlcnR5TmFtZXMsIHRleHQs
IGxheW91dFJldmVyc2VkKQorICAgIHsKKyAgICAgICAgc3VwZXIocHJvcGVydHlOYW1lcywgdGV4
dCwgbnVsbCwgbnVsbCwgInByb3BlcnR5LW5hbWUtaW5wdXQiLCBsYXlvdXRSZXZlcnNlZCk7CisK
KyAgICAgICAgdGhpcy5fcHJvcGVydHlOYW1lSW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiaW5wdXQiKTsKKyAgICAgICAgdGhpcy5fcHJvcGVydHlOYW1lSW5wdXRFbGVtZW50
LnBsYWNlaG9sZGVyID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFbnRlciBhIG5hbWUuIik7Cisg
ICAgICAgIHRoaXMuX3Byb3BlcnR5TmFtZUlucHV0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJr
ZXlkb3duIiwgdGhpcy5faW5wdXRLZXlEb3duLmJpbmQodGhpcykpOworICAgICAgICB0aGlzLl9w
cm9wZXJ0eU5hbWVJbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLCB0aGlzLl9p
bnB1dEtleVVwLmJpbmQodGhpcykpOworICAgICAgICB0aGlzLl9wcm9wZXJ0eU5hbWVJbnB1dEVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsIHRoaXMuX2hpZGVDb21wbGV0aW9ucy5iaW5k
KHRoaXMpKTsKKyAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9w
cm9wZXJ0eU5hbWVJbnB1dEVsZW1lbnQpOworCisgICAgICAgIHRoaXMuX2NvbXBsZXRpb25Db250
cm9sbGVyID0gbmV3IFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUNvbXBsZXRpb25zQ29udHJvbGxl
cih0aGlzKTsKKyAgICAgICAgdGhpcy5fY29tcGxldGlvbkNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVDb21wbGV0aW9uc0NvbnRyb2xsZXIuRXZlbnQu
Q29tcGxldGlvblNlbGVjdGVkLCB0aGlzLl9jb21wbGV0aW9uQ2xpY2tlZCwgdGhpcyk7CisgICAg
fQorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQgdmFsdWUoKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHRoaXMuX3Byb3BlcnR5TmFtZUlucHV0RWxlbWVudC52YWx1ZTsKKyAgICB9CisKKyAgICBz
ZXQgdmFsdWUodmFsdWUpCisgICAgeworICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUgPT09IHRo
aXMudmFsdWUpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fcHJvcGVydHlO
YW1lSW5wdXRFbGVtZW50LnZhbHVlID0gdmFsdWU7CisgICAgfQorCisgICAgZ2V0IHN5bnRoZXNp
emVkVmFsdWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUgfHwgbnVsbDsKKyAg
ICB9CisKKyAgICBnZXQgaGFzQ29tcGxldGlvbnMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRo
aXMuX2NvbXBsZXRpb25Db250cm9sbGVyLmhhc0NvbXBsZXRpb25zOworICAgIH0KKworICAgIHNl
dCBjb21wbGV0aW9ucyhjb21wbGV0aW9ucykKKyAgICB7CisgICAgICAgIHRoaXMuX2NvbXBsZXRp
b25Db250cm9sbGVyLmNvbXBsZXRpb25zID0gY29tcGxldGlvbnM7CisgICAgfQorCisgICAgLy8g
UHJpdmF0ZQorCisgICAgX2NvbXBsZXRpb25DbGlja2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAg
dGhpcy52YWx1ZSA9IGV2ZW50LmRhdGEudGV4dDsKKyAgICAgICAgdGhpcy5fdmFsdWVEaWRDaGFu
Z2UoKTsKKyAgICB9CisKKyAgICBfaW5wdXRLZXlEb3duKGV2ZW50KQorICAgIHsKKyAgICAgICAg
aWYgKCF0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci52aXNpYmxlKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIGxldCBrZXlDb2RlID0gZXZlbnQua2V5Q29kZTsKKyAgICAgICAgbGV0
IGVudGVyS2V5Q29kZSA9IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleS5FbnRlci5r
ZXlDb2RlOworICAgICAgICBsZXQgdGFiS2V5Q29kZSA9IFdlYkluc3BlY3Rvci5LZXlib2FyZFNo
b3J0Y3V0LktleS5UYWIua2V5Q29kZTsKKyAgICAgICAgaWYgKGtleUNvZGUgPT09IGVudGVyS2V5
Q29kZSB8fCBrZXlDb2RlID09PSB0YWJLZXlDb2RlKSB7CisgICAgICAgICAgICB0aGlzLnZhbHVl
ID0gdGhpcy5fY29tcGxldGlvbkNvbnRyb2xsZXIuY3VycmVudENvbXBsZXRpb247CisgICAgICAg
ICAgICB0aGlzLl9oaWRlQ29tcGxldGlvbnMoKTsKKyAgICAgICAgICAgIHRoaXMuX3ZhbHVlRGlk
Q2hhbmdlKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBsZXQg
ZXNjYXBlS2V5Q29kZSA9IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleS5Fc2NhcGUu
a2V5Q29kZTsKKyAgICAgICAgaWYgKGtleUNvZGUgPT09IGVzY2FwZUtleUNvZGUpIHsKKyAgICAg
ICAgICAgIHRoaXMuX2hpZGVDb21wbGV0aW9ucygpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisKKyAgICAgICAgbGV0IGtleSA9IGV2ZW50LmtleUlkZW50aWZpZXI7CisgICAgICAg
IGlmIChrZXkgPT09ICJVcCIpIHsKKyAgICAgICAgICAgIHRoaXMuX2NvbXBsZXRpb25Db250cm9s
bGVyLnByZXZpb3VzKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAg
ICBpZiAoa2V5ID09PSAiRG93biIpIHsKKyAgICAgICAgICAgIHRoaXMuX2NvbXBsZXRpb25Db250
cm9sbGVyLm5leHQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIF9pbnB1dEtleVVwKCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5oYXNDb21wbGV0aW9u
cykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5fdmFs
dWVEaWRDaGFuZ2UoKTsKKyAgICAgICAgaWYgKCFyZXN1bHQpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgaWYgKHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLnVwZGF0ZSh0aGlzLnZh
bHVlKSkgeworICAgICAgICAgICAgbGV0IGJvdW5kcyA9IFdlYkluc3BlY3Rvci5SZWN0LnJlY3RG
cm9tQ2xpZW50UmVjdCh0aGlzLl9wcm9wZXJ0eU5hbWVJbnB1dEVsZW1lbnQuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCkpOworICAgICAgICAgICAgaWYgKCFib3VuZHMpCisgICAgICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgICAgICB0aGlzLl9jb21wbGV0aW9uQ29udHJvbGxlci5zaG93KGJv
dW5kcywgMik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBfaGlkZUNvbXBsZXRpb25zKCkKKyAg
ICB7CisgICAgICAgIHRoaXMuX2NvbXBsZXRpb25Db250cm9sbGVyLmhpZGUoKTsKKyAgICB9CisK
KyAgICBfdG9nZ2xlVGFiYmluZ09mU2VsZWN0YWJsZUVsZW1lbnRzKGRpc2FibGVkKQorICAgIHsK
KyAgICAgICAgdGhpcy5fcHJvcGVydHlOYW1lSW5wdXRFbGVtZW50LnRhYkluZGV4ID0gZGlzYWJs
ZWQgPyAiLTEiIDogbnVsbDsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVVUkxJbnB1dC5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVVJMSW5wdXQu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzFiYTVhMQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3Vh
bFN0eWxlVVJMSW5wdXQuanMKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dlYkluc3Bl
Y3Rvci5WaXN1YWxTdHlsZVVSTElucHV0ID0gY2xhc3MgVmlzdWFsU3R5bGVVUkxJbnB1dCBleHRl
bmRzIFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yCit7CisgICAgY29uc3Ry
dWN0b3IocHJvcGVydHlOYW1lcywgdGV4dCwgbGF5b3V0UmV2ZXJzZWQpCisgICAgeworICAgICAg
ICBzdXBlcihwcm9wZXJ0eU5hbWVzLCB0ZXh0LCBudWxsLCBudWxsLCAidXJsLWlucHV0IiwgbGF5
b3V0UmV2ZXJzZWQpOworCisgICAgICAgIHRoaXMuX3VybElucHV0RWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CisgICAgICAgIHRoaXMuX3VybElucHV0RWxlbWVudC50
eXBlID0gInVybCI7CisgICAgICAgIHRoaXMuX3VybElucHV0RWxlbWVudC5wbGFjZWhvbGRlciA9
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRW50ZXIgYSBVUkwiKTsKKyAgICAgICAgdGhpcy5fdXJs
SW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIiwgdGhpcy5fdmFsdWVEaWRDaGFu
Z2UuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQo
dGhpcy5fdXJsSW5wdXRFbGVtZW50KTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGdl
dCB2YWx1ZSgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fdXJsSW5wdXRFbGVtZW50LnZh
bHVlOworICAgIH0KKworICAgIHNldCB2YWx1ZSh2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICh2
YWx1ZSAmJiB2YWx1ZSA9PT0gdGhpcy52YWx1ZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICB0aGlzLl91cmxJbnB1dEVsZW1lbnQudmFsdWUgPSB2YWx1ZTsKKyAgICB9CisKKyAgICBn
ZXQgc3ludGhlc2l6ZWRWYWx1ZSgpCisgICAgeworICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLnZh
bHVlOworICAgICAgICBpZiAoIXZhbHVlIHx8ICF2YWx1ZS5sZW5ndGgpCisgICAgICAgICAgICBy
ZXR1cm4gbnVsbDsKKworICAgICAgICByZXR1cm4gInVybCgiICsgdGhpcy52YWx1ZSArICIpIjsK
KyAgICB9CisKKyAgICAvLyBQcm90ZWN0ZWQKKworICAgIHBhcnNlVmFsdWUodGV4dCkKKyAgICB7
CisgICAgICAgIHJldHVybiAvXig/OnVybFwoXHMqKShbXlwpXSopKD86XHMqXClccyo7PykkLy5l
eGVjKHRleHQpOworICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVVuaXRTbGlkZXIuY3NzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVVbml0U2xpZGVyLmNz
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YzcxMDVlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFs
U3R5bGVVbml0U2xpZGVyLmNzcwpAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLnZpc3Vh
bC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIudW5pdC1zbGlkZXIgPiAudmlzdWFsLXN0eWxlLXBy
b3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5zbGlkZXIgeworICAgIHBvc2l0aW9uOiByZWxhdGl2
ZTsKKyAgICBtYXJnaW46IDVweCAxcHggMDsKK30KKworLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1j
b250YWluZXIudW5pdC1zbGlkZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRh
aW5lciA+IC5zbGlkZXIgPiBpbWcgeworICAgIHRvcDogLTFweDsKK30KKworLnZpc3VhbC1zdHls
ZS1wcm9wZXJ0eS1jb250YWluZXIudW5pdC1zbGlkZXIub3BhY2l0eSA+IC52aXN1YWwtc3R5bGUt
cHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnNsaWRlciB7CisgICAgYmFja2dyb3VuZC1pbWFn
ZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCBoc2xhKDAsIDAlLCAwJSwgMCksICMwMDApLCB1cmwo
Li4vSW1hZ2VzL0NoZWNrZXJzLnN2Zyk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVVuaXRTbGlkZXIuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVVuaXRTbGlk
ZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzhiMjVlZQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zp
c3VhbFN0eWxlVW5pdFNsaWRlci5qcwpAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV2Vi
SW5zcGVjdG9yLlZpc3VhbFN0eWxlVW5pdFNsaWRlciA9IGNsYXNzIFZpc3VhbFN0eWxlVW5pdFNs
aWRlciBleHRlbmRzIFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yCit7Cisg
ICAgY29uc3RydWN0b3IocHJvcGVydHlOYW1lcywgbGFiZWwsIGxheW91dFJldmVyc2VkKQorICAg
IHsKKyAgICAgICAgc3VwZXIocHJvcGVydHlOYW1lcywgbGFiZWwsIG51bGwsIG51bGwsICJ1bml0
LXNsaWRlciIsIGxheW91dFJldmVyc2VkKTsKKworICAgICAgICB0aGlzLl9zbGlkZXIgPSBuZXcg
V2ViSW5zcGVjdG9yLlNsaWRlcjsKKyAgICAgICAgdGhpcy5fc2xpZGVyLmRlbGVnYXRlID0gdGhp
czsKKyAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9zbGlkZXIu
ZWxlbWVudCk7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBzZXQgdmFsdWUodmFsdWUp
CisgICAgeworICAgICAgICBsZXQga25vYlggPSBwYXJzZUZsb2F0KHZhbHVlKTsKKyAgICAgICAg
aWYgKGlzTmFOKGtub2JYKSkKKyAgICAgICAgICAgIGtub2JYID0gcGFyc2VGbG9hdCh0aGlzLl91
cGRhdGVkVmFsdWVzLnBsYWNlaG9sZGVyKSB8fCAwOworCisgICAgICAgIHRoaXMuX3NsaWRlci5r
bm9iWCA9IGtub2JYOworICAgIH0KKworICAgIGdldCB2YWx1ZSgpCisgICAgeworICAgICAgICBy
ZXR1cm4gTWF0aC5yb3VuZCh0aGlzLl9zbGlkZXIudmFsdWUgKiAxMDApIC8gMTAwOworICAgIH0K
KworICAgIGdldCBzeW50aGVzaXplZFZhbHVlKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
LnZhbHVlOworICAgIH0KKworICAgIHNsaWRlclZhbHVlRGlkQ2hhbmdlKHNsaWRlciwgdmFsdWUp
CisgICAgeworICAgICAgICB0aGlzLl92YWx1ZURpZENoYW5nZSgpOworICAgIH0KK307Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>