<?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>13707</bug_id>
          
          <creation_ts>2007-05-13 04:53:15 -0700</creation_ts>
          <short_desc>REGRESSION: JavaScript exceptions on quotes.burntelectrons.org</short_desc>
          <delta_ts>2007-10-06 02:07:09 -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>DOM</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://quotes.burntelectrons.org/browse</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mitch074</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>10104</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-05-13 04:53:15 -0700</bug_when>
    <thetext>Scripts do not find document.cookies and document.location, because we now get XHTML instead of HTML.

There are other bugs tracking the same problem, but I&apos;m glad to file a P1 regression :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10092</commentid>
    <comment_count>1</comment_count>
      <attachid>14536</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-05-13 08:39:34 -0700</bug_when>
    <thetext>Created attachment 14536
proposed fix

Of earlier bugs, I only found bug 12628, which this patch also fixes.

I think I also saw a complaint about missing Document.cookie, but maybe it was on a mailing list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10085</commentid>
    <comment_count>2</comment_count>
      <attachid>14536</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-13 13:58:58 -0700</bug_when>
    <thetext>Comment on attachment 14536
proposed fix

Looks great.

+        * dom/Document.idl: Additions mostly match HTML5 HTMLDocument interface, except for
+        of location, which is read-only in HTML5, and lastModified, which is not present there.

&quot;for of&quot; here.

I&apos;d like to see more of JSDocument::setLocation in a method named Document::setLocation. We should do everything possible to have the language bindings be only language issues. So I&apos;d have the setLocation function take parameters for the Frame* and the wasRunByUserGesture boolean, but have the call to FrameLoader be in the document.

Not new code, but it&apos;s bad long term for us to use the idiom frame-&gt;loader()-&gt;documentLoader() to get to the loader for this document, because that could be the loader for the previous or next document in this frame rather than the current one. I&apos;d like that to be encapsulated in a documentLoader() function so we can fix it in one place.

Why did the type of the return value for getElementsByName change? Internally it can be useful for the types to be more specific than those in the IDL files. Was there a problem compiling the JavaScript binding? If so, I guess that&apos;s the best solution. Too bad.

-#if !defined(LANGUAGE_OBJECTIVE_C)
+#if defined(LANGUAGE_JAVASCRIPT)

I think we want these APIs in other languages. Why make them JavaScript-specific?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9666</commentid>
    <comment_count>3</comment_count>
      <attachid>14611</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-05-18 11:42:49 -0700</bug_when>
    <thetext>Created attachment 14611
proposed fix

(In reply to comment #2)

&gt; I&apos;d like to see more of JSDocument::setLocation in a method named
&gt; Document::setLocation.

  AFAICT, all that can be moved there is a single frame-&gt;loader()-&gt;scheduleLocationChange() call. I would think that would only increase confusion, since there&apos;s already a bunch of loosely similar functions for changing location or URL scattered throughout the code. Or am I missing something?

&gt; Not new code, but it&apos;s bad long term for us to use the idiom
&gt; frame-&gt;loader()-&gt;documentLoader() to get to the loader for this document,
&gt; because that could be the loader for the previous or next document in this
&gt; frame rather than the current one. I&apos;d like that to be encapsulated in a
&gt; documentLoader() function so we can fix it in one place.

  I&apos;ve added such a function to Frame, but I&apos;m not sure if all instances of &quot;frame-&gt;loader()-&gt;documentLoader()&quot; should be replaced with it.

&gt; Why did the type of the return value for getElementsByName change? Internally
&gt; it can be useful for the types to be more specific than those in the IDL files.
&gt; Was there a problem compiling the JavaScript binding? If so, I guess that&apos;s the
&gt; best solution. Too bad.

  Yes, the binding didn&apos;t compile otherwise.

&gt; I think we want these APIs in other languages. Why make them
&gt; JavaScript-specific?

  I guess I still thought of them as obsolete, despite them being first-class citizens in HTML5. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9366</commentid>
    <comment_count>4</comment_count>
      <attachid>14611</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-05-22 19:34:03 -0700</bug_when>
    <thetext>Comment on attachment 14611
proposed fix

Document::setBody should take a PassRefPtr&lt;HTMLElement&gt; rather than an HTMLElement*.

Why not have getElementsByName return NameNodeList? Does it create a real problem. I ask because sometimes we can generate more efficient code if the specific class is known to the caller, so sometimes we might want our internal function to have a more-specific type than what&apos;s exported to JS and other public API.

+        (WebCore::Frame::documentLoader): Encapsulated &quot;frame-&gt;loader()-&gt;documentLoader()&quot; idiom,
+        which is dangerous because that could be the loader for the previous or next document in this
+        frame rather than the current one. Having it in one place will make fixing it easier.

I agree with your point about encapsulating it in one place. But that place should be in Document, not Frame!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9283</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-05-23 12:19:53 -0700</bug_when>
    <thetext>This will need to be rewritten after a patch from bug 13830 lands, and I suppose Sam may get to it faster than myself; unassigning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9205</commentid>
    <comment_count>6</comment_count>
      <attachid>14707</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-05-24 14:28:33 -0700</bug_when>
    <thetext>Created attachment 14707
updated patch

Updates the patch to deal with code changes.  Some slight changes, I did not make the FrameLoader related changes because I felt that it was outside the scope of the bug.  I moved the applets collection along with the other collection accessors that were moved down.  I also updated the ObjC bindings expected results to correspond to the new results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8893</commentid>
    <comment_count>7</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-05-28 23:58:42 -0700</bug_when>
    <thetext>Is it the best approach to put all HTMLDocument methods and properties directly in the Document interface? Another possible approach would be to retain separate SVGDocument and HTMLDocument interfaces, but to make both those interfaces available on all documents. (I think there may be a few conflicts between SVGDocument and HTMLDocument which would have to be appropriately resolved.)

Additional comments:

+#if defined(LANGUAGE_JAVASCRIPT)
+                 attribute [Custom] Window location;
 #endif

This is surely wrong, the location property returns a Location object, not a Window. I realize this is a pre-existing bug but changing the IDL seems like a good time to fix it.

r- for now to consider the general design issue and this one detail. Otherwise looks fine.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4726</commentid>
    <comment_count>8</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2007-07-14 17:01:51 -0700</bug_when>
    <thetext>&lt;rdar://problem/5335895&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4268</commentid>
    <comment_count>9</comment_count>
      <attachid>15586</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-07-19 11:36:33 -0700</bug_when>
    <thetext>Created attachment 15586
updated patch

Taking this back :)

It seems that splitting the interfaces into separate IDLs is out of the scope of this bug (and maybe even inappropriate during stabilization). The Window vs. Location issue has been already fixed on TOT.

So, I&apos;ve just updated the patch to cleanly apply. Interestingly, there&apos;s now one more DOM test passing than before (dom/xhtml/level2/html/HTMLDocument08 is the new success).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4269</commentid>
    <comment_count>10</comment_count>
      <attachid>15586</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-07-19 11:51:40 -0700</bug_when>
    <thetext>Comment on attachment 15586
updated patch

+    // When assigning location, IE and Mozilla both resolve the URL
+    // relative not the target frame.

Typo: &quot;not&quot; =&gt; &quot;to&quot;
Do we have a test for this behavior?

The code looks good to me, but I&apos;d like to hear back from Maciej once more before giving r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4270</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-07-19 11:58:09 -0700</bug_when>
    <thetext>(In reply to comment #10)

&gt; Typo: &quot;not&quot; =&gt; &quot;to&quot;
&gt; Do we have a test for this behavior?

  I don&apos;t know - I just moved this code from JSHTMLDocumentCustom. Actually, I&apos;m not even sure if changing &quot;not&quot; to &quot;to&quot; would make this statement correct, that&apos;s why I didn&apos;t change it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3699</commentid>
    <comment_count>12</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-07-25 22:18:13 -0700</bug_when>
    <thetext>+    // When assigning location, IE and Mozilla both resolve the URL
+    // relative not the target frame.

I think the correct statement here is &quot;IE and Mozilla both resolve the URL relative to the source frame, not the target frame.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3332</commentid>
    <comment_count>13</comment_count>
      <attachid>15786</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-08-01 12:13:25 -0700</bug_when>
    <thetext>Created attachment 15786
updated patch

Updated the wording per the above comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2948</commentid>
    <comment_count>14</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-08-06 06:19:55 -0700</bug_when>
    <thetext>*** Bug 14887 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57874</commentid>
    <comment_count>15</comment_count>
      <attachid>15786</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-10-05 14:31:03 -0700</bug_when>
    <thetext>Comment on attachment 15786
updated patch

I think the parameter to setBody should be a PassRefPtr&lt;HTMLElement&gt;.

r=me for feature branch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57924</commentid>
    <comment_count>16</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-10-06 02:07:09 -0700</bug_when>
    <thetext>Committed revision 26078 (feature branch).
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14536</attachid>
            <date>2007-05-13 08:39:34 -0700</date>
            <delta_ts>2007-05-24 17:22:13 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>13707r1_patch.txt</filename>
            <type>text/plain</type>
            <size>35010</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIxNDQ2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsNDAgQEAKKzIwMDctMDUtMTMgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzA3
CisgICAgICAgIFJFR1JFU1NJT046IEphdmFTY3JpcHQgZXhjZXB0aW9ucyBvbiBxdW90ZXMuYnVy
bnRlbGVjdHJvbnMub3JnCisKKyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJh
c2VFbGVtZW50MDEtZXhwZWN0ZWQuY2hlY2tzdW06IFJlbW92ZWQuCisgICAgICAgICogZG9tL3ho
dG1sL2xldmVsMi9odG1sL0hUTUxCYXNlRWxlbWVudDAxLWV4cGVjdGVkLnBuZzogUmVtb3ZlZC4K
KyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDEtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQw
MS54aHRtbDoKKyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50
MDItZXhwZWN0ZWQuY2hlY2tzdW06IFJlbW92ZWQuCisgICAgICAgICogZG9tL3hodG1sL2xldmVs
Mi9odG1sL0hUTUxCYXNlRWxlbWVudDAyLWV4cGVjdGVkLnBuZzogUmVtb3ZlZC4KKyAgICAgICAg
KiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDItZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMi54aHRtbDoK
KyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MDctZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQw
OC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCb2R5
RWxlbWVudDA5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwv
SFRNTEJvZHlFbGVtZW50MTAtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGRvbS94aHRtbC9sZXZl
bDIvaHRtbC9IVE1MQm9keUVsZW1lbnQxMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZG9tL3ho
dG1sL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDEyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDEtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQwMi1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDAzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDUtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQw
Ny1leHBlY3RlZC50eHQ6CisgICAgICAgICogZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1
bWVudDA5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRN
TERvY3VtZW50MTAtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRt
bC9IVE1MRG9jdW1lbnQxMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZG9tL3hodG1sL2xldmVs
Mi9odG1sL0hUTUxEb2N1bWVudDEyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBkb20veGh0bWwv
bGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MTMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGRvbS94
aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQxNC1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZG9tL3hodG1sL2xldmVsMi9odG1sL2RvYzAxLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgVGhlc2Ug
bm93IHBhc3MuIENoYW5nZWQgSFRNTEJhc2VFbGVtZW50KiB0byBkdW1wIGFzIHRleHQuCisKKyAg
ICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZGlmZnMudHh0OiBBZGRl
ZCBEb2N1bWVudC5wcm90b3R5cGUuZ2V0RWxlbWVudHNCeU5hbWUKKwogMjAwNy0wNS0xMyAgUm9i
IEJ1aXMgIDxidWlzQGtkZS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4uCkluZGV4
OiBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDEtZXhw
ZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
Mi9odG1sL0hUTUxCYXNlRWxlbWVudDAxLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAyMTQ0
MCkKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQw
MS1leHBlY3RlZC5jaGVja3N1bQkod29ya2luZyBjb3B5KQpAQCAtMSArMCwwIEBACi1jYmE2ZWYw
OTdkMTJhMzE0MmEwMzhmYTJhMWM5ZGYzMwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5k
ZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMS1l
eHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBi
aW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdlL3BuZwpJbmRleDogTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCYXNlRWxlbWVudDAxLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVt
ZW50MDEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTQ0MCkKKysrIExheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMS1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTEsOSArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTg3OiBVbmRlZmlu
ZWQgdmFsdWUKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgw
LDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NTAKLSAgUmVuZGVyQmxv
Y2sge2h0bWx9IGF0ICgwLDApIHNpemUgODAweDUwCi0gICAgUmVuZGVyQm9keSB7Ym9keX0gYXQg
KDgsMTYpIHNpemUgNzg0eDE4Ci0gICAgICBSZW5kZXJCbG9jayB7cH0gYXQgKDAsMCkgc2l6ZSA3
ODR4MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNjl4MTgKLSAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA2OTogIlNvbWUgVGV4dCIKK1Rlc3QJaHR0
cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDIvaHRtbC9IVE1MQmFzZUVs
ZW1lbnQwMQorU3RhdHVzCVN1Y2Nlc3MKKwpJbmRleDogTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMi9odG1sL0hUTUxCYXNlRWxlbWVudDAxLnhodG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMS54aHRtbAkocmV2aXNp
b24gMjE0NDApCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VF
bGVtZW50MDEueGh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE3LDYgKzE3LDE1IEBAIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSAKIFsxXSBodHRwOi8vd3d3LnczLm9yZy9D
b25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCiAqLwogCisg
IC8vCisgIC8vICBXZWJLaXQgbW9kaWZpY2F0aW9uOiAxMy1NYXktMjAwNworICAvLworICAvLyAg
SW5mb3JtIHRoZSB0ZXN0IGNvbnRyb2xsZXIgdGhhdCB0aGlzIHRlc3QgaGFzIGEgdGV4dC1mb3Jt
YXQgcmVzdWx0IGFuZCBzbyBzaG91bGQKKyAgLy8gIGJlIGR1bXBlZCBhcyB0ZXh0LgorICAvLwor
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKwogICBmdW5jdGlvbiBhc3NlcnRTaXplKGRlc2NyLCBleHBlY3Rl
ZCwgYWN0dWFsKSB7CiAgICAgdmFyIGFjdHVhbFNpemU7CiAgICAgYXNzZXJ0Tm90TnVsbChkZXNj
ciwgYWN0dWFsKTsKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1M
QmFzZUVsZW1lbnQwMi1leHBlY3RlZC5jaGVja3N1bQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDItZXhwZWN0ZWQuY2hlY2tz
dW0JKHJldmlzaW9uIDIxNDQwKQorKysgTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1s
L0hUTUxCYXNlRWxlbWVudDAyLWV4cGVjdGVkLmNoZWNrc3VtCSh3b3JraW5nIGNvcHkpCkBAIC0x
ICswLDAgQEAKLTYwZTE3NzI2ODdjYTk4NTA3MzgwNzVkOWU2YjFkNWJiClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hU
TUxCYXNlRWxlbWVudDAyLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBm
aWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCklu
ZGV4OiBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDIt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIv
aHRtbC9IVE1MQmFzZUVsZW1lbnQwMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIxNDQwKQorKysg
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCYXNlRWxlbWVudDAyLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxOSArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgNTg3OiBVbmRlZmluZWQgdmFsdWUKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAot
ICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCi0gIFJlbmRlckJsb2NrIHtodG1sfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgICBS
ZW5kZXJGcmFtZVNldCB7ZnJhbWVzZXR9IGF0ICgwLDApIHNpemUgODAweDYwMAotICAgICAgUmVu
ZGVyRnJhbWVTZXQge2ZyYW1lc2V0fSBhdCAoMCwwKSBzaXplIDE1OHg2MDAKLSAgICAgICAgUmVu
ZGVyRnJhbWUge2ZyYW1lfSBhdCAoMCwwKSBzaXplIDE1OHgxOTgKLSAgICAgICAgICBsYXllciBh
dCAoMCwwKSBzaXplIDE1OHgxOTgKLSAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSAxNTh4MTk4Ci0gICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTh4MTAKLSAgICAgICAg
ICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1OHgxMAotICAgICAgICAgICAg
ICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoNSwxMCkgc2l6ZSAxNDh4MAotICAgICAgUmVuZGVyRnJh
bWUge2ZyYW1lfSBhdCAoMTY0LDApIHNpemUgNjM2eDYwMAotICAgICAgICBsYXllciBhdCAoMCww
KSBzaXplIDYzNng2MDAKLSAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNjM2eDYw
MAotICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDYzNng4Ci0gICAgICAgICAgUmVuZGVyQmxv
Y2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjM2eDgKLSAgICAgICAgICAgIFJlbmRlckJvZHkge0JP
RFl9IGF0ICg4LDgpIHNpemUgNjIweDAKK1Rlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00t
VGVzdC1TdWl0ZS9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMgorU3RhdHVzCVN1Y2Nlc3MK
KwpJbmRleDogTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCYXNlRWxlbWVu
dDAyLnhodG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRt
bC9IVE1MQmFzZUVsZW1lbnQwMi54aHRtbAkocmV2aXNpb24gMjE0NDApCisrKyBMYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDIueGh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTE3LDYgKzE3LDE1IEBAIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5U
QUJJTElUWSAKIFsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29w
eXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCiAqLwogCisgIC8vCisgIC8vICBXZWJLaXQgbW9kaWZp
Y2F0aW9uOiAxMy1NYXktMjAwNworICAvLworICAvLyAgSW5mb3JtIHRoZSB0ZXN0IGNvbnRyb2xs
ZXIgdGhhdCB0aGlzIHRlc3QgaGFzIGEgdGV4dC1mb3JtYXQgcmVzdWx0IGFuZCBzbyBzaG91bGQK
KyAgLy8gIGJlIGR1bXBlZCBhcyB0ZXh0LgorICAvLworICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKwogICBm
dW5jdGlvbiBhc3NlcnRTaXplKGRlc2NyLCBleHBlY3RlZCwgYWN0dWFsKSB7CiAgICAgdmFyIGFj
dHVhbFNpemU7CiAgICAgYXNzZXJ0Tm90TnVsbChkZXNjciwgYWN0dWFsKTsKSW5kZXg6IExheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQwNy1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxC
b2R5RWxlbWVudDA3LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE0NDApCisrKyBMYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MDctZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMyBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAx
L0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDA3Ci1TdGF0dXMJZXJy
b3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBVbmRlZmluZWQgdmFsdWUKK1N0YXR1cwlTdWNjZXNzCiAK
SW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQw
OC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
Mi9odG1sL0hUTUxCb2R5RWxlbWVudDA4LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE0NDApCisr
KyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MDgtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMyBAQAogVGVzdAlodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDA4
Ci1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBVbmRlZmluZWQgdmFsdWUKK1N0YXR1
cwlTdWNjZXNzCiAKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1M
Qm9keUVsZW1lbnQwOS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDA5LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMjE0NDApCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlF
bGVtZW50MDktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMyBAQAogVGVz
dAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxC
b2R5RWxlbWVudDA5Ci1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBVbmRlZmluZWQg
dmFsdWUKK1N0YXR1cwlTdWNjZXNzCiAKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDIvaHRtbC9IVE1MQm9keUVsZW1lbnQxMC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDEwLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMjE0NDApCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0
bWwvSFRNTEJvZHlFbGVtZW50MTAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQg
KzEsMyBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVs
Mi9odG1sL0hUTUxCb2R5RWxlbWVudDEwCi1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9y
OiBVbmRlZmluZWQgdmFsdWUKK1N0YXR1cwlTdWNjZXNzCiAKSW5kZXg6IExheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQxMS1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVu
dDExLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE0NDApCisrKyBMYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MTEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xLDQgKzEsMyBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDExCi1TdGF0dXMJZXJyb3IKLU1lc3Nh
Z2UJVHlwZUVycm9yOiBVbmRlZmluZWQgdmFsdWUKK1N0YXR1cwlTdWNjZXNzCiAKSW5kZXg6IExh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQxMi1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hU
TUxCb2R5RWxlbWVudDEyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE0NDApCisrKyBMYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MTItZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMyBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDEyCi1TdGF0dXMJ
ZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBVbmRlZmluZWQgdmFsdWUKK1N0YXR1cwlTdWNjZXNz
CiAKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQw
MS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
Mi9odG1sL0hUTUxEb2N1bWVudDAxLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE0NDApCisrKyBM
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDEtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMyBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9y
Zy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDAxCi1TdGF0dXMJ
ZmFpbHVyZQotTWVzc2FnZQl0aXRsZUxpbms6IGFzc2VydEVxdWFscyBmYWlsZWQsIGFjdHVhbCBu
dWxsLCBleHBlY3RlZCBOSVNUIERPTSBIVE1MIFRlc3QgLSBET0NVTUVOVC4KK1N0YXR1cwlTdWNj
ZXNzCiAKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1l
bnQwMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMi9odG1sL0hUTUxEb2N1bWVudDAyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE0NDApCisr
KyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDItZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMyBAQAogVGVzdAlodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDAyCi1TdGF0
dXMJZmFpbHVyZQotTWVzc2FnZQlyZWZlcnJlckxpbms6IGFzc2VydEVxdWFscyBmYWlsZWQsIGFj
dHVhbCBudWxsLCBleHBlY3RlZCAuCitTdGF0dXMJU3VjY2VzcwogCkluZGV4OiBMYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDMtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQw
My1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIxNDQwKQorKysgTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDAzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMSw0ICsxLDMgQEAKIFRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0
ZS9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQwMwotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJZG9t
YWluTGluazogYXNzZXJ0RXF1YWxzIGZhaWxlZCwgYWN0dWFsIG51bGwsIGV4cGVjdGVkIC4KK1N0
YXR1cwlTdWNjZXNzCiAKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9I
VE1MRG9jdW1lbnQwNS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDA1LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MjE0NDApCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50
MDUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMyBAQAogVGVzdAlodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxEb2N1bWVu
dDA1Ci1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBVbmRlZmluZWQgdmFsdWUKK1N0
YXR1cwlTdWNjZXNzCiAKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9I
VE1MRG9jdW1lbnQwNy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDA3LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MjE0NDApCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50
MDctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMyBAQAogVGVzdAlodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxEb2N1bWVu
dDA3Ci1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBVbmRlZmluZWQgdmFsdWUKK1N0
YXR1cwlTdWNjZXNzCiAKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9I
VE1MRG9jdW1lbnQwOS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDA5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MjE0NDApCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50
MDktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMyBAQAogVGVzdAlodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxEb2N1bWVu
dDA5Ci1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBVbmRlZmluZWQgdmFsdWUKK1N0
YXR1cwlTdWNjZXNzCiAKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9I
VE1MRG9jdW1lbnQxMC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDEwLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MjE0NDApCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50
MTAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMyBAQAogVGVzdAlodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxEb2N1bWVu
dDEwCi1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBVbmRlZmluZWQgdmFsdWUKK1N0
YXR1cwlTdWNjZXNzCiAKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9I
VE1MRG9jdW1lbnQxMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDExLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MjE0NDApCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50
MTEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMyBAQAogVGVzdAlodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxEb2N1bWVu
dDExCi1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBVbmRlZmluZWQgdmFsdWUKK1N0
YXR1cwlTdWNjZXNzCiAKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9I
VE1MRG9jdW1lbnQxMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDEyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MjE0NDApCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50
MTItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMyBAQAogVGVzdAlodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxEb2N1bWVu
dDEyCi1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQljb29raWVMaW5rOiBhc3NlcnRFcXVhbHMgZmFp
bGVkLCBhY3R1YWwgbnVsbCwgZXhwZWN0ZWQgLgorU3RhdHVzCVN1Y2Nlc3MKIApJbmRleDogTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDEzLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERv
Y3VtZW50MTMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTQ0MCkKKysrIExheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQxMy1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNCArMSwzIEBACiBUZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRl
c3QtU3VpdGUvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MTMKLVN0YXR1cwllcnJvcgotTWVzc2Fn
ZQlUeXBlRXJyb3I6IFZhbHVlIHVuZGVmaW5lZCAocmVzdWx0IG9mIGV4cHJlc3Npb24gZG9jLmdl
dEVsZW1lbnRzQnlOYW1lKSBpcyBub3Qgb2JqZWN0LgorU3RhdHVzCVN1Y2Nlc3MKIApJbmRleDog
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDE0LWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRN
TERvY3VtZW50MTQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTQ0MCkKKysrIExheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQxNC1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTEsNCArMSwzIEBACiBUZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9N
LVRlc3QtU3VpdGUvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MTQKLVN0YXR1cwllcnJvcgotTWVz
c2FnZQlUeXBlRXJyb3I6IFZhbHVlIHVuZGVmaW5lZCAocmVzdWx0IG9mIGV4cHJlc3Npb24gZG9j
LmdldEVsZW1lbnRzQnlOYW1lKSBpcyBub3Qgb2JqZWN0LgorU3RhdHVzCVN1Y2Nlc3MKIApJbmRl
eDogTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL2RvYzAxLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvZG9jMDEtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAyMTQ0MCkKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDIvaHRtbC9kb2MwMS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSwzIEBA
CiBUZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwyL2h0bWwv
ZG9jMDEKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCXRpdGxlTGluazogYXNzZXJ0RXF1YWxzIGZh
aWxlZCwgYWN0dWFsIG51bGwsIGV4cGVjdGVkIE5JU1QgRE9NIEhUTUwgVGVzdCAtIEFuY2hvci4K
K1N0YXR1cwlTdWNjZXNzCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5k
b3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE0
NDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yNTgsNiArMjU4LDcgQEAgd2luZG93LkRvY3Vt
ZW50LnByb3RvdHlwZS5lbGVtZW50RnJvbVBvaQogd2luZG93LkRvY3VtZW50LnByb3RvdHlwZS5l
dmFsdWF0ZSBbZnVuY3Rpb25dCiB3aW5kb3cuRG9jdW1lbnQucHJvdG90eXBlLmV4ZWNDb21tYW5k
IFtmdW5jdGlvbl0KIHdpbmRvdy5Eb2N1bWVudC5wcm90b3R5cGUuZ2V0RWxlbWVudEJ5SWQgW2Z1
bmN0aW9uXQord2luZG93LkRvY3VtZW50LnByb3RvdHlwZS5nZXRFbGVtZW50c0J5TmFtZSBbZnVu
Y3Rpb25dCiB3aW5kb3cuRG9jdW1lbnQucHJvdG90eXBlLmdldEVsZW1lbnRzQnlUYWdOYW1lIFtm
dW5jdGlvbl0KIHdpbmRvdy5Eb2N1bWVudC5wcm90b3R5cGUuZ2V0RWxlbWVudHNCeVRhZ05hbWVO
UyBbZnVuY3Rpb25dCiB3aW5kb3cuRG9jdW1lbnQucHJvdG90eXBlLmdldE92ZXJyaWRlU3R5bGUg
W2Z1bmN0aW9uXQpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNDQ2KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSw0OSBAQAorMjAwNy0wNS0xMyAgQWxleGV5IFByb3NrdXJ5YWtv
diAgPGFwQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MDcK
KyAgICAgICAgUkVHUkVTU0lPTjogSmF2YVNjcmlwdCBleGNlcHRpb25zIG9uIHF1b3Rlcy5idXJu
dGVsZWN0cm9ucy5vcmcKKworICAgICAgICBNb3ZlZCBhIGJ1bmNoIG9mIG1ldGhvZHMgYW5kIHBy
b3BlcnRpZXMgb3V0IGZyb20ga2pzX2h0bWwgdG8gbWFrZSB0aGVtIGF2YWlsYWJsZSBmb3IgYWxs
IGRvY3VtZW50cy4KKyAgICAgICAgV2hhdCBJIGtlcHQgaW4ga2pzX2h0bWw6CisgICAgICAgIC0g
c29tZSBtZXRob2RzIGFuZCBwcm9wZXJ0aWVzIHRoYXQgYXJlIG5vdCBpbiBIVE1MNSAoeWV0Pyk7
CisgICAgICAgIC0gb3Blbi93cml0ZS93cml0ZWxuL2Nsb3NlLCBhcyB0aGV5IHdpbGwgbmVlZCB0
byBiZSBtb2RpZmllZCB0byB3b3JrIG9uIFhNTCBkb2N1bWVudHMsIGFuZCBhcmVuJ3QKKyAgICAg
ICAgb2YgbXVjaCB1c2UgZm9yIHRob3NlIGFueXdheTsKKyAgICAgICAgLSBkZXNpZ25Nb2RlLCBi
ZWNhdXNlIGl0cyBkZWZpbml0aW9uIGluIEhUTUw1IGlzIGluY29tcGF0aWJsZSB3aXRoIG91ciBp
bXBsZW1lbnRhdGlvbi4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisg
ICAgICAgICogYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU0RvY3VtZW50Ojpsb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpKU0RvY3VtZW50
OjpzZXRMb2NhdGlvbik6CisgICAgICAgIE1vdmVkIGZyb20ga2pzX2h0bWwuY3BwLiBUaGVzZSBt
ZXRob2RzIGNhbm5vdCBiZSBhdXRvZ2VuZXJhdGVkLCBiZWNhdXNlIHRoZSBpbXBsZW1lbnRhdGlv
biBuZWVkcworICAgICAgICB0byBhY2Nlc3MgRXhlY1N0YXRlLgorCisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpjb29raWUpOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldENvb2tpZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6bGFzdE1vZGlmaWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRCb2R5
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpnZXRFbGVtZW50c0J5TmFtZSk6CisgICAg
ICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGl0bGUp
OgorICAgICAgICAqIGh0bWwvSFRNTERvY3VtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxE
b2N1bWVudC5oOgorICAgICAgICBNb3ZlZCBjb2RlOyBjaGFuZ2VkIHRoZSByZXR1cm4gdmFsdWUg
b2YgZ2V0RWxlbWVudHNCeU5hbWUoKSB0byBQYXNzUmVmUHRyPE5vZGVMaXN0PiwgYmVjYXVzZQor
ICAgICAgICBOYW1lTm9kZUxpc3QgaXMgcmVhbGx5IGFuIGltcGxlbWVudGF0aW9uIGRldGFpbC4K
KworICAgICAgICAqIGRvbS9Eb2N1bWVudC5pZGw6IEFkZGl0aW9ucyBtb3N0bHkgbWF0Y2ggSFRN
TDUgSFRNTERvY3VtZW50IGludGVyZmFjZSwgZXhjZXB0IGZvcgorICAgICAgICBvZiBsb2NhdGlv
biwgd2hpY2ggaXMgcmVhZC1vbmx5IGluIEhUTUw1LCBhbmQgbGFzdE1vZGlmaWVkLCB3aGljaCBp
cyBub3QgcHJlc2VudCB0aGVyZS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL2tqc19odG1sLmNw
cDoKKyAgICAgICAgKEtKUzo6SlNIVE1MRG9jdW1lbnRQcm90b3R5cGVGdW5jdGlvbjo6Y2FsbEFz
RnVuY3Rpb24pOgorICAgICAgICAoS0pTOjpKU0hUTUxEb2N1bWVudDo6Z2V0VmFsdWVQcm9wZXJ0
eSk6CisgICAgICAgIChLSlM6OkpTSFRNTERvY3VtZW50OjpwdXRWYWx1ZVByb3BlcnR5KToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9ranNfaHRtbC5oOgorICAgICAgICAoS0pTOjpKU0hUTUxEb2N1
bWVudDo6KToKKyAgICAgICAgTW92ZWQgY29kZSBvdXQgb2YgaGVyZS4KKwogMjAwNy0wNS0xMyAg
RGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
VGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbTogRml4IGNvbW1lbnQgdHlwby4KSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gMjE0
NDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMSw3ICsyMSwxMiBAQAogI2luY2x1ZGUgIkpTRG9jdW1lbnQuaCIKIAogI2lu
Y2x1ZGUgImtqc19iaW5kaW5nLmgiCisjaW5jbHVkZSAia2pzX3dpbmRvdy5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlci5o
IgorCit1c2luZyBuYW1lc3BhY2UgS0pTOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMw
LDYgKzM1LDM0IEBAIHZvaWQgSlNEb2N1bWVudDo6bWFyaygpCiAgICAgRE9NT2JqZWN0OjptYXJr
KCk7CiAgICAgS0pTOjpTY3JpcHRJbnRlcnByZXRlcjo6bWFya0RPTU5vZGVzRm9yRG9jdW1lbnQo
c3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihpbXBsKCkpKTsKIH0KLSAgICAKKworSlNWYWx1ZSogSlNE
b2N1bWVudDo6bG9jYXRpb24oRXhlY1N0YXRlKiBleGVjKSBjb25zdAoreworICAgIEZyYW1lKiBm
cmFtZSA9IHN0YXRpY19jYXN0PERvY3VtZW50Kj4oaW1wbCgpKS0+ZnJhbWUoKTsKKyAgICBpZiAo
IWZyYW1lKQorICAgICAgICByZXR1cm4ganNOdWxsKCk7CisgICAgaWYgKFdpbmRvdyogd2luID0g
V2luZG93OjpyZXRyaWV2ZVdpbmRvdyhmcmFtZSkpCisgICAgICAgIHJldHVybiB3aW4tPmxvY2F0
aW9uKCk7CisgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cit9CisKK3ZvaWQgSlNEb2N1bWVudDo6
c2V0TG9jYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlKiB2YWx1ZSkKK3sKKyAgICBpZiAo
RnJhbWUqIGZyYW1lID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihpbXBsKCkpLT5mcmFtZSgpKSB7
CisgICAgICAgIFN0cmluZyBzdHIgPSB2YWx1ZS0+dG9TdHJpbmcoZXhlYyk7CisKKyAgICAgICAg
Ly8gV2hlbiBhc3NpZ25pbmcgbG9jYXRpb24sIElFIGFuZCBNb3ppbGxhIGJvdGggcmVzb2x2ZSB0
aGUgVVJMCisgICAgICAgIC8vIHJlbGF0aXZlIHRvIHRoZSBmcmFtZSB3aGVyZSB0aGUgSmF2YVNj
cmlwdCBpcyBleGVjdXRpbmcgbm90CisgICAgICAgIC8vIHRoZSB0YXJnZXQgZnJhbWUuCisgICAg
ICAgIEZyYW1lKiBhY3RpdmVGcmFtZSA9IHN0YXRpY19jYXN0PFNjcmlwdEludGVycHJldGVyKj4o
ZXhlYy0+ZHluYW1pY0ludGVycHJldGVyKCkpLT5mcmFtZSgpOworICAgICAgICBpZiAoYWN0aXZl
RnJhbWUpCisgICAgICAgICAgICBzdHIgPSBhY3RpdmVGcmFtZS0+ZG9jdW1lbnQoKS0+Y29tcGxl
dGVVUkwoc3RyKTsKKworICAgICAgICAvLyBXZSB3YW50IGEgbmV3IGhpc3RvcnkgaXRlbSBpZiB0
aGlzIEpTIHdhcyBjYWxsZWQgdmlhIGEgdXNlciBnZXN0dXJlCisgICAgICAgIGJvb2wgdXNlckdl
c3R1cmUgPSBzdGF0aWNfY2FzdDxTY3JpcHRJbnRlcnByZXRlcio+KGV4ZWMtPmR5bmFtaWNJbnRl
cnByZXRlcigpKS0+d2FzUnVuQnlVc2VyR2VzdHVyZSgpOworICAgICAgICBmcmFtZS0+bG9hZGVy
KCktPnNjaGVkdWxlTG9jYXRpb25DaGFuZ2Uoc3RyLCBhY3RpdmVGcmFtZS0+bG9hZGVyKCktPm91
dGdvaW5nUmVmZXJyZXIoKSwgIXVzZXJHZXN0dXJlKTsKKyAgICB9Cit9CisKIH0KIApJbmRleDog
V2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfaHRtbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9i
aW5kaW5ncy9qcy9ranNfaHRtbC5jcHAJKHJldmlzaW9uIDIxNDQwKQorKysgV2ViQ29yZS9iaW5k
aW5ncy9qcy9ranNfaHRtbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0LDcgKzg0LDYgQEAgb3Bl
biAgICAgICAgICAgICAgICAgIEpTSFRNTERvY3VtZW50OjpPcAogY2xvc2UgICAgICAgICAgICAg
ICAgIEpTSFRNTERvY3VtZW50OjpDbG9zZSAgICAgICAgICAgICBEb250RGVsZXRlfEZ1bmN0aW9u
IDAKIHdyaXRlICAgICAgICAgICAgICAgICBKU0hUTUxEb2N1bWVudDo6V3JpdGUgICAgICAgICAg
ICAgRG9udERlbGV0ZXxGdW5jdGlvbiAxCiB3cml0ZWxuICAgICAgICAgICAgICAgSlNIVE1MRG9j
dW1lbnQ6OldyaXRlTG4gICAgICAgICAgIERvbnREZWxldGV8RnVuY3Rpb24gMQotZ2V0RWxlbWVu
dHNCeU5hbWUgICAgIEpTSFRNTERvY3VtZW50OjpHZXRFbGVtZW50c0J5TmFtZSBEb250RGVsZXRl
fEZ1bmN0aW9uIDEKIGNhcHR1cmVFdmVudHMgICAgICAgICBKU0hUTUxEb2N1bWVudDo6Q2FwdHVy
ZUV2ZW50cyAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCiByZWxlYXNlRXZlbnRzICAgICAgICAg
SlNIVE1MRG9jdW1lbnQ6OlJlbGVhc2VFdmVudHMgICAgIERvbnREZWxldGV8RnVuY3Rpb24gMAog
QGVuZApAQCAtMTM1LDggKzEzNCw2IEBAIEpTVmFsdWUgKkpTSFRNTERvY3VtZW50UHJvdG90eXBl
RnVuY3Rpb24KICAgICAgICAgICAgIGRvYy53cml0ZShzdHIpOwogICAgICAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBKU0hUTUxEb2N1bWVudDo6
R2V0RWxlbWVudHNCeU5hbWU6Ci0gICAgICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBkb2MuZ2V0
RWxlbWVudHNCeU5hbWUoYXJnc1swXS0+dG9TdHJpbmcoZXhlYykpLmdldCgpKTsKICAgICAgICAg
Y2FzZSBKU0hUTUxEb2N1bWVudDo6Q2FwdHVyZUV2ZW50czoKICAgICAgICAgY2FzZSBKU0hUTUxE
b2N1bWVudDo6UmVsZWFzZUV2ZW50czoKICAgICAgICAgICAgIC8vIERvIG5vdGhpbmcgZm9yIG5v
dy4gVGhlc2UgYXJlIE5TLXNwZWNpZmljIGxlZ2FjeSBjYWxscy4KQEAgLTE1MiwxOSArMTQ5LDkg
QEAgY29uc3QgQ2xhc3NJbmZvIEpTSFRNTERvY3VtZW50OjppbmZvID0KICAgeyAiRE9NSFRNTERv
Y3VtZW50IiwgJkpTRG9jdW1lbnQ6OmluZm8sICZIVE1MRG9jdW1lbnRUYWJsZSwgMCB9OwogLyog
U291cmNlIGZvciBIVE1MRG9jdW1lbnRUYWJsZS4gVXNlICJtYWtlIGhhc2h0YWJsZXMiIHRvIHJl
Z2VuZXJhdGUuCiBAYmVnaW4gSFRNTERvY3VtZW50VGFibGUgMzAKLSAgdGl0bGUgICAgICAgICAg
ICAgICAgIEpTSFRNTERvY3VtZW50OjpUaXRsZSAgICAgICAgICAgICBEb250RGVsZXRlCi0gIHJl
ZmVycmVyICAgICAgICAgICAgICBKU0hUTUxEb2N1bWVudDo6UmVmZXJyZXIgICAgICAgICAgRG9u
dERlbGV0ZXxSZWFkT25seQotICBkb21haW4gICAgICAgICAgICAgICAgSlNIVE1MRG9jdW1lbnQ6
OkRvbWFpbiAgICAgICAgICAgIERvbnREZWxldGUKLSAgYm9keSAgICAgICAgICAgICAgICAgIEpT
SFRNTERvY3VtZW50OjpCb2R5ICAgICAgICAgICAgICBEb250RGVsZXRlCi0gIGxvY2F0aW9uICAg
ICAgICAgICAgICBKU0hUTUxEb2N1bWVudDo6TG9jYXRpb24gICAgICAgICAgRG9udERlbGV0ZQot
ICBjb29raWUgICAgICAgICAgICAgICAgSlNIVE1MRG9jdW1lbnQ6OkNvb2tpZSAgICAgICAgICAg
IERvbnREZWxldGUKLSAgaW1hZ2VzICAgICAgICAgICAgICAgIEpTSFRNTERvY3VtZW50OjpJbWFn
ZXMgICAgICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5CiAgIGVtYmVkcyAgICAgICAgICAgICAg
ICBKU0hUTUxEb2N1bWVudDo6RW1iZWRzICAgICAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQog
ICBwbHVnaW5zICAgICAgICAgICAgICAgSlNIVE1MRG9jdW1lbnQ6OkVtYmVkcyAgICAgICAgICAg
IERvbnREZWxldGV8UmVhZE9ubHkKICAgYXBwbGV0cyAgICAgICAgICAgICAgIEpTSFRNTERvY3Vt
ZW50OjpBcHBsZXRzICAgICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gIGxpbmtzICAgICAg
ICAgICAgICAgICBKU0hUTUxEb2N1bWVudDo6TGlua3MgICAgICAgICAgICAgRG9udERlbGV0ZXxS
ZWFkT25seQotICBmb3JtcyAgICAgICAgICAgICAgICAgSlNIVE1MRG9jdW1lbnQ6OkZvcm1zICAg
ICAgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgYW5jaG9ycyAgICAgICAgICAgICAgIEpT
SFRNTERvY3VtZW50OjpBbmNob3JzICAgICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5CiAgIHNj
cmlwdHMgICAgICAgICAgICAgICBKU0hUTUxEb2N1bWVudDo6U2NyaXB0cyAgICAgICAgICAgRG9u
dERlbGV0ZXxSZWFkT25seQogICBhbGwgICAgICAgICAgICAgICAgICAgSlNIVE1MRG9jdW1lbnQ6
OkFsbCAgICAgICAgICAgICAgIAogICBiZ0NvbG9yICAgICAgICAgICAgICAgSlNIVE1MRG9jdW1l
bnQ6OkJnQ29sb3IgICAgICAgICAgIERvbnREZWxldGUKQEAgLTE3Miw3ICsxNTksNiBAQCBjb25z
dCBDbGFzc0luZm8gSlNIVE1MRG9jdW1lbnQ6OmluZm8gPQogICBhbGlua0NvbG9yICAgICAgICAg
ICAgSlNIVE1MRG9jdW1lbnQ6OkFsaW5rQ29sb3IgICAgICAgIERvbnREZWxldGUKICAgbGlua0Nv
bG9yICAgICAgICAgICAgIEpTSFRNTERvY3VtZW50OjpMaW5rQ29sb3IgICAgICAgICBEb250RGVs
ZXRlCiAgIHZsaW5rQ29sb3IgICAgICAgICAgICBKU0hUTUxEb2N1bWVudDo6VmxpbmtDb2xvciAg
ICAgICAgRG9udERlbGV0ZQotICBsYXN0TW9kaWZpZWQgICAgICAgICAgSlNIVE1MRG9jdW1lbnQ6
Okxhc3RNb2RpZmllZCAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKICAgaGVpZ2h0ICAgICAgICAg
ICAgICAgIEpTSFRNTERvY3VtZW50OjpIZWlnaHQgICAgICAgICAgICBEb250RGVsZXRlfFJlYWRP
bmx5CiAgIHdpZHRoICAgICAgICAgICAgICAgICBKU0hUTUxEb2N1bWVudDo6V2lkdGggICAgICAg
ICAgICAgRG9udERlbGV0ZXxSZWFkT25seQogICBkaXIgICAgICAgICAgICAgICAgICAgSlNIVE1M
RG9jdW1lbnQ6OkRpciAgICAgICAgICAgICAgIERvbnREZWxldGUKQEAgLTIxOCw0MCArMjA0LDE1
IEBAIEpTVmFsdWUgKkpTSFRNTERvY3VtZW50OjpnZXRWYWx1ZVByb3BlcnQKICAgSFRNTERvY3Vt
ZW50JiBkb2MgPSAqc3RhdGljX2Nhc3Q8SFRNTERvY3VtZW50Kj4oaW1wbCgpKTsKIAogICBGcmFt
ZVZpZXcqIHZpZXcgPSBkb2MudmlldygpOwotICBGcmFtZSogZnJhbWUgPSBkb2MuZnJhbWUoKTsK
IAogICBIVE1MRWxlbWVudCogYm9keSA9IGRvYy5ib2R5KCk7CiAgIEhUTUxCb2R5RWxlbWVudCog
Ym9keUVsZW1lbnQgPSAoYm9keSAmJiBib2R5LT5oYXNUYWdOYW1lKGJvZHlUYWcpKSA/IHN0YXRp
Y19jYXN0PEhUTUxCb2R5RWxlbWVudCo+KGJvZHkpIDogMDsKICAgICAKICAgc3dpdGNoICh0b2tl
bikgewotICBjYXNlIFRpdGxlOgotICAgIHJldHVybiBqc1N0cmluZyhkb2MudGl0bGUoKSk7Ci0g
IGNhc2UgUmVmZXJyZXI6Ci0gICAgcmV0dXJuIGpzU3RyaW5nKGRvYy5yZWZlcnJlcigpKTsKLSAg
Y2FzZSBEb21haW46Ci0gICAgcmV0dXJuIGpzU3RyaW5nKGRvYy5kb21haW4oKSk7Ci0gIGNhc2Ug
Qm9keToKLSAgICByZXR1cm4gdG9KUyhleGVjLCBib2R5KTsKLSAgY2FzZSBMb2NhdGlvbjoKLSAg
ICBpZiAoIWZyYW1lKQotICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAgIGlmIChXaW5kb3cqIHdp
biA9IFdpbmRvdzo6cmV0cmlldmVXaW5kb3coZnJhbWUpKQotICAgICAgcmV0dXJuIHdpbi0+bG9j
YXRpb24oKTsKLSAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgY2FzZSBDb29raWU6Ci0gICAg
cmV0dXJuIGpzU3RyaW5nKGRvYy5jb29raWUoKSk7Ci0gIGNhc2UgSW1hZ2VzOgotICAgIHJldHVy
biBnZXRIVE1MQ29sbGVjdGlvbihleGVjLCBkb2MuaW1hZ2VzKCkuZ2V0KCkpOwogICBjYXNlIEVt
YmVkczoKICAgICByZXR1cm4gZ2V0SFRNTENvbGxlY3Rpb24oZXhlYywgZG9jLmVtYmVkcygpLmdl
dCgpKTsKICAgY2FzZSBBcHBsZXRzOgogICAgIHJldHVybiBnZXRIVE1MQ29sbGVjdGlvbihleGVj
LCBkb2MuYXBwbGV0cygpLmdldCgpKTsKLSAgY2FzZSBMaW5rczoKLSAgICByZXR1cm4gZ2V0SFRN
TENvbGxlY3Rpb24oZXhlYywgZG9jLmxpbmtzKCkuZ2V0KCkpOwotICBjYXNlIEZvcm1zOgotICAg
IHJldHVybiBnZXRIVE1MQ29sbGVjdGlvbihleGVjLCBkb2MuZm9ybXMoKS5nZXQoKSk7Ci0gIGNh
c2UgQW5jaG9yczoKLSAgICByZXR1cm4gZ2V0SFRNTENvbGxlY3Rpb24oZXhlYywgZG9jLmFuY2hv
cnMoKS5nZXQoKSk7CiAgIGNhc2UgU2NyaXB0czoKICAgICByZXR1cm4gZ2V0SFRNTENvbGxlY3Rp
b24oZXhlYywgZG9jLnNjcmlwdHMoKS5nZXQoKSk7CiAgIGNhc2UgQWxsOgpAQCAtMjgwLDggKzI0
MSw2IEBAIEpTVmFsdWUgKkpTSFRNTERvY3VtZW50OjpnZXRWYWx1ZVByb3BlcnQKICAgICBpZiAo
IWJvZHlFbGVtZW50KQogICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgcmV0dXJuIGpz
U3RyaW5nKGJvZHlFbGVtZW50LT52TGluaygpKTsKLSAgY2FzZSBMYXN0TW9kaWZpZWQ6Ci0gICAg
cmV0dXJuIGpzU3RyaW5nKGRvYy5sYXN0TW9kaWZpZWQoKSk7CiAgIGNhc2UgSGVpZ2h0OgogICAg
IHJldHVybiBqc051bWJlcih2aWV3ID8gdmlldy0+Y29udGVudHNIZWlnaHQoKSA6IDApOwogICBj
YXNlIFdpZHRoOgpAQCAtMzE4LDQwICsyNzcsMTEgQEAgdm9pZCBKU0hUTUxEb2N1bWVudDo6cHV0
KEV4ZWNTdGF0ZSogZXhlYwogCiB2b2lkIEpTSFRNTERvY3VtZW50OjpwdXRWYWx1ZVByb3BlcnR5
KEV4ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuLCBKU1ZhbHVlICp2YWx1ZSwgaW50IC8qYXR0ciov
KQogewotICBET01FeGNlcHRpb25UcmFuc2xhdG9yIGV4Y2VwdGlvbihleGVjKTsKICAgSFRNTERv
Y3VtZW50ICZkb2MgPSAqc3RhdGljX2Nhc3Q8SFRNTERvY3VtZW50Kj4oaW1wbCgpKTsKICAgSFRN
TEVsZW1lbnQqIGJvZHkgPSBkb2MuYm9keSgpOwogICBIVE1MQm9keUVsZW1lbnQqIGJvZHlFbGVt
ZW50ID0gKGJvZHkgJiYgYm9keS0+aGFzVGFnTmFtZShib2R5VGFnKSkgPyBzdGF0aWNfY2FzdDxI
VE1MQm9keUVsZW1lbnQqPihib2R5KSA6IDA7CiAKICAgc3dpdGNoICh0b2tlbikgewotICBjYXNl
IFRpdGxlOgotICAgIGRvYy5zZXRUaXRsZSh2YWx1ZS0+dG9TdHJpbmcoZXhlYykpOwotICAgIGJy
ZWFrOwotICBjYXNlIEJvZHk6Ci0gICAgZG9jLnNldEJvZHkodG9IVE1MRWxlbWVudCh2YWx1ZSks
IGV4Y2VwdGlvbik7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgRG9tYWluOiAvLyBub3QgcGFydCBvZiB0
aGUgRE9NCi0gICAgZG9jLnNldERvbWFpbih2YWx1ZS0+dG9TdHJpbmcoZXhlYykpOwotICAgIGJy
ZWFrOwotICBjYXNlIENvb2tpZToKLSAgICBkb2Muc2V0Q29va2llKHZhbHVlLT50b1N0cmluZyhl
eGVjKSk7Ci0gICAgYnJlYWs7Ci0gIGNhc2UgTG9jYXRpb246Ci0gICAgaWYgKEZyYW1lKiBmcmFt
ZSA9IGRvYy5mcmFtZSgpKSB7Ci0gICAgICBEZXByZWNhdGVkU3RyaW5nIHN0ciA9IHZhbHVlLT50
b1N0cmluZyhleGVjKTsKLQotICAgICAgLy8gV2hlbiBhc3NpZ25pbmcgbG9jYXRpb24sIElFIGFu
ZCBNb3ppbGxhIGJvdGggcmVzb2x2ZSB0aGUgVVJMCi0gICAgICAvLyByZWxhdGl2ZSB0byB0aGUg
ZnJhbWUgd2hlcmUgdGhlIEphdmFTY3JpcHQgaXMgZXhlY3V0aW5nIG5vdAotICAgICAgLy8gdGhl
IHRhcmdldCBmcmFtZS4KLSAgICAgIEZyYW1lKiBhY3RpdmVGcmFtZSA9IHN0YXRpY19jYXN0PFNj
cmlwdEludGVycHJldGVyKj4oIGV4ZWMtPmR5bmFtaWNJbnRlcnByZXRlcigpICktPmZyYW1lKCk7
Ci0gICAgICBpZiAoYWN0aXZlRnJhbWUpCi0gICAgICAgIHN0ciA9IGFjdGl2ZUZyYW1lLT5kb2N1
bWVudCgpLT5jb21wbGV0ZVVSTChzdHIpOwotCi0gICAgICAvLyBXZSB3YW50IGEgbmV3IGhpc3Rv
cnkgaXRlbSBpZiB0aGlzIEpTIHdhcyBjYWxsZWQgdmlhIGEgdXNlciBnZXN0dXJlCi0gICAgICBi
b29sIHVzZXJHZXN0dXJlID0gc3RhdGljX2Nhc3Q8U2NyaXB0SW50ZXJwcmV0ZXIqPihleGVjLT5k
eW5hbWljSW50ZXJwcmV0ZXIoKSktPndhc1J1bkJ5VXNlckdlc3R1cmUoKTsKLSAgICAgIGZyYW1l
LT5sb2FkZXIoKS0+c2NoZWR1bGVMb2NhdGlvbkNoYW5nZShzdHIsIGFjdGl2ZUZyYW1lLT5sb2Fk
ZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpLCAhdXNlckdlc3R1cmUpOwotICAgIH0KLSAgICBicmVh
azsKICAgY2FzZSBCZ0NvbG9yOgogICAgIGlmIChib2R5RWxlbWVudCkKICAgICAgIGJvZHlFbGVt
ZW50LT5zZXRCZ0NvbG9yKHZhbHVlLT50b1N0cmluZyhleGVjKSk7CkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL2pzL2tqc19odG1sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9r
anNfaHRtbC5oCShyZXZpc2lvbiAyMTQ0MCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2h0
bWwuaAkod29ya2luZyBjb3B5KQpAQCAtNTAsMTAgKzUwLDkgQEAgbmFtZXNwYWNlIEtKUyB7CiAg
ICAgdm9pZCBwdXRWYWx1ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGludCB0b2tlbiwgSlNWYWx1ZSos
IGludCAvKmF0dHIqLyk7CiAgICAgdmlydHVhbCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygp
IGNvbnN0IHsgcmV0dXJuICZpbmZvOyB9CiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBpbmZv
OwotICAgIGVudW0geyBUaXRsZSwgUmVmZXJyZXIsIERvbWFpbiwgQm9keSwgTG9jYXRpb24sIENv
b2tpZSwKLSAgICAgICAgICAgSW1hZ2VzLCBBcHBsZXRzLCBFbWJlZHMsIExpbmtzLCBGb3Jtcywg
QW5jaG9ycywgU2NyaXB0cywgQWxsLCBDbGVhciwgT3BlbiwgQ2xvc2UsCi0gICAgICAgICAgIFdy
aXRlLCBXcml0ZUxuLCBHZXRFbGVtZW50c0J5TmFtZSwgQ2FwdHVyZUV2ZW50cywgUmVsZWFzZUV2
ZW50cywKLSAgICAgICAgICAgQmdDb2xvciwgRmdDb2xvciwgQWxpbmtDb2xvciwgTGlua0NvbG9y
LCBWbGlua0NvbG9yLCBMYXN0TW9kaWZpZWQsIEhlaWdodCwgV2lkdGgsIERpciwgRGVzaWduTW9k
ZSB9OworICAgIGVudW0geyBBcHBsZXRzLCBFbWJlZHMsIFNjcmlwdHMsIEFsbCwgQ2xlYXIsIE9w
ZW4sIENsb3NlLAorICAgICAgICAgICBXcml0ZSwgV3JpdGVMbiwgQ2FwdHVyZUV2ZW50cywgUmVs
ZWFzZUV2ZW50cywKKyAgICAgICAgICAgQmdDb2xvciwgRmdDb2xvciwgQWxpbmtDb2xvciwgTGlu
a0NvbG9yLCBWbGlua0NvbG9yLCBIZWlnaHQsIFdpZHRoLCBEaXIsIERlc2lnbk1vZGUgfTsKICAg
cHJpdmF0ZToKICAgICBzdGF0aWMgSlNWYWx1ZSogbmFtZWRJdGVtR2V0dGVyKEV4ZWNTdGF0ZSos
IEpTT2JqZWN0KiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnR5U2xvdCYpOwogICB9
OwpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gMjE0NDApCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgIkFYT2Jq
ZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJDREFUQVNlY3Rpb24uaCIKKyNpbmNsdWRlICJDb29raWVK
YXIuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3
b3Jkcy5oIgogI2luY2x1ZGUgIkNvbW1lbnQuaCIKQEAgLTE1NDUsNiArMTU0NiwxNiBAQCB2b2lk
IERvY3VtZW50OjpjbGVhcigpCiAgICAgbV93aW5kb3dFdmVudExpc3RlbmVycy5jbGVhcigpOwog
fQogCitTdHJpbmcgRG9jdW1lbnQ6OmNvb2tpZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNvb2tp
ZXMoVVJMKCkpOworfQorCit2b2lkIERvY3VtZW50OjpzZXRDb29raWUoY29uc3QgU3RyaW5nJiB2
YWx1ZSkKK3sKKyAgICBzZXRDb29raWVzKFVSTCgpLCBtX3BvbGljeUJhc2VVUkwuZGVwcmVjYXRl
ZFN0cmluZygpLCB2YWx1ZSk7Cit9CisKIHZvaWQgRG9jdW1lbnQ6OnNldFVSTChjb25zdCBEZXBy
ZWNhdGVkU3RyaW5nJiB1cmwpCiB7CiAgICAgaWYgKHVybCA9PSBtX3VybCkKQEAgLTI1MzAsNiAr
MjU0MSwyOCBAQCB2b2lkIERvY3VtZW50OjpzZXREb21haW4oY29uc3QgU3RyaW5nICZuCiAgICAg
fQogfQogCitTdHJpbmcgRG9jdW1lbnQ6Omxhc3RNb2RpZmllZCgpIGNvbnN0Cit7CisgICAgU3Ry
aW5nIG1vZGlmaWVkSGVhZGVyOworICAgIGlmIChGcmFtZSogZiA9IGZyYW1lKCkpCisgICAgICAg
IGlmIChEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBmLT5sb2FkZXIoKS0+ZG9jdW1l
bnRMb2FkZXIoKSkKKyAgICAgICAgICAgIGRvY3VtZW50TG9hZGVyLT5nZXRSZXNwb25zZU1vZGlm
aWVkSGVhZGVyKG1vZGlmaWVkSGVhZGVyKTsKKyAgICByZXR1cm4gbW9kaWZpZWRIZWFkZXI7Cit9
CisKK3ZvaWQgRG9jdW1lbnQ6OnNldEJvZHkoSFRNTEVsZW1lbnQqIG5ld0JvZHksIEV4Y2VwdGlv
bkNvZGUmIGVjKQoreworICAgIGlmICghbmV3Qm9keSkgeyAKKyAgICAgICAgZWMgPSBISUVSQVJD
SFlfUkVRVUVTVF9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgSFRNTEVsZW1lbnQq
IGIgPSBib2R5KCk7CisgICAgaWYgKCFiKQorICAgICAgICBkb2N1bWVudEVsZW1lbnQoKS0+YXBw
ZW5kQ2hpbGQobmV3Qm9keSwgZWMpOworICAgIGVsc2UKKyAgICAgICAgZG9jdW1lbnRFbGVtZW50
KCktPnJlcGxhY2VDaGlsZChuZXdCb2R5LCBiLCBlYyk7Cit9CisKIGJvb2wgRG9jdW1lbnQ6Omlz
VmFsaWROYW1lKGNvbnN0IFN0cmluZyAmbmFtZSkKIHsKICAgICBjb25zdCBVQ2hhciogcyA9IHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVUNoYXIqPihuYW1lLmNoYXJhY3RlcnMoKSk7CkBAIC0zNDA4
LDcgKzM0NDEsNyBAQCBIVE1MQ29sbGVjdGlvbjo6Q29sbGVjdGlvbkluZm8qIERvY3VtZW50CiAg
ICAgcmV0dXJuICZpdGVyLT5zZWNvbmQ7CiB9CiAKLVBhc3NSZWZQdHI8TmFtZU5vZGVMaXN0PiBE
b2N1bWVudDo6Z2V0RWxlbWVudHNCeU5hbWUoY29uc3QgU3RyaW5nICZlbGVtZW50TmFtZSkKK1Bh
c3NSZWZQdHI8Tm9kZUxpc3Q+IERvY3VtZW50OjpnZXRFbGVtZW50c0J5TmFtZShjb25zdCBTdHJp
bmcgJmVsZW1lbnROYW1lKQogewogICAgIHJldHVybiBuZXcgTmFtZU5vZGVMaXN0KHRoaXMsIGVs
ZW1lbnROYW1lKTsKIH0KSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24gMjE0NDApCisrKyBXZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTgsMTIgKzE5OCw3IEBAIHB1YmxpYzoK
IAogICAgIFBhc3NSZWZQdHI8Tm9kZT4gYWRvcHROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gc291cmNl
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgCi0gICAgUGFzc1JlZlB0cjxOYW1lTm9kZUxpc3Q+IGdl
dEVsZW1lbnRzQnlOYW1lKGNvbnN0IFN0cmluZyYgZWxlbWVudE5hbWUpOwotCi0gICAgLy8gQWN0
dWFsbHkgcGFydCBvZiBKU0hUTUxEb2N1bWVudCwgYnV0IHVzZWQgZm9yIGdpdmluZyBYTUwgZG9j
dW1lbnRzIGEgd2luZG93IHRpdGxlIGFzIHdlbGwKLSAgICBTdHJpbmcgdGl0bGUoKSBjb25zdCB7
IHJldHVybiBtX3RpdGxlOyB9Ci0gICAgdm9pZCBzZXRUaXRsZShjb25zdCBTdHJpbmcmLCBFbGVt
ZW50KiB0aXRsZUVsZW1lbnQgPSAwKTsKLSAgICB2b2lkIHJlbW92ZVRpdGxlKEVsZW1lbnQqIHRp
dGxlRWxlbWVudCk7CisgICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gZ2V0RWxlbWVudHNCeU5hbWUo
Y29uc3QgU3RyaW5nJiBlbGVtZW50TmFtZSk7CiAKICAgICBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0
aW9uPiBpbWFnZXMoKTsKICAgICBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBlbWJlZHMoKTsK
QEAgLTUyOCw5ICs1MjMsMTkgQEAgcHVibGljOgogICAgIC8vIFJldHVybnMgMCBpZiB0aGlzIGlz
IHRoZSB0b3AgbGV2ZWwgZG9jdW1lbnQuCiAgICAgRWxlbWVudCogb3duZXJFbGVtZW50KCkgY29u
c3Q7CiAgICAgCisgICAgU3RyaW5nIHRpdGxlKCkgY29uc3QgeyByZXR1cm4gbV90aXRsZTsgfQor
ICAgIHZvaWQgc2V0VGl0bGUoY29uc3QgU3RyaW5nJiwgRWxlbWVudCogdGl0bGVFbGVtZW50ID0g
MCk7CisgICAgdm9pZCByZW1vdmVUaXRsZShFbGVtZW50KiB0aXRsZUVsZW1lbnQpOworCisgICAg
U3RyaW5nIGNvb2tpZSgpIGNvbnN0OworICAgIHZvaWQgc2V0Q29va2llKGNvbnN0IFN0cmluZyYp
OworCiAgICAgU3RyaW5nIHJlZmVycmVyKCkgY29uc3Q7CisKICAgICBTdHJpbmcgZG9tYWluKCkg
Y29uc3Q7Ci0gICAgdm9pZCBzZXREb21haW4oY29uc3QgU3RyaW5nJiBuZXdEb21haW4sIGJvb2wg
Zm9yY2UgPSBmYWxzZSk7IC8vIG5vdCBwYXJ0IG9mIHRoZSBET00KKyAgICB2b2lkIHNldERvbWFp
bihjb25zdCBTdHJpbmcmIG5ld0RvbWFpbiwgYm9vbCBmb3JjZSA9IGZhbHNlKTsKKworICAgIFN0
cmluZyBsYXN0TW9kaWZpZWQoKSBjb25zdDsKIAogICAgIFN0cmluZyBwb2xpY3lCYXNlVVJMKCkg
Y29uc3QgeyByZXR1cm4gbV9wb2xpY3lCYXNlVVJMOyB9CiAgICAgdm9pZCBzZXRQb2xpY3lCYXNl
VVJMKGNvbnN0IFN0cmluZyYgcykgeyBtX3BvbGljeUJhc2VVUkwgPSBzOyB9CkBAIC01NTMsNiAr
NTU4LDggQEAgcHVibGljOgogICAgIEhUTUxNYXBFbGVtZW50KiBnZXRJbWFnZU1hcChjb25zdCBT
dHJpbmcmIFVSTCkgY29uc3Q7CiAKICAgICBIVE1MRWxlbWVudCogYm9keSgpOworICAgIHZvaWQg
c2V0Qm9keShIVE1MRWxlbWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKKwogICAgIEhUTUxIZWFkRWxl
bWVudCogaGVhZCgpOwogCiAgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7CkluZGV4OiBXZWJD
b3JlL2RvbS9Eb2N1bWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQu
aWRsCShyZXZpc2lvbiAyMTQ0MCkKKysrIFdlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtMTQ0LDExICsxNDQsMjYgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBib29s
ZWFuICAgICAgICAgICAgcXVlcnlDb21tYW5kU3VwcG9ydGVkKGluIERPTVN0cmluZyBjb21tYW5k
KTsKICAgICAgICAgW0NvbnZlcnROdWxsU3RyaW5nVG89RmFsc2VdIERPTVN0cmluZyBxdWVyeUNv
bW1hbmRWYWx1ZShpbiBET01TdHJpbmcgY29tbWFuZCk7CiAKLSAgICAgICAgLy8gSUUgZXh0ZW5z
aW9ucwotCi0jaWYgIWRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpCisjaWYgZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKQorICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0N1c3RvbV0g
Y3VzdG9tIGxvY2F0aW9uOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIFVS
TDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBkb21haW47CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcmVmZXJyZXI7CisgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBET01TdHJpbmcgY29va2llOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIGxhc3RNb2RpZmllZDsKKworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgRE9N
U3RyaW5nIHRpdGxlOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgSFRNTEVsZW1lbnQgYm9k
eQorICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzIChET01FeGNlcHRpb24pOworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENvbGxlY3Rpb24gaW1hZ2VzOworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgSFRNTENvbGxlY3Rpb24gbGlua3M7CisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiBmb3JtczsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIEhUTUxDb2xsZWN0aW9uIGFuY2hvcnM7CisgICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRz
QnlOYW1lKGluIERPTVN0cmluZyBlbGVtZW50TmFtZSk7CiAjZW5kaWYKKworICAgICAgICAvLyBJ
RSBleHRlbnNpb25zCisKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0
cmluZ1RvPVVuZGVmaW5lZF0gRE9NU3RyaW5nIGNoYXJzZXQ7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1VbmRlZmluZWRdIERPTVN0cmluZyBkZWZhdWx0
Q2hhcnNldDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1Rv
PVVuZGVmaW5lZF0gRE9NU3RyaW5nIHJlYWR5U3RhdGU7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRN
TERvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNw
cAkocmV2aXNpb24gMjE0NDApCisrKyBXZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTUsNyArNTUsNiBAQAogCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1l
cy5oIgogI2luY2x1ZGUgIkNTdHJpbmcuaCIKLSNpbmNsdWRlICJDb29raWVKYXIuaCIKICNpbmNs
dWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgogI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTg0LDM4ICs4Myw2IEBAIEhUTUxEb2N1bWVudDo6fkhU
TUxEb2N1bWVudCgpCiB7CiB9CiAKLVN0cmluZyBIVE1MRG9jdW1lbnQ6Omxhc3RNb2RpZmllZCgp
IGNvbnN0Ci17Ci0gICAgU3RyaW5nIG1vZGlmaWVkSGVhZGVyOwotICAgIGlmIChGcmFtZSogZiA9
IGZyYW1lKCkpCi0gICAgICAgIGlmIChEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBm
LT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKSkKLSAgICAgICAgICAgIGRvY3VtZW50TG9hZGVy
LT5nZXRSZXNwb25zZU1vZGlmaWVkSGVhZGVyKG1vZGlmaWVkSGVhZGVyKTsKLSAgICByZXR1cm4g
bW9kaWZpZWRIZWFkZXI7Ci19Ci0KLVN0cmluZyBIVE1MRG9jdW1lbnQ6OmNvb2tpZSgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIGNvb2tpZXMoVVJMKCkpOwotfQotCi12b2lkIEhUTUxEb2N1bWVudDo6
c2V0Q29va2llKGNvbnN0IFN0cmluZyYgdmFsdWUpCi17Ci0gICAgc2V0Q29va2llcyhVUkwoKSwg
bV9wb2xpY3lCYXNlVVJMLmRlcHJlY2F0ZWRTdHJpbmcoKSwgdmFsdWUpOwotfQotCi12b2lkIEhU
TUxEb2N1bWVudDo6c2V0Qm9keShIVE1MRWxlbWVudCogbmV3Qm9keSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCi17Ci0gICAgaWYgKCFuZXdCb2R5KSB7IAotICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFV
RVNUX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBIVE1MRWxlbWVudCogYiA9IGJv
ZHkoKTsKLSAgICBpZiAoIWIpCi0gICAgICAgIGRvY3VtZW50RWxlbWVudCgpLT5hcHBlbmRDaGls
ZChuZXdCb2R5LCBlYyk7Ci0gICAgZWxzZQotICAgICAgICBkb2N1bWVudEVsZW1lbnQoKS0+cmVw
bGFjZUNoaWxkKG5ld0JvZHksIGIsIGVjKTsKLX0KLQogVG9rZW5pemVyICpIVE1MRG9jdW1lbnQ6
OmNyZWF0ZVRva2VuaXplcigpCiB7CiAgICAgcmV0dXJuIG5ldyBIVE1MVG9rZW5pemVyKHRoaXMp
OwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaHRtbC9IVE1MRG9jdW1lbnQuaAkocmV2aXNpb24gMjE0NDApCisrKyBXZWJDb3JlL2h0bWwv
SFRNTERvY3VtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDEyICszOCw2IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgYm9vbCBpc0hUTUxEb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KIAotICAgIFN0cmluZyBsYXN0TW9kaWZpZWQoKSBjb25zdDsKLSAgICBTdHJpbmcgY29va2ll
KCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRDb29raWUoY29uc3QgU3RyaW5nJik7Ci0KLSAgICB2b2lk
IHNldEJvZHkoSFRNTEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7Ci0KICAgICB2aXJ0dWFsIFRv
a2VuaXplciogY3JlYXRlVG9rZW5pemVyKCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRBbGxv
d2VkKE5vZGUqKTsK
</data>
<flag name="review"
          id="5946"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14611</attachid>
            <date>2007-05-18 11:42:49 -0700</date>
            <delta_ts>2007-05-24 14:28:33 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>13707r2_patch.txt</filename>
            <type>text/plain</type>
            <size>36618</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIxNTQ2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsNDAgQEAKKzIwMDctMDUtMTcgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzA3
CisgICAgICAgIFJFR1JFU1NJT046IEphdmFTY3JpcHQgZXhjZXB0aW9ucyBvbiBxdW90ZXMuYnVy
bnRlbGVjdHJvbnMub3JnCisKKyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJh
c2VFbGVtZW50MDEtZXhwZWN0ZWQuY2hlY2tzdW06IFJlbW92ZWQuCisgICAgICAgICogZG9tL3ho
dG1sL2xldmVsMi9odG1sL0hUTUxCYXNlRWxlbWVudDAxLWV4cGVjdGVkLnBuZzogUmVtb3ZlZC4K
KyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDEtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQw
MS54aHRtbDoKKyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50
MDItZXhwZWN0ZWQuY2hlY2tzdW06IFJlbW92ZWQuCisgICAgICAgICogZG9tL3hodG1sL2xldmVs
Mi9odG1sL0hUTUxCYXNlRWxlbWVudDAyLWV4cGVjdGVkLnBuZzogUmVtb3ZlZC4KKyAgICAgICAg
KiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDItZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMi54aHRtbDoK
KyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MDctZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQw
OC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCb2R5
RWxlbWVudDA5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwv
SFRNTEJvZHlFbGVtZW50MTAtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGRvbS94aHRtbC9sZXZl
bDIvaHRtbC9IVE1MQm9keUVsZW1lbnQxMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZG9tL3ho
dG1sL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDEyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDEtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQwMi1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDAzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDUtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQw
Ny1leHBlY3RlZC50eHQ6CisgICAgICAgICogZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1
bWVudDA5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRN
TERvY3VtZW50MTAtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRt
bC9IVE1MRG9jdW1lbnQxMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZG9tL3hodG1sL2xldmVs
Mi9odG1sL0hUTUxEb2N1bWVudDEyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBkb20veGh0bWwv
bGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MTMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGRvbS94
aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQxNC1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZG9tL3hodG1sL2xldmVsMi9odG1sL2RvYzAxLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgVGhlc2Ug
bm93IHBhc3MuIENoYW5nZWQgSFRNTEJhc2VFbGVtZW50KiB0byBkdW1wIGFzIHRleHQuCisKKyAg
ICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZGlmZnMudHh0OiBBZGRl
ZCBEb2N1bWVudC5wcm90b3R5cGUuZ2V0RWxlbWVudHNCeU5hbWUKKwogMjAwNy0wNS0xNyAgU2Ft
IFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0uCklu
ZGV4OiBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDEt
ZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMi9odG1sL0hUTUxCYXNlRWxlbWVudDAxLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAy
MTU0NikKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1l
bnQwMS1leHBlY3RlZC5jaGVja3N1bQkod29ya2luZyBjb3B5KQpAQCAtMSArMCwwIEBACi1jYmE2
ZWYwOTdkMTJhMzE0MmEwMzhmYTJhMWM5ZGYzMwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
SW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQw
MS1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMg
YSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdlL3BuZwpJbmRleDogTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCYXNlRWxlbWVudDAxLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VF
bGVtZW50MDEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTU0NikKKysrIExheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMS1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTEsOSArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTg3OiBVbmRl
ZmluZWQgdmFsdWUKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0
ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NTAKLSAgUmVuZGVy
QmxvY2sge2h0bWx9IGF0ICgwLDApIHNpemUgODAweDUwCi0gICAgUmVuZGVyQm9keSB7Ym9keX0g
YXQgKDgsMTYpIHNpemUgNzg0eDE4Ci0gICAgICBSZW5kZXJCbG9jayB7cH0gYXQgKDAsMCkgc2l6
ZSA3ODR4MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNjl4MTgK
LSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA2OTogIlNvbWUgVGV4dCIKK1Rlc3QJ
aHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDIvaHRtbC9IVE1MQmFz
ZUVsZW1lbnQwMQorU3RhdHVzCVN1Y2Nlc3MKKwpJbmRleDogTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMi9odG1sL0hUTUxCYXNlRWxlbWVudDAxLnhodG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMS54aHRtbAkocmV2
aXNpb24gMjE1NDYpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJh
c2VFbGVtZW50MDEueGh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE3LDYgKzE3LDE1IEBAIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSAKIFsxXSBodHRwOi8vd3d3LnczLm9y
Zy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCiAqLwog
CisgIC8vCisgIC8vICBXZWJLaXQgbW9kaWZpY2F0aW9uOiAxMy1NYXktMjAwNworICAvLworICAv
LyAgSW5mb3JtIHRoZSB0ZXN0IGNvbnRyb2xsZXIgdGhhdCB0aGlzIHRlc3QgaGFzIGEgdGV4dC1m
b3JtYXQgcmVzdWx0IGFuZCBzbyBzaG91bGQKKyAgLy8gIGJlIGR1bXBlZCBhcyB0ZXh0LgorICAv
LworICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKwogICBmdW5jdGlvbiBhc3NlcnRTaXplKGRlc2NyLCBleHBl
Y3RlZCwgYWN0dWFsKSB7CiAgICAgdmFyIGFjdHVhbFNpemU7CiAgICAgYXNzZXJ0Tm90TnVsbChk
ZXNjciwgYWN0dWFsKTsKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9I
VE1MQmFzZUVsZW1lbnQwMi1leHBlY3RlZC5jaGVja3N1bQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDItZXhwZWN0ZWQuY2hl
Y2tzdW0JKHJldmlzaW9uIDIxNTQ2KQorKysgTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9o
dG1sL0hUTUxCYXNlRWxlbWVudDAyLWV4cGVjdGVkLmNoZWNrc3VtCSh3b3JraW5nIGNvcHkpCkBA
IC0xICswLDAgQEAKLTYwZTE3NzI2ODdjYTk4NTA3MzgwNzVkOWU2YjFkNWJiClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1s
L0hUTUxCYXNlRWxlbWVudDAyLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5
OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5n
CkluZGV4OiBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50
MDItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIxNTQ2KQor
KysgTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCYXNlRWxlbWVudDAyLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxOSArMSwzIEBACi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgNTg3OiBVbmRlZmluZWQgdmFsdWUKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAotICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCi0gIFJlbmRlckJsb2NrIHtodG1sfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAg
ICBSZW5kZXJGcmFtZVNldCB7ZnJhbWVzZXR9IGF0ICgwLDApIHNpemUgODAweDYwMAotICAgICAg
UmVuZGVyRnJhbWVTZXQge2ZyYW1lc2V0fSBhdCAoMCwwKSBzaXplIDE1OHg2MDAKLSAgICAgICAg
UmVuZGVyRnJhbWUge2ZyYW1lfSBhdCAoMCwwKSBzaXplIDE1OHgxOTgKLSAgICAgICAgICBsYXll
ciBhdCAoMCwwKSBzaXplIDE1OHgxOTgKLSAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkg
c2l6ZSAxNTh4MTk4Ci0gICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTh4MTAKLSAgICAg
ICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1OHgxMAotICAgICAgICAg
ICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoNSwxMCkgc2l6ZSAxNDh4MAotICAgICAgUmVuZGVy
RnJhbWUge2ZyYW1lfSBhdCAoMTY0LDApIHNpemUgNjM2eDYwMAotICAgICAgICBsYXllciBhdCAo
MCwwKSBzaXplIDYzNng2MDAKLSAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNjM2
eDYwMAotICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDYzNng4Ci0gICAgICAgICAgUmVuZGVy
QmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgNjM2eDgKLSAgICAgICAgICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDgpIHNpemUgNjIweDAKK1Rlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMgorU3RhdHVzCVN1Y2Nl
c3MKKwpJbmRleDogTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCYXNlRWxl
bWVudDAyLnhodG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIv
aHRtbC9IVE1MQmFzZUVsZW1lbnQwMi54aHRtbAkocmV2aXNpb24gMjE1NDYpCisrKyBMYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDIueGh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTE3LDYgKzE3LDE1IEBAIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI
QU5UQUJJTElUWSAKIFsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIv
Y29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCiAqLwogCisgIC8vCisgIC8vICBXZWJLaXQgbW9k
aWZpY2F0aW9uOiAxMy1NYXktMjAwNworICAvLworICAvLyAgSW5mb3JtIHRoZSB0ZXN0IGNvbnRy
b2xsZXIgdGhhdCB0aGlzIHRlc3QgaGFzIGEgdGV4dC1mb3JtYXQgcmVzdWx0IGFuZCBzbyBzaG91
bGQKKyAgLy8gIGJlIGR1bXBlZCBhcyB0ZXh0LgorICAvLworICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKwog
ICBmdW5jdGlvbiBhc3NlcnRTaXplKGRlc2NyLCBleHBlY3RlZCwgYWN0dWFsKSB7CiAgICAgdmFy
IGFjdHVhbFNpemU7CiAgICAgYXNzZXJ0Tm90TnVsbChkZXNjciwgYWN0dWFsKTsKSW5kZXg6IExh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQwNy1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hU
TUxCb2R5RWxlbWVudDA3LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE1NDYpCisrKyBMYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MDctZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMyBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDA3Ci1TdGF0dXMJ
ZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBVbmRlZmluZWQgdmFsdWUKK1N0YXR1cwlTdWNjZXNz
CiAKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1l
bnQwOC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDA4LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE1NDYp
CisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MDgt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMyBAQAogVGVzdAlodHRwOi8v
d3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVu
dDA4Ci1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBVbmRlZmluZWQgdmFsdWUKK1N0
YXR1cwlTdWNjZXNzCiAKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9I
VE1MQm9keUVsZW1lbnQwOS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDA5LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMjE1NDYpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJv
ZHlFbGVtZW50MDktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMyBAQAog
VGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hU
TUxCb2R5RWxlbWVudDA5Ci1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBVbmRlZmlu
ZWQgdmFsdWUKK1N0YXR1cwlTdWNjZXNzCiAKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQxMC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDEwLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMjE1NDYpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwy
L2h0bWwvSFRNTEJvZHlFbGVtZW50MTAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
LDQgKzEsMyBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDEwCi1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVy
cm9yOiBVbmRlZmluZWQgdmFsdWUKK1N0YXR1cwlTdWNjZXNzCiAKSW5kZXg6IExheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQxMS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCb2R5RWxl
bWVudDExLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE1NDYpCisrKyBMYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MTEtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xLDQgKzEsMyBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1U
ZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDExCi1TdGF0dXMJZXJyb3IKLU1l
c3NhZ2UJVHlwZUVycm9yOiBVbmRlZmluZWQgdmFsdWUKK1N0YXR1cwlTdWNjZXNzCiAKSW5kZXg6
IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQxMi1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1s
L0hUTUxCb2R5RWxlbWVudDEyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE1NDYpCisrKyBMYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MTItZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMyBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9y
Zy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDEyCi1TdGF0
dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBVbmRlZmluZWQgdmFsdWUKK1N0YXR1cwlTdWNj
ZXNzCiAKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1l
bnQwMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMi9odG1sL0hUTUxEb2N1bWVudDAxLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE1NDYpCisr
KyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDEtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMyBAQAogVGVzdAlodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDAxCi1TdGF0
dXMJZmFpbHVyZQotTWVzc2FnZQl0aXRsZUxpbms6IGFzc2VydEVxdWFscyBmYWlsZWQsIGFjdHVh
bCBudWxsLCBleHBlY3RlZCBOSVNUIERPTSBIVE1MIFRlc3QgLSBET0NVTUVOVC4KK1N0YXR1cwlT
dWNjZXNzCiAKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9j
dW1lbnQwMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDAyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE1NDYp
CisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDItZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMyBAQAogVGVzdAlodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDAyCi1T
dGF0dXMJZmFpbHVyZQotTWVzc2FnZQlyZWZlcnJlckxpbms6IGFzc2VydEVxdWFscyBmYWlsZWQs
IGFjdHVhbCBudWxsLCBleHBlY3RlZCAuCitTdGF0dXMJU3VjY2VzcwogCkluZGV4OiBMYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDMtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1l
bnQwMy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIxNTQ2KQorKysgTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDAzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMSw0ICsxLDMgQEAKIFRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1T
dWl0ZS9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQwMwotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJ
ZG9tYWluTGluazogYXNzZXJ0RXF1YWxzIGZhaWxlZCwgYWN0dWFsIG51bGwsIGV4cGVjdGVkIC4K
K1N0YXR1cwlTdWNjZXNzCiAKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRt
bC9IVE1MRG9jdW1lbnQwNS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDA1LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMjE1NDYpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3Vt
ZW50MDUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMyBAQAogVGVzdAlo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxEb2N1
bWVudDA1Ci1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBVbmRlZmluZWQgdmFsdWUK
K1N0YXR1cwlTdWNjZXNzCiAKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRt
bC9IVE1MRG9jdW1lbnQwNy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDA3LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMjE1NDYpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3Vt
ZW50MDctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMyBAQAogVGVzdAlo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxEb2N1
bWVudDA3Ci1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBVbmRlZmluZWQgdmFsdWUK
K1N0YXR1cwlTdWNjZXNzCiAKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRt
bC9IVE1MRG9jdW1lbnQwOS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDA5LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMjE1NDYpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3Vt
ZW50MDktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMyBAQAogVGVzdAlo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxEb2N1
bWVudDA5Ci1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBVbmRlZmluZWQgdmFsdWUK
K1N0YXR1cwlTdWNjZXNzCiAKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRt
bC9IVE1MRG9jdW1lbnQxMC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDEwLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMjE1NDYpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3Vt
ZW50MTAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMyBAQAogVGVzdAlo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxEb2N1
bWVudDEwCi1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBVbmRlZmluZWQgdmFsdWUK
K1N0YXR1cwlTdWNjZXNzCiAKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRt
bC9IVE1MRG9jdW1lbnQxMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDExLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMjE1NDYpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3Vt
ZW50MTEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMyBAQAogVGVzdAlo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxEb2N1
bWVudDExCi1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBVbmRlZmluZWQgdmFsdWUK
K1N0YXR1cwlTdWNjZXNzCiAKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRt
bC9IVE1MRG9jdW1lbnQxMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDEyLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMjE1NDYpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3Vt
ZW50MTItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMyBAQAogVGVzdAlo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxEb2N1
bWVudDEyCi1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQljb29raWVMaW5rOiBhc3NlcnRFcXVhbHMg
ZmFpbGVkLCBhY3R1YWwgbnVsbCwgZXhwZWN0ZWQgLgorU3RhdHVzCVN1Y2Nlc3MKIApJbmRleDog
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDEzLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRN
TERvY3VtZW50MTMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTU0NikKKysrIExheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQxMy1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTEsNCArMSwzIEBACiBUZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9N
LVRlc3QtU3VpdGUvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MTMKLVN0YXR1cwllcnJvcgotTWVz
c2FnZQlUeXBlRXJyb3I6IFZhbHVlIHVuZGVmaW5lZCAocmVzdWx0IG9mIGV4cHJlc3Npb24gZG9j
LmdldEVsZW1lbnRzQnlOYW1lKSBpcyBub3Qgb2JqZWN0LgorU3RhdHVzCVN1Y2Nlc3MKIApJbmRl
eDogTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDE0LWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwv
SFRNTERvY3VtZW50MTQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTU0NikKKysrIExheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQxNC1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTEsNCArMSwzIEBACiBUZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEv
RE9NLVRlc3QtU3VpdGUvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MTQKLVN0YXR1cwllcnJvcgot
TWVzc2FnZQlUeXBlRXJyb3I6IFZhbHVlIHVuZGVmaW5lZCAocmVzdWx0IG9mIGV4cHJlc3Npb24g
ZG9jLmdldEVsZW1lbnRzQnlOYW1lKSBpcyBub3Qgb2JqZWN0LgorU3RhdHVzCVN1Y2Nlc3MKIApJ
bmRleDogTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL2RvYzAxLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvZG9jMDEt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTU0NikKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDIvaHRtbC9kb2MwMS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSwz
IEBACiBUZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwyL2h0
bWwvZG9jMDEKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCXRpdGxlTGluazogYXNzZXJ0RXF1YWxz
IGZhaWxlZCwgYWN0dWFsIG51bGwsIGV4cGVjdGVkIE5JU1QgRE9NIEhUTUwgVGVzdCAtIEFuY2hv
ci4KK1N0YXR1cwlTdWNjZXNzCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93
aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MjE1NDYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yNTgsNiArMjU4LDcgQEAgd2luZG93LkRv
Y3VtZW50LnByb3RvdHlwZS5lbGVtZW50RnJvbVBvaQogd2luZG93LkRvY3VtZW50LnByb3RvdHlw
ZS5ldmFsdWF0ZSBbZnVuY3Rpb25dCiB3aW5kb3cuRG9jdW1lbnQucHJvdG90eXBlLmV4ZWNDb21t
YW5kIFtmdW5jdGlvbl0KIHdpbmRvdy5Eb2N1bWVudC5wcm90b3R5cGUuZ2V0RWxlbWVudEJ5SWQg
W2Z1bmN0aW9uXQord2luZG93LkRvY3VtZW50LnByb3RvdHlwZS5nZXRFbGVtZW50c0J5TmFtZSBb
ZnVuY3Rpb25dCiB3aW5kb3cuRG9jdW1lbnQucHJvdG90eXBlLmdldEVsZW1lbnRzQnlUYWdOYW1l
IFtmdW5jdGlvbl0KIHdpbmRvdy5Eb2N1bWVudC5wcm90b3R5cGUuZ2V0RWxlbWVudHNCeVRhZ05h
bWVOUyBbZnVuY3Rpb25dCiB3aW5kb3cuRG9jdW1lbnQucHJvdG90eXBlLmdldE92ZXJyaWRlU3R5
bGUgW2Z1bmN0aW9uXQpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNTcwKQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSw1NSBAQAorMjAwNy0wNS0xOCAgQWxleGV5IFByb3NrdXJ5
YWtvdiAgPGFwQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3
MDcKKyAgICAgICAgUkVHUkVTU0lPTjogSmF2YVNjcmlwdCBleGNlcHRpb25zIG9uIHF1b3Rlcy5i
dXJudGVsZWN0cm9ucy5vcmcKKworICAgICAgICBNb3ZlZCBhIGJ1bmNoIG9mIG1ldGhvZHMgYW5k
IHByb3BlcnRpZXMgb3V0IGZyb20ga2pzX2h0bWwgdG8gbWFrZSB0aGVtIGF2YWlsYWJsZSBmb3Ig
YWxsIGRvY3VtZW50cy4KKyAgICAgICAgV2hhdCBJIGtlcHQgaW4ga2pzX2h0bWw6CisgICAgICAg
IC0gc29tZSBtZXRob2RzIGFuZCBwcm9wZXJ0aWVzIHRoYXQgYXJlIG5vdCBpbiBIVE1MNSAoeWV0
Pyk7CisgICAgICAgIC0gb3Blbi93cml0ZS93cml0ZWxuL2Nsb3NlLCBhcyB0aGV5IHdpbGwgbmVl
ZCB0byBiZSBtb2RpZmllZCB0byB3b3JrIG9uIFhNTCBkb2N1bWVudHMsIGFuZCBhcmVuJ3QKKyAg
ICAgICAgb2YgbXVjaCB1c2UgZm9yIHRob3NlIGFueXdheTsKKyAgICAgICAgLSBkZXNpZ25Nb2Rl
LCBiZWNhdXNlIGl0cyBkZWZpbml0aW9uIGluIEhUTUw1IGlzIGluY29tcGF0aWJsZSB3aXRoIG91
ciBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgor
CisgICAgICAgICogYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU0RvY3VtZW50Ojpsb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpKU0RvY3Vt
ZW50OjpzZXRMb2NhdGlvbik6CisgICAgICAgIE1vdmVkIGZyb20ga2pzX2h0bWwuY3BwLiBUaGVz
ZSBtZXRob2RzIGNhbm5vdCBiZSBhdXRvZ2VuZXJhdGVkLCBiZWNhdXNlIHRoZSBpbXBsZW1lbnRh
dGlvbiBuZWVkcworICAgICAgICB0byBhY2Nlc3MgRXhlY1N0YXRlLgorCisgICAgICAgICogZG9t
L0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpjb29raWUpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldENvb2tpZSk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6bGFzdE1vZGlmaWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRC
b2R5KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpnZXRFbGVtZW50c0J5TmFtZSk6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGl0
bGUpOgorICAgICAgICAqIGh0bWwvSFRNTERvY3VtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hU
TUxEb2N1bWVudC5oOgorICAgICAgICBNb3ZlZCBjb2RlOyBjaGFuZ2VkIHRoZSByZXR1cm4gdmFs
dWUgb2YgZ2V0RWxlbWVudHNCeU5hbWUoKSB0byBQYXNzUmVmUHRyPE5vZGVMaXN0PiwgYmVjYXVz
ZQorICAgICAgICBOYW1lTm9kZUxpc3QgaXMgcmVhbGx5IGFuIGltcGxlbWVudGF0aW9uIGRldGFp
bC4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5pZGw6IEFkZGl0aW9ucyBtb3N0bHkgbWF0Y2gg
SFRNTDUgSFRNTERvY3VtZW50IGludGVyZmFjZSwgZXhjZXB0IGZvcgorICAgICAgICBsb2NhdGlv
biwgd2hpY2ggaXMgcmVhZC1vbmx5IGluIEhUTUw1LCBhbmQgbGFzdE1vZGlmaWVkLCB3aGljaCBp
cyBub3QgcHJlc2VudCB0aGVyZS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL2tqc19odG1sLmNw
cDoKKyAgICAgICAgKEtKUzo6SlNIVE1MRG9jdW1lbnRQcm90b3R5cGVGdW5jdGlvbjo6Y2FsbEFz
RnVuY3Rpb24pOgorICAgICAgICAoS0pTOjpKU0hUTUxEb2N1bWVudDo6Z2V0VmFsdWVQcm9wZXJ0
eSk6CisgICAgICAgIChLSlM6OkpTSFRNTERvY3VtZW50OjpwdXRWYWx1ZVByb3BlcnR5KToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9ranNfaHRtbC5oOgorICAgICAgICAoS0pTOjpKU0hUTUxEb2N1
bWVudDo6KToKKyAgICAgICAgTW92ZWQgY29kZSBvdXQgb2YgaGVyZS4KKworICAgICAgICAqIHBh
Z2UvRnJhbWUuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lOjpkb2N1bWVudExvYWRlcik6IEVuY2Fwc3VsYXRlZCAiZnJhbWUtPmxvYWRlcigpLT5k
b2N1bWVudExvYWRlcigpIiBpZGlvbSwKKyAgICAgICAgd2hpY2ggaXMgZGFuZ2Vyb3VzIGJlY2F1
c2UgdGhhdCBjb3VsZCBiZSB0aGUgbG9hZGVyIGZvciB0aGUgcHJldmlvdXMgb3IgbmV4dCBkb2N1
bWVudCBpbiB0aGlzCisgICAgICAgIGZyYW1lIHJhdGhlciB0aGFuIHRoZSBjdXJyZW50IG9uZS4g
SGF2aW5nIGl0IGluIG9uZSBwbGFjZSB3aWxsIG1ha2UgZml4aW5nIGl0IGVhc2llci4KKwogMjAw
Ny0wNS0xOCAgTWFyaXVzIEJ1Z2dlIE1vbnNlbiA8bWJtQHRyb2xsdGVjaC5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgWmFjayBSdXNpbi4gCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RG9jdW1lbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNE
b2N1bWVudEN1c3RvbS5jcHAJKHJldmlzaW9uIDIxNTQ2KQorKysgV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RvY3VtZW50Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsMTIgQEAK
ICNpbmNsdWRlICJKU0RvY3VtZW50LmgiCiAKICNpbmNsdWRlICJranNfYmluZGluZy5oIgorI2lu
Y2x1ZGUgImtqc193aW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZy
YW1lLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKwordXNpbmcgbmFtZXNwYWNlIEtKUzsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zMCw2ICszNSwzNCBAQCB2b2lkIEpTRG9jdW1l
bnQ6Om1hcmsoKQogICAgIERPTU9iamVjdDo6bWFyaygpOwogICAgIEtKUzo6U2NyaXB0SW50ZXJw
cmV0ZXI6Om1hcmtET01Ob2Rlc0ZvckRvY3VtZW50KHN0YXRpY19jYXN0PERvY3VtZW50Kj4oaW1w
bCgpKSk7CiB9Ci0gICAgCisKK0pTVmFsdWUqIEpTRG9jdW1lbnQ6OmxvY2F0aW9uKEV4ZWNTdGF0
ZSogZXhlYykgY29uc3QKK3sKKyAgICBGcmFtZSogZnJhbWUgPSBzdGF0aWNfY2FzdDxEb2N1bWVu
dCo+KGltcGwoKSktPmZyYW1lKCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIGpz
TnVsbCgpOworICAgIGlmIChXaW5kb3cqIHdpbiA9IFdpbmRvdzo6cmV0cmlldmVXaW5kb3coZnJh
bWUpKQorICAgICAgICByZXR1cm4gd2luLT5sb2NhdGlvbigpOworICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOworfQorCit2b2lkIEpTRG9jdW1lbnQ6OnNldExvY2F0aW9uKEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSogdmFsdWUpCit7CisgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHN0YXRpY19jYXN0
PERvY3VtZW50Kj4oaW1wbCgpKS0+ZnJhbWUoKSkgeworICAgICAgICBTdHJpbmcgc3RyID0gdmFs
dWUtPnRvU3RyaW5nKGV4ZWMpOworCisgICAgICAgIC8vIFdoZW4gYXNzaWduaW5nIGxvY2F0aW9u
LCBJRSBhbmQgTW96aWxsYSBib3RoIHJlc29sdmUgdGhlIFVSTAorICAgICAgICAvLyByZWxhdGl2
ZSB0byB0aGUgZnJhbWUgd2hlcmUgdGhlIEphdmFTY3JpcHQgaXMgZXhlY3V0aW5nIG5vdAorICAg
ICAgICAvLyB0aGUgdGFyZ2V0IGZyYW1lLgorICAgICAgICBGcmFtZSogYWN0aXZlRnJhbWUgPSBz
dGF0aWNfY2FzdDxTY3JpcHRJbnRlcnByZXRlcio+KGV4ZWMtPmR5bmFtaWNJbnRlcnByZXRlcigp
KS0+ZnJhbWUoKTsKKyAgICAgICAgaWYgKGFjdGl2ZUZyYW1lKQorICAgICAgICAgICAgc3RyID0g
YWN0aXZlRnJhbWUtPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHN0cik7CisKKyAgICAgICAgLy8g
V2Ugd2FudCBhIG5ldyBoaXN0b3J5IGl0ZW0gaWYgdGhpcyBKUyB3YXMgY2FsbGVkIHZpYSBhIHVz
ZXIgZ2VzdHVyZQorICAgICAgICBib29sIHVzZXJHZXN0dXJlID0gc3RhdGljX2Nhc3Q8U2NyaXB0
SW50ZXJwcmV0ZXIqPihleGVjLT5keW5hbWljSW50ZXJwcmV0ZXIoKSktPndhc1J1bkJ5VXNlckdl
c3R1cmUoKTsKKyAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5zY2hlZHVsZUxvY2F0aW9uQ2hhbmdl
KHN0ciwgYWN0aXZlRnJhbWUtPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCksICF1c2VyR2Vz
dHVyZSk7CisgICAgfQorfQorCiB9CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2h0
bWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2h0bWwuY3BwCShy
ZXZpc2lvbiAyMTU0NikKKysrIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2h0bWwuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC04NCw3ICs4NCw2IEBAIG9wZW4gICAgICAgICAgICAgICAgICBKU0hUTUxE
b2N1bWVudDo6T3AKIGNsb3NlICAgICAgICAgICAgICAgICBKU0hUTUxEb2N1bWVudDo6Q2xvc2Ug
ICAgICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCiB3cml0ZSAgICAgICAgICAgICAgICAg
SlNIVE1MRG9jdW1lbnQ6OldyaXRlICAgICAgICAgICAgIERvbnREZWxldGV8RnVuY3Rpb24gMQog
d3JpdGVsbiAgICAgICAgICAgICAgIEpTSFRNTERvY3VtZW50OjpXcml0ZUxuICAgICAgICAgICBE
b250RGVsZXRlfEZ1bmN0aW9uIDEKLWdldEVsZW1lbnRzQnlOYW1lICAgICBKU0hUTUxEb2N1bWVu
dDo6R2V0RWxlbWVudHNCeU5hbWUgRG9udERlbGV0ZXxGdW5jdGlvbiAxCiBjYXB0dXJlRXZlbnRz
ICAgICAgICAgSlNIVE1MRG9jdW1lbnQ6OkNhcHR1cmVFdmVudHMgICAgIERvbnREZWxldGV8RnVu
Y3Rpb24gMAogcmVsZWFzZUV2ZW50cyAgICAgICAgIEpTSFRNTERvY3VtZW50OjpSZWxlYXNlRXZl
bnRzICAgICBEb250RGVsZXRlfEZ1bmN0aW9uIDAKIEBlbmQKQEAgLTEzNSw4ICsxMzQsNiBAQCBK
U1ZhbHVlICpKU0hUTUxEb2N1bWVudFByb3RvdHlwZUZ1bmN0aW9uCiAgICAgICAgICAgICBkb2Mu
d3JpdGUoc3RyKTsKICAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgICAgICB9
Ci0gICAgICAgIGNhc2UgSlNIVE1MRG9jdW1lbnQ6OkdldEVsZW1lbnRzQnlOYW1lOgotICAgICAg
ICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZG9jLmdldEVsZW1lbnRzQnlOYW1lKGFyZ3NbMF0tPnRv
U3RyaW5nKGV4ZWMpKS5nZXQoKSk7CiAgICAgICAgIGNhc2UgSlNIVE1MRG9jdW1lbnQ6OkNhcHR1
cmVFdmVudHM6CiAgICAgICAgIGNhc2UgSlNIVE1MRG9jdW1lbnQ6OlJlbGVhc2VFdmVudHM6CiAg
ICAgICAgICAgICAvLyBEbyBub3RoaW5nIGZvciBub3cuIFRoZXNlIGFyZSBOUy1zcGVjaWZpYyBs
ZWdhY3kgY2FsbHMuCkBAIC0xNTIsMTkgKzE0OSw5IEBAIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxE
b2N1bWVudDo6aW5mbyA9CiAgIHsgIkRPTUhUTUxEb2N1bWVudCIsICZKU0RvY3VtZW50OjppbmZv
LCAmSFRNTERvY3VtZW50VGFibGUsIDAgfTsKIC8qIFNvdXJjZSBmb3IgSFRNTERvY3VtZW50VGFi
bGUuIFVzZSAibWFrZSBoYXNodGFibGVzIiB0byByZWdlbmVyYXRlLgogQGJlZ2luIEhUTUxEb2N1
bWVudFRhYmxlIDMwCi0gIHRpdGxlICAgICAgICAgICAgICAgICBKU0hUTUxEb2N1bWVudDo6VGl0
bGUgICAgICAgICAgICAgRG9udERlbGV0ZQotICByZWZlcnJlciAgICAgICAgICAgICAgSlNIVE1M
RG9jdW1lbnQ6OlJlZmVycmVyICAgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgZG9tYWlu
ICAgICAgICAgICAgICAgIEpTSFRNTERvY3VtZW50OjpEb21haW4gICAgICAgICAgICBEb250RGVs
ZXRlCi0gIGJvZHkgICAgICAgICAgICAgICAgICBKU0hUTUxEb2N1bWVudDo6Qm9keSAgICAgICAg
ICAgICAgRG9udERlbGV0ZQotICBsb2NhdGlvbiAgICAgICAgICAgICAgSlNIVE1MRG9jdW1lbnQ6
OkxvY2F0aW9uICAgICAgICAgIERvbnREZWxldGUKLSAgY29va2llICAgICAgICAgICAgICAgIEpT
SFRNTERvY3VtZW50OjpDb29raWUgICAgICAgICAgICBEb250RGVsZXRlCi0gIGltYWdlcyAgICAg
ICAgICAgICAgICBKU0hUTUxEb2N1bWVudDo6SW1hZ2VzICAgICAgICAgICAgRG9udERlbGV0ZXxS
ZWFkT25seQogICBlbWJlZHMgICAgICAgICAgICAgICAgSlNIVE1MRG9jdW1lbnQ6OkVtYmVkcyAg
ICAgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKICAgcGx1Z2lucyAgICAgICAgICAgICAgIEpT
SFRNTERvY3VtZW50OjpFbWJlZHMgICAgICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5CiAgIGFw
cGxldHMgICAgICAgICAgICAgICBKU0hUTUxEb2N1bWVudDo6QXBwbGV0cyAgICAgICAgICAgRG9u
dERlbGV0ZXxSZWFkT25seQotICBsaW5rcyAgICAgICAgICAgICAgICAgSlNIVE1MRG9jdW1lbnQ6
OkxpbmtzICAgICAgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgZm9ybXMgICAgICAgICAg
ICAgICAgIEpTSFRNTERvY3VtZW50OjpGb3JtcyAgICAgICAgICAgICBEb250RGVsZXRlfFJlYWRP
bmx5Ci0gIGFuY2hvcnMgICAgICAgICAgICAgICBKU0hUTUxEb2N1bWVudDo6QW5jaG9ycyAgICAg
ICAgICAgRG9udERlbGV0ZXxSZWFkT25seQogICBzY3JpcHRzICAgICAgICAgICAgICAgSlNIVE1M
RG9jdW1lbnQ6OlNjcmlwdHMgICAgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKICAgYWxsICAg
ICAgICAgICAgICAgICAgIEpTSFRNTERvY3VtZW50OjpBbGwgICAgICAgICAgICAgICAKICAgYmdD
b2xvciAgICAgICAgICAgICAgIEpTSFRNTERvY3VtZW50OjpCZ0NvbG9yICAgICAgICAgICBEb250
RGVsZXRlCkBAIC0xNzIsNyArMTU5LDYgQEAgY29uc3QgQ2xhc3NJbmZvIEpTSFRNTERvY3VtZW50
OjppbmZvID0KICAgYWxpbmtDb2xvciAgICAgICAgICAgIEpTSFRNTERvY3VtZW50OjpBbGlua0Nv
bG9yICAgICAgICBEb250RGVsZXRlCiAgIGxpbmtDb2xvciAgICAgICAgICAgICBKU0hUTUxEb2N1
bWVudDo6TGlua0NvbG9yICAgICAgICAgRG9udERlbGV0ZQogICB2bGlua0NvbG9yICAgICAgICAg
ICAgSlNIVE1MRG9jdW1lbnQ6OlZsaW5rQ29sb3IgICAgICAgIERvbnREZWxldGUKLSAgbGFzdE1v
ZGlmaWVkICAgICAgICAgIEpTSFRNTERvY3VtZW50OjpMYXN0TW9kaWZpZWQgICAgICBEb250RGVs
ZXRlfFJlYWRPbmx5CiAgIGhlaWdodCAgICAgICAgICAgICAgICBKU0hUTUxEb2N1bWVudDo6SGVp
Z2h0ICAgICAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQogICB3aWR0aCAgICAgICAgICAgICAg
ICAgSlNIVE1MRG9jdW1lbnQ6OldpZHRoICAgICAgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkK
ICAgZGlyICAgICAgICAgICAgICAgICAgIEpTSFRNTERvY3VtZW50OjpEaXIgICAgICAgICAgICAg
ICBEb250RGVsZXRlCkBAIC0yMTgsNDAgKzIwNCwxNSBAQCBKU1ZhbHVlICpKU0hUTUxEb2N1bWVu
dDo6Z2V0VmFsdWVQcm9wZXJ0CiAgIEhUTUxEb2N1bWVudCYgZG9jID0gKnN0YXRpY19jYXN0PEhU
TUxEb2N1bWVudCo+KGltcGwoKSk7CiAKICAgRnJhbWVWaWV3KiB2aWV3ID0gZG9jLnZpZXcoKTsK
LSAgRnJhbWUqIGZyYW1lID0gZG9jLmZyYW1lKCk7CiAKICAgSFRNTEVsZW1lbnQqIGJvZHkgPSBk
b2MuYm9keSgpOwogICBIVE1MQm9keUVsZW1lbnQqIGJvZHlFbGVtZW50ID0gKGJvZHkgJiYgYm9k
eS0+aGFzVGFnTmFtZShib2R5VGFnKSkgPyBzdGF0aWNfY2FzdDxIVE1MQm9keUVsZW1lbnQqPihi
b2R5KSA6IDA7CiAgICAgCiAgIHN3aXRjaCAodG9rZW4pIHsKLSAgY2FzZSBUaXRsZToKLSAgICBy
ZXR1cm4ganNTdHJpbmcoZG9jLnRpdGxlKCkpOwotICBjYXNlIFJlZmVycmVyOgotICAgIHJldHVy
biBqc1N0cmluZyhkb2MucmVmZXJyZXIoKSk7Ci0gIGNhc2UgRG9tYWluOgotICAgIHJldHVybiBq
c1N0cmluZyhkb2MuZG9tYWluKCkpOwotICBjYXNlIEJvZHk6Ci0gICAgcmV0dXJuIHRvSlMoZXhl
YywgYm9keSk7Ci0gIGNhc2UgTG9jYXRpb246Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgIHJldHVy
biBqc051bGwoKTsKLSAgICBpZiAoV2luZG93KiB3aW4gPSBXaW5kb3c6OnJldHJpZXZlV2luZG93
KGZyYW1lKSkKLSAgICAgIHJldHVybiB3aW4tPmxvY2F0aW9uKCk7Ci0gICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7Ci0gIGNhc2UgQ29va2llOgotICAgIHJldHVybiBqc1N0cmluZyhkb2MuY29va2ll
KCkpOwotICBjYXNlIEltYWdlczoKLSAgICByZXR1cm4gZ2V0SFRNTENvbGxlY3Rpb24oZXhlYywg
ZG9jLmltYWdlcygpLmdldCgpKTsKICAgY2FzZSBFbWJlZHM6CiAgICAgcmV0dXJuIGdldEhUTUxD
b2xsZWN0aW9uKGV4ZWMsIGRvYy5lbWJlZHMoKS5nZXQoKSk7CiAgIGNhc2UgQXBwbGV0czoKICAg
ICByZXR1cm4gZ2V0SFRNTENvbGxlY3Rpb24oZXhlYywgZG9jLmFwcGxldHMoKS5nZXQoKSk7Ci0g
IGNhc2UgTGlua3M6Ci0gICAgcmV0dXJuIGdldEhUTUxDb2xsZWN0aW9uKGV4ZWMsIGRvYy5saW5r
cygpLmdldCgpKTsKLSAgY2FzZSBGb3JtczoKLSAgICByZXR1cm4gZ2V0SFRNTENvbGxlY3Rpb24o
ZXhlYywgZG9jLmZvcm1zKCkuZ2V0KCkpOwotICBjYXNlIEFuY2hvcnM6Ci0gICAgcmV0dXJuIGdl
dEhUTUxDb2xsZWN0aW9uKGV4ZWMsIGRvYy5hbmNob3JzKCkuZ2V0KCkpOwogICBjYXNlIFNjcmlw
dHM6CiAgICAgcmV0dXJuIGdldEhUTUxDb2xsZWN0aW9uKGV4ZWMsIGRvYy5zY3JpcHRzKCkuZ2V0
KCkpOwogICBjYXNlIEFsbDoKQEAgLTI4MCw4ICsyNDEsNiBAQCBKU1ZhbHVlICpKU0hUTUxEb2N1
bWVudDo6Z2V0VmFsdWVQcm9wZXJ0CiAgICAgaWYgKCFib2R5RWxlbWVudCkKICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwogICAgIHJldHVybiBqc1N0cmluZyhib2R5RWxlbWVudC0+dkxpbmso
KSk7Ci0gIGNhc2UgTGFzdE1vZGlmaWVkOgotICAgIHJldHVybiBqc1N0cmluZyhkb2MubGFzdE1v
ZGlmaWVkKCkpOwogICBjYXNlIEhlaWdodDoKICAgICByZXR1cm4ganNOdW1iZXIodmlldyA/IHZp
ZXctPmNvbnRlbnRzSGVpZ2h0KCkgOiAwKTsKICAgY2FzZSBXaWR0aDoKQEAgLTMxOCw0MCArMjc3
LDExIEBAIHZvaWQgSlNIVE1MRG9jdW1lbnQ6OnB1dChFeGVjU3RhdGUqIGV4ZWMKIAogdm9pZCBK
U0hUTUxEb2N1bWVudDo6cHV0VmFsdWVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tl
biwgSlNWYWx1ZSAqdmFsdWUsIGludCAvKmF0dHIqLykKIHsKLSAgRE9NRXhjZXB0aW9uVHJhbnNs
YXRvciBleGNlcHRpb24oZXhlYyk7CiAgIEhUTUxEb2N1bWVudCAmZG9jID0gKnN0YXRpY19jYXN0
PEhUTUxEb2N1bWVudCo+KGltcGwoKSk7CiAgIEhUTUxFbGVtZW50KiBib2R5ID0gZG9jLmJvZHko
KTsKICAgSFRNTEJvZHlFbGVtZW50KiBib2R5RWxlbWVudCA9IChib2R5ICYmIGJvZHktPmhhc1Rh
Z05hbWUoYm9keVRhZykpID8gc3RhdGljX2Nhc3Q8SFRNTEJvZHlFbGVtZW50Kj4oYm9keSkgOiAw
OwogCiAgIHN3aXRjaCAodG9rZW4pIHsKLSAgY2FzZSBUaXRsZToKLSAgICBkb2Muc2V0VGl0bGUo
dmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpKTsKLSAgICBicmVhazsKLSAg
Y2FzZSBCb2R5OgotICAgIGRvYy5zZXRCb2R5KHRvSFRNTEVsZW1lbnQodmFsdWUpLCBleGNlcHRp
b24pOwotICAgIGJyZWFrOwotICBjYXNlIERvbWFpbjogLy8gbm90IHBhcnQgb2YgdGhlIERPTQot
ICAgIGRvYy5zZXREb21haW4odmFsdWUtPnRvU3RyaW5nKGV4ZWMpKTsKLSAgICBicmVhazsKLSAg
Y2FzZSBDb29raWU6Ci0gICAgZG9jLnNldENvb2tpZSh2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVj
ayhleGVjLCB2YWx1ZSkpOwotICAgIGJyZWFrOwotICBjYXNlIExvY2F0aW9uOgotICAgIGlmIChG
cmFtZSogZnJhbWUgPSBkb2MuZnJhbWUoKSkgewotICAgICAgRGVwcmVjYXRlZFN0cmluZyBzdHIg
PSB2YWx1ZS0+dG9TdHJpbmcoZXhlYyk7Ci0KLSAgICAgIC8vIFdoZW4gYXNzaWduaW5nIGxvY2F0
aW9uLCBJRSBhbmQgTW96aWxsYSBib3RoIHJlc29sdmUgdGhlIFVSTAotICAgICAgLy8gcmVsYXRp
dmUgdG8gdGhlIGZyYW1lIHdoZXJlIHRoZSBKYXZhU2NyaXB0IGlzIGV4ZWN1dGluZyBub3QKLSAg
ICAgIC8vIHRoZSB0YXJnZXQgZnJhbWUuCi0gICAgICBGcmFtZSogYWN0aXZlRnJhbWUgPSBzdGF0
aWNfY2FzdDxTY3JpcHRJbnRlcnByZXRlcio+KCBleGVjLT5keW5hbWljSW50ZXJwcmV0ZXIoKSAp
LT5mcmFtZSgpOwotICAgICAgaWYgKGFjdGl2ZUZyYW1lKQotICAgICAgICBzdHIgPSBhY3RpdmVG
cmFtZS0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoc3RyKTsKLQotICAgICAgLy8gV2Ugd2FudCBh
IG5ldyBoaXN0b3J5IGl0ZW0gaWYgdGhpcyBKUyB3YXMgY2FsbGVkIHZpYSBhIHVzZXIgZ2VzdHVy
ZQotICAgICAgYm9vbCB1c2VyR2VzdHVyZSA9IHN0YXRpY19jYXN0PFNjcmlwdEludGVycHJldGVy
Kj4oZXhlYy0+ZHluYW1pY0ludGVycHJldGVyKCkpLT53YXNSdW5CeVVzZXJHZXN0dXJlKCk7Ci0g
ICAgICBmcmFtZS0+bG9hZGVyKCktPnNjaGVkdWxlTG9jYXRpb25DaGFuZ2Uoc3RyLCBhY3RpdmVG
cmFtZS0+bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIoKSwgIXVzZXJHZXN0dXJlKTsKLSAgICB9
Ci0gICAgYnJlYWs7CiAgIGNhc2UgQmdDb2xvcjoKICAgICBpZiAoYm9keUVsZW1lbnQpCiAgICAg
ICBib2R5RWxlbWVudC0+c2V0QmdDb2xvcih2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVj
LCB2YWx1ZSkpOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfaHRtbC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2h0bWwuaAkocmV2aXNpb24gMjE1NDYpCisr
KyBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19odG1sLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDEw
ICs1MCw5IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIHZvaWQgcHV0VmFsdWVQcm9wZXJ0eShFeGVj
U3RhdGUqLCBpbnQgdG9rZW4sIEpTVmFsdWUqLCBpbnQgLyphdHRyKi8pOwogICAgIHZpcnR1YWwg
Y29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8oKSBjb25zdCB7IHJldHVybiAmaW5mbzsgfQogICAg
IHN0YXRpYyBjb25zdCBDbGFzc0luZm8gaW5mbzsKLSAgICBlbnVtIHsgVGl0bGUsIFJlZmVycmVy
LCBEb21haW4sIEJvZHksIExvY2F0aW9uLCBDb29raWUsCi0gICAgICAgICAgIEltYWdlcywgQXBw
bGV0cywgRW1iZWRzLCBMaW5rcywgRm9ybXMsIEFuY2hvcnMsIFNjcmlwdHMsIEFsbCwgQ2xlYXIs
IE9wZW4sIENsb3NlLAotICAgICAgICAgICBXcml0ZSwgV3JpdGVMbiwgR2V0RWxlbWVudHNCeU5h
bWUsIENhcHR1cmVFdmVudHMsIFJlbGVhc2VFdmVudHMsCi0gICAgICAgICAgIEJnQ29sb3IsIEZn
Q29sb3IsIEFsaW5rQ29sb3IsIExpbmtDb2xvciwgVmxpbmtDb2xvciwgTGFzdE1vZGlmaWVkLCBI
ZWlnaHQsIFdpZHRoLCBEaXIsIERlc2lnbk1vZGUgfTsKKyAgICBlbnVtIHsgQXBwbGV0cywgRW1i
ZWRzLCBTY3JpcHRzLCBBbGwsIENsZWFyLCBPcGVuLCBDbG9zZSwKKyAgICAgICAgICAgV3JpdGUs
IFdyaXRlTG4sIENhcHR1cmVFdmVudHMsIFJlbGVhc2VFdmVudHMsCisgICAgICAgICAgIEJnQ29s
b3IsIEZnQ29sb3IsIEFsaW5rQ29sb3IsIExpbmtDb2xvciwgVmxpbmtDb2xvciwgSGVpZ2h0LCBX
aWR0aCwgRGlyLCBEZXNpZ25Nb2RlIH07CiAgIHByaXZhdGU6CiAgICAgc3RhdGljIEpTVmFsdWUq
IG5hbWVkSXRlbUdldHRlcihFeGVjU3RhdGUqLCBKU09iamVjdCosIGNvbnN0IElkZW50aWZpZXIm
LCBjb25zdCBQcm9wZXJ0eVNsb3QmKTsKICAgfTsKSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDIx
NTQ2KQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2
ICsyNiw3IEBACiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ0RBVEFT
ZWN0aW9uLmgiCisjaW5jbHVkZSAiQ29va2llSmFyLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVl
dC5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDb21tZW50Lmgi
CkBAIC0xNTIwLDYgKzE1MjEsMTYgQEAgdm9pZCBEb2N1bWVudDo6Y2xlYXIoKQogICAgIG1fd2lu
ZG93RXZlbnRMaXN0ZW5lcnMuY2xlYXIoKTsKIH0KIAorU3RyaW5nIERvY3VtZW50Ojpjb29raWUo
KSBjb25zdAoreworICAgIHJldHVybiBjb29raWVzKFVSTCgpKTsKK30KKwordm9pZCBEb2N1bWVu
dDo6c2V0Q29va2llKGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgc2V0Q29va2llcyhVUkwo
KSwgbV9wb2xpY3lCYXNlVVJMLmRlcHJlY2F0ZWRTdHJpbmcoKSwgdmFsdWUpOworfQorCiB2b2lk
IERvY3VtZW50OjpzZXRVUkwoY29uc3QgRGVwcmVjYXRlZFN0cmluZyYgdXJsKQogewogICAgIGlm
ICh1cmwgPT0gbV91cmwpCkBAIC0yNDk5LDYgKzI1MTAsMjggQEAgdm9pZCBEb2N1bWVudDo6c2V0
RG9tYWluKGNvbnN0IFN0cmluZyAmbgogICAgIH0KIH0KIAorU3RyaW5nIERvY3VtZW50OjpsYXN0
TW9kaWZpZWQoKSBjb25zdAoreworICAgIFN0cmluZyBtb2RpZmllZEhlYWRlcjsKKyAgICBpZiAo
RnJhbWUqIGYgPSBmcmFtZSgpKQorICAgICAgICBpZiAoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50
TG9hZGVyID0gZi0+ZG9jdW1lbnRMb2FkZXIoKSkKKyAgICAgICAgICAgIGRvY3VtZW50TG9hZGVy
LT5nZXRSZXNwb25zZU1vZGlmaWVkSGVhZGVyKG1vZGlmaWVkSGVhZGVyKTsKKyAgICByZXR1cm4g
bW9kaWZpZWRIZWFkZXI7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnNldEJvZHkoSFRNTEVsZW1lbnQq
IG5ld0JvZHksIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghbmV3Qm9keSkgeyAKKyAg
ICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgSFRNTEVsZW1lbnQqIGIgPSBib2R5KCk7CisgICAgaWYgKCFiKQorICAgICAgICBkb2N1
bWVudEVsZW1lbnQoKS0+YXBwZW5kQ2hpbGQobmV3Qm9keSwgZWMpOworICAgIGVsc2UKKyAgICAg
ICAgZG9jdW1lbnRFbGVtZW50KCktPnJlcGxhY2VDaGlsZChuZXdCb2R5LCBiLCBlYyk7Cit9CisK
IGJvb2wgRG9jdW1lbnQ6OmlzVmFsaWROYW1lKGNvbnN0IFN0cmluZyAmbmFtZSkKIHsKICAgICBj
b25zdCBVQ2hhciogcyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVUNoYXIqPihuYW1lLmNoYXJh
Y3RlcnMoKSk7CkBAIC0zMzc3LDcgKzM0MTAsNyBAQCBIVE1MQ29sbGVjdGlvbjo6Q29sbGVjdGlv
bkluZm8qIERvY3VtZW50CiAgICAgcmV0dXJuICZpdGVyLT5zZWNvbmQ7CiB9CiAKLVBhc3NSZWZQ
dHI8TmFtZU5vZGVMaXN0PiBEb2N1bWVudDo6Z2V0RWxlbWVudHNCeU5hbWUoY29uc3QgU3RyaW5n
ICZlbGVtZW50TmFtZSkKK1Bhc3NSZWZQdHI8Tm9kZUxpc3Q+IERvY3VtZW50OjpnZXRFbGVtZW50
c0J5TmFtZShjb25zdCBTdHJpbmcgJmVsZW1lbnROYW1lKQogewogICAgIHJldHVybiBuZXcgTmFt
ZU5vZGVMaXN0KHRoaXMsIGVsZW1lbnROYW1lKTsKIH0KSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24gMjE1
NDYpCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTgsMTIg
KzE5OCw3IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8Tm9kZT4gYWRvcHROb2RlKFBhc3NS
ZWZQdHI8Tm9kZT4gc291cmNlLCBFeGNlcHRpb25Db2RlJik7CiAgICAgCi0gICAgUGFzc1JlZlB0
cjxOYW1lTm9kZUxpc3Q+IGdldEVsZW1lbnRzQnlOYW1lKGNvbnN0IFN0cmluZyYgZWxlbWVudE5h
bWUpOwotCi0gICAgLy8gQWN0dWFsbHkgcGFydCBvZiBKU0hUTUxEb2N1bWVudCwgYnV0IHVzZWQg
Zm9yIGdpdmluZyBYTUwgZG9jdW1lbnRzIGEgd2luZG93IHRpdGxlIGFzIHdlbGwKLSAgICBTdHJp
bmcgdGl0bGUoKSBjb25zdCB7IHJldHVybiBtX3RpdGxlOyB9Ci0gICAgdm9pZCBzZXRUaXRsZShj
b25zdCBTdHJpbmcmLCBFbGVtZW50KiB0aXRsZUVsZW1lbnQgPSAwKTsKLSAgICB2b2lkIHJlbW92
ZVRpdGxlKEVsZW1lbnQqIHRpdGxlRWxlbWVudCk7CisgICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4g
Z2V0RWxlbWVudHNCeU5hbWUoY29uc3QgU3RyaW5nJiBlbGVtZW50TmFtZSk7CiAKICAgICBQYXNz
UmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBpbWFnZXMoKTsKICAgICBQYXNzUmVmUHRyPEhUTUxDb2xs
ZWN0aW9uPiBlbWJlZHMoKTsKQEAgLTUyOCw5ICs1MjMsMTkgQEAgcHVibGljOgogICAgIC8vIFJl
dHVybnMgMCBpZiB0aGlzIGlzIHRoZSB0b3AgbGV2ZWwgZG9jdW1lbnQuCiAgICAgRWxlbWVudCog
b3duZXJFbGVtZW50KCkgY29uc3Q7CiAgICAgCisgICAgU3RyaW5nIHRpdGxlKCkgY29uc3QgeyBy
ZXR1cm4gbV90aXRsZTsgfQorICAgIHZvaWQgc2V0VGl0bGUoY29uc3QgU3RyaW5nJiwgRWxlbWVu
dCogdGl0bGVFbGVtZW50ID0gMCk7CisgICAgdm9pZCByZW1vdmVUaXRsZShFbGVtZW50KiB0aXRs
ZUVsZW1lbnQpOworCisgICAgU3RyaW5nIGNvb2tpZSgpIGNvbnN0OworICAgIHZvaWQgc2V0Q29v
a2llKGNvbnN0IFN0cmluZyYpOworCiAgICAgU3RyaW5nIHJlZmVycmVyKCkgY29uc3Q7CisKICAg
ICBTdHJpbmcgZG9tYWluKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXREb21haW4oY29uc3QgU3RyaW5n
JiBuZXdEb21haW4sIGJvb2wgZm9yY2UgPSBmYWxzZSk7IC8vIG5vdCBwYXJ0IG9mIHRoZSBET00K
KyAgICB2b2lkIHNldERvbWFpbihjb25zdCBTdHJpbmcmIG5ld0RvbWFpbiwgYm9vbCBmb3JjZSA9
IGZhbHNlKTsKKworICAgIFN0cmluZyBsYXN0TW9kaWZpZWQoKSBjb25zdDsKIAogICAgIFN0cmlu
ZyBwb2xpY3lCYXNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9wb2xpY3lCYXNlVVJMOyB9CiAgICAg
dm9pZCBzZXRQb2xpY3lCYXNlVVJMKGNvbnN0IFN0cmluZyYgcykgeyBtX3BvbGljeUJhc2VVUkwg
PSBzOyB9CkBAIC01NTMsNiArNTU4LDggQEAgcHVibGljOgogICAgIEhUTUxNYXBFbGVtZW50KiBn
ZXRJbWFnZU1hcChjb25zdCBTdHJpbmcmIFVSTCkgY29uc3Q7CiAKICAgICBIVE1MRWxlbWVudCog
Ym9keSgpOworICAgIHZvaWQgc2V0Qm9keShIVE1MRWxlbWVudCosIEV4Y2VwdGlvbkNvZGUmKTsK
KwogICAgIEhUTUxIZWFkRWxlbWVudCogaGVhZCgpOwogCiAgICAgU3RyaW5nIHRvU3RyaW5nKCkg
Y29uc3Q7CkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaWRsCShyZXZpc2lvbiAyMTU0NikKKysrIFdlYkNvcmUvZG9tL0Rv
Y3VtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTQ0LDExICsxNDQsMjggQEAgbW9kdWxlIGNv
cmUgewogICAgICAgICBib29sZWFuICAgICAgICAgICAgcXVlcnlDb21tYW5kU3VwcG9ydGVkKGlu
IERPTVN0cmluZyBjb21tYW5kKTsKICAgICAgICAgW0NvbnZlcnROdWxsU3RyaW5nVG89RmFsc2Vd
IERPTVN0cmluZyBxdWVyeUNvbW1hbmRWYWx1ZShpbiBET01TdHJpbmcgY29tbWFuZCk7CiAKLSAg
ICAgICAgLy8gSUUgZXh0ZW5zaW9ucwotCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBU
KQorICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0N1c3RvbV0gY3VzdG9tIGxvY2F0aW9uOwor
I2VuZGlmCiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpCiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgVVJMOwogI2VuZGlmCisgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsLCBDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
Z10gRE9NU3RyaW5nIGRvbWFpbjsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyByZWZlcnJlcjsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nIGNvb2tpZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBsYXN0TW9kaWZpZWQ7CisKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252
ZXJ0TnVsbFN0cmluZ1RvPU51bGwsIENvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcg
dGl0bGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBIVE1MRWxlbWVudCBib2R5CisgICAg
ICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiBpbWFnZXM7CisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiBsaW5rczsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIEhUTUxDb2xsZWN0aW9uIGZvcm1zOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRN
TENvbGxlY3Rpb24gYW5jaG9yczsKKyAgICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeU5hbWUo
aW4gRE9NU3RyaW5nIGVsZW1lbnROYW1lKTsKKworICAgICAgICAvLyBJRSBleHRlbnNpb25zCisK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1RvPVVuZGVmaW5l
ZCwgQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBjaGFyc2V0OwogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5nVG89VW5kZWZpbmVkXSBET01TdHJp
bmcgZGVmYXVsdENoYXJzZXQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51
bGxTdHJpbmdUbz1VbmRlZmluZWRdIERPTVN0cmluZyByZWFkeVN0YXRlOwpJbmRleDogV2ViQ29y
ZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxE
b2N1bWVudC5jcHAJKHJldmlzaW9uIDIxNTQ2KQorKysgV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDcgKzU1LDYgQEAKIAogI2luY2x1ZGUgIkNTU1By
b3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJDU3RyaW5nLmgiCi0jaW5jbHVkZSAiQ29va2llSmFy
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUu
aCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCkBAIC04NCwzOCArODMsNiBAQCBIVE1MRG9j
dW1lbnQ6On5IVE1MRG9jdW1lbnQoKQogewogfQogCi1TdHJpbmcgSFRNTERvY3VtZW50OjpsYXN0
TW9kaWZpZWQoKSBjb25zdAotewotICAgIFN0cmluZyBtb2RpZmllZEhlYWRlcjsKLSAgICBpZiAo
RnJhbWUqIGYgPSBmcmFtZSgpKQotICAgICAgICBpZiAoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50
TG9hZGVyID0gZi0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCkpCi0gICAgICAgICAgICBkb2N1
bWVudExvYWRlci0+Z2V0UmVzcG9uc2VNb2RpZmllZEhlYWRlcihtb2RpZmllZEhlYWRlcik7Ci0g
ICAgcmV0dXJuIG1vZGlmaWVkSGVhZGVyOwotfQotCi1TdHJpbmcgSFRNTERvY3VtZW50Ojpjb29r
aWUoKSBjb25zdAotewotICAgIHJldHVybiBjb29raWVzKFVSTCgpKTsKLX0KLQotdm9pZCBIVE1M
RG9jdW1lbnQ6OnNldENvb2tpZShjb25zdCBTdHJpbmcmIHZhbHVlKQotewotICAgIHNldENvb2tp
ZXMoVVJMKCksIG1fcG9saWN5QmFzZVVSTC5kZXByZWNhdGVkU3RyaW5nKCksIHZhbHVlKTsKLX0K
LQotdm9pZCBIVE1MRG9jdW1lbnQ6OnNldEJvZHkoSFRNTEVsZW1lbnQqIG5ld0JvZHksIEV4Y2Vw
dGlvbkNvZGUmIGVjKQotewotICAgIGlmICghbmV3Qm9keSkgeyAKLSAgICAgICAgZWMgPSBISUVS
QVJDSFlfUkVRVUVTVF9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgSFRNTEVsZW1l
bnQqIGIgPSBib2R5KCk7Ci0gICAgaWYgKCFiKQotICAgICAgICBkb2N1bWVudEVsZW1lbnQoKS0+
YXBwZW5kQ2hpbGQobmV3Qm9keSwgZWMpOwotICAgIGVsc2UKLSAgICAgICAgZG9jdW1lbnRFbGVt
ZW50KCktPnJlcGxhY2VDaGlsZChuZXdCb2R5LCBiLCBlYyk7Ci19Ci0KIFRva2VuaXplciAqSFRN
TERvY3VtZW50OjpjcmVhdGVUb2tlbml6ZXIoKQogewogICAgIHJldHVybiBuZXcgSFRNTFRva2Vu
aXplcih0aGlzKTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgJKHJldmlzaW9uIDIxNTQ2KQorKysgV2Vi
Q29yZS9odG1sL0hUTUxEb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCwxMiArMzgsNiBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNIVE1MRG9jdW1lbnQoKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CiAKLSAgICBTdHJpbmcgbGFzdE1vZGlmaWVkKCkgY29uc3Q7Ci0gICAgU3Ry
aW5nIGNvb2tpZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0Q29va2llKGNvbnN0IFN0cmluZyYpOwot
Ci0gICAgdm9pZCBzZXRCb2R5KEhUTUxFbGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwotCiAgICAg
dmlydHVhbCBUb2tlbml6ZXIqIGNyZWF0ZVRva2VuaXplcigpOwogCiAgICAgdmlydHVhbCBib29s
IGNoaWxkQWxsb3dlZChOb2RlKik7CkluZGV4OiBXZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAJKHJldmlzaW9uIDIxNTQ2KQorKysgV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYyLDYgKzI2MiwxMSBAQCBG
cmFtZUxvYWRlciogRnJhbWU6OmxvYWRlcigpIGNvbnN0CiAgICAgcmV0dXJuIGQtPm1fbG9hZGVy
OwogfQogCitEb2N1bWVudExvYWRlciogRnJhbWU6OmRvY3VtZW50TG9hZGVyKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gZC0+bV9sb2FkZXItPmRvY3VtZW50TG9hZGVyKCk7Cit9CisKIEZyYW1lVmll
dyogRnJhbWU6OnZpZXcoKSBjb25zdAogewogICAgIHJldHVybiBkLT5tX3ZpZXcuZ2V0KCk7Cklu
ZGV4OiBXZWJDb3JlL3BhZ2UvRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRnJh
bWUuaAkocmV2aXNpb24gMjE1NDYpCisrKyBXZWJDb3JlL3BhZ2UvRnJhbWUuaAkod29ya2luZyBj
b3B5KQpAQCAtNzUsNiArNzUsNyBAQCBjbGFzcyBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb247
CiBjbGFzcyBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjsKIGNsYXNzIENTU1N0eWxlRGVjbGFy
YXRpb247CiBjbGFzcyBDb21tYW5kQnlOYW1lOworY2xhc3MgRG9jdW1lbnRMb2FkZXI7CiBjbGFz
cyBET01XaW5kb3c7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEVkaXRvcjsKQEAgLTE0NCw2ICsx
NDUsNyBAQCBwdWJsaWM6CiAgICAgRWRpdG9yKiBlZGl0b3IoKSBjb25zdDsKICAgICBFdmVudEhh
bmRsZXIqIGV2ZW50SGFuZGxlcigpIGNvbnN0OwogICAgIEZyYW1lTG9hZGVyKiBsb2FkZXIoKSBj
b25zdDsKKyAgICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIoKSBjb25zdDsKICAgICBT
ZWxlY3Rpb25Db250cm9sbGVyKiBzZWxlY3Rpb25Db250cm9sbGVyKCkgY29uc3Q7CiAgICAgRnJh
bWVUcmVlKiB0cmVlKCkgY29uc3Q7CiAK
</data>
<flag name="review"
          id="6017"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14707</attachid>
            <date>2007-05-24 14:28:33 -0700</date>
            <delta_ts>2007-07-19 11:36:33 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>apPatch3.diff</filename>
            <type>text/plain</type>
            <size>34904</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMTcyNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzkgQEAKKzIwMDctMDUtMjQgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBm
b3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MDcKKyAgICAgICAg
UkVHUkVTU0lPTjogSmF2YVNjcmlwdCBleGNlcHRpb25zIG9uIHF1b3Rlcy5idXJudGVsZWN0cm9u
cy5vcmcKKworICAgICAgICBPcmlnaW5hbCBwYXRjaCBieSBBbGV4ZXkgUHJvc2t1cnlha292Lgor
CisgICAgICAgIE1vdmVkIGEgYnVuY2ggb2YgbWV0aG9kcyBhbmQgcHJvcGVydGllcyBmcm9tIEhU
TUxEb2N1bWVudCBkb3duIGludG8gRG9jdW1lbnQgdG8gbWFrZQorICAgICAgICB0aGVtIGF2YWls
YWJsZSBmb3IgYWxsIGRvY3VtZW50cyAoeG1sLCBzdmcpLgorICAgICAgICBXaGF0IHdhcyBrZXB0
IGluIEhUTUxEb2N1bWVudDoKKyAgICAgICAgLSBzb21lIG1ldGhvZHMgYW5kIHByb3BlcnRpZXMg
dGhhdCBhcmUgbm90IGluIEhUTUw1ICh5ZXQ/KTsKKyAgICAgICAgLSBvcGVuL3dyaXRlL3dyaXRl
bG4vY2xvc2UsIGFzIHRoZXkgd2lsbCBuZWVkIHRvIGJlIG1vZGlmaWVkIHRvIHdvcmsgb24gWE1M
IGRvY3VtZW50cywgYW5kIGFyZW4ndAorICAgICAgICBvZiBtdWNoIHVzZSBmb3IgdGhvc2UgYW55
d2F5OworICAgICAgICAtIGRlc2lnbk1vZGUsIGJlY2F1c2UgaXRzIGRlZmluaXRpb24gaW4gSFRN
TDUgaXMgaW5jb21wYXRpYmxlIHdpdGggb3VyIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgIENv
dmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RvY3Vt
ZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRG9jdW1lbnQ6OmxvY2F0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTRG9jdW1lbnQ6OnNldExvY2F0aW9uKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVudEN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
b2JqYy9QdWJsaWNET01JbnRlcmZhY2VzLmg6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRCb2R5KToKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50Ojpjb29raWUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldENvb2tp
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6bGFzdE1vZGlmaWVkKToKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp0aXRsZSk6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVudC5j
cHA6CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxE
b2N1bWVudC5pZGw6CisKIDIwMDctMDUtMjQgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlcG9ydCA8c2NyaXB0Lz4gYXMgYSB3YXJuaW5nIGluc3RlYWQgb2YgYW4g
ZXJyb3IgZm9yIG5vdywgc2luY2Ugd2UKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMTcyNykKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQzMSw3ICsxMTQzMSw2
IEBACiAJCTA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLyA9IHsK
IAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI4
NDMwODkwMkIxMTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJv
amVjdCAiV2ViQ29yZSIgKi87Ci0JCQljb21wYXRpYmlsaXR5VmVyc2lvbiA9ICJYY29kZSAyLjQi
OwogCQkJaGFzU2Nhbm5lZEZvckVuY29kaW5ncyA9IDE7CiAJCQlrbm93blJlZ2lvbnMgPSAoCiAJ
CQkJRW5nbGlzaCwKQEAgLTExNDQ2LDcgKzExNDQ1LDYgQEAKIAkJCXByb2R1Y3RSZWZHcm91cCA9
IDAzNDc2OERGRkYzOEE1MDQxMURCOUM4QiAvKiBQcm9kdWN0cyAqLzsKIAkJCXByb2plY3REaXJQ
YXRoID0gIiI7CiAJCQlwcm9qZWN0Um9vdCA9ICIiOwotCQkJc2hvdWxkQ2hlY2tDb21wYXRpYmls
aXR5ID0gMTsKIAkJCXRhcmdldHMgPSAoCiAJCQkJOTNGMTk4QTUwODI0NUU1OTAwMUU5QUJDIC8q
IFdlYkNvcmUgKi8sCiAJCQkJREQwNDFGQkUwOUQ5RERCRTAwMTBBRjJBIC8qIERlcml2ZWQgU291
cmNlcyAqLywKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcAko
cmV2aXNpb24gMjE3MjcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwNyBBcHBsZSwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjAsMTYgKzIwLDUwIEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNEb2N1bWVudC5oIgogCi0jaW5jbHVkZSAi
a2pzX2JpbmRpbmcuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgi
CisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJranNfYmluZGluZy5oIgorI2lu
Y2x1ZGUgImtqc193aW5kb3cuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit1c2luZyBuYW1l
c3BhY2UgS0pTOworCiB2b2lkIEpTRG9jdW1lbnQ6Om1hcmsoKQogewogICAgIERPTU9iamVjdDo6
bWFyaygpOwogICAgIEtKUzo6U2NyaXB0SW50ZXJwcmV0ZXI6Om1hcmtET01Ob2Rlc0ZvckRvY3Vt
ZW50KHN0YXRpY19jYXN0PERvY3VtZW50Kj4oaW1wbCgpKSk7CiB9Ci0gICAgCisKK0pTVmFsdWUq
IEpTRG9jdW1lbnQ6OmxvY2F0aW9uKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICBGcmFt
ZSogZnJhbWUgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KGltcGwoKSktPmZyYW1lKCk7CisgICAg
aWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIGpzTnVsbCgpOworCisgICAgV2luZG93KiB3aW4g
PSBXaW5kb3c6OnJldHJpZXZlV2luZG93KGZyYW1lKTsKKyAgICBBU1NFUlQod2luKTsKKyAgICBy
ZXR1cm4gd2luLT5sb2NhdGlvbigpOworfQorCit2b2lkIEpTRG9jdW1lbnQ6OnNldExvY2F0aW9u
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSogdmFsdWUpCit7CisgICAgRnJhbWUqIGZyYW1lID0g
c3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihpbXBsKCkpLT5mcmFtZSgpOworICAgIGlmICghZnJhbWUp
CisgICAgICAgIHJldHVybjsKKworICAgIFN0cmluZyBzdHIgPSB2YWx1ZS0+dG9TdHJpbmcoZXhl
Yyk7CisKKyAgICAvLyBXaGVuIGFzc2lnbmluZyBsb2NhdGlvbiwgSUUgYW5kIE1vemlsbGEgYm90
aCByZXNvbHZlIHRoZSBVUkwKKyAgICAvLyByZWxhdGl2ZSBub3QgdGhlIHRhcmdldCBmcmFtZS4K
KyAgICBGcmFtZSogYWN0aXZlRnJhbWUgPSBzdGF0aWNfY2FzdDxTY3JpcHRJbnRlcnByZXRlcio+
KGV4ZWMtPmR5bmFtaWNJbnRlcnByZXRlcigpKS0+ZnJhbWUoKTsKKyAgICBpZiAoYWN0aXZlRnJh
bWUpCisgICAgICAgIHN0ciA9IGFjdGl2ZUZyYW1lLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChz
dHIpOworCisgICAgLy8gV2Ugd2FudCBhIG5ldyBoaXN0b3J5IGl0ZW0gaWYgdGhpcyBKUyB3YXMg
Y2FsbGVkIHZpYSBhIHVzZXIgZ2VzdHVyZQorICAgIGJvb2wgdXNlckdlc3R1cmUgPSBzdGF0aWNf
Y2FzdDxTY3JpcHRJbnRlcnByZXRlcio+KGV4ZWMtPmR5bmFtaWNJbnRlcnByZXRlcigpKS0+d2Fz
UnVuQnlVc2VyR2VzdHVyZSgpOworICAgIGZyYW1lLT5sb2FkZXIoKS0+c2NoZWR1bGVMb2NhdGlv
bkNoYW5nZShzdHIsIGFjdGl2ZUZyYW1lLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpLCAh
dXNlckdlc3R1cmUpOwogfQogCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gMjE3Mjcp
CisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgIkpTSFRNTERvY3VtZW50LmgiCiAK
ICNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAi
SFRNTEJvZHlFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKICNpbmNsdWRl
ICJIVE1MRG9jdW1lbnQuaCIKQEAgLTg5LDM2ICs4OCw2IEBAIHZvaWQgSlNIVE1MRG9jdW1lbnQ6
OnNldEFsbChFeGVjU3RhdGUqLCAKICAgICBwdXREaXJlY3QoImFsbCIsIHZhbHVlKTsKIH0KIAot
SlNWYWx1ZSogSlNIVE1MRG9jdW1lbnQ6OmxvY2F0aW9uKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QK
LXsKLSAgICBGcmFtZSogZnJhbWUgPSBzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnQqPihpbXBsKCkp
LT5mcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBqc051bGwoKTsKLQot
ICAgIFdpbmRvdyogd2luID0gV2luZG93OjpyZXRyaWV2ZVdpbmRvdyhmcmFtZSk7Ci0gICAgQVNT
RVJUKHdpbik7Ci0gICAgcmV0dXJuIHdpbi0+bG9jYXRpb24oKTsKLX0KLQotdm9pZCBKU0hUTUxE
b2N1bWVudDo6c2V0TG9jYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlKiB2YWx1ZSkKLXsK
LSAgICBGcmFtZSogZnJhbWUgPSBzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnQqPihpbXBsKCkpLT5m
cmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIFN0cmluZyBz
dHIgPSB2YWx1ZS0+dG9TdHJpbmcoZXhlYyk7Ci0KLSAgICAvLyBXaGVuIGFzc2lnbmluZyBsb2Nh
dGlvbiwgSUUgYW5kIE1vemlsbGEgYm90aCByZXNvbHZlIHRoZSBVUkwKLSAgICAvLyByZWxhdGl2
ZSBub3QgdGhlIHRhcmdldCBmcmFtZS4KLSAgICBGcmFtZSogYWN0aXZlRnJhbWUgPSBzdGF0aWNf
Y2FzdDxTY3JpcHRJbnRlcnByZXRlcio+KGV4ZWMtPmR5bmFtaWNJbnRlcnByZXRlcigpKS0+ZnJh
bWUoKTsKLSAgICBpZiAoYWN0aXZlRnJhbWUpCi0gICAgICAgIHN0ciA9IGFjdGl2ZUZyYW1lLT5k
b2N1bWVudCgpLT5jb21wbGV0ZVVSTChzdHIpOwotCi0gICAgLy8gV2Ugd2FudCBhIG5ldyBoaXN0
b3J5IGl0ZW0gaWYgdGhpcyBKUyB3YXMgY2FsbGVkIHZpYSBhIHVzZXIgZ2VzdHVyZQotICAgIGJv
b2wgdXNlckdlc3R1cmUgPSBzdGF0aWNfY2FzdDxTY3JpcHRJbnRlcnByZXRlcio+KGV4ZWMtPmR5
bmFtaWNJbnRlcnByZXRlcigpKS0+d2FzUnVuQnlVc2VyR2VzdHVyZSgpOwotICAgIGZyYW1lLT5s
b2FkZXIoKS0+c2NoZWR1bGVMb2NhdGlvbkNoYW5nZShzdHIsIGFjdGl2ZUZyYW1lLT5sb2FkZXIo
KS0+b3V0Z29pbmdSZWZlcnJlcigpLCAhdXNlckdlc3R1cmUpOwotfQotCiAvLyBDdXN0b20gZnVu
Y3Rpb25zCiAKIEpTVmFsdWUqIEpTSFRNTERvY3VtZW50OjpvcGVuKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgTGlzdCYgYXJncykKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9QdWJsaWNET01J
bnRlcmZhY2VzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1B1YmxpY0RP
TUludGVyZmFjZXMuaAkocmV2aXNpb24gMjE3MjcpCisrKyBXZWJDb3JlL2JpbmRpbmdzL29iamMv
UHVibGljRE9NSW50ZXJmYWNlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC04MCw2ICs4MCwxNyBAQAog
QHByb3BlcnR5KHJlYWRvbmx5LCByZXRhaW4pIERPTUVsZW1lbnQgKmRvY3VtZW50RWxlbWVudDsK
IEBwcm9wZXJ0eShyZWFkb25seSwgcmV0YWluKSBET01BYnN0cmFjdFZpZXcgKmRlZmF1bHRWaWV3
OwogQHByb3BlcnR5KHJlYWRvbmx5LCByZXRhaW4pIERPTVN0eWxlU2hlZXRMaXN0ICpzdHlsZVNo
ZWV0czsKK0Bwcm9wZXJ0eShyZWFkb25seSwgcmV0YWluKSBET01IVE1MQ29sbGVjdGlvbiAqaW1h
Z2VzOworQHByb3BlcnR5KHJlYWRvbmx5LCByZXRhaW4pIERPTUhUTUxDb2xsZWN0aW9uICphcHBs
ZXRzOworQHByb3BlcnR5KHJlYWRvbmx5LCByZXRhaW4pIERPTUhUTUxDb2xsZWN0aW9uICpsaW5r
czsKK0Bwcm9wZXJ0eShyZWFkb25seSwgcmV0YWluKSBET01IVE1MQ29sbGVjdGlvbiAqZm9ybXM7
CitAcHJvcGVydHkocmVhZG9ubHksIHJldGFpbikgRE9NSFRNTENvbGxlY3Rpb24gKmFuY2hvcnM7
CitAcHJvcGVydHkoY29weSkgTlNTdHJpbmcgKnRpdGxlOworQHByb3BlcnR5KHJlYWRvbmx5LCBj
b3B5KSBOU1N0cmluZyAqcmVmZXJyZXI7CitAcHJvcGVydHkocmVhZG9ubHksIGNvcHkpIE5TU3Ry
aW5nICpkb21haW47CitAcHJvcGVydHkocmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICpVUkw7CitA
cHJvcGVydHkocmV0YWluKSBET01IVE1MRWxlbWVudCAqYm9keTsKK0Bwcm9wZXJ0eShjb3B5KSBO
U1N0cmluZyAqY29va2llOwogLSAoRE9NRWxlbWVudCAqKWNyZWF0ZUVsZW1lbnQ6KE5TU3RyaW5n
ICopdGFnTmFtZTsKIC0gKERPTURvY3VtZW50RnJhZ21lbnQgKiljcmVhdGVEb2N1bWVudEZyYWdt
ZW50OwogLSAoRE9NVGV4dCAqKWNyZWF0ZVRleHROb2RlOihOU1N0cmluZyAqKWRhdGE7CkBAIC0x
MDksNiArMTIwLDcgQEAKIC0gKERPTUNTU1N0eWxlRGVjbGFyYXRpb24gKilnZXRDb21wdXRlZFN0
eWxlOihET01FbGVtZW50ICopZWxlbWVudCBwc2V1ZG9FbGVtZW50OihOU1N0cmluZyAqKXBzZXVk
b0VsZW1lbnQ7CiAtIChET01DU1NSdWxlTGlzdCAqKWdldE1hdGNoZWRDU1NSdWxlczooRE9NRWxl
bWVudCAqKWVsZW1lbnQgcHNldWRvRWxlbWVudDooTlNTdHJpbmcgKilwc2V1ZG9FbGVtZW50Owog
LSAoRE9NQ1NTUnVsZUxpc3QgKilnZXRNYXRjaGVkQ1NTUnVsZXM6KERPTUVsZW1lbnQgKillbGVt
ZW50IHBzZXVkb0VsZW1lbnQ6KE5TU3RyaW5nICopcHNldWRvRWxlbWVudCBhdXRob3JPbmx5OihC
T09MKWF1dGhvck9ubHk7CistIChET01Ob2RlTGlzdCAqKWdldEVsZW1lbnRzQnlOYW1lOihOU1N0
cmluZyAqKWVsZW1lbnROYW1lOwogI2lmZGVmIEVOQUJMRV9YUEFUSAogLSAoRE9NWFBhdGhFeHBy
ZXNzaW9uICopY3JlYXRlRXhwcmVzc2lvbjooTlNTdHJpbmcgKilleHByZXNzaW9uIDooaWQgPERP
TVhQYXRoTlNSZXNvbHZlcj4pcmVzb2x2ZXI7CiAtIChET01YUGF0aEV4cHJlc3Npb24gKiljcmVh
dGVFeHByZXNzaW9uOihOU1N0cmluZyAqKWV4cHJlc3Npb24gcmVzb2x2ZXI6KGlkIDxET01YUGF0
aE5TUmVzb2x2ZXI+KXJlc29sdmVyOwpAQCAtMzQ3LDIzICszNTksMTEgQEAKIEBlbmQKIAogQGlu
dGVyZmFjZSBET01IVE1MRG9jdW1lbnQgOiBET01Eb2N1bWVudAotQHByb3BlcnR5KGNvcHkpIE5T
U3RyaW5nICp0aXRsZTsKLUBwcm9wZXJ0eShyZWFkb25seSwgY29weSkgTlNTdHJpbmcgKnJlZmVy
cmVyOwotQHByb3BlcnR5KHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqZG9tYWluOwotQHByb3Bl
cnR5KHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqVVJMOwotQHByb3BlcnR5KHJldGFpbikgRE9N
SFRNTEVsZW1lbnQgKmJvZHk7Ci1AcHJvcGVydHkocmVhZG9ubHksIHJldGFpbikgRE9NSFRNTENv
bGxlY3Rpb24gKmltYWdlczsKLUBwcm9wZXJ0eShyZWFkb25seSwgcmV0YWluKSBET01IVE1MQ29s
bGVjdGlvbiAqYXBwbGV0czsKLUBwcm9wZXJ0eShyZWFkb25seSwgcmV0YWluKSBET01IVE1MQ29s
bGVjdGlvbiAqbGlua3M7Ci1AcHJvcGVydHkocmVhZG9ubHksIHJldGFpbikgRE9NSFRNTENvbGxl
Y3Rpb24gKmZvcm1zOwotQHByb3BlcnR5KHJlYWRvbmx5LCByZXRhaW4pIERPTUhUTUxDb2xsZWN0
aW9uICphbmNob3JzOwotQHByb3BlcnR5KGNvcHkpIE5TU3RyaW5nICpjb29raWU7CiAtICh2b2lk
KW9wZW47CiAtICh2b2lkKWNsb3NlOwogLSAodm9pZCl3cml0ZTooTlNTdHJpbmcgKil0ZXh0Owog
LSAodm9pZCl3cml0ZWxuOihOU1N0cmluZyAqKXRleHQ7CiAtIChET01FbGVtZW50ICopZ2V0RWxl
bWVudEJ5SWQ6KE5TU3RyaW5nICopZWxlbWVudElkOwotLSAoRE9NTm9kZUxpc3QgKilnZXRFbGVt
ZW50c0J5TmFtZTooTlNTdHJpbmcgKillbGVtZW50TmFtZTsKIEBlbmQKIAogQGludGVyZmFjZSBE
T01IVE1MRWxlbWVudCA6IERPTUVsZW1lbnQKSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDIxNzI3
KQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsy
OSw3IEBACiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5
d29yZHMuaCIKICNpbmNsdWRlICJDb21tZW50LmgiCisjaW5jbHVkZSAiQ29va2llSmFyLmgiCiAj
aW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKICNpbmNsdWRlICJEb2NMb2FkZXIuaCIKICNp
bmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCkBAIC0xMzAxLDYgKzEzMDIsMjAgQEAgSFRNTEVs
ZW1lbnQqIERvY3VtZW50Ojpib2R5KCkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTEVsZW1l
bnQqPihib2R5KTsKIH0KIAordm9pZCBEb2N1bWVudDo6c2V0Qm9keShIVE1MRWxlbWVudCogbmV3
Qm9keSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFuZXdCb2R5KSB7IAorICAgICAg
ICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIEhUTUxFbGVtZW50KiBiID0gYm9keSgpOworICAgIGlmICghYikKKyAgICAgICAgZG9jdW1l
bnRFbGVtZW50KCktPmFwcGVuZENoaWxkKG5ld0JvZHksIGVjKTsKKyAgICBlbHNlCisgICAgICAg
IGRvY3VtZW50RWxlbWVudCgpLT5yZXBsYWNlQ2hpbGQobmV3Qm9keSwgYiwgZWMpOworfQorCiBI
VE1MSGVhZEVsZW1lbnQqIERvY3VtZW50OjpoZWFkKCkKIHsKICAgICBOb2RlKiBkZSA9IGRvY3Vt
ZW50RWxlbWVudCgpOwpAQCAtMjQ2Myw2ICsyNDc4LDE2IEBAIEVsZW1lbnQqIERvY3VtZW50Ojpv
d25lckVsZW1lbnQoKSBjb25zdAogICAgIHJldHVybiBmcmFtZSgpLT5vd25lckVsZW1lbnQoKTsK
IH0KIAorU3RyaW5nIERvY3VtZW50Ojpjb29raWUoKSBjb25zdAoreworICAgIHJldHVybiBjb29r
aWVzKFVSTCgpKTsKK30KKwordm9pZCBEb2N1bWVudDo6c2V0Q29va2llKGNvbnN0IFN0cmluZyYg
dmFsdWUpCit7CisgICAgc2V0Q29va2llcyhVUkwoKSwgbV9wb2xpY3lCYXNlVVJMLmRlcHJlY2F0
ZWRTdHJpbmcoKSwgdmFsdWUpOworfQorCiBTdHJpbmcgRG9jdW1lbnQ6OnJlZmVycmVyKCkgY29u
c3QKIHsKICAgICBpZiAoZnJhbWUoKSkKQEAgLTI1MDIsNiArMjUyNywxNiBAQCB2b2lkIERvY3Vt
ZW50OjpzZXREb21haW4oY29uc3QgU3RyaW5nICZuCiAgICAgfQogfQogCitTdHJpbmcgRG9jdW1l
bnQ6Omxhc3RNb2RpZmllZCgpIGNvbnN0Cit7CisgICAgU3RyaW5nIG1vZGlmaWVkSGVhZGVyOwor
ICAgIGlmIChGcmFtZSogZiA9IGZyYW1lKCkpIHsKKyAgICAgICAgaWYgKERvY3VtZW50TG9hZGVy
KiBkb2N1bWVudExvYWRlciA9IGYtPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpKQorICAgICAg
ICAgICAgZG9jdW1lbnRMb2FkZXItPmdldFJlc3BvbnNlTW9kaWZpZWRIZWFkZXIobW9kaWZpZWRI
ZWFkZXIpOworICAgIH0KKyAgICByZXR1cm4gbW9kaWZpZWRIZWFkZXI7Cit9CisKIGJvb2wgRG9j
dW1lbnQ6OmlzVmFsaWROYW1lKGNvbnN0IFN0cmluZyAmbmFtZSkKIHsKICAgICBjb25zdCBVQ2hh
ciogcyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVUNoYXIqPihuYW1lLmNoYXJhY3RlcnMoKSk7
CkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9t
L0RvY3VtZW50LmgJKHJldmlzaW9uIDIxNzI3KQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMjAwLDExICsyMDAsNiBAQCBwdWJsaWM6CiAgICAgCiAgICAgUGFz
c1JlZlB0cjxOYW1lTm9kZUxpc3Q+IGdldEVsZW1lbnRzQnlOYW1lKGNvbnN0IFN0cmluZyYgZWxl
bWVudE5hbWUpOwogCi0gICAgLy8gQWN0dWFsbHkgcGFydCBvZiBKU0hUTUxEb2N1bWVudCwgYnV0
IHVzZWQgZm9yIGdpdmluZyBYTUwgZG9jdW1lbnRzIGEgd2luZG93IHRpdGxlIGFzIHdlbGwKLSAg
ICBTdHJpbmcgdGl0bGUoKSBjb25zdCB7IHJldHVybiBtX3RpdGxlOyB9Ci0gICAgdm9pZCBzZXRU
aXRsZShjb25zdCBTdHJpbmcmLCBFbGVtZW50KiB0aXRsZUVsZW1lbnQgPSAwKTsKLSAgICB2b2lk
IHJlbW92ZVRpdGxlKEVsZW1lbnQqIHRpdGxlRWxlbWVudCk7Ci0KICAgICBQYXNzUmVmUHRyPEhU
TUxDb2xsZWN0aW9uPiBpbWFnZXMoKTsKICAgICBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBl
bWJlZHMoKTsKICAgICBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBwbHVnaW5zKCk7IC8vIGFu
IGFsaWFzIGZvciBlbWJlZHMoKSByZXF1aXJlZCBmb3IgdGhlIEpTIERPTSBiaW5kaW5ncy4KQEAg
LTUyOCwxMCArNTIzLDIwIEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIHRoZSBvd25pbmcgZWxl
bWVudCBpbiB0aGUgcGFyZW50IGRvY3VtZW50LgogICAgIC8vIFJldHVybnMgMCBpZiB0aGlzIGlz
IHRoZSB0b3AgbGV2ZWwgZG9jdW1lbnQuCiAgICAgRWxlbWVudCogb3duZXJFbGVtZW50KCkgY29u
c3Q7Ci0gICAgCisKKyAgICBTdHJpbmcgdGl0bGUoKSBjb25zdCB7IHJldHVybiBtX3RpdGxlOyB9
CisgICAgdm9pZCBzZXRUaXRsZShjb25zdCBTdHJpbmcmLCBFbGVtZW50KiB0aXRsZUVsZW1lbnQg
PSAwKTsKKyAgICB2b2lkIHJlbW92ZVRpdGxlKEVsZW1lbnQqIHRpdGxlRWxlbWVudCk7CisKKyAg
ICBTdHJpbmcgY29va2llKCkgY29uc3Q7CisgICAgdm9pZCBzZXRDb29raWUoY29uc3QgU3RyaW5n
Jik7CisKICAgICBTdHJpbmcgcmVmZXJyZXIoKSBjb25zdDsKKwogICAgIFN0cmluZyBkb21haW4o
KSBjb25zdDsKLSAgICB2b2lkIHNldERvbWFpbihjb25zdCBTdHJpbmcmIG5ld0RvbWFpbiwgYm9v
bCBmb3JjZSA9IGZhbHNlKTsgLy8gbm90IHBhcnQgb2YgdGhlIERPTQorICAgIHZvaWQgc2V0RG9t
YWluKGNvbnN0IFN0cmluZyYgbmV3RG9tYWluLCBib29sIGZvcmNlID0gZmFsc2UpOworCisgICAg
U3RyaW5nIGxhc3RNb2RpZmllZCgpIGNvbnN0OwogCiAgICAgU3RyaW5nIHBvbGljeUJhc2VVUkwo
KSBjb25zdCB7IHJldHVybiBtX3BvbGljeUJhc2VVUkw7IH0KICAgICB2b2lkIHNldFBvbGljeUJh
c2VVUkwoY29uc3QgU3RyaW5nJiBzKSB7IG1fcG9saWN5QmFzZVVSTCA9IHM7IH0KQEAgLTU1NCw2
ICs1NTksOCBAQCBwdWJsaWM6CiAgICAgSFRNTE1hcEVsZW1lbnQqIGdldEltYWdlTWFwKGNvbnN0
IFN0cmluZyYgVVJMKSBjb25zdDsKIAogICAgIEhUTUxFbGVtZW50KiBib2R5KCk7CisgICAgdm9p
ZCBzZXRCb2R5KEhUTUxFbGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpOworCiAgICAgSFRNTEhlYWRF
bGVtZW50KiBoZWFkKCk7CiAKICAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdDsKSW5kZXg6IFdl
YkNvcmUvZG9tL0RvY3VtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1bWVu
dC5pZGwJKHJldmlzaW9uIDIxNzI3KQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBs
ZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBTYW11ZWwg
V2VpbmlnIDxzYW1Ad2Via2l0Lm9yZz4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0xNDQsMTEgKzE0NCw0MSBA
QCBtb2R1bGUgY29yZSB7CiAgICAgICAgIGJvb2xlYW4gICAgICAgICAgICBxdWVyeUNvbW1hbmRT
dXBwb3J0ZWQoaW4gRE9NU3RyaW5nIGNvbW1hbmQpOwogICAgICAgICBbQ29udmVydE51bGxTdHJp
bmdUbz1GYWxzZV0gRE9NU3RyaW5nIHF1ZXJ5Q29tbWFuZFZhbHVlKGluIERPTVN0cmluZyBjb21t
YW5kKTsKIAotICAgICAgICAvLyBJRSBleHRlbnNpb25zCisgICAgICAgIC8vIE1vdmVkIGRvd24g
ZnJvbSBIVE1MRG9jdW1lbnQKIAotI2lmICFkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKQor
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgdGl0bGU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcmVmZXJy
ZXI7CisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZG9tYWluOworI2Vs
c2UKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBkb21haW47CisjZW5kaWYK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBVUkw7CisKKyAgICAgICAgLy8g
RklYTUU6IHRoZSBET00gc3BlYyBzdGF0ZXMgdGhhdCB0aGlzIGF0dHJpYnV0ZSBjYW4gCisgICAg
ICAgIC8vIHJhaXNlIGFuIGV4Y2VwdGlvbiBvbiBzZXR0aW5nLgorICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgY29va2llCisgICAg
ICAgICAgICAgICAgICAgICAvKnNldHRlciByYWlzZXMgKERPTUV4Y2VwdGlvbikqLzsKKworICAg
ICAgICAvLyBGSVhNRTogdGhlIERPTSBzcGVjIGRvZXMgTk9UIGhhdmUgdGhpcyBhdHRyaWJ1dGUK
KyAgICAgICAgLy8gcmFpc2luZyBhbiBleGNlcHRpb24uCisgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBIVE1MRWxlbWVudCBib2R5CisgICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2Vz
IChET01FeGNlcHRpb24pOworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVj
dGlvbiBpbWFnZXM7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiBh
cHBsZXRzOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENvbGxlY3Rpb24gbGlua3M7
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiBmb3JtczsKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9uIGFuY2hvcnM7CisKKyAgICAgICAg
Tm9kZUxpc3QgZ2V0RWxlbWVudHNCeU5hbWUoaW4gRE9NU3RyaW5nIGVsZW1lbnROYW1lKTsKKwor
I2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIFtDdXN0b21dIFdpbmRvdyBsb2NhdGlvbjsKICNlbmRpZgorCisgICAgICAgIC8vIElFIGV4
dGVuc2lvbnMKKwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5n
VG89VW5kZWZpbmVkLCBDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGNoYXJzZXQ7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1VbmRlZmlu
ZWRdIERPTVN0cmluZyBkZWZhdWx0Q2hhcnNldDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFtDb252ZXJ0TnVsbFN0cmluZ1RvPVVuZGVmaW5lZF0gRE9NU3RyaW5nIHJlYWR5U3RhdGU7Cklu
ZGV4OiBXZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2h0bWwvSFRNTERvY3VtZW50LmNwcAkocmV2aXNpb24gMjE3MjcpCisrKyBXZWJDb3JlL2h0bWwv
SFRNTERvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODYsMzggKzg2LDYgQEAgSFRNTERv
Y3VtZW50Ojp+SFRNTERvY3VtZW50KCkKIHsKIH0KIAotU3RyaW5nIEhUTUxEb2N1bWVudDo6bGFz
dE1vZGlmaWVkKCkgY29uc3QKLXsKLSAgICBTdHJpbmcgbW9kaWZpZWRIZWFkZXI7Ci0gICAgaWYg
KEZyYW1lKiBmID0gZnJhbWUoKSkKLSAgICAgICAgaWYgKERvY3VtZW50TG9hZGVyKiBkb2N1bWVu
dExvYWRlciA9IGYtPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpKQotICAgICAgICAgICAgZG9j
dW1lbnRMb2FkZXItPmdldFJlc3BvbnNlTW9kaWZpZWRIZWFkZXIobW9kaWZpZWRIZWFkZXIpOwot
ICAgIHJldHVybiBtb2RpZmllZEhlYWRlcjsKLX0KLQotU3RyaW5nIEhUTUxEb2N1bWVudDo6Y29v
a2llKCkgY29uc3QKLXsKLSAgICByZXR1cm4gY29va2llcyhVUkwoKSk7Ci19Ci0KLXZvaWQgSFRN
TERvY3VtZW50OjpzZXRDb29raWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKLXsKLSAgICBzZXRDb29r
aWVzKFVSTCgpLCBtX3BvbGljeUJhc2VVUkwuZGVwcmVjYXRlZFN0cmluZygpLCB2YWx1ZSk7Ci19
Ci0KLXZvaWQgSFRNTERvY3VtZW50OjpzZXRCb2R5KEhUTUxFbGVtZW50KiBuZXdCb2R5LCBFeGNl
cHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIW5ld0JvZHkpIHsgCi0gICAgICAgIGVjID0gSElF
UkFSQ0hZX1JFUVVFU1RfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIEhUTUxFbGVt
ZW50KiBiID0gYm9keSgpOwotICAgIGlmICghYikKLSAgICAgICAgZG9jdW1lbnRFbGVtZW50KCkt
PmFwcGVuZENoaWxkKG5ld0JvZHksIGVjKTsKLSAgICBlbHNlCi0gICAgICAgIGRvY3VtZW50RWxl
bWVudCgpLT5yZXBsYWNlQ2hpbGQobmV3Qm9keSwgYiwgZWMpOwotfQotCiBpbnQgSFRNTERvY3Vt
ZW50Ojp3aWR0aCgpIGNvbnN0CiB7CiAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB2aWV3KCk7
CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9odG1sL0hUTUxEb2N1bWVudC5oCShyZXZpc2lvbiAyMTcyNykKKysrIFdlYkNvcmUvaHRtbC9I
VE1MRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsMTIgKzM4LDYgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCBib29sIGlzSFRNTERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQogCi0gICAgU3RyaW5nIGxhc3RNb2RpZmllZCgpIGNvbnN0OwotICAgIFN0cmluZyBjb29raWUo
KSBjb25zdDsKLSAgICB2b2lkIHNldENvb2tpZShjb25zdCBTdHJpbmcmKTsKLQotICAgIHZvaWQg
c2V0Qm9keShIVE1MRWxlbWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKLQogICAgIGludCB3aWR0aCgp
IGNvbnN0OwogICAgIGludCBoZWlnaHQoKSBjb25zdDsKIApJbmRleDogV2ViQ29yZS9odG1sL0hU
TUxEb2N1bWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5p
ZGwJKHJldmlzaW9uIDIxNzI3KQorKysgV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTIxLDM2ICsyMSwxMCBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50
ZXJmYWNlIFtHZW5lcmF0ZUNvbnN0cnVjdG9yLCBIYXNPdmVycmlkaW5nTmFtZUdldHRlcl0gSFRN
TERvY3VtZW50IDogRG9jdW1lbnQgewotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdGl0bGU7Ci0gICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgcmVmZXJyZXI7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NS
SVBUKQotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRvbWFpbjsKLSNlbHNl
Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZG9tYWluOwotI2VuZGlmCi0g
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgVVJMOwotICAgICAgICAgICAgICAg
IAotICAgICAgICAvLyBGSVhNRTogdGhlIERPTSBzcGVjIGRvZXMgTk9UIGhhdmUgdGhpcyBhdHRy
aWJ1dGUKLSAgICAgICAgLy8gcmFpc2luZyBhbiBleGNlcHRpb24uCi0gICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBIVE1MRWxlbWVudCBib2R5Ci0gICAgICAgICAgICAgICAgICAgICBzZXR0ZXIg
cmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiBpbWFnZXM7Ci0gICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiBhcHBsZXRzOwotICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgSFRNTENvbGxlY3Rpb24gbGlua3M7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBI
VE1MQ29sbGVjdGlvbiBmb3JtczsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xs
ZWN0aW9uIGFuY2hvcnM7Ci0gICAgICAgIAotICAgICAgICAvLyBGSVhNRTogdGhlIERPTSBzcGVj
IHN0YXRlcyB0aGF0IHRoaXMgYXR0cmlidXRlIGNhbiAKLSAgICAgICAgLy8gcmFpc2UgYW4gZXhj
ZXB0aW9uIG9uIHNldHRpbmcuCi0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBjb29raWUKLSAgICAgICAgICAgICAgICAgICAgIC8q
c2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKSovOwotCiAgICAgICAgIFtDdXN0b21dIHZvaWQg
b3BlbigpOwogICAgICAgICB2b2lkIGNsb3NlKCk7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgd3Jp
dGUoaW4gRE9NU3RyaW5nIHRleHQpOwogICAgICAgICBbQ3VzdG9tXSB2b2lkIHdyaXRlbG4oaW4g
RE9NU3RyaW5nIHRleHQpOwotICAgICAgICBOb2RlTGlzdCBnZXRFbGVtZW50c0J5TmFtZShpbiBE
T01TdHJpbmcgZWxlbWVudE5hbWUpOwogCiAgICAgICAgIC8vIEV4dGVuc2lvbnMKICAgICAgICAg
RWxlbWVudCBnZXRFbGVtZW50QnlJZChpbiBET01TdHJpbmcgZWxlbWVudElkKTsKQEAgLTU5LDE1
ICszMywxMSBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1M
Q29sbGVjdGlvbiBwbHVnaW5zOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENvbGxl
Y3Rpb24gc2NyaXB0czsKIAotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxh
c3RNb2RpZmllZDsKLQogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKICAgICAgICAg
Ly8gRklYTUU6IFRoZXNlIHNob3VsZCBldmVudHVhbGx5IGJlIGF2YWlsYWJsZSAoaWYgdGhleSBh
cmUgd2FudGVkKSBmb3IgYWxsIGxhbmd1YWdlcy4KIAogICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW0N1c3RvbSwgRGVsZXRhYmxlXSBIVE1MQ29sbGVjdGlvbiBhbGw7CiAKLSAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtDdXN0b21dIFdpbmRvdyBsb2NhdGlvbjsKLQogICAgICAgICBbQ3Vz
dG9tXSB2b2lkIGNsZWFyKCk7CiAjZW5kaWYKIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjE3MjcpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0MiBAQAor
MjAwNy0wNS0yNCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSB0ZXN0cyBmb3IgaHR0cDov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MDcKKyAgICAgICAgUkVHUkVTU0lP
TjogSmF2YVNjcmlwdCBleGNlcHRpb25zIG9uIHF1b3Rlcy5idXJudGVsZWN0cm9ucy5vcmcKKwor
ICAgICAgICBPcmlnaW5hbCBwYXRjaCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgorCisgICAgICAg
ICogZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCYXNlRWxlbWVudDAxLWV4cGVjdGVkLmNoZWNr
c3VtOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVs
ZW1lbnQwMS1leHBlY3RlZC5wbmc6IFJlbW92ZWQuCisgICAgICAgICogZG9tL3hodG1sL2xldmVs
Mi9odG1sL0hUTUxCYXNlRWxlbWVudDAxLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBkb20veGh0
bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDEueGh0bWw6CisgICAgICAgICogZG9tL3ho
dG1sL2xldmVsMi9odG1sL0hUTUxCYXNlRWxlbWVudDAyLWV4cGVjdGVkLmNoZWNrc3VtOiBSZW1v
dmVkLgorICAgICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMi1l
eHBlY3RlZC5wbmc6IFJlbW92ZWQuCisgICAgICAgICogZG9tL3hodG1sL2xldmVsMi9odG1sL0hU
TUxCYXNlRWxlbWVudDAyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwy
L2h0bWwvSFRNTEJhc2VFbGVtZW50MDIueGh0bWw6CisgICAgICAgICogZG9tL3hodG1sL2xldmVs
Mi9odG1sL0hUTUxCb2R5RWxlbWVudDA3LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBkb20veGh0
bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MDgtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQwOS1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDEwLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MTEt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVs
ZW1lbnQxMi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZG9tL3hodG1sL2xldmVsMi9odG1sL0hU
TUxEb2N1bWVudDAxLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0
bWwvSFRNTERvY3VtZW50MDItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGRvbS94aHRtbC9sZXZl
bDIvaHRtbC9IVE1MRG9jdW1lbnQwMy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZG9tL3hodG1s
L2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDA1LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBkb20v
eGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDctZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQwOS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDEwLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MTEtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQxMi1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDEz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3Vt
ZW50MTQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRtbC9kb2Mw
MS1leHBlY3RlZC50eHQ6CisgICAgICAgIFRoZXNlIG5vdyBwYXNzLiBDaGFuZ2VkIEhUTUxCYXNl
RWxlbWVudCogdG8gZHVtcCBhcyB0ZXh0LgorCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDogQWRkZWQgRG9jdW1lbnQucHJvdG90eXBlLmdl
dEVsZW1lbnRzQnlOYW1lCisKIDIwMDctMDUtMjQgIEtldmluIE1jQ3VsbG91Z2ggIDxrbWNjdWxs
b3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkuCkluZGV4OiBMYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDEtZXhwZWN0ZWQuY2hlY2tz
dW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxC
YXNlRWxlbWVudDAxLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAyMTcyNykKKysrIExheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMS1leHBlY3RlZC5j
aGVja3N1bQkod29ya2luZyBjb3B5KQpAQCAtMSArMCwwIEBACi1jYmE2ZWYwOTdkMTJhMzE0MmEw
MzhmYTJhMWM5ZGYzMwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMS1leHBlY3RlZC5wbmcK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4K
c3ZuOm1pbWUtdHlwZSA9IGltYWdlL3BuZwpJbmRleDogTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMi9odG1sL0hUTUxCYXNlRWxlbWVudDAxLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDEtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAyMTcyNykKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIv
aHRtbC9IVE1MQmFzZUVsZW1lbnQwMS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEs
OSArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTg3OiBVbmRlZmluZWQgdmFsdWUKLWxh
eWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAw
eDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NTAKLSAgUmVuZGVyQmxvY2sge2h0bWx9IGF0
ICgwLDApIHNpemUgODAweDUwCi0gICAgUmVuZGVyQm9keSB7Ym9keX0gYXQgKDgsMTYpIHNpemUg
Nzg0eDE4Ci0gICAgICBSZW5kZXJCbG9jayB7cH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgKLSAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNjl4MTgKLSAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwwKSB3aWR0aCA2OTogIlNvbWUgVGV4dCIKK1Rlc3QJaHR0cDovL3d3dy53My5v
cmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMQorU3Rh
dHVzCVN1Y2Nlc3MKKwpJbmRleDogTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hU
TUxCYXNlRWxlbWVudDAxLnhodG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMS54aHRtbAkocmV2aXNpb24gMjE3MjcpCisr
KyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDEueGh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTE3LDYgKzE3LDE1IEBAIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mIE1FUkNIQU5UQUJJTElUWSAKIFsxXSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xl
Z2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJlLTIwMDIxMjMxCiAqLwogCisgIC8vCisgIC8vICBX
ZWJLaXQgbW9kaWZpY2F0aW9uOiAxMy1NYXktMjAwNworICAvLworICAvLyAgSW5mb3JtIHRoZSB0
ZXN0IGNvbnRyb2xsZXIgdGhhdCB0aGlzIHRlc3QgaGFzIGEgdGV4dC1mb3JtYXQgcmVzdWx0IGFu
ZCBzbyBzaG91bGQKKyAgLy8gIGJlIGR1bXBlZCBhcyB0ZXh0LgorICAvLworICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKwogICBmdW5jdGlvbiBhc3NlcnRTaXplKGRlc2NyLCBleHBlY3RlZCwgYWN0dWFsKSB7
CiAgICAgdmFyIGFjdHVhbFNpemU7CiAgICAgYXNzZXJ0Tm90TnVsbChkZXNjciwgYWN0dWFsKTsK
SW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQw
Mi1leHBlY3RlZC5jaGVja3N1bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDItZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9u
IDIxNzI3KQorKysgTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCYXNlRWxl
bWVudDAyLWV4cGVjdGVkLmNoZWNrc3VtCSh3b3JraW5nIGNvcHkpCkBAIC0xICswLDAgQEAKLTYw
ZTE3NzI2ODdjYTk4NTA3MzgwNzVkOWU2YjFkNWJiClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpJbmRleDogTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCYXNlRWxlbWVu
dDAyLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBh
cyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCkluZGV4OiBMYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDItZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFz
ZUVsZW1lbnQwMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIxNzI3KQorKysgTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCYXNlRWxlbWVudDAyLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMSwxOSArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTg3OiBV
bmRlZmluZWQgdmFsdWUKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3
IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJl
bmRlckJsb2NrIHtodG1sfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgICBSZW5kZXJGcmFtZVNl
dCB7ZnJhbWVzZXR9IGF0ICgwLDApIHNpemUgODAweDYwMAotICAgICAgUmVuZGVyRnJhbWVTZXQg
e2ZyYW1lc2V0fSBhdCAoMCwwKSBzaXplIDE1OHg2MDAKLSAgICAgICAgUmVuZGVyRnJhbWUge2Zy
YW1lfSBhdCAoMCwwKSBzaXplIDE1OHgxOTgKLSAgICAgICAgICBsYXllciBhdCAoMCwwKSBzaXpl
IDE1OHgxOTgKLSAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxNTh4MTk4Ci0g
ICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTh4MTAKLSAgICAgICAgICAgIFJlbmRlckJs
b2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDE1OHgxMAotICAgICAgICAgICAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoNSwxMCkgc2l6ZSAxNDh4MAotICAgICAgUmVuZGVyRnJhbWUge2ZyYW1lfSBh
dCAoMTY0LDApIHNpemUgNjM2eDYwMAotICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDYzNng2
MDAKLSAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgNjM2eDYwMAotICAgICAgICBs
YXllciBhdCAoMCwwKSBzaXplIDYzNng4Ci0gICAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0
ICgwLDApIHNpemUgNjM2eDgKLSAgICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgp
IHNpemUgNjIweDAKK1Rlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMgorU3RhdHVzCVN1Y2Nlc3MKKwpJbmRleDogTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCYXNlRWxlbWVudDAyLnhodG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVs
ZW1lbnQwMi54aHRtbAkocmV2aXNpb24gMjE3MjcpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDIueGh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE3
LDYgKzE3LDE1IEBAIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSAKIFsx
XSBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3
YXJlLTIwMDIxMjMxCiAqLwogCisgIC8vCisgIC8vICBXZWJLaXQgbW9kaWZpY2F0aW9uOiAxMy1N
YXktMjAwNworICAvLworICAvLyAgSW5mb3JtIHRoZSB0ZXN0IGNvbnRyb2xsZXIgdGhhdCB0aGlz
IHRlc3QgaGFzIGEgdGV4dC1mb3JtYXQgcmVzdWx0IGFuZCBzbyBzaG91bGQKKyAgLy8gIGJlIGR1
bXBlZCBhcyB0ZXh0LgorICAvLworICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKwogICBmdW5jdGlvbiBhc3Nl
cnRTaXplKGRlc2NyLCBleHBlY3RlZCwgYWN0dWFsKSB7CiAgICAgdmFyIGFjdHVhbFNpemU7CiAg
ICAgYXNzZXJ0Tm90TnVsbChkZXNjciwgYWN0dWFsKTsKSW5kZXg6IExheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQwNy1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDA3
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE3MjcpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MDctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMiBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDA3Ci1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJ
VHlwZUVycm9yOiBVbmRlZmluZWQgdmFsdWUKK1N0YXR1cwlTdWNjZXNzCkluZGV4OiBMYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MDgtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9k
eUVsZW1lbnQwOC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIxNzI3KQorKysgTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDA4LWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDIgQEAKIFRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9E
T00tVGVzdC1TdWl0ZS9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQwOAotU3RhdHVzCWVycm9y
Ci1NZXNzYWdlCVR5cGVFcnJvcjogVW5kZWZpbmVkIHZhbHVlCitTdGF0dXMJU3VjY2VzcwpJbmRl
eDogTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDA5LWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0
bWwvSFRNTEJvZHlFbGVtZW50MDktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTcyNykKKysrIExh
eW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQwOS1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyIEBACiBUZXN0CWh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MDkKLVN0
YXR1cwllcnJvcgotTWVzc2FnZQlUeXBlRXJyb3I6IFVuZGVmaW5lZCB2YWx1ZQorU3RhdHVzCVN1
Y2Nlc3MKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVs
ZW1lbnQxMC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDEwLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE3
MjcpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50
MTAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMiBAQAogVGVzdAlodHRw
Oi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxCb2R5RWxl
bWVudDEwCi1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBVbmRlZmluZWQgdmFsdWUK
K1N0YXR1cwlTdWNjZXNzCkluZGV4OiBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwv
SFRNTEJvZHlFbGVtZW50MTEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQxMS1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDIxNzI3KQorKysgTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxC
b2R5RWxlbWVudDExLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIgQEAK
IFRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDIvaHRtbC9I
VE1MQm9keUVsZW1lbnQxMQotU3RhdHVzCWVycm9yCi1NZXNzYWdlCVR5cGVFcnJvcjogVW5kZWZp
bmVkIHZhbHVlCitTdGF0dXMJU3VjY2VzcwpJbmRleDogTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDEyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MTItZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAyMTcyNykKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIv
aHRtbC9IVE1MQm9keUVsZW1lbnQxMi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwyIEBACiBUZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MTIKLVN0YXR1cwllcnJvcgotTWVzc2FnZQlUeXBlRXJy
b3I6IFVuZGVmaW5lZCB2YWx1ZQorU3RhdHVzCVN1Y2Nlc3MKSW5kZXg6IExheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQwMS1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDAxLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMjE3MjcpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwyL2h0bWwvSFRNTERvY3VtZW50MDEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMiBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMi9odG1sL0hUTUxEb2N1bWVudDAxCi1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQl0aXRsZUxp
bms6IGFzc2VydEVxdWFscyBmYWlsZWQsIGFjdHVhbCBudWxsLCBleHBlY3RlZCBOSVNUIERPTSBI
VE1MIFRlc3QgLSBET0NVTUVOVC4KK1N0YXR1cwlTdWNjZXNzCkluZGV4OiBMYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDItZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQwMi1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDIxNzI3KQorKysgTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMi9odG1sL0hUTUxEb2N1bWVudDAyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDIgQEAKIFRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQwMgotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJcmVmZXJy
ZXJMaW5rOiBhc3NlcnRFcXVhbHMgZmFpbGVkLCBhY3R1YWwgbnVsbCwgZXhwZWN0ZWQgLgorU3Rh
dHVzCVN1Y2Nlc3MKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1M
RG9jdW1lbnQwMy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDAzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE3
MjcpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDMt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMiBAQAogVGVzdAlodHRwOi8v
d3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDAz
Ci1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQlkb21haW5MaW5rOiBhc3NlcnRFcXVhbHMgZmFpbGVk
LCBhY3R1YWwgbnVsbCwgZXhwZWN0ZWQgLgorU3RhdHVzCVN1Y2Nlc3MKSW5kZXg6IExheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQwNS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVu
dDA1LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE3MjcpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMiBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1
aXRlL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDA1Ci1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlw
ZUVycm9yOiBVbmRlZmluZWQgdmFsdWUKK1N0YXR1cwlTdWNjZXNzCkluZGV4OiBMYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDctZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQw
Ny1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIxNzI3KQorKysgTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDA3LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDIgQEAKIFRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0
ZS9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQwNwotU3RhdHVzCWVycm9yCi1NZXNzYWdlCVR5cGVF
cnJvcjogVW5kZWZpbmVkIHZhbHVlCitTdGF0dXMJU3VjY2VzcwpJbmRleDogTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDA5LWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDkt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTcyNykKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQwOS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwyIEBACiBUZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUv
bGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDkKLVN0YXR1cwllcnJvcgotTWVzc2FnZQlUeXBlRXJy
b3I6IFVuZGVmaW5lZCB2YWx1ZQorU3RhdHVzCVN1Y2Nlc3MKSW5kZXg6IExheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQxMC1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDEwLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMjE3MjcpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwyL2h0bWwvSFRNTERvY3VtZW50MTAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMiBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMi9odG1sL0hUTUxEb2N1bWVudDEwCi1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9y
OiBVbmRlZmluZWQgdmFsdWUKK1N0YXR1cwlTdWNjZXNzCkluZGV4OiBMYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MTEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQxMS1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDIxNzI3KQorKysgTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
Mi9odG1sL0hUTUxEb2N1bWVudDExLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIgQEAKIFRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZl
bDIvaHRtbC9IVE1MRG9jdW1lbnQxMQotU3RhdHVzCWVycm9yCi1NZXNzYWdlCVR5cGVFcnJvcjog
VW5kZWZpbmVkIHZhbHVlCitTdGF0dXMJU3VjY2VzcwpJbmRleDogTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDEyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MTItZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAyMTcyNykKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIv
aHRtbC9IVE1MRG9jdW1lbnQxMi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyIEBACiBUZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwy
L2h0bWwvSFRNTERvY3VtZW50MTIKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCWNvb2tpZUxpbms6
IGFzc2VydEVxdWFscyBmYWlsZWQsIGFjdHVhbCBudWxsLCBleHBlY3RlZCAuCitTdGF0dXMJU3Vj
Y2VzcwpJbmRleDogTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVu
dDEzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwyL2h0bWwvSFRNTERvY3VtZW50MTMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTcyNykKKysr
IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQxMy1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyIEBACiBUZXN0CWh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MTMKLVN0YXR1
cwllcnJvcgotTWVzc2FnZQlUeXBlRXJyb3I6IFZhbHVlIHVuZGVmaW5lZCAocmVzdWx0IG9mIGV4
cHJlc3Npb24gZG9jLmdldEVsZW1lbnRzQnlOYW1lKSBpcyBub3Qgb2JqZWN0LgorU3RhdHVzCVN1
Y2Nlc3MKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1l
bnQxNC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMi9odG1sL0hUTUxEb2N1bWVudDE0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE3MjcpCisr
KyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MTQtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMiBAQAogVGVzdAlodHRwOi8vd3d3Lncz
Lm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDE0Ci1TdGF0
dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBWYWx1ZSB1bmRlZmluZWQgKHJlc3VsdCBvZiBl
eHByZXNzaW9uIGRvYy5nZXRFbGVtZW50c0J5TmFtZSkgaXMgbm90IG9iamVjdC4KK1N0YXR1cwlT
dWNjZXNzCkluZGV4OiBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvZG9jMDEtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRt
bC9kb2MwMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIxNzI3KQorKysgTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMi9odG1sL2RvYzAxLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDIgQEAKIFRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDIvaHRtbC9kb2MwMQotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJdGl0bGVMaW5rOiBhc3Nl
cnRFcXVhbHMgZmFpbGVkLCBhY3R1YWwgbnVsbCwgZXhwZWN0ZWQgTklTVCBET00gSFRNTCBUZXN0
IC0gQW5jaG9yLgorU3RhdHVzCVN1Y2Nlc3MKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMjE3MjcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3Bl
cnRpZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yNTgsNiArMjU4LDcgQEAgd2lu
ZG93LkRvY3VtZW50LnByb3RvdHlwZS5lbGVtZW50RnJvbVBvaQogd2luZG93LkRvY3VtZW50LnBy
b3RvdHlwZS5ldmFsdWF0ZSBbZnVuY3Rpb25dCiB3aW5kb3cuRG9jdW1lbnQucHJvdG90eXBlLmV4
ZWNDb21tYW5kIFtmdW5jdGlvbl0KIHdpbmRvdy5Eb2N1bWVudC5wcm90b3R5cGUuZ2V0RWxlbWVu
dEJ5SWQgW2Z1bmN0aW9uXQord2luZG93LkRvY3VtZW50LnByb3RvdHlwZS5nZXRFbGVtZW50c0J5
TmFtZSBbZnVuY3Rpb25dCiB3aW5kb3cuRG9jdW1lbnQucHJvdG90eXBlLmdldEVsZW1lbnRzQnlU
YWdOYW1lIFtmdW5jdGlvbl0KIHdpbmRvdy5Eb2N1bWVudC5wcm90b3R5cGUuZ2V0RWxlbWVudHNC
eVRhZ05hbWVOUyBbZnVuY3Rpb25dCiB3aW5kb3cuRG9jdW1lbnQucHJvdG90eXBlLmdldE92ZXJy
aWRlU3R5bGUgW2Z1bmN0aW9uXQo=
</data>
<flag name="review"
          id="6051"
          type_id="1"
          status="-"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15586</attachid>
            <date>2007-07-19 11:36:33 -0700</date>
            <delta_ts>2007-08-01 12:13:25 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>13707r4_patch.txt</filename>
            <type>text/plain</type>
            <size>33987</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNDQ0NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDMgQEAKKzIwMDctMDctMTkgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJr
aXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFBhdGNoIGZvciBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzcwNwor
ICAgICAgICBSRUdSRVNTSU9OOiBKYXZhU2NyaXB0IGV4Y2VwdGlvbnMgb24gcXVvdGVzLmJ1cm50
ZWxlY3Ryb25zLm9yZworCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyNjI4CisgICAgICAgIGRvY3VtZW50LmJvZHkgaXMgbm90IHN1cHBvcnRlZCBpbiBY
SFRNTCBkb2N1bWVudHMKKworICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDIxMworICAgICAgICBPbiBwYWdlIHdpdGggTUlNRSB0eXBlIGFwcGxpY2F0aW9u
L3hodG1sK3htbCwgY29va2llIGRvbid0IHdvcmsKKworICAgICAgICBNb3ZlZCBhIGJ1bmNoIG9m
IG1ldGhvZHMgYW5kIHByb3BlcnRpZXMgZnJvbSBIVE1MRG9jdW1lbnQgZG93biBpbnRvIERvY3Vt
ZW50IHRvIG1ha2UKKyAgICAgICAgdGhlbSBhdmFpbGFibGUgZm9yIGFsbCBkb2N1bWVudHMgKHht
bCwgc3ZnKS4KKyAgICAgICAgV2hhdCB3YXMga2VwdCBpbiBIVE1MRG9jdW1lbnQ6CisgICAgICAg
IC0gc29tZSBtZXRob2RzIGFuZCBwcm9wZXJ0aWVzIHRoYXQgYXJlIG5vdCBpbiBIVE1MNSAoeWV0
Pyk7CisgICAgICAgIC0gb3Blbi93cml0ZS93cml0ZWxuL2Nsb3NlLCBhcyB0aGV5IHdpbGwgbmVl
ZCB0byBiZSBtb2RpZmllZCB0byB3b3JrIG9uIFhNTCBkb2N1bWVudHMsIGFuZCBhcmVuJ3QKKyAg
ICAgICAgb2YgbXVjaCB1c2UgZm9yIHRob3NlIGFueXdheTsKKyAgICAgICAgLSBkZXNpZ25Nb2Rl
LCBiZWNhdXNlIGl0cyBkZWZpbml0aW9uIGluIEhUTUw1IGlzIGluY29tcGF0aWJsZSB3aXRoIG91
ciBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgor
CisgICAgICAgICogYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU0RvY3VtZW50Ojpsb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpKU0RvY3Vt
ZW50OjpzZXRMb2NhdGlvbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNIVE1MRG9jdW1lbnRD
dXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNlcy5o
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6c2V0Qm9keSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y29va2llKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRDb29raWUpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6Omxhc3RNb2RpZmllZCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6dGl0bGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5pZGw6
CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTERv
Y3VtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnQuaWRsOgorCiAyMDA3LTA3LTE5
ICBBbnR0aSAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKb2huLgpJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCShyZXZpc2lvbiAy
NDQ0NykKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIxLDYgKzIxLDggQEAKICNpbmNsdWRlICJKU0RvY3VtZW50LmgiCiAKICNp
bmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVM
b2FkZXIuaCIKICNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxEb2N1
bWVudC5oIgogI2luY2x1ZGUgImtqc19iaW5kaW5nLmgiCkBAIC00MSw2ICs0MywzNSBAQCB2b2lk
IEpTRG9jdW1lbnQ6Om1hcmsoKQogICAgIFNjcmlwdEludGVycHJldGVyOjptYXJrRE9NTm9kZXNG
b3JEb2N1bWVudChzdGF0aWNfY2FzdDxEb2N1bWVudCo+KGltcGwoKSkpOwogfQogCitKU1ZhbHVl
KiBKU0RvY3VtZW50Ojpsb2NhdGlvbihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgRnJh
bWUqIGZyYW1lID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihpbXBsKCkpLT5mcmFtZSgpOworICAg
IGlmICghZnJhbWUpCisgICAgICAgIHJldHVybiBqc051bGwoKTsKKworICAgIFdpbmRvdyogd2lu
ID0gV2luZG93OjpyZXRyaWV2ZVdpbmRvdyhmcmFtZSk7CisgICAgQVNTRVJUKHdpbik7CisgICAg
cmV0dXJuIHdpbi0+bG9jYXRpb24oKTsKK30KKwordm9pZCBKU0RvY3VtZW50OjpzZXRMb2NhdGlv
bihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUqIHZhbHVlKQoreworICAgIEZyYW1lKiBmcmFtZSA9
IHN0YXRpY19jYXN0PERvY3VtZW50Kj4oaW1wbCgpKS0+ZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1l
KQorICAgICAgICByZXR1cm47CisKKyAgICBTdHJpbmcgc3RyID0gdmFsdWUtPnRvU3RyaW5nKGV4
ZWMpOworCisgICAgLy8gV2hlbiBhc3NpZ25pbmcgbG9jYXRpb24sIElFIGFuZCBNb3ppbGxhIGJv
dGggcmVzb2x2ZSB0aGUgVVJMCisgICAgLy8gcmVsYXRpdmUgbm90IHRoZSB0YXJnZXQgZnJhbWUu
CisgICAgRnJhbWUqIGFjdGl2ZUZyYW1lID0gc3RhdGljX2Nhc3Q8U2NyaXB0SW50ZXJwcmV0ZXIq
PihleGVjLT5keW5hbWljSW50ZXJwcmV0ZXIoKSktPmZyYW1lKCk7CisgICAgaWYgKGFjdGl2ZUZy
YW1lKQorICAgICAgICBzdHIgPSBhY3RpdmVGcmFtZS0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwo
c3RyKTsKKworICAgIGJvb2wgdXNlckdlc3R1cmUgPSBzdGF0aWNfY2FzdDxTY3JpcHRJbnRlcnBy
ZXRlcio+KGV4ZWMtPmR5bmFtaWNJbnRlcnByZXRlcigpKS0+d2FzUnVuQnlVc2VyR2VzdHVyZSgp
OworICAgIGZyYW1lLT5sb2FkZXIoKS0+c2NoZWR1bGVMb2NhdGlvbkNoYW5nZShzdHIsIGFjdGl2
ZUZyYW1lLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpLCBmYWxzZSwgdXNlckdlc3R1cmUp
OworfQorCiBKU1ZhbHVlKiB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgRG9jdW1lbnQqIGRvYykKIHsK
ICAgICBpZiAoIWRvYykKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRG9jdW1lbnRD
dXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRG9jdW1l
bnRDdXN0b20uY3BwCShyZXZpc2lvbiAyNDQ0NykKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNI
VE1MRG9jdW1lbnRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw2IEBACiAj
aW5jbHVkZSAiSlNIVE1MRG9jdW1lbnQuaCIKIAogI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVk
ZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJIVE1MQm9keUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgpAQCAtOTAsMzUg
Kzg5LDYgQEAgdm9pZCBKU0hUTUxEb2N1bWVudDo6c2V0QWxsKEV4ZWNTdGF0ZSosIAogICAgIHB1
dERpcmVjdCgiYWxsIiwgdmFsdWUpOwogfQogCi1KU1ZhbHVlKiBKU0hUTUxEb2N1bWVudDo6bG9j
YXRpb24oRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAgIEZyYW1lKiBmcmFtZSA9IHN0YXRp
Y19jYXN0PEhUTUxEb2N1bWVudCo+KGltcGwoKSktPmZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkK
LSAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwotCi0gICAgV2luZG93KiB3aW4gPSBXaW5kb3c6OnJl
dHJpZXZlV2luZG93KGZyYW1lKTsKLSAgICBBU1NFUlQod2luKTsKLSAgICByZXR1cm4gd2luLT5s
b2NhdGlvbigpOwotfQotCi12b2lkIEpTSFRNTERvY3VtZW50OjpzZXRMb2NhdGlvbihFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUqIHZhbHVlKQotewotICAgIEZyYW1lKiBmcmFtZSA9IHN0YXRpY19j
YXN0PEhUTUxEb2N1bWVudCo+KGltcGwoKSktPmZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgU3RyaW5nIHN0ciA9IHZhbHVlLT50b1N0cmluZyhleGVjKTsK
LQotICAgIC8vIFdoZW4gYXNzaWduaW5nIGxvY2F0aW9uLCBJRSBhbmQgTW96aWxsYSBib3RoIHJl
c29sdmUgdGhlIFVSTAotICAgIC8vIHJlbGF0aXZlIG5vdCB0aGUgdGFyZ2V0IGZyYW1lLgotICAg
IEZyYW1lKiBhY3RpdmVGcmFtZSA9IHN0YXRpY19jYXN0PFNjcmlwdEludGVycHJldGVyKj4oZXhl
Yy0+ZHluYW1pY0ludGVycHJldGVyKCkpLT5mcmFtZSgpOwotICAgIGlmIChhY3RpdmVGcmFtZSkK
LSAgICAgICAgc3RyID0gYWN0aXZlRnJhbWUtPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHN0cik7
Ci0KLSAgICBib29sIHVzZXJHZXN0dXJlID0gc3RhdGljX2Nhc3Q8U2NyaXB0SW50ZXJwcmV0ZXIq
PihleGVjLT5keW5hbWljSW50ZXJwcmV0ZXIoKSktPndhc1J1bkJ5VXNlckdlc3R1cmUoKTsKLSAg
ICBmcmFtZS0+bG9hZGVyKCktPnNjaGVkdWxlTG9jYXRpb25DaGFuZ2Uoc3RyLCBhY3RpdmVGcmFt
ZS0+bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIoKSwgZmFsc2UsIHVzZXJHZXN0dXJlKTsKLX0K
LQogLy8gQ3VzdG9tIGZ1bmN0aW9ucwogCiBKU1ZhbHVlKiBKU0hUTUxEb2N1bWVudDo6b3BlbihF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IExpc3QmIGFyZ3MpCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L29iamMvUHVibGljRE9NSW50ZXJmYWNlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9QdWJsaWNET01JbnRlcmZhY2VzLmgJKHJldmlzaW9uIDI0NDQ3KQorKysgV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL1B1YmxpY0RPTUludGVyZmFjZXMuaAkod29ya2luZyBjb3B5KQpAQCAt
ODAsNiArODAsMTcgQEAKIEBwcm9wZXJ0eShyZWFkb25seSwgcmV0YWluKSBET01FbGVtZW50ICpk
b2N1bWVudEVsZW1lbnQ7CiBAcHJvcGVydHkocmVhZG9ubHksIHJldGFpbikgRE9NQWJzdHJhY3RW
aWV3ICpkZWZhdWx0VmlldzsKIEBwcm9wZXJ0eShyZWFkb25seSwgcmV0YWluKSBET01TdHlsZVNo
ZWV0TGlzdCAqc3R5bGVTaGVldHM7CitAcHJvcGVydHkocmVhZG9ubHksIHJldGFpbikgRE9NSFRN
TENvbGxlY3Rpb24gKmltYWdlczsKK0Bwcm9wZXJ0eShyZWFkb25seSwgcmV0YWluKSBET01IVE1M
Q29sbGVjdGlvbiAqYXBwbGV0czsKK0Bwcm9wZXJ0eShyZWFkb25seSwgcmV0YWluKSBET01IVE1M
Q29sbGVjdGlvbiAqbGlua3M7CitAcHJvcGVydHkocmVhZG9ubHksIHJldGFpbikgRE9NSFRNTENv
bGxlY3Rpb24gKmZvcm1zOworQHByb3BlcnR5KHJlYWRvbmx5LCByZXRhaW4pIERPTUhUTUxDb2xs
ZWN0aW9uICphbmNob3JzOworQHByb3BlcnR5KGNvcHkpIE5TU3RyaW5nICp0aXRsZTsKK0Bwcm9w
ZXJ0eShyZWFkb25seSwgY29weSkgTlNTdHJpbmcgKnJlZmVycmVyOworQHByb3BlcnR5KHJlYWRv
bmx5LCBjb3B5KSBOU1N0cmluZyAqZG9tYWluOworQHByb3BlcnR5KHJlYWRvbmx5LCBjb3B5KSBO
U1N0cmluZyAqVVJMOworQHByb3BlcnR5KHJldGFpbikgRE9NSFRNTEVsZW1lbnQgKmJvZHk7CitA
cHJvcGVydHkoY29weSkgTlNTdHJpbmcgKmNvb2tpZTsKIC0gKERPTUVsZW1lbnQgKiljcmVhdGVF
bGVtZW50OihOU1N0cmluZyAqKXRhZ05hbWU7CiAtIChET01Eb2N1bWVudEZyYWdtZW50ICopY3Jl
YXRlRG9jdW1lbnRGcmFnbWVudDsKIC0gKERPTVRleHQgKiljcmVhdGVUZXh0Tm9kZTooTlNTdHJp
bmcgKilkYXRhOwpAQCAtMTA5LDYgKzEyMCw3IEBACiAtIChET01DU1NTdHlsZURlY2xhcmF0aW9u
ICopZ2V0Q29tcHV0ZWRTdHlsZTooRE9NRWxlbWVudCAqKWVsZW1lbnQgcHNldWRvRWxlbWVudDoo
TlNTdHJpbmcgKilwc2V1ZG9FbGVtZW50OwogLSAoRE9NQ1NTUnVsZUxpc3QgKilnZXRNYXRjaGVk
Q1NTUnVsZXM6KERPTUVsZW1lbnQgKillbGVtZW50IHBzZXVkb0VsZW1lbnQ6KE5TU3RyaW5nICop
cHNldWRvRWxlbWVudDsKIC0gKERPTUNTU1J1bGVMaXN0ICopZ2V0TWF0Y2hlZENTU1J1bGVzOihE
T01FbGVtZW50ICopZWxlbWVudCBwc2V1ZG9FbGVtZW50OihOU1N0cmluZyAqKXBzZXVkb0VsZW1l
bnQgYXV0aG9yT25seTooQk9PTClhdXRob3JPbmx5OworLSAoRE9NTm9kZUxpc3QgKilnZXRFbGVt
ZW50c0J5TmFtZTooTlNTdHJpbmcgKillbGVtZW50TmFtZTsKICNpZmRlZiBFTkFCTEVfWFBBVEgK
IC0gKERPTVhQYXRoRXhwcmVzc2lvbiAqKWNyZWF0ZUV4cHJlc3Npb246KE5TU3RyaW5nICopZXhw
cmVzc2lvbiA6KGlkIDxET01YUGF0aE5TUmVzb2x2ZXI+KXJlc29sdmVyOwogLSAoRE9NWFBhdGhF
eHByZXNzaW9uICopY3JlYXRlRXhwcmVzc2lvbjooTlNTdHJpbmcgKilleHByZXNzaW9uIHJlc29s
dmVyOihpZCA8RE9NWFBhdGhOU1Jlc29sdmVyPilyZXNvbHZlcjsKQEAgLTM0NywyMyArMzU5LDEx
IEBACiBAZW5kCiAKIEBpbnRlcmZhY2UgRE9NSFRNTERvY3VtZW50IDogRE9NRG9jdW1lbnQKLUBw
cm9wZXJ0eShjb3B5KSBOU1N0cmluZyAqdGl0bGU7Ci1AcHJvcGVydHkocmVhZG9ubHksIGNvcHkp
IE5TU3RyaW5nICpyZWZlcnJlcjsKLUBwcm9wZXJ0eShyZWFkb25seSwgY29weSkgTlNTdHJpbmcg
KmRvbWFpbjsKLUBwcm9wZXJ0eShyZWFkb25seSwgY29weSkgTlNTdHJpbmcgKlVSTDsKLUBwcm9w
ZXJ0eShyZXRhaW4pIERPTUhUTUxFbGVtZW50ICpib2R5OwotQHByb3BlcnR5KHJlYWRvbmx5LCBy
ZXRhaW4pIERPTUhUTUxDb2xsZWN0aW9uICppbWFnZXM7Ci1AcHJvcGVydHkocmVhZG9ubHksIHJl
dGFpbikgRE9NSFRNTENvbGxlY3Rpb24gKmFwcGxldHM7Ci1AcHJvcGVydHkocmVhZG9ubHksIHJl
dGFpbikgRE9NSFRNTENvbGxlY3Rpb24gKmxpbmtzOwotQHByb3BlcnR5KHJlYWRvbmx5LCByZXRh
aW4pIERPTUhUTUxDb2xsZWN0aW9uICpmb3JtczsKLUBwcm9wZXJ0eShyZWFkb25seSwgcmV0YWlu
KSBET01IVE1MQ29sbGVjdGlvbiAqYW5jaG9yczsKLUBwcm9wZXJ0eShjb3B5KSBOU1N0cmluZyAq
Y29va2llOwogLSAodm9pZClvcGVuOwogLSAodm9pZCljbG9zZTsKIC0gKHZvaWQpd3JpdGU6KE5T
U3RyaW5nICopdGV4dDsKIC0gKHZvaWQpd3JpdGVsbjooTlNTdHJpbmcgKil0ZXh0OwogLSAoRE9N
RWxlbWVudCAqKWdldEVsZW1lbnRCeUlkOihOU1N0cmluZyAqKWVsZW1lbnRJZDsKLS0gKERPTU5v
ZGVMaXN0ICopZ2V0RWxlbWVudHNCeU5hbWU6KE5TU3RyaW5nICopZWxlbWVudE5hbWU7CiBAZW5k
CiAKIEBpbnRlcmZhY2UgRE9NSFRNTEVsZW1lbnQgOiBET01FbGVtZW50CkluZGV4OiBXZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CShyZXZpc2lvbiAyNDQ0NykKKysrIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNs
dWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ29tbWVudC5oIgorI2luY2x1ZGUg
IkNvb2tpZUphci5oIgogI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgiCiAjaW5jbHVkZSAi
RG9jTG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgpAQCAtMTMxMSw2ICsx
MzEyLDIwIEBAIEhUTUxFbGVtZW50KiBEb2N1bWVudDo6Ym9keSgpCiAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PEhUTUxFbGVtZW50Kj4oYm9keSk7CiB9CiAKK3ZvaWQgRG9jdW1lbnQ6OnNldEJvZHko
SFRNTEVsZW1lbnQqIG5ld0JvZHksIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghbmV3
Qm9keSkgeyAKKyAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVTVF9FUlI7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBIVE1MRWxlbWVudCogYiA9IGJvZHkoKTsKKyAgICBpZiAoIWIp
CisgICAgICAgIGRvY3VtZW50RWxlbWVudCgpLT5hcHBlbmRDaGlsZChuZXdCb2R5LCBlYyk7Cisg
ICAgZWxzZQorICAgICAgICBkb2N1bWVudEVsZW1lbnQoKS0+cmVwbGFjZUNoaWxkKG5ld0JvZHks
IGIsIGVjKTsKK30KKwogSFRNTEhlYWRFbGVtZW50KiBEb2N1bWVudDo6aGVhZCgpCiB7CiAgICAg
Tm9kZSogZGUgPSBkb2N1bWVudEVsZW1lbnQoKTsKQEAgLTI0NzgsNiArMjQ5MywxNiBAQCBFbGVt
ZW50KiBEb2N1bWVudDo6b3duZXJFbGVtZW50KCkgY29uc3QKICAgICByZXR1cm4gZnJhbWUoKS0+
b3duZXJFbGVtZW50KCk7CiB9CiAKK1N0cmluZyBEb2N1bWVudDo6Y29va2llKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gY29va2llcyhVUkwoKSk7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnNldENvb2tp
ZShjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIHNldENvb2tpZXMoVVJMKCksIG1fcG9saWN5
QmFzZVVSTC5kZXByZWNhdGVkU3RyaW5nKCksIHZhbHVlKTsKK30KKwogU3RyaW5nIERvY3VtZW50
OjpyZWZlcnJlcigpIGNvbnN0CiB7CiAgICAgaWYgKGZyYW1lKCkpCkBAIC0yNTE3LDYgKzI1NDIs
MTYgQEAgdm9pZCBEb2N1bWVudDo6c2V0RG9tYWluKGNvbnN0IFN0cmluZyAmbgogICAgIH0KIH0K
IAorU3RyaW5nIERvY3VtZW50OjpsYXN0TW9kaWZpZWQoKSBjb25zdAoreworICAgIFN0cmluZyBt
b2RpZmllZEhlYWRlcjsKKyAgICBpZiAoRnJhbWUqIGYgPSBmcmFtZSgpKSB7CisgICAgICAgIGlm
IChEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBmLT5sb2FkZXIoKS0+ZG9jdW1lbnRM
b2FkZXIoKSkKKyAgICAgICAgICAgIGRvY3VtZW50TG9hZGVyLT5nZXRSZXNwb25zZU1vZGlmaWVk
SGVhZGVyKG1vZGlmaWVkSGVhZGVyKTsKKyAgICB9CisgICAgcmV0dXJuIG1vZGlmaWVkSGVhZGVy
OworfQorCiBib29sIERvY3VtZW50Ojppc1ZhbGlkTmFtZShjb25zdCBTdHJpbmcgJm5hbWUpCiB7
CiAgICAgY29uc3QgVUNoYXIqIHMgPSByZWludGVycHJldF9jYXN0PGNvbnN0IFVDaGFyKj4obmFt
ZS5jaGFyYWN0ZXJzKCkpOwpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1bWVudC5oCShyZXZpc2lvbiAyNDQ0NykKKysrIFdlYkNvcmUv
ZG9tL0RvY3VtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIwMSwxMSArMjAxLDYgQEAgcHVibGlj
OgogICAgIAogICAgIFBhc3NSZWZQdHI8TmFtZU5vZGVMaXN0PiBnZXRFbGVtZW50c0J5TmFtZShj
b25zdCBTdHJpbmcmIGVsZW1lbnROYW1lKTsKIAotICAgIC8vIEFjdHVhbGx5IHBhcnQgb2YgSlNI
VE1MRG9jdW1lbnQsIGJ1dCB1c2VkIGZvciBnaXZpbmcgWE1MIGRvY3VtZW50cyBhIHdpbmRvdyB0
aXRsZSBhcyB3ZWxsCi0gICAgU3RyaW5nIHRpdGxlKCkgY29uc3QgeyByZXR1cm4gbV90aXRsZTsg
fQotICAgIHZvaWQgc2V0VGl0bGUoY29uc3QgU3RyaW5nJiwgRWxlbWVudCogdGl0bGVFbGVtZW50
ID0gMCk7Ci0gICAgdm9pZCByZW1vdmVUaXRsZShFbGVtZW50KiB0aXRsZUVsZW1lbnQpOwotCiAg
ICAgUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gaW1hZ2VzKCk7CiAgICAgUGFzc1JlZlB0cjxI
VE1MQ29sbGVjdGlvbj4gZW1iZWRzKCk7CiAgICAgUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4g
cGx1Z2lucygpOyAvLyBhbiBhbGlhcyBmb3IgZW1iZWRzKCkgcmVxdWlyZWQgZm9yIHRoZSBKUyBE
T00gYmluZGluZ3MuCkBAIC01MzIsMTAgKzUyNywyMCBAQCBwdWJsaWM6CiAgICAgLy8gUmV0dXJu
cyB0aGUgb3duaW5nIGVsZW1lbnQgaW4gdGhlIHBhcmVudCBkb2N1bWVudC4KICAgICAvLyBSZXR1
cm5zIDAgaWYgdGhpcyBpcyB0aGUgdG9wIGxldmVsIGRvY3VtZW50LgogICAgIEVsZW1lbnQqIG93
bmVyRWxlbWVudCgpIGNvbnN0OwotICAgIAorCisgICAgU3RyaW5nIHRpdGxlKCkgY29uc3QgeyBy
ZXR1cm4gbV90aXRsZTsgfQorICAgIHZvaWQgc2V0VGl0bGUoY29uc3QgU3RyaW5nJiwgRWxlbWVu
dCogdGl0bGVFbGVtZW50ID0gMCk7CisgICAgdm9pZCByZW1vdmVUaXRsZShFbGVtZW50KiB0aXRs
ZUVsZW1lbnQpOworCisgICAgU3RyaW5nIGNvb2tpZSgpIGNvbnN0OworICAgIHZvaWQgc2V0Q29v
a2llKGNvbnN0IFN0cmluZyYpOworCiAgICAgU3RyaW5nIHJlZmVycmVyKCkgY29uc3Q7CisKICAg
ICBTdHJpbmcgZG9tYWluKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXREb21haW4oY29uc3QgU3RyaW5n
JiBuZXdEb21haW4sIGJvb2wgZm9yY2UgPSBmYWxzZSk7IC8vIG5vdCBwYXJ0IG9mIHRoZSBET00K
KyAgICB2b2lkIHNldERvbWFpbihjb25zdCBTdHJpbmcmIG5ld0RvbWFpbiwgYm9vbCBmb3JjZSA9
IGZhbHNlKTsKKworICAgIFN0cmluZyBsYXN0TW9kaWZpZWQoKSBjb25zdDsKIAogICAgIFN0cmlu
ZyBwb2xpY3lCYXNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9wb2xpY3lCYXNlVVJMOyB9CiAgICAg
dm9pZCBzZXRQb2xpY3lCYXNlVVJMKGNvbnN0IFN0cmluZyYgcykgeyBtX3BvbGljeUJhc2VVUkwg
PSBzOyB9CkBAIC01NTgsNiArNTYzLDggQEAgcHVibGljOgogICAgIEhUTUxNYXBFbGVtZW50KiBn
ZXRJbWFnZU1hcChjb25zdCBTdHJpbmcmIFVSTCkgY29uc3Q7CiAKICAgICBIVE1MRWxlbWVudCog
Ym9keSgpOworICAgIHZvaWQgc2V0Qm9keShIVE1MRWxlbWVudCosIEV4Y2VwdGlvbkNvZGUmKTsK
KwogICAgIEhUTUxIZWFkRWxlbWVudCogaGVhZCgpOwogCiAgICAgU3RyaW5nIHRvU3RyaW5nKCkg
Y29uc3Q7CkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaWRsCShyZXZpc2lvbiAyNDQ0NykKKysrIFdlYkNvcmUvZG9tL0Rv
Y3VtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTQ0LDExICsxNDQsNDEgQEAgbW9kdWxlIGNv
cmUgewogICAgICAgICBib29sZWFuICAgICAgICAgICAgcXVlcnlDb21tYW5kU3VwcG9ydGVkKGlu
IERPTVN0cmluZyBjb21tYW5kKTsKICAgICAgICAgW0NvbnZlcnROdWxsU3RyaW5nVG89RmFsc2Vd
IERPTVN0cmluZyBxdWVyeUNvbW1hbmRWYWx1ZShpbiBET01TdHJpbmcgY29tbWFuZCk7CiAKLSAg
ICAgICAgLy8gSUUgZXh0ZW5zaW9ucworICAgICAgICAvLyBNb3ZlZCBkb3duIGZyb20gSFRNTERv
Y3VtZW50CiAKLSNpZiAhZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykKKyAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHRpdGxl
OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlZmVycmVyOworI2lmIGRl
ZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGRvbWFpbjsKKyNlbHNlCisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZG9tYWluOworI2VuZGlmCiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgVVJMOworCisgICAgICAgIC8vIEZJWE1FOiB0aGUg
RE9NIHNwZWMgc3RhdGVzIHRoYXQgdGhpcyBhdHRyaWJ1dGUgY2FuIAorICAgICAgICAvLyByYWlz
ZSBhbiBleGNlcHRpb24gb24gc2V0dGluZy4KKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGNvb2tpZQorICAgICAgICAgICAgICAg
ICAgICAgLypzZXR0ZXIgcmFpc2VzIChET01FeGNlcHRpb24pKi87CisKKyAgICAgICAgLy8gRklY
TUU6IHRoZSBET00gc3BlYyBkb2VzIE5PVCBoYXZlIHRoaXMgYXR0cmlidXRlCisgICAgICAgIC8v
IHJhaXNpbmcgYW4gZXhjZXB0aW9uLgorICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgSFRNTEVs
ZW1lbnQgYm9keQorICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0
aW9uKTsKKworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENvbGxlY3Rpb24gaW1hZ2Vz
OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENvbGxlY3Rpb24gYXBwbGV0czsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9uIGxpbmtzOworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgSFRNTENvbGxlY3Rpb24gZm9ybXM7CisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiBhbmNob3JzOworCisgICAgICAgIE5vZGVMaXN0IGdl
dEVsZW1lbnRzQnlOYW1lKGluIERPTVN0cmluZyBlbGVtZW50TmFtZSk7CisKKyNpZiBkZWZpbmVk
KExBTkdVQUdFX0pBVkFTQ1JJUFQpCisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9t
XSBMb2NhdGlvbiBsb2NhdGlvbjsKICNlbmRpZgorCisgICAgICAgIC8vIElFIGV4dGVuc2lvbnMK
KwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5nVG89VW5kZWZp
bmVkLCBDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGNoYXJzZXQ7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1VbmRlZmluZWRdIERPTVN0
cmluZyBkZWZhdWx0Q2hhcnNldDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb252ZXJ0
TnVsbFN0cmluZ1RvPVVuZGVmaW5lZF0gRE9NU3RyaW5nIHJlYWR5U3RhdGU7CkluZGV4OiBXZWJD
b3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRN
TERvY3VtZW50LmNwcAkocmV2aXNpb24gMjQ0NDcpCisrKyBXZWJDb3JlL2h0bWwvSFRNTERvY3Vt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODcsMzggKzg3LDYgQEAgSFRNTERvY3VtZW50Ojp+
SFRNTERvY3VtZW50KCkKIHsKIH0KIAotU3RyaW5nIEhUTUxEb2N1bWVudDo6bGFzdE1vZGlmaWVk
KCkgY29uc3QKLXsKLSAgICBTdHJpbmcgbW9kaWZpZWRIZWFkZXI7Ci0gICAgaWYgKEZyYW1lKiBm
ID0gZnJhbWUoKSkKLSAgICAgICAgaWYgKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciA9
IGYtPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpKQotICAgICAgICAgICAgZG9jdW1lbnRMb2Fk
ZXItPmdldFJlc3BvbnNlTW9kaWZpZWRIZWFkZXIobW9kaWZpZWRIZWFkZXIpOwotICAgIHJldHVy
biBtb2RpZmllZEhlYWRlcjsKLX0KLQotU3RyaW5nIEhUTUxEb2N1bWVudDo6Y29va2llKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gY29va2llcyhVUkwoKSk7Ci19Ci0KLXZvaWQgSFRNTERvY3VtZW50
OjpzZXRDb29raWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKLXsKLSAgICBzZXRDb29raWVzKFVSTCgp
LCBtX3BvbGljeUJhc2VVUkwuZGVwcmVjYXRlZFN0cmluZygpLCB2YWx1ZSk7Ci19Ci0KLXZvaWQg
SFRNTERvY3VtZW50OjpzZXRCb2R5KEhUTUxFbGVtZW50KiBuZXdCb2R5LCBFeGNlcHRpb25Db2Rl
JiBlYykKLXsKLSAgICBpZiAoIW5ld0JvZHkpIHsgCi0gICAgICAgIGVjID0gSElFUkFSQ0hZX1JF
UVVFU1RfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIEhUTUxFbGVtZW50KiBiID0g
Ym9keSgpOwotICAgIGlmICghYikKLSAgICAgICAgZG9jdW1lbnRFbGVtZW50KCktPmFwcGVuZENo
aWxkKG5ld0JvZHksIGVjKTsKLSAgICBlbHNlCi0gICAgICAgIGRvY3VtZW50RWxlbWVudCgpLT5y
ZXBsYWNlQ2hpbGQobmV3Qm9keSwgYiwgZWMpOwotfQotCiBpbnQgSFRNTERvY3VtZW50Ojp3aWR0
aCgpIGNvbnN0CiB7CiAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB2aWV3KCk7CkluZGV4OiBX
ZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hU
TUxEb2N1bWVudC5oCShyZXZpc2lvbiAyNDQ0NykKKysrIFdlYkNvcmUvaHRtbC9IVE1MRG9jdW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsMTIgKzM4LDYgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCBib29sIGlzSFRNTERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAg
U3RyaW5nIGxhc3RNb2RpZmllZCgpIGNvbnN0OwotICAgIFN0cmluZyBjb29raWUoKSBjb25zdDsK
LSAgICB2b2lkIHNldENvb2tpZShjb25zdCBTdHJpbmcmKTsKLQotICAgIHZvaWQgc2V0Qm9keShI
VE1MRWxlbWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKLQogICAgIGludCB3aWR0aCgpIGNvbnN0Owog
ICAgIGludCBoZWlnaHQoKSBjb25zdDsKIApJbmRleDogV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVu
dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5pZGwJKHJldmlz
aW9uIDI0NDQ3KQorKysgV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTIxLDM2ICsyMSwxMCBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIFtH
ZW5lcmF0ZUNvbnN0cnVjdG9yLCBIYXNPdmVycmlkaW5nTmFtZUdldHRlcl0gSFRNTERvY3VtZW50
IDogRG9jdW1lbnQgewotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nXSBET01TdHJpbmcgdGl0bGU7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgcmVmZXJyZXI7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQotICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRvbWFpbjsKLSNlbHNlCi0gICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZG9tYWluOwotI2VuZGlmCi0gICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgVVJMOwotICAgICAgICAgICAgICAgIAotICAgICAg
ICAvLyBGSVhNRTogdGhlIERPTSBzcGVjIGRvZXMgTk9UIGhhdmUgdGhpcyBhdHRyaWJ1dGUKLSAg
ICAgICAgLy8gcmFpc2luZyBhbiBleGNlcHRpb24uCi0gICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBIVE1MRWxlbWVudCBib2R5Ci0gICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzIChE
T01FeGNlcHRpb24pOwotICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiBpbWFnZXM7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBIVE1MQ29sbGVjdGlvbiBhcHBsZXRzOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRN
TENvbGxlY3Rpb24gbGlua3M7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVj
dGlvbiBmb3JtczsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9uIGFu
Y2hvcnM7Ci0gICAgICAgIAotICAgICAgICAvLyBGSVhNRTogdGhlIERPTSBzcGVjIHN0YXRlcyB0
aGF0IHRoaXMgYXR0cmlidXRlIGNhbiAKLSAgICAgICAgLy8gcmFpc2UgYW4gZXhjZXB0aW9uIG9u
IHNldHRpbmcuCi0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxT
dHJpbmddIERPTVN0cmluZyBjb29raWUKLSAgICAgICAgICAgICAgICAgICAgIC8qc2V0dGVyIHJh
aXNlcyAoRE9NRXhjZXB0aW9uKSovOwotCiAgICAgICAgIFtDdXN0b21dIHZvaWQgb3BlbigpOwog
ICAgICAgICB2b2lkIGNsb3NlKCk7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgd3JpdGUoaW4gRE9N
U3RyaW5nIHRleHQpOwogICAgICAgICBbQ3VzdG9tXSB2b2lkIHdyaXRlbG4oaW4gRE9NU3RyaW5n
IHRleHQpOwotICAgICAgICBOb2RlTGlzdCBnZXRFbGVtZW50c0J5TmFtZShpbiBET01TdHJpbmcg
ZWxlbWVudE5hbWUpOwogCiAgICAgICAgIC8vIEV4dGVuc2lvbnMKICAgICAgICAgRWxlbWVudCBn
ZXRFbGVtZW50QnlJZChpbiBET01TdHJpbmcgZWxlbWVudElkKTsKQEAgLTU5LDE1ICszMywxMSBA
QCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlv
biBwbHVnaW5zOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENvbGxlY3Rpb24gc2Ny
aXB0czsKIAotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhc3RNb2RpZmll
ZDsKLQogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKICAgICAgICAgLy8gRklYTUU6
IFRoZXNlIHNob3VsZCBldmVudHVhbGx5IGJlIGF2YWlsYWJsZSAoaWYgdGhleSBhcmUgd2FudGVk
KSBmb3IgYWxsIGxhbmd1YWdlcy4KIAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0N1c3Rv
bSwgRGVsZXRhYmxlXSBIVE1MQ29sbGVjdGlvbiBhbGw7CiAKLSAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtDdXN0b21dIExvY2F0aW9uIGxvY2F0aW9uOwotCiAgICAgICAgIFtDdXN0b21dIHZv
aWQgY2xlYXIoKTsKICNlbmRpZgogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDQ0NykKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDA3LTA3
LTE5ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGVzdHMgZm9yIGh0dHA6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzA3CisgICAgICAgIFJFR1JFU1NJ
T046IEphdmFTY3JpcHQgZXhjZXB0aW9ucyBvbiBxdW90ZXMuYnVybnRlbGVjdHJvbnMub3JnCisK
KyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDEtZXhwZWN0
ZWQuY2hlY2tzdW06IFJlbW92ZWQuCisgICAgICAgICogZG9tL3hodG1sL2xldmVsMi9odG1sL0hU
TUxCYXNlRWxlbWVudDAxLWV4cGVjdGVkLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBkb20veGh0
bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDEtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMS54aHRtbDoKKyAgICAgICAg
KiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDItZXhwZWN0ZWQuY2hlY2tz
dW06IFJlbW92ZWQuCisgICAgICAgICogZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCYXNlRWxl
bWVudDAyLWV4cGVjdGVkLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwy
L2h0bWwvSFRNTEJhc2VFbGVtZW50MDItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGRvbS94aHRt
bC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMi54aHRtbDoKKyAgICAgICAgKiBkb20veGh0
bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MDctZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQwOC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDA5LWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MTAt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVs
ZW1lbnQxMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZG9tL3hodG1sL2xldmVsMi9odG1sL0hU
TUxCb2R5RWxlbWVudDEyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwy
L2h0bWwvSFRNTERvY3VtZW50MDEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGRvbS94aHRtbC9s
ZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQwMi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZG9tL3ho
dG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDAzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBk
b20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDUtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQwNy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDA4LWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDktZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQxMC1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVu
dDExLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERv
Y3VtZW50MTItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRtbC9I
VE1MRG9jdW1lbnQxMy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZG9tL3hodG1sL2xldmVsMi9o
dG1sL0hUTUxEb2N1bWVudDE0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBkb20veGh0bWwvbGV2
ZWwyL2h0bWwvZG9jMDEtZXhwZWN0ZWQudHh0OgorICAgICAgICBUaGVzZSBub3cgcGFzcy4gQ2hh
bmdlZCBIVE1MQmFzZUVsZW1lbnQqIHRvIGR1bXAgYXMgdGV4dC4KKworICAgICAgICAqIGZhc3Qv
ZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQ6IEFkZGVkIERvY3VtZW50
LnByb3RvdHlwZS5nZXRFbGVtZW50c0J5TmFtZQorCiAyMDA3LTA3LTE5ICBBbnR0aSAgPGFudHRp
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKb2huLgpJbmRleDogTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCYXNlRWxlbWVudDAxLWV4cGVjdGVkLmNoZWNr
c3VtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1M
QmFzZUVsZW1lbnQwMS1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMjQ0NDcpCisrKyBMYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDEtZXhwZWN0ZWQu
Y2hlY2tzdW0JKHdvcmtpbmcgY29weSkKQEAgLTEgKzAsMCBAQAotY2JhNmVmMDk3ZDEyYTMxNDJh
MDM4ZmEyYTFjOWRmMzMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDEtZXhwZWN0ZWQucG5n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUu
CnN2bjptaW1lLXR5cGUgPSBpbWFnZS9wbmcKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCYXNlRWxlbWVudDAxLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMjQ0NDcpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwy
L2h0bWwvSFRNTEJhc2VFbGVtZW50MDEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
LDkgKzEsMiBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU4NzogVW5kZWZpbmVkIHZhbHVlCi1s
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDUwCi0gIFJlbmRlckJsb2NrIHtodG1sfSBh
dCAoMCwwKSBzaXplIDgwMHg1MAotICAgIFJlbmRlckJvZHkge2JvZHl9IGF0ICg4LDE2KSBzaXpl
IDc4NHgxOAotICAgICAgUmVuZGVyQmxvY2sge3B9IGF0ICgwLDApIHNpemUgNzg0eDE4Ci0gICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDY5eDE4Ci0gICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggNjk6ICJTb21lIFRleHQiCitUZXN0CWh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDEKK1N0
YXR1cwlTdWNjZXNzCkluZGV4OiBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRN
TEJhc2VFbGVtZW50MDEueGh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMi9odG1sL0hUTUxCYXNlRWxlbWVudDAxLnhodG1sCShyZXZpc2lvbiAyNDQ0NykKKysr
IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMS54aHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMTcsNiArMTcsMTUgQEAgdGhlIGltcGxpZWQgd2FycmFudHkg
b2YgTUVSQ0hBTlRBQklMSVRZIAogWzFdIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVn
YWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAwMjEyMzEKICovCiAKKyAgLy8KKyAgLy8gIFdl
YktpdCBtb2RpZmljYXRpb246IDEzLU1heS0yMDA3CisgIC8vCisgIC8vICBJbmZvcm0gdGhlIHRl
c3QgY29udHJvbGxlciB0aGF0IHRoaXMgdGVzdCBoYXMgYSB0ZXh0LWZvcm1hdCByZXN1bHQgYW5k
IHNvIHNob3VsZAorICAvLyAgYmUgZHVtcGVkIGFzIHRleHQuCisgIC8vCisgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworCiAgIGZ1bmN0aW9uIGFzc2VydFNpemUoZGVzY3IsIGV4cGVjdGVkLCBhY3R1YWwpIHsK
ICAgICB2YXIgYWN0dWFsU2l6ZTsKICAgICBhc3NlcnROb3ROdWxsKGRlc2NyLCBhY3R1YWwpOwpJ
bmRleDogTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCYXNlRWxlbWVudDAy
LWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMi1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24g
MjQ0NDcpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVt
ZW50MDItZXhwZWN0ZWQuY2hlY2tzdW0JKHdvcmtpbmcgY29weSkKQEAgLTEgKzAsMCBAQAotNjBl
MTc3MjY4N2NhOTg1MDczODA3NWQ5ZTZiMWQ1YmIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CkluZGV4OiBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50
MDItZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFz
IGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBpbWFnZS9wbmcKSW5kZXg6IExheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMi1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCYXNl
RWxlbWVudDAyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjQ0NDcpCisrKyBMYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDItZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDE5ICsxLDIgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1ODc6IFVu
ZGVmaW5lZCB2YWx1ZQotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVu
ZGVyQmxvY2sge2h0bWx9IGF0ICgwLDApIHNpemUgODAweDYwMAotICAgIFJlbmRlckZyYW1lU2V0
IHtmcmFtZXNldH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gICAgICBSZW5kZXJGcmFtZVNldCB7
ZnJhbWVzZXR9IGF0ICgwLDApIHNpemUgMTU4eDYwMAotICAgICAgICBSZW5kZXJGcmFtZSB7ZnJh
bWV9IGF0ICgwLDApIHNpemUgMTU4eDE5OAotICAgICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUg
MTU4eDE5OAotICAgICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDE1OHgxOTgKLSAg
ICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDE1OHgxMAotICAgICAgICAgICAgUmVuZGVyQmxv
Y2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTU4eDEwCi0gICAgICAgICAgICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg1LDEwKSBzaXplIDE0OHgwCi0gICAgICBSZW5kZXJGcmFtZSB7ZnJhbWV9IGF0
ICgxNjQsMCkgc2l6ZSA2MzZ4NjAwCi0gICAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgNjM2eDYw
MAotICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA2MzZ4NjAwCi0gICAgICAgIGxh
eWVyIGF0ICgwLDApIHNpemUgNjM2eDgKLSAgICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSA2MzZ4OAotICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkg
c2l6ZSA2MjB4MAorVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMi9odG1sL0hUTUxCYXNlRWxlbWVudDAyCitTdGF0dXMJU3VjY2VzcwpJbmRleDogTGF5b3V0
VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCYXNlRWxlbWVudDAyLnhodG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1l
bnQwMi54aHRtbAkocmV2aXNpb24gMjQ0NDcpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDIueGh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE3LDYg
KzE3LDE1IEBAIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSAKIFsxXSBo
dHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzIwMDIvY29weXJpZ2h0LXNvZnR3YXJl
LTIwMDIxMjMxCiAqLwogCisgIC8vCisgIC8vICBXZWJLaXQgbW9kaWZpY2F0aW9uOiAxMy1NYXkt
MjAwNworICAvLworICAvLyAgSW5mb3JtIHRoZSB0ZXN0IGNvbnRyb2xsZXIgdGhhdCB0aGlzIHRl
c3QgaGFzIGEgdGV4dC1mb3JtYXQgcmVzdWx0IGFuZCBzbyBzaG91bGQKKyAgLy8gIGJlIGR1bXBl
ZCBhcyB0ZXh0LgorICAvLworICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKwogICBmdW5jdGlvbiBhc3NlcnRT
aXplKGRlc2NyLCBleHBlY3RlZCwgYWN0dWFsKSB7CiAgICAgdmFyIGFjdHVhbFNpemU7CiAgICAg
YXNzZXJ0Tm90TnVsbChkZXNjciwgYWN0dWFsKTsKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQwNy1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDA3LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMjQ0NDcpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MDctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMiBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRl
L2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDA3Ci1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlw
ZUVycm9yOiBVbmRlZmluZWQgdmFsdWUKK1N0YXR1cwlTdWNjZXNzCkluZGV4OiBMYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MDgtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVs
ZW1lbnQwOC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI0NDQ3KQorKysgTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDA4LWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIgQEAKIFRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00t
VGVzdC1TdWl0ZS9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQwOAotU3RhdHVzCWVycm9yCi1N
ZXNzYWdlCVR5cGVFcnJvcjogVW5kZWZpbmVkIHZhbHVlCitTdGF0dXMJU3VjY2VzcwpJbmRleDog
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDA5LWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwv
SFRNTEJvZHlFbGVtZW50MDktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNDQ0NykKKysrIExheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQwOS1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyIEBACiBUZXN0CWh0dHA6Ly93d3cudzMub3Jn
LzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MDkKLVN0YXR1
cwllcnJvcgotTWVzc2FnZQlUeXBlRXJyb3I6IFVuZGVmaW5lZCB2YWx1ZQorU3RhdHVzCVN1Y2Nl
c3MKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1l
bnQxMC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDEwLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjQ0NDcp
CisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MTAt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMiBAQAogVGVzdAlodHRwOi8v
d3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVu
dDEwCi1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBVbmRlZmluZWQgdmFsdWUKK1N0
YXR1cwlTdWNjZXNzCkluZGV4OiBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRN
TEJvZHlFbGVtZW50MTEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQxMS1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDI0NDQ3KQorKysgTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCb2R5
RWxlbWVudDExLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIgQEAKIFRl
c3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDIvaHRtbC9IVE1M
Qm9keUVsZW1lbnQxMQotU3RhdHVzCWVycm9yCi1NZXNzYWdlCVR5cGVFcnJvcjogVW5kZWZpbmVk
IHZhbHVlCitTdGF0dXMJU3VjY2VzcwpJbmRleDogTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
Mi9odG1sL0hUTUxCb2R5RWxlbWVudDEyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MTItZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAyNDQ0NykKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRt
bC9IVE1MQm9keUVsZW1lbnQxMi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyIEBACiBUZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwy
L2h0bWwvSFRNTEJvZHlFbGVtZW50MTIKLVN0YXR1cwllcnJvcgotTWVzc2FnZQlUeXBlRXJyb3I6
IFVuZGVmaW5lZCB2YWx1ZQorU3RhdHVzCVN1Y2Nlc3MKSW5kZXg6IExheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQwMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDAxLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMjQ0NDcpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwy
L2h0bWwvSFRNTERvY3VtZW50MDEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMiBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVs
Mi9odG1sL0hUTUxEb2N1bWVudDAxCi1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQl0aXRsZUxpbms6
IGFzc2VydEVxdWFscyBmYWlsZWQsIGFjdHVhbCBudWxsLCBleHBlY3RlZCBOSVNUIERPTSBIVE1M
IFRlc3QgLSBET0NVTUVOVC4KK1N0YXR1cwlTdWNjZXNzCkluZGV4OiBMYXlvdXRUZXN0cy9kb20v
eGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQwMi1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDI0NDQ3KQorKysgTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
Mi9odG1sL0hUTUxEb2N1bWVudDAyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIgQEAKIFRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZl
bDIvaHRtbC9IVE1MRG9jdW1lbnQwMgotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJcmVmZXJyZXJM
aW5rOiBhc3NlcnRFcXVhbHMgZmFpbGVkLCBhY3R1YWwgbnVsbCwgZXhwZWN0ZWQgLgorU3RhdHVz
CVN1Y2Nlc3MKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9j
dW1lbnQwMy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDAzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjQ0NDcp
CisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDMtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMiBAQAogVGVzdAlodHRwOi8vd3d3
LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDAzCi1T
dGF0dXMJZmFpbHVyZQotTWVzc2FnZQlkb21haW5MaW5rOiBhc3NlcnRFcXVhbHMgZmFpbGVkLCBh
Y3R1YWwgbnVsbCwgZXhwZWN0ZWQgLgorU3RhdHVzCVN1Y2Nlc3MKSW5kZXg6IExheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQwNS1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDA1
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjQ0NDcpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwv
bGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMiBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRl
L2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDA1Ci1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVy
cm9yOiBVbmRlZmluZWQgdmFsdWUKK1N0YXR1cwlTdWNjZXNzCkluZGV4OiBMYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDctZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQwNy1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDI0NDQ3KQorKysgTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMi9odG1sL0hUTUxEb2N1bWVudDA3LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDIgQEAKIFRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9s
ZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQwNwotU3RhdHVzCWVycm9yCi1NZXNzYWdlCVR5cGVFcnJv
cjogVW5kZWZpbmVkIHZhbHVlCitTdGF0dXMJU3VjY2VzcwpJbmRleDogTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDA4LWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDgtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAyNDQ0NykKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDIvaHRtbC9IVE1MRG9jdW1lbnQwOC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwyIEBACiBUZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwyL2h0bWwvSFRNTERvY3VtZW50MDgKLVN0YXR1cwllcnJvcgotTWVzc2FnZQlUeXBlRXJyb3I6
IFVuZGVmaW5lZCB2YWx1ZQorU3RhdHVzCVN1Y2Nlc3MKSW5kZXg6IExheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQwOS1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDA5LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMjQ0NDcpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwy
L2h0bWwvSFRNTERvY3VtZW50MDktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMiBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVs
Mi9odG1sL0hUTUxEb2N1bWVudDA5Ci1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBV
bmRlZmluZWQgdmFsdWUKK1N0YXR1cwlTdWNjZXNzCkluZGV4OiBMYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MTAtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQxMC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDI0NDQ3KQorKysgTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9o
dG1sL0hUTUxEb2N1bWVudDEwLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDIgQEAKIFRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDIv
aHRtbC9IVE1MRG9jdW1lbnQxMAotU3RhdHVzCWVycm9yCi1NZXNzYWdlCVR5cGVFcnJvcjogVW5k
ZWZpbmVkIHZhbHVlCitTdGF0dXMJU3VjY2VzcwpJbmRleDogTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDExLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MTEtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAyNDQ0NykKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRt
bC9IVE1MRG9jdW1lbnQxMS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwy
IEBACiBUZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwyL2h0
bWwvSFRNTERvY3VtZW50MTEKLVN0YXR1cwllcnJvcgotTWVzc2FnZQlUeXBlRXJyb3I6IFVuZGVm
aW5lZCB2YWx1ZQorU3RhdHVzCVN1Y2Nlc3MKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQxMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDEyLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMjQ0NDcpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwv
SFRNTERvY3VtZW50MTItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMiBA
QAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1s
L0hUTUxEb2N1bWVudDEyCi1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQljb29raWVMaW5rOiBhc3Nl
cnRFcXVhbHMgZmFpbGVkLCBhY3R1YWwgbnVsbCwgZXhwZWN0ZWQgLgorU3RhdHVzCVN1Y2Nlc3MK
SW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQxMy1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9o
dG1sL0hUTUxEb2N1bWVudDEzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjQ0NDcpCisrKyBMYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MTMtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMiBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8y
MDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDEzCi1TdGF0dXMJZXJy
b3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBWYWx1ZSB1bmRlZmluZWQgKHJlc3VsdCBvZiBleHByZXNz
aW9uIGRvYy5nZXRFbGVtZW50c0J5TmFtZSkgaXMgbm90IG9iamVjdC4KK1N0YXR1cwlTdWNjZXNz
CkluZGV4OiBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MTQt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIv
aHRtbC9IVE1MRG9jdW1lbnQxNC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI0NDQ3KQorKysgTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDE0LWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIgQEAKIFRlc3QJaHR0cDovL3d3dy53My5vcmcv
MjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQxNAotU3RhdHVzCWVy
cm9yCi1NZXNzYWdlCVR5cGVFcnJvcjogVmFsdWUgdW5kZWZpbmVkIChyZXN1bHQgb2YgZXhwcmVz
c2lvbiBkb2MuZ2V0RWxlbWVudHNCeU5hbWUpIGlzIG5vdCBvYmplY3QuCitTdGF0dXMJU3VjY2Vz
cwpJbmRleDogTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL2RvYzAxLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvZG9j
MDEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNDQ0NykKKysrIExheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDIvaHRtbC9kb2MwMS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyIEBACiBUZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwy
L2h0bWwvZG9jMDEKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCXRpdGxlTGluazogYXNzZXJ0RXF1
YWxzIGZhaWxlZCwgYWN0dWFsIG51bGwsIGV4cGVjdGVkIE5JU1QgRE9NIEhUTUwgVGVzdCAtIEFu
Y2hvci4KK1N0YXR1cwlTdWNjZXNzCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDI0NDQ3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVz
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzE2LDYgKzMxNiw3IEBAIHdpbmRvdy5E
b2N1bWVudC5wcm90b3R5cGUuZWxlbWVudEZyb21Qb2kKIHdpbmRvdy5Eb2N1bWVudC5wcm90b3R5
cGUuZXZhbHVhdGUgW2Z1bmN0aW9uXQogd2luZG93LkRvY3VtZW50LnByb3RvdHlwZS5leGVjQ29t
bWFuZCBbZnVuY3Rpb25dCiB3aW5kb3cuRG9jdW1lbnQucHJvdG90eXBlLmdldEVsZW1lbnRCeUlk
IFtmdW5jdGlvbl0KK3dpbmRvdy5Eb2N1bWVudC5wcm90b3R5cGUuZ2V0RWxlbWVudHNCeU5hbWUg
W2Z1bmN0aW9uXQogd2luZG93LkRvY3VtZW50LnByb3RvdHlwZS5nZXRFbGVtZW50c0J5VGFnTmFt
ZSBbZnVuY3Rpb25dCiB3aW5kb3cuRG9jdW1lbnQucHJvdG90eXBlLmdldEVsZW1lbnRzQnlUYWdO
YW1lTlMgW2Z1bmN0aW9uXQogd2luZG93LkRvY3VtZW50LnByb3RvdHlwZS5nZXRPdmVycmlkZVN0
eWxlIFtmdW5jdGlvbl0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15786</attachid>
            <date>2007-08-01 12:13:25 -0700</date>
            <delta_ts>2007-10-05 14:31:03 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>13707r5_patch.txt</filename>
            <type>text/plain</type>
            <size>33983</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNDQ0NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDMgQEAKKzIwMDctMDctMTkgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJr
aXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFBhdGNoIGZvciBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzcwNwor
ICAgICAgICBSRUdSRVNTSU9OOiBKYXZhU2NyaXB0IGV4Y2VwdGlvbnMgb24gcXVvdGVzLmJ1cm50
ZWxlY3Ryb25zLm9yZworCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyNjI4CisgICAgICAgIGRvY3VtZW50LmJvZHkgaXMgbm90IHN1cHBvcnRlZCBpbiBY
SFRNTCBkb2N1bWVudHMKKworICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDIxMworICAgICAgICBPbiBwYWdlIHdpdGggTUlNRSB0eXBlIGFwcGxpY2F0aW9u
L3hodG1sK3htbCwgY29va2llIGRvbid0IHdvcmsKKworICAgICAgICBNb3ZlZCBhIGJ1bmNoIG9m
IG1ldGhvZHMgYW5kIHByb3BlcnRpZXMgZnJvbSBIVE1MRG9jdW1lbnQgZG93biBpbnRvIERvY3Vt
ZW50IHRvIG1ha2UKKyAgICAgICAgdGhlbSBhdmFpbGFibGUgZm9yIGFsbCBkb2N1bWVudHMgKHht
bCwgc3ZnKS4KKyAgICAgICAgV2hhdCB3YXMga2VwdCBpbiBIVE1MRG9jdW1lbnQ6CisgICAgICAg
IC0gc29tZSBtZXRob2RzIGFuZCBwcm9wZXJ0aWVzIHRoYXQgYXJlIG5vdCBpbiBIVE1MNSAoeWV0
Pyk7CisgICAgICAgIC0gb3Blbi93cml0ZS93cml0ZWxuL2Nsb3NlLCBhcyB0aGV5IHdpbGwgbmVl
ZCB0byBiZSBtb2RpZmllZCB0byB3b3JrIG9uIFhNTCBkb2N1bWVudHMsIGFuZCBhcmVuJ3QKKyAg
ICAgICAgb2YgbXVjaCB1c2UgZm9yIHRob3NlIGFueXdheTsKKyAgICAgICAgLSBkZXNpZ25Nb2Rl
LCBiZWNhdXNlIGl0cyBkZWZpbml0aW9uIGluIEhUTUw1IGlzIGluY29tcGF0aWJsZSB3aXRoIG91
ciBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgor
CisgICAgICAgICogYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU0RvY3VtZW50Ojpsb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpKU0RvY3Vt
ZW50OjpzZXRMb2NhdGlvbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNIVE1MRG9jdW1lbnRD
dXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNlcy5o
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6c2V0Qm9keSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y29va2llKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRDb29raWUpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6Omxhc3RNb2RpZmllZCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6dGl0bGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5pZGw6
CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTERv
Y3VtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnQuaWRsOgorCiAyMDA3LTA3LTE5
ICBBbnR0aSAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKb2huLgpJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCShyZXZpc2lvbiAy
NDQ0NykKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIxLDYgKzIxLDggQEAKICNpbmNsdWRlICJKU0RvY3VtZW50LmgiCiAKICNp
bmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVM
b2FkZXIuaCIKICNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxEb2N1
bWVudC5oIgogI2luY2x1ZGUgImtqc19iaW5kaW5nLmgiCkBAIC00MSw2ICs0MywzNSBAQCB2b2lk
IEpTRG9jdW1lbnQ6Om1hcmsoKQogICAgIFNjcmlwdEludGVycHJldGVyOjptYXJrRE9NTm9kZXNG
b3JEb2N1bWVudChzdGF0aWNfY2FzdDxEb2N1bWVudCo+KGltcGwoKSkpOwogfQogCitKU1ZhbHVl
KiBKU0RvY3VtZW50Ojpsb2NhdGlvbihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgRnJh
bWUqIGZyYW1lID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihpbXBsKCkpLT5mcmFtZSgpOworICAg
IGlmICghZnJhbWUpCisgICAgICAgIHJldHVybiBqc051bGwoKTsKKworICAgIFdpbmRvdyogd2lu
ID0gV2luZG93OjpyZXRyaWV2ZVdpbmRvdyhmcmFtZSk7CisgICAgQVNTRVJUKHdpbik7CisgICAg
cmV0dXJuIHdpbi0+bG9jYXRpb24oKTsKK30KKwordm9pZCBKU0RvY3VtZW50OjpzZXRMb2NhdGlv
bihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUqIHZhbHVlKQoreworICAgIEZyYW1lKiBmcmFtZSA9
IHN0YXRpY19jYXN0PERvY3VtZW50Kj4oaW1wbCgpKS0+ZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1l
KQorICAgICAgICByZXR1cm47CisKKyAgICBTdHJpbmcgc3RyID0gdmFsdWUtPnRvU3RyaW5nKGV4
ZWMpOworCisgICAgLy8gSUUgYW5kIE1vemlsbGEgYm90aCByZXNvbHZlIHRoZSBVUkwgcmVsYXRp
dmUgdG8gdGhlIHNvdXJjZSBmcmFtZSwKKyAgICAvLyBub3QgdGhlIHRhcmdldCBmcmFtZS4KKyAg
ICBGcmFtZSogYWN0aXZlRnJhbWUgPSBzdGF0aWNfY2FzdDxTY3JpcHRJbnRlcnByZXRlcio+KGV4
ZWMtPmR5bmFtaWNJbnRlcnByZXRlcigpKS0+ZnJhbWUoKTsKKyAgICBpZiAoYWN0aXZlRnJhbWUp
CisgICAgICAgIHN0ciA9IGFjdGl2ZUZyYW1lLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChzdHIp
OworCisgICAgYm9vbCB1c2VyR2VzdHVyZSA9IHN0YXRpY19jYXN0PFNjcmlwdEludGVycHJldGVy
Kj4oZXhlYy0+ZHluYW1pY0ludGVycHJldGVyKCkpLT53YXNSdW5CeVVzZXJHZXN0dXJlKCk7Cisg
ICAgZnJhbWUtPmxvYWRlcigpLT5zY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKHN0ciwgYWN0aXZlRnJh
bWUtPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCksIGZhbHNlLCB1c2VyR2VzdHVyZSk7Cit9
CisKIEpTVmFsdWUqIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBEb2N1bWVudCogZG9jKQogewogICAg
IGlmICghZG9jKQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVudEN1c3Rv
bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVudEN1
c3RvbS5jcHAJKHJldmlzaW9uIDI0NDQ3KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxE
b2N1bWVudEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNs
dWRlICJKU0hUTUxEb2N1bWVudC5oIgogCiAjaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJG
cmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCkBAIC05MCwzNSArODks
NiBAQCB2b2lkIEpTSFRNTERvY3VtZW50OjpzZXRBbGwoRXhlY1N0YXRlKiwgCiAgICAgcHV0RGly
ZWN0KCJhbGwiLCB2YWx1ZSk7CiB9CiAKLUpTVmFsdWUqIEpTSFRNTERvY3VtZW50Ojpsb2NhdGlv
bihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Ci17Ci0gICAgRnJhbWUqIGZyYW1lID0gc3RhdGljX2Nh
c3Q8SFRNTERvY3VtZW50Kj4oaW1wbCgpKS0+ZnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAg
ICAgICByZXR1cm4ganNOdWxsKCk7Ci0KLSAgICBXaW5kb3cqIHdpbiA9IFdpbmRvdzo6cmV0cmll
dmVXaW5kb3coZnJhbWUpOwotICAgIEFTU0VSVCh3aW4pOwotICAgIHJldHVybiB3aW4tPmxvY2F0
aW9uKCk7Ci19Ci0KLXZvaWQgSlNIVE1MRG9jdW1lbnQ6OnNldExvY2F0aW9uKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSogdmFsdWUpCi17Ci0gICAgRnJhbWUqIGZyYW1lID0gc3RhdGljX2Nhc3Q8
SFRNTERvY3VtZW50Kj4oaW1wbCgpKS0+ZnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBTdHJpbmcgc3RyID0gdmFsdWUtPnRvU3RyaW5nKGV4ZWMpOwotCi0g
ICAgLy8gV2hlbiBhc3NpZ25pbmcgbG9jYXRpb24sIElFIGFuZCBNb3ppbGxhIGJvdGggcmVzb2x2
ZSB0aGUgVVJMCi0gICAgLy8gcmVsYXRpdmUgbm90IHRoZSB0YXJnZXQgZnJhbWUuCi0gICAgRnJh
bWUqIGFjdGl2ZUZyYW1lID0gc3RhdGljX2Nhc3Q8U2NyaXB0SW50ZXJwcmV0ZXIqPihleGVjLT5k
eW5hbWljSW50ZXJwcmV0ZXIoKSktPmZyYW1lKCk7Ci0gICAgaWYgKGFjdGl2ZUZyYW1lKQotICAg
ICAgICBzdHIgPSBhY3RpdmVGcmFtZS0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoc3RyKTsKLQot
ICAgIGJvb2wgdXNlckdlc3R1cmUgPSBzdGF0aWNfY2FzdDxTY3JpcHRJbnRlcnByZXRlcio+KGV4
ZWMtPmR5bmFtaWNJbnRlcnByZXRlcigpKS0+d2FzUnVuQnlVc2VyR2VzdHVyZSgpOwotICAgIGZy
YW1lLT5sb2FkZXIoKS0+c2NoZWR1bGVMb2NhdGlvbkNoYW5nZShzdHIsIGFjdGl2ZUZyYW1lLT5s
b2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpLCBmYWxzZSwgdXNlckdlc3R1cmUpOwotfQotCiAv
LyBDdXN0b20gZnVuY3Rpb25zCiAKIEpTVmFsdWUqIEpTSFRNTERvY3VtZW50OjpvcGVuKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgTGlzdCYgYXJncykKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9QdWJsaWNET01JbnRlcmZhY2VzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL1B1YmxpY0RPTUludGVyZmFjZXMuaAkocmV2aXNpb24gMjQ0NDcpCisrKyBXZWJDb3JlL2Jp
bmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC04MCw2
ICs4MCwxNyBAQAogQHByb3BlcnR5KHJlYWRvbmx5LCByZXRhaW4pIERPTUVsZW1lbnQgKmRvY3Vt
ZW50RWxlbWVudDsKIEBwcm9wZXJ0eShyZWFkb25seSwgcmV0YWluKSBET01BYnN0cmFjdFZpZXcg
KmRlZmF1bHRWaWV3OwogQHByb3BlcnR5KHJlYWRvbmx5LCByZXRhaW4pIERPTVN0eWxlU2hlZXRM
aXN0ICpzdHlsZVNoZWV0czsKK0Bwcm9wZXJ0eShyZWFkb25seSwgcmV0YWluKSBET01IVE1MQ29s
bGVjdGlvbiAqaW1hZ2VzOworQHByb3BlcnR5KHJlYWRvbmx5LCByZXRhaW4pIERPTUhUTUxDb2xs
ZWN0aW9uICphcHBsZXRzOworQHByb3BlcnR5KHJlYWRvbmx5LCByZXRhaW4pIERPTUhUTUxDb2xs
ZWN0aW9uICpsaW5rczsKK0Bwcm9wZXJ0eShyZWFkb25seSwgcmV0YWluKSBET01IVE1MQ29sbGVj
dGlvbiAqZm9ybXM7CitAcHJvcGVydHkocmVhZG9ubHksIHJldGFpbikgRE9NSFRNTENvbGxlY3Rp
b24gKmFuY2hvcnM7CitAcHJvcGVydHkoY29weSkgTlNTdHJpbmcgKnRpdGxlOworQHByb3BlcnR5
KHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqcmVmZXJyZXI7CitAcHJvcGVydHkocmVhZG9ubHks
IGNvcHkpIE5TU3RyaW5nICpkb21haW47CitAcHJvcGVydHkocmVhZG9ubHksIGNvcHkpIE5TU3Ry
aW5nICpVUkw7CitAcHJvcGVydHkocmV0YWluKSBET01IVE1MRWxlbWVudCAqYm9keTsKK0Bwcm9w
ZXJ0eShjb3B5KSBOU1N0cmluZyAqY29va2llOwogLSAoRE9NRWxlbWVudCAqKWNyZWF0ZUVsZW1l
bnQ6KE5TU3RyaW5nICopdGFnTmFtZTsKIC0gKERPTURvY3VtZW50RnJhZ21lbnQgKiljcmVhdGVE
b2N1bWVudEZyYWdtZW50OwogLSAoRE9NVGV4dCAqKWNyZWF0ZVRleHROb2RlOihOU1N0cmluZyAq
KWRhdGE7CkBAIC0xMDksNiArMTIwLDcgQEAKIC0gKERPTUNTU1N0eWxlRGVjbGFyYXRpb24gKiln
ZXRDb21wdXRlZFN0eWxlOihET01FbGVtZW50ICopZWxlbWVudCBwc2V1ZG9FbGVtZW50OihOU1N0
cmluZyAqKXBzZXVkb0VsZW1lbnQ7CiAtIChET01DU1NSdWxlTGlzdCAqKWdldE1hdGNoZWRDU1NS
dWxlczooRE9NRWxlbWVudCAqKWVsZW1lbnQgcHNldWRvRWxlbWVudDooTlNTdHJpbmcgKilwc2V1
ZG9FbGVtZW50OwogLSAoRE9NQ1NTUnVsZUxpc3QgKilnZXRNYXRjaGVkQ1NTUnVsZXM6KERPTUVs
ZW1lbnQgKillbGVtZW50IHBzZXVkb0VsZW1lbnQ6KE5TU3RyaW5nICopcHNldWRvRWxlbWVudCBh
dXRob3JPbmx5OihCT09MKWF1dGhvck9ubHk7CistIChET01Ob2RlTGlzdCAqKWdldEVsZW1lbnRz
QnlOYW1lOihOU1N0cmluZyAqKWVsZW1lbnROYW1lOwogI2lmZGVmIEVOQUJMRV9YUEFUSAogLSAo
RE9NWFBhdGhFeHByZXNzaW9uICopY3JlYXRlRXhwcmVzc2lvbjooTlNTdHJpbmcgKilleHByZXNz
aW9uIDooaWQgPERPTVhQYXRoTlNSZXNvbHZlcj4pcmVzb2x2ZXI7CiAtIChET01YUGF0aEV4cHJl
c3Npb24gKiljcmVhdGVFeHByZXNzaW9uOihOU1N0cmluZyAqKWV4cHJlc3Npb24gcmVzb2x2ZXI6
KGlkIDxET01YUGF0aE5TUmVzb2x2ZXI+KXJlc29sdmVyOwpAQCAtMzQ3LDIzICszNTksMTEgQEAK
IEBlbmQKIAogQGludGVyZmFjZSBET01IVE1MRG9jdW1lbnQgOiBET01Eb2N1bWVudAotQHByb3Bl
cnR5KGNvcHkpIE5TU3RyaW5nICp0aXRsZTsKLUBwcm9wZXJ0eShyZWFkb25seSwgY29weSkgTlNT
dHJpbmcgKnJlZmVycmVyOwotQHByb3BlcnR5KHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqZG9t
YWluOwotQHByb3BlcnR5KHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqVVJMOwotQHByb3BlcnR5
KHJldGFpbikgRE9NSFRNTEVsZW1lbnQgKmJvZHk7Ci1AcHJvcGVydHkocmVhZG9ubHksIHJldGFp
bikgRE9NSFRNTENvbGxlY3Rpb24gKmltYWdlczsKLUBwcm9wZXJ0eShyZWFkb25seSwgcmV0YWlu
KSBET01IVE1MQ29sbGVjdGlvbiAqYXBwbGV0czsKLUBwcm9wZXJ0eShyZWFkb25seSwgcmV0YWlu
KSBET01IVE1MQ29sbGVjdGlvbiAqbGlua3M7Ci1AcHJvcGVydHkocmVhZG9ubHksIHJldGFpbikg
RE9NSFRNTENvbGxlY3Rpb24gKmZvcm1zOwotQHByb3BlcnR5KHJlYWRvbmx5LCByZXRhaW4pIERP
TUhUTUxDb2xsZWN0aW9uICphbmNob3JzOwotQHByb3BlcnR5KGNvcHkpIE5TU3RyaW5nICpjb29r
aWU7CiAtICh2b2lkKW9wZW47CiAtICh2b2lkKWNsb3NlOwogLSAodm9pZCl3cml0ZTooTlNTdHJp
bmcgKil0ZXh0OwogLSAodm9pZCl3cml0ZWxuOihOU1N0cmluZyAqKXRleHQ7CiAtIChET01FbGVt
ZW50ICopZ2V0RWxlbWVudEJ5SWQ6KE5TU3RyaW5nICopZWxlbWVudElkOwotLSAoRE9NTm9kZUxp
c3QgKilnZXRFbGVtZW50c0J5TmFtZTooTlNTdHJpbmcgKillbGVtZW50TmFtZTsKIEBlbmQKIAog
QGludGVyZmFjZSBET01IVE1MRWxlbWVudCA6IERPTUVsZW1lbnQKSW5kZXg6IFdlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJl
dmlzaW9uIDI0NDQ3KQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUg
IkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDb21tZW50LmgiCisjaW5jbHVkZSAiQ29v
a2llSmFyLmgiCiAjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKICNpbmNsdWRlICJEb2NM
b2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCkBAIC0xMzExLDYgKzEzMTIs
MjAgQEAgSFRNTEVsZW1lbnQqIERvY3VtZW50Ojpib2R5KCkKICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8SFRNTEVsZW1lbnQqPihib2R5KTsKIH0KIAordm9pZCBEb2N1bWVudDo6c2V0Qm9keShIVE1M
RWxlbWVudCogbmV3Qm9keSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFuZXdCb2R5
KSB7IAorICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIEhUTUxFbGVtZW50KiBiID0gYm9keSgpOworICAgIGlmICghYikKKyAg
ICAgICAgZG9jdW1lbnRFbGVtZW50KCktPmFwcGVuZENoaWxkKG5ld0JvZHksIGVjKTsKKyAgICBl
bHNlCisgICAgICAgIGRvY3VtZW50RWxlbWVudCgpLT5yZXBsYWNlQ2hpbGQobmV3Qm9keSwgYiwg
ZWMpOworfQorCiBIVE1MSGVhZEVsZW1lbnQqIERvY3VtZW50OjpoZWFkKCkKIHsKICAgICBOb2Rl
KiBkZSA9IGRvY3VtZW50RWxlbWVudCgpOwpAQCAtMjQ3OCw2ICsyNDkzLDE2IEBAIEVsZW1lbnQq
IERvY3VtZW50Ojpvd25lckVsZW1lbnQoKSBjb25zdAogICAgIHJldHVybiBmcmFtZSgpLT5vd25l
ckVsZW1lbnQoKTsKIH0KIAorU3RyaW5nIERvY3VtZW50Ojpjb29raWUoKSBjb25zdAoreworICAg
IHJldHVybiBjb29raWVzKFVSTCgpKTsKK30KKwordm9pZCBEb2N1bWVudDo6c2V0Q29va2llKGNv
bnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgc2V0Q29va2llcyhVUkwoKSwgbV9wb2xpY3lCYXNl
VVJMLmRlcHJlY2F0ZWRTdHJpbmcoKSwgdmFsdWUpOworfQorCiBTdHJpbmcgRG9jdW1lbnQ6OnJl
ZmVycmVyKCkgY29uc3QKIHsKICAgICBpZiAoZnJhbWUoKSkKQEAgLTI1MTcsNiArMjU0MiwxNiBA
QCB2b2lkIERvY3VtZW50OjpzZXREb21haW4oY29uc3QgU3RyaW5nICZuCiAgICAgfQogfQogCitT
dHJpbmcgRG9jdW1lbnQ6Omxhc3RNb2RpZmllZCgpIGNvbnN0Cit7CisgICAgU3RyaW5nIG1vZGlm
aWVkSGVhZGVyOworICAgIGlmIChGcmFtZSogZiA9IGZyYW1lKCkpIHsKKyAgICAgICAgaWYgKERv
Y3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciA9IGYtPmxvYWRlcigpLT5kb2N1bWVudExvYWRl
cigpKQorICAgICAgICAgICAgZG9jdW1lbnRMb2FkZXItPmdldFJlc3BvbnNlTW9kaWZpZWRIZWFk
ZXIobW9kaWZpZWRIZWFkZXIpOworICAgIH0KKyAgICByZXR1cm4gbW9kaWZpZWRIZWFkZXI7Cit9
CisKIGJvb2wgRG9jdW1lbnQ6OmlzVmFsaWROYW1lKGNvbnN0IFN0cmluZyAmbmFtZSkKIHsKICAg
ICBjb25zdCBVQ2hhciogcyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVUNoYXIqPihuYW1lLmNo
YXJhY3RlcnMoKSk7CkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHJldmlzaW9uIDI0NDQ3KQorKysgV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjAxLDExICsyMDEsNiBAQCBwdWJsaWM6CiAg
ICAgCiAgICAgUGFzc1JlZlB0cjxOYW1lTm9kZUxpc3Q+IGdldEVsZW1lbnRzQnlOYW1lKGNvbnN0
IFN0cmluZyYgZWxlbWVudE5hbWUpOwogCi0gICAgLy8gQWN0dWFsbHkgcGFydCBvZiBKU0hUTUxE
b2N1bWVudCwgYnV0IHVzZWQgZm9yIGdpdmluZyBYTUwgZG9jdW1lbnRzIGEgd2luZG93IHRpdGxl
IGFzIHdlbGwKLSAgICBTdHJpbmcgdGl0bGUoKSBjb25zdCB7IHJldHVybiBtX3RpdGxlOyB9Ci0g
ICAgdm9pZCBzZXRUaXRsZShjb25zdCBTdHJpbmcmLCBFbGVtZW50KiB0aXRsZUVsZW1lbnQgPSAw
KTsKLSAgICB2b2lkIHJlbW92ZVRpdGxlKEVsZW1lbnQqIHRpdGxlRWxlbWVudCk7Ci0KICAgICBQ
YXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBpbWFnZXMoKTsKICAgICBQYXNzUmVmUHRyPEhUTUxD
b2xsZWN0aW9uPiBlbWJlZHMoKTsKICAgICBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBwbHVn
aW5zKCk7IC8vIGFuIGFsaWFzIGZvciBlbWJlZHMoKSByZXF1aXJlZCBmb3IgdGhlIEpTIERPTSBi
aW5kaW5ncy4KQEAgLTUzMiwxMCArNTI3LDIwIEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIHRo
ZSBvd25pbmcgZWxlbWVudCBpbiB0aGUgcGFyZW50IGRvY3VtZW50LgogICAgIC8vIFJldHVybnMg
MCBpZiB0aGlzIGlzIHRoZSB0b3AgbGV2ZWwgZG9jdW1lbnQuCiAgICAgRWxlbWVudCogb3duZXJF
bGVtZW50KCkgY29uc3Q7Ci0gICAgCisKKyAgICBTdHJpbmcgdGl0bGUoKSBjb25zdCB7IHJldHVy
biBtX3RpdGxlOyB9CisgICAgdm9pZCBzZXRUaXRsZShjb25zdCBTdHJpbmcmLCBFbGVtZW50KiB0
aXRsZUVsZW1lbnQgPSAwKTsKKyAgICB2b2lkIHJlbW92ZVRpdGxlKEVsZW1lbnQqIHRpdGxlRWxl
bWVudCk7CisKKyAgICBTdHJpbmcgY29va2llKCkgY29uc3Q7CisgICAgdm9pZCBzZXRDb29raWUo
Y29uc3QgU3RyaW5nJik7CisKICAgICBTdHJpbmcgcmVmZXJyZXIoKSBjb25zdDsKKwogICAgIFN0
cmluZyBkb21haW4oKSBjb25zdDsKLSAgICB2b2lkIHNldERvbWFpbihjb25zdCBTdHJpbmcmIG5l
d0RvbWFpbiwgYm9vbCBmb3JjZSA9IGZhbHNlKTsgLy8gbm90IHBhcnQgb2YgdGhlIERPTQorICAg
IHZvaWQgc2V0RG9tYWluKGNvbnN0IFN0cmluZyYgbmV3RG9tYWluLCBib29sIGZvcmNlID0gZmFs
c2UpOworCisgICAgU3RyaW5nIGxhc3RNb2RpZmllZCgpIGNvbnN0OwogCiAgICAgU3RyaW5nIHBv
bGljeUJhc2VVUkwoKSBjb25zdCB7IHJldHVybiBtX3BvbGljeUJhc2VVUkw7IH0KICAgICB2b2lk
IHNldFBvbGljeUJhc2VVUkwoY29uc3QgU3RyaW5nJiBzKSB7IG1fcG9saWN5QmFzZVVSTCA9IHM7
IH0KQEAgLTU1OCw2ICs1NjMsOCBAQCBwdWJsaWM6CiAgICAgSFRNTE1hcEVsZW1lbnQqIGdldElt
YWdlTWFwKGNvbnN0IFN0cmluZyYgVVJMKSBjb25zdDsKIAogICAgIEhUTUxFbGVtZW50KiBib2R5
KCk7CisgICAgdm9pZCBzZXRCb2R5KEhUTUxFbGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpOworCiAg
ICAgSFRNTEhlYWRFbGVtZW50KiBoZWFkKCk7CiAKICAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25z
dDsKSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2RvbS9Eb2N1bWVudC5pZGwJKHJldmlzaW9uIDI0NDQ3KQorKysgV2ViQ29yZS9kb20vRG9jdW1l
bnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xNDQsMTEgKzE0NCw0MSBAQCBtb2R1bGUgY29yZSB7
CiAgICAgICAgIGJvb2xlYW4gICAgICAgICAgICBxdWVyeUNvbW1hbmRTdXBwb3J0ZWQoaW4gRE9N
U3RyaW5nIGNvbW1hbmQpOwogICAgICAgICBbQ29udmVydE51bGxTdHJpbmdUbz1GYWxzZV0gRE9N
U3RyaW5nIHF1ZXJ5Q29tbWFuZFZhbHVlKGluIERPTVN0cmluZyBjb21tYW5kKTsKIAotICAgICAg
ICAvLyBJRSBleHRlbnNpb25zCisgICAgICAgIC8vIE1vdmVkIGRvd24gZnJvbSBIVE1MRG9jdW1l
bnQKIAotI2lmICFkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKQorICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdGl0bGU7Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcmVmZXJyZXI7CisjaWYgZGVmaW5l
ZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZG9tYWluOworI2Vsc2UKKyAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBkb21haW47CisjZW5kaWYKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyBVUkw7CisKKyAgICAgICAgLy8gRklYTUU6IHRoZSBET00g
c3BlYyBzdGF0ZXMgdGhhdCB0aGlzIGF0dHJpYnV0ZSBjYW4gCisgICAgICAgIC8vIHJhaXNlIGFu
IGV4Y2VwdGlvbiBvbiBzZXR0aW5nLgorICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgY29va2llCisgICAgICAgICAgICAgICAgICAg
ICAvKnNldHRlciByYWlzZXMgKERPTUV4Y2VwdGlvbikqLzsKKworICAgICAgICAvLyBGSVhNRTog
dGhlIERPTSBzcGVjIGRvZXMgTk9UIGhhdmUgdGhpcyBhdHRyaWJ1dGUKKyAgICAgICAgLy8gcmFp
c2luZyBhbiBleGNlcHRpb24uCisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBIVE1MRWxlbWVu
dCBib2R5CisgICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzIChET01FeGNlcHRpb24p
OworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiBpbWFnZXM7Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiBhcHBsZXRzOworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENvbGxlY3Rpb24gbGlua3M7CisgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiBmb3JtczsKKyAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIEhUTUxDb2xsZWN0aW9uIGFuY2hvcnM7CisKKyAgICAgICAgTm9kZUxpc3QgZ2V0RWxl
bWVudHNCeU5hbWUoaW4gRE9NU3RyaW5nIGVsZW1lbnROYW1lKTsKKworI2lmIGRlZmluZWQoTEFO
R1VBR0VfSkFWQVNDUklQVCkKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDdXN0b21dIExv
Y2F0aW9uIGxvY2F0aW9uOwogI2VuZGlmCisKKyAgICAgICAgLy8gSUUgZXh0ZW5zaW9ucworCiAg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1VbmRlZmluZWQs
IENvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgY2hhcnNldDsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1RvPVVuZGVmaW5lZF0gRE9NU3RyaW5n
IGRlZmF1bHRDaGFyc2V0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbnZlcnROdWxs
U3RyaW5nVG89VW5kZWZpbmVkXSBET01TdHJpbmcgcmVhZHlTdGF0ZTsKSW5kZXg6IFdlYkNvcmUv
aHRtbC9IVE1MRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRG9j
dW1lbnQuY3BwCShyZXZpc2lvbiAyNDQ0NykKKysrIFdlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NywzOCArODcsNiBAQCBIVE1MRG9jdW1lbnQ6On5IVE1M
RG9jdW1lbnQoKQogewogfQogCi1TdHJpbmcgSFRNTERvY3VtZW50OjpsYXN0TW9kaWZpZWQoKSBj
b25zdAotewotICAgIFN0cmluZyBtb2RpZmllZEhlYWRlcjsKLSAgICBpZiAoRnJhbWUqIGYgPSBm
cmFtZSgpKQotICAgICAgICBpZiAoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gZi0+
bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCkpCi0gICAgICAgICAgICBkb2N1bWVudExvYWRlci0+
Z2V0UmVzcG9uc2VNb2RpZmllZEhlYWRlcihtb2RpZmllZEhlYWRlcik7Ci0gICAgcmV0dXJuIG1v
ZGlmaWVkSGVhZGVyOwotfQotCi1TdHJpbmcgSFRNTERvY3VtZW50Ojpjb29raWUoKSBjb25zdAot
ewotICAgIHJldHVybiBjb29raWVzKFVSTCgpKTsKLX0KLQotdm9pZCBIVE1MRG9jdW1lbnQ6OnNl
dENvb2tpZShjb25zdCBTdHJpbmcmIHZhbHVlKQotewotICAgIHNldENvb2tpZXMoVVJMKCksIG1f
cG9saWN5QmFzZVVSTC5kZXByZWNhdGVkU3RyaW5nKCksIHZhbHVlKTsKLX0KLQotdm9pZCBIVE1M
RG9jdW1lbnQ6OnNldEJvZHkoSFRNTEVsZW1lbnQqIG5ld0JvZHksIEV4Y2VwdGlvbkNvZGUmIGVj
KQotewotICAgIGlmICghbmV3Qm9keSkgeyAKLSAgICAgICAgZWMgPSBISUVSQVJDSFlfUkVRVUVT
VF9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgSFRNTEVsZW1lbnQqIGIgPSBib2R5
KCk7Ci0gICAgaWYgKCFiKQotICAgICAgICBkb2N1bWVudEVsZW1lbnQoKS0+YXBwZW5kQ2hpbGQo
bmV3Qm9keSwgZWMpOwotICAgIGVsc2UKLSAgICAgICAgZG9jdW1lbnRFbGVtZW50KCktPnJlcGxh
Y2VDaGlsZChuZXdCb2R5LCBiLCBlYyk7Ci19Ci0KIGludCBIVE1MRG9jdW1lbnQ6OndpZHRoKCkg
Y29uc3QKIHsKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHZpZXcoKTsKSW5kZXg6IFdlYkNv
cmUvaHRtbC9IVE1MRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTERv
Y3VtZW50LmgJKHJldmlzaW9uIDI0NDQ3KQorKysgV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zOCwxMiArMzgsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IGJvb2wgaXNIVE1MRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICBTdHJp
bmcgbGFzdE1vZGlmaWVkKCkgY29uc3Q7Ci0gICAgU3RyaW5nIGNvb2tpZSgpIGNvbnN0OwotICAg
IHZvaWQgc2V0Q29va2llKGNvbnN0IFN0cmluZyYpOwotCi0gICAgdm9pZCBzZXRCb2R5KEhUTUxF
bGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwotCiAgICAgaW50IHdpZHRoKCkgY29uc3Q7CiAgICAg
aW50IGhlaWdodCgpIGNvbnN0OwogCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50Lmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmlkbAkocmV2aXNpb24g
MjQ0NDcpCisrKyBXZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMjEsMzYgKzIxLDEwIEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgW0dlbmVy
YXRlQ29uc3RydWN0b3IsIEhhc092ZXJyaWRpbmdOYW1lR2V0dGVyXSBIVE1MRG9jdW1lbnQgOiBE
b2N1bWVudCB7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxT
dHJpbmddIERPTVN0cmluZyB0aXRsZTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyByZWZlcnJlcjsKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCi0gICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgZG9tYWluOwotI2Vsc2UKLSAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBkb21haW47Ci0jZW5kaWYKLSAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyBVUkw7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgIC8v
IEZJWE1FOiB0aGUgRE9NIHNwZWMgZG9lcyBOT1QgaGF2ZSB0aGlzIGF0dHJpYnV0ZQotICAgICAg
ICAvLyByYWlzaW5nIGFuIGV4Y2VwdGlvbi4KLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIEhU
TUxFbGVtZW50IGJvZHkKLSAgICAgICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMgKERPTUV4
Y2VwdGlvbik7Ci0gICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIEhUTUxDb2xsZWN0aW9uIGltYWdlczsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhU
TUxDb2xsZWN0aW9uIGFwcGxldHM7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29s
bGVjdGlvbiBsaW5rczsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9u
IGZvcm1zOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENvbGxlY3Rpb24gYW5jaG9y
czsKLSAgICAgICAgCi0gICAgICAgIC8vIEZJWE1FOiB0aGUgRE9NIHNwZWMgc3RhdGVzIHRoYXQg
dGhpcyBhdHRyaWJ1dGUgY2FuIAotICAgICAgICAvLyByYWlzZSBhbiBleGNlcHRpb24gb24gc2V0
dGluZy4KLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
Z10gRE9NU3RyaW5nIGNvb2tpZQotICAgICAgICAgICAgICAgICAgICAgLypzZXR0ZXIgcmFpc2Vz
IChET01FeGNlcHRpb24pKi87Ci0KICAgICAgICAgW0N1c3RvbV0gdm9pZCBvcGVuKCk7CiAgICAg
ICAgIHZvaWQgY2xvc2UoKTsKICAgICAgICAgW0N1c3RvbV0gdm9pZCB3cml0ZShpbiBET01TdHJp
bmcgdGV4dCk7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgd3JpdGVsbihpbiBET01TdHJpbmcgdGV4
dCk7Ci0gICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlOYW1lKGluIERPTVN0cmluZyBlbGVt
ZW50TmFtZSk7CiAKICAgICAgICAgLy8gRXh0ZW5zaW9ucwogICAgICAgICBFbGVtZW50IGdldEVs
ZW1lbnRCeUlkKGluIERPTVN0cmluZyBlbGVtZW50SWQpOwpAQCAtNTksMTUgKzMzLDExIEBAIG1v
ZHVsZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9uIHBs
dWdpbnM7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiBzY3JpcHRz
OwogCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFzdE1vZGlmaWVkOwot
CiAjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQogICAgICAgICAvLyBGSVhNRTogVGhl
c2Ugc2hvdWxkIGV2ZW50dWFsbHkgYmUgYXZhaWxhYmxlIChpZiB0aGV5IGFyZSB3YW50ZWQpIGZv
ciBhbGwgbGFuZ3VhZ2VzLgogCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tLCBE
ZWxldGFibGVdIEhUTUxDb2xsZWN0aW9uIGFsbDsKIAotICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW0N1c3RvbV0gTG9jYXRpb24gbG9jYXRpb247Ci0KICAgICAgICAgW0N1c3RvbV0gdm9pZCBj
bGVhcigpOwogI2VuZGlmCiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NDQ3KQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDEgQEAKKzIwMDctMDctMTkg
IEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSB0ZXN0cyBmb3IgaHR0cDovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MDcKKyAgICAgICAgUkVHUkVTU0lPTjog
SmF2YVNjcmlwdCBleGNlcHRpb25zIG9uIHF1b3Rlcy5idXJudGVsZWN0cm9ucy5vcmcKKworICAg
ICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMS1leHBlY3RlZC5j
aGVja3N1bTogUmVtb3ZlZC4KKyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJh
c2VFbGVtZW50MDEtZXhwZWN0ZWQucG5nOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS94aHRtbC9s
ZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZG9t
L3hodG1sL2xldmVsMi9odG1sL0hUTUxCYXNlRWxlbWVudDAxLnhodG1sOgorICAgICAgICAqIGRv
bS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMi1leHBlY3RlZC5jaGVja3N1bTog
UmVtb3ZlZC4KKyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50
MDItZXhwZWN0ZWQucG5nOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRt
bC9IVE1MQmFzZUVsZW1lbnQwMi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZG9tL3hodG1sL2xl
dmVsMi9odG1sL0hUTUxCYXNlRWxlbWVudDAyLnhodG1sOgorICAgICAgICAqIGRvbS94aHRtbC9s
ZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQwNy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZG9t
L3hodG1sL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDA4LWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MDktZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQxMC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVu
dDExLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJv
ZHlFbGVtZW50MTItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRt
bC9IVE1MRG9jdW1lbnQwMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZG9tL3hodG1sL2xldmVs
Mi9odG1sL0hUTUxEb2N1bWVudDAyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBkb20veGh0bWwv
bGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGRvbS94
aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQwNS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDA3LWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDgtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQwOS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDEwLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MTEt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1l
bnQxMi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxE
b2N1bWVudDEzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBkb20veGh0bWwvbGV2ZWwyL2h0bWwv
SFRNTERvY3VtZW50MTQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGRvbS94aHRtbC9sZXZlbDIv
aHRtbC9kb2MwMS1leHBlY3RlZC50eHQ6CisgICAgICAgIFRoZXNlIG5vdyBwYXNzLiBDaGFuZ2Vk
IEhUTUxCYXNlRWxlbWVudCogdG8gZHVtcCBhcyB0ZXh0LgorCisgICAgICAgICogZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDogQWRkZWQgRG9jdW1lbnQucHJv
dG90eXBlLmdldEVsZW1lbnRzQnlOYW1lCisKIDIwMDctMDctMTkgIEFudHRpICA8YW50dGlAYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEpvaG4uCkluZGV4OiBMYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDEtZXhwZWN0ZWQuY2hlY2tzdW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCYXNl
RWxlbWVudDAxLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAyNDQ0NykKKysrIExheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMS1leHBlY3RlZC5jaGVj
a3N1bQkod29ya2luZyBjb3B5KQpAQCAtMSArMCwwIEBACi1jYmE2ZWYwOTdkMTJhMzE0MmEwMzhm
YTJhMWM5ZGYzMwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMS1leHBlY3RlZC5wbmcKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3Zu
Om1pbWUtdHlwZSA9IGltYWdlL3BuZwpJbmRleDogTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
Mi9odG1sL0hUTUxCYXNlRWxlbWVudDAxLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDEtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAyNDQ0NykKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRt
bC9IVE1MQmFzZUVsZW1lbnQwMS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsOSAr
MSwyIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNTg3OiBVbmRlZmluZWQgdmFsdWUKLWxheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYw
MAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NTAKLSAgUmVuZGVyQmxvY2sge2h0bWx9IGF0ICgw
LDApIHNpemUgODAweDUwCi0gICAgUmVuZGVyQm9keSB7Ym9keX0gYXQgKDgsMTYpIHNpemUgNzg0
eDE4Ci0gICAgICBSZW5kZXJCbG9jayB7cH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgKLSAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNjl4MTgKLSAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwwKSB3aWR0aCA2OTogIlNvbWUgVGV4dCIKK1Rlc3QJaHR0cDovL3d3dy53My5vcmcv
MjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMQorU3RhdHVz
CVN1Y2Nlc3MKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFz
ZUVsZW1lbnQwMS54aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDEueGh0bWwJKHJldmlzaW9uIDI0NDQ3KQorKysgTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCYXNlRWxlbWVudDAxLnhodG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xNyw2ICsxNywxNSBAQCB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBN
RVJDSEFOVEFCSUxJVFkgCiBbMV0gaHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC8y
MDAyL2NvcHlyaWdodC1zb2Z0d2FyZS0yMDAyMTIzMQogKi8KIAorICAvLworICAvLyAgV2ViS2l0
IG1vZGlmaWNhdGlvbjogMTMtTWF5LTIwMDcKKyAgLy8KKyAgLy8gIEluZm9ybSB0aGUgdGVzdCBj
b250cm9sbGVyIHRoYXQgdGhpcyB0ZXN0IGhhcyBhIHRleHQtZm9ybWF0IHJlc3VsdCBhbmQgc28g
c2hvdWxkCisgIC8vICBiZSBkdW1wZWQgYXMgdGV4dC4KKyAgLy8KKyAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisKICAgZnVuY3Rpb24gYXNzZXJ0U2l6ZShkZXNjciwgZXhwZWN0ZWQsIGFjdHVhbCkgewogICAg
IHZhciBhY3R1YWxTaXplOwogICAgIGFzc2VydE5vdE51bGwoZGVzY3IsIGFjdHVhbCk7CkluZGV4
OiBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDItZXhw
ZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
Mi9odG1sL0hUTUxCYXNlRWxlbWVudDAyLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAyNDQ0
NykKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQw
Mi1leHBlY3RlZC5jaGVja3N1bQkod29ya2luZyBjb3B5KQpAQCAtMSArMCwwIEBACi02MGUxNzcy
Njg3Y2E5ODUwNzM4MDc1ZDllNmIxZDViYgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5k
ZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMi1l
eHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBi
aW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdlL3BuZwpJbmRleDogTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCYXNlRWxlbWVudDAyLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVt
ZW50MDItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNDQ0NykKKysrIExheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDIvaHRtbC9IVE1MQmFzZUVsZW1lbnQwMi1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMTkgKzEsMiBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU4NzogVW5kZWZp
bmVkIHZhbHVlCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJC
bG9jayB7aHRtbH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gICAgUmVuZGVyRnJhbWVTZXQge2Zy
YW1lc2V0fSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgICAgIFJlbmRlckZyYW1lU2V0IHtmcmFt
ZXNldH0gYXQgKDAsMCkgc2l6ZSAxNTh4NjAwCi0gICAgICAgIFJlbmRlckZyYW1lIHtmcmFtZX0g
YXQgKDAsMCkgc2l6ZSAxNTh4MTk4Ci0gICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxNTh4
MTk4Ci0gICAgICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTU4eDE5OAotICAgICAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTU4eDEwCi0gICAgICAgICAgICBSZW5kZXJCbG9jayB7
SFRNTH0gYXQgKDAsMCkgc2l6ZSAxNTh4MTAKLSAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDUsMTApIHNpemUgMTQ4eDAKLSAgICAgIFJlbmRlckZyYW1lIHtmcmFtZX0gYXQgKDE2
NCwwKSBzaXplIDYzNng2MDAKLSAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA2MzZ4NjAwCi0g
ICAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDYzNng2MDAKLSAgICAgICAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA2MzZ4OAotICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCww
KSBzaXplIDYzNng4Ci0gICAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXpl
IDYyMHgwCitUZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwy
L2h0bWwvSFRNTEJhc2VFbGVtZW50MDIKK1N0YXR1cwlTdWNjZXNzCkluZGV4OiBMYXlvdXRUZXN0
cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJhc2VFbGVtZW50MDIueGh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCYXNlRWxlbWVudDAy
LnhodG1sCShyZXZpc2lvbiAyNDQ0NykKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIv
aHRtbC9IVE1MQmFzZUVsZW1lbnQwMi54aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTcsNiArMTcs
MTUgQEAgdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIAogWzFdIGh0dHA6
Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwMi9jb3B5cmlnaHQtc29mdHdhcmUtMjAw
MjEyMzEKICovCiAKKyAgLy8KKyAgLy8gIFdlYktpdCBtb2RpZmljYXRpb246IDEzLU1heS0yMDA3
CisgIC8vCisgIC8vICBJbmZvcm0gdGhlIHRlc3QgY29udHJvbGxlciB0aGF0IHRoaXMgdGVzdCBo
YXMgYSB0ZXh0LWZvcm1hdCByZXN1bHQgYW5kIHNvIHNob3VsZAorICAvLyAgYmUgZHVtcGVkIGFz
IHRleHQuCisgIC8vCisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCiAgIGZ1bmN0aW9uIGFzc2VydFNpemUo
ZGVzY3IsIGV4cGVjdGVkLCBhY3R1YWwpIHsKICAgICB2YXIgYWN0dWFsU2l6ZTsKICAgICBhc3Nl
cnROb3ROdWxsKGRlc2NyLCBhY3R1YWwpOwpJbmRleDogTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDA3LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MDctZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAyNDQ0NykKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIv
aHRtbC9IVE1MQm9keUVsZW1lbnQwNy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwyIEBACiBUZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MDcKLVN0YXR1cwllcnJvcgotTWVzc2FnZQlUeXBlRXJy
b3I6IFVuZGVmaW5lZCB2YWx1ZQorU3RhdHVzCVN1Y2Nlc3MKSW5kZXg6IExheW91dFRlc3RzL2Rv
bS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQwOC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVu
dDA4LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjQ0NDcpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MDgtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMiBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0
LVN1aXRlL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDA4Ci1TdGF0dXMJZXJyb3IKLU1lc3Nh
Z2UJVHlwZUVycm9yOiBVbmRlZmluZWQgdmFsdWUKK1N0YXR1cwlTdWNjZXNzCkluZGV4OiBMYXlv
dXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MDktZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1M
Qm9keUVsZW1lbnQwOS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI0NDQ3KQorKysgTGF5b3V0VGVz
dHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDA5LWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIgQEAKIFRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAw
MS9ET00tVGVzdC1TdWl0ZS9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQwOQotU3RhdHVzCWVy
cm9yCi1NZXNzYWdlCVR5cGVFcnJvcjogVW5kZWZpbmVkIHZhbHVlCitTdGF0dXMJU3VjY2VzcwpJ
bmRleDogTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDEw
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwy
L2h0bWwvSFRNTEJvZHlFbGVtZW50MTAtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNDQ0NykKKysr
IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQxMC1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyIEBACiBUZXN0CWh0dHA6Ly93d3cu
dzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVtZW50MTAK
LVN0YXR1cwllcnJvcgotTWVzc2FnZQlUeXBlRXJyb3I6IFVuZGVmaW5lZCB2YWx1ZQorU3RhdHVz
CVN1Y2Nlc3MKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9k
eUVsZW1lbnQxMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMi9odG1sL0hUTUxCb2R5RWxlbWVudDExLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MjQ0NDcpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTEJvZHlFbGVt
ZW50MTEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMiBAQAogVGVzdAlo
dHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxCb2R5
RWxlbWVudDExCi1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBVbmRlZmluZWQgdmFs
dWUKK1N0YXR1cwlTdWNjZXNzCkluZGV4OiBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0
bWwvSFRNTEJvZHlFbGVtZW50MTItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MQm9keUVsZW1lbnQxMi1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDI0NDQ3KQorKysgTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hU
TUxCb2R5RWxlbWVudDEyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIg
QEAKIFRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDIvaHRt
bC9IVE1MQm9keUVsZW1lbnQxMgotU3RhdHVzCWVycm9yCi1NZXNzYWdlCVR5cGVFcnJvcjogVW5k
ZWZpbmVkIHZhbHVlCitTdGF0dXMJU3VjY2VzcwpJbmRleDogTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDAxLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDEtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAyNDQ0NykKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRt
bC9IVE1MRG9jdW1lbnQwMS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwy
IEBACiBUZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwyL2h0
bWwvSFRNTERvY3VtZW50MDEKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCXRpdGxlTGluazogYXNz
ZXJ0RXF1YWxzIGZhaWxlZCwgYWN0dWFsIG51bGwsIGV4cGVjdGVkIE5JU1QgRE9NIEhUTUwgVGVz
dCAtIERPQ1VNRU5ULgorU3RhdHVzCVN1Y2Nlc3MKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQwMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDAyLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMjQ0NDcpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0
bWwvSFRNTERvY3VtZW50MDItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MiBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9o
dG1sL0hUTUxEb2N1bWVudDAyCi1TdGF0dXMJZmFpbHVyZQotTWVzc2FnZQlyZWZlcnJlckxpbms6
IGFzc2VydEVxdWFscyBmYWlsZWQsIGFjdHVhbCBudWxsLCBleHBlY3RlZCAuCitTdGF0dXMJU3Vj
Y2VzcwpJbmRleDogTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVu
dDAzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwyL2h0bWwvSFRNTERvY3VtZW50MDMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNDQ0NykKKysr
IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQwMy1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyIEBACiBUZXN0CWh0dHA6Ly93d3cudzMu
b3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDMKLVN0YXR1
cwlmYWlsdXJlCi1NZXNzYWdlCWRvbWFpbkxpbms6IGFzc2VydEVxdWFscyBmYWlsZWQsIGFjdHVh
bCBudWxsLCBleHBlY3RlZCAuCitTdGF0dXMJU3VjY2VzcwpJbmRleDogTGF5b3V0VGVzdHMvZG9t
L3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDA1LWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDUtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAyNDQ0NykKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZl
bDIvaHRtbC9IVE1MRG9jdW1lbnQwNS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwyIEBACiBUZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2
ZWwyL2h0bWwvSFRNTERvY3VtZW50MDUKLVN0YXR1cwllcnJvcgotTWVzc2FnZQlUeXBlRXJyb3I6
IFVuZGVmaW5lZCB2YWx1ZQorU3RhdHVzCVN1Y2Nlc3MKSW5kZXg6IExheW91dFRlc3RzL2RvbS94
aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQwNy1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDA3LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMjQ0NDcpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwy
L2h0bWwvSFRNTERvY3VtZW50MDctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMiBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVs
Mi9odG1sL0hUTUxEb2N1bWVudDA3Ci1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBV
bmRlZmluZWQgdmFsdWUKK1N0YXR1cwlTdWNjZXNzCkluZGV4OiBMYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDgtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQwOC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDI0NDQ3KQorKysgTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9o
dG1sL0hUTUxEb2N1bWVudDA4LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDIgQEAKIFRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDIv
aHRtbC9IVE1MRG9jdW1lbnQwOAotU3RhdHVzCWVycm9yCi1NZXNzYWdlCVR5cGVFcnJvcjogVW5k
ZWZpbmVkIHZhbHVlCitTdGF0dXMJU3VjY2VzcwpJbmRleDogTGF5b3V0VGVzdHMvZG9tL3hodG1s
L2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDA5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MDktZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAyNDQ0NykKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRt
bC9IVE1MRG9jdW1lbnQwOS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwy
IEBACiBUZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwyL2h0
bWwvSFRNTERvY3VtZW50MDkKLVN0YXR1cwllcnJvcgotTWVzc2FnZQlUeXBlRXJyb3I6IFVuZGVm
aW5lZCB2YWx1ZQorU3RhdHVzCVN1Y2Nlc3MKSW5kZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQxMC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDEwLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMjQ0NDcpCisrKyBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwv
SFRNTERvY3VtZW50MTAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMiBA
QAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1s
L0hUTUxEb2N1bWVudDEwCi1TdGF0dXMJZXJyb3IKLU1lc3NhZ2UJVHlwZUVycm9yOiBVbmRlZmlu
ZWQgdmFsdWUKK1N0YXR1cwlTdWNjZXNzCkluZGV4OiBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwyL2h0bWwvSFRNTERvY3VtZW50MTEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQxMS1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDI0NDQ3KQorKysgTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hU
TUxEb2N1bWVudDExLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIgQEAK
IFRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDIvaHRtbC9I
VE1MRG9jdW1lbnQxMQotU3RhdHVzCWVycm9yCi1NZXNzYWdlCVR5cGVFcnJvcjogVW5kZWZpbmVk
IHZhbHVlCitTdGF0dXMJU3VjY2VzcwpJbmRleDogTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVs
Mi9odG1sL0hUTUxEb2N1bWVudDEyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MTItZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAyNDQ0NykKKysrIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1M
RG9jdW1lbnQxMi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyIEBACiBU
ZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUvbGV2ZWwyL2h0bWwvSFRN
TERvY3VtZW50MTIKLVN0YXR1cwlmYWlsdXJlCi1NZXNzYWdlCWNvb2tpZUxpbms6IGFzc2VydEVx
dWFscyBmYWlsZWQsIGFjdHVhbCBudWxsLCBleHBlY3RlZCAuCitTdGF0dXMJU3VjY2VzcwpJbmRl
eDogTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDEzLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwv
SFRNTERvY3VtZW50MTMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNDQ0NykKKysrIExheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQxMy1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwyIEBACiBUZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEv
RE9NLVRlc3QtU3VpdGUvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MTMKLVN0YXR1cwllcnJvcgot
TWVzc2FnZQlUeXBlRXJyb3I6IFZhbHVlIHVuZGVmaW5lZCAocmVzdWx0IG9mIGV4cHJlc3Npb24g
ZG9jLmdldEVsZW1lbnRzQnlOYW1lKSBpcyBub3Qgb2JqZWN0LgorU3RhdHVzCVN1Y2Nlc3MKSW5k
ZXg6IExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MRG9jdW1lbnQxNC1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMi9odG1s
L0hUTUxEb2N1bWVudDE0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjQ0NDcpCisrKyBMYXlvdXRU
ZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvSFRNTERvY3VtZW50MTQtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMiBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAx
L0RPTS1UZXN0LVN1aXRlL2xldmVsMi9odG1sL0hUTUxEb2N1bWVudDE0Ci1TdGF0dXMJZXJyb3IK
LU1lc3NhZ2UJVHlwZUVycm9yOiBWYWx1ZSB1bmRlZmluZWQgKHJlc3VsdCBvZiBleHByZXNzaW9u
IGRvYy5nZXRFbGVtZW50c0J5TmFtZSkgaXMgbm90IG9iamVjdC4KK1N0YXR1cwlTdWNjZXNzCklu
ZGV4OiBMYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwyL2h0bWwvZG9jMDEtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDIvaHRtbC9kb2MwMS1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDI0NDQ3KQorKysgTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xl
dmVsMi9odG1sL2RvYzAxLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIg
QEAKIFRlc3QJaHR0cDovL3d3dy53My5vcmcvMjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDIvaHRt
bC9kb2MwMQotU3RhdHVzCWZhaWx1cmUKLU1lc3NhZ2UJdGl0bGVMaW5rOiBhc3NlcnRFcXVhbHMg
ZmFpbGVkLCBhY3R1YWwgbnVsbCwgZXhwZWN0ZWQgTklTVCBET00gSFRNTCBUZXN0IC0gQW5jaG9y
LgorU3RhdHVzCVN1Y2Nlc3MKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5k
b3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjQ0
NDcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zMTYsNiArMzE2LDcgQEAgd2luZG93LkRvY3Vt
ZW50LnByb3RvdHlwZS5lbGVtZW50RnJvbVBvaQogd2luZG93LkRvY3VtZW50LnByb3RvdHlwZS5l
dmFsdWF0ZSBbZnVuY3Rpb25dCiB3aW5kb3cuRG9jdW1lbnQucHJvdG90eXBlLmV4ZWNDb21tYW5k
IFtmdW5jdGlvbl0KIHdpbmRvdy5Eb2N1bWVudC5wcm90b3R5cGUuZ2V0RWxlbWVudEJ5SWQgW2Z1
bmN0aW9uXQord2luZG93LkRvY3VtZW50LnByb3RvdHlwZS5nZXRFbGVtZW50c0J5TmFtZSBbZnVu
Y3Rpb25dCiB3aW5kb3cuRG9jdW1lbnQucHJvdG90eXBlLmdldEVsZW1lbnRzQnlUYWdOYW1lIFtm
dW5jdGlvbl0KIHdpbmRvdy5Eb2N1bWVudC5wcm90b3R5cGUuZ2V0RWxlbWVudHNCeVRhZ05hbWVO
UyBbZnVuY3Rpb25dCiB3aW5kb3cuRG9jdW1lbnQucHJvdG90eXBlLmdldE92ZXJyaWRlU3R5bGUg
W2Z1bmN0aW9uXQo=
</data>
<flag name="review"
          id="6592"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>