<?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>172787</bug_id>
          
          <creation_ts>2017-05-31 16:58:36 -0700</creation_ts>
          <short_desc>Allow clients to specify a list of codecs which should require hardware decode support.</short_desc>
          <delta_ts>2017-06-06 19:12:51 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=173008</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jonlee</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1314439</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-31 16:58:36 -0700</bug_when>
    <thetext>Allow clients to specify a list of codecs which should require hardware decode support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314449</commentid>
    <comment_count>1</comment_count>
      <attachid>311660</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-31 17:06:29 -0700</bug_when>
    <thetext>Created attachment 311660
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314450</commentid>
    <comment_count>2</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-31 17:07:02 -0700</bug_when>
    <thetext>rdar://problem/31483572</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314451</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-05-31 17:08:20 -0700</bug_when>
    <thetext>Attachment 311660 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm:823:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314467</commentid>
    <comment_count>4</comment_count>
      <attachid>311664</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-31 17:32:18 -0700</bug_when>
    <thetext>Created attachment 311664
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314468</commentid>
    <comment_count>5</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-05-31 17:35:28 -0700</bug_when>
    <thetext>Attachment 311664 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm:823:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314646</commentid>
    <comment_count>6</comment_count>
      <attachid>311664</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-06-01 09:30:38 -0700</bug_when>
    <thetext>Comment on attachment 311664
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:437
&gt; +        if (!assetTrackMeetsHardwareDecodeRequirements(track, {&apos;hvc1&apos;})) {
&gt; +            m_parsingSucceeded = false;

Why do we fail to parse with just this codec check?  What&apos;s special about this codec?

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm:821
&gt; +- (NSArray&lt;NSNumber *&gt; *)_mediaCodecsRequiringHardwareSupport

Why NSNumber? Shouldn&apos;t this be an array of NSStrings?  The corresponding C API is.

&gt; Source/WebKit2/WebProcess/com.apple.WebProcess.sb.in:94
&gt; +    (iokit-property-regex #&quot;^IOGVA(.*)Decode$&quot;)

No corresponding Encode property?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314723</commentid>
    <comment_count>7</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-06-01 11:10:51 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #6)
&gt; Comment on attachment 311664 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=311664&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:437
&gt; &gt; +        if (!assetTrackMeetsHardwareDecodeRequirements(track, {&apos;hvc1&apos;})) {
&gt; &gt; +            m_parsingSucceeded = false;
&gt; 
&gt; Why do we fail to parse with just this codec check?  What&apos;s special about
&gt; this codec?

That flag is checked after the append and signals an error to be fired. And what&apos;s special about this codec is that we&apos;ve been asked not to decode it without hardware support, and, well, there&apos;s no hardware support.

&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm:821
&gt; &gt; +- (NSArray&lt;NSNumber *&gt; *)_mediaCodecsRequiringHardwareSupport
&gt; 
&gt; Why NSNumber? Shouldn&apos;t this be an array of NSStrings?  The corresponding C
&gt; API is.

Codecs are FourCC codes, (a uint32_t, effectively), not strings.  They&apos;re pushed through the API as strings because there&apos;s no support in WKPreferences or WebPreferenceStore for a preferences whose value is an array type.

&gt; &gt; Source/WebKit2/WebProcess/com.apple.WebProcess.sb.in:94
&gt; &gt; +    (iokit-property-regex #&quot;^IOGVA(.*)Decode$&quot;)
&gt; 
&gt; No corresponding Encode property?

There&apos;s already encode support in this list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314842</commentid>
    <comment_count>8</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-06-01 15:18:59 -0700</bug_when>
    <thetext>If we need to pass a FourCC code, why not just pass it as a uint32_t, or four ints, or something?  Even an NSArray&lt;NSNumber *&gt; seems excessive if we know the array must contain only four things and can only contain four things.  I definitely don&apos;t think we should have a version that passes an array of numbers with unspecified length and one version parsing a string.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315722</commentid>
    <comment_count>9</comment_count>
      <attachid>312016</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-06-05 10:55:41 -0700</bug_when>
    <thetext>Created attachment 312016
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315723</commentid>
    <comment_count>10</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-06-05 10:58:17 -0700</bug_when>
    <thetext>Attachment 312016 did not pass style-queue:


ERROR: Source/WebCore/page/Settings.h:31:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 30 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315727</commentid>
    <comment_count>11</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-06-05 11:11:27 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #8)
&gt; If we need to pass a FourCC code, why not just pass it as a uint32_t, or
&gt; four ints, or something?  Even an NSArray&lt;NSNumber *&gt; seems excessive if we
&gt; know the array must contain only four things and can only contain four
&gt; things.  I definitely don&apos;t think we should have a version that passes an
&gt; array of numbers with unspecified length and one version parsing a string.

So, I took this to heart and switched the setting to take a semicolon-separated list of  Content-Types, which (can) include the codec as a parameter. I did this for the reason you gave above, but also so that other ports that use non ISO-backed containers can use this same setting (other containers don&apos;t use 4CC codes to identify codecs).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315738</commentid>
    <comment_count>12</comment_count>
      <attachid>312022</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-06-05 12:03:29 -0700</bug_when>
    <thetext>Created attachment 312022
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315747</commentid>
    <comment_count>13</comment_count>
      <attachid>312022</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-06-05 13:07:03 -0700</bug_when>
    <thetext>Comment on attachment 312022
Patch

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

&gt; Source/WTF/ChangeLog:9
&gt; +        - a String::split() that returns a vector (rather than taking an out-reference to a vector).

We should remove the old one in another patch.

&gt; Source/WebCore/platform/graphics/FourCC.cpp:33
&gt; +    auto asciiValue = stringValue.ascii();

Can this be used to represent bytes outside the range 0..127?

&gt; Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:436
&gt; +        if (!assetTrackMeetsHardwareDecodeRequirements(track, {&apos;hvc1&apos;})) {

Apparently initializer list to const Vector&amp; doesn&apos;t work on at least El Capitan.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315786</commentid>
    <comment_count>14</comment_count>
      <attachid>312031</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-06-05 14:30:28 -0700</bug_when>
    <thetext>Created attachment 312031
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315793</commentid>
    <comment_count>15</comment_count>
      <attachid>312033</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-06-05 15:01:58 -0700</bug_when>
    <thetext>Created attachment 312033
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315800</commentid>
    <comment_count>16</comment_count>
      <attachid>312033</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-05 15:40:34 -0700</bug_when>
    <thetext>Comment on attachment 312033
Patch for landing

Clearing flags on attachment: 312033

Committed r217799: &lt;http://trac.webkit.org/changeset/217799&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315801</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-05 15:40:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311660</attachid>
            <date>2017-05-31 17:06:29 -0700</date>
            <delta_ts>2017-05-31 17:32:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172787-20170531170628.patch</filename>
            <type>text/plain</type>
            <size>31636</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3NjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjM3NWY2MDBiOWJiMTBk
YzAxNDBjZGI0ODk4YWNkMzkwMTI0MzllZS4uYjQ2ODU5MTA1YjllYTVhMGUzM2NhNTc5MDY5ZGZk
NTMyODdmMzU4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE3LTA1LTMxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IGNsaWVudHMgdG8g
c3BlY2lmeSBhIGxpc3Qgb2YgY29kZWNzIHdoaWNoIHNob3VsZCByZXF1aXJlIGhhcmR3YXJlIGRl
Y29kZSBzdXBwb3J0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTcyNzg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgbmV3IHNldHRpbmcsIGNoZWNrZWQgYnkgSFRNTE1lZGlhRWxlbWVudCwgd2hp
Y2ggYWxsb3dzIE1lZGlhUGxheWVyUHJpdmF0ZSBpbXBsZW1lbnRhdGlvbgorICAgICAgICB0byBy
ZXF1aXJlIHRoYXQgdGhlIHNwZWNpZmllZCBjb2RlY3MgaGF2ZSBoYXJkd2FyZSBzdXBwb3J0LiBU
aGlzIHJlcXVpcmVtZW50IHdpbGwgYmUgc3VwcG9ydGVkCisgICAgICAgIGluIHRoZSBub3JtYWwg
bWVkaWEgbG9hZGluZyBwYXRoIGFuZCB0aGUgTVNFIHBhdGggb24gQ29jb2EgcG9ydHMuCisKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6Om1lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KToKKyAgICAgICAgKiBodG1s
L0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRNZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3YXJlU3Vw
cG9ydCk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0
dGluZ3M6Om1lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9jb2NvYS9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHA6CisgICAgICAgICogcGxhdGZv
cm0vY29jb2EvVmlkZW9Ub29sYm94U29mdExpbmsuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6
Om1lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0VHJhY2tVdGlsaXRpZXMuaDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3Nl
dFRyYWNrVXRpbGl0aWVzLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmFzc2V0VHJhY2tN
ZWV0c0hhcmR3YXJlRGVjb2RlUmVxdWlyZW1lbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNoZWNrUGxheWFiaWxpdHkpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6YXNzZXRTdGF0
dXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakM6OmRpZFBhcnNlU3RyZWFtRGF0YUFzQXNzZXQpOgorCiAyMDE3LTA1LTMx
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEdldCA8
Y2hyb25vPiBvdXQgb2YgU3RkTGliRXh0cmFzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBiNDRkMTJlNTAzYzk4
NTAwYTFhMGNmYTMxOTMyNDRkYzJhNmUyOTIxLi42NTQ1MTFkN2EyZWQyMDYxZTkxNDBkYTU3OWNj
NmI2M2VhZDFjMzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTctMDUtMzEgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgY2xpZW50cyB0
byBzcGVjaWZ5IGEgbGlzdCBvZiBjb2RlY3Mgd2hpY2ggc2hvdWxkIHJlcXVpcmUgaGFyZHdhcmUg
ZGVjb2RlIHN1cHBvcnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzI3ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgYSBXS1dlYlBhZ2VDb25maWd1cmF0aW9uIChhbmQgYXNzb2NpYXRlZCBXZWJQ
cmVmZXJlbmNlcyBhbmQgV0tQcmVmZXJlbmNlc1JlZikgcHJvcGVydGllcworICAgICAgICBhbGxv
d2luZyBjbGllbnRzIHRvIHJlcXVpcmUgc3BlY2lmaWVkIGNvZGVjcyBoYXZlIGhhcmR3YXJlIGRl
Y29kZSBzdXBwb3J0LiBBbHNvIG9wZW4gdXAgdGhlCisgICAgICAgIHNhbmRib3ggb24gQ29jb2Eg
cG9ydHMgdG8gc2VydmljZXMgcmVxdWlyZWQgdG8gY2hlY2sgZm9yIGhhcmR3YXJlIGRlY29kZSBh
dmFpbGFiaWxpdHkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9u
cy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAg
ICAgKFdLUHJlZmVyZW5jZXNTZXRNZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCk6
CisgICAgICAgIChXS1ByZWZlcmVuY2VzQ29weU1lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVT
dXBwb3J0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246XSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tOgorICAgICAg
ICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIGNvcHlXaXRoWm9uZTpdKToKKyAgICAgICAgKC1b
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfbWVkaWFDb2RlY3NSZXF1aXJpbmdIYXJkd2FyZVN1cHBv
cnRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfc2V0TWVkaWFDb2RlY3NS
ZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Y29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW46CisKIDIwMTctMDUtMzEgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgR2V0IDxjaHJvbm8+IG91dCBvZiBT
dGRMaWJFeHRyYXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDg2YTI2YTg0YWRmZmEwZGZlN2Y2Mzc5NDA5MjY5NmQzOGNjNDcx
OWUuLjBiYmNhN2JhOTQwZDU5MDFkMmRlNTlmNWYyZTdjMWQ5MTQ4ODg3NGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYzMDIs
NiArNjMwMiw4IEBACiAJCUNERUE3NjM1MTQ2MEI3MUEwMDhCMzFGMSAvKiBDbG9jay5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVBNzYzMzE0NjBC
NDYyMDA4QjMxRjEgLyogQ2xvY2suY3BwICovOyB9OwogCQlDREVBN0M4NDEyNzYyMzA0MDBCODQ2
REQgLyogUmVuZGVyRnVsbFNjcmVlbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RFQTdDODIxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3Jl
ZW4uaCAqLzsgfTsKIAkJQ0RFQTdDODUxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3Jl
ZW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RF
QTdDODMxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uY3BwICovOyB9OworCQlD
REVDQTg5QTFFREY0NDdEMDBEQ0IwOEIgLyogQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQ0E4OTgxRURGNDQ3
RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5tbSAqLzsgfTsKKwkJQ0RFQ0E4OUIx
RURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQ0E4OTkxRURGNDQ3RDAwRENCMDhC
IC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5oICovOyB9OwogCQlDREVFMzkzNzE3OTc0MjU5MDAx
RDc1ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDREVFMzkzNjE3OTc0MjU5MDAxRDc1ODAgLyogUHVibGljVVJM
TWFuYWdlci5jcHAgKi87IH07CiAJCUNERUY0RkQ3MTdFODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVu
Z3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVG
NEZENjE3RTg1QzhGMDBBRUUyNEIgLyogR3JpZExlbmd0aC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERUZBMjI4MUU3NjY5RTgwMDBBRTk5QyAv
KiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0RFNjY3QTExRTRCQkE0RDAwRTgxNTRBIC8qIFBsYXRmb3JtQXVkaW9EYXRh
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE0
ODc3LDYgKzE0ODc5LDggQEAKIAkJQ0RFQTc2MzMxNDYwQjQ2MjAwOEIzMUYxIC8qIENsb2NrLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENsb2NrLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFQTdDODIxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRl
ckZ1bGxTY3JlZW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyRnVs
bFNjcmVlbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVBN0M4MzEyNzYyMzA0
MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW5kZXJGdWxsU2NyZWVuLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0RFQ0E4OTgxRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGll
cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFWQXNzZXRUcmFja1V0aWxpdGllcy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RFQ0E4OTkxRURGNDQ3RDAwRENCMDhCIC8qIEFW
QXNzZXRUcmFja1V0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBVkFzc2V0VHJhY2tVdGlsaXRp
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFRTM5MzYxNzk3NDI1OTAwMUQ3
NTgwIC8qIFB1YmxpY1VSTE1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUHVibGljVVJMTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNERUUzOTM4MTc5NzQyNzQwMDFENzU4MCAvKiBVUkxSZWdpc3RyeS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBVUkxSZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVGNEZE
NjE3RTg1QzhGMDBBRUUyNEIgLyogR3JpZExlbmd0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHcmlkTGVuZ3RoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
NDUxNCw2ICsyNDUxOCw4IEBACiAJCQkJQ0Q4QjVBNDAxODBEMTQ5QTAwOEI4RTY1IC8qIFZpZGVv
VHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tICovLAogCQkJCUNEN0UwNTIwMTY1MUE4
NDEwMEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaCAqLywKIAkJCQlDRDdFMDUy
MTE2NTFBODQxMDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tICovLAorCQkJ
CUNERUNBODk4MUVERjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0VHJhY2tVdGlsaXRpZXMubW0gKi8s
CisJCQkJQ0RFQ0E4OTkxRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5o
ICovLAogCQkJKTsKIAkJCXBhdGggPSBvYmpjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
QEAgLTI4MjU0LDYgKzI4MjYwLDcgQEAKIAkJCQlBQTdGRUVBNzE2QTRFNkYzMDA0QzBDMzMgLyog
SlNTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBN0ZFRUE5
MTZBNEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzgyNDMyOTBEMENFOEEyMDA0NjBDOEYgLyogSlNTUUxFcnJvci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQ0RFQ0E4OUIxRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxp
dGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjUyNUE5NjUxMUNBMjM0MDAwM0EyM0E4IC8qIEpT
U1FMRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUU4MkZFRDBDQUIwN0VFMDAyMjM3
QUUgLyogSlNTUUxSZXN1bHRTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRkUxMTlBMENCRkZD
QzQwMDMwMTdGQSAvKiBKU1NRTFJlc3VsdFNldFJvd0xpc3QuaCBpbiBIZWFkZXJzICovLApAQCAt
MzMyMjUsNiArMzMyMzIsNyBAQAogCQkJCTkzMUNCRDBDMTYxQTQ0RTkwMEU0Qzg3NCAvKiBTY3Jv
bGxpbmdTdGF0ZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNFRjdENTUxOTU0RjEzOTAw
REZCNzFEIC8qIFNjcm9sbGluZ1N0YXRlTm9kZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGRUEz
RTgzMTkxQjMxQkYwMDBGMUI1NSAvKiBTY3JvbGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9k
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDREVDQTg5QTFFREY0NDdEMDBEQ0IwOEIgLyogQVZB
c3NldFRyYWNrVXRpbGl0aWVzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMxQ0JEMEUxNjFBNDRF
OTAwRTRDODc0IC8qIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRkI4ODkwRTE2N0QzMDE2MDAxMENEQTUgLyogU2Nyb2xsaW5nU3RhdGVTdGlja3lO
b2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMUNCRDEwMTYxQTQ0RTkwMEU0Qzg3NCAvKiBT
Y3JvbGxpbmdTdGF0ZVRyZWUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBhOWQxNzQwODI5YzEwZGZjY2FjNjEzZWIyMzE2YTVi
ZjliYWVhYjhmLi5kYmJiZmZjZjZlZTkyZTI0MTUyMmIwNmQwMzVkN2Y4YzhlODFhNjRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTY2NTcsNiArNjY1Nywx
MSBAQCBkb3VibGUgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJSZXF1ZXN0ZWRQbGF5YmFj
a1JhdGUoKSBjb25zdAogICAgIHJldHVybiBwb3RlbnRpYWxseVBsYXlpbmcoKSA/IHJlcXVlc3Rl
ZFBsYXliYWNrUmF0ZSgpIDogMDsKIH0KIAorY29uc3QgVmVjdG9yPHVpbnQzMl90PiYgSFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFDb2RlY3NSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdAor
eworICAgIHJldHVybiBkb2N1bWVudCgpLnNldHRpbmdzKCkubWVkaWFDb2RlY3NSZXF1aXJpbmdI
YXJkd2FyZVN1cHBvcnQoKTsKK30KKwogI2lmIFVTRShHU1RSRUFNRVIpCiB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OnJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnMoY29uc3QgU3RyaW5nJiBkZXRh
aWxzLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxs
TWlzc2luZ1BsdWdpbnNDYWxsYmFjayYgY2FsbGJhY2spCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5oCmluZGV4IGE0OTBiZDc3ZDRlOWE3MjRhZDQyYjJlY2U2YjYyNTk3YmRm
NmZiZTUuLmI0OTIyMjA5YTQ2MjU4ZjMwNjI1ZTEyY2NjYTIyMjIyYWY1MDUzYzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC02ODAsNiArNjgwLDcgQEAgcHJpdmF0
ZToKICAgICBkb3VibGUgbWVkaWFQbGF5ZXJSZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSBjb25zdCBm
aW5hbDsKICAgICBWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1lZGlhUGxheWVyRnVsbHNjcmVlbk1vZGUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBmdWxsc2NyZWVuTW9kZSgpOyB9CiAgICAgYm9vbCBtZWRp
YVBsYXllclNob3VsZERpc2FibGVTbGVlcCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHNob3VsZERp
c2FibGVTbGVlcCgpID09IFNsZWVwVHlwZTo6RGlzcGxheTsgfQorICAgIGNvbnN0IFZlY3Rvcjx1
aW50MzJfdD4mIG1lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkgY29uc3QgZmlu
YWw7CiAKICNpZiBVU0UoR1NUUkVBTUVSKQogICAgIHZvaWQgcmVxdWVzdEluc3RhbGxNaXNzaW5n
UGx1Z2lucyhjb25zdCBTdHJpbmcmIGRldGFpbHMsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24s
IE1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrJikgZmluYWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IDNiNDEzNDRiZWRmNGM5ZWE4ZmFlN2RlZDA2
OTliMzc0M2U4NzlmZjcuLjdjMjU4NDBjNWZhNmNhZWEwN2Y5YzQzYzRiYmY2ZjI3ZjdkNGE5YzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC03ODksNCArNzg5LDIzIEBAIGJvb2wgU2V0
dGluZ3M6OmFsbG93c0FueVNTTENlcnRpZmljYXRlKCkKICAgICByZXR1cm4gZ0FsbG93c0FueVNT
TENlcnRpZmljYXRlOwogfQogCit2b2lkIFNldHRpbmdzOjpzZXRNZWRpYUNvZGVjc1JlcXVpcmlu
Z0hhcmR3YXJlU3VwcG9ydChjb25zdCBTdHJpbmcmIGNvZGVjc1N0cmluZykKK3sKKyAgICBWZWN0
b3I8U3RyaW5nPiBjb2RlY3NTcGxpdDsKKyAgICBjb2RlY3NTdHJpbmcuc3BsaXQoIiwiLCBjb2Rl
Y3NTcGxpdCk7CisKKyAgICBWZWN0b3I8dWludDMyX3Q+IGNvZGVjczsKKyAgICBjb2RlY3MucmVz
ZXJ2ZUluaXRpYWxDYXBhY2l0eShjb2RlY3NTcGxpdC5zaXplKCkpOworICAgIGZvciAoYXV0byYg
Y29kZWNTdHJpbmcgOiBjb2RlY3NTcGxpdCkKKyAgICAgICAgY29kZWNzLmFwcGVuZChjb2RlY1N0
cmluZy50b1VJbnQoKSk7CisKKyAgICBtX21lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBw
b3J0ID0gV1RGTW92ZShjb2RlY3MpOworfQorCit2b2lkIFNldHRpbmdzOjpzZXRNZWRpYUNvZGVj
c1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydChWZWN0b3I8dWludDMyX3Q+IGNvZGVjcykKK3sKKyAg
ICBtX21lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0ID0gY29kZWNzOworfQorCisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCBkOTViNmFl
NGUwOGM2MjY3ZmE4M2Q3YmZkMzRkYThkZjY1ODRlYmZlLi5mZjQzYWJjMWNhNmE5M2E5NDEzNmRh
NTVhMzAwNTdlMjI5NjZiM2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCkBAIC0zMjUsNiArMzI1
LDEwIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRBbGxvd3NB
bnlTU0xDZXJ0aWZpY2F0ZShib29sKTsKICAgICBzdGF0aWMgYm9vbCBhbGxvd3NBbnlTU0xDZXJ0
aWZpY2F0ZSgpOwogCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNZWRpYUNvZGVjc1JlcXVp
cmluZ0hhcmR3YXJlU3VwcG9ydChWZWN0b3I8dWludDMyX3Q+KTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldE1lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KGNvbnN0IFN0cmlu
ZyYpOworICAgIGNvbnN0IFZlY3Rvcjx1aW50MzJfdD4mIG1lZGlhQ29kZWNzUmVxdWlyaW5nSGFy
ZHdhcmVTdXBwb3J0KCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3
YXJlU3VwcG9ydDsgfQorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFNldHRpbmdzKFBhZ2UqKTsK
IApAQCAtNDI0LDYgKzQyOCw4IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgZ0xvd1Bvd2Vy
VmlkZW9BdWRpb0J1ZmZlclNpemVFbmFibGVkOwogICAgIHN0YXRpYyBib29sIGdSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRW5hYmxlZEVuYWJsZWQ7CiAgICAgc3RhdGljIGJvb2wgZ0FsbG93c0FueVNT
TENlcnRpZmljYXRlOworCisgICAgVmVjdG9yPHVpbnQzMl90PiBtX21lZGlhQ29kZWNzUmVxdWly
aW5nSGFyZHdhcmVTdXBwb3J0OwogfTsKIAogaW5saW5lIGJvb2wgU2V0dGluZ3M6OmlzUG9zdExv
YWRDUFVVc2FnZU1lYXN1cmVtZW50RW5hYmxlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAKaW5kZXggMmMyYjY4ZGQ0
MDk2Nzg3NjgxYzFlNDIxYzFkMzc2MDI5OTZjMjQ5Yi4uZDlmYzA0OTI5ZDg1MWFhMmY1YTk4ZWRi
MjA0YTQzNjFmNWMwNzg3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvVmlkZW9Ub29sYm94U29mdExpbmsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcApAQCAtMzgsNSArMzgsNiBAQCBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBWaWRlb1Rvb2xib3gsIFZURGVjb21wcmVz
c2lvblNlc3Npb25XYWl0RgogI2RlZmluZSBWVERlY29tcHJlc3Npb25TZXNzaW9uV2FpdEZvckFz
eW5jaHJvbm91c0ZyYW1lcyBzb2Z0TGlua19WaWRlb1Rvb2xib3hfVlREZWNvbXByZXNzaW9uU2Vz
c2lvbldhaXRGb3JBc3luY2hyb25vdXNGcmFtZXMKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFKFdlYkNvcmUsIFZpZGVvVG9vbGJveCwgVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZy
YW1lLCBPU1N0YXR1cywgKFZURGVjb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiwgQ01TYW1w
bGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBWVERlY29kZUZyYW1lRmxhZ3MgZGVjb2RlRmxhZ3Ms
IHZvaWQqIHNvdXJjZUZyYW1lUmVmQ29uLCBWVERlY29kZUluZm9GbGFncyogaW5mb0ZsYWdzT3V0
KSwgKHNlc3Npb24sIHNhbXBsZUJ1ZmZlciwgZGVjb2RlRmxhZ3MsIHNvdXJjZUZyYW1lUmVmQ29u
LCBpbmZvRmxhZ3NPdXQpKQogI2RlZmluZSBWVERlY29tcHJlc3Npb25TZXNzaW9uRGVjb2RlRnJh
bWUgc29mdExpbmtfVmlkZW9Ub29sYm94X1ZURGVjb21wcmVzc2lvblNlc3Npb25EZWNvZGVGcmFt
ZQorU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgVmlkZW9U
b29sYm94LCBWVElzSGFyZHdhcmVEZWNvZGVTdXBwb3J0ZWQsIEJvb2xlYW4sIChDTVZpZGVvQ29k
ZWNUeXBlIGNvZGVjVHlwZSksIChjb2RlY1R5cGUpKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9T
T1VSQ0UoV2ViQ29yZSwgVmlkZW9Ub29sYm94LCBrVlRWaWRlb0RlY29kZXJTcGVjaWZpY2F0aW9u
X0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0RlY29kZXIsIENGU3RyaW5nUmVmKQogI2Rl
ZmluZSBrVlRWaWRlb0RlY29kZXJTcGVjaWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0
ZWRWaWRlb0RlY29kZXIgZ2V0X1ZpZGVvVG9vbGJveF9rVlRWaWRlb0RlY29kZXJTcGVjaWZpY2F0
aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0RlY29kZXIoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9Ub29sYm94U29mdExpbmsuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmgKaW5kZXgg
ZmIwMDk4ZWFjODE4NjQyZjM2NGE3NWMxNGIxODZjNTYzZTQzM2E5Ny4uY2M3NTM4M2ZiNDM3Yjgw
MjUyZDFiNzhhNTljNzUzODYyOWQ4Yzc2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvVmlkZW9Ub29sYm94U29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9WaWRlb1Rvb2xib3hTb2Z0TGluay5oCkBAIC0zOCw1ICszOCw3IEBAIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIFZpZGVvVG9vbGJveCwgVlREZWNv
bXByZXNzaW9uU2Vzc2lvbldhaXRGCiAjZGVmaW5lIFZURGVjb21wcmVzc2lvblNlc3Npb25XYWl0
Rm9yQXN5bmNocm9ub3VzRnJhbWVzIHNvZnRMaW5rX1ZpZGVvVG9vbGJveF9WVERlY29tcHJlc3Np
b25TZXNzaW9uV2FpdEZvckFzeW5jaHJvbm91c0ZyYW1lcwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoV2ViQ29yZSwgVmlkZW9Ub29sYm94LCBWVERlY29tcHJlc3Npb25TZXNzaW9uRGVj
b2RlRnJhbWUsIE9TU3RhdHVzLCAoVlREZWNvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uLCBD
TVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIFZURGVjb2RlRnJhbWVGbGFncyBkZWNvZGVG
bGFncywgdm9pZCogc291cmNlRnJhbWVSZWZDb24sIFZURGVjb2RlSW5mb0ZsYWdzKiBpbmZvRmxh
Z3NPdXQpLCAoc2Vzc2lvbiwgc2FtcGxlQnVmZmVyLCBkZWNvZGVGbGFncywgc291cmNlRnJhbWVS
ZWZDb24sIGluZm9GbGFnc091dCkpCiAjZGVmaW5lIFZURGVjb21wcmVzc2lvblNlc3Npb25EZWNv
ZGVGcmFtZSBzb2Z0TGlua19WaWRlb1Rvb2xib3hfVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29k
ZUZyYW1lCitTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX0hFQURFUihXZWJDb3JlLCBW
aWRlb1Rvb2xib3gsIFZUSXNIYXJkd2FyZURlY29kZVN1cHBvcnRlZCwgQm9vbGVhbiwgKENNVmlk
ZW9Db2RlY1R5cGUgY29kZWNUeXBlKSwgKGNvZGVjVHlwZSkpCisjZGVmaW5lIFZUSXNIYXJkd2Fy
ZURlY29kZVN1cHBvcnRlZCBzb2Z0TGlua19WaWRlb1Rvb2xib3hfVlRJc0hhcmR3YXJlRGVjb2Rl
U3VwcG9ydGVkCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihXZWJDb3JlLCBWaWRlb1Rv
b2xib3gsIGtWVFZpZGVvRGVjb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVy
YXRlZFZpZGVvRGVjb2RlciwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtWVFZpZGVvRGVjb2RlclNw
ZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRGVjb2RlciBnZXRfVmlk
ZW9Ub29sYm94X2tWVFZpZGVvRGVjb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2Nl
bGVyYXRlZFZpZGVvRGVjb2RlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaAppbmRleCA5NjViN2ZhMWJhMmQ3Nzg4Zjc5YWM1OGIwZTkzYjc5NTBm
ODM4YWZmLi5iZjRmNTgzMjU3NjlhOWZhYmEyY2YzMWM0YWQyZGY0NjgyOTY2ZDdhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTI3Myw2
ICsyNzMsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgYm9vbCBtZWRpYVBsYXll
clNob3VsZERpc2FibGVTbGVlcCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCBjb25zdCBWZWN0b3I8dWludDMyX3Q+JiBtZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3YXJlU3Vw
cG9ydCgpIGNvbnN0IHsgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3Rvcjx1aW50MzJfdD4+IGNv
ZGVjczsgcmV0dXJuIGNvZGVjczsgfQogfTsKIAogY2xhc3MgTWVkaWFQbGF5ZXJTdXBwb3J0c1R5
cGVDbGllbnQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQVZBc3NldFRyYWNrVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0VHJhY2tVdGlsaXRp
ZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kM2RlMjE4NGIwN2NlMDNmNjBiZTNlN2NjYjcyZGZkMjgxNDU3YmJk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQVZBc3NldFRyYWNrVXRpbGl0aWVzLmgKQEAgLTAsMCArMSw0MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZG
T1VOREFUSU9OKQorCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCitPQkpDX0NMQVNTIEFWQXNz
ZXRUcmFjazsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIGFzc2V0VHJhY2tNZWV0c0hh
cmR3YXJlRGVjb2RlUmVxdWlyZW1lbnRzKEFWQXNzZXRUcmFjayAqLCBjb25zdCBWZWN0b3I8dWlu
dDMyX3Q+JiBjb2RlY3NSZXF1aXJpbmdIYXJkd2FyZURlY29kZSk7CisKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9BVkFzc2V0VHJhY2tVdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0VHJhY2tVdGlsaXRpZXMubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODM1OGYwMzgyNDA1YjBlN2FiNzQ5YzgxYjcwZDdlODJmODFiZDY2MwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0FWQXNzZXRUcmFja1V0aWxpdGllcy5tbQpAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJBVkFzc2V0VHJhY2tVdGlsaXRpZXMuaCIK
KworI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKKworI2ltcG9ydCA8QVZG
b3VuZGF0aW9uL0FWQXNzZXRUcmFjay5oPgorI2ltcG9ydCAiVmlkZW9Ub29sYm94U29mdExpbmsu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIGFzc2V0VHJhY2tNZWV0c0hhcmR3YXJl
RGVjb2RlUmVxdWlyZW1lbnRzKEFWQXNzZXRUcmFjayAqdHJhY2ssIGNvbnN0IFZlY3Rvcjx1aW50
MzJfdD4mIGNvZGVjc1JlcXVpcmluZ0hhcmR3YXJlRGVjb2RlKQoreworICAgIC8vIElmIHdlIGNh
bid0IGRldGVybWluZSB3aGV0aGVyIGEgY29kZWMgaGFzIGhhcmR3YXJlIHN1cHBvcnQgb3Igbm90
LCBkZWZhdWx0IHRvIHRydWUuCisgICAgaWYgKCFjYW5Mb2FkX1ZpZGVvVG9vbGJveF9WVElzSGFy
ZHdhcmVEZWNvZGVTdXBwb3J0ZWQoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAo
Y29kZWNzUmVxdWlyaW5nSGFyZHdhcmVEZWNvZGUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4g
dHJ1ZTsKKworICAgIGZvciAoTlNVSW50ZWdlciBpID0gMCwgY291bnQgPSB0cmFjay5mb3JtYXRE
ZXNjcmlwdGlvbnMuY291bnQ7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgIENNRm9ybWF0RGVz
Y3JpcHRpb25SZWYgZGVzY3JpcHRpb24gPSAoQ01Gb3JtYXREZXNjcmlwdGlvblJlZil0cmFjay5m
b3JtYXREZXNjcmlwdGlvbnNbaV07CisgICAgICAgIGlmIChDTUZvcm1hdERlc2NyaXB0aW9uR2V0
TWVkaWFUeXBlKGRlc2NyaXB0aW9uKSAhPSBrQ01NZWRpYVR5cGVfVmlkZW8pCisgICAgICAgICAg
ICBjb250aW51ZTsKKworICAgICAgICBDTVZpZGVvQ29kZWNUeXBlIGNvZGVjID0gQ01Gb3JtYXRE
ZXNjcmlwdGlvbkdldE1lZGlhU3ViVHlwZShkZXNjcmlwdGlvbik7CisgICAgICAgIGlmICghY29k
ZWNzUmVxdWlyaW5nSGFyZHdhcmVEZWNvZGUuY29udGFpbnMoY29kZWMpKQorICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgaWYgKCFWVElzSGFyZHdhcmVEZWNvZGVTdXBwb3J0ZWQoY29k
ZWMpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCAzOGM5MjcwOWUxZGQw
NDBiNzcxN2VmYjUzOTFiYjE5NTQ3MTYxOGI2Li5hYjE1ZjY0MmVlZGRiNDQ4MTdjOTFiZTdmMWEy
MjRhZmNkZWQxNzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC00MjQsNiArNDI0LDcgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fY2FjaGVkQ2FuUGxheUZhc3RGb3J3YXJkOwogICAgIGJvb2wg
bV9jYWNoZWRDYW5QbGF5RmFzdFJldmVyc2U7CiAgICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsK
KyAgICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gbV90cmFja3NBcmVQbGF5YWJsZTsKICNp
ZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAgIG11dGFibGUgYm9vbCBtX2Fs
bG93c1dpcmVsZXNzVmlkZW9QbGF5YmFjazsKICAgICBib29sIG1fc2hvdWxkUGxheVRvUGxheWJh
Y2tUYXJnZXQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggZDA3YTEyNDk2
NjJkYjhmODlmNTNkYjRmN2Q1YWEzOTc5ZWViMTQ1Mi4uZmMzMWJkYzE2ODYwOTdjYzE5YTUzOGIw
OTBjOTQ4ZWM3ZWNiMTcwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCiAKKyNpbXBvcnQg
IkFWQXNzZXRUcmFja1V0aWxpdGllcy5oIgogI2ltcG9ydCAiQVZGb3VuZGF0aW9uTUlNRVR5cGVD
YWNoZS5oIgogI2ltcG9ydCAiQVZGb3VuZGF0aW9uU1BJLmgiCiAjaW1wb3J0ICJBVlRyYWNrUHJp
dmF0ZUFWRk9iakNJbXBsLmgiCkBAIC0xMTQ2LDcgKzExNDcsNyBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNoZWNrUGxheWFiaWxpdHkoKQogICAgIExPRyhNZWRp
YSwgIk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNoZWNrUGxheWFiaWxpdHko
JXApIiwgdGhpcyk7CiAgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKIAotICAg
IFttX2F2QXNzZXQuZ2V0KCkgbG9hZFZhbHVlc0FzeW5jaHJvbm91c2x5Rm9yS2V5czpbTlNBcnJh
eSBhcnJheVdpdGhPYmplY3Q6QCJwbGF5YWJsZSJdIGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAg
W21fYXZBc3NldC5nZXQoKSBsb2FkVmFsdWVzQXN5bmNocm9ub3VzbHlGb3JLZXlzOltOU0FycmF5
IGFycmF5V2l0aE9iamVjdHM6QCJwbGF5YWJsZSIsIEAidHJhY2tzIiwgbmlsXSBjb21wbGV0aW9u
SGFuZGxlcjpeewogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrVGhpc10gewogICAgICAg
ICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5zY2hlZHVsZU1h
aW5UaHJlYWROb3RpZmljYXRpb24oTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpOb3Rp
ZmljYXRpb246OkFzc2V0UGxheWFiaWxpdHlLbm93bik7CkBAIC0xNTg5LDcgKzE1OTAsMTcgQEAg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpBc3NldFN0YXR1cyBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjoKICAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckFW
QXNzZXRTdGF0dXNDYW5jZWxsZWQ7IC8vIExvYWRpbmcgb2YgYXQgbGVhc3Qgb25lIGtleSB3YXMg
Y2FuY2VsbGVkLgogICAgIH0KIAotICAgIGlmIChbW21fYXZBc3NldC5nZXQoKSB2YWx1ZUZvcktl
eTpAInBsYXlhYmxlIl0gYm9vbFZhbHVlXSkKKyAgICBpZiAoIW1fdHJhY2tzQXJlUGxheWFibGUp
IHsKKyAgICAgICAgbV90cmFja3NBcmVQbGF5YWJsZSA9IHRydWU7CisgICAgICAgIGZvciAoQVZB
c3NldFRyYWNrICp0cmFjayBpbiBbbV9hdkFzc2V0IHRyYWNrc10pIHsKKyAgICAgICAgICAgIGlm
ICghYXNzZXRUcmFja01lZXRzSGFyZHdhcmVEZWNvZGVSZXF1aXJlbWVudHModHJhY2ssIHsnaHZj
MSd9KSkgeworICAgICAgICAgICAgICAgIG1fdHJhY2tzQXJlUGxheWFibGUgPSBmYWxzZTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwor
ICAgIGlmIChbW21fYXZBc3NldC5nZXQoKSB2YWx1ZUZvcktleTpAInBsYXlhYmxlIl0gYm9vbFZh
bHVlXSAmJiBtX3RyYWNrc0FyZVBsYXlhYmxlLnZhbHVlKCkpCiAgICAgICAgIHJldHVybiBNZWRp
YVBsYXllckFWQXNzZXRTdGF0dXNQbGF5YWJsZTsKIAogICAgIHJldHVybiBNZWRpYVBsYXllckFW
QXNzZXRTdGF0dXNMb2FkZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmluZGV4IDU1ZDI2ZjZjZjcyMTNiN2U1MmMzOTE4NmY5
ZGNhMWJjNGEwMTEwODYuLjc1Y2ZjYWRhMTAxYWFhZDU0YTc3MTBjOGU4OTNkMjM4NTM3ZDFjYjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAm
JiBVU0UoQVZGT1VOREFUSU9OKQogCisjaW1wb3J0ICJBVkFzc2V0VHJhY2tVdGlsaXRpZXMuaCIK
ICNpbXBvcnQgIkFWRm91bmRhdGlvblNQSS5oIgogI2ltcG9ydCAiQXVkaW9UcmFja1ByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMuaCIKICNpbXBvcnQgIkNETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNz
aW9uLmgiCkBAIC00MzEsNiArNDMyLDEzIEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akM6OmRpZFBhcnNlU3RyZWFtRGF0YUFzQXNzZXQoQVZBc3NldCogYXNzZXQpCiB7CiAgICAgTE9H
KE1lZGlhU291cmNlLCAiU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFBhcnNlU3RyZWFt
RGF0YUFzQXNzZXQoJXApIiwgdGhpcyk7CiAKKyAgICBmb3IgKEFWQXNzZXRUcmFjayAqdHJhY2sg
aW4gW2Fzc2V0IHRyYWNrc10pIHsKKyAgICAgICAgaWYgKCFhc3NldFRyYWNrTWVldHNIYXJkd2Fy
ZURlY29kZVJlcXVpcmVtZW50cyh0cmFjaywgeydodmMxJ30pKSB7CisgICAgICAgICAgICBtX3Bh
cnNpbmdTdWNjZWVkZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgIH0KKwogICAgIG1fYXNzZXQgPSBhc3NldDsKIAogICAgIG1fdmlkZW9UcmFja3MuY2xlYXIo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmlu
aXRpb25zLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9u
cy5oCmluZGV4IGRjM2MzMTIwZTRmZTQyZDhkOTQxMGQ5NmVhZTg2ODQxNzQ4M2JmMGMuLjIyNjBj
MjRkZDg2NWIzNzY2Njc3YWIyNDY3MjYxZjEzMTM4OGVjMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaApAQCAtNDAxLDYgKzQwMSw3
IEBACiAgICAgRk9SX0VBQ0hfV0VCS0lUX0ZPTlRfRkFNSUxZX1BSRUZFUkVOQ0UobWFjcm8pIFwK
ICAgICBtYWNybyhEZWZhdWx0VGV4dEVuY29kaW5nTmFtZSwgZGVmYXVsdFRleHRFbmNvZGluZ05h
bWUsIFN0cmluZywgU3RyaW5nLCBkZWZhdWx0VGV4dEVuY29kaW5nTmFtZUZvclN5c3RlbUxhbmd1
YWdlKCksICIiLCAiIikgXAogICAgIG1hY3JvKEZUUERpcmVjdG9yeVRlbXBsYXRlUGF0aCwgZnRw
RGlyZWN0b3J5VGVtcGxhdGVQYXRoLCBTdHJpbmcsIFN0cmluZywgIiIsICIiLCAiIikgXAorICAg
IG1hY3JvKE1lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0LCBtZWRpYUNvZGVjc1Jl
cXVpcmluZ0hhcmR3YXJlU3VwcG9ydCwgU3RyaW5nLCBTdHJpbmcsICIiLCAiIiwgIiIpIFwKICAg
ICBcCiAKICNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX1NUUklOR19QUkVGRVJFTkNFX05PVF9JTl9X
RUJDT1JFKG1hY3JvKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
cmVmZXJlbmNlcy5jcHAKaW5kZXggMWI3YjhjM2ZhMjA1ZjVhNjNkMDlmZTg2ZDAzOTI3Y2EyY2Qy
NWQ5MC4uNzdlMWFhZDU4YzMyYWYzOWViM2RkMDA3NDc0ZGQ5YTM5MmE1NzkxYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApAQCAtMTc3
MCwzICsxNzcwLDE0IEBAIGJvb2wgV0tQcmVmZXJlbmNlc0dldE1lZGlhVXNlckdlc3R1cmVJbmhl
cml0c0Zyb21Eb2N1bWVudChXS1ByZWZlcmVuY2VzUmVmIHByZWZlCiB7CiAgICAgcmV0dXJuIHRv
SW1wbChwcmVmZXJlbmNlc1JlZiktPm1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVu
dCgpOwogfQorCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRNZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3
YXJlU3VwcG9ydChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBXS1N0cmluZ1JlZiBj
b2RlY3MpCit7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0TWVkaWFDb2RlY3NSZXF1
aXJpbmdIYXJkd2FyZVN1cHBvcnQodG9XVEZTdHJpbmcoY29kZWNzKSk7Cit9CisKK1dLU3RyaW5n
UmVmIFdLUHJlZmVyZW5jZXNDb3B5TWVkaWFDb2RlY3NSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQo
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK3sKKyAgICByZXR1cm4gdG9Db3BpZWRB
UEkodG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+bWVkaWFDb2RlY3NSZXF1aXJpbmdIYXJkd2FyZVN1
cHBvcnQoKSk7Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKaW5kZXggZWZkYTgyNTM2MTUyYWJjOWY0NTU4
MjJlMmNhNjQ4ZjI3ZDcwZTcwMS4uNTBlZmI1YjBiNzY1ZTZiOGEyYTM0N2YxYWE1ZjgxMmRkOGIx
OGYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVy
ZW5jZXNSZWZQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
UHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKQEAgLTQ5Nyw2ICs0OTcsMTAgQEAgV0tfRVhQT1JUIGJv
b2wgV0tQcmVmZXJlbmNlc0dldEludmlzaWJsZU1lZGlhQXV0b3BsYXlQZXJtaXR0ZWQoV0tQcmVm
ZXJlbmNlc1JlZikKIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRNZWRpYVVzZXJHZXN0
dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnQoV0tQcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKTsKIFdL
X0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRNZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9t
RG9jdW1lbnQoV0tQcmVmZXJlbmNlc1JlZik7CiAKKy8vIERlZmF1bHRzIHRvIGFuIGVtcHR5IHN0
cmluZworV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ29kZWNzUmVxdWlyaW5n
SGFyZHdhcmVTdXBwb3J0KFdLUHJlZmVyZW5jZXNSZWYsIFdLU3RyaW5nUmVmKTsKK1dLX0VYUE9S
VCBXS1N0cmluZ1JlZiBXS1ByZWZlcmVuY2VzQ29weU1lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdh
cmVTdXBwb3J0KFdLUHJlZmVyZW5jZXNSZWYpOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQppbmRleCA2NDkyZGZmMWYzNmI3MDUzYjA5YTBmMWFjODg3OTAxMWFkZTBjODVhLi43YTg0YWY3
N2VkYjM2NzFjZjU5OWY0NGU3YzJhZmI2MTY0YjUwODhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNTA0LDYgKzUwNCw4IEBAIC0g
KHZvaWQpX2luaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlv
biAqKWNvbmZpZ3VyYXRpb24KIAogICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlVmFs
dWVzKCkuc2V0KFdlYktpdDo6V2ViUHJlZmVyZW5jZXNLZXk6Om5lZWRzU3RvcmFnZUFjY2Vzc0Zy
b21GaWxlVVJMc1F1aXJrS2V5KCksIFdlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZTo6VmFsdWUo
ISFbX2NvbmZpZ3VyYXRpb24gX25lZWRzU3RvcmFnZUFjY2Vzc0Zyb21GaWxlVVJMc1F1aXJrXSkp
OwogCisgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VWYWx1ZXMoKS5zZXQoV2ViS2l0
OjpXZWJQcmVmZXJlbmNlc0tleTo6bWVkaWFDb2RlY3NSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnRL
ZXkoKSwgV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlOjpWYWx1ZShbW19jb25maWd1cmF0aW9u
IF9tZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydF0gY29tcG9uZW50c0pvaW5lZEJ5
U3RyaW5nOkAiLCJdKSk7CisKICNpZiBQTEFURk9STShJT1MpCiAgICAgQ0dSZWN0IGJvdW5kcyA9
IHNlbGYuYm91bmRzOwogICAgIF9zY3JvbGxWaWV3ID0gYWRvcHROUyhbW1dLU2Nyb2xsVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpib3VuZHNdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQppbmRl
eCBiNGJmM2E5ODlkMGViMTQ5OTQzOGExYjVjZTUyY2FlNzMzM2QwZjA3Li42MDYyNzY4YzQzOGM2
OWU3MDNiYjkyNWM5NDA5MWYzYWJiMWI2N2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCkBA
IC0xMzcsNiArMTM3LDcgQEAgQGltcGxlbWVudGF0aW9uIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24g
ewogICAgIEJPT0wgX25lZWRzU3RvcmFnZUFjY2Vzc0Zyb21GaWxlVVJMc1F1aXJrOwogCiAgICAg
TlNTdHJpbmcgKl9vdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeTsKKyAgICBMYXp5SW5pdGlh
bGl6ZWQ8UmV0YWluUHRyPE5TQXJyYXk8TlNOdW1iZXIgKj4+PiBfbWVkaWFDb2RlY3NSZXF1aXJp
bmdIYXJkd2FyZVN1cHBvcnQ7CiB9CiAKIC0gKGluc3RhbmNldHlwZSlpbml0CkBAIC0zMzAsNiAr
MzMxLDcgQEAgLSAoaWQpY29weVdpdGhab25lOihOU1pvbmUgKil6b25lCiAgICAgY29uZmlndXJh
dGlvbi0+X292ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5ID0gc2VsZi0+X292ZXJyaWRlQ29u
dGVudFNlY3VyaXR5UG9saWN5OwogCiAgICAgY29uZmlndXJhdGlvbi0+X3VybFNjaGVtZUhhbmRs
ZXJzLnNldChhZG9wdE5TKFtzZWxmLl91cmxTY2hlbWVIYW5kbGVycyBtdXRhYmxlQ29weVdpdGha
b25lOnpvbmVdKSk7CisgICAgY29uZmlndXJhdGlvbi0+X21lZGlhQ29kZWNzUmVxdWlyaW5nSGFy
ZHdhcmVTdXBwb3J0LnNldChhZG9wdE5TKFtzZWxmLl9tZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3
YXJlU3VwcG9ydCBtdXRhYmxlQ29weVdpdGhab25lOnpvbmVdKSk7CiAKICAgICByZXR1cm4gY29u
ZmlndXJhdGlvbjsKIH0KQEAgLTgxNiw2ICs4MTgsMTYgQEAgLSAodm9pZClfc2V0T3ZlcnJpZGVD
b250ZW50U2VjdXJpdHlQb2xpY3k6KE5TU3RyaW5nICopb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQ
b2wKICAgICBfb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3kgPSBvdmVycmlkZUNvbnRlbnRT
ZWN1cml0eVBvbGljeTsKIH0KIAorLSAoTlNBcnJheTxOU051bWJlciAqPiAqKV9tZWRpYUNvZGVj
c1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydAoreworICAgIHJldHVybiBfbWVkaWFDb2RlY3NSZXF1
aXJpbmdIYXJkd2FyZVN1cHBvcnQuZ2V0KFtdIHsgcmV0dXJuIGFkb3B0TlMoW1tOU0FycmF5IGFs
bG9jXSBpbml0XSk7IH0pOworfQorCistICh2b2lkKV9zZXRNZWRpYUNvZGVjc1JlcXVpcmluZ0hh
cmR3YXJlU3VwcG9ydDooTlNBcnJheTxOU051bWJlciAqPiAqKW1lZGlhQ29kZWNzUmVxdWlyaW5n
SGFyZHdhcmVTdXBwb3J0Cit7CisgICAgX21lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBw
b3J0LnNldChtZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCk7Cit9CisKIEBlbmQK
IAogQGltcGxlbWVudGF0aW9uIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKFdLRGVwcmVjYXRlZCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Q29uZmlndXJhdGlvblByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAppbmRleCA5NTFiZmRjMGE0MzNmZTQx
MjBlNjdhZDRhNmY3MzMxZGQwOTYwNDczLi41NmRhNzI5OGU0ZDk1NGE5M2RjNjYwNzQ3ZjhjY2Uy
YjVhNzNhYWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCkBAIC03Niw2
ICs3Niw3IEBACiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXF1aXJlc1VzZXJB
Y3Rpb25Gb3JWaWRlb1BsYXliYWNrOikgQk9PTCBfcmVxdWlyZXNVc2VyQWN0aW9uRm9yVmlkZW9Q
bGF5YmFjayBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJtZWRpYVR5cGVzUmVx
dWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrIiwgbWFjb3N4KDEwLjEyLCAxMC4xMiksIGlvcygx
MC4wLCAxMC4wKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE92ZXJyaWRl
Q29udGVudFNlY3VyaXR5UG9saWN5OikgTlNTdHJpbmcgKl9vdmVycmlkZUNvbnRlbnRTZWN1cml0
eVBvbGljeSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhQ29kZWNzUmVxdWly
aW5nSGFyZHdhcmVTdXBwb3J0OikgTlNBcnJheTxOU051bWJlciAqPiAqX21lZGlhQ29kZWNzUmVx
dWlyaW5nSGFyZHdhcmVTdXBwb3J0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCmluZGV4IDI0MzRjNmVlNDE3MTZm
M2Q0M2Q2MmI1MjE5ODA1NmUzZWJiNDQ3NTkuLjExYWIyZDI1ZjFjNWNhOTJlMWUwNDMwNjRiODNm
M2EyYjNiMzUwMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29tLmFw
cGxlLldlYlByb2Nlc3Muc2IuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb20u
YXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgpAQCAtODksNyArODksOSBAQAogICAgIChpb2tpdC1wcm9w
ZXJ0eSAiSU9HZW5lcmFsSW50ZXJlc3QiKQogICAgIChpb2tpdC1wcm9wZXJ0eSAiSU9HTEJ1bmRs
ZU5hbWUiKQogICAgIChpb2tpdC1wcm9wZXJ0eSAiSU9JMkNUcmFuc2FjdGlvblR5cGVzIikKKyAg
ICAoaW9raXQtcHJvcGVydHkgIklPR1ZBVlRDYXBhYmlsaXRpZXMiKQogICAgIChpb2tpdC1wcm9w
ZXJ0eS1yZWdleCAjIl5JT0dWQShDb2RlY3xFbmNvZGVyUmVzdHJpY3RlZCkiKQorICAgIChpb2tp
dC1wcm9wZXJ0eS1yZWdleCAjIl5JT0dWQSguKilEZWNvZGUkIikKICAgICAoaW9raXQtcHJvcGVy
dHkgIklPTWF0Y2hDYXRlZ29yeSIpCiAgICAgKGlva2l0LXByb3BlcnR5LXJlZ2V4ICMiXklPTmFt
ZU1hdGNoKHxlZCkiKQogICAgIChpb2tpdC1wcm9wZXJ0eSAiSU9QTVN0cmljdFRyZWVPcmRlciIp
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311664</attachid>
            <date>2017-05-31 17:32:18 -0700</date>
            <delta_ts>2017-06-05 10:55:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172787-20170531173217.patch</filename>
            <type>text/plain</type>
            <size>32300</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3NjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjM3NWY2MDBiOWJiMTBk
YzAxNDBjZGI0ODk4YWNkMzkwMTI0MzllZS4uYjQ2ODU5MTA1YjllYTVhMGUzM2NhNTc5MDY5ZGZk
NTMyODdmMzU4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE3LTA1LTMxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IGNsaWVudHMgdG8g
c3BlY2lmeSBhIGxpc3Qgb2YgY29kZWNzIHdoaWNoIHNob3VsZCByZXF1aXJlIGhhcmR3YXJlIGRl
Y29kZSBzdXBwb3J0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTcyNzg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgbmV3IHNldHRpbmcsIGNoZWNrZWQgYnkgSFRNTE1lZGlhRWxlbWVudCwgd2hp
Y2ggYWxsb3dzIE1lZGlhUGxheWVyUHJpdmF0ZSBpbXBsZW1lbnRhdGlvbgorICAgICAgICB0byBy
ZXF1aXJlIHRoYXQgdGhlIHNwZWNpZmllZCBjb2RlY3MgaGF2ZSBoYXJkd2FyZSBzdXBwb3J0LiBU
aGlzIHJlcXVpcmVtZW50IHdpbGwgYmUgc3VwcG9ydGVkCisgICAgICAgIGluIHRoZSBub3JtYWwg
bWVkaWEgbG9hZGluZyBwYXRoIGFuZCB0aGUgTVNFIHBhdGggb24gQ29jb2EgcG9ydHMuCisKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6Om1lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KToKKyAgICAgICAgKiBodG1s
L0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRNZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3YXJlU3Vw
cG9ydCk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0
dGluZ3M6Om1lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9jb2NvYS9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHA6CisgICAgICAgICogcGxhdGZv
cm0vY29jb2EvVmlkZW9Ub29sYm94U29mdExpbmsuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6
Om1lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0VHJhY2tVdGlsaXRpZXMuaDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3Nl
dFRyYWNrVXRpbGl0aWVzLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmFzc2V0VHJhY2tN
ZWV0c0hhcmR3YXJlRGVjb2RlUmVxdWlyZW1lbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNoZWNrUGxheWFiaWxpdHkpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6YXNzZXRTdGF0
dXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakM6OmRpZFBhcnNlU3RyZWFtRGF0YUFzQXNzZXQpOgorCiAyMDE3LTA1LTMx
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEdldCA8
Y2hyb25vPiBvdXQgb2YgU3RkTGliRXh0cmFzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBiNDRkMTJlNTAzYzk4
NTAwYTFhMGNmYTMxOTMyNDRkYzJhNmUyOTIxLi42NTQ1MTFkN2EyZWQyMDYxZTkxNDBkYTU3OWNj
NmI2M2VhZDFjMzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTctMDUtMzEgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgY2xpZW50cyB0
byBzcGVjaWZ5IGEgbGlzdCBvZiBjb2RlY3Mgd2hpY2ggc2hvdWxkIHJlcXVpcmUgaGFyZHdhcmUg
ZGVjb2RlIHN1cHBvcnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzI3ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgYSBXS1dlYlBhZ2VDb25maWd1cmF0aW9uIChhbmQgYXNzb2NpYXRlZCBXZWJQ
cmVmZXJlbmNlcyBhbmQgV0tQcmVmZXJlbmNlc1JlZikgcHJvcGVydGllcworICAgICAgICBhbGxv
d2luZyBjbGllbnRzIHRvIHJlcXVpcmUgc3BlY2lmaWVkIGNvZGVjcyBoYXZlIGhhcmR3YXJlIGRl
Y29kZSBzdXBwb3J0LiBBbHNvIG9wZW4gdXAgdGhlCisgICAgICAgIHNhbmRib3ggb24gQ29jb2Eg
cG9ydHMgdG8gc2VydmljZXMgcmVxdWlyZWQgdG8gY2hlY2sgZm9yIGhhcmR3YXJlIGRlY29kZSBh
dmFpbGFiaWxpdHkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9u
cy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAg
ICAgKFdLUHJlZmVyZW5jZXNTZXRNZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCk6
CisgICAgICAgIChXS1ByZWZlcmVuY2VzQ29weU1lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVT
dXBwb3J0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246XSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tOgorICAgICAg
ICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIGNvcHlXaXRoWm9uZTpdKToKKyAgICAgICAgKC1b
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfbWVkaWFDb2RlY3NSZXF1aXJpbmdIYXJkd2FyZVN1cHBv
cnRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfc2V0TWVkaWFDb2RlY3NS
ZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Y29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW46CisKIDIwMTctMDUtMzEgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgR2V0IDxjaHJvbm8+IG91dCBvZiBT
dGRMaWJFeHRyYXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDg2YTI2YTg0YWRmZmEwZGZlN2Y2Mzc5NDA5MjY5NmQzOGNjNDcx
OWUuLjBiYmNhN2JhOTQwZDU5MDFkMmRlNTlmNWYyZTdjMWQ5MTQ4ODg3NGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYzMDIs
NiArNjMwMiw4IEBACiAJCUNERUE3NjM1MTQ2MEI3MUEwMDhCMzFGMSAvKiBDbG9jay5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVBNzYzMzE0NjBC
NDYyMDA4QjMxRjEgLyogQ2xvY2suY3BwICovOyB9OwogCQlDREVBN0M4NDEyNzYyMzA0MDBCODQ2
REQgLyogUmVuZGVyRnVsbFNjcmVlbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RFQTdDODIxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3Jl
ZW4uaCAqLzsgfTsKIAkJQ0RFQTdDODUxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3Jl
ZW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RF
QTdDODMxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uY3BwICovOyB9OworCQlD
REVDQTg5QTFFREY0NDdEMDBEQ0IwOEIgLyogQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQ0E4OTgxRURGNDQ3
RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5tbSAqLzsgfTsKKwkJQ0RFQ0E4OUIx
RURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQ0E4OTkxRURGNDQ3RDAwRENCMDhC
IC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5oICovOyB9OwogCQlDREVFMzkzNzE3OTc0MjU5MDAx
RDc1ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDREVFMzkzNjE3OTc0MjU5MDAxRDc1ODAgLyogUHVibGljVVJM
TWFuYWdlci5jcHAgKi87IH07CiAJCUNERUY0RkQ3MTdFODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVu
Z3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVG
NEZENjE3RTg1QzhGMDBBRUUyNEIgLyogR3JpZExlbmd0aC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERUZBMjI4MUU3NjY5RTgwMDBBRTk5QyAv
KiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0RFNjY3QTExRTRCQkE0RDAwRTgxNTRBIC8qIFBsYXRmb3JtQXVkaW9EYXRh
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE0
ODc3LDYgKzE0ODc5LDggQEAKIAkJQ0RFQTc2MzMxNDYwQjQ2MjAwOEIzMUYxIC8qIENsb2NrLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENsb2NrLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFQTdDODIxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRl
ckZ1bGxTY3JlZW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyRnVs
bFNjcmVlbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVBN0M4MzEyNzYyMzA0
MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW5kZXJGdWxsU2NyZWVuLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0RFQ0E4OTgxRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGll
cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFWQXNzZXRUcmFja1V0aWxpdGllcy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RFQ0E4OTkxRURGNDQ3RDAwRENCMDhCIC8qIEFW
QXNzZXRUcmFja1V0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBVkFzc2V0VHJhY2tVdGlsaXRp
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFRTM5MzYxNzk3NDI1OTAwMUQ3
NTgwIC8qIFB1YmxpY1VSTE1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUHVibGljVVJMTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNERUUzOTM4MTc5NzQyNzQwMDFENzU4MCAvKiBVUkxSZWdpc3RyeS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBVUkxSZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVGNEZE
NjE3RTg1QzhGMDBBRUUyNEIgLyogR3JpZExlbmd0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHcmlkTGVuZ3RoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
NDUxNCw2ICsyNDUxOCw4IEBACiAJCQkJQ0Q4QjVBNDAxODBEMTQ5QTAwOEI4RTY1IC8qIFZpZGVv
VHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tICovLAogCQkJCUNEN0UwNTIwMTY1MUE4
NDEwMEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaCAqLywKIAkJCQlDRDdFMDUy
MTE2NTFBODQxMDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tICovLAorCQkJ
CUNERUNBODk4MUVERjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0VHJhY2tVdGlsaXRpZXMubW0gKi8s
CisJCQkJQ0RFQ0E4OTkxRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5o
ICovLAogCQkJKTsKIAkJCXBhdGggPSBvYmpjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
QEAgLTI4MjU0LDYgKzI4MjYwLDcgQEAKIAkJCQlBQTdGRUVBNzE2QTRFNkYzMDA0QzBDMzMgLyog
SlNTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBN0ZFRUE5
MTZBNEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzgyNDMyOTBEMENFOEEyMDA0NjBDOEYgLyogSlNTUUxFcnJvci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQ0RFQ0E4OUIxRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxp
dGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjUyNUE5NjUxMUNBMjM0MDAwM0EyM0E4IC8qIEpT
U1FMRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUU4MkZFRDBDQUIwN0VFMDAyMjM3
QUUgLyogSlNTUUxSZXN1bHRTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRkUxMTlBMENCRkZD
QzQwMDMwMTdGQSAvKiBKU1NRTFJlc3VsdFNldFJvd0xpc3QuaCBpbiBIZWFkZXJzICovLApAQCAt
MzMyMjUsNiArMzMyMzIsNyBAQAogCQkJCTkzMUNCRDBDMTYxQTQ0RTkwMEU0Qzg3NCAvKiBTY3Jv
bGxpbmdTdGF0ZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNFRjdENTUxOTU0RjEzOTAw
REZCNzFEIC8qIFNjcm9sbGluZ1N0YXRlTm9kZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGRUEz
RTgzMTkxQjMxQkYwMDBGMUI1NSAvKiBTY3JvbGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9k
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDREVDQTg5QTFFREY0NDdEMDBEQ0IwOEIgLyogQVZB
c3NldFRyYWNrVXRpbGl0aWVzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMxQ0JEMEUxNjFBNDRF
OTAwRTRDODc0IC8qIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRkI4ODkwRTE2N0QzMDE2MDAxMENEQTUgLyogU2Nyb2xsaW5nU3RhdGVTdGlja3lO
b2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMUNCRDEwMTYxQTQ0RTkwMEU0Qzg3NCAvKiBT
Y3JvbGxpbmdTdGF0ZVRyZWUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBhOWQxNzQwODI5YzEwZGZjY2FjNjEzZWIyMzE2YTVi
ZjliYWVhYjhmLi5kYmJiZmZjZjZlZTkyZTI0MTUyMmIwNmQwMzVkN2Y4YzhlODFhNjRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTY2NTcsNiArNjY1Nywx
MSBAQCBkb3VibGUgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJSZXF1ZXN0ZWRQbGF5YmFj
a1JhdGUoKSBjb25zdAogICAgIHJldHVybiBwb3RlbnRpYWxseVBsYXlpbmcoKSA/IHJlcXVlc3Rl
ZFBsYXliYWNrUmF0ZSgpIDogMDsKIH0KIAorY29uc3QgVmVjdG9yPHVpbnQzMl90PiYgSFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFDb2RlY3NSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdAor
eworICAgIHJldHVybiBkb2N1bWVudCgpLnNldHRpbmdzKCkubWVkaWFDb2RlY3NSZXF1aXJpbmdI
YXJkd2FyZVN1cHBvcnQoKTsKK30KKwogI2lmIFVTRShHU1RSRUFNRVIpCiB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OnJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnMoY29uc3QgU3RyaW5nJiBkZXRh
aWxzLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxs
TWlzc2luZ1BsdWdpbnNDYWxsYmFjayYgY2FsbGJhY2spCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5oCmluZGV4IGE0OTBiZDc3ZDRlOWE3MjRhZDQyYjJlY2U2YjYyNTk3YmRm
NmZiZTUuLmI0OTIyMjA5YTQ2MjU4ZjMwNjI1ZTEyY2NjYTIyMjIyYWY1MDUzYzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC02ODAsNiArNjgwLDcgQEAgcHJpdmF0
ZToKICAgICBkb3VibGUgbWVkaWFQbGF5ZXJSZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSBjb25zdCBm
aW5hbDsKICAgICBWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1lZGlhUGxheWVyRnVsbHNjcmVlbk1vZGUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBmdWxsc2NyZWVuTW9kZSgpOyB9CiAgICAgYm9vbCBtZWRp
YVBsYXllclNob3VsZERpc2FibGVTbGVlcCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHNob3VsZERp
c2FibGVTbGVlcCgpID09IFNsZWVwVHlwZTo6RGlzcGxheTsgfQorICAgIGNvbnN0IFZlY3Rvcjx1
aW50MzJfdD4mIG1lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkgY29uc3QgZmlu
YWw7CiAKICNpZiBVU0UoR1NUUkVBTUVSKQogICAgIHZvaWQgcmVxdWVzdEluc3RhbGxNaXNzaW5n
UGx1Z2lucyhjb25zdCBTdHJpbmcmIGRldGFpbHMsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24s
IE1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrJikgZmluYWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IDNiNDEzNDRiZWRmNGM5ZWE4ZmFlN2RlZDA2
OTliMzc0M2U4NzlmZjcuLjdjMjU4NDBjNWZhNmNhZWEwN2Y5YzQzYzRiYmY2ZjI3ZjdkNGE5YzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC03ODksNCArNzg5LDIzIEBAIGJvb2wgU2V0
dGluZ3M6OmFsbG93c0FueVNTTENlcnRpZmljYXRlKCkKICAgICByZXR1cm4gZ0FsbG93c0FueVNT
TENlcnRpZmljYXRlOwogfQogCit2b2lkIFNldHRpbmdzOjpzZXRNZWRpYUNvZGVjc1JlcXVpcmlu
Z0hhcmR3YXJlU3VwcG9ydChjb25zdCBTdHJpbmcmIGNvZGVjc1N0cmluZykKK3sKKyAgICBWZWN0
b3I8U3RyaW5nPiBjb2RlY3NTcGxpdDsKKyAgICBjb2RlY3NTdHJpbmcuc3BsaXQoIiwiLCBjb2Rl
Y3NTcGxpdCk7CisKKyAgICBWZWN0b3I8dWludDMyX3Q+IGNvZGVjczsKKyAgICBjb2RlY3MucmVz
ZXJ2ZUluaXRpYWxDYXBhY2l0eShjb2RlY3NTcGxpdC5zaXplKCkpOworICAgIGZvciAoYXV0byYg
Y29kZWNTdHJpbmcgOiBjb2RlY3NTcGxpdCkKKyAgICAgICAgY29kZWNzLmFwcGVuZChjb2RlY1N0
cmluZy50b1VJbnQoKSk7CisKKyAgICBtX21lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBw
b3J0ID0gV1RGTW92ZShjb2RlY3MpOworfQorCit2b2lkIFNldHRpbmdzOjpzZXRNZWRpYUNvZGVj
c1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydChWZWN0b3I8dWludDMyX3Q+IGNvZGVjcykKK3sKKyAg
ICBtX21lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0ID0gY29kZWNzOworfQorCisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCBkOTViNmFl
NGUwOGM2MjY3ZmE4M2Q3YmZkMzRkYThkZjY1ODRlYmZlLi5mZjQzYWJjMWNhNmE5M2E5NDEzNmRh
NTVhMzAwNTdlMjI5NjZiM2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCkBAIC0zMjUsNiArMzI1
LDEwIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRBbGxvd3NB
bnlTU0xDZXJ0aWZpY2F0ZShib29sKTsKICAgICBzdGF0aWMgYm9vbCBhbGxvd3NBbnlTU0xDZXJ0
aWZpY2F0ZSgpOwogCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNZWRpYUNvZGVjc1JlcXVp
cmluZ0hhcmR3YXJlU3VwcG9ydChWZWN0b3I8dWludDMyX3Q+KTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldE1lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KGNvbnN0IFN0cmlu
ZyYpOworICAgIGNvbnN0IFZlY3Rvcjx1aW50MzJfdD4mIG1lZGlhQ29kZWNzUmVxdWlyaW5nSGFy
ZHdhcmVTdXBwb3J0KCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3
YXJlU3VwcG9ydDsgfQorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFNldHRpbmdzKFBhZ2UqKTsK
IApAQCAtNDI0LDYgKzQyOCw4IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgZ0xvd1Bvd2Vy
VmlkZW9BdWRpb0J1ZmZlclNpemVFbmFibGVkOwogICAgIHN0YXRpYyBib29sIGdSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRW5hYmxlZEVuYWJsZWQ7CiAgICAgc3RhdGljIGJvb2wgZ0FsbG93c0FueVNT
TENlcnRpZmljYXRlOworCisgICAgVmVjdG9yPHVpbnQzMl90PiBtX21lZGlhQ29kZWNzUmVxdWly
aW5nSGFyZHdhcmVTdXBwb3J0OwogfTsKIAogaW5saW5lIGJvb2wgU2V0dGluZ3M6OmlzUG9zdExv
YWRDUFVVc2FnZU1lYXN1cmVtZW50RW5hYmxlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAKaW5kZXggMmMyYjY4ZGQ0
MDk2Nzg3NjgxYzFlNDIxYzFkMzc2MDI5OTZjMjQ5Yi4uZDlmYzA0OTI5ZDg1MWFhMmY1YTk4ZWRi
MjA0YTQzNjFmNWMwNzg3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvVmlkZW9Ub29sYm94U29mdExpbmsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcApAQCAtMzgsNSArMzgsNiBAQCBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBWaWRlb1Rvb2xib3gsIFZURGVjb21wcmVz
c2lvblNlc3Npb25XYWl0RgogI2RlZmluZSBWVERlY29tcHJlc3Npb25TZXNzaW9uV2FpdEZvckFz
eW5jaHJvbm91c0ZyYW1lcyBzb2Z0TGlua19WaWRlb1Rvb2xib3hfVlREZWNvbXByZXNzaW9uU2Vz
c2lvbldhaXRGb3JBc3luY2hyb25vdXNGcmFtZXMKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFKFdlYkNvcmUsIFZpZGVvVG9vbGJveCwgVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZy
YW1lLCBPU1N0YXR1cywgKFZURGVjb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiwgQ01TYW1w
bGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBWVERlY29kZUZyYW1lRmxhZ3MgZGVjb2RlRmxhZ3Ms
IHZvaWQqIHNvdXJjZUZyYW1lUmVmQ29uLCBWVERlY29kZUluZm9GbGFncyogaW5mb0ZsYWdzT3V0
KSwgKHNlc3Npb24sIHNhbXBsZUJ1ZmZlciwgZGVjb2RlRmxhZ3MsIHNvdXJjZUZyYW1lUmVmQ29u
LCBpbmZvRmxhZ3NPdXQpKQogI2RlZmluZSBWVERlY29tcHJlc3Npb25TZXNzaW9uRGVjb2RlRnJh
bWUgc29mdExpbmtfVmlkZW9Ub29sYm94X1ZURGVjb21wcmVzc2lvblNlc3Npb25EZWNvZGVGcmFt
ZQorU09GVF9MSU5LX0ZVTkNUSU9OX01BWV9GQUlMX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgVmlkZW9U
b29sYm94LCBWVElzSGFyZHdhcmVEZWNvZGVTdXBwb3J0ZWQsIEJvb2xlYW4sIChDTVZpZGVvQ29k
ZWNUeXBlIGNvZGVjVHlwZSksIChjb2RlY1R5cGUpKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9T
T1VSQ0UoV2ViQ29yZSwgVmlkZW9Ub29sYm94LCBrVlRWaWRlb0RlY29kZXJTcGVjaWZpY2F0aW9u
X0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0RlY29kZXIsIENGU3RyaW5nUmVmKQogI2Rl
ZmluZSBrVlRWaWRlb0RlY29kZXJTcGVjaWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0
ZWRWaWRlb0RlY29kZXIgZ2V0X1ZpZGVvVG9vbGJveF9rVlRWaWRlb0RlY29kZXJTcGVjaWZpY2F0
aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0RlY29kZXIoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9Ub29sYm94U29mdExpbmsuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmgKaW5kZXgg
ZmIwMDk4ZWFjODE4NjQyZjM2NGE3NWMxNGIxODZjNTYzZTQzM2E5Ny4uY2M3NTM4M2ZiNDM3Yjgw
MjUyZDFiNzhhNTljNzUzODYyOWQ4Yzc2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvVmlkZW9Ub29sYm94U29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9WaWRlb1Rvb2xib3hTb2Z0TGluay5oCkBAIC0zOCw1ICszOCw3IEBAIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIFZpZGVvVG9vbGJveCwgVlREZWNv
bXByZXNzaW9uU2Vzc2lvbldhaXRGCiAjZGVmaW5lIFZURGVjb21wcmVzc2lvblNlc3Npb25XYWl0
Rm9yQXN5bmNocm9ub3VzRnJhbWVzIHNvZnRMaW5rX1ZpZGVvVG9vbGJveF9WVERlY29tcHJlc3Np
b25TZXNzaW9uV2FpdEZvckFzeW5jaHJvbm91c0ZyYW1lcwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoV2ViQ29yZSwgVmlkZW9Ub29sYm94LCBWVERlY29tcHJlc3Npb25TZXNzaW9uRGVj
b2RlRnJhbWUsIE9TU3RhdHVzLCAoVlREZWNvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uLCBD
TVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIFZURGVjb2RlRnJhbWVGbGFncyBkZWNvZGVG
bGFncywgdm9pZCogc291cmNlRnJhbWVSZWZDb24sIFZURGVjb2RlSW5mb0ZsYWdzKiBpbmZvRmxh
Z3NPdXQpLCAoc2Vzc2lvbiwgc2FtcGxlQnVmZmVyLCBkZWNvZGVGbGFncywgc291cmNlRnJhbWVS
ZWZDb24sIGluZm9GbGFnc091dCkpCiAjZGVmaW5lIFZURGVjb21wcmVzc2lvblNlc3Npb25EZWNv
ZGVGcmFtZSBzb2Z0TGlua19WaWRlb1Rvb2xib3hfVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29k
ZUZyYW1lCitTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX0hFQURFUihXZWJDb3JlLCBW
aWRlb1Rvb2xib3gsIFZUSXNIYXJkd2FyZURlY29kZVN1cHBvcnRlZCwgQm9vbGVhbiwgKENNVmlk
ZW9Db2RlY1R5cGUgY29kZWNUeXBlKSwgKGNvZGVjVHlwZSkpCisjZGVmaW5lIFZUSXNIYXJkd2Fy
ZURlY29kZVN1cHBvcnRlZCBzb2Z0TGlua19WaWRlb1Rvb2xib3hfVlRJc0hhcmR3YXJlRGVjb2Rl
U3VwcG9ydGVkCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihXZWJDb3JlLCBWaWRlb1Rv
b2xib3gsIGtWVFZpZGVvRGVjb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVy
YXRlZFZpZGVvRGVjb2RlciwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtWVFZpZGVvRGVjb2RlclNw
ZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRGVjb2RlciBnZXRfVmlk
ZW9Ub29sYm94X2tWVFZpZGVvRGVjb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2Nl
bGVyYXRlZFZpZGVvRGVjb2RlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggYTg4YWQ1ZmU5NjNmNzlkNDNlMGVkM2I2OWRmMmRl
ODAyYzlmNGQzNi4uNjA1NTZkZWM2NjI1OTZjZTVkODFiYjUxNzk2MDZiZTkzZjM1ZDRjOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApA
QCAtMTYxLDYgKzE2MSwxMiBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNTaW5nbGVTZWN1cml0eU9y
aWdpbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIH07CiAKK2NvbnN0IFZlY3Rv
cjx1aW50MzJfdD4mIE1lZGlhUGxheWVyQ2xpZW50OjptZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3
YXJlU3VwcG9ydCgpIGNvbnN0Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3Rvcjx1
aW50MzJfdD4+IGNvZGVjczsKKyAgICByZXR1cm4gY29kZWNzOworfQorCiBzdGF0aWMgTWVkaWFQ
bGF5ZXJDbGllbnQmIG51bGxNZWRpYVBsYXllckNsaWVudCgpCiB7CiAgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPE1lZGlhUGxheWVyQ2xpZW50PiBjbGllbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCA5NjViN2ZhMWJhMmQ3Nzg4Zjc5
YWM1OGIwZTkzYjc5NTBmODM4YWZmLi5mMmVlODU3OGY1YjM1YmZkODI1NWM1ZTBlMjk5MDBjMzAx
YmE2N2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmgKQEAgLTI3Myw2ICsyNzMsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZpcnR1YWwg
Ym9vbCBtZWRpYVBsYXllclNob3VsZERpc2FibGVTbGVlcCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBjb25zdCBWZWN0b3I8dWludDMyX3Q+JiBtZWRpYUNvZGVjc1JlcXVp
cmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0OwogfTsKIAogY2xhc3MgTWVkaWFQbGF5ZXJTdXBw
b3J0c1R5cGVDbGllbnQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldFRyYWNrVXRpbGl0aWVzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0VHJhY2tV
dGlsaXRpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kM2RlMjE4NGIwN2NlMDNmNjBiZTNlN2NjYjcyZGZkMjgx
NDU3YmJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldFRyYWNrVXRpbGl0aWVzLmgKQEAgLTAsMCArMSw0
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKSAmJiBV
U0UoQVZGT1VOREFUSU9OKQorCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCitPQkpDX0NMQVNT
IEFWQXNzZXRUcmFjazsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIGFzc2V0VHJhY2tN
ZWV0c0hhcmR3YXJlRGVjb2RlUmVxdWlyZW1lbnRzKEFWQXNzZXRUcmFjayAqLCBjb25zdCBWZWN0
b3I8dWludDMyX3Q+JiBjb2RlY3NSZXF1aXJpbmdIYXJkd2FyZURlY29kZSk7CisKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9BVkFzc2V0VHJhY2tVdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0VHJhY2tVdGlsaXRpZXMubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTdkYmE1ZmY0OTE4YThhZmI3MTMxMWQ1ZmU2MzQ2MjIwYzE2ZDBmMQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0FWQXNzZXRUcmFja1V0aWxpdGllcy5tbQpAQCAtMCwwICsxLDYzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJBVkFzc2V0VHJhY2tVdGlsaXRp
ZXMuaCIKKworI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKKworI2ltcG9y
dCA8QVZGb3VuZGF0aW9uL0FWQXNzZXRUcmFjay5oPgorI2ltcG9ydCAiQ29yZU1lZGlhU29mdExp
bmsuaCIKKyNpbXBvcnQgIlZpZGVvVG9vbGJveFNvZnRMaW5rLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworYm9vbCBhc3NldFRyYWNrTWVldHNIYXJkd2FyZURlY29kZVJlcXVpcmVtZW50cyhB
VkFzc2V0VHJhY2sgKnRyYWNrLCBjb25zdCBWZWN0b3I8dWludDMyX3Q+JiBjb2RlY3NSZXF1aXJp
bmdIYXJkd2FyZURlY29kZSkKK3sKKyAgICAvLyBJZiB3ZSBjYW4ndCBkZXRlcm1pbmUgd2hldGhl
ciBhIGNvZGVjIGhhcyBoYXJkd2FyZSBzdXBwb3J0IG9yIG5vdCwgZGVmYXVsdCB0byB0cnVlLgor
ICAgIGlmICghY2FuTG9hZF9WaWRlb1Rvb2xib3hfVlRJc0hhcmR3YXJlRGVjb2RlU3VwcG9ydGVk
KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKGNvZGVjc1JlcXVpcmluZ0hhcmR3
YXJlRGVjb2RlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBmb3IgKE5T
VUludGVnZXIgaSA9IDAsIGNvdW50ID0gdHJhY2suZm9ybWF0RGVzY3JpcHRpb25zLmNvdW50OyBp
IDwgY291bnQ7ICsraSkgeworICAgICAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2NyaXB0
aW9uID0gKENNRm9ybWF0RGVzY3JpcHRpb25SZWYpdHJhY2suZm9ybWF0RGVzY3JpcHRpb25zW2ld
OworICAgICAgICBpZiAoQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlwZShkZXNjcmlwdGlv
bikgIT0ga0NNTWVkaWFUeXBlX1ZpZGVvKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAg
ICAgQ01WaWRlb0NvZGVjVHlwZSBjb2RlYyA9IENNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVN1
YlR5cGUoZGVzY3JpcHRpb24pOworICAgICAgICBpZiAoIWNvZGVjc1JlcXVpcmluZ0hhcmR3YXJl
RGVjb2RlLmNvbnRhaW5zKGNvZGVjKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAg
IGlmICghVlRJc0hhcmR3YXJlRGVjb2RlU3VwcG9ydGVkKGNvZGVjKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLmgKaW5kZXggMzhjOTI3MDllMWRkMDQwYjc3MTdlZmI1MzkxYmIxOTU0
NzE2MThiNi4uYWIxNWY2NDJlZWRkYjQ0ODE3YzkxYmU3ZjFhMjI0YWZjZGVkMTcyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaApAQCAtNDI0LDYgKzQyNCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X2NhY2hlZENhblBsYXlGYXN0Rm9yd2FyZDsKICAgICBib29sIG1fY2FjaGVkQ2FuUGxheUZhc3RS
ZXZlcnNlOwogICAgIGJvb2wgbV9tdXRlZCB7IGZhbHNlIH07CisgICAgbXV0YWJsZSBzdGQ6Om9w
dGlvbmFsPGJvb2w+IG1fdHJhY2tzQXJlUGxheWFibGU7CiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BM
QVlCQUNLX1RBUkdFVCkKICAgICBtdXRhYmxlIGJvb2wgbV9hbGxvd3NXaXJlbGVzc1ZpZGVvUGxh
eWJhY2s7CiAgICAgYm9vbCBtX3Nob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0IHsgZmFsc2UgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IGQwN2ExMjQ5NjYyZGI4Zjg5ZjUzZGI0ZjdkNWFh
Mzk3OWVlYjE0NTIuLmZjMzFiZGMxNjg2MDk3Y2MxOWE1MzhiMDkwYzk0OGVjN2VjYjE3MDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKFZJ
REVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCisjaW1wb3J0ICJBVkFzc2V0VHJhY2tVdGlsaXRp
ZXMuaCIKICNpbXBvcnQgIkFWRm91bmRhdGlvbk1JTUVUeXBlQ2FjaGUuaCIKICNpbXBvcnQgIkFW
Rm91bmRhdGlvblNQSS5oIgogI2ltcG9ydCAiQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5oIgpA
QCAtMTE0Niw3ICsxMTQ3LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpjaGVja1BsYXlhYmlsaXR5KCkKICAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpjaGVja1BsYXlhYmlsaXR5KCVwKSIsIHRoaXMpOwogICAgIGF1
dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7CiAKLSAgICBbbV9hdkFzc2V0LmdldCgpIGxv
YWRWYWx1ZXNBc3luY2hyb25vdXNseUZvcktleXM6W05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0OkAi
cGxheWFibGUiXSBjb21wbGV0aW9uSGFuZGxlcjpeeworICAgIFttX2F2QXNzZXQuZ2V0KCkgbG9h
ZFZhbHVlc0FzeW5jaHJvbm91c2x5Rm9yS2V5czpbTlNBcnJheSBhcnJheVdpdGhPYmplY3RzOkAi
cGxheWFibGUiLCBAInRyYWNrcyIsIG5pbF0gY29tcGxldGlvbkhhbmRsZXI6XnsKICAgICAgICAg
Y2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXNdIHsKICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykK
ICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+c2NoZWR1bGVNYWluVGhyZWFkTm90aWZpY2F0aW9u
KE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6Tm90aWZpY2F0aW9uOjpBc3NldFBsYXlh
YmlsaXR5S25vd24pOwpAQCAtMTU4OSw3ICsxNTkwLDE3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbjo6QXNzZXRTdGF0dXMgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6CiAgICAgICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJBVkFzc2V0U3RhdHVzQ2FuY2VsbGVk
OyAvLyBMb2FkaW5nIG9mIGF0IGxlYXN0IG9uZSBrZXkgd2FzIGNhbmNlbGxlZC4KICAgICB9CiAK
LSAgICBpZiAoW1ttX2F2QXNzZXQuZ2V0KCkgdmFsdWVGb3JLZXk6QCJwbGF5YWJsZSJdIGJvb2xW
YWx1ZV0pCisgICAgaWYgKCFtX3RyYWNrc0FyZVBsYXlhYmxlKSB7CisgICAgICAgIG1fdHJhY2tz
QXJlUGxheWFibGUgPSB0cnVlOworICAgICAgICBmb3IgKEFWQXNzZXRUcmFjayAqdHJhY2sgaW4g
W21fYXZBc3NldCB0cmFja3NdKSB7CisgICAgICAgICAgICBpZiAoIWFzc2V0VHJhY2tNZWV0c0hh
cmR3YXJlRGVjb2RlUmVxdWlyZW1lbnRzKHRyYWNrLCB7J2h2YzEnfSkpIHsKKyAgICAgICAgICAg
ICAgICBtX3RyYWNrc0FyZVBsYXlhYmxlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoW1ttX2F2QXNzZXQu
Z2V0KCkgdmFsdWVGb3JLZXk6QCJwbGF5YWJsZSJdIGJvb2xWYWx1ZV0gJiYgbV90cmFja3NBcmVQ
bGF5YWJsZS52YWx1ZSgpKQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJBVkFzc2V0U3RhdHVz
UGxheWFibGU7CiAKICAgICByZXR1cm4gTWVkaWFQbGF5ZXJBVkFzc2V0U3RhdHVzTG9hZGVkOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5tbQppbmRleCA1NWQyNmY2Y2Y3MjEzYjdlNTJjMzkxODZmOWRjYTFiYzRhMDExMDg2Li43NWNm
Y2FkYTEwMWFhYWQ1NGE3NzEwYzhlODkzZDIzODUzN2QxY2I3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQpAQCAtMjgsNiAr
MjgsNyBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgVVNFKEFWRk9VTkRBVElPTikK
IAorI2ltcG9ydCAiQVZBc3NldFRyYWNrVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJBVkZvdW5kYXRp
b25TUEkuaCIKICNpbXBvcnQgIkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgi
CiAjaW1wb3J0ICJDRE1TZXNzaW9uQVZDb250ZW50S2V5U2Vzc2lvbi5oIgpAQCAtNDMxLDYgKzQz
MiwxMyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQYXJzZVN0cmVhbURh
dGFBc0Fzc2V0KEFWQXNzZXQqIGFzc2V0KQogewogICAgIExPRyhNZWRpYVNvdXJjZSwgIlNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQYXJzZVN0cmVhbURhdGFBc0Fzc2V0KCVwKSIsIHRo
aXMpOwogCisgICAgZm9yIChBVkFzc2V0VHJhY2sgKnRyYWNrIGluIFthc3NldCB0cmFja3NdKSB7
CisgICAgICAgIGlmICghYXNzZXRUcmFja01lZXRzSGFyZHdhcmVEZWNvZGVSZXF1aXJlbWVudHMo
dHJhY2ssIHsnaHZjMSd9KSkgeworICAgICAgICAgICAgbV9wYXJzaW5nU3VjY2VlZGVkID0gZmFs
c2U7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKICAgICBtX2Fzc2V0
ID0gYXNzZXQ7CiAKICAgICBtX3ZpZGVvVHJhY2tzLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAppbmRleCBkYzNjMzEyMGU0
ZmU0MmQ4ZDk0MTBkOTZlYWU4Njg0MTc0ODNiZjBjLi4yMjYwYzI0ZGQ4NjViMzc2NjY3N2FiMjQ2
NzI2MWYxMzEzODhlYzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJl
ZmVyZW5jZXNEZWZpbml0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVm
ZXJlbmNlc0RlZmluaXRpb25zLmgKQEAgLTQwMSw2ICs0MDEsNyBAQAogICAgIEZPUl9FQUNIX1dF
QktJVF9GT05UX0ZBTUlMWV9QUkVGRVJFTkNFKG1hY3JvKSBcCiAgICAgbWFjcm8oRGVmYXVsdFRl
eHRFbmNvZGluZ05hbWUsIGRlZmF1bHRUZXh0RW5jb2RpbmdOYW1lLCBTdHJpbmcsIFN0cmluZywg
ZGVmYXVsdFRleHRFbmNvZGluZ05hbWVGb3JTeXN0ZW1MYW5ndWFnZSgpLCAiIiwgIiIpIFwKICAg
ICBtYWNybyhGVFBEaXJlY3RvcnlUZW1wbGF0ZVBhdGgsIGZ0cERpcmVjdG9yeVRlbXBsYXRlUGF0
aCwgU3RyaW5nLCBTdHJpbmcsICIiLCAiIiwgIiIpIFwKKyAgICBtYWNybyhNZWRpYUNvZGVjc1Jl
cXVpcmluZ0hhcmR3YXJlU3VwcG9ydCwgbWVkaWFDb2RlY3NSZXF1aXJpbmdIYXJkd2FyZVN1cHBv
cnQsIFN0cmluZywgU3RyaW5nLCAiIiwgIiIsICIiKSBcCiAgICAgXAogCiAjZGVmaW5lIEZPUl9F
QUNIX1dFQktJVF9TVFJJTkdfUFJFRkVSRU5DRV9OT1RfSU5fV0VCQ09SRShtYWNybykgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCmluZGV4
IDFiN2I4YzNmYTIwNWY1YTYzZDA5ZmU4NmQwMzkyN2NhMmNkMjVkOTAuLjc3ZTFhYWQ1OGMzMmFm
MzllYjNkZDAwNzQ3NGRkOWEzOTJhNTc5MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKQEAgLTE3NzAsMyArMTc3MCwxNCBAQCBib29s
IFdLUHJlZmVyZW5jZXNHZXRNZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnQoV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZQogewogICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYp
LT5tZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnQoKTsKIH0KKwordm9pZCBXS1By
ZWZlcmVuY2VzU2V0TWVkaWFDb2RlY3NSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoV0tQcmVmZXJl
bmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgV0tTdHJpbmdSZWYgY29kZWNzKQoreworICAgIHRvSW1w
bChwcmVmZXJlbmNlc1JlZiktPnNldE1lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0
KHRvV1RGU3RyaW5nKGNvZGVjcykpOworfQorCitXS1N0cmluZ1JlZiBXS1ByZWZlcmVuY2VzQ29w
eU1lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KFdLUHJlZmVyZW5jZXNSZWYgcHJl
ZmVyZW5jZXNSZWYpCit7CisgICAgcmV0dXJuIHRvQ29waWVkQVBJKHRvSW1wbChwcmVmZXJlbmNl
c1JlZiktPm1lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkpOworfQorCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlBy
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVm
UHJpdmF0ZS5oCmluZGV4IGVmZGE4MjUzNjE1MmFiYzlmNDU1ODIyZTJjYTY0OGYyN2Q3MGU3MDEu
LjUwZWZiNWIwYjc2NWU2YjhhMmEzNDdmMWFhNWY4MTJkZDhiMThmMmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0
ZS5oCkBAIC00OTcsNiArNDk3LDEwIEBAIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRJ
bnZpc2libGVNZWRpYUF1dG9wbGF5UGVybWl0dGVkKFdLUHJlZmVyZW5jZXNSZWYpCiBXS19FWFBP
UlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0TWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3Vt
ZW50KFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wgZmxhZyk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZl
cmVuY2VzR2V0TWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50KFdLUHJlZmVyZW5j
ZXNSZWYpOwogCisvLyBEZWZhdWx0cyB0byBhbiBlbXB0eSBzdHJpbmcKK1dLX0VYUE9SVCB2b2lk
IFdLUHJlZmVyZW5jZXNTZXRNZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydChXS1By
ZWZlcmVuY2VzUmVmLCBXS1N0cmluZ1JlZik7CitXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tQcmVm
ZXJlbmNlc0NvcHlNZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydChXS1ByZWZlcmVu
Y2VzUmVmKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggNjQ5MmRmZjFmMzZi
NzA1M2IwOWEwZjFhYzg4NzkwMTFhZGUwYzg1YS4uN2E4NGFmNzdlZGIzNjcxY2Y1OTlmNDRlN2My
YWZiNjE2NGI1MDg4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0KQEAgLTUwNCw2ICs1MDQsOCBAQCAtICh2b2lkKV9pbml0aWFsaXplV2l0
aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCiAK
ICAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZVZhbHVlcygpLnNldChXZWJLaXQ6Oldl
YlByZWZlcmVuY2VzS2V5OjpuZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlya0tleSgp
LCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmU6OlZhbHVlKCEhW19jb25maWd1cmF0aW9uIF9u
ZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlya10pKTsKIAorICAgIHBhZ2VDb25maWd1
cmF0aW9uLT5wcmVmZXJlbmNlVmFsdWVzKCkuc2V0KFdlYktpdDo6V2ViUHJlZmVyZW5jZXNLZXk6
Om1lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0S2V5KCksIFdlYktpdDo6V2ViUHJl
ZmVyZW5jZXNTdG9yZTo6VmFsdWUoW1tfY29uZmlndXJhdGlvbiBfbWVkaWFDb2RlY3NSZXF1aXJp
bmdIYXJkd2FyZVN1cHBvcnRdIGNvbXBvbmVudHNKb2luZWRCeVN0cmluZzpAIiwiXSkpOworCiAj
aWYgUExBVEZPUk0oSU9TKQogICAgIENHUmVjdCBib3VuZHMgPSBzZWxmLmJvdW5kczsKICAgICBf
c2Nyb2xsVmlldyA9IGFkb3B0TlMoW1tXS1Njcm9sbFZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
Ym91bmRzXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KaW5kZXggYjRiZjNhOTg5ZDBlYjE0OTk0
MzhhMWI1Y2U1MmNhZTczMzNkMGYwNy4uNjA2Mjc2OGM0MzhjNjllNzAzYmI5MjVjOTQwOTFmM2Fi
YjFiNjdhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQpAQCAtMTM3LDYgKzEzNyw3IEBAIEBp
bXBsZW1lbnRhdGlvbiBXS1dlYlZpZXdDb25maWd1cmF0aW9uIHsKICAgICBCT09MIF9uZWVkc1N0
b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlyazsKIAogICAgIE5TU3RyaW5nICpfb3ZlcnJpZGVD
b250ZW50U2VjdXJpdHlQb2xpY3k7CisgICAgTGF6eUluaXRpYWxpemVkPFJldGFpblB0cjxOU0Fy
cmF5PE5TTnVtYmVyICo+Pj4gX21lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0Owog
fQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdApAQCAtMzMwLDYgKzMzMSw3IEBAIC0gKGlkKWNvcHlX
aXRoWm9uZTooTlNab25lICopem9uZQogICAgIGNvbmZpZ3VyYXRpb24tPl9vdmVycmlkZUNvbnRl
bnRTZWN1cml0eVBvbGljeSA9IHNlbGYtPl9vdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeTsK
IAogICAgIGNvbmZpZ3VyYXRpb24tPl91cmxTY2hlbWVIYW5kbGVycy5zZXQoYWRvcHROUyhbc2Vs
Zi5fdXJsU2NoZW1lSGFuZGxlcnMgbXV0YWJsZUNvcHlXaXRoWm9uZTp6b25lXSkpOworICAgIGNv
bmZpZ3VyYXRpb24tPl9tZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydC5zZXQoYWRv
cHROUyhbc2VsZi5fbWVkaWFDb2RlY3NSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQgbXV0YWJsZUNv
cHlXaXRoWm9uZTp6b25lXSkpOwogCiAgICAgcmV0dXJuIGNvbmZpZ3VyYXRpb247CiB9CkBAIC04
MTYsNiArODE4LDE2IEBAIC0gKHZvaWQpX3NldE92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5
OihOU1N0cmluZyAqKW92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9sCiAgICAgX292ZXJyaWRlQ29u
dGVudFNlY3VyaXR5UG9saWN5ID0gb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3k7CiB9CiAK
Ky0gKE5TQXJyYXk8TlNOdW1iZXIgKj4gKilfbWVkaWFDb2RlY3NSZXF1aXJpbmdIYXJkd2FyZVN1
cHBvcnQKK3sKKyAgICByZXR1cm4gX21lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0
LmdldChbXSB7IHJldHVybiBhZG9wdE5TKFtbTlNBcnJheSBhbGxvY10gaW5pdF0pOyB9KTsKK30K
KworLSAodm9pZClfc2V0TWVkaWFDb2RlY3NSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ6KE5TQXJy
YXk8TlNOdW1iZXIgKj4gKiltZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydAorewor
ICAgIF9tZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydC5zZXQobWVkaWFDb2RlY3NS
ZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpOworfQorCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBX
S1dlYlZpZXdDb25maWd1cmF0aW9uIChXS0RlcHJlY2F0ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb25Qcml2YXRlLmgKaW5kZXggOTUxYmZkYzBhNDMzZmU0MTIwZTY3YWQ0YTZmNzMzMWRkMDk2
MDQ3My4uNTZkYTcyOThlNGQ5NTRhOTNkYzY2MDc0N2Y4Y2NlMmI1YTczYWFkMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0
aW9uUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaApAQCAtNzYsNiArNzYsNyBAQAogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0UmVxdWlyZXNVc2VyQWN0aW9uRm9yVmlkZW9QbGF5YmFj
azopIEJPT0wgX3JlcXVpcmVzVXNlckFjdGlvbkZvclZpZGVvUGxheWJhY2sgV0tfQVBJX0RFUFJF
Q0FURURfV0lUSF9SRVBMQUNFTUVOVCgibWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQ
bGF5YmFjayIsIG1hY29zeCgxMC4xMiwgMTAuMTIpLCBpb3MoMTAuMCwgMTAuMCkpOwogCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRPdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGlj
eTopIE5TU3RyaW5nICpfb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3kgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDop
IE5TQXJyYXk8TlNOdW1iZXIgKj4gKl9tZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9y
dCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvbS5hcHBs
ZS5XZWJQcm9jZXNzLnNiLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb20uYXBwbGUu
V2ViUHJvY2Vzcy5zYi5pbgppbmRleCAyNDM0YzZlZTQxNzE2ZjNkNDNkNjJiNTIxOTgwNTZlM2Vi
YjQ0NzU5Li4xMWFiMmQyNWYxYzVjYTkyZTFlMDQzMDY0YjgzZjNhMmIzYjM1MDA1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2Iu
aW4KQEAgLTg5LDcgKzg5LDkgQEAKICAgICAoaW9raXQtcHJvcGVydHkgIklPR2VuZXJhbEludGVy
ZXN0IikKICAgICAoaW9raXQtcHJvcGVydHkgIklPR0xCdW5kbGVOYW1lIikKICAgICAoaW9raXQt
cHJvcGVydHkgIklPSTJDVHJhbnNhY3Rpb25UeXBlcyIpCisgICAgKGlva2l0LXByb3BlcnR5ICJJ
T0dWQVZUQ2FwYWJpbGl0aWVzIikKICAgICAoaW9raXQtcHJvcGVydHktcmVnZXggIyJeSU9HVkEo
Q29kZWN8RW5jb2RlclJlc3RyaWN0ZWQpIikKKyAgICAoaW9raXQtcHJvcGVydHktcmVnZXggIyJe
SU9HVkEoLiopRGVjb2RlJCIpCiAgICAgKGlva2l0LXByb3BlcnR5ICJJT01hdGNoQ2F0ZWdvcnki
KQogICAgIChpb2tpdC1wcm9wZXJ0eS1yZWdleCAjIl5JT05hbWVNYXRjaCh8ZWQpIikKICAgICAo
aW9raXQtcHJvcGVydHkgIklPUE1TdHJpY3RUcmVlT3JkZXIiKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312016</attachid>
            <date>2017-06-05 10:55:41 -0700</date>
            <delta_ts>2017-06-05 12:03:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172787-20170605105554.patch</filename>
            <type>text/plain</type>
            <size>47936</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3NjcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDU2MDc1M2UzOWUzZDAyMzYzOTY3ODY0
ZDNmMDdjMWNjNTUyYmVjMWIuLjhlOGEyMjFkYjM5NzQ4NjFhZmJjZmIwN2U3ZGUzOTc5MTE2MDhk
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMDYtMDIgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgY2xpZW50cyB0byBzcGVjaWZ5IGEgbGlzdCBv
ZiBjb2RlY3Mgd2hpY2ggc2hvdWxkIHJlcXVpcmUgaGFyZHdhcmUgZGVjb2RlIHN1cHBvcnQuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI3ODcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBjb3Vw
bGUgb2YgY29udmVuaWVuY2UgbWV0aG9kczoKKyAgICAgICAgLSBhIFN0cmluZzo6c3BsaXQoKSB0
aGF0IHJldHVybnMgYSB2ZWN0b3IgKHJhdGhlciB0aGFuIHRha2luZyBhbiBvdXQtcmVmZXJlbmNl
IHRvIGEgdmVjdG9yKS4KKyAgICAgICAgLSBBIFZlY3Rvcjo6bWFwKCkgdGVtcGxhdGUgd2hpY2gg
dGFrZXMgYSBDYWxsYWJsZSBhbmQgcmV0dXJucyBhIFZlY3RvciBvZiBhIGRpZmZlcmVudCB0eXBl
LgorCisgICAgICAgICogd3RmL1ZlY3Rvci5oOgorICAgICAgICAoV1RGOjpWZWN0b3I6Om1hcCk6
CisgICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAgICAgIChXVEY6OlN0cmluZzo6
c3BsaXQpOgorCiAyMDE3LTA2LTAxICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFVuZG8gcm9sbG91dCBpbiByMjE3NjM4IHdpdGggYnVnIGZpeApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDI3Zjk3YzE3Y2JjNDIxZTMyOWU1YzNjNzI2ZjJlNDM1ZWUyNzM3MmEuLmMxYWZm
MWQ5ZTkyYTQ5MGQ5ZGFlMDFlNjk5MjQwYTA5OGU2MTk1ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNiBAQAorMjAxNy0wNi0wMSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBbGxvdyBjbGllbnRzIHRvIHNwZWNpZnkgYSBsaXN0IG9mIGNvZGVjcyB3aGljaCBz
aG91bGQgcmVxdWlyZSBoYXJkd2FyZSBkZWNvZGUgc3VwcG9ydC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mjc4NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBzZXR0aW5nLCBjaGVja2Vk
IGJ5IEhUTUxNZWRpYUVsZW1lbnQsIHdoaWNoIGFsbG93cyBNZWRpYVBsYXllclByaXZhdGUgaW1w
bGVtZW50YXRpb24KKyAgICAgICAgdG8gcmVxdWlyZSB0aGF0IHRoZSBzcGVjaWZpZWQgY29kZWNz
IGhhdmUgaGFyZHdhcmUgc3VwcG9ydC4gVGhpcyByZXF1aXJlbWVudCB3aWxsIGJlIHN1cHBvcnRl
ZAorICAgICAgICBpbiB0aGUgbm9ybWFsIG1lZGlhIGxvYWRpbmcgcGF0aCBhbmQgdGhlIE1TRSBw
YXRoIG9uIENvY29hIHBvcnRzLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3YXJl
U3VwcG9ydCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICog
cGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0TWVkaWFD
b2RlY3NSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3Mu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjptZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3
YXJlU3VwcG9ydCk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvVmlkZW9Ub29sYm94U29mdExp
bmsuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50OjptZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3YXJlU3Vw
cG9ydCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZB
c3NldFRyYWNrVXRpbGl0aWVzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRUcmFja1V0aWxpdGllcy5tbTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjphc3NldFRyYWNrTWVldHNIYXJkd2FyZURlY29kZVJlcXVpcmVtZW50cyk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpj
aGVja1BsYXlhYmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmFzc2V0U3RhdHVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQYXJzZVN0cmVhbURh
dGFBc0Fzc2V0KToKKwogMjAxNy0wNi0wMSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+
CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjIxNzYyNik6IEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lP
Tl9WMyB3YXMgZGlzYWJsZWQgYnkgbWlzdGFrZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDI1NWJlZDZlNWYyZDIz
ZmNkNzQ4YWFkZTE1NTk1YzYzNDVjMDJmMTguLmJlNWZkMGUxYWUwOWFlMTk2YzgzNzhlZWI3ZmQx
N2IzYmE4OGExODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxNy0wNi0wMSAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyBjbGllbnRzIHRv
IHNwZWNpZnkgYSBsaXN0IG9mIGNvZGVjcyB3aGljaCBzaG91bGQgcmVxdWlyZSBoYXJkd2FyZSBk
ZWNvZGUgc3VwcG9ydC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3Mjc4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBhIFdLV2ViUGFnZUNvbmZpZ3VyYXRpb24gKGFuZCBhc3NvY2lhdGVkIFdlYlBy
ZWZlcmVuY2VzIGFuZCBXS1ByZWZlcmVuY2VzUmVmKSBwcm9wZXJ0aWVzCisgICAgICAgIGFsbG93
aW5nIGNsaWVudHMgdG8gcmVxdWlyZSBzcGVjaWZpZWQgY29kZWNzIGhhdmUgaGFyZHdhcmUgZGVj
b2RlIHN1cHBvcnQuIEFsc28gb3BlbiB1cCB0aGUKKyAgICAgICAgc2FuZGJveCBvbiBDb2NvYSBw
b3J0cyB0byBzZXJ2aWNlcyByZXF1aXJlZCB0byBjaGVjayBmb3IgaGFyZHdhcmUgZGVjb2RlIGF2
YWlsYWJpbGl0eS4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25z
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAg
ICAoV0tQcmVmZXJlbmNlc1NldE1lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KToK
KyAgICAgICAgKFdLUHJlZmVyZW5jZXNDb3B5TWVkaWFDb2RlY3NSZXF1aXJpbmdIYXJkd2FyZVN1
cHBvcnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgX2luaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW06CisgICAgICAg
ICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gY29weVdpdGhab25lOl0pOgorICAgICAgICAoLVtX
S1dlYlZpZXdDb25maWd1cmF0aW9uIF9tZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9y
dF0pOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF9zZXRNZWRpYUNvZGVjc1Jl
cXVpcmluZ0hhcmR3YXJlU3VwcG9ydDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9j
b20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbjoKKwogMjAxNy0wNi0wMSAgQW5keSBFc3RlcyAgPGFl
c3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjIxNzYyNik6IEVOQUJMRV9B
UFBMRV9QQVlfU0VTU0lPTl9WMyB3YXMgZGlzYWJsZWQgYnkgbWlzdGFrZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvVmVjdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAppbmRleCBm
OGQ0N2Y5OTU4ZjY4OWZhMzAzZThjNGUxMzMyNTcwNGI5NzVhMjI3Li5lMTVmNjVjNTdiY2E5ZjRl
YWI5M2EzMmNkYjI4MjVmNDU4M2EwMWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9WZWN0
b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaApAQCAtNzgwLDYgKzc4MCw4IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgY2hlY2tDb25zaXN0ZW5jeSgpOwogCisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgTWFwRnVuY3Rpb24sIHR5cGVuYW1lIFIgPSB0eXBlbmFtZSBzdGQ6OnJlc3VsdF9vZjxN
YXBGdW5jdGlvbihjb25zdCBUJik+Ojp0eXBlPiBWZWN0b3I8Uj4gbWFwKE1hcEZ1bmN0aW9uKSBj
b25zdDsKKwogcHJpdmF0ZToKICAgICB2b2lkIGV4cGFuZENhcGFjaXR5KHNpemVfdCBuZXdNaW5D
YXBhY2l0eSk7CiAgICAgVCogZXhwYW5kQ2FwYWNpdHkoc2l6ZV90IG5ld01pbkNhcGFjaXR5LCBU
Kik7CkBAIC0xNDU3LDYgKzE0NTksMTYgQEAgaW5saW5lIHZvaWQgVmVjdG9yPFQsIGlubGluZUNh
cGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pjo6cmV2ZXJzZSgpCiAgICAgICAg
IHN0ZDo6c3dhcChhdChpKSwgYXQobV9zaXplIC0gMSAtIGkpKTsKIH0KIAordGVtcGxhdGU8dHlw
ZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIs
IHNpemVfdCBtaW5DYXBhY2l0eT4gdGVtcGxhdGU8dHlwZW5hbWUgTWFwRnVuY3Rpb24sIHR5cGVu
YW1lIFI+CitpbmxpbmUgVmVjdG9yPFI+IFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZs
b3dIYW5kbGVyLCBtaW5DYXBhY2l0eT46Om1hcChNYXBGdW5jdGlvbiBtYXBGdW5jdGlvbikgY29u
c3QKK3sKKyAgICBWZWN0b3I8Uj4gcmVzdWx0OworICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENh
cGFjaXR5KHNpemUoKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplKCk7ICsraSkK
KyAgICAgICAgcmVzdWx0LnVuY2hlY2tlZEFwcGVuZChtYXBGdW5jdGlvbihhdChpKSkpOworICAg
IHJldHVybiByZXN1bHQ7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVD
YXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXplX3QgbWluQ2FwYWNpdHk+CiBp
bmxpbmUgTWFsbG9jUHRyPFQ+IFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5k
bGVyLCBtaW5DYXBhY2l0eT46OnJlbGVhc2VCdWZmZXIoKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5n
LmgKaW5kZXggNmEyNDA2Yzg3MDRiYjY5YWMzMTJhYWJjZTQyMjAwOTAwZTY2ZmRlMS4uZGFkMDcy
Yzc2OTUxNjA5YjY5MTVlY2NjMGJhMDc4Njc0ZWVkMGM5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdGV4dC9XVEZTdHJpbmcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmlu
Zy5oCkBAIC0zNzAsNiArMzcwLDEzIEBAIHB1YmxpYzoKICAgICAgICAgc3BsaXQoc2VwYXJhdG9y
LCBmYWxzZSwgcmVzdWx0KTsKICAgICB9CiAKKyAgICBWZWN0b3I8U3RyaW5nPiBzcGxpdChjb25z
dCBTdHJpbmcmIHNlcGFyYXRvcikgY29uc3QKKyAgICB7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+
IHJlc3VsdDsKKyAgICAgICAgc3BsaXQoc2VwYXJhdG9yLCBmYWxzZSwgcmVzdWx0KTsKKyAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKICAgICBXVEZfRVhQT1JUX1NUUklOR19BUEkgaW50
IHRvSW50U3RyaWN0KGJvb2wqIG9rID0gbnVsbHB0ciwgaW50IGJhc2UgPSAxMCkgY29uc3Q7CiAg
ICAgV1RGX0VYUE9SVF9TVFJJTkdfQVBJIHVuc2lnbmVkIHRvVUludFN0cmljdChib29sKiBvayA9
IG51bGxwdHIsIGludCBiYXNlID0gMTApIGNvbnN0OwogICAgIFdURl9FWFBPUlRfU1RSSU5HX0FQ
SSBpbnQ2NF90IHRvSW50NjRTdHJpY3QoYm9vbCogb2sgPSBudWxscHRyLCBpbnQgYmFzZSA9IDEw
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA2MTI2OGNjZjY4MDM2N2QxODU4MTA4MzU0YmZhZDkyOWNjZWZjMWU2Li5i
OWViMjdhNmM0OWJkOTExMTg0M2FmNjUwZmExNmI0YTk5ZGRhYTU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MTU2LDYgKzYx
NTYsOCBAQAogCQlDRDUyMDlFNjFCMEJEOUUxMDA3NzE4NEUgLyogSFRNTE1lZGlhRWxlbWVudEVu
dW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDUy
MDlFNTFCMEJEOUUxMDA3NzE4NEUgLyogSFRNTE1lZGlhRWxlbWVudEVudW1zLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0Q1MjQ4MUExOEUyMDBF
RDAwMDhBMDdEIC8qIFNsZWVwRGlzYWJsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1MjQ4MTgxOEUyMDBFRDAwMDhBMDdEIC8qIFNsZWVwRGlz
YWJsZXIuY3BwICovOyB9OwogCQlDRDUyNDgxQjE4RTIwMEVEMDAwOEEwN0QgLyogU2xlZXBEaXNh
Ymxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1
MjQ4MTkxOEUyMDBFRDAwMDhBMDdEIC8qIFNsZWVwRGlzYWJsZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDRDUyNUJBMzFFRTBCMTA3MDA3ODhE
RjUgLyogRm91ckNDLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENENTI1QkExMUVFMEIxMDcwMDc4OERGNSAvKiBGb3VyQ0MuY3BwICovOyB9OworCQlD
RDUyNUJBNDFFRTBCMTA3MDA3ODhERjUgLyogRm91ckNDLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDUyNUJBMjFFRTBCMTA3MDA3ODhERjUgLyogRm91
ckNDLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
Q0Q1MzkzRDMxNzVFMDE4NjAwQzA3MTIzIC8qIEpTTWVtb3J5SW5mby5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDUzOTNEMTE3NUUwMTg2MDBDMDcx
MjMgLyogSlNNZW1vcnlJbmZvLmNwcCAqLzsgfTsKIAkJQ0Q1MzkzRDQxNzVFMDE4NjAwQzA3MTIz
IC8qIEpTTWVtb3J5SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0Q1MzkzRDIxNzVFMDE4NjAwQzA3MTIzIC8qIEpTTWVtb3J5SW5mby5oICovOyB9
OwogCQlDRDU0QTc2MjE4MEY5RjcwMDBCMDc2QzkgLyogQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0Q1NEE3NjAxODBGOUY3MDAwQjA3NkM5IC8qIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLmNwcCAqLzsgfTsKQEAgLTYzMDQsNiArNjMwNiw4IEBACiAJCUNERUE3NjM1
MTQ2MEI3MUEwMDhCMzFGMSAvKiBDbG9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDREVBNzYzMzE0NjBCNDYyMDA4QjMxRjEgLyogQ2xvY2suY3Bw
ICovOyB9OwogCQlDREVBN0M4NDEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQTdDODIx
Mjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uaCAqLzsgfTsKIAkJQ0RFQTdDODUx
Mjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQTdDODMxMjc2MjMwNDAwQjg0NkREIC8q
IFJlbmRlckZ1bGxTY3JlZW4uY3BwICovOyB9OworCQlDREVDQTg5QTFFREY0NDdEMDBEQ0IwOEIg
LyogQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0RFQ0E4OTgxRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFj
a1V0aWxpdGllcy5tbSAqLzsgfTsKKwkJQ0RFQ0E4OUIxRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNz
ZXRUcmFja1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RFQ0E4OTkxRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGll
cy5oICovOyB9OwogCQlDREVFMzkzNzE3OTc0MjU5MDAxRDc1ODAgLyogUHVibGljVVJMTWFuYWdl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVF
MzkzNjE3OTc0MjU5MDAxRDc1ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgKi87IH07CiAJCUNE
RUY0RkQ3MTdFODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3RoLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyog
R3JpZExlbmd0aC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUNERUZBMjI4MUU3NjY5RTgwMDBBRTk5QyAvKiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTExRTRC
QkE0RDAwRTgxNTRBIC8qIFBsYXRmb3JtQXVkaW9EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE0Njk4LDYgKzE0NzAyLDggQEAKIAkJQ0Q1
MjA5RTUxQjBCRDlFMTAwNzcxODRFIC8qIEhUTUxNZWRpYUVsZW1lbnRFbnVtcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MTWVkaWFFbGVtZW50RW51bXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1MjQ4MTgxOEUyMDBFRDAwMDhBMDdEIC8qIFNsZWVw
RGlzYWJsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2xlZXBE
aXNhYmxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTI0ODE5MThFMjAw
RUQwMDA4QTA3RCAvKiBTbGVlcERpc2FibGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNsZWVwRGlzYWJsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q1
MjVCQTExRUUwQjEwNzAwNzg4REY1IC8qIEZvdXJDQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBG
b3VyQ0MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDUyNUJBMjFFRTBCMTA3
MDA3ODhERjUgLyogRm91ckNDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvdXJDQy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRDUzOTNDQjE3NURDQ0U2MDBDMDcxMjMgLyogTWVtb3J5SW5m
by5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZW1vcnlJbmZvLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTM5M0NDMTc1RENDRTYwMEMwNzEyMyAvKiBNZW1v
cnlJbmZvLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZW1vcnlJbmZvLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1MzkzRDExNzVFMDE4NjAwQzA3MTIzIC8qIEpTTWVt
b3J5SW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lbW9y
eUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ4ODEsNiArMTQ4ODcs
OCBAQAogCQlDREVBNzYzMzE0NjBCNDYyMDA4QjMxRjEgLyogQ2xvY2suY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2xvY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDREVBN0M4MjEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJGdWxsU2NyZWVuLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUE3QzgzMTI3NjIzMDQwMEI4NDZERCAvKiBS
ZW5kZXJGdWxsU2NyZWVuLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFJlbmRlckZ1bGxTY3JlZW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREVD
QTg5ODFFREY0NDdEMDBEQ0IwOEIgLyogQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDREVDQTg5OTFFREY0NDdEMDBEQ0IwOEIgLyogQVZBc3NldFRyYWNrVXRp
bGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFWQXNzZXRUcmFja1V0aWxpdGllcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDREVFMzkzNjE3OTc0MjU5MDAxRDc1ODAgLyogUHVibGlj
VVJMTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQdWJs
aWNVUkxNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFRTM5Mzgx
Nzk3NDI3NDAwMUQ3NTgwIC8qIFVSTFJlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVSTFJlZ2lz
dHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUY0RkQ2MTdFODVDOEYwMEFF
RTI0QiAvKiBHcmlkTGVuZ3RoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdy
aWRMZW5ndGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzMzIxLDYgKzIzMzI5
LDggQEAKIAkJCQk1MDFCQUFBODEzOTUwRTJDMDBGN0FDRUIgLyogV2luZFJ1bGUuaCAqLywKIAkJ
CQkzNzk5MTk5NDEyMDBEREY0MDBFQTA0MUMgLyogV09GRkZpbGVGb3JtYXQuY3BwICovLAogCQkJ
CTM3OTkxOTk1MTIwMERERjQwMEVBMDQxQyAvKiBXT0ZGRmlsZUZvcm1hdC5oICovLAorCQkJCUNE
NTI1QkExMUVFMEIxMDcwMDc4OERGNSAvKiBGb3VyQ0MuY3BwICovLAorCQkJCUNENTI1QkEyMUVF
MEIxMDcwMDc4OERGNSAvKiBGb3VyQ0MuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gZ3JhcGhpY3M7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjQ1MTgsNiArMjQ1MjgsOCBAQAogCQkJ
CUNEOEI1QTQwMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5tbSAqLywKIAkJCQlDRDdFMDUyMDE2NTFBODQxMDBDMTIwMUYgLyogV2ViQ29yZUFW
RlJlc291cmNlTG9hZGVyLmggKi8sCiAJCQkJQ0Q3RTA1MjExNjUxQTg0MTAwQzEyMDFGIC8qIFdl
YkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbSAqLywKKwkJCQlDREVDQTg5ODFFREY0NDdEMDBEQ0Iw
OEIgLyogQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tICovLAorCQkJCUNERUNBODk5MUVERjQ0N0Qw
MERDQjA4QiAvKiBBVkFzc2V0VHJhY2tVdGlsaXRpZXMuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0g
b2JqYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yODI2MCw2ICsyODI3Miw3IEBA
CiAJCQkJQUE3RkVFQTcxNkE0RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzVXR0ZXJh
bmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTdGRUVBOTE2QTRFNkYzMDA0QzBDMzMgLyogSlNT
cGVlY2hTeW50aGVzaXNWb2ljZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4MjQzMjkwRDBDRThB
MjAwNDYwQzhGIC8qIEpTU1FMRXJyb3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUNERUNBODlCMUVE
RjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0VHJhY2tVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUI1MjVBOTY1MTFDQTIzNDAwMDNBMjNBOCAvKiBKU1NRTEV4Y2VwdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUFFODJGRUQwQ0FCMDdFRTAwMjIzN0FFIC8qIEpTU1FMUmVzdWx0U2V0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQUZFMTE5QTBDQkZGQ0M0MDAzMDE3RkEgLyogSlNTUUxSZXN1
bHRTZXRSb3dMaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI5MzkyLDYgKzI5NDA1LDcgQEAKIAkJ
CQkwRkI4ODkwQTE2N0QyRkExMDAxMENEQTUgLyogU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTdBQUZFOEQwMTlDQjg2NzIwMDBGNTZEOCAvKiBTY3JvbGxMYXRj
aGluZ1N0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDc4NzU1NDE5OTgzQUZGMDAyNEEyODcg
LyogU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUNENTI1QkE0
MUVFMEIxMDcwMDc4OERGNSAvKiBGb3VyQ0MuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0NjcyOTI4
MUUwREU2ODUwMEFDQzNEOCAvKiBTY3JvbGxTbmFwT2Zmc2V0c0luZm8uaCBpbiBIZWFkZXJzICov
LAogCQkJCTgzQzU3OTVEMURBNUMzMDEwMDZGQUNBOCAvKiBTY3JvbGxUb09wdGlvbnMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzQzA5Qzg2MEIwNjU3QUEwMDVBQkQ0RCAvKiBTY3JvbGxUeXBlcy5o
IGluIEhlYWRlcnMgKi8sCkBAIC0zMTIzOSw2ICszMTI1Myw3IEBACiAJCQkJQThDNEE4MDgwOUQ1
NjMyNzAwMDNBQzhEIC8qIEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjVCN0ExNzAx
N0MxMEFBODAwRTRBQTBBIC8qIEVsZW1lbnREYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTRG
RkMwMjJEMTY0M0I3MjYwMDRFMTYzOCAvKiBFbGVtZW50UmFyZURhdGEuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJQ0Q1MjVCQTMxRUUwQjEwNzAwNzg4REY1IC8qIEZvdXJDQy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlGQkRCNjE5QjE2RDYwMzJBMDBCQjMzOTQgLyogRWxlbWVudFJ1bGVDb2xsZWN0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThDRkY2Q0IwQTE1NjFDRDAwMEE0MjM0IC8qIEVs
bGlwc2lzQm94LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREJCMTI1MUYxMkQwMDNFRjI2
OSAvKiBFbWFpbElucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMzMjMzLDYgKzMzMjQ4
LDcgQEAKIAkJCQk5MzFDQkQwQzE2MUE0NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5nU3RhdGVOb2Rl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRUY3RDU1MTk1NEYxMzkwMERGQjcxRCAvKiBTY3Jv
bGxpbmdTdGF0ZU5vZGUubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRkVBM0U4MzE5MUIzMUJGMDAw
RjFCNTUgLyogU2Nyb2xsaW5nU3RhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGUuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQ0RFQ0E4OUExRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxp
dGllcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzMUNCRDBFMTYxQTQ0RTkwMEU0Qzg3NCAvKiBT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCODg5
MEUxNjdEMzAxNjAwMTBDREE1IC8qIFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5MzFDQkQxMDE2MUE0NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5nU3RhdGVU
cmVlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKaW5kZXggYTlkMTc0MDgyOWMxMGRmY2NhYzYxM2ViMjMxNmE1YmY5YmFlYWI4Zi4uY2Ni
MGI5NDgwYmJhNTJjYjQ2Y2I1ZjA4OGQ4NjQzNmQ0ODFhNjZiNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC00MzIwLDYgKzQzMjAsOCBAQCBVUkwgSFRNTE1l
ZGlhRWxlbWVudDo6c2VsZWN0TmV4dFNvdXJjZUNoaWxkKENvbnRlbnRUeXBlKiBjb250ZW50VHlw
ZSwgU3RyaW5nKiBrZQogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgICAgICAgICBwYXJh
bWV0ZXJzLmlzTWVkaWFTdHJlYW0gPSBtZWRpYVVSTC5wcm90b2NvbElzKG1lZGlhU3RyZWFtQmxv
YlByb3RvY29sKTsKICNlbmRpZgorICAgICAgICAgICAgcGFyYW1ldGVycy5jb250ZW50VHlwZXNS
ZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQgPSBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3
YXJlU3VwcG9ydCgpOworCiAgICAgICAgICAgICBpZiAoIU1lZGlhUGxheWVyOjpzdXBwb3J0c1R5
cGUocGFyYW1ldGVycywgdGhpcykpCiAgICAgICAgICAgICAgICAgZ290byBDaGVja0FnYWluOwog
ICAgICAgICB9CkBAIC02NjU3LDYgKzY2NTksMTEgQEAgZG91YmxlIEhUTUxNZWRpYUVsZW1lbnQ6
Om1lZGlhUGxheWVyUmVxdWVzdGVkUGxheWJhY2tSYXRlKCkgY29uc3QKICAgICByZXR1cm4gcG90
ZW50aWFsbHlQbGF5aW5nKCkgPyByZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSA6IDA7CiB9CiAKK2Nv
bnN0IFZlY3RvcjxDb250ZW50VHlwZT4mIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhQ29udGVudFR5
cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1l
bnQoKS5zZXR0aW5ncygpLm1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0
KCk7Cit9CisKICNpZiBVU0UoR1NUUkVBTUVSKQogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZXF1
ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zKGNvbnN0IFN0cmluZyYgZGV0YWlscywgY29uc3QgU3Ry
aW5nJiBkZXNjcmlwdGlvbiwgTWVkaWFQbGF5ZXJSZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5z
Q2FsbGJhY2smIGNhbGxiYWNrKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aAppbmRleCBhNDkwYmQ3N2Q0ZTlhNzI0YWQ0MmIyZWNlNmI2MjU5N2JkZjZmYmU1Li5mZjQ1OGM1
NWVkNGUyZDlmZmQ5ODZkOGEyOGI1NzIxYTMyZGNkYjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaApAQCAtNjgwLDYgKzY4MCw3IEBAIHByaXZhdGU6CiAgICAgZG91Ymxl
IG1lZGlhUGxheWVyUmVxdWVzdGVkUGxheWJhY2tSYXRlKCkgY29uc3QgZmluYWw7CiAgICAgVmlk
ZW9GdWxsc2NyZWVuTW9kZSBtZWRpYVBsYXllckZ1bGxzY3JlZW5Nb2RlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gZnVsbHNjcmVlbk1vZGUoKTsgfQogICAgIGJvb2wgbWVkaWFQbGF5ZXJTaG91bGRE
aXNhYmxlU2xlZXAoKSBjb25zdCBmaW5hbCB7IHJldHVybiBzaG91bGREaXNhYmxlU2xlZXAoKSA9
PSBTbGVlcFR5cGU6OkRpc3BsYXk7IH0KKyAgICBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBt
ZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0IGZpbmFsOwog
CiAjaWYgVVNFKEdTVFJFQU1FUikKICAgICB2b2lkIHJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdp
bnMoY29uc3QgU3RyaW5nJiBkZXRhaWxzLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBNZWRp
YVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjayYpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCAzYjQxMzQ0YmVkZjRjOWVhOGZhZTdkZWQwNjk5YjM3
NDNlODc5ZmY3Li5mNjFkYWQ2NjYxNDBiM2U4NzBhNTc5Y2M3Y2I5ZmEwM2Y4MGQ4OGQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtNzg5LDQgKzc4OSwxNSBAQCBib29sIFNldHRpbmdz
OjphbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZSgpCiAgICAgcmV0dXJuIGdBbGxvd3NBbnlTU0xDZXJ0
aWZpY2F0ZTsKIH0KIAordm9pZCBTZXR0aW5nczo6c2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJp
bmdIYXJkd2FyZVN1cHBvcnQoY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZXMpCit7CisgICAgbV9t
ZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCA9IGNvbnRlbnRUeXBlcy5z
cGxpdCgiOiIpLm1hcChDb250ZW50VHlwZTo6Y3JlYXRlKTsKK30KKwordm9pZCBTZXR0aW5nczo6
c2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoY29uc3QgVmVjdG9y
PENvbnRlbnRUeXBlPiYgY29udGVudFR5cGVzKQoreworICAgIG1fbWVkaWFDb250ZW50VHlwZXNS
ZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQgPSBjb250ZW50VHlwZXM7Cit9CisKKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IGQ5NWI2YWU0ZTA4YzYyNjdm
YTgzZDdiZmQzNGRhOGRmNjU4NGViZmUuLmVjZDYxZWZhMzE3YTIyMWFiYmE1ZmE1OTE4MGVmN2Qx
ZTVmNDM5ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lu
Y2x1ZGUgIkNsaXBib2FyZEFjY2Vzc1BvbGljeS5oIgogI2luY2x1ZGUgIkVkaXRpbmdCZWhhdmlv
clR5cGVzLmgiCisjaW5jbHVkZSAiQ29udGVudFR5cGUuaCIKICNpbmNsdWRlICJJbnRTaXplLmgi
CiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5nc01hY3Jvcy5o
IgpAQCAtMzI1LDYgKzMyNiwxMCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoYm9vbCk7CiAgICAgc3RhdGljIGJvb2wg
YWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoKTsKIAorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoY29uc3QgVmVjdG9yPENv
bnRlbnRUeXBlPiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TWVkaWFDb250ZW50VHlw
ZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoY29uc3QgU3RyaW5nJik7CisgICAgY29uc3QgVmVj
dG9yPENvbnRlbnRUeXBlPiYgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBv
cnQoKSBjb25zdCB7IHJldHVybiBtX21lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVT
dXBwb3J0OyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgU2V0dGluZ3MoUGFnZSopOwogCkBA
IC00MjQsNiArNDI5LDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBnTG93UG93ZXJWaWRl
b0F1ZGlvQnVmZmVyU2l6ZUVuYWJsZWQ7CiAgICAgc3RhdGljIGJvb2wgZ1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkRW5hYmxlZDsKICAgICBzdGF0aWMgYm9vbCBnQWxsb3dzQW55U1NMQ2Vy
dGlmaWNhdGU7CisKKyAgICBWZWN0b3I8Q29udGVudFR5cGU+IG1fbWVkaWFDb250ZW50VHlwZXNS
ZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7CiB9OwogCiBpbmxpbmUgYm9vbCBTZXR0aW5nczo6aXNQ
b3N0TG9hZENQVVVzYWdlTWVhc3VyZW1lbnRFbmFibGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0NvbnRlbnRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9D
b250ZW50VHlwZS5oCmluZGV4IGQ4ZDdhMDU2ZGIwMWJjM2YwYzJkMGI5NjhhZTExYTY5MzgxNmNi
MTkuLmYzMWFjNTBhMDg3NTNjZTdhODAxZDg3NWZiM2IyMTE4Y2RkZDFjNDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRlbnRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vQ29udGVudFR5cGUuaApAQCAtMzEsMTggKzMxLDIwIEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIENvbnRlbnRUeXBlIHsKLSAgICBwdWJsaWM6Ci0gICAg
ICAgIGV4cGxpY2l0IENvbnRlbnRUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSk7Ci0gICAgICAgIENv
bnRlbnRUeXBlKCkgPSBkZWZhdWx0OworY2xhc3MgQ29udGVudFR5cGUgeworcHVibGljOgorICAg
IHN0YXRpYyBDb250ZW50VHlwZSBjcmVhdGUoY29uc3QgU3RyaW5nJiB0eXBlKSB7IHJldHVybiBD
b250ZW50VHlwZSh0eXBlKTsgfQorICAgIGV4cGxpY2l0IENvbnRlbnRUeXBlKGNvbnN0IFN0cmlu
ZyYgdHlwZSk7CisgICAgQ29udGVudFR5cGUoKSA9IGRlZmF1bHQ7CiAKLSAgICAgICAgU3RyaW5n
IHBhcmFtZXRlcihjb25zdCBTdHJpbmcmIHBhcmFtZXRlck5hbWUpIGNvbnN0OwotICAgICAgICBT
dHJpbmcgdHlwZSgpIGNvbnN0OwotICAgICAgICBWZWN0b3I8U3RyaW5nPiBjb2RlY3MoKSBjb25z
dDsKLSAgICAgICAgY29uc3QgU3RyaW5nJiByYXcoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0K
LSAgICBwcml2YXRlOgotICAgICAgICBTdHJpbmcgbV90eXBlOwotICAgIH07CisgICAgU3RyaW5n
IHBhcmFtZXRlcihjb25zdCBTdHJpbmcmIHBhcmFtZXRlck5hbWUpIGNvbnN0OworICAgIFN0cmlu
ZyB0eXBlKCkgY29uc3Q7CisgICAgVmVjdG9yPFN0cmluZz4gY29kZWNzKCkgY29uc3Q7CisgICAg
Y29uc3QgU3RyaW5nJiByYXcoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICBib29sIGlz
RW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3R5cGUuaXNFbXB0eSgpOyB9Citwcml2YXRlOgorICAg
IFN0cmluZyBtX3R5cGU7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmNw
cAppbmRleCAyYzJiNjhkZDQwOTY3ODc2ODFjMWU0MjFjMWQzNzYwMjk5NmMyNDliLi5kOWZjMDQ5
MjlkODUxYWEyZjVhOThlZGIyMDRhNDM2MWY1YzA3ODc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9Ub29sYm94U29mdExpbmsuY3BwCkBAIC0zOCw1
ICszOCw2IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIFZpZGVvVG9v
bGJveCwgVlREZWNvbXByZXNzaW9uU2Vzc2lvbldhaXRGCiAjZGVmaW5lIFZURGVjb21wcmVzc2lv
blNlc3Npb25XYWl0Rm9yQXN5bmNocm9ub3VzRnJhbWVzIHNvZnRMaW5rX1ZpZGVvVG9vbGJveF9W
VERlY29tcHJlc3Npb25TZXNzaW9uV2FpdEZvckFzeW5jaHJvbm91c0ZyYW1lcwogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgVmlkZW9Ub29sYm94LCBWVERlY29tcHJlc3Np
b25TZXNzaW9uRGVjb2RlRnJhbWUsIE9TU3RhdHVzLCAoVlREZWNvbXByZXNzaW9uU2Vzc2lvblJl
ZiBzZXNzaW9uLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIFZURGVjb2RlRnJhbWVG
bGFncyBkZWNvZGVGbGFncywgdm9pZCogc291cmNlRnJhbWVSZWZDb24sIFZURGVjb2RlSW5mb0Zs
YWdzKiBpbmZvRmxhZ3NPdXQpLCAoc2Vzc2lvbiwgc2FtcGxlQnVmZmVyLCBkZWNvZGVGbGFncywg
c291cmNlRnJhbWVSZWZDb24sIGluZm9GbGFnc091dCkpCiAjZGVmaW5lIFZURGVjb21wcmVzc2lv
blNlc3Npb25EZWNvZGVGcmFtZSBzb2Z0TGlua19WaWRlb1Rvb2xib3hfVlREZWNvbXByZXNzaW9u
U2Vzc2lvbkRlY29kZUZyYW1lCitTT0ZUX0xJTktfRlVOQ1RJT05fTUFZX0ZBSUxfRk9SX1NPVVJD
RShXZWJDb3JlLCBWaWRlb1Rvb2xib3gsIFZUSXNIYXJkd2FyZURlY29kZVN1cHBvcnRlZCwgQm9v
bGVhbiwgKENNVmlkZW9Db2RlY1R5cGUgY29kZWNUeXBlKSwgKGNvZGVjVHlwZSkpCiBTT0ZUX0xJ
TktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBWaWRlb1Rvb2xib3gsIGtWVFZpZGVvRGVj
b2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRGVjb2Rlciwg
Q0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtWVFZpZGVvRGVjb2RlclNwZWNpZmljYXRpb25fRW5hYmxl
SGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRGVjb2RlciBnZXRfVmlkZW9Ub29sYm94X2tWVFZpZGVv
RGVjb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRGVjb2Rl
cigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb1Rvb2xi
b3hTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9Ub29sYm94
U29mdExpbmsuaAppbmRleCBmYjAwOThlYWM4MTg2NDJmMzY0YTc1YzE0YjE4NmM1NjNlNDMzYTk3
Li5jYzc1MzgzZmI0MzdiODAyNTJkMWI3OGE1OWM3NTM4NjI5ZDhjNzZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb1Rvb2xib3hTb2Z0TGluay5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmgKQEAg
LTM4LDUgKzM4LDcgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgVmlk
ZW9Ub29sYm94LCBWVERlY29tcHJlc3Npb25TZXNzaW9uV2FpdEYKICNkZWZpbmUgVlREZWNvbXBy
ZXNzaW9uU2Vzc2lvbldhaXRGb3JBc3luY2hyb25vdXNGcmFtZXMgc29mdExpbmtfVmlkZW9Ub29s
Ym94X1ZURGVjb21wcmVzc2lvblNlc3Npb25XYWl0Rm9yQXN5bmNocm9ub3VzRnJhbWVzCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBWaWRlb1Rvb2xib3gsIFZURGVjb21w
cmVzc2lvblNlc3Npb25EZWNvZGVGcmFtZSwgT1NTdGF0dXMsIChWVERlY29tcHJlc3Npb25TZXNz
aW9uUmVmIHNlc3Npb24sIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgVlREZWNvZGVG
cmFtZUZsYWdzIGRlY29kZUZsYWdzLCB2b2lkKiBzb3VyY2VGcmFtZVJlZkNvbiwgVlREZWNvZGVJ
bmZvRmxhZ3MqIGluZm9GbGFnc091dCksIChzZXNzaW9uLCBzYW1wbGVCdWZmZXIsIGRlY29kZUZs
YWdzLCBzb3VyY2VGcmFtZVJlZkNvbiwgaW5mb0ZsYWdzT3V0KSkKICNkZWZpbmUgVlREZWNvbXBy
ZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1lIHNvZnRMaW5rX1ZpZGVvVG9vbGJveF9WVERlY29tcHJl
c3Npb25TZXNzaW9uRGVjb2RlRnJhbWUKK1NPRlRfTElOS19GVU5DVElPTl9NQVlfRkFJTF9GT1Jf
SEVBREVSKFdlYkNvcmUsIFZpZGVvVG9vbGJveCwgVlRJc0hhcmR3YXJlRGVjb2RlU3VwcG9ydGVk
LCBCb29sZWFuLCAoQ01WaWRlb0NvZGVjVHlwZSBjb2RlY1R5cGUpLCAoY29kZWNUeXBlKSkKKyNk
ZWZpbmUgVlRJc0hhcmR3YXJlRGVjb2RlU3VwcG9ydGVkIHNvZnRMaW5rX1ZpZGVvVG9vbGJveF9W
VElzSGFyZHdhcmVEZWNvZGVTdXBwb3J0ZWQKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVS
KFdlYkNvcmUsIFZpZGVvVG9vbGJveCwga1ZUVmlkZW9EZWNvZGVyU3BlY2lmaWNhdGlvbl9FbmFi
bGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9EZWNvZGVyLCBDRlN0cmluZ1JlZikKICNkZWZpbmUg
a1ZUVmlkZW9EZWNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlk
ZW9EZWNvZGVyIGdldF9WaWRlb1Rvb2xib3hfa1ZUVmlkZW9EZWNvZGVyU3BlY2lmaWNhdGlvbl9F
bmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9EZWNvZGVyKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwY2UyZTI5OWRlMGM4NTVi
NThmMTk1MTdjNjEzMDgwMjAxMGI0MjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRm91ckNDLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworc3RkOjpvcHRpb25hbDxGb3VyQ0M+IEZvdXJDQzo6ZnJvbVN0cmluZyhj
b25zdCBTdHJpbmcmIHN0cmluZ1ZhbHVlKQoreworICAgIGF1dG8gYXNjaWlWYWx1ZSA9IHN0cmlu
Z1ZhbHVlLmFzY2lpKCk7CisgICAgaWYgKGFzY2lpVmFsdWUubGVuZ3RoKCkgIT0gNCkKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGNvbnN0IGNoYXIqIGRhdGEgPSBhc2NpaVZh
bHVlLmRhdGEoKTsKKyAgICBBU1NFUlQoYXNjaWlWYWx1ZS5kYXRhKCkpOworICAgIHVpbnQzMl90
IHZhbHVlID0gZGF0YVszXSA8PCAyNCB8IGRhdGFbMl0gPDwgMTYgfCBkYXRhWzFdIDw8IDggfCBk
YXRhWzBdOworICAgIHJldHVybiBGb3VyQ0ModmFsdWUpOworfQorCitTdHJpbmcgRm91ckNDOjp0
b1N0cmluZygpIGNvbnN0Cit7CisgICAgVmVjdG9yPExDaGFyLCA0PiBkYXRhID0geworICAgICAg
ICBMQ2hhcih2YWx1ZSA+PiAyNCksCisgICAgICAgIExDaGFyKCh2YWx1ZSA+PiAxNikgJiAweEZG
KSwKKyAgICAgICAgTENoYXIoKHZhbHVlID4+IDgpICYgMHhGRiksCisgICAgICAgIExDaGFyKHZh
bHVlICYgMHhGRiksCisgICAgfTsKKworICAgIHJldHVybiBTdHJpbmc6OmFkb3B0KFdURk1vdmUo
ZGF0YSkpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb3VyQ0MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmIxMzdhOGMzNmYyNzI5NWVhMTI2MzZjZDQzNWZiOGRjMzhhNDMyNjYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0Mu
aApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3Qg
Rm91ckNDIHsKKyAgICBXRUJDT1JFX0VYUE9SVCBGb3VyQ0ModWludDMyX3QgdmFsdWUpIDogdmFs
dWUodmFsdWUpIHsgfQorCisgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7CisgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Rm91ckNDPiBmcm9tU3RyaW5nKGNvbnN0IFN0
cmluZyYpOworCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZvdXJDQyYgb3RoZXIpIGNvbnN0
IHsgcmV0dXJuIHZhbHVlID09IG90aGVyLnZhbHVlOyB9CisKKyAgICB1aW50MzJfdCB2YWx1ZTsK
K307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcAppbmRleCBhODhhZDVmZTk2M2Y3OWQ0M2UwZWQzYjY5ZGYyZGU4MDJjOWY0ZDM2Li5k
YTA5YmJhZmE5OTJjZjNjNTljNmFkYmMxZDlkYWY5MWU2YjllZmZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0xNjEsNiArMTYx
LDEyIEBAIHB1YmxpYzoKICAgICBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAorY29uc3QgVmVjdG9yPENvbnRlbnRUeXBl
PiYgTWVkaWFQbGF5ZXJDbGllbnQ6Om1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVT
dXBwb3J0KCkgY29uc3QKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPENvbnRl
bnRUeXBlPj4gY29udGVudFR5cGVzOworICAgIHJldHVybiBjb250ZW50VHlwZXM7Cit9CisKIHN0
YXRpYyBNZWRpYVBsYXllckNsaWVudCYgbnVsbE1lZGlhUGxheWVyQ2xpZW50KCkKIHsKICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TWVkaWFQbGF5ZXJDbGllbnQ+IGNsaWVudDsKQEAgLTE0NjQs
NiArMTQ3MCwxMSBAQCBib29sIE1lZGlhUGxheWVyOjpzaG91bGREaXNhYmxlU2xlZXAoKSBjb25z
dAogICAgIHJldHVybiBjbGllbnQoKS5tZWRpYVBsYXllclNob3VsZERpc2FibGVTbGVlcCgpOwog
fQogCitjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBNZWRpYVBsYXllcjo6bWVkaWFDb250ZW50
VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdAoreworICAgIHJldHVybiBjbGll
bnQoKS5tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpOworfQorCiB9
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmgKaW5kZXggOTY1YjdmYTFiYTJkNzc4OGY3OWFjNThiMGU5M2I3OTUwZjgzOGFmZi4uMjFh
ZjRmZmI2Mzk1N2IxMzIxMzRkMmRmN2NhMmZkYzU3ZDUxMTMwMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0zMCw2ICszMCw3IEBACiAj
aW5jbHVkZSAiR3JhcGhpY3NUeXBlczNELmgiCiAKICNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0
ZS5oIgorI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAjaW5jbHVkZSAiTGVnYWN5Q0RNU2Vzc2lv
bi5oIgogI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlICJJbnRS
ZWN0LmgiCkBAIC0xMTQsNiArMTE1LDcgQEAgc3RydWN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFt
ZXRlcnMgewogICAgIFVSTCB1cmw7CiAgICAgYm9vbCBpc01lZGlhU291cmNlIHsgZmFsc2UgfTsK
ICAgICBib29sIGlzTWVkaWFTdHJlYW0geyBmYWxzZSB9OworICAgIFZlY3RvcjxDb250ZW50VHlw
ZT4gY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OwogfTsKIAogZXh0ZXJuIGNv
bnN0IFBsYXRmb3JtTWVkaWEgTm9QbGF0Zm9ybU1lZGlhOwpAQCAtMjczLDYgKzI3NSw3IEBAIHB1
YmxpYzoKICNlbmRpZgogCiAgICAgdmlydHVhbCBib29sIG1lZGlhUGxheWVyU2hvdWxkRGlzYWJs
ZVNsZWVwKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IFZlY3Rv
cjxDb250ZW50VHlwZT4mIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0
KCkgY29uc3Q7CiB9OwogCiBjbGFzcyBNZWRpYVBsYXllclN1cHBvcnRzVHlwZUNsaWVudCB7CkBA
IC01ODcsNiArNTkwLDggQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGVD
b2RlY3MoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRUeXBlQ29kZWNzOyB9CiAgICAgYm9vbCBj
b250ZW50TUlNRVR5cGVXYXNJbmZlcnJlZEZyb21FeHRlbnNpb24oKSBjb25zdCB7IHJldHVybiBt
X2NvbnRlbnRNSU1FVHlwZVdhc0luZmVycmVkRnJvbUV4dGVuc2lvbjsgfQogCisgICAgY29uc3Qg
VmVjdG9yPENvbnRlbnRUeXBlPiYgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1
cHBvcnQoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBNZWRpYVBsYXllcihNZWRpYVBsYXllckNs
aWVudCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uLmgKaW5kZXggNzc2N2MxNDg1ZmNjNTFlYWE5MmI0ZjdlNTA2YzNhZGI2NTkwYTFl
OC4uMGFkMjk4YjA1ZmMwYTMwNzA1YjFlYjgwMzE2MDhlYjQ5ZjhmMmYzMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaApAQCAtMjk2
LDYgKzI5Niw3IEBAIHByb3RlY3RlZDoKICAgICBjb25zdCBTdHJpbmcmIGFzc2V0VVJMKCkgY29u
c3QgeyByZXR1cm4gbV9hc3NldFVSTDsgfQogCiAgICAgTWVkaWFQbGF5ZXIqIHBsYXllcigpIHsg
cmV0dXJuIG1fcGxheWVyOyB9CisgICAgY29uc3QgTWVkaWFQbGF5ZXIqIHBsYXllcigpIGNvbnN0
IHsgcmV0dXJuIG1fcGxheWVyOyB9CiAKICAgICBTdHJpbmcgZW5naW5lRGVzY3JpcHRpb24oKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiAiQVZGb3VuZGF0aW9uIjsgfQogICAgIGxvbmcgcGxhdGZv
cm1FcnJvckNvZGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBhc3NldEVycm9yQ29kZSgpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9BVkFzc2V0VHJhY2tVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRUcmFja1V0aWxpdGllcy5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjJiNTc2Y2VlNTNlMGQ1YTY2MTRmOGQyNzlhMDIwMjQwYzM5MmNmNmIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9BVkFzc2V0VHJhY2tVdGlsaXRpZXMuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04p
CisKKyNpbmNsdWRlICJDb250ZW50VHlwZS5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKwor
T0JKQ19DTEFTUyBBVkFzc2V0VHJhY2s7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworYm9vbCBh
c3NldFRyYWNrTWVldHNIYXJkd2FyZURlY29kZVJlcXVpcmVtZW50cyhBVkFzc2V0VHJhY2sgKiwg
Y29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVE
ZWNvZGUpOworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3Nl
dFRyYWNrVXRpbGl0aWVzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiYmJkMGY1MjBjM2RlYjk4MjhkNTAwN2Ji
YTI2YmY4NmVlYzk3NWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0VHJhY2tVdGlsaXRpZXMubW0KQEAg
LTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
QVZBc3NldFRyYWNrVXRpbGl0aWVzLmgiCisKKyNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZP
VU5EQVRJT04pCisKKyNpbXBvcnQgIkZvdXJDQy5oIgorI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FW
QXNzZXRUcmFjay5oPgorCisjaW1wb3J0ICJDb3JlTWVkaWFTb2Z0TGluay5oIgorI2ltcG9ydCAi
VmlkZW9Ub29sYm94U29mdExpbmsuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIGFz
c2V0VHJhY2tNZWV0c0hhcmR3YXJlRGVjb2RlUmVxdWlyZW1lbnRzKEFWQXNzZXRUcmFjayAqdHJh
Y2ssIGNvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4mIGNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3
YXJlRGVjb2RlKQoreworICAgIC8vIElmIHdlIGNhbid0IGRldGVybWluZSB3aGV0aGVyIGEgY29k
ZWMgaGFzIGhhcmR3YXJlIHN1cHBvcnQgb3Igbm90LCBkZWZhdWx0IHRvIHRydWUuCisgICAgaWYg
KCFjYW5Mb2FkX1ZpZGVvVG9vbGJveF9WVElzSGFyZHdhcmVEZWNvZGVTdXBwb3J0ZWQoKSkKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdh
cmVEZWNvZGUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIFZlY3RvcjxG
b3VyQ0M+IGhhcmR3YXJlQ29kZWNzOworICAgIGZvciAoYXV0byYgY29udGVudFR5cGUgOiBjb250
ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZURlY29kZSkgeworICAgICAgICBhdXRvIGNvZGVjU3Ry
aW5ncyA9IGNvbnRlbnRUeXBlLmNvZGVjcygpOworICAgICAgICBmb3IgKGF1dG8mIGNvZGVjU3Ry
aW5nIDogY29kZWNTdHJpbmdzKSB7CisgICAgICAgICAgICBhdXRvIGNvZGVjSWRlbnRpZmllciA9
IEZvdXJDQzo6ZnJvbVN0cmluZyhjb2RlY1N0cmluZyk7CisgICAgICAgICAgICBpZiAoY29kZWNJ
ZGVudGlmaWVyKQorICAgICAgICAgICAgICAgIGhhcmR3YXJlQ29kZWNzLmFwcGVuZChjb2RlY0lk
ZW50aWZpZXIudmFsdWUoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmb3IgKE5TVUludGVn
ZXIgaSA9IDAsIGNvdW50ID0gdHJhY2suZm9ybWF0RGVzY3JpcHRpb25zLmNvdW50OyBpIDwgY291
bnQ7ICsraSkgeworICAgICAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2NyaXB0aW9uID0g
KENNRm9ybWF0RGVzY3JpcHRpb25SZWYpdHJhY2suZm9ybWF0RGVzY3JpcHRpb25zW2ldOworICAg
ICAgICBpZiAoQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlwZShkZXNjcmlwdGlvbikgIT0g
a0NNTWVkaWFUeXBlX1ZpZGVvKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgQ01W
aWRlb0NvZGVjVHlwZSBjb2RlYyA9IENNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVN1YlR5cGUo
ZGVzY3JpcHRpb24pOworICAgICAgICBpZiAoIWhhcmR3YXJlQ29kZWNzLmNvbnRhaW5zKEZvdXJD
Qyhjb2RlYykpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKCFWVElzSGFy
ZHdhcmVEZWNvZGVTdXBwb3J0ZWQoY29kZWMpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMuaAppbmRleCAzOGM5MjcwOWUxZGQwNDBiNzcxN2VmYjUzOTFiYjE5NTQ3MTYxOGI2Li5hYjE1
ZjY0MmVlZGRiNDQ4MTdjOTFiZTdmMWEyMjRhZmNkZWQxNzJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5oCkBAIC00MjQsNiArNDI0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY2FjaGVkQ2FuUGxh
eUZhc3RGb3J3YXJkOwogICAgIGJvb2wgbV9jYWNoZWRDYW5QbGF5RmFzdFJldmVyc2U7CiAgICAg
Ym9vbCBtX211dGVkIHsgZmFsc2UgfTsKKyAgICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8Ym9vbD4g
bV90cmFja3NBcmVQbGF5YWJsZTsKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VU
KQogICAgIG11dGFibGUgYm9vbCBtX2FsbG93c1dpcmVsZXNzVmlkZW9QbGF5YmFjazsKICAgICBi
b29sIG1fc2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW0KaW5kZXggZDA3YTEyNDk2NjJkYjhmODlmNTNkYjRmN2Q1YWEzOTc5ZWViMTQ1Mi4u
OTIzZmRiOTQxNWNiMzg4Yjk1YzkwMTliOTVkMTVhYzY0MjY4NTYzMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShB
VkZPVU5EQVRJT04pCiAKKyNpbXBvcnQgIkFWQXNzZXRUcmFja1V0aWxpdGllcy5oIgogI2ltcG9y
dCAiQVZGb3VuZGF0aW9uTUlNRVR5cGVDYWNoZS5oIgogI2ltcG9ydCAiQVZGb3VuZGF0aW9uU1BJ
LmgiCiAjaW1wb3J0ICJBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLmgiCkBAIC0xMTQ2LDcgKzEx
NDcsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNoZWNrUGxh
eWFiaWxpdHkoKQogICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OmNoZWNrUGxheWFiaWxpdHkoJXApIiwgdGhpcyk7CiAgICAgYXV0byB3ZWFrVGhpcyA9
IGNyZWF0ZVdlYWtQdHIoKTsKIAotICAgIFttX2F2QXNzZXQuZ2V0KCkgbG9hZFZhbHVlc0FzeW5j
aHJvbm91c2x5Rm9yS2V5czpbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6QCJwbGF5YWJsZSJdIGNv
bXBsZXRpb25IYW5kbGVyOl57CisgICAgW21fYXZBc3NldC5nZXQoKSBsb2FkVmFsdWVzQXN5bmNo
cm9ub3VzbHlGb3JLZXlzOltOU0FycmF5IGFycmF5V2l0aE9iamVjdHM6QCJwbGF5YWJsZSIsIEAi
dHJhY2tzIiwgbmlsXSBjb21wbGV0aW9uSGFuZGxlcjpeewogICAgICAgICBjYWxsT25NYWluVGhy
ZWFkKFt3ZWFrVGhpc10gewogICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAg
ICAgIHdlYWtUaGlzLT5zY2hlZHVsZU1haW5UaHJlYWROb3RpZmljYXRpb24oTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uOjpOb3RpZmljYXRpb246OkFzc2V0UGxheWFiaWxpdHlLbm93bik7
CkBAIC0xNTg5LDcgKzE1OTAsMTcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpB
c3NldFN0YXR1cyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjoKICAgICAgICAg
ICAgIHJldHVybiBNZWRpYVBsYXllckFWQXNzZXRTdGF0dXNDYW5jZWxsZWQ7IC8vIExvYWRpbmcg
b2YgYXQgbGVhc3Qgb25lIGtleSB3YXMgY2FuY2VsbGVkLgogICAgIH0KIAotICAgIGlmIChbW21f
YXZBc3NldC5nZXQoKSB2YWx1ZUZvcktleTpAInBsYXlhYmxlIl0gYm9vbFZhbHVlXSkKKyAgICBp
ZiAoIW1fdHJhY2tzQXJlUGxheWFibGUpIHsKKyAgICAgICAgbV90cmFja3NBcmVQbGF5YWJsZSA9
IHRydWU7CisgICAgICAgIGZvciAoQVZBc3NldFRyYWNrICp0cmFjayBpbiBbbV9hdkFzc2V0IHRy
YWNrc10pIHsKKyAgICAgICAgICAgIGlmICghYXNzZXRUcmFja01lZXRzSGFyZHdhcmVEZWNvZGVS
ZXF1aXJlbWVudHModHJhY2ssIHBsYXllcigpLT5tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hh
cmR3YXJlU3VwcG9ydCgpKSkgeworICAgICAgICAgICAgICAgIG1fdHJhY2tzQXJlUGxheWFibGUg
PSBmYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgIH0KKworICAgIGlmIChbW21fYXZBc3NldC5nZXQoKSB2YWx1ZUZvcktleTpAInBsYXlh
YmxlIl0gYm9vbFZhbHVlXSAmJiBtX3RyYWNrc0FyZVBsYXlhYmxlLnZhbHVlKCkpCiAgICAgICAg
IHJldHVybiBNZWRpYVBsYXllckFWQXNzZXRTdGF0dXNQbGF5YWJsZTsKIAogICAgIHJldHVybiBN
ZWRpYVBsYXllckFWQXNzZXRTdGF0dXNMb2FkZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmluZGV4IDU1ZDI2ZjZjZjcyMTNi
N2U1MmMzOTE4NmY5ZGNhMWJjNGEwMTEwODYuLjc1Y2ZjYWRhMTAxYWFhZDU0YTc3MTBjOGU4OTNk
MjM4NTM3ZDFjYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoTUVE
SUFfU09VUkNFKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCisjaW1wb3J0ICJBVkFzc2V0VHJhY2tV
dGlsaXRpZXMuaCIKICNpbXBvcnQgIkFWRm91bmRhdGlvblNQSS5oIgogI2ltcG9ydCAiQXVkaW9U
cmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCIKICNpbXBvcnQgIkNETVNlc3Npb25BVkNv
bnRlbnRLZXlTZXNzaW9uLmgiCkBAIC00MzEsNiArNDMyLDEzIEBAIHZvaWQgU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakM6OmRpZFBhcnNlU3RyZWFtRGF0YUFzQXNzZXQoQVZBc3NldCogYXNzZXQp
CiB7CiAgICAgTE9HKE1lZGlhU291cmNlLCAiU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRp
ZFBhcnNlU3RyZWFtRGF0YUFzQXNzZXQoJXApIiwgdGhpcyk7CiAKKyAgICBmb3IgKEFWQXNzZXRU
cmFjayAqdHJhY2sgaW4gW2Fzc2V0IHRyYWNrc10pIHsKKyAgICAgICAgaWYgKCFhc3NldFRyYWNr
TWVldHNIYXJkd2FyZURlY29kZVJlcXVpcmVtZW50cyh0cmFjaywgeydodmMxJ30pKSB7CisgICAg
ICAgICAgICBtX3BhcnNpbmdTdWNjZWVkZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorICAgIH0KKwogICAgIG1fYXNzZXQgPSBhc3NldDsKIAogICAgIG1fdmlkZW9U
cmFja3MuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVm
ZXJlbmNlc0RlZmluaXRpb25zLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXNEZWZpbml0aW9ucy5oCmluZGV4IDhkM2MzNzI0NjM3NGRmOGVkOGQ3ZDAwNjlhOGMxNjI0ZmYz
Y2UxZDIuLmQ0ZGQxY2E2ZTAxYzBiODIwZWIyNTk4MDA4ZWI5N2RhMTMyM2U4MWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaApAQCAt
NDAxLDYgKzQwMSw3IEBACiAgICAgRk9SX0VBQ0hfV0VCS0lUX0ZPTlRfRkFNSUxZX1BSRUZFUkVO
Q0UobWFjcm8pIFwKICAgICBtYWNybyhEZWZhdWx0VGV4dEVuY29kaW5nTmFtZSwgZGVmYXVsdFRl
eHRFbmNvZGluZ05hbWUsIFN0cmluZywgU3RyaW5nLCBkZWZhdWx0VGV4dEVuY29kaW5nTmFtZUZv
clN5c3RlbUxhbmd1YWdlKCksICIiLCAiIikgXAogICAgIG1hY3JvKEZUUERpcmVjdG9yeVRlbXBs
YXRlUGF0aCwgZnRwRGlyZWN0b3J5VGVtcGxhdGVQYXRoLCBTdHJpbmcsIFN0cmluZywgIiIsICIi
LCAiIikgXAorICAgIG1hY3JvKE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBw
b3J0LCBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCwgU3RyaW5nLCBT
dHJpbmcsICIiLCAiIiwgIiIpIFwKICAgICBcCiAKICNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX1NU
UklOR19QUkVGRVJFTkNFX05PVF9JTl9XRUJDT1JFKG1hY3JvKSBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggYWUxOTcxNWQ4N2I3
MTQzMmE4MDA2YWU4ZTliZmQwZDMyYWFhMTFlYy4uOGQ5N2FjYTA0ZWMzMTRmMzBlYThkNTgzOWQ3
Mjg2ZDQwNDhmNjdlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1ByZWZlcmVuY2VzLmNwcApAQCAtMTc3MCwzICsxNzcwLDE0IEBAIGJvb2wgV0tQcmVmZXJlbmNl
c0dldE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudChXS1ByZWZlcmVuY2VzUmVm
IHByZWZlCiB7CiAgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPm1lZGlhVXNlckdl
c3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudCgpOwogfQorCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRN
ZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydChXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzUmVmLCBXS1N0cmluZ1JlZiBjb2RlY3MpCit7CisgICAgdG9JbXBsKHByZWZl
cmVuY2VzUmVmKS0+c2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQo
dG9XVEZTdHJpbmcoY29kZWNzKSk7Cit9CisKK1dLU3RyaW5nUmVmIFdLUHJlZmVyZW5jZXNDb3B5
TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoV0tQcmVmZXJlbmNlc1Jl
ZiBwcmVmZXJlbmNlc1JlZikKK3sKKyAgICByZXR1cm4gdG9Db3BpZWRBUEkodG9JbXBsKHByZWZl
cmVuY2VzUmVmKS0+bWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSk7
Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzUmVmUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJl
ZmVyZW5jZXNSZWZQcml2YXRlLmgKaW5kZXggZWZkYTgyNTM2MTUyYWJjOWY0NTU4MjJlMmNhNjQ4
ZjI3ZDcwZTcwMS4uNDg2YmFiYzM2MjI0Yjc2ZTFkNTAzOTJmMzUxNzA4YmNlYjZhMDFmMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5j
ZXNSZWZQcml2YXRlLmgKQEAgLTQ5Nyw2ICs0OTcsMTAgQEAgV0tfRVhQT1JUIGJvb2wgV0tQcmVm
ZXJlbmNlc0dldEludmlzaWJsZU1lZGlhQXV0b3BsYXlQZXJtaXR0ZWQoV0tQcmVmZXJlbmNlc1Jl
ZikKIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRNZWRpYVVzZXJHZXN0dXJlSW5oZXJp
dHNGcm9tRG9jdW1lbnQoV0tQcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKTsKIFdLX0VYUE9SVCBi
b29sIFdLUHJlZmVyZW5jZXNHZXRNZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnQo
V0tQcmVmZXJlbmNlc1JlZik7CiAKKy8vIERlZmF1bHRzIHRvIGFuIGVtcHR5IHN0cmluZworV0tf
RVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFy
ZHdhcmVTdXBwb3J0KFdLUHJlZmVyZW5jZXNSZWYsIFdLU3RyaW5nUmVmKTsKK1dLX0VYUE9SVCBX
S1N0cmluZ1JlZiBXS1ByZWZlcmVuY2VzQ29weU1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFy
ZHdhcmVTdXBwb3J0KFdLUHJlZmVyZW5jZXNSZWYpOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0K
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQppbmRleCA2NDkyZGZmMWYzNmI3MDUzYjA5YTBmMWFjODg3OTAxMWFkZTBjODVhLi4yZjAz
ZGQzZWIxOTg3ZDg3NjdmMmI1YzFkYmU4MDM3ZWNlZjdlNTAyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNTA0LDYgKzUwNCw4IEBA
IC0gKHZvaWQpX2luaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiAqKWNvbmZpZ3VyYXRpb24KIAogICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNl
VmFsdWVzKCkuc2V0KFdlYktpdDo6V2ViUHJlZmVyZW5jZXNLZXk6Om5lZWRzU3RvcmFnZUFjY2Vz
c0Zyb21GaWxlVVJMc1F1aXJrS2V5KCksIFdlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZTo6VmFs
dWUoISFbX2NvbmZpZ3VyYXRpb24gX25lZWRzU3RvcmFnZUFjY2Vzc0Zyb21GaWxlVVJMc1F1aXJr
XSkpOwogCisgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VWYWx1ZXMoKS5zZXQoV2Vi
S2l0OjpXZWJQcmVmZXJlbmNlc0tleTo6bWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2Fy
ZVN1cHBvcnRLZXkoKSwgV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlOjpWYWx1ZShbX2NvbmZp
Z3VyYXRpb24gX21lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0XSkpOwor
CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIENHUmVjdCBib3VuZHMgPSBzZWxmLmJvdW5kczsKICAg
ICBfc2Nyb2xsVmlldyA9IGFkb3B0TlMoW1tXS1Njcm9sbFZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6Ym91bmRzXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KaW5kZXggYjRiZjNhOTg5ZDBlYjE0
OTk0MzhhMWI1Y2U1MmNhZTczMzNkMGYwNy4uNDAzMGQ1M2E5MTc3YjgyOTgzZjg2ZGFmYjM0Yjk2
MTRmNmFhMDhiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQpAQCAtMTM3LDYgKzEzNyw3IEBA
IEBpbXBsZW1lbnRhdGlvbiBXS1dlYlZpZXdDb25maWd1cmF0aW9uIHsKICAgICBCT09MIF9uZWVk
c1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlyazsKIAogICAgIE5TU3RyaW5nICpfb3ZlcnJp
ZGVDb250ZW50U2VjdXJpdHlQb2xpY3k7CisgICAgTlNTdHJpbmcgKl9tZWRpYUNvbnRlbnRUeXBl
c1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsKIH0KIAogLSAoaW5zdGFuY2V0eXBlKWluaXQKQEAg
LTMzMCw2ICszMzEsNyBAQCAtIChpZCljb3B5V2l0aFpvbmU6KE5TWm9uZSAqKXpvbmUKICAgICBj
b25maWd1cmF0aW9uLT5fb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3kgPSBzZWxmLT5fb3Zl
cnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3k7CiAKICAgICBjb25maWd1cmF0aW9uLT5fdXJsU2No
ZW1lSGFuZGxlcnMuc2V0KGFkb3B0TlMoW3NlbGYuX3VybFNjaGVtZUhhbmRsZXJzIG11dGFibGVD
b3B5V2l0aFpvbmU6em9uZV0pKTsKKyAgICBjb25maWd1cmF0aW9uLT5fbWVkaWFDb250ZW50VHlw
ZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQgPSBzZWxmLl9tZWRpYUNvbnRlbnRUeXBlc1JlcXVp
cmluZ0hhcmR3YXJlU3VwcG9ydDsKIAogICAgIHJldHVybiBjb25maWd1cmF0aW9uOwogfQpAQCAt
ODE2LDYgKzgxOCwxNiBAQCAtICh2b2lkKV9zZXRPdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGlj
eTooTlNTdHJpbmcgKilvdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbAogICAgIF9vdmVycmlkZUNv
bnRlbnRTZWN1cml0eVBvbGljeSA9IG92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5OwogfQog
CistIChOU1N0cmluZyAqKV9tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9y
dAoreworICAgIHJldHVybiBfbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBv
cnQ7Cit9CisKKy0gKHZvaWQpX3NldE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVT
dXBwb3J0OihOU1N0cmluZyAqKW1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBw
b3J0Cit7CisgICAgX21lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0ID0g
bWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7Cit9CisKIEBlbmQKIAog
QGltcGxlbWVudGF0aW9uIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKFdLRGVwcmVjYXRlZCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29u
ZmlndXJhdGlvblByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAppbmRleCA5NTFiZmRjMGE0MzNmZTQxMjBl
NjdhZDRhNmY3MzMxZGQwOTYwNDczLi44YzYzMmMwYThiMGViZWExNTA0ZmI1NDczNDM5ZjM1YWRi
ZGM3N2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCkBAIC03Niw2ICs3
Niw3IEBACiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXF1aXJlc1VzZXJBY3Rp
b25Gb3JWaWRlb1BsYXliYWNrOikgQk9PTCBfcmVxdWlyZXNVc2VyQWN0aW9uRm9yVmlkZW9QbGF5
YmFjayBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJtZWRpYVR5cGVzUmVxdWly
aW5nVXNlckFjdGlvbkZvclBsYXliYWNrIiwgbWFjb3N4KDEwLjEyLCAxMC4xMiksIGlvcygxMC4w
LCAxMC4wKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE92ZXJyaWRlQ29u
dGVudFNlY3VyaXR5UG9saWN5OikgTlNTdHJpbmcgKl9vdmVycmlkZUNvbnRlbnRTZWN1cml0eVBv
bGljeSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhQ29udGVudFR5cGVzUmVx
dWlyaW5nSGFyZHdhcmVTdXBwb3J0OikgTlNTdHJpbmcgKl9tZWRpYUNvbnRlbnRUeXBlc1JlcXVp
cmluZ0hhcmR3YXJlU3VwcG9ydCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgppbmRleCAyNDM0YzZlZTQxNzE2ZjNk
NDNkNjJiNTIxOTgwNTZlM2ViYjQ0NzU5Li4xMWFiMmQyNWYxYzVjYTkyZTFlMDQzMDY0YjgzZjNh
MmIzYjM1MDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvbS5hcHBs
ZS5XZWJQcm9jZXNzLnNiLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29tLmFw
cGxlLldlYlByb2Nlc3Muc2IuaW4KQEAgLTg5LDcgKzg5LDkgQEAKICAgICAoaW9raXQtcHJvcGVy
dHkgIklPR2VuZXJhbEludGVyZXN0IikKICAgICAoaW9raXQtcHJvcGVydHkgIklPR0xCdW5kbGVO
YW1lIikKICAgICAoaW9raXQtcHJvcGVydHkgIklPSTJDVHJhbnNhY3Rpb25UeXBlcyIpCisgICAg
KGlva2l0LXByb3BlcnR5ICJJT0dWQVZUQ2FwYWJpbGl0aWVzIikKICAgICAoaW9raXQtcHJvcGVy
dHktcmVnZXggIyJeSU9HVkEoQ29kZWN8RW5jb2RlclJlc3RyaWN0ZWQpIikKKyAgICAoaW9raXQt
cHJvcGVydHktcmVnZXggIyJeSU9HVkEoLiopRGVjb2RlJCIpCiAgICAgKGlva2l0LXByb3BlcnR5
ICJJT01hdGNoQ2F0ZWdvcnkiKQogICAgIChpb2tpdC1wcm9wZXJ0eS1yZWdleCAjIl5JT05hbWVN
YXRjaCh8ZWQpIikKICAgICAoaW9raXQtcHJvcGVydHkgIklPUE1TdHJpY3RUcmVlT3JkZXIiKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312022</attachid>
            <date>2017-06-05 12:03:29 -0700</date>
            <delta_ts>2017-06-05 14:30:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172787-20170605120327.patch</filename>
            <type>text/plain</type>
            <size>49151</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3NjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRjMjgxMjVkNzVkMmFlY2ZiMzBlYTAx
YmZjYTdlYTMwMzgzZjAzMjQuLjU2YTA1MGViMDI5MTE3ZjlmNzAxNjBlZWQ0MjEwYjJmNmM3NGE2
NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMDYtMDUgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgY2xpZW50cyB0byBzcGVjaWZ5IGEgbGlzdCBv
ZiBjb2RlY3Mgd2hpY2ggc2hvdWxkIHJlcXVpcmUgaGFyZHdhcmUgZGVjb2RlIHN1cHBvcnQuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI3ODcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBjb3Vw
bGUgb2YgY29udmVuaWVuY2UgbWV0aG9kczoKKyAgICAgICAgLSBhIFN0cmluZzo6c3BsaXQoKSB0
aGF0IHJldHVybnMgYSB2ZWN0b3IgKHJhdGhlciB0aGFuIHRha2luZyBhbiBvdXQtcmVmZXJlbmNl
IHRvIGEgdmVjdG9yKS4KKyAgICAgICAgLSBBIFZlY3Rvcjo6bWFwKCkgdGVtcGxhdGUgd2hpY2gg
dGFrZXMgYSBDYWxsYWJsZSBhbmQgcmV0dXJucyBhIFZlY3RvciBvZiBhIGRpZmZlcmVudCB0eXBl
LgorCisgICAgICAgICogd3RmL1ZlY3Rvci5oOgorICAgICAgICAoV1RGOjpWZWN0b3I6Om1hcCk6
CisgICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAgICAgIChXVEY6OlN0cmluZzo6
c3BsaXQpOgorCiAyMDE3LTA1LTMxICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIEdldCA8Y2hyb25vPiBvdXQgb2YgU3RkTGliRXh0cmFzLmgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBiMzc1ZjYwMGI5YmIxMGRjMDE0MGNkYjQ4OThhY2QzOTAxMjQzOWVlLi41ZGI4OWQz
YTFlY2JlYjRhNzQ5NjViYzFhMTg0MzA2MjVhMzUyMWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzYgQEAKKzIwMTctMDYtMDUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWxsb3cgY2xpZW50cyB0byBzcGVjaWZ5IGEgbGlzdCBvZiBjb2RlY3Mgd2hpY2ggc2hv
dWxkIHJlcXVpcmUgaGFyZHdhcmUgZGVjb2RlIHN1cHBvcnQuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI3ODcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgc2V0dGluZywgY2hlY2tlZCBi
eSBIVE1MTWVkaWFFbGVtZW50LCB3aGljaCBhbGxvd3MgTWVkaWFQbGF5ZXJQcml2YXRlIGltcGxl
bWVudGF0aW9uCisgICAgICAgIHRvIHJlcXVpcmUgdGhhdCB0aGUgc3BlY2lmaWVkIGNvZGVjcyBo
YXZlIGhhcmR3YXJlIHN1cHBvcnQuIFRoaXMgcmVxdWlyZW1lbnQgd2lsbCBiZSBzdXBwb3J0ZWQK
KyAgICAgICAgaW4gdGhlIG5vcm1hbCBtZWRpYSBsb2FkaW5nIHBhdGggYW5kIHRoZSBNU0UgcGF0
aCBvbiBDb2NvYSBwb3J0cy4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFDb2RlY3NSZXF1aXJpbmdIYXJkd2FyZVN1
cHBvcnQpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBh
Z2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnNldE1lZGlhQ29k
ZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6
CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6bWVkaWFDb2RlY3NSZXF1aXJpbmdIYXJkd2Fy
ZVN1cHBvcnQpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1ZpZGVvVG9vbGJveFNvZnRMaW5r
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9WaWRlb1Rvb2xib3hTb2Z0TGluay5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllckNsaWVudDo6bWVkaWFDb2RlY3NSZXF1aXJpbmdIYXJkd2FyZVN1cHBv
cnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNz
ZXRUcmFja1V0aWxpdGllcy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0VHJhY2tVdGlsaXRpZXMubW06IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6YXNzZXRUcmFja01lZXRzSGFyZHdhcmVEZWNvZGVSZXF1aXJlbWVudHMpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y2hl
Y2tQbGF5YWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjphc3NldFN0YXR1cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW06CisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkUGFyc2VTdHJlYW1EYXRh
QXNBc3NldCk6CisKIDIwMTctMDUtMzEgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgR2V0IDxjaHJvbm8+IG91dCBvZiBTdGRMaWJFeHRyYXMuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCmluZGV4IGI0NGQxMmU1MDNjOTg1MDBhMWEwY2ZhMzE5MzI0NGRjMmE2ZTI5MjEuLjA5OTQ5
MmM2YjRlYTE2OWY2ODUwZDM4NGRiMDIzYWVlZDYzN2NkMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyOCBAQAorMjAxNy0wNi0wNSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBbGxvdyBjbGllbnRzIHRvIHNwZWNpZnkgYSBsaXN0IG9mIGNvZGVjcyB3aGljaCBz
aG91bGQgcmVxdWlyZSBoYXJkd2FyZSBkZWNvZGUgc3VwcG9ydC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mjc4NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIFdLV2ViUGFnZUNvbmZpZ3VyYXRp
b24gKGFuZCBhc3NvY2lhdGVkIFdlYlByZWZlcmVuY2VzIGFuZCBXS1ByZWZlcmVuY2VzUmVmKSBw
cm9wZXJ0aWVzCisgICAgICAgIGFsbG93aW5nIGNsaWVudHMgdG8gcmVxdWlyZSBzcGVjaWZpZWQg
Y29kZWNzIGhhdmUgaGFyZHdhcmUgZGVjb2RlIHN1cHBvcnQuIEFsc28gb3BlbiB1cCB0aGUKKyAg
ICAgICAgc2FuZGJveCBvbiBDb2NvYSBwb3J0cyB0byBzZXJ2aWNlcyByZXF1aXJlZCB0byBjaGVj
ayBmb3IgaGFyZHdhcmUgZGVjb2RlIGF2YWlsYWJpbGl0eS4KKworICAgICAgICAqIFNoYXJlZC9X
ZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
UHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1NldE1lZGlhQ29kZWNzUmVx
dWlyaW5nSGFyZHdhcmVTdXBwb3J0KToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNDb3B5TWVkaWFD
b2RlY3NSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2luaXRpYWxpemVXaXRoQ29u
ZmlndXJhdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gY29weVdp
dGhab25lOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF9tZWRpYUNvZGVj
c1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydF0pOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1
cmF0aW9uIF9zZXRNZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDpdKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbjoKKwogMjAx
Ny0wNS0zMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBHZXQgPGNocm9ubz4gb3V0IG9mIFN0ZExpYkV4dHJhcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9WZWN0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCmluZGV4IGY4ZDQ3Zjk5
NThmNjg5ZmEzMDNlOGM0ZTEzMzI1NzA0Yjk3NWEyMjcuLmUxNWY2NWM1N2JjYTlmNGVhYjkzYTMy
Y2RiMjgyNWY0NTgzYTAxY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCkBAIC03ODAsNiArNzgwLDggQEAgcHVibGljOgog
CiAgICAgdm9pZCBjaGVja0NvbnNpc3RlbmN5KCk7CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBN
YXBGdW5jdGlvbiwgdHlwZW5hbWUgUiA9IHR5cGVuYW1lIHN0ZDo6cmVzdWx0X29mPE1hcEZ1bmN0
aW9uKGNvbnN0IFQmKT46OnR5cGU+IFZlY3RvcjxSPiBtYXAoTWFwRnVuY3Rpb24pIGNvbnN0Owor
CiBwcml2YXRlOgogICAgIHZvaWQgZXhwYW5kQ2FwYWNpdHkoc2l6ZV90IG5ld01pbkNhcGFjaXR5
KTsKICAgICBUKiBleHBhbmRDYXBhY2l0eShzaXplX3QgbmV3TWluQ2FwYWNpdHksIFQqKTsKQEAg
LTE0NTcsNiArMTQ1OSwxNiBAQCBpbmxpbmUgdm9pZCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHks
IE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+OjpyZXZlcnNlKCkKICAgICAgICAgc3RkOjpz
d2FwKGF0KGkpLCBhdChtX3NpemUgLSAxIC0gaSkpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlciwgc2l6ZV90
IG1pbkNhcGFjaXR5PiB0ZW1wbGF0ZTx0eXBlbmFtZSBNYXBGdW5jdGlvbiwgdHlwZW5hbWUgUj4K
K2lubGluZSBWZWN0b3I8Uj4gVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRs
ZXIsIG1pbkNhcGFjaXR5Pjo6bWFwKE1hcEZ1bmN0aW9uIG1hcEZ1bmN0aW9uKSBjb25zdAorewor
ICAgIFZlY3RvcjxSPiByZXN1bHQ7CisgICAgcmVzdWx0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHko
c2l6ZSgpKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemUoKTsgKytpKQorICAgICAg
ICByZXN1bHQudW5jaGVja2VkQXBwZW5kKG1hcEZ1bmN0aW9uKGF0KGkpKSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKwogdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5
LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW5DYXBhY2l0eT4KIGlubGluZSBN
YWxsb2NQdHI8VD4gVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1p
bkNhcGFjaXR5Pjo6cmVsZWFzZUJ1ZmZlcigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L1dURlN0cmluZy5oIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAppbmRl
eCA2YTI0MDZjODcwNGJiNjlhYzMxMmFhYmNlNDIyMDA5MDBlNjZmZGUxLi5kYWQwNzJjNzY5NTE2
MDliNjkxNWVjY2MwYmEwNzg2NzRlZWQwYzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1dURlN0cmluZy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKQEAg
LTM3MCw2ICszNzAsMTMgQEAgcHVibGljOgogICAgICAgICBzcGxpdChzZXBhcmF0b3IsIGZhbHNl
LCByZXN1bHQpOwogICAgIH0KIAorICAgIFZlY3RvcjxTdHJpbmc+IHNwbGl0KGNvbnN0IFN0cmlu
ZyYgc2VwYXJhdG9yKSBjb25zdAorICAgIHsKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gcmVzdWx0
OworICAgICAgICBzcGxpdChzZXBhcmF0b3IsIGZhbHNlLCByZXN1bHQpOworICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgIH0KKwogICAgIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBpbnQgdG9JbnRT
dHJpY3QoYm9vbCogb2sgPSBudWxscHRyLCBpbnQgYmFzZSA9IDEwKSBjb25zdDsKICAgICBXVEZf
RVhQT1JUX1NUUklOR19BUEkgdW5zaWduZWQgdG9VSW50U3RyaWN0KGJvb2wqIG9rID0gbnVsbHB0
ciwgaW50IGJhc2UgPSAxMCkgY29uc3Q7CiAgICAgV1RGX0VYUE9SVF9TVFJJTkdfQVBJIGludDY0
X3QgdG9JbnQ2NFN0cmljdChib29sKiBvayA9IG51bGxwdHIsIGludCBiYXNlID0gMTApIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDg2YTI2YTg0YWRmZmEwZGZlN2Y2Mzc5NDA5MjY5NmQzOGNjNDcxOWUuLjgzNzlmZjI3
NGRkY2U5OTc5MjhkYWU2NGFlMmNlMGNiYjBjM2JkODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3NzcsNyArMTc3Nyw3IEBA
CiAJCTQxQzc2MEIxMEVERTAzRDMwMEMxNjU1RiAvKiBTY3JpcHRTdGF0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFDNzYwQjAwRURFMDNEMzAwQzE2
NTVGIC8qIFNjcmlwdFN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNDFDQUQ3MUUxRUEwOTBBMTAwMTc4MTY0IC8qIFZpZGVvVG9vbEJveEVu
Y29kZXJGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxQ0FENzFDMUVBMDkwNTcwMDE3ODE2NCAvKiBWaWRlb1Rvb2xCb3hFbmNvZGVyRmFj
dG9yeS5jcHAgKi87IH07CiAJCTQxQ0Y4QkU3MUQ0NjIyNjcwMDcwN0RDOSAvKiBGZXRjaEJvZHlD
b25zdW1lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MUNGOEJFNDFENDYyMjIwMDA3MDdEQzkgLyogRmV0Y2hCb2R5Q29uc3VtZXIuY3BwICovOyB9
OwotCQk0MUQwMTVDQTBGNEI1QzcxMDA0QTY2MkYgLyogQ29udGVudFR5cGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRDAxNUM4MEY0QjVDNzEwMDRB
NjYyRiAvKiBDb250ZW50VHlwZS5oICovOyB9OworCQk0MUQwMTVDQTBGNEI1QzcxMDA0QTY2MkYg
LyogQ29udGVudFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxRDAxNUM4MEY0QjVDNzEwMDRBNjYyRiAvKiBDb250ZW50VHlwZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxRDAxNUNCMEY0QjVD
NzEwMDRBNjYyRiAvKiBDb250ZW50VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MUQwMTVDOTBGNEI1QzcxMDA0QTY2MkYgLyogQ29udGVudFR5
cGUuY3BwICovOyB9OwogCQk0MURFRkNCNTFFNTZDMUJEMDAwRDlFNUYgLyogSlNET01NYXBMaWtl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREVG
Q0IzMUU1NkMxQjkwMDBEOUU1RiAvKiBKU0RPTU1hcExpa2UuY3BwICovOyB9OwogCQk0MURFRkNC
NjFFNTZDMUJEMDAwRDlFNUYgLyogSlNET01NYXBMaWtlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURFRkNCNDFFNTZDMUI5MDAwRDlFNUYgLyogSlNE
T01NYXBMaWtlLmggKi87IH07CkBAIC02MTU0LDYgKzYxNTQsOCBAQAogCQlDRDUyMDlFNjFCMEJE
OUUxMDA3NzE4NEUgLyogSFRNTE1lZGlhRWxlbWVudEVudW1zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDUyMDlFNTFCMEJEOUUxMDA3NzE4NEUgLyog
SFRNTE1lZGlhRWxlbWVudEVudW1zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQ0Q1MjQ4MUExOEUyMDBFRDAwMDhBMDdEIC8qIFNsZWVwRGlzYWJs
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1
MjQ4MTgxOEUyMDBFRDAwMDhBMDdEIC8qIFNsZWVwRGlzYWJsZXIuY3BwICovOyB9OwogCQlDRDUy
NDgxQjE4RTIwMEVEMDAwOEEwN0QgLyogU2xlZXBEaXNhYmxlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1MjQ4MTkxOEUyMDBFRDAwMDhBMDdEIC8q
IFNsZWVwRGlzYWJsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQlDRDUyNUJBMzFFRTBCMTA3MDA3ODhERjUgLyogRm91ckNDLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTI1QkExMUVFMEIxMDcw
MDc4OERGNSAvKiBGb3VyQ0MuY3BwICovOyB9OworCQlDRDUyNUJBNDFFRTBCMTA3MDA3ODhERjUg
LyogRm91ckNDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDUyNUJBMjFFRTBCMTA3MDA3ODhERjUgLyogRm91ckNDLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0Q1MzkzRDMxNzVFMDE4NjAwQzA3MTIz
IC8qIEpTTWVtb3J5SW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDUzOTNEMTE3NUUwMTg2MDBDMDcxMjMgLyogSlNNZW1vcnlJbmZvLmNwcCAq
LzsgfTsKIAkJQ0Q1MzkzRDQxNzVFMDE4NjAwQzA3MTIzIC8qIEpTTWVtb3J5SW5mby5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1MzkzRDIxNzVFMDE4
NjAwQzA3MTIzIC8qIEpTTWVtb3J5SW5mby5oICovOyB9OwogCQlDRDU0QTc2MjE4MEY5RjcwMDBC
MDc2QzkgLyogQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1NEE3NjAxODBGOUY3MDAw
QjA3NkM5IC8qIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmNwcCAqLzsgfTsK
QEAgLTYzMDIsNiArNjMwNCw4IEBACiAJCUNERUE3NjM1MTQ2MEI3MUEwMDhCMzFGMSAvKiBDbG9j
ay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVB
NzYzMzE0NjBCNDYyMDA4QjMxRjEgLyogQ2xvY2suY3BwICovOyB9OwogCQlDREVBN0M4NDEyNzYy
MzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQTdDODIxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRl
ckZ1bGxTY3JlZW4uaCAqLzsgfTsKIAkJQ0RFQTdDODUxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRl
ckZ1bGxTY3JlZW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0RFQTdDODMxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uY3BwICov
OyB9OworCQlDREVDQTg5QTFFREY0NDdEMDBEQ0IwOEIgLyogQVZBc3NldFRyYWNrVXRpbGl0aWVz
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQ0E4
OTgxRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5tbSAqLzsgfTsKKwkJ
Q0RFQ0E4OUIxRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQ0E4OTkxRURGNDQ3
RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5oICovOyB9OwogCQlDREVFMzkzNzE3
OTc0MjU5MDAxRDc1ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVFMzkzNjE3OTc0MjU5MDAxRDc1ODAgLyog
UHVibGljVVJMTWFuYWdlci5jcHAgKi87IH07CiAJCUNERUY0RkQ3MTdFODVDOEYwMEFFRTI0QiAv
KiBHcmlkTGVuZ3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyogR3JpZExlbmd0aC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERUZBMjI4MUU3NjY5RTgw
MDBBRTk5QyAvKiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTExRTRCQkE0RDAwRTgxNTRBIC8qIFBsYXRmb3Jt
QXVkaW9EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTE0Njk0LDYgKzE0Njk4LDggQEAKIAkJQ0Q1MjA5RTUxQjBCRDlFMTAwNzcxODRFIC8q
IEhUTUxNZWRpYUVsZW1lbnRFbnVtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBIVE1MTWVkaWFFbGVtZW50RW51bXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0Q1MjQ4MTgxOEUyMDBFRDAwMDhBMDdEIC8qIFNsZWVwRGlzYWJsZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2xlZXBEaXNhYmxlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNENTI0ODE5MThFMjAwRUQwMDA4QTA3RCAvKiBTbGVlcERpc2Fi
bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNsZWVwRGlzYWJsZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q1MjVCQTExRUUwQjEwNzAwNzg4REY1IC8q
IEZvdXJDQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3VyQ0MuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDRDUyNUJBMjFFRTBCMTA3MDA3ODhERjUgLyogRm91ckNDLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEZvdXJDQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDUz
OTNDQjE3NURDQ0U2MDBDMDcxMjMgLyogTWVtb3J5SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNZW1vcnlJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNENTM5M0NDMTc1RENDRTYwMEMwNzEyMyAvKiBNZW1vcnlJbmZvLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBNZW1vcnlJbmZvLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0Q1MzkzRDExNzVFMDE4NjAwQzA3MTIzIC8qIEpTTWVtb3J5SW5mby5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lbW9yeUluZm8uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTQ4NzcsNiArMTQ4ODMsOCBAQAogCQlDREVBNzYzMzE0NjBCNDYy
MDA4QjMxRjEgLyogQ2xvY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ2xvY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVBN0M4MjEyNzYy
MzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW5kZXJGdWxsU2NyZWVuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNERUE3QzgzMTI3NjIzMDQwMEI4NDZERCAvKiBSZW5kZXJGdWxsU2NyZWVuLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckZ1bGxTY3JlZW4uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREVDQTg5ODFFREY0NDdEMDBEQ0IwOEIgLyog
QVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQVZBc3NldFRy
YWNrVXRpbGl0aWVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREVDQTg5OTFF
REY0NDdEMDBEQ0IwOEIgLyogQVZBc3NldFRyYWNrVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFWQXNzZXRUcmFja1V0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
REVFMzkzNjE3OTc0MjU5MDAxRDc1ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQdWJsaWNVUkxNYW5hZ2VyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFRTM5MzgxNzk3NDI3NDAwMUQ3NTgwIC8qIFVSTFJl
Z2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVSTFJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNERUY0RkQ2MTdFODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3RoLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyaWRMZW5ndGguaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTIzMzE3LDYgKzIzMzI1LDggQEAKIAkJCQk1MDFCQUFBODEzOTUw
RTJDMDBGN0FDRUIgLyogV2luZFJ1bGUuaCAqLywKIAkJCQkzNzk5MTk5NDEyMDBEREY0MDBFQTA0
MUMgLyogV09GRkZpbGVGb3JtYXQuY3BwICovLAogCQkJCTM3OTkxOTk1MTIwMERERjQwMEVBMDQx
QyAvKiBXT0ZGRmlsZUZvcm1hdC5oICovLAorCQkJCUNENTI1QkExMUVFMEIxMDcwMDc4OERGNSAv
KiBGb3VyQ0MuY3BwICovLAorCQkJCUNENTI1QkEyMUVFMEIxMDcwMDc4OERGNSAvKiBGb3VyQ0Mu
aCAqLywKIAkJCSk7CiAJCQlwYXRoID0gZ3JhcGhpY3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpAQCAtMjQ1MTQsNiArMjQ1MjQsOCBAQAogCQkJCUNEOEI1QTQwMTgwRDE0OUEwMDhCOEU2
NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSAqLywKIAkJCQlDRDdF
MDUyMDE2NTFBODQxMDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLmggKi8sCiAJ
CQkJQ0Q3RTA1MjExNjUxQTg0MTAwQzEyMDFGIC8qIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5t
bSAqLywKKwkJCQlDREVDQTg5ODFFREY0NDdEMDBEQ0IwOEIgLyogQVZBc3NldFRyYWNrVXRpbGl0
aWVzLm1tICovLAorCQkJCUNERUNBODk5MUVERjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0VHJhY2tV
dGlsaXRpZXMuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gb2JqYzsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CkBAIC0yODI1NCw2ICsyODI2Niw3IEBACiAJCQkJQUE3RkVFQTcxNkE0RTZGMzAw
NEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBQTdGRUVBOTE2QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXNWb2ljZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM4MjQzMjkwRDBDRThBMjAwNDYwQzhGIC8qIEpTU1FMRXJyb3Iu
aCBpbiBIZWFkZXJzICovLAorCQkJCUNERUNBODlCMUVERjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0
VHJhY2tVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUI1MjVBOTY1MTFDQTIzNDAwMDNB
MjNBOCAvKiBKU1NRTEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFODJGRUQwQ0FC
MDdFRTAwMjIzN0FFIC8qIEpTU1FMUmVzdWx0U2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUZF
MTE5QTBDQkZGQ0M0MDAzMDE3RkEgLyogSlNTUUxSZXN1bHRTZXRSb3dMaXN0LmggaW4gSGVhZGVy
cyAqLywKQEAgLTI5Mzg2LDYgKzI5Mzk5LDcgQEAKIAkJCQkwRkI4ODkwQTE2N0QyRkExMDAxMENE
QTUgLyogU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQUZF
OEQwMTlDQjg2NzIwMDBGNTZEOCAvKiBTY3JvbGxMYXRjaGluZ1N0YXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGNDc4NzU1NDE5OTgzQUZGMDAyNEEyODcgLyogU2Nyb2xsU25hcEFuaW1hdG9yU3Rh
dGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUNENTI1QkE0MUVFMEIxMDcwMDc4OERGNSAvKiBGb3Vy
Q0MuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0NjcyOTI4MUUwREU2ODUwMEFDQzNEOCAvKiBTY3Jv
bGxTbmFwT2Zmc2V0c0luZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQzU3OTVEMURBNUMzMDEw
MDZGQUNBOCAvKiBTY3JvbGxUb09wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQzA5Qzg2
MEIwNjU3QUEwMDVBQkQ0RCAvKiBTY3JvbGxUeXBlcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTIz
Miw2ICszMTI0Niw3IEBACiAJCQkJQThDNEE4MDgwOUQ1NjMyNzAwMDNBQzhEIC8qIEVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjVCN0ExNzAxN0MxMEFBODAwRTRBQTBBIC8qIEVsZW1l
bnREYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTRGRkMwMjJEMTY0M0I3MjYwMDRFMTYzOCAv
KiBFbGVtZW50UmFyZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q1MjVCQTMxRUUwQjEw
NzAwNzg4REY1IC8qIEZvdXJDQy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQkRCNjE5QjE2RDYw
MzJBMDBCQjMzOTQgLyogRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQThDRkY2Q0IwQTE1NjFDRDAwMEE0MjM0IC8qIEVsbGlwc2lzQm94LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUY1NUIzREJCMTI1MUYxMkQwMDNFRjI2OSAvKiBFbWFpbElucHV0VHlwZS5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTMzMjI1LDYgKzMzMjQwLDcgQEAKIAkJCQk5MzFDQkQwQzE2MUE0
NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5nU3RhdGVOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTkzRUY3RDU1MTk1NEYxMzkwMERGQjcxRCAvKiBTY3JvbGxpbmdTdGF0ZU5vZGUubW0gaW4gU291
cmNlcyAqLywKIAkJCQkwRkVBM0U4MzE5MUIzMUJGMDAwRjFCNTUgLyogU2Nyb2xsaW5nU3RhdGVP
dmVyZmxvd1Njcm9sbGluZ05vZGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RFQ0E4OUExRURG
NDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTkzMUNCRDBFMTYxQTQ0RTkwMEU0Qzg3NCAvKiBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCODg5MEUxNjdEMzAxNjAwMTBDREE1IC8qIFNj
cm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzFDQkQxMDE2
MUE0NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYTlkMTc0MDgyOWMx
MGRmY2NhYzYxM2ViMjMxNmE1YmY5YmFlYWI4Zi4uY2NiMGI5NDgwYmJhNTJjYjQ2Y2I1ZjA4OGQ4
NjQzNmQ0ODFhNjZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CkBAIC00MzIwLDYgKzQzMjAsOCBAQCBVUkwgSFRNTE1lZGlhRWxlbWVudDo6c2VsZWN0TmV4dFNv
dXJjZUNoaWxkKENvbnRlbnRUeXBlKiBjb250ZW50VHlwZSwgU3RyaW5nKiBrZQogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCiAgICAgICAgICAgICBwYXJhbWV0ZXJzLmlzTWVkaWFTdHJlYW0gPSBt
ZWRpYVVSTC5wcm90b2NvbElzKG1lZGlhU3RyZWFtQmxvYlByb3RvY29sKTsKICNlbmRpZgorICAg
ICAgICAgICAgcGFyYW1ldGVycy5jb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQg
PSBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpOworCiAgICAgICAg
ICAgICBpZiAoIU1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUocGFyYW1ldGVycywgdGhpcykpCiAg
ICAgICAgICAgICAgICAgZ290byBDaGVja0FnYWluOwogICAgICAgICB9CkBAIC02NjU3LDYgKzY2
NTksMTEgQEAgZG91YmxlIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyUmVxdWVzdGVkUGxh
eWJhY2tSYXRlKCkgY29uc3QKICAgICByZXR1cm4gcG90ZW50aWFsbHlQbGF5aW5nKCkgPyByZXF1
ZXN0ZWRQbGF5YmFja1JhdGUoKSA6IDA7CiB9CiAKK2NvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4m
IEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBw
b3J0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKS5zZXR0aW5ncygpLm1lZGlhQ29u
dGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCk7Cit9CisKICNpZiBVU0UoR1NUUkVB
TUVSKQogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5z
KGNvbnN0IFN0cmluZyYgZGV0YWlscywgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgTWVkaWFQ
bGF5ZXJSZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2smIGNhbGxiYWNrKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCBhNDkwYmQ3N2Q0ZTlhNzI0
YWQ0MmIyZWNlNmI2MjU5N2JkZjZmYmU1Li5mZjQ1OGM1NWVkNGUyZDlmZmQ5ODZkOGEyOGI1NzIx
YTMyZGNkYjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNjgw
LDYgKzY4MCw3IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIG1lZGlhUGxheWVyUmVxdWVzdGVkUGxh
eWJhY2tSYXRlKCkgY29uc3QgZmluYWw7CiAgICAgVmlkZW9GdWxsc2NyZWVuTW9kZSBtZWRpYVBs
YXllckZ1bGxzY3JlZW5Nb2RlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZnVsbHNjcmVlbk1vZGUo
KTsgfQogICAgIGJvb2wgbWVkaWFQbGF5ZXJTaG91bGREaXNhYmxlU2xlZXAoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBzaG91bGREaXNhYmxlU2xlZXAoKSA9PSBTbGVlcFR5cGU6OkRpc3BsYXk7IH0K
KyAgICBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmlu
Z0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0IGZpbmFsOwogCiAjaWYgVVNFKEdTVFJFQU1FUikKICAg
ICB2b2lkIHJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnMoY29uc3QgU3RyaW5nJiBkZXRhaWxz
LCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlz
c2luZ1BsdWdpbnNDYWxsYmFjayYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRl
eCAzYjQxMzQ0YmVkZjRjOWVhOGZhZTdkZWQwNjk5YjM3NDNlODc5ZmY3Li5mNjFkYWQ2NjYxNDBi
M2U4NzBhNTc5Y2M3Y2I5ZmEwM2Y4MGQ4OGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApA
QCAtNzg5LDQgKzc4OSwxNSBAQCBib29sIFNldHRpbmdzOjphbGxvd3NBbnlTU0xDZXJ0aWZpY2F0
ZSgpCiAgICAgcmV0dXJuIGdBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZTsKIH0KIAordm9pZCBTZXR0
aW5nczo6c2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoY29uc3Qg
U3RyaW5nJiBjb250ZW50VHlwZXMpCit7CisgICAgbV9tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmlu
Z0hhcmR3YXJlU3VwcG9ydCA9IGNvbnRlbnRUeXBlcy5zcGxpdCgiOiIpLm1hcChDb250ZW50VHlw
ZTo6Y3JlYXRlKTsKK30KKwordm9pZCBTZXR0aW5nczo6c2V0TWVkaWFDb250ZW50VHlwZXNSZXF1
aXJpbmdIYXJkd2FyZVN1cHBvcnQoY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgY29udGVudFR5
cGVzKQoreworICAgIG1fbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQg
PSBjb250ZW50VHlwZXM7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5oCmluZGV4IGQ5NWI2YWU0ZTA4YzYyNjdmYTgzZDdiZmQzNGRhOGRmNjU4NGViZmUu
LjkxMTgzZTgxNzhlNGVlZWQxYTAwYzBiNjQyZWFmZjI2MjgyNzVkYjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ2xp
cGJvYXJkQWNjZXNzUG9saWN5LmgiCisjaW5jbHVkZSAiQ29udGVudFR5cGUuaCIKICNpbmNsdWRl
ICJFZGl0aW5nQmVoYXZpb3JUeXBlcy5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRl
ICJTZWN1cml0eU9yaWdpbi5oIgpAQCAtMzI1LDYgKzMyNiwxMCBAQCBwdWJsaWM6CiAgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoYm9vbCk7
CiAgICAgc3RhdGljIGJvb2wgYWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoKTsKIAorICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBv
cnQoY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoY29uc3QgU3RyaW5n
Jik7CisgICAgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgbWVkaWFDb250ZW50VHlwZXNSZXF1
aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdCB7IHJldHVybiBtX21lZGlhQ29udGVudFR5cGVz
UmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgU2V0
dGluZ3MoUGFnZSopOwogCkBAIC00MjQsNiArNDI5LDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMg
Ym9vbCBnTG93UG93ZXJWaWRlb0F1ZGlvQnVmZmVyU2l6ZUVuYWJsZWQ7CiAgICAgc3RhdGljIGJv
b2wgZ1Jlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkRW5hYmxlZDsKICAgICBzdGF0aWMgYm9v
bCBnQWxsb3dzQW55U1NMQ2VydGlmaWNhdGU7CisKKyAgICBWZWN0b3I8Q29udGVudFR5cGU+IG1f
bWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7CiB9OwogCiBpbmxpbmUg
Ym9vbCBTZXR0aW5nczo6aXNQb3N0TG9hZENQVVVzYWdlTWVhc3VyZW1lbnRFbmFibGVkKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRlbnRUeXBlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50VHlwZS5oCmluZGV4IGQ4ZDdhMDU2ZGIwMWJjM2YwYzJk
MGI5NjhhZTExYTY5MzgxNmNiMTkuLmYzMWFjNTBhMDg3NTNjZTdhODAxZDg3NWZiM2IyMTE4Y2Rk
ZDFjNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRlbnRUeXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGVudFR5cGUuaApAQCAtMzEsMTggKzMx
LDIwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIENvbnRlbnRUeXBlIHsK
LSAgICBwdWJsaWM6Ci0gICAgICAgIGV4cGxpY2l0IENvbnRlbnRUeXBlKGNvbnN0IFN0cmluZyYg
dHlwZSk7Ci0gICAgICAgIENvbnRlbnRUeXBlKCkgPSBkZWZhdWx0OworY2xhc3MgQ29udGVudFR5
cGUgeworcHVibGljOgorICAgIHN0YXRpYyBDb250ZW50VHlwZSBjcmVhdGUoY29uc3QgU3RyaW5n
JiB0eXBlKSB7IHJldHVybiBDb250ZW50VHlwZSh0eXBlKTsgfQorICAgIGV4cGxpY2l0IENvbnRl
bnRUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSk7CisgICAgQ29udGVudFR5cGUoKSA9IGRlZmF1bHQ7
CiAKLSAgICAgICAgU3RyaW5nIHBhcmFtZXRlcihjb25zdCBTdHJpbmcmIHBhcmFtZXRlck5hbWUp
IGNvbnN0OwotICAgICAgICBTdHJpbmcgdHlwZSgpIGNvbnN0OwotICAgICAgICBWZWN0b3I8U3Ry
aW5nPiBjb2RlY3MoKSBjb25zdDsKLSAgICAgICAgY29uc3QgU3RyaW5nJiByYXcoKSBjb25zdCB7
IHJldHVybiBtX3R5cGU7IH0KLSAgICBwcml2YXRlOgotICAgICAgICBTdHJpbmcgbV90eXBlOwot
ICAgIH07CisgICAgU3RyaW5nIHBhcmFtZXRlcihjb25zdCBTdHJpbmcmIHBhcmFtZXRlck5hbWUp
IGNvbnN0OworICAgIFN0cmluZyB0eXBlKCkgY29uc3Q7CisgICAgVmVjdG9yPFN0cmluZz4gY29k
ZWNzKCkgY29uc3Q7CisgICAgY29uc3QgU3RyaW5nJiByYXcoKSBjb25zdCB7IHJldHVybiBtX3R5
cGU7IH0KKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3R5cGUuaXNFbXB0eSgp
OyB9Citwcml2YXRlOgorICAgIFN0cmluZyBtX3R5cGU7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVv
VG9vbGJveFNvZnRMaW5rLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVv
VG9vbGJveFNvZnRMaW5rLmNwcAppbmRleCAyYzJiNjhkZDQwOTY3ODc2ODFjMWU0MjFjMWQzNzYw
Mjk5NmMyNDliLi5kOWZjMDQ5MjlkODUxYWEyZjVhOThlZGIyMDRhNDM2MWY1YzA3ODc2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb1Rvb2xib3hTb2Z0TGlu
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9Ub29sYm94U29m
dExpbmsuY3BwCkBAIC0zOCw1ICszOCw2IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFdlYkNvcmUsIFZpZGVvVG9vbGJveCwgVlREZWNvbXByZXNzaW9uU2Vzc2lvbldhaXRGCiAjZGVm
aW5lIFZURGVjb21wcmVzc2lvblNlc3Npb25XYWl0Rm9yQXN5bmNocm9ub3VzRnJhbWVzIHNvZnRM
aW5rX1ZpZGVvVG9vbGJveF9WVERlY29tcHJlc3Npb25TZXNzaW9uV2FpdEZvckFzeW5jaHJvbm91
c0ZyYW1lcwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgVmlkZW9Ub29s
Ym94LCBWVERlY29tcHJlc3Npb25TZXNzaW9uRGVjb2RlRnJhbWUsIE9TU3RhdHVzLCAoVlREZWNv
bXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZm
ZXIsIFZURGVjb2RlRnJhbWVGbGFncyBkZWNvZGVGbGFncywgdm9pZCogc291cmNlRnJhbWVSZWZD
b24sIFZURGVjb2RlSW5mb0ZsYWdzKiBpbmZvRmxhZ3NPdXQpLCAoc2Vzc2lvbiwgc2FtcGxlQnVm
ZmVyLCBkZWNvZGVGbGFncywgc291cmNlRnJhbWVSZWZDb24sIGluZm9GbGFnc091dCkpCiAjZGVm
aW5lIFZURGVjb21wcmVzc2lvblNlc3Npb25EZWNvZGVGcmFtZSBzb2Z0TGlua19WaWRlb1Rvb2xi
b3hfVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1lCitTT0ZUX0xJTktfRlVOQ1RJT05f
TUFZX0ZBSUxfRk9SX1NPVVJDRShXZWJDb3JlLCBWaWRlb1Rvb2xib3gsIFZUSXNIYXJkd2FyZURl
Y29kZVN1cHBvcnRlZCwgQm9vbGVhbiwgKENNVmlkZW9Db2RlY1R5cGUgY29kZWNUeXBlKSwgKGNv
ZGVjVHlwZSkpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBWaWRlb1Rv
b2xib3gsIGtWVFZpZGVvRGVjb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVy
YXRlZFZpZGVvRGVjb2RlciwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtWVFZpZGVvRGVjb2RlclNw
ZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRGVjb2RlciBnZXRfVmlk
ZW9Ub29sYm94X2tWVFZpZGVvRGVjb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2Nl
bGVyYXRlZFZpZGVvRGVjb2RlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9WaWRlb1Rvb2xib3hTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvVmlkZW9Ub29sYm94U29mdExpbmsuaAppbmRleCBmYjAwOThlYWM4MTg2NDJmMzY0YTc1
YzE0YjE4NmM1NjNlNDMzYTk3Li5jYzc1MzgzZmI0MzdiODAyNTJkMWI3OGE1OWM3NTM4NjI5ZDhj
NzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb1Rvb2xi
b3hTb2Z0TGluay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvVG9v
bGJveFNvZnRMaW5rLmgKQEAgLTM4LDUgKzM4LDcgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIoV2ViQ29yZSwgVmlkZW9Ub29sYm94LCBWVERlY29tcHJlc3Npb25TZXNzaW9uV2FpdEYK
ICNkZWZpbmUgVlREZWNvbXByZXNzaW9uU2Vzc2lvbldhaXRGb3JBc3luY2hyb25vdXNGcmFtZXMg
c29mdExpbmtfVmlkZW9Ub29sYm94X1ZURGVjb21wcmVzc2lvblNlc3Npb25XYWl0Rm9yQXN5bmNo
cm9ub3VzRnJhbWVzCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBWaWRl
b1Rvb2xib3gsIFZURGVjb21wcmVzc2lvblNlc3Npb25EZWNvZGVGcmFtZSwgT1NTdGF0dXMsIChW
VERlY29tcHJlc3Npb25TZXNzaW9uUmVmIHNlc3Npb24sIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBs
ZUJ1ZmZlciwgVlREZWNvZGVGcmFtZUZsYWdzIGRlY29kZUZsYWdzLCB2b2lkKiBzb3VyY2VGcmFt
ZVJlZkNvbiwgVlREZWNvZGVJbmZvRmxhZ3MqIGluZm9GbGFnc091dCksIChzZXNzaW9uLCBzYW1w
bGVCdWZmZXIsIGRlY29kZUZsYWdzLCBzb3VyY2VGcmFtZVJlZkNvbiwgaW5mb0ZsYWdzT3V0KSkK
ICNkZWZpbmUgVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1lIHNvZnRMaW5rX1ZpZGVv
VG9vbGJveF9WVERlY29tcHJlc3Npb25TZXNzaW9uRGVjb2RlRnJhbWUKK1NPRlRfTElOS19GVU5D
VElPTl9NQVlfRkFJTF9GT1JfSEVBREVSKFdlYkNvcmUsIFZpZGVvVG9vbGJveCwgVlRJc0hhcmR3
YXJlRGVjb2RlU3VwcG9ydGVkLCBCb29sZWFuLCAoQ01WaWRlb0NvZGVjVHlwZSBjb2RlY1R5cGUp
LCAoY29kZWNUeXBlKSkKKyNkZWZpbmUgVlRJc0hhcmR3YXJlRGVjb2RlU3VwcG9ydGVkIHNvZnRM
aW5rX1ZpZGVvVG9vbGJveF9WVElzSGFyZHdhcmVEZWNvZGVTdXBwb3J0ZWQKIFNPRlRfTElOS19D
T05TVEFOVF9GT1JfSEVBREVSKFdlYkNvcmUsIFZpZGVvVG9vbGJveCwga1ZUVmlkZW9EZWNvZGVy
U3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9EZWNvZGVyLCBDRlN0
cmluZ1JlZikKICNkZWZpbmUga1ZUVmlkZW9EZWNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJk
d2FyZUFjY2VsZXJhdGVkVmlkZW9EZWNvZGVyIGdldF9WaWRlb1Rvb2xib3hfa1ZUVmlkZW9EZWNv
ZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9EZWNvZGVyKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjYwY2UyZTI5OWRlMGM4NTViNThmMTk1MTdjNjEzMDgwMjAxMGI0MjMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuY3BwCkBAIC0wLDAg
KzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRm91
ckNDLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RkOjpvcHRpb25hbDxGb3VyQ0M+IEZv
dXJDQzo6ZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZ1ZhbHVlKQoreworICAgIGF1dG8g
YXNjaWlWYWx1ZSA9IHN0cmluZ1ZhbHVlLmFzY2lpKCk7CisgICAgaWYgKGFzY2lpVmFsdWUubGVu
Z3RoKCkgIT0gNCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGNvbnN0IGNo
YXIqIGRhdGEgPSBhc2NpaVZhbHVlLmRhdGEoKTsKKyAgICBBU1NFUlQoYXNjaWlWYWx1ZS5kYXRh
KCkpOworICAgIHVpbnQzMl90IHZhbHVlID0gZGF0YVszXSA8PCAyNCB8IGRhdGFbMl0gPDwgMTYg
fCBkYXRhWzFdIDw8IDggfCBkYXRhWzBdOworICAgIHJldHVybiBGb3VyQ0ModmFsdWUpOworfQor
CitTdHJpbmcgRm91ckNDOjp0b1N0cmluZygpIGNvbnN0Cit7CisgICAgVmVjdG9yPExDaGFyLCA0
PiBkYXRhID0geworICAgICAgICBMQ2hhcih2YWx1ZSA+PiAyNCksCisgICAgICAgIExDaGFyKCh2
YWx1ZSA+PiAxNikgJiAweEZGKSwKKyAgICAgICAgTENoYXIoKHZhbHVlID4+IDgpICYgMHhGRiks
CisgICAgICAgIExDaGFyKHZhbHVlICYgMHhGRiksCisgICAgfTsKKworICAgIHJldHVybiBTdHJp
bmc6OmFkb3B0KFdURk1vdmUoZGF0YSkpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvdXJDQy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxMzdhOGMzNmYyNzI5NWVhMTI2MzZjZDQz
NWZiOGRjMzhhNDMyNjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb3VyQ0MuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitzdHJ1Y3QgRm91ckNDIHsKKyAgICBXRUJDT1JFX0VYUE9SVCBGb3VyQ0ModWlu
dDMyX3QgdmFsdWUpIDogdmFsdWUodmFsdWUpIHsgfQorCisgICAgU3RyaW5nIHRvU3RyaW5nKCkg
Y29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Rm91ckNDPiBm
cm9tU3RyaW5nKGNvbnN0IFN0cmluZyYpOworCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZv
dXJDQyYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIHZhbHVlID09IG90aGVyLnZhbHVlOyB9CisKKyAg
ICB1aW50MzJfdCB2YWx1ZTsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCBhODhhZDVmZTk2M2Y3OWQ0M2UwZWQzYjY5
ZGYyZGU4MDJjOWY0ZDM2Li5kYTA5YmJhZmE5OTJjZjNjNTljNmFkYmMxZDlkYWY5MWU2YjllZmZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
Y3BwCkBAIC0xNjEsNiArMTYxLDEyIEBAIHB1YmxpYzoKICAgICBib29sIGhhc1NpbmdsZVNlY3Vy
aXR5T3JpZ2luKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAorY29uc3Qg
VmVjdG9yPENvbnRlbnRUeXBlPiYgTWVkaWFQbGF5ZXJDbGllbnQ6Om1lZGlhQ29udGVudFR5cGVz
UmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkgY29uc3QKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8VmVjdG9yPENvbnRlbnRUeXBlPj4gY29udGVudFR5cGVzOworICAgIHJldHVybiBjb250
ZW50VHlwZXM7Cit9CisKIHN0YXRpYyBNZWRpYVBsYXllckNsaWVudCYgbnVsbE1lZGlhUGxheWVy
Q2xpZW50KCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TWVkaWFQbGF5ZXJDbGllbnQ+
IGNsaWVudDsKQEAgLTE0NjQsNiArMTQ3MCwxMSBAQCBib29sIE1lZGlhUGxheWVyOjpzaG91bGRE
aXNhYmxlU2xlZXAoKSBjb25zdAogICAgIHJldHVybiBjbGllbnQoKS5tZWRpYVBsYXllclNob3Vs
ZERpc2FibGVTbGVlcCgpOwogfQogCitjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBNZWRpYVBs
YXllcjo6bWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdAor
eworICAgIHJldHVybiBjbGllbnQoKS5tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJl
U3VwcG9ydCgpOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggOTY1YjdmYTFiYTJkNzc4OGY3OWFjNThiMGU5
M2I3OTUwZjgzOGFmZi4uMjFhZjRmZmI2Mzk1N2IxMzIxMzRkMmRmN2NhMmZkYzU3ZDUxMTMwMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBA
IC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlczNELmgiCiAKICNpbmNsdWRl
ICJBdWRpb1RyYWNrUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAjaW5jbHVk
ZSAiTGVnYWN5Q0RNU2Vzc2lvbi5oIgogI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1ByaXZhdGUu
aCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCkBAIC0xMTQsNiArMTE1LDcgQEAgc3RydWN0IE1lZGlh
RW5naW5lU3VwcG9ydFBhcmFtZXRlcnMgewogICAgIFVSTCB1cmw7CiAgICAgYm9vbCBpc01lZGlh
U291cmNlIHsgZmFsc2UgfTsKICAgICBib29sIGlzTWVkaWFTdHJlYW0geyBmYWxzZSB9OworICAg
IFZlY3RvcjxDb250ZW50VHlwZT4gY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0
OwogfTsKIAogZXh0ZXJuIGNvbnN0IFBsYXRmb3JtTWVkaWEgTm9QbGF0Zm9ybU1lZGlhOwpAQCAt
MjczLDYgKzI3NSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdmlydHVhbCBib29sIG1lZGlh
UGxheWVyU2hvdWxkRGlzYWJsZVNsZWVwKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIGNvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4mIG1lZGlhQ29udGVudFR5cGVzUmVxdWly
aW5nSGFyZHdhcmVTdXBwb3J0KCkgY29uc3Q7CiB9OwogCiBjbGFzcyBNZWRpYVBsYXllclN1cHBv
cnRzVHlwZUNsaWVudCB7CkBAIC01ODcsNiArNTkwLDggQEAgcHVibGljOgogICAgIGNvbnN0IFN0
cmluZyYgY29udGVudFR5cGVDb2RlY3MoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRUeXBlQ29k
ZWNzOyB9CiAgICAgYm9vbCBjb250ZW50TUlNRVR5cGVXYXNJbmZlcnJlZEZyb21FeHRlbnNpb24o
KSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRNSU1FVHlwZVdhc0luZmVycmVkRnJvbUV4dGVuc2lv
bjsgfQogCisgICAgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgbWVkaWFDb250ZW50VHlwZXNS
ZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBNZWRpYVBs
YXllcihNZWRpYVBsYXllckNsaWVudCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggNzc2N2MxNDg1ZmNjNTFlYWE5MmI0
ZjdlNTA2YzNhZGI2NTkwYTFlOC4uMGFkMjk4YjA1ZmMwYTMwNzA1YjFlYjgwMzE2MDhlYjQ5Zjhm
MmYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb24uaApAQCAtMjk2LDYgKzI5Niw3IEBAIHByb3RlY3RlZDoKICAgICBjb25zdCBTdHJp
bmcmIGFzc2V0VVJMKCkgY29uc3QgeyByZXR1cm4gbV9hc3NldFVSTDsgfQogCiAgICAgTWVkaWFQ
bGF5ZXIqIHBsYXllcigpIHsgcmV0dXJuIG1fcGxheWVyOyB9CisgICAgY29uc3QgTWVkaWFQbGF5
ZXIqIHBsYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcGxheWVyOyB9CiAKICAgICBTdHJpbmcgZW5n
aW5lRGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiQVZGb3VuZGF0aW9uIjsg
fQogICAgIGxvbmcgcGxhdGZvcm1FcnJvckNvZGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBh
c3NldEVycm9yQ29kZSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0VHJhY2tVdGlsaXRpZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRUcmFj
a1V0aWxpdGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiNTc2Y2VlNTNlMGQ1YTY2MTRmOGQyNzlhMDIwMjQw
YzM5MmNmNmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0VHJhY2tVdGlsaXRpZXMuaApAQCAtMCwwICsx
LDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8pICYm
IFVTRShBVkZPVU5EQVRJT04pCisKKyNpbmNsdWRlICJDb250ZW50VHlwZS5oIgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKworT0JKQ19DTEFTUyBBVkFzc2V0VHJhY2s7CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworYm9vbCBhc3NldFRyYWNrTWVldHNIYXJkd2FyZURlY29kZVJlcXVpcmVtZW50
cyhBVkFzc2V0VHJhY2sgKiwgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgY29udGVudFR5cGVz
UmVxdWlyaW5nSGFyZHdhcmVEZWNvZGUpOworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldFRy
YWNrVXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiYmJkMGY1
MjBjM2RlYjk4MjhkNTAwN2JiYTI2YmY4NmVlYzk3NWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0VHJh
Y2tVdGlsaXRpZXMubW0KQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNv
bmZpZy5oIgorI2ltcG9ydCAiQVZBc3NldFRyYWNrVXRpbGl0aWVzLmgiCisKKyNpZiBFTkFCTEUo
VklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCisKKyNpbXBvcnQgIkZvdXJDQy5oIgorI2ltcG9y
dCA8QVZGb3VuZGF0aW9uL0FWQXNzZXRUcmFjay5oPgorCisjaW1wb3J0ICJDb3JlTWVkaWFTb2Z0
TGluay5oIgorI2ltcG9ydCAiVmlkZW9Ub29sYm94U29mdExpbmsuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitib29sIGFzc2V0VHJhY2tNZWV0c0hhcmR3YXJlRGVjb2RlUmVxdWlyZW1lbnRz
KEFWQXNzZXRUcmFjayAqdHJhY2ssIGNvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4mIGNvbnRlbnRU
eXBlc1JlcXVpcmluZ0hhcmR3YXJlRGVjb2RlKQoreworICAgIC8vIElmIHdlIGNhbid0IGRldGVy
bWluZSB3aGV0aGVyIGEgY29kZWMgaGFzIGhhcmR3YXJlIHN1cHBvcnQgb3Igbm90LCBkZWZhdWx0
IHRvIHRydWUuCisgICAgaWYgKCFjYW5Mb2FkX1ZpZGVvVG9vbGJveF9WVElzSGFyZHdhcmVEZWNv
ZGVTdXBwb3J0ZWQoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoY29udGVudFR5
cGVzUmVxdWlyaW5nSGFyZHdhcmVEZWNvZGUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKworICAgIFZlY3RvcjxGb3VyQ0M+IGhhcmR3YXJlQ29kZWNzOworICAgIGZvciAoYXV0byYg
Y29udGVudFR5cGUgOiBjb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZURlY29kZSkgeworICAg
ICAgICBhdXRvIGNvZGVjU3RyaW5ncyA9IGNvbnRlbnRUeXBlLmNvZGVjcygpOworICAgICAgICBm
b3IgKGF1dG8mIGNvZGVjU3RyaW5nIDogY29kZWNTdHJpbmdzKSB7CisgICAgICAgICAgICBhdXRv
IGNvZGVjSWRlbnRpZmllciA9IEZvdXJDQzo6ZnJvbVN0cmluZyhjb2RlY1N0cmluZyk7CisgICAg
ICAgICAgICBpZiAoY29kZWNJZGVudGlmaWVyKQorICAgICAgICAgICAgICAgIGhhcmR3YXJlQ29k
ZWNzLmFwcGVuZChjb2RlY0lkZW50aWZpZXIudmFsdWUoKSk7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBmb3IgKE5TVUludGVnZXIgaSA9IDAsIGNvdW50ID0gdHJhY2suZm9ybWF0RGVzY3JpcHRp
b25zLmNvdW50OyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICBDTUZvcm1hdERlc2NyaXB0aW9u
UmVmIGRlc2NyaXB0aW9uID0gKENNRm9ybWF0RGVzY3JpcHRpb25SZWYpdHJhY2suZm9ybWF0RGVz
Y3JpcHRpb25zW2ldOworICAgICAgICBpZiAoQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlw
ZShkZXNjcmlwdGlvbikgIT0ga0NNTWVkaWFUeXBlX1ZpZGVvKQorICAgICAgICAgICAgY29udGlu
dWU7CisKKyAgICAgICAgQ01WaWRlb0NvZGVjVHlwZSBjb2RlYyA9IENNRm9ybWF0RGVzY3JpcHRp
b25HZXRNZWRpYVN1YlR5cGUoZGVzY3JpcHRpb24pOworICAgICAgICBpZiAoIWhhcmR3YXJlQ29k
ZWNzLmNvbnRhaW5zKEZvdXJDQyhjb2RlYykpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAg
ICAgICAgaWYgKCFWVElzSGFyZHdhcmVEZWNvZGVTdXBwb3J0ZWQoY29kZWMpKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCAzOGM5MjcwOWUxZGQwNDBiNzcxN2VmYjUzOTFi
YjE5NTQ3MTYxOGI2Li5hYjE1ZjY0MmVlZGRiNDQ4MTdjOTFiZTdmMWEyMjRhZmNkZWQxNzJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC00MjQsNiArNDI0LDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fY2FjaGVkQ2FuUGxheUZhc3RGb3J3YXJkOwogICAgIGJvb2wgbV9jYWNoZWRDYW5QbGF5
RmFzdFJldmVyc2U7CiAgICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKKyAgICBtdXRhYmxlIHN0
ZDo6b3B0aW9uYWw8Ym9vbD4gbV90cmFja3NBcmVQbGF5YWJsZTsKICNpZiBFTkFCTEUoV0lSRUxF
U1NfUExBWUJBQ0tfVEFSR0VUKQogICAgIG11dGFibGUgYm9vbCBtX2FsbG93c1dpcmVsZXNzVmlk
ZW9QbGF5YmFjazsKICAgICBib29sIG1fc2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQgeyBmYWxz
ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggZDA3YTEyNDk2NjJkYjhmODlmNTNkYjRm
N2Q1YWEzOTc5ZWViMTQ1Mi4uOTIzZmRiOTQxNWNiMzg4Yjk1YzkwMTliOTVkMTVhYzY0MjY4NTYz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFC
TEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCiAKKyNpbXBvcnQgIkFWQXNzZXRUcmFja1V0
aWxpdGllcy5oIgogI2ltcG9ydCAiQVZGb3VuZGF0aW9uTUlNRVR5cGVDYWNoZS5oIgogI2ltcG9y
dCAiQVZGb3VuZGF0aW9uU1BJLmgiCiAjaW1wb3J0ICJBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBs
LmgiCkBAIC0xMTQ2LDcgKzExNDcsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OmNoZWNrUGxheWFiaWxpdHkoKQogICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNoZWNrUGxheWFiaWxpdHkoJXApIiwgdGhpcyk7CiAg
ICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKIAotICAgIFttX2F2QXNzZXQuZ2V0
KCkgbG9hZFZhbHVlc0FzeW5jaHJvbm91c2x5Rm9yS2V5czpbTlNBcnJheSBhcnJheVdpdGhPYmpl
Y3Q6QCJwbGF5YWJsZSJdIGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAgW21fYXZBc3NldC5nZXQo
KSBsb2FkVmFsdWVzQXN5bmNocm9ub3VzbHlGb3JLZXlzOltOU0FycmF5IGFycmF5V2l0aE9iamVj
dHM6QCJwbGF5YWJsZSIsIEAidHJhY2tzIiwgbmlsXSBjb21wbGV0aW9uSGFuZGxlcjpeewogICAg
ICAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrVGhpc10gewogICAgICAgICAgICAgaWYgKHdlYWtU
aGlzKQogICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5zY2hlZHVsZU1haW5UaHJlYWROb3RpZmlj
YXRpb24oTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpOb3RpZmljYXRpb246OkFzc2V0
UGxheWFiaWxpdHlLbm93bik7CkBAIC0xNTg5LDcgKzE1OTAsMTcgQEAgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uOjpBc3NldFN0YXR1cyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjoKICAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckFWQXNzZXRTdGF0dXNDYW5j
ZWxsZWQ7IC8vIExvYWRpbmcgb2YgYXQgbGVhc3Qgb25lIGtleSB3YXMgY2FuY2VsbGVkLgogICAg
IH0KIAotICAgIGlmIChbW21fYXZBc3NldC5nZXQoKSB2YWx1ZUZvcktleTpAInBsYXlhYmxlIl0g
Ym9vbFZhbHVlXSkKKyAgICBpZiAoIW1fdHJhY2tzQXJlUGxheWFibGUpIHsKKyAgICAgICAgbV90
cmFja3NBcmVQbGF5YWJsZSA9IHRydWU7CisgICAgICAgIGZvciAoQVZBc3NldFRyYWNrICp0cmFj
ayBpbiBbbV9hdkFzc2V0IHRyYWNrc10pIHsKKyAgICAgICAgICAgIGlmICghYXNzZXRUcmFja01l
ZXRzSGFyZHdhcmVEZWNvZGVSZXF1aXJlbWVudHModHJhY2ssIHBsYXllcigpLT5tZWRpYUNvbnRl
bnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpKSkgeworICAgICAgICAgICAgICAgIG1f
dHJhY2tzQXJlUGxheWFibGUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChbW21fYXZBc3NldC5nZXQoKSB2
YWx1ZUZvcktleTpAInBsYXlhYmxlIl0gYm9vbFZhbHVlXSAmJiBtX3RyYWNrc0FyZVBsYXlhYmxl
LnZhbHVlKCkpCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckFWQXNzZXRTdGF0dXNQbGF5YWJs
ZTsKIAogICAgIHJldHVybiBNZWRpYVBsYXllckFWQXNzZXRTdGF0dXNMb2FkZWQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9T
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmlu
ZGV4IDU1ZDI2ZjZjZjcyMTNiN2U1MmMzOTE4NmY5ZGNhMWJjNGEwMTEwODYuLjc1Y2ZjYWRhMTAx
YWFhZDU0YTc3MTBjOGU4OTNkMjM4NTM3ZDFjYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCkBAIC0yOCw2ICsyOCw3IEBA
CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCisjaW1w
b3J0ICJBVkFzc2V0VHJhY2tVdGlsaXRpZXMuaCIKICNpbXBvcnQgIkFWRm91bmRhdGlvblNQSS5o
IgogI2ltcG9ydCAiQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCIKICNpbXBv
cnQgIkNETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uLmgiCkBAIC00MzEsNiArNDMyLDEzIEBA
IHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFBhcnNlU3RyZWFtRGF0YUFzQXNz
ZXQoQVZBc3NldCogYXNzZXQpCiB7CiAgICAgTE9HKE1lZGlhU291cmNlLCAiU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakM6OmRpZFBhcnNlU3RyZWFtRGF0YUFzQXNzZXQoJXApIiwgdGhpcyk7CiAK
KyAgICBmb3IgKEFWQXNzZXRUcmFjayAqdHJhY2sgaW4gW2Fzc2V0IHRyYWNrc10pIHsKKyAgICAg
ICAgaWYgKCFhc3NldFRyYWNrTWVldHNIYXJkd2FyZURlY29kZVJlcXVpcmVtZW50cyh0cmFjaywg
eydodmMxJ30pKSB7CisgICAgICAgICAgICBtX3BhcnNpbmdTdWNjZWVkZWQgPSBmYWxzZTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKwogICAgIG1fYXNzZXQgPSBhc3Nl
dDsKIAogICAgIG1fdmlkZW9UcmFja3MuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCmluZGV4IGRjM2MzMTIwZTRmZTQyZDhk
OTQxMGQ5NmVhZTg2ODQxNzQ4M2JmMGMuLjIxNTMwYzhiOGVlZDE0Y2Q0NmU2MWZkYjRmY2NlNThm
ZDk3MjVjZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNl
c0RlZmluaXRpb25zLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
RGVmaW5pdGlvbnMuaApAQCAtNDAxLDYgKzQwMSw3IEBACiAgICAgRk9SX0VBQ0hfV0VCS0lUX0ZP
TlRfRkFNSUxZX1BSRUZFUkVOQ0UobWFjcm8pIFwKICAgICBtYWNybyhEZWZhdWx0VGV4dEVuY29k
aW5nTmFtZSwgZGVmYXVsdFRleHRFbmNvZGluZ05hbWUsIFN0cmluZywgU3RyaW5nLCBkZWZhdWx0
VGV4dEVuY29kaW5nTmFtZUZvclN5c3RlbUxhbmd1YWdlKCksICIiLCAiIikgXAogICAgIG1hY3Jv
KEZUUERpcmVjdG9yeVRlbXBsYXRlUGF0aCwgZnRwRGlyZWN0b3J5VGVtcGxhdGVQYXRoLCBTdHJp
bmcsIFN0cmluZywgIiIsICIiLCAiIikgXAorICAgIG1hY3JvKE1lZGlhQ29udGVudFR5cGVzUmVx
dWlyaW5nSGFyZHdhcmVTdXBwb3J0LCBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJl
U3VwcG9ydCwgU3RyaW5nLCBTdHJpbmcsICIiLCAiIiwgIiIpIFwKICAgICBcCiAKICNkZWZpbmUg
Rk9SX0VBQ0hfV0VCS0lUX1NUUklOR19QUkVGRVJFTkNFX05PVF9JTl9XRUJDT1JFKG1hY3JvKSBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNl
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAK
aW5kZXggMWI3YjhjM2ZhMjA1ZjVhNjNkMDlmZTg2ZDAzOTI3Y2EyY2QyNWQ5MC4uMjY5YWU4Nzgx
YWJmZTc3YzRjM2RiZGRiNjc3NjA2MWZmYWNkODMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApAQCAtMTc3MCwzICsxNzcwLDE0IEBA
IGJvb2wgV0tQcmVmZXJlbmNlc0dldE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVu
dChXS1ByZWZlcmVuY2VzUmVmIHByZWZlCiB7CiAgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNl
c1JlZiktPm1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudCgpOwogfQorCit2b2lk
IFdLUHJlZmVyZW5jZXNTZXRNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9y
dChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBXS1N0cmluZ1JlZiBjb2RlY3MpCit7
CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJp
bmdIYXJkd2FyZVN1cHBvcnQodG9XVEZTdHJpbmcoY29kZWNzKSk7Cit9CisKK1dLU3RyaW5nUmVm
IFdLUHJlZmVyZW5jZXNDb3B5TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBv
cnQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK3sKKyAgICByZXR1cm4gdG9Db3Bp
ZWRBUEkodG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+bWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdI
YXJkd2FyZVN1cHBvcnQoKSk7Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKaW5kZXggZWZkYTgyNTM2MTUy
YWJjOWY0NTU4MjJlMmNhNjQ4ZjI3ZDcwZTcwMS4uNDg2YmFiYzM2MjI0Yjc2ZTFkNTAzOTJmMzUx
NzA4YmNlYjZhMDFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKQEAgLTQ5Nyw2ICs0OTcsMTAgQEAgV0tf
RVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldEludmlzaWJsZU1lZGlhQXV0b3BsYXlQZXJtaXR0
ZWQoV0tQcmVmZXJlbmNlc1JlZikKIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRNZWRp
YVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnQoV0tQcmVmZXJlbmNlc1JlZiwgYm9vbCBm
bGFnKTsKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRNZWRpYVVzZXJHZXN0dXJlSW5o
ZXJpdHNGcm9tRG9jdW1lbnQoV0tQcmVmZXJlbmNlc1JlZik7CiAKKy8vIERlZmF1bHRzIHRvIGFu
IGVtcHR5IHN0cmluZworV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ29udGVu
dFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KFdLUHJlZmVyZW5jZXNSZWYsIFdLU3RyaW5n
UmVmKTsKK1dLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS1ByZWZlcmVuY2VzQ29weU1lZGlhQ29udGVu
dFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KFdLUHJlZmVyZW5jZXNSZWYpOworCiAjaWZk
ZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCA2NDkyZGZmMWYzNmI3MDUzYjA5YTBmMWFjODg3
OTAxMWFkZTBjODVhLi4yZjAzZGQzZWIxOTg3ZDg3NjdmMmI1YzFkYmU4MDM3ZWNlZjdlNTAyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpA
QCAtNTA0LDYgKzUwNCw4IEBAIC0gKHZvaWQpX2luaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbjoo
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24KIAogICAgIHBhZ2VDb25maWd1
cmF0aW9uLT5wcmVmZXJlbmNlVmFsdWVzKCkuc2V0KFdlYktpdDo6V2ViUHJlZmVyZW5jZXNLZXk6
Om5lZWRzU3RvcmFnZUFjY2Vzc0Zyb21GaWxlVVJMc1F1aXJrS2V5KCksIFdlYktpdDo6V2ViUHJl
ZmVyZW5jZXNTdG9yZTo6VmFsdWUoISFbX2NvbmZpZ3VyYXRpb24gX25lZWRzU3RvcmFnZUFjY2Vz
c0Zyb21GaWxlVVJMc1F1aXJrXSkpOwogCisgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVu
Y2VWYWx1ZXMoKS5zZXQoV2ViS2l0OjpXZWJQcmVmZXJlbmNlc0tleTo6bWVkaWFDb250ZW50VHlw
ZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnRLZXkoKSwgV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0
b3JlOjpWYWx1ZShbX2NvbmZpZ3VyYXRpb24gX21lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFy
ZHdhcmVTdXBwb3J0XSkpOworCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIENHUmVjdCBib3VuZHMg
PSBzZWxmLmJvdW5kczsKICAgICBfc2Nyb2xsVmlldyA9IGFkb3B0TlMoW1tXS1Njcm9sbFZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6Ym91bmRzXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KaW5k
ZXggYjRiZjNhOTg5ZDBlYjE0OTk0MzhhMWI1Y2U1MmNhZTczMzNkMGYwNy4uNDAzMGQ1M2E5MTc3
YjgyOTgzZjg2ZGFmYjM0Yjk2MTRmNmFhMDhiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQpA
QCAtMTM3LDYgKzEzNyw3IEBAIEBpbXBsZW1lbnRhdGlvbiBXS1dlYlZpZXdDb25maWd1cmF0aW9u
IHsKICAgICBCT09MIF9uZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlyazsKIAogICAg
IE5TU3RyaW5nICpfb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3k7CisgICAgTlNTdHJpbmcg
Kl9tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsKIH0KIAogLSAoaW5z
dGFuY2V0eXBlKWluaXQKQEAgLTMzMCw2ICszMzEsNyBAQCAtIChpZCljb3B5V2l0aFpvbmU6KE5T
Wm9uZSAqKXpvbmUKICAgICBjb25maWd1cmF0aW9uLT5fb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQ
b2xpY3kgPSBzZWxmLT5fb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3k7CiAKICAgICBjb25m
aWd1cmF0aW9uLT5fdXJsU2NoZW1lSGFuZGxlcnMuc2V0KGFkb3B0TlMoW3NlbGYuX3VybFNjaGVt
ZUhhbmRsZXJzIG11dGFibGVDb3B5V2l0aFpvbmU6em9uZV0pKTsKKyAgICBjb25maWd1cmF0aW9u
LT5fbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQgPSBzZWxmLl9tZWRp
YUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsKIAogICAgIHJldHVybiBjb25m
aWd1cmF0aW9uOwogfQpAQCAtODE2LDYgKzgxOCwxNiBAQCAtICh2b2lkKV9zZXRPdmVycmlkZUNv
bnRlbnRTZWN1cml0eVBvbGljeTooTlNTdHJpbmcgKilvdmVycmlkZUNvbnRlbnRTZWN1cml0eVBv
bAogICAgIF9vdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeSA9IG92ZXJyaWRlQ29udGVudFNl
Y3VyaXR5UG9saWN5OwogfQogCistIChOU1N0cmluZyAqKV9tZWRpYUNvbnRlbnRUeXBlc1JlcXVp
cmluZ0hhcmR3YXJlU3VwcG9ydAoreworICAgIHJldHVybiBfbWVkaWFDb250ZW50VHlwZXNSZXF1
aXJpbmdIYXJkd2FyZVN1cHBvcnQ7Cit9CisKKy0gKHZvaWQpX3NldE1lZGlhQ29udGVudFR5cGVz
UmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OihOU1N0cmluZyAqKW1lZGlhQ29udGVudFR5cGVzUmVx
dWlyaW5nSGFyZHdhcmVTdXBwb3J0Cit7CisgICAgX21lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5n
SGFyZHdhcmVTdXBwb3J0ID0gbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBv
cnQ7Cit9CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24g
KFdLRGVwcmVjYXRlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAppbmRleCA5
NTFiZmRjMGE0MzNmZTQxMjBlNjdhZDRhNmY3MzMxZGQwOTYwNDczLi44YzYzMmMwYThiMGViZWEx
NTA0ZmI1NDczNDM5ZjM1YWRiZGM3N2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJp
dmF0ZS5oCkBAIC03Niw2ICs3Niw3IEBACiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRSZXF1aXJlc1VzZXJBY3Rpb25Gb3JWaWRlb1BsYXliYWNrOikgQk9PTCBfcmVxdWlyZXNVc2Vy
QWN0aW9uRm9yVmlkZW9QbGF5YmFjayBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5U
KCJtZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrIiwgbWFjb3N4KDEwLjEy
LCAxMC4xMiksIGlvcygxMC4wLCAxMC4wKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldE92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5OikgTlNTdHJpbmcgKl9vdmVycmlk
ZUNvbnRlbnRTZWN1cml0eVBvbGljeSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1l
ZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OikgTlNTdHJpbmcgKl9tZWRp
YUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgppbmRl
eCAyNDM0YzZlZTQxNzE2ZjNkNDNkNjJiNTIxOTgwNTZlM2ViYjQ0NzU5Li4xMWFiMmQyNWYxYzVj
YTkyZTFlMDQzMDY0YjgzZjNhMmIzYjM1MDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KQEAgLTg5LDcgKzg5LDkgQEAK
ICAgICAoaW9raXQtcHJvcGVydHkgIklPR2VuZXJhbEludGVyZXN0IikKICAgICAoaW9raXQtcHJv
cGVydHkgIklPR0xCdW5kbGVOYW1lIikKICAgICAoaW9raXQtcHJvcGVydHkgIklPSTJDVHJhbnNh
Y3Rpb25UeXBlcyIpCisgICAgKGlva2l0LXByb3BlcnR5ICJJT0dWQVZUQ2FwYWJpbGl0aWVzIikK
ICAgICAoaW9raXQtcHJvcGVydHktcmVnZXggIyJeSU9HVkEoQ29kZWN8RW5jb2RlclJlc3RyaWN0
ZWQpIikKKyAgICAoaW9raXQtcHJvcGVydHktcmVnZXggIyJeSU9HVkEoLiopRGVjb2RlJCIpCiAg
ICAgKGlva2l0LXByb3BlcnR5ICJJT01hdGNoQ2F0ZWdvcnkiKQogICAgIChpb2tpdC1wcm9wZXJ0
eS1yZWdleCAjIl5JT05hbWVNYXRjaCh8ZWQpIikKICAgICAoaW9raXQtcHJvcGVydHkgIklPUE1T
dHJpY3RUcmVlT3JkZXIiKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312031</attachid>
            <date>2017-06-05 14:30:28 -0700</date>
            <delta_ts>2017-06-05 15:01:54 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-172787-20170605143027.patch</filename>
            <type>text/plain</type>
            <size>49261</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3NjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRjMjgxMjVkNzVkMmFlY2ZiMzBlYTAx
YmZjYTdlYTMwMzgzZjAzMjQuLmEyYmZiYmM2NjA5ZDUxZDFiNDM1MTgxODdkZmZiNDNlZDE0NDI4
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMDYtMDUgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgY2xpZW50cyB0byBzcGVjaWZ5IGEgbGlzdCBv
ZiBjb2RlY3Mgd2hpY2ggc2hvdWxkIHJlcXVpcmUgaGFyZHdhcmUgZGVjb2RlIHN1cHBvcnQuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI3ODcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIEFkZCBhIGNv
dXBsZSBvZiBjb252ZW5pZW5jZSBtZXRob2RzOgorICAgICAgICAtIGEgU3RyaW5nOjpzcGxpdCgp
IHRoYXQgcmV0dXJucyBhIHZlY3RvciAocmF0aGVyIHRoYW4gdGFraW5nIGFuIG91dC1yZWZlcmVu
Y2UgdG8gYSB2ZWN0b3IpLgorICAgICAgICAtIEEgVmVjdG9yOjptYXAoKSB0ZW1wbGF0ZSB3aGlj
aCB0YWtlcyBhIENhbGxhYmxlIGFuZCByZXR1cm5zIGEgVmVjdG9yIG9mIGEgZGlmZmVyZW50IHR5
cGUuCisKKyAgICAgICAgKiB3dGYvVmVjdG9yLmg6CisgICAgICAgIChXVEY6OlZlY3Rvcjo6bWFw
KToKKyAgICAgICAgKiB3dGYvdGV4dC9XVEZTdHJpbmcuaDoKKyAgICAgICAgKFdURjo6U3RyaW5n
OjpzcGxpdCk6CisKIDIwMTctMDUtMzEgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgR2V0IDxjaHJvbm8+IG91dCBvZiBTdGRMaWJFeHRyYXMuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGIzNzVmNjAwYjliYjEwZGMwMTQwY2RiNDg5OGFjZDM5MDEyNDM5ZWUuLjg1MzRi
NDU0NTkwYzI3MzMwZDhiNDVkMGRjZjkzMjE4Y2U5ZDQxN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNiBAQAorMjAxNy0wNi0wNSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBbGxvdyBjbGllbnRzIHRvIHNwZWNpZnkgYSBsaXN0IG9mIGNvZGVjcyB3aGljaCBz
aG91bGQgcmVxdWlyZSBoYXJkd2FyZSBkZWNvZGUgc3VwcG9ydC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mjc4NworCisgICAgICAgIFJldmlld2Vk
IGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgQWRkIGEgbmV3IHNldHRpbmcsIGNoZWNr
ZWQgYnkgSFRNTE1lZGlhRWxlbWVudCwgd2hpY2ggYWxsb3dzIE1lZGlhUGxheWVyUHJpdmF0ZSBp
bXBsZW1lbnRhdGlvbgorICAgICAgICB0byByZXF1aXJlIHRoYXQgdGhlIHNwZWNpZmllZCBjb2Rl
Y3MgaGF2ZSBoYXJkd2FyZSBzdXBwb3J0LiBUaGlzIHJlcXVpcmVtZW50IHdpbGwgYmUgc3VwcG9y
dGVkCisgICAgICAgIGluIHRoZSBub3JtYWwgbWVkaWEgbG9hZGluZyBwYXRoIGFuZCB0aGUgTVNF
IHBhdGggb24gQ29jb2EgcG9ydHMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdh
cmVTdXBwb3J0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAg
KiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRNZWRp
YUNvZGVjc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCk6CisgICAgICAgICogcGFnZS9TZXR0aW5n
cy5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6Om1lZGlhQ29kZWNzUmVxdWlyaW5nSGFy
ZHdhcmVTdXBwb3J0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9WaWRlb1Rvb2xib3hTb2Z0
TGluay5jcHA6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvVmlkZW9Ub29sYm94U29mdExpbmsu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6Om1lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVT
dXBwb3J0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9B
VkFzc2V0VHJhY2tVdGlsaXRpZXMuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OmFzc2V0VHJhY2tNZWV0c0hhcmR3YXJlRGVjb2RlUmVxdWlyZW1lbnRz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OmNoZWNrUGxheWFiaWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6YXNzZXRTdGF0dXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFBhcnNlU3RyZWFt
RGF0YUFzQXNzZXQpOgorCiAyMDE3LTA1LTMxICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIEdldCA8Y2hyb25vPiBvdXQgb2YgU3RkTGliRXh0cmFzLmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBiNDRkMTJlNTAzYzk4NTAwYTFhMGNmYTMxOTMyNDRkYzJhNmUyOTIxLi5m
NjAzNzc2YmQwN2FkOWZlNDdjZjEwNjhmZmU2ZTkzZmM2N2NhYzdhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjggQEAKKzIwMTctMDYtMDUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CisKKyAgICAgICAgQWxsb3cgY2xpZW50cyB0byBzcGVjaWZ5IGEgbGlzdCBvZiBjb2RlY3Mgd2hp
Y2ggc2hvdWxkIHJlcXVpcmUgaGFyZHdhcmUgZGVjb2RlIHN1cHBvcnQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI3ODcKKworICAgICAgICBSZXZp
ZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIEFkZCBhIFdLV2ViUGFnZUNvbmZp
Z3VyYXRpb24gKGFuZCBhc3NvY2lhdGVkIFdlYlByZWZlcmVuY2VzIGFuZCBXS1ByZWZlcmVuY2Vz
UmVmKSBwcm9wZXJ0aWVzCisgICAgICAgIGFsbG93aW5nIGNsaWVudHMgdG8gcmVxdWlyZSBzcGVj
aWZpZWQgY29kZWNzIGhhdmUgaGFyZHdhcmUgZGVjb2RlIHN1cHBvcnQuIEFsc28gb3BlbiB1cCB0
aGUKKyAgICAgICAgc2FuZGJveCBvbiBDb2NvYSBwb3J0cyB0byBzZXJ2aWNlcyByZXF1aXJlZCB0
byBjaGVjayBmb3IgaGFyZHdhcmUgZGVjb2RlIGF2YWlsYWJpbGl0eS4KKworICAgICAgICAqIFNo
YXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1NldE1lZGlhQ29k
ZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNDb3B5
TWVkaWFDb2RlY3NSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2luaXRpYWxpemVX
aXRoQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
Y29weVdpdGhab25lOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF9tZWRp
YUNvZGVjc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydF0pOgorICAgICAgICAoLVtXS1dlYlZpZXdD
b25maWd1cmF0aW9uIF9zZXRNZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2
YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbjoK
KwogMjAxNy0wNS0zMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBHZXQgPGNocm9ubz4gb3V0IG9mIFN0ZExpYkV4dHJhcy5oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9WZWN0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCmluZGV4IGY4
ZDQ3Zjk5NThmNjg5ZmEzMDNlOGM0ZTEzMzI1NzA0Yjk3NWEyMjcuLmUxNWY2NWM1N2JjYTlmNGVh
YjkzYTMyY2RiMjgyNWY0NTgzYTAxY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1ZlY3Rv
ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCkBAIC03ODAsNiArNzgwLDggQEAgcHVi
bGljOgogCiAgICAgdm9pZCBjaGVja0NvbnNpc3RlbmN5KCk7CiAKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBNYXBGdW5jdGlvbiwgdHlwZW5hbWUgUiA9IHR5cGVuYW1lIHN0ZDo6cmVzdWx0X29mPE1h
cEZ1bmN0aW9uKGNvbnN0IFQmKT46OnR5cGU+IFZlY3RvcjxSPiBtYXAoTWFwRnVuY3Rpb24pIGNv
bnN0OworCiBwcml2YXRlOgogICAgIHZvaWQgZXhwYW5kQ2FwYWNpdHkoc2l6ZV90IG5ld01pbkNh
cGFjaXR5KTsKICAgICBUKiBleHBhbmRDYXBhY2l0eShzaXplX3QgbmV3TWluQ2FwYWNpdHksIFQq
KTsKQEAgLTE0NTcsNiArMTQ1OSwxNiBAQCBpbmxpbmUgdm9pZCBWZWN0b3I8VCwgaW5saW5lQ2Fw
YWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+OjpyZXZlcnNlKCkKICAgICAgICAg
c3RkOjpzd2FwKGF0KGkpLCBhdChtX3NpemUgLSAxIC0gaSkpOwogfQogCit0ZW1wbGF0ZTx0eXBl
bmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlciwg
c2l6ZV90IG1pbkNhcGFjaXR5PiB0ZW1wbGF0ZTx0eXBlbmFtZSBNYXBGdW5jdGlvbiwgdHlwZW5h
bWUgUj4KK2lubGluZSBWZWN0b3I8Uj4gVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxv
d0hhbmRsZXIsIG1pbkNhcGFjaXR5Pjo6bWFwKE1hcEZ1bmN0aW9uIG1hcEZ1bmN0aW9uKSBjb25z
dAoreworICAgIFZlY3RvcjxSPiByZXN1bHQ7CisgICAgcmVzdWx0LnJlc2VydmVJbml0aWFsQ2Fw
YWNpdHkoc2l6ZSgpKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemUoKTsgKytpKQor
ICAgICAgICByZXN1bHQudW5jaGVja2VkQXBwZW5kKG1hcEZ1bmN0aW9uKGF0KGkpKSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKwogdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNh
cGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW5DYXBhY2l0eT4KIGlu
bGluZSBNYWxsb2NQdHI8VD4gVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRs
ZXIsIG1pbkNhcGFjaXR5Pjo6cmVsZWFzZUJ1ZmZlcigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcu
aAppbmRleCA2YTI0MDZjODcwNGJiNjlhYzMxMmFhYmNlNDIyMDA5MDBlNjZmZGUxLi5kYWQwNzJj
NzY5NTE2MDliNjkxNWVjY2MwYmEwNzg2NzRlZWQwYzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1dURlN0cmluZy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5n
LmgKQEAgLTM3MCw2ICszNzAsMTMgQEAgcHVibGljOgogICAgICAgICBzcGxpdChzZXBhcmF0b3Is
IGZhbHNlLCByZXN1bHQpOwogICAgIH0KIAorICAgIFZlY3RvcjxTdHJpbmc+IHNwbGl0KGNvbnN0
IFN0cmluZyYgc2VwYXJhdG9yKSBjb25zdAorICAgIHsKKyAgICAgICAgVmVjdG9yPFN0cmluZz4g
cmVzdWx0OworICAgICAgICBzcGxpdChzZXBhcmF0b3IsIGZhbHNlLCByZXN1bHQpOworICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgIH0KKwogICAgIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBpbnQg
dG9JbnRTdHJpY3QoYm9vbCogb2sgPSBudWxscHRyLCBpbnQgYmFzZSA9IDEwKSBjb25zdDsKICAg
ICBXVEZfRVhQT1JUX1NUUklOR19BUEkgdW5zaWduZWQgdG9VSW50U3RyaWN0KGJvb2wqIG9rID0g
bnVsbHB0ciwgaW50IGJhc2UgPSAxMCkgY29uc3Q7CiAgICAgV1RGX0VYUE9SVF9TVFJJTkdfQVBJ
IGludDY0X3QgdG9JbnQ2NFN0cmljdChib29sKiBvayA9IG51bGxwdHIsIGludCBiYXNlID0gMTAp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDg2YTI2YTg0YWRmZmEwZGZlN2Y2Mzc5NDA5MjY5NmQzOGNjNDcxOWUuLjgz
NzlmZjI3NGRkY2U5OTc5MjhkYWU2NGFlMmNlMGNiYjBjM2JkODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3NzcsNyArMTc3
Nyw3IEBACiAJCTQxQzc2MEIxMEVERTAzRDMwMEMxNjU1RiAvKiBTY3JpcHRTdGF0ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFDNzYwQjAwRURFMDNE
MzAwQzE2NTVGIC8qIFNjcmlwdFN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDFDQUQ3MUUxRUEwOTBBMTAwMTc4MTY0IC8qIFZpZGVvVG9v
bEJveEVuY29kZXJGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxQ0FENzFDMUVBMDkwNTcwMDE3ODE2NCAvKiBWaWRlb1Rvb2xCb3hFbmNv
ZGVyRmFjdG9yeS5jcHAgKi87IH07CiAJCTQxQ0Y4QkU3MUQ0NjIyNjcwMDcwN0RDOSAvKiBGZXRj
aEJvZHlDb25zdW1lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MUNGOEJFNDFENDYyMjIwMDA3MDdEQzkgLyogRmV0Y2hCb2R5Q29uc3VtZXIuY3Bw
ICovOyB9OwotCQk0MUQwMTVDQTBGNEI1QzcxMDA0QTY2MkYgLyogQ29udGVudFR5cGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRDAxNUM4MEY0QjVD
NzEwMDRBNjYyRiAvKiBDb250ZW50VHlwZS5oICovOyB9OworCQk0MUQwMTVDQTBGNEI1QzcxMDA0
QTY2MkYgLyogQ29udGVudFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxRDAxNUM4MEY0QjVDNzEwMDRBNjYyRiAvKiBDb250ZW50VHlwZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxRDAxNUNC
MEY0QjVDNzEwMDRBNjYyRiAvKiBDb250ZW50VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUQwMTVDOTBGNEI1QzcxMDA0QTY2MkYgLyogQ29u
dGVudFR5cGUuY3BwICovOyB9OwogCQk0MURFRkNCNTFFNTZDMUJEMDAwRDlFNUYgLyogSlNET01N
YXBMaWtlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxREVGQ0IzMUU1NkMxQjkwMDBEOUU1RiAvKiBKU0RPTU1hcExpa2UuY3BwICovOyB9OwogCQk0
MURFRkNCNjFFNTZDMUJEMDAwRDlFNUYgLyogSlNET01NYXBMaWtlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURFRkNCNDFFNTZDMUI5MDAwRDlFNUYg
LyogSlNET01NYXBMaWtlLmggKi87IH07CkBAIC02MTU0LDYgKzYxNTQsOCBAQAogCQlDRDUyMDlF
NjFCMEJEOUUxMDA3NzE4NEUgLyogSFRNTE1lZGlhRWxlbWVudEVudW1zLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDUyMDlFNTFCMEJEOUUxMDA3NzE4
NEUgLyogSFRNTE1lZGlhRWxlbWVudEVudW1zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0Q1MjQ4MUExOEUyMDBFRDAwMDhBMDdEIC8qIFNsZWVw
RGlzYWJsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q1MjQ4MTgxOEUyMDBFRDAwMDhBMDdEIC8qIFNsZWVwRGlzYWJsZXIuY3BwICovOyB9Owog
CQlDRDUyNDgxQjE4RTIwMEVEMDAwOEEwN0QgLyogU2xlZXBEaXNhYmxlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1MjQ4MTkxOEUyMDBFRDAwMDhB
MDdEIC8qIFNsZWVwRGlzYWJsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQlDRDUyNUJBMzFFRTBCMTA3MDA3ODhERjUgLyogRm91ckNDLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTI1QkExMUVF
MEIxMDcwMDc4OERGNSAvKiBGb3VyQ0MuY3BwICovOyB9OworCQlDRDUyNUJBNDFFRTBCMTA3MDA3
ODhERjUgLyogRm91ckNDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDUyNUJBMjFFRTBCMTA3MDA3ODhERjUgLyogRm91ckNDLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0Q1MzkzRDMxNzVFMDE4NjAw
QzA3MTIzIC8qIEpTTWVtb3J5SW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDUzOTNEMTE3NUUwMTg2MDBDMDcxMjMgLyogSlNNZW1vcnlJbmZv
LmNwcCAqLzsgfTsKIAkJQ0Q1MzkzRDQxNzVFMDE4NjAwQzA3MTIzIC8qIEpTTWVtb3J5SW5mby5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1MzkzRDIx
NzVFMDE4NjAwQzA3MTIzIC8qIEpTTWVtb3J5SW5mby5oICovOyB9OwogCQlDRDU0QTc2MjE4MEY5
RjcwMDBCMDc2QzkgLyogQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1NEE3NjAxODBG
OUY3MDAwQjA3NkM5IC8qIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmNwcCAq
LzsgfTsKQEAgLTYzMDIsNiArNjMwNCw4IEBACiAJCUNERUE3NjM1MTQ2MEI3MUEwMDhCMzFGMSAv
KiBDbG9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDREVBNzYzMzE0NjBCNDYyMDA4QjMxRjEgLyogQ2xvY2suY3BwICovOyB9OwogCQlDREVBN0M4
NDEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQTdDODIxMjc2MjMwNDAwQjg0NkREIC8q
IFJlbmRlckZ1bGxTY3JlZW4uaCAqLzsgfTsKIAkJQ0RFQTdDODUxMjc2MjMwNDAwQjg0NkREIC8q
IFJlbmRlckZ1bGxTY3JlZW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0RFQTdDODMxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4u
Y3BwICovOyB9OworCQlDREVDQTg5QTFFREY0NDdEMDBEQ0IwOEIgLyogQVZBc3NldFRyYWNrVXRp
bGl0aWVzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0RFQ0E4OTgxRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5tbSAqLzsg
fTsKKwkJQ0RFQ0E4OUIxRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQ0E4OTkx
RURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5oICovOyB9OwogCQlDREVF
MzkzNzE3OTc0MjU5MDAxRDc1ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVFMzkzNjE3OTc0MjU5MDAxRDc1
ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgKi87IH07CiAJCUNERUY0RkQ3MTdFODVDOEYwMEFF
RTI0QiAvKiBHcmlkTGVuZ3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyogR3JpZExlbmd0aC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERUZBMjI4MUU3
NjY5RTgwMDBBRTk5QyAvKiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTExRTRCQkE0RDAwRTgxNTRBIC8qIFBs
YXRmb3JtQXVkaW9EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTE0Njk0LDYgKzE0Njk4LDggQEAKIAkJQ0Q1MjA5RTUxQjBCRDlFMTAwNzcx
ODRFIC8qIEhUTUxNZWRpYUVsZW1lbnRFbnVtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBIVE1MTWVkaWFFbGVtZW50RW51bXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0Q1MjQ4MTgxOEUyMDBFRDAwMDhBMDdEIC8qIFNsZWVwRGlzYWJsZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2xlZXBEaXNhYmxlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTI0ODE5MThFMjAwRUQwMDA4QTA3RCAvKiBTbGVl
cERpc2FibGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNsZWVwRGlzYWJs
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q1MjVCQTExRUUwQjEwNzAwNzg4
REY1IC8qIEZvdXJDQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3VyQ0MuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDRDUyNUJBMjFFRTBCMTA3MDA3ODhERjUgLyogRm91ckND
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEZvdXJDQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDRDUzOTNDQjE3NURDQ0U2MDBDMDcxMjMgLyogTWVtb3J5SW5mby5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNZW1vcnlJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNENTM5M0NDMTc1RENDRTYwMEMwNzEyMyAvKiBNZW1vcnlJbmZvLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBNZW1vcnlJbmZvLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0Q1MzkzRDExNzVFMDE4NjAwQzA3MTIzIC8qIEpTTWVtb3J5SW5mby5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lbW9yeUluZm8uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ4NzcsNiArMTQ4ODMsOCBAQAogCQlDREVBNzYzMzE0
NjBCNDYyMDA4QjMxRjEgLyogQ2xvY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ2xvY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVBN0M4
MjEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW5kZXJGdWxsU2NyZWVuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNERUE3QzgzMTI3NjIzMDQwMEI4NDZERCAvKiBSZW5kZXJGdWxsU2NyZWVuLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckZ1bGxTY3JlZW4u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREVDQTg5ODFFREY0NDdEMDBEQ0Iw
OEIgLyogQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQVZB
c3NldFRyYWNrVXRpbGl0aWVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREVD
QTg5OTFFREY0NDdEMDBEQ0IwOEIgLyogQVZBc3NldFRyYWNrVXRpbGl0aWVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFWQXNzZXRUcmFja1V0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDREVFMzkzNjE3OTc0MjU5MDAxRDc1ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQdWJsaWNVUkxNYW5hZ2VyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFRTM5MzgxNzk3NDI3NDAwMUQ3NTgwIC8q
IFVSTFJlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVSTFJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNERUY0RkQ2MTdFODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3Ro
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyaWRMZW5ndGguaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzMzE3LDYgKzIzMzI1LDggQEAKIAkJCQk1MDFCQUFB
ODEzOTUwRTJDMDBGN0FDRUIgLyogV2luZFJ1bGUuaCAqLywKIAkJCQkzNzk5MTk5NDEyMDBEREY0
MDBFQTA0MUMgLyogV09GRkZpbGVGb3JtYXQuY3BwICovLAogCQkJCTM3OTkxOTk1MTIwMERERjQw
MEVBMDQxQyAvKiBXT0ZGRmlsZUZvcm1hdC5oICovLAorCQkJCUNENTI1QkExMUVFMEIxMDcwMDc4
OERGNSAvKiBGb3VyQ0MuY3BwICovLAorCQkJCUNENTI1QkEyMUVFMEIxMDcwMDc4OERGNSAvKiBG
b3VyQ0MuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gZ3JhcGhpY3M7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwpAQCAtMjQ1MTQsNiArMjQ1MjQsOCBAQAogCQkJCUNEOEI1QTQwMTgwRDE0OUEw
MDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSAqLywKIAkJ
CQlDRDdFMDUyMDE2NTFBODQxMDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLmgg
Ki8sCiAJCQkJQ0Q3RTA1MjExNjUxQTg0MTAwQzEyMDFGIC8qIFdlYkNvcmVBVkZSZXNvdXJjZUxv
YWRlci5tbSAqLywKKwkJCQlDREVDQTg5ODFFREY0NDdEMDBEQ0IwOEIgLyogQVZBc3NldFRyYWNr
VXRpbGl0aWVzLm1tICovLAorCQkJCUNERUNBODk5MUVERjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0
VHJhY2tVdGlsaXRpZXMuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gb2JqYzsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CkBAIC0yODI1NCw2ICsyODI2Niw3IEBACiAJCQkJQUE3RkVFQTcxNkE0
RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBQTdGRUVBOTE2QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXNWb2lj
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4MjQzMjkwRDBDRThBMjAwNDYwQzhGIC8qIEpTU1FM
RXJyb3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUNERUNBODlCMUVERjQ0N0QwMERDQjA4QiAvKiBB
VkFzc2V0VHJhY2tVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUI1MjVBOTY1MTFDQTIz
NDAwMDNBMjNBOCAvKiBKU1NRTEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFODJG
RUQwQ0FCMDdFRTAwMjIzN0FFIC8qIEpTU1FMUmVzdWx0U2V0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUZFMTE5QTBDQkZGQ0M0MDAzMDE3RkEgLyogSlNTUUxSZXN1bHRTZXRSb3dMaXN0LmggaW4g
SGVhZGVycyAqLywKQEAgLTI5Mzg2LDYgKzI5Mzk5LDcgQEAKIAkJCQkwRkI4ODkwQTE2N0QyRkEx
MDAxMENEQTUgLyogU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTdBQUZFOEQwMTlDQjg2NzIwMDBGNTZEOCAvKiBTY3JvbGxMYXRjaGluZ1N0YXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGNDc4NzU1NDE5OTgzQUZGMDAyNEEyODcgLyogU2Nyb2xsU25hcEFuaW1h
dG9yU3RhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUNENTI1QkE0MUVFMEIxMDcwMDc4OERGNSAv
KiBGb3VyQ0MuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0NjcyOTI4MUUwREU2ODUwMEFDQzNEOCAv
KiBTY3JvbGxTbmFwT2Zmc2V0c0luZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQzU3OTVEMURB
NUMzMDEwMDZGQUNBOCAvKiBTY3JvbGxUb09wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
QzA5Qzg2MEIwNjU3QUEwMDVBQkQ0RCAvKiBTY3JvbGxUeXBlcy5oIGluIEhlYWRlcnMgKi8sCkBA
IC0zMTIzMiw2ICszMTI0Niw3IEBACiAJCQkJQThDNEE4MDgwOUQ1NjMyNzAwMDNBQzhEIC8qIEVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjVCN0ExNzAxN0MxMEFBODAwRTRBQTBBIC8q
IEVsZW1lbnREYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTRGRkMwMjJEMTY0M0I3MjYwMDRF
MTYzOCAvKiBFbGVtZW50UmFyZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q1MjVCQTMx
RUUwQjEwNzAwNzg4REY1IC8qIEZvdXJDQy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQkRCNjE5
QjE2RDYwMzJBMDBCQjMzOTQgLyogRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQThDRkY2Q0IwQTE1NjFDRDAwMEE0MjM0IC8qIEVsbGlwc2lzQm94LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUY1NUIzREJCMTI1MUYxMkQwMDNFRjI2OSAvKiBFbWFpbElucHV0VHlw
ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMzMjI1LDYgKzMzMjQwLDcgQEAKIAkJCQk5MzFDQkQw
QzE2MUE0NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5nU3RhdGVOb2RlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTkzRUY3RDU1MTk1NEYxMzkwMERGQjcxRCAvKiBTY3JvbGxpbmdTdGF0ZU5vZGUubW0g
aW4gU291cmNlcyAqLywKIAkJCQkwRkVBM0U4MzE5MUIzMUJGMDAwRjFCNTUgLyogU2Nyb2xsaW5n
U3RhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RFQ0E4
OUExRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTkzMUNCRDBFMTYxQTQ0RTkwMEU0Qzg3NCAvKiBTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCODg5MEUxNjdEMzAxNjAwMTBDREE1
IC8qIFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzFD
QkQxMDE2MUE0NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYTlkMTc0
MDgyOWMxMGRmY2NhYzYxM2ViMjMxNmE1YmY5YmFlYWI4Zi4uY2NiMGI5NDgwYmJhNTJjYjQ2Y2I1
ZjA4OGQ4NjQzNmQ0ODFhNjZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCkBAIC00MzIwLDYgKzQzMjAsOCBAQCBVUkwgSFRNTE1lZGlhRWxlbWVudDo6c2VsZWN0
TmV4dFNvdXJjZUNoaWxkKENvbnRlbnRUeXBlKiBjb250ZW50VHlwZSwgU3RyaW5nKiBrZQogI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgICAgICAgICBwYXJhbWV0ZXJzLmlzTWVkaWFTdHJl
YW0gPSBtZWRpYVVSTC5wcm90b2NvbElzKG1lZGlhU3RyZWFtQmxvYlByb3RvY29sKTsKICNlbmRp
ZgorICAgICAgICAgICAgcGFyYW1ldGVycy5jb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1
cHBvcnQgPSBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpOworCiAg
ICAgICAgICAgICBpZiAoIU1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUocGFyYW1ldGVycywgdGhp
cykpCiAgICAgICAgICAgICAgICAgZ290byBDaGVja0FnYWluOwogICAgICAgICB9CkBAIC02NjU3
LDYgKzY2NTksMTEgQEAgZG91YmxlIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyUmVxdWVz
dGVkUGxheWJhY2tSYXRlKCkgY29uc3QKICAgICByZXR1cm4gcG90ZW50aWFsbHlQbGF5aW5nKCkg
PyByZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSA6IDA7CiB9CiAKK2NvbnN0IFZlY3RvcjxDb250ZW50
VHlwZT4mIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdh
cmVTdXBwb3J0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKS5zZXR0aW5ncygpLm1l
ZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCk7Cit9CisKICNpZiBVU0Uo
R1NUUkVBTUVSKQogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZXF1ZXN0SW5zdGFsbE1pc3NpbmdQ
bHVnaW5zKGNvbnN0IFN0cmluZyYgZGV0YWlscywgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwg
TWVkaWFQbGF5ZXJSZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2smIGNhbGxiYWNr
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCBhNDkwYmQ3N2Q0
ZTlhNzI0YWQ0MmIyZWNlNmI2MjU5N2JkZjZmYmU1Li5mZjQ1OGM1NWVkNGUyZDlmZmQ5ODZkOGEy
OGI1NzIxYTMyZGNkYjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApA
QCAtNjgwLDYgKzY4MCw3IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIG1lZGlhUGxheWVyUmVxdWVz
dGVkUGxheWJhY2tSYXRlKCkgY29uc3QgZmluYWw7CiAgICAgVmlkZW9GdWxsc2NyZWVuTW9kZSBt
ZWRpYVBsYXllckZ1bGxzY3JlZW5Nb2RlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZnVsbHNjcmVl
bk1vZGUoKTsgfQogICAgIGJvb2wgbWVkaWFQbGF5ZXJTaG91bGREaXNhYmxlU2xlZXAoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBzaG91bGREaXNhYmxlU2xlZXAoKSA9PSBTbGVlcFR5cGU6OkRpc3Bs
YXk7IH0KKyAgICBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBtZWRpYUNvbnRlbnRUeXBlc1Jl
cXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0IGZpbmFsOwogCiAjaWYgVVNFKEdTVFJFQU1F
UikKICAgICB2b2lkIHJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnMoY29uc3QgU3RyaW5nJiBk
ZXRhaWxzLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBNZWRpYVBsYXllclJlcXVlc3RJbnN0
YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjayYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNw
cAppbmRleCAzYjQxMzQ0YmVkZjRjOWVhOGZhZTdkZWQwNjk5YjM3NDNlODc5ZmY3Li5mNjFkYWQ2
NjYxNDBiM2U4NzBhNTc5Y2M3Y2I5ZmEwM2Y4MGQ4OGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmNwcApAQCAtNzg5LDQgKzc4OSwxNSBAQCBib29sIFNldHRpbmdzOjphbGxvd3NBbnlTU0xDZXJ0
aWZpY2F0ZSgpCiAgICAgcmV0dXJuIGdBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZTsKIH0KIAordm9p
ZCBTZXR0aW5nczo6c2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQo
Y29uc3QgU3RyaW5nJiBjb250ZW50VHlwZXMpCit7CisgICAgbV9tZWRpYUNvbnRlbnRUeXBlc1Jl
cXVpcmluZ0hhcmR3YXJlU3VwcG9ydCA9IGNvbnRlbnRUeXBlcy5zcGxpdCgiOiIpLm1hcChDb250
ZW50VHlwZTo6Y3JlYXRlKTsKK30KKwordm9pZCBTZXR0aW5nczo6c2V0TWVkaWFDb250ZW50VHlw
ZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgY29u
dGVudFR5cGVzKQoreworICAgIG1fbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1
cHBvcnQgPSBjb250ZW50VHlwZXM7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5oCmluZGV4IGQ5NWI2YWU0ZTA4YzYyNjdmYTgzZDdiZmQzNGRhOGRmNjU4
NGViZmUuLjkxMTgzZTgxNzhlNGVlZWQxYTAwYzBiNjQyZWFmZjI2MjgyNzVkYjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSAiQ2xpcGJvYXJkQWNjZXNzUG9saWN5LmgiCisjaW5jbHVkZSAiQ29udGVudFR5cGUuaCIKICNp
bmNsdWRlICJFZGl0aW5nQmVoYXZpb3JUeXBlcy5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgpAQCAtMzI1LDYgKzMyNiwxMCBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUo
Ym9vbCk7CiAgICAgc3RhdGljIGJvb2wgYWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoKTsKIAorICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2Fy
ZVN1cHBvcnQoY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYpOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoY29uc3Qg
U3RyaW5nJik7CisgICAgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgbWVkaWFDb250ZW50VHlw
ZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdCB7IHJldHVybiBtX21lZGlhQ29udGVu
dFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGlj
aXQgU2V0dGluZ3MoUGFnZSopOwogCkBAIC00MjQsNiArNDI5LDggQEAgcHJpdmF0ZToKICAgICBz
dGF0aWMgYm9vbCBnTG93UG93ZXJWaWRlb0F1ZGlvQnVmZmVyU2l6ZUVuYWJsZWQ7CiAgICAgc3Rh
dGljIGJvb2wgZ1Jlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkRW5hYmxlZDsKICAgICBzdGF0
aWMgYm9vbCBnQWxsb3dzQW55U1NMQ2VydGlmaWNhdGU7CisKKyAgICBWZWN0b3I8Q29udGVudFR5
cGU+IG1fbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7CiB9OwogCiBp
bmxpbmUgYm9vbCBTZXR0aW5nczo6aXNQb3N0TG9hZENQVVVzYWdlTWVhc3VyZW1lbnRFbmFibGVk
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRlbnRUeXBlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50VHlwZS5oCmluZGV4IGQ4ZDdhMDU2ZGIwMWJj
M2YwYzJkMGI5NjhhZTExYTY5MzgxNmNiMTkuLmYzMWFjNTBhMDg3NTNjZTdhODAxZDg3NWZiM2Iy
MTE4Y2RkZDFjNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRlbnRU
eXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGVudFR5cGUuaApAQCAtMzEs
MTggKzMxLDIwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIENvbnRlbnRU
eXBlIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIGV4cGxpY2l0IENvbnRlbnRUeXBlKGNvbnN0IFN0
cmluZyYgdHlwZSk7Ci0gICAgICAgIENvbnRlbnRUeXBlKCkgPSBkZWZhdWx0OworY2xhc3MgQ29u
dGVudFR5cGUgeworcHVibGljOgorICAgIHN0YXRpYyBDb250ZW50VHlwZSBjcmVhdGUoY29uc3Qg
U3RyaW5nJiB0eXBlKSB7IHJldHVybiBDb250ZW50VHlwZSh0eXBlKTsgfQorICAgIGV4cGxpY2l0
IENvbnRlbnRUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSk7CisgICAgQ29udGVudFR5cGUoKSA9IGRl
ZmF1bHQ7CiAKLSAgICAgICAgU3RyaW5nIHBhcmFtZXRlcihjb25zdCBTdHJpbmcmIHBhcmFtZXRl
ck5hbWUpIGNvbnN0OwotICAgICAgICBTdHJpbmcgdHlwZSgpIGNvbnN0OwotICAgICAgICBWZWN0
b3I8U3RyaW5nPiBjb2RlY3MoKSBjb25zdDsKLSAgICAgICAgY29uc3QgU3RyaW5nJiByYXcoKSBj
b25zdCB7IHJldHVybiBtX3R5cGU7IH0KLSAgICBwcml2YXRlOgotICAgICAgICBTdHJpbmcgbV90
eXBlOwotICAgIH07CisgICAgU3RyaW5nIHBhcmFtZXRlcihjb25zdCBTdHJpbmcmIHBhcmFtZXRl
ck5hbWUpIGNvbnN0OworICAgIFN0cmluZyB0eXBlKCkgY29uc3Q7CisgICAgVmVjdG9yPFN0cmlu
Zz4gY29kZWNzKCkgY29uc3Q7CisgICAgY29uc3QgU3RyaW5nJiByYXcoKSBjb25zdCB7IHJldHVy
biBtX3R5cGU7IH0KKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3R5cGUuaXNF
bXB0eSgpOyB9Citwcml2YXRlOgorICAgIFN0cmluZyBtX3R5cGU7Cit9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L1ZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L1ZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcAppbmRleCAyYzJiNjhkZDQwOTY3ODc2ODFjMWU0MjFj
MWQzNzYwMjk5NmMyNDliLi5kOWZjMDQ5MjlkODUxYWEyZjVhOThlZGIyMDRhNDM2MWY1YzA3ODc2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb1Rvb2xib3hT
b2Z0TGluay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9Ub29s
Ym94U29mdExpbmsuY3BwCkBAIC0zOCw1ICszOCw2IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFKFdlYkNvcmUsIFZpZGVvVG9vbGJveCwgVlREZWNvbXByZXNzaW9uU2Vzc2lvbldhaXRG
CiAjZGVmaW5lIFZURGVjb21wcmVzc2lvblNlc3Npb25XYWl0Rm9yQXN5bmNocm9ub3VzRnJhbWVz
IHNvZnRMaW5rX1ZpZGVvVG9vbGJveF9WVERlY29tcHJlc3Npb25TZXNzaW9uV2FpdEZvckFzeW5j
aHJvbm91c0ZyYW1lcwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgVmlk
ZW9Ub29sYm94LCBWVERlY29tcHJlc3Npb25TZXNzaW9uRGVjb2RlRnJhbWUsIE9TU3RhdHVzLCAo
VlREZWNvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1w
bGVCdWZmZXIsIFZURGVjb2RlRnJhbWVGbGFncyBkZWNvZGVGbGFncywgdm9pZCogc291cmNlRnJh
bWVSZWZDb24sIFZURGVjb2RlSW5mb0ZsYWdzKiBpbmZvRmxhZ3NPdXQpLCAoc2Vzc2lvbiwgc2Ft
cGxlQnVmZmVyLCBkZWNvZGVGbGFncywgc291cmNlRnJhbWVSZWZDb24sIGluZm9GbGFnc091dCkp
CiAjZGVmaW5lIFZURGVjb21wcmVzc2lvblNlc3Npb25EZWNvZGVGcmFtZSBzb2Z0TGlua19WaWRl
b1Rvb2xib3hfVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1lCitTT0ZUX0xJTktfRlVO
Q1RJT05fTUFZX0ZBSUxfRk9SX1NPVVJDRShXZWJDb3JlLCBWaWRlb1Rvb2xib3gsIFZUSXNIYXJk
d2FyZURlY29kZVN1cHBvcnRlZCwgQm9vbGVhbiwgKENNVmlkZW9Db2RlY1R5cGUgY29kZWNUeXBl
KSwgKGNvZGVjVHlwZSkpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBW
aWRlb1Rvb2xib3gsIGtWVFZpZGVvRGVjb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVB
Y2NlbGVyYXRlZFZpZGVvRGVjb2RlciwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtWVFZpZGVvRGVj
b2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRGVjb2RlciBn
ZXRfVmlkZW9Ub29sYm94X2tWVFZpZGVvRGVjb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdh
cmVBY2NlbGVyYXRlZFZpZGVvRGVjb2RlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9WaWRlb1Rvb2xib3hTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvVmlkZW9Ub29sYm94U29mdExpbmsuaAppbmRleCBmYjAwOThlYWM4MTg2NDJm
MzY0YTc1YzE0YjE4NmM1NjNlNDMzYTk3Li5jYzc1MzgzZmI0MzdiODAyNTJkMWI3OGE1OWM3NTM4
NjI5ZDhjNzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRl
b1Rvb2xib3hTb2Z0TGluay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Zp
ZGVvVG9vbGJveFNvZnRMaW5rLmgKQEAgLTM4LDUgKzM4LDcgQEAgU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoV2ViQ29yZSwgVmlkZW9Ub29sYm94LCBWVERlY29tcHJlc3Npb25TZXNzaW9u
V2FpdEYKICNkZWZpbmUgVlREZWNvbXByZXNzaW9uU2Vzc2lvbldhaXRGb3JBc3luY2hyb25vdXNG
cmFtZXMgc29mdExpbmtfVmlkZW9Ub29sYm94X1ZURGVjb21wcmVzc2lvblNlc3Npb25XYWl0Rm9y
QXN5bmNocm9ub3VzRnJhbWVzCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3Jl
LCBWaWRlb1Rvb2xib3gsIFZURGVjb21wcmVzc2lvblNlc3Npb25EZWNvZGVGcmFtZSwgT1NTdGF0
dXMsIChWVERlY29tcHJlc3Npb25TZXNzaW9uUmVmIHNlc3Npb24sIENNU2FtcGxlQnVmZmVyUmVm
IHNhbXBsZUJ1ZmZlciwgVlREZWNvZGVGcmFtZUZsYWdzIGRlY29kZUZsYWdzLCB2b2lkKiBzb3Vy
Y2VGcmFtZVJlZkNvbiwgVlREZWNvZGVJbmZvRmxhZ3MqIGluZm9GbGFnc091dCksIChzZXNzaW9u
LCBzYW1wbGVCdWZmZXIsIGRlY29kZUZsYWdzLCBzb3VyY2VGcmFtZVJlZkNvbiwgaW5mb0ZsYWdz
T3V0KSkKICNkZWZpbmUgVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1lIHNvZnRMaW5r
X1ZpZGVvVG9vbGJveF9WVERlY29tcHJlc3Npb25TZXNzaW9uRGVjb2RlRnJhbWUKK1NPRlRfTElO
S19GVU5DVElPTl9NQVlfRkFJTF9GT1JfSEVBREVSKFdlYkNvcmUsIFZpZGVvVG9vbGJveCwgVlRJ
c0hhcmR3YXJlRGVjb2RlU3VwcG9ydGVkLCBCb29sZWFuLCAoQ01WaWRlb0NvZGVjVHlwZSBjb2Rl
Y1R5cGUpLCAoY29kZWNUeXBlKSkKKyNkZWZpbmUgVlRJc0hhcmR3YXJlRGVjb2RlU3VwcG9ydGVk
IHNvZnRMaW5rX1ZpZGVvVG9vbGJveF9WVElzSGFyZHdhcmVEZWNvZGVTdXBwb3J0ZWQKIFNPRlRf
TElOS19DT05TVEFOVF9GT1JfSEVBREVSKFdlYkNvcmUsIFZpZGVvVG9vbGJveCwga1ZUVmlkZW9E
ZWNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9EZWNvZGVy
LCBDRlN0cmluZ1JlZikKICNkZWZpbmUga1ZUVmlkZW9EZWNvZGVyU3BlY2lmaWNhdGlvbl9FbmFi
bGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9EZWNvZGVyIGdldF9WaWRlb1Rvb2xib3hfa1ZUVmlk
ZW9EZWNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9EZWNv
ZGVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvdXJD
Qy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjYwY2UyZTI5OWRlMGM4NTViNThmMTk1MTdjNjEzMDgwMjAxMGI0MjMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuY3BwCkBA
IC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiRm91ckNDLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RkOjpvcHRpb25hbDxGb3Vy
Q0M+IEZvdXJDQzo6ZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZ1ZhbHVlKQoreworICAg
IGF1dG8gYXNjaWlWYWx1ZSA9IHN0cmluZ1ZhbHVlLmFzY2lpKCk7CisgICAgaWYgKGFzY2lpVmFs
dWUubGVuZ3RoKCkgIT0gNCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGNv
bnN0IGNoYXIqIGRhdGEgPSBhc2NpaVZhbHVlLmRhdGEoKTsKKyAgICBBU1NFUlQoYXNjaWlWYWx1
ZS5kYXRhKCkpOworICAgIHVpbnQzMl90IHZhbHVlID0gZGF0YVszXSA8PCAyNCB8IGRhdGFbMl0g
PDwgMTYgfCBkYXRhWzFdIDw8IDggfCBkYXRhWzBdOworICAgIHJldHVybiBGb3VyQ0ModmFsdWUp
OworfQorCitTdHJpbmcgRm91ckNDOjp0b1N0cmluZygpIGNvbnN0Cit7CisgICAgVmVjdG9yPExD
aGFyLCA0PiBkYXRhID0geworICAgICAgICBMQ2hhcih2YWx1ZSA+PiAyNCksCisgICAgICAgIExD
aGFyKCh2YWx1ZSA+PiAxNikgJiAweEZGKSwKKyAgICAgICAgTENoYXIoKHZhbHVlID4+IDgpICYg
MHhGRiksCisgICAgICAgIExDaGFyKHZhbHVlICYgMHhGRiksCisgICAgfTsKKworICAgIHJldHVy
biBTdHJpbmc6OmFkb3B0KFdURk1vdmUoZGF0YSkpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxMzdhOGMzNmYyNzI5NWVhMTI2
MzZjZDQzNWZiOGRjMzhhNDMyNjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgRm91ckNDIHsKKyAgICBXRUJDT1JFX0VYUE9SVCBGb3Vy
Q0ModWludDMyX3QgdmFsdWUpIDogdmFsdWUodmFsdWUpIHsgfQorCisgICAgU3RyaW5nIHRvU3Ry
aW5nKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Rm91
ckNDPiBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYpOworCisgICAgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IEZvdXJDQyYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIHZhbHVlID09IG90aGVyLnZhbHVlOyB9
CisKKyAgICB1aW50MzJfdCB2YWx1ZTsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCBhODhhZDVmZTk2M2Y3OWQ0M2Uw
ZWQzYjY5ZGYyZGU4MDJjOWY0ZDM2Li5kYTA5YmJhZmE5OTJjZjNjNTljNmFkYmMxZDlkYWY5MWU2
YjllZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwCkBAIC0xNjEsNiArMTYxLDEyIEBAIHB1YmxpYzoKICAgICBib29sIGhhc1Npbmds
ZVNlY3VyaXR5T3JpZ2luKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAor
Y29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgTWVkaWFQbGF5ZXJDbGllbnQ6Om1lZGlhQ29udGVu
dFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkgY29uc3QKK3sKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8VmVjdG9yPENvbnRlbnRUeXBlPj4gY29udGVudFR5cGVzOworICAgIHJldHVy
biBjb250ZW50VHlwZXM7Cit9CisKIHN0YXRpYyBNZWRpYVBsYXllckNsaWVudCYgbnVsbE1lZGlh
UGxheWVyQ2xpZW50KCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TWVkaWFQbGF5ZXJD
bGllbnQ+IGNsaWVudDsKQEAgLTE0NjQsNiArMTQ3MCwxMSBAQCBib29sIE1lZGlhUGxheWVyOjpz
aG91bGREaXNhYmxlU2xlZXAoKSBjb25zdAogICAgIHJldHVybiBjbGllbnQoKS5tZWRpYVBsYXll
clNob3VsZERpc2FibGVTbGVlcCgpOwogfQogCitjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBN
ZWRpYVBsYXllcjo6bWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBj
b25zdAoreworICAgIHJldHVybiBjbGllbnQoKS5tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hh
cmR3YXJlU3VwcG9ydCgpOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggOTY1YjdmYTFiYTJkNzc4OGY3OWFj
NThiMGU5M2I3OTUwZjgzOGFmZi4uMjFhZjRmZmI2Mzk1N2IxMzIxMzRkMmRmN2NhMmZkYzU3ZDUx
MTMwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlczNELmgiCiAKICNp
bmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAj
aW5jbHVkZSAiTGVnYWN5Q0RNU2Vzc2lvbi5oIgogI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1By
aXZhdGUuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCkBAIC0xMTQsNiArMTE1LDcgQEAgc3RydWN0
IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMgewogICAgIFVSTCB1cmw7CiAgICAgYm9vbCBp
c01lZGlhU291cmNlIHsgZmFsc2UgfTsKICAgICBib29sIGlzTWVkaWFTdHJlYW0geyBmYWxzZSB9
OworICAgIFZlY3RvcjxDb250ZW50VHlwZT4gY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVT
dXBwb3J0OwogfTsKIAogZXh0ZXJuIGNvbnN0IFBsYXRmb3JtTWVkaWEgTm9QbGF0Zm9ybU1lZGlh
OwpAQCAtMjczLDYgKzI3NSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdmlydHVhbCBib29s
IG1lZGlhUGxheWVyU2hvdWxkRGlzYWJsZVNsZWVwKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4mIG1lZGlhQ29udGVudFR5cGVz
UmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkgY29uc3Q7CiB9OwogCiBjbGFzcyBNZWRpYVBsYXll
clN1cHBvcnRzVHlwZUNsaWVudCB7CkBAIC01ODcsNiArNTkwLDggQEAgcHVibGljOgogICAgIGNv
bnN0IFN0cmluZyYgY29udGVudFR5cGVDb2RlY3MoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRU
eXBlQ29kZWNzOyB9CiAgICAgYm9vbCBjb250ZW50TUlNRVR5cGVXYXNJbmZlcnJlZEZyb21FeHRl
bnNpb24oKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRNSU1FVHlwZVdhc0luZmVycmVkRnJvbUV4
dGVuc2lvbjsgfQogCisgICAgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgbWVkaWFDb250ZW50
VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBN
ZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggNzc2N2MxNDg1ZmNjNTFl
YWE5MmI0ZjdlNTA2YzNhZGI2NTkwYTFlOC4uMGFkMjk4YjA1ZmMwYTMwNzA1YjFlYjgwMzE2MDhl
YjQ5ZjhmMmYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb24uaApAQCAtMjk2LDYgKzI5Niw3IEBAIHByb3RlY3RlZDoKICAgICBjb25z
dCBTdHJpbmcmIGFzc2V0VVJMKCkgY29uc3QgeyByZXR1cm4gbV9hc3NldFVSTDsgfQogCiAgICAg
TWVkaWFQbGF5ZXIqIHBsYXllcigpIHsgcmV0dXJuIG1fcGxheWVyOyB9CisgICAgY29uc3QgTWVk
aWFQbGF5ZXIqIHBsYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcGxheWVyOyB9CiAKICAgICBTdHJp
bmcgZW5naW5lRGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiQVZGb3VuZGF0
aW9uIjsgfQogICAgIGxvbmcgcGxhdGZvcm1FcnJvckNvZGUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBhc3NldEVycm9yQ29kZSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0VHJhY2tVdGlsaXRpZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNz
ZXRUcmFja1V0aWxpdGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiNTc2Y2VlNTNlMGQ1YTY2MTRmOGQyNzlh
MDIwMjQwYzM5MmNmNmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0VHJhY2tVdGlsaXRpZXMuaApAQCAt
MCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklE
RU8pICYmIFVTRShBVkZPVU5EQVRJT04pCisKKyNpbmNsdWRlICJDb250ZW50VHlwZS5oIgorI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworT0JKQ19DTEFTUyBBVkFzc2V0VHJhY2s7CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworYm9vbCBhc3NldFRyYWNrTWVldHNIYXJkd2FyZURlY29kZVJlcXVp
cmVtZW50cyhBVkFzc2V0VHJhY2sgKiwgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgY29udGVu
dFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVEZWNvZGUpOworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZB
c3NldFRyYWNrVXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFi
YmJkMGY1MjBjM2RlYjk4MjhkNTAwN2JiYTI2YmY4NmVlYzk3NWMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFz
c2V0VHJhY2tVdGlsaXRpZXMubW0KQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBv
cnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQVZBc3NldFRyYWNrVXRpbGl0aWVzLmgiCisKKyNpZiBF
TkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCisKKyNpbXBvcnQgIkZvdXJDQy5oIgor
I2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWQXNzZXRUcmFjay5oPgorCisjaW1wb3J0ICJDb3JlTWVk
aWFTb2Z0TGluay5oIgorI2ltcG9ydCAiVmlkZW9Ub29sYm94U29mdExpbmsuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitib29sIGFzc2V0VHJhY2tNZWV0c0hhcmR3YXJlRGVjb2RlUmVxdWly
ZW1lbnRzKEFWQXNzZXRUcmFjayAqdHJhY2ssIGNvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4mIGNv
bnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlRGVjb2RlKQoreworICAgIC8vIElmIHdlIGNhbid0
IGRldGVybWluZSB3aGV0aGVyIGEgY29kZWMgaGFzIGhhcmR3YXJlIHN1cHBvcnQgb3Igbm90LCBk
ZWZhdWx0IHRvIHRydWUuCisgICAgaWYgKCFjYW5Mb2FkX1ZpZGVvVG9vbGJveF9WVElzSGFyZHdh
cmVEZWNvZGVTdXBwb3J0ZWQoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoY29u
dGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVEZWNvZGUuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKworICAgIFZlY3RvcjxGb3VyQ0M+IGhhcmR3YXJlQ29kZWNzOworICAgIGZvciAo
YXV0byYgY29udGVudFR5cGUgOiBjb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZURlY29kZSkg
eworICAgICAgICBhdXRvIGNvZGVjU3RyaW5ncyA9IGNvbnRlbnRUeXBlLmNvZGVjcygpOworICAg
ICAgICBmb3IgKGF1dG8mIGNvZGVjU3RyaW5nIDogY29kZWNTdHJpbmdzKSB7CisgICAgICAgICAg
ICBhdXRvIGNvZGVjSWRlbnRpZmllciA9IEZvdXJDQzo6ZnJvbVN0cmluZyhjb2RlY1N0cmluZyk7
CisgICAgICAgICAgICBpZiAoY29kZWNJZGVudGlmaWVyKQorICAgICAgICAgICAgICAgIGhhcmR3
YXJlQ29kZWNzLmFwcGVuZChjb2RlY0lkZW50aWZpZXIudmFsdWUoKSk7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBmb3IgKE5TVUludGVnZXIgaSA9IDAsIGNvdW50ID0gdHJhY2suZm9ybWF0RGVz
Y3JpcHRpb25zLmNvdW50OyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICBDTUZvcm1hdERlc2Ny
aXB0aW9uUmVmIGRlc2NyaXB0aW9uID0gKENNRm9ybWF0RGVzY3JpcHRpb25SZWYpdHJhY2suZm9y
bWF0RGVzY3JpcHRpb25zW2ldOworICAgICAgICBpZiAoQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1l
ZGlhVHlwZShkZXNjcmlwdGlvbikgIT0ga0NNTWVkaWFUeXBlX1ZpZGVvKQorICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgQ01WaWRlb0NvZGVjVHlwZSBjb2RlYyA9IENNRm9ybWF0RGVz
Y3JpcHRpb25HZXRNZWRpYVN1YlR5cGUoZGVzY3JpcHRpb24pOworICAgICAgICBpZiAoIWhhcmR3
YXJlQ29kZWNzLmNvbnRhaW5zKEZvdXJDQyhjb2RlYykpKQorICAgICAgICAgICAgY29udGludWU7
CisKKyAgICAgICAgaWYgKCFWVElzSGFyZHdhcmVEZWNvZGVTdXBwb3J0ZWQoY29kZWMpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCAzOGM5MjcwOWUxZGQwNDBiNzcxN2Vm
YjUzOTFiYjE5NTQ3MTYxOGI2Li5hYjE1ZjY0MmVlZGRiNDQ4MTdjOTFiZTdmMWEyMjRhZmNkZWQx
NzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC00MjQsNiArNDI0LDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fY2FjaGVkQ2FuUGxheUZhc3RGb3J3YXJkOwogICAgIGJvb2wgbV9jYWNoZWRD
YW5QbGF5RmFzdFJldmVyc2U7CiAgICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKKyAgICBtdXRh
YmxlIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gbV90cmFja3NBcmVQbGF5YWJsZTsKICNpZiBFTkFCTEUo
V0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAgIG11dGFibGUgYm9vbCBtX2FsbG93c1dpcmVs
ZXNzVmlkZW9QbGF5YmFjazsKICAgICBib29sIG1fc2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQg
eyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggZDA3YTEyNDk2NjJkYjhmODlm
NTNkYjRmN2Q1YWEzOTc5ZWViMTQ1Mi4uOTIzZmRiOTQxNWNiMzg4Yjk1YzkwMTliOTVkMTVhYzY0
MjY4NTYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
ZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCiAKKyNpbXBvcnQgIkFWQXNzZXRU
cmFja1V0aWxpdGllcy5oIgogI2ltcG9ydCAiQVZGb3VuZGF0aW9uTUlNRVR5cGVDYWNoZS5oIgog
I2ltcG9ydCAiQVZGb3VuZGF0aW9uU1BJLmgiCiAjaW1wb3J0ICJBVlRyYWNrUHJpdmF0ZUFWRk9i
akNJbXBsLmgiCkBAIC0xMTQ2LDcgKzExNDcsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmNoZWNrUGxheWFiaWxpdHkoKQogICAgIExPRyhNZWRpYSwgIk1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNoZWNrUGxheWFiaWxpdHkoJXApIiwgdGhp
cyk7CiAgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKIAotICAgIFttX2F2QXNz
ZXQuZ2V0KCkgbG9hZFZhbHVlc0FzeW5jaHJvbm91c2x5Rm9yS2V5czpbTlNBcnJheSBhcnJheVdp
dGhPYmplY3Q6QCJwbGF5YWJsZSJdIGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAgW21fYXZBc3Nl
dC5nZXQoKSBsb2FkVmFsdWVzQXN5bmNocm9ub3VzbHlGb3JLZXlzOltOU0FycmF5IGFycmF5V2l0
aE9iamVjdHM6QCJwbGF5YWJsZSIsIEAidHJhY2tzIiwgbmlsXSBjb21wbGV0aW9uSGFuZGxlcjpe
ewogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrVGhpc10gewogICAgICAgICAgICAgaWYg
KHdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5zY2hlZHVsZU1haW5UaHJlYWRO
b3RpZmljYXRpb24oTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpOb3RpZmljYXRpb246
OkFzc2V0UGxheWFiaWxpdHlLbm93bik7CkBAIC0xNTg5LDcgKzE1OTAsMTcgQEAgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpBc3NldFN0YXR1cyBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjoKICAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckFWQXNzZXRTdGF0
dXNDYW5jZWxsZWQ7IC8vIExvYWRpbmcgb2YgYXQgbGVhc3Qgb25lIGtleSB3YXMgY2FuY2VsbGVk
LgogICAgIH0KIAotICAgIGlmIChbW21fYXZBc3NldC5nZXQoKSB2YWx1ZUZvcktleTpAInBsYXlh
YmxlIl0gYm9vbFZhbHVlXSkKKyAgICBpZiAoIW1fdHJhY2tzQXJlUGxheWFibGUpIHsKKyAgICAg
ICAgbV90cmFja3NBcmVQbGF5YWJsZSA9IHRydWU7CisgICAgICAgIGZvciAoQVZBc3NldFRyYWNr
ICp0cmFjayBpbiBbbV9hdkFzc2V0IHRyYWNrc10pIHsKKyAgICAgICAgICAgIGlmICghYXNzZXRU
cmFja01lZXRzSGFyZHdhcmVEZWNvZGVSZXF1aXJlbWVudHModHJhY2ssIHBsYXllcigpLT5tZWRp
YUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpKSkgeworICAgICAgICAgICAg
ICAgIG1fdHJhY2tzQXJlUGxheWFibGUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChbW21fYXZBc3NldC5n
ZXQoKSB2YWx1ZUZvcktleTpAInBsYXlhYmxlIl0gYm9vbFZhbHVlXSAmJiBtX3RyYWNrc0FyZVBs
YXlhYmxlLnZhbHVlKCkpCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckFWQXNzZXRTdGF0dXNQ
bGF5YWJsZTsKIAogICAgIHJldHVybiBNZWRpYVBsYXllckFWQXNzZXRTdGF0dXNMb2FkZWQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
Lm1tCmluZGV4IDU1ZDI2ZjZjZjcyMTNiN2U1MmMzOTE4NmY5ZGNhMWJjNGEwMTEwODYuLjFiZGQ5
ODdiNWY2NTYwOTM4N2IyYzI4MTk2ZmNkN2Q4MjNmYmMxZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCkBAIC0yOCw2ICsy
OCw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoQVZGT1VOREFUSU9OKQog
CisjaW1wb3J0ICJBVkFzc2V0VHJhY2tVdGlsaXRpZXMuaCIKICNpbXBvcnQgIkFWRm91bmRhdGlv
blNQSS5oIgogI2ltcG9ydCAiQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCIK
ICNpbXBvcnQgIkNETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uLmgiCkBAIC00MzEsNiArNDMy
LDE2IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFBhcnNlU3RyZWFtRGF0
YUFzQXNzZXQoQVZBc3NldCogYXNzZXQpCiB7CiAgICAgTE9HKE1lZGlhU291cmNlLCAiU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFBhcnNlU3RyZWFtRGF0YUFzQXNzZXQoJXApIiwgdGhp
cyk7CiAKKyAgICBpZiAoIW1fbWVkaWFTb3VyY2UpCisgICAgICAgIHJldHVybjsKKworICAgIGZv
ciAoQVZBc3NldFRyYWNrICp0cmFjayBpbiBbYXNzZXQgdHJhY2tzXSkgeworICAgICAgICBpZiAo
IWFzc2V0VHJhY2tNZWV0c0hhcmR3YXJlRGVjb2RlUmVxdWlyZW1lbnRzKHRyYWNrLCBtX21lZGlh
U291cmNlLT5wbGF5ZXIoKS0+bWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBv
cnQoKSkpIHsKKyAgICAgICAgICAgIG1fcGFyc2luZ1N1Y2NlZWRlZCA9IGZhbHNlOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCiAgICAgbV9hc3NldCA9IGFzc2V0Owog
CiAgICAgbV92aWRlb1RyYWNrcy5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKaW5kZXggZGMzYzMxMjBlNGZlNDJkOGQ5NDEw
ZDk2ZWFlODY4NDE3NDgzYmYwYy4uMjE1MzBjOGI4ZWVkMTRjZDQ2ZTYxZmRiNGZjY2U1OGZkOTcy
NWNlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVm
aW5pdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZp
bml0aW9ucy5oCkBAIC00MDEsNiArNDAxLDcgQEAKICAgICBGT1JfRUFDSF9XRUJLSVRfRk9OVF9G
QU1JTFlfUFJFRkVSRU5DRShtYWNybykgXAogICAgIG1hY3JvKERlZmF1bHRUZXh0RW5jb2RpbmdO
YW1lLCBkZWZhdWx0VGV4dEVuY29kaW5nTmFtZSwgU3RyaW5nLCBTdHJpbmcsIGRlZmF1bHRUZXh0
RW5jb2RpbmdOYW1lRm9yU3lzdGVtTGFuZ3VhZ2UoKSwgIiIsICIiKSBcCiAgICAgbWFjcm8oRlRQ
RGlyZWN0b3J5VGVtcGxhdGVQYXRoLCBmdHBEaXJlY3RvcnlUZW1wbGF0ZVBhdGgsIFN0cmluZywg
U3RyaW5nLCAiIiwgIiIsICIiKSBcCisgICAgbWFjcm8oTWVkaWFDb250ZW50VHlwZXNSZXF1aXJp
bmdIYXJkd2FyZVN1cHBvcnQsIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBw
b3J0LCBTdHJpbmcsIFN0cmluZywgIiIsICIiLCAiIikgXAogICAgIFwKIAogI2RlZmluZSBGT1Jf
RUFDSF9XRUJLSVRfU1RSSU5HX1BSRUZFUkVOQ0VfTk9UX0lOX1dFQkNPUkUobWFjcm8pIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRl
eCAxYjdiOGMzZmEyMDVmNWE2M2QwOWZlODZkMDM5MjdjYTJjZDI1ZDkwLi4yNjlhZTg3ODFhYmZl
NzdjNGMzZGJkZGI2Nzc2MDYxZmZhY2Q4MzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC0xNzcwLDMgKzE3NzAsMTQgQEAgYm9v
bCBXS1ByZWZlcmVuY2VzR2V0TWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50KFdL
UHJlZmVyZW5jZXNSZWYgcHJlZmUKIHsKICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVm
KS0+bWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50KCk7CiB9CisKK3ZvaWQgV0tQ
cmVmZXJlbmNlc1NldE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KFdL
UHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIFdLU3RyaW5nUmVmIGNvZGVjcykKK3sKKyAg
ICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hh
cmR3YXJlU3VwcG9ydCh0b1dURlN0cmluZyhjb2RlY3MpKTsKK30KKworV0tTdHJpbmdSZWYgV0tQ
cmVmZXJlbmNlc0NvcHlNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydChX
S1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQoreworICAgIHJldHVybiB0b0NvcGllZEFQ
SSh0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3
YXJlU3VwcG9ydCgpKTsKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAppbmRleCBlZmRhODI1MzYxNTJhYmM5
ZjQ1NTgyMmUyY2E2NDhmMjdkNzBlNzAxLi40ODZiYWJjMzYyMjRiNzZlMWQ1MDM5MmYzNTE3MDhi
Y2ViNmEwMWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
cmVmZXJlbmNlc1JlZlByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaApAQCAtNDk3LDYgKzQ5NywxMCBAQCBXS19FWFBP
UlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0SW52aXNpYmxlTWVkaWFBdXRvcGxheVBlcm1pdHRlZChX
S1ByZWZlcmVuY2VzUmVmKQogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldE1lZGlhVXNl
ckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudChXS1ByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcp
OwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldE1lZGlhVXNlckdlc3R1cmVJbmhlcml0
c0Zyb21Eb2N1bWVudChXS1ByZWZlcmVuY2VzUmVmKTsKIAorLy8gRGVmYXVsdHMgdG8gYW4gZW1w
dHkgc3RyaW5nCitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0TWVkaWFDb250ZW50VHlw
ZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoV0tQcmVmZXJlbmNlc1JlZiwgV0tTdHJpbmdSZWYp
OworV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLUHJlZmVyZW5jZXNDb3B5TWVkaWFDb250ZW50VHlw
ZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoV0tQcmVmZXJlbmNlc1JlZik7CisKICNpZmRlZiBf
X2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDY0OTJkZmYxZjM2YjcwNTNiMDlhMGYxYWM4ODc5MDEx
YWRlMGM4NWEuLjJmMDNkZDNlYjE5ODdkODc2N2YyYjVjMWRiZTgwMzdlY2VmN2U1MDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC01
MDQsNiArNTA0LDggQEAgLSAodm9pZClfaW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uOihXS1dl
YlZpZXdDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgogCiAgICAgcGFnZUNvbmZpZ3VyYXRp
b24tPnByZWZlcmVuY2VWYWx1ZXMoKS5zZXQoV2ViS2l0OjpXZWJQcmVmZXJlbmNlc0tleTo6bmVl
ZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVpcmtLZXkoKSwgV2ViS2l0OjpXZWJQcmVmZXJl
bmNlc1N0b3JlOjpWYWx1ZSghIVtfY29uZmlndXJhdGlvbiBfbmVlZHNTdG9yYWdlQWNjZXNzRnJv
bUZpbGVVUkxzUXVpcmtdKSk7CiAKKyAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZVZh
bHVlcygpLnNldChXZWJLaXQ6OldlYlByZWZlcmVuY2VzS2V5OjptZWRpYUNvbnRlbnRUeXBlc1Jl
cXVpcmluZ0hhcmR3YXJlU3VwcG9ydEtleSgpLCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmU6
OlZhbHVlKFtfY29uZmlndXJhdGlvbiBfbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2Fy
ZVN1cHBvcnRdKSk7CisKICNpZiBQTEFURk9STShJT1MpCiAgICAgQ0dSZWN0IGJvdW5kcyA9IHNl
bGYuYm91bmRzOwogICAgIF9zY3JvbGxWaWV3ID0gYWRvcHROUyhbW1dLU2Nyb2xsVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpib3VuZHNdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQppbmRleCBi
NGJmM2E5ODlkMGViMTQ5OTQzOGExYjVjZTUyY2FlNzMzM2QwZjA3Li40MDMwZDUzYTkxNzdiODI5
ODNmODZkYWZiMzRiOTYxNGY2YWEwOGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCkBAIC0x
MzcsNiArMTM3LDcgQEAgQGltcGxlbWVudGF0aW9uIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gewog
ICAgIEJPT0wgX25lZWRzU3RvcmFnZUFjY2Vzc0Zyb21GaWxlVVJMc1F1aXJrOwogCiAgICAgTlNT
dHJpbmcgKl9vdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeTsKKyAgICBOU1N0cmluZyAqX21l
ZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OwogfQogCiAtIChpbnN0YW5j
ZXR5cGUpaW5pdApAQCAtMzMwLDYgKzMzMSw3IEBAIC0gKGlkKWNvcHlXaXRoWm9uZTooTlNab25l
ICopem9uZQogICAgIGNvbmZpZ3VyYXRpb24tPl9vdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGlj
eSA9IHNlbGYtPl9vdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeTsKIAogICAgIGNvbmZpZ3Vy
YXRpb24tPl91cmxTY2hlbWVIYW5kbGVycy5zZXQoYWRvcHROUyhbc2VsZi5fdXJsU2NoZW1lSGFu
ZGxlcnMgbXV0YWJsZUNvcHlXaXRoWm9uZTp6b25lXSkpOworICAgIGNvbmZpZ3VyYXRpb24tPl9t
ZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCA9IHNlbGYuX21lZGlhQ29u
dGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OwogCiAgICAgcmV0dXJuIGNvbmZpZ3Vy
YXRpb247CiB9CkBAIC04MTYsNiArODE4LDE2IEBAIC0gKHZvaWQpX3NldE92ZXJyaWRlQ29udGVu
dFNlY3VyaXR5UG9saWN5OihOU1N0cmluZyAqKW92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9sCiAg
ICAgX292ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5ID0gb3ZlcnJpZGVDb250ZW50U2VjdXJp
dHlQb2xpY3k7CiB9CiAKKy0gKE5TU3RyaW5nICopX21lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5n
SGFyZHdhcmVTdXBwb3J0Cit7CisgICAgcmV0dXJuIF9tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmlu
Z0hhcmR3YXJlU3VwcG9ydDsKK30KKworLSAodm9pZClfc2V0TWVkaWFDb250ZW50VHlwZXNSZXF1
aXJpbmdIYXJkd2FyZVN1cHBvcnQ6KE5TU3RyaW5nICopbWVkaWFDb250ZW50VHlwZXNSZXF1aXJp
bmdIYXJkd2FyZVN1cHBvcnQKK3sKKyAgICBfbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJk
d2FyZVN1cHBvcnQgPSBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsK
K30KKwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAoV0tE
ZXByZWNhdGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCmluZGV4IDk1MWJm
ZGMwYTQzM2ZlNDEyMGU2N2FkNGE2ZjczMzFkZDA5NjA0NzMuLjhjNjMyYzBhOGIwZWJlYTE1MDRm
YjU0NzM0MzlmMzVhZGJkYzc3YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRl
LmgKQEAgLTc2LDYgKzc2LDcgQEAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFJl
cXVpcmVzVXNlckFjdGlvbkZvclZpZGVvUGxheWJhY2s6KSBCT09MIF9yZXF1aXJlc1VzZXJBY3Rp
b25Gb3JWaWRlb1BsYXliYWNrIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIm1l
ZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2siLCBtYWNvc3goMTAuMTIsIDEw
LjEyKSwgaW9zKDEwLjAsIDEwLjApKTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0T3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3k6KSBOU1N0cmluZyAqX292ZXJyaWRlQ29u
dGVudFNlY3VyaXR5UG9saWN5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWVkaWFD
b250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ6KSBOU1N0cmluZyAqX21lZGlhQ29u
dGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4gYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCmluZGV4IDI0
MzRjNmVlNDE3MTZmM2Q0M2Q2MmI1MjE5ODA1NmUzZWJiNDQ3NTkuLjExYWIyZDI1ZjFjNWNhOTJl
MWUwNDMwNjRiODNmM2EyYjNiMzUwMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgpAQCAtODksNyArODksOSBAQAogICAg
IChpb2tpdC1wcm9wZXJ0eSAiSU9HZW5lcmFsSW50ZXJlc3QiKQogICAgIChpb2tpdC1wcm9wZXJ0
eSAiSU9HTEJ1bmRsZU5hbWUiKQogICAgIChpb2tpdC1wcm9wZXJ0eSAiSU9JMkNUcmFuc2FjdGlv
blR5cGVzIikKKyAgICAoaW9raXQtcHJvcGVydHkgIklPR1ZBVlRDYXBhYmlsaXRpZXMiKQogICAg
IChpb2tpdC1wcm9wZXJ0eS1yZWdleCAjIl5JT0dWQShDb2RlY3xFbmNvZGVyUmVzdHJpY3RlZCki
KQorICAgIChpb2tpdC1wcm9wZXJ0eS1yZWdleCAjIl5JT0dWQSguKilEZWNvZGUkIikKICAgICAo
aW9raXQtcHJvcGVydHkgIklPTWF0Y2hDYXRlZ29yeSIpCiAgICAgKGlva2l0LXByb3BlcnR5LXJl
Z2V4ICMiXklPTmFtZU1hdGNoKHxlZCkiKQogICAgIChpb2tpdC1wcm9wZXJ0eSAiSU9QTVN0cmlj
dFRyZWVPcmRlciIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312033</attachid>
            <date>2017-06-05 15:01:58 -0700</date>
            <delta_ts>2017-06-05 15:40:34 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-172787-20170605150157.patch</filename>
            <type>text/plain</type>
            <size>50946</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3NjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRjMjgxMjVkNzVkMmFlY2ZiMzBlYTAx
YmZjYTdlYTMwMzgzZjAzMjQuLmEyYmZiYmM2NjA5ZDUxZDFiNDM1MTgxODdkZmZiNDNlZDE0NDI4
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMDYtMDUgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgY2xpZW50cyB0byBzcGVjaWZ5IGEgbGlzdCBv
ZiBjb2RlY3Mgd2hpY2ggc2hvdWxkIHJlcXVpcmUgaGFyZHdhcmUgZGVjb2RlIHN1cHBvcnQuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI3ODcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIEFkZCBhIGNv
dXBsZSBvZiBjb252ZW5pZW5jZSBtZXRob2RzOgorICAgICAgICAtIGEgU3RyaW5nOjpzcGxpdCgp
IHRoYXQgcmV0dXJucyBhIHZlY3RvciAocmF0aGVyIHRoYW4gdGFraW5nIGFuIG91dC1yZWZlcmVu
Y2UgdG8gYSB2ZWN0b3IpLgorICAgICAgICAtIEEgVmVjdG9yOjptYXAoKSB0ZW1wbGF0ZSB3aGlj
aCB0YWtlcyBhIENhbGxhYmxlIGFuZCByZXR1cm5zIGEgVmVjdG9yIG9mIGEgZGlmZmVyZW50IHR5
cGUuCisKKyAgICAgICAgKiB3dGYvVmVjdG9yLmg6CisgICAgICAgIChXVEY6OlZlY3Rvcjo6bWFw
KToKKyAgICAgICAgKiB3dGYvdGV4dC9XVEZTdHJpbmcuaDoKKyAgICAgICAgKFdURjo6U3RyaW5n
OjpzcGxpdCk6CisKIDIwMTctMDUtMzEgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgR2V0IDxjaHJvbm8+IG91dCBvZiBTdGRMaWJFeHRyYXMuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGIzNzVmNjAwYjliYjEwZGMwMTQwY2RiNDg5OGFjZDM5MDEyNDM5ZWUuLjg1MzRi
NDU0NTkwYzI3MzMwZDhiNDVkMGRjZjkzMjE4Y2U5ZDQxN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNiBAQAorMjAxNy0wNi0wNSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBbGxvdyBjbGllbnRzIHRvIHNwZWNpZnkgYSBsaXN0IG9mIGNvZGVjcyB3aGljaCBz
aG91bGQgcmVxdWlyZSBoYXJkd2FyZSBkZWNvZGUgc3VwcG9ydC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mjc4NworCisgICAgICAgIFJldmlld2Vk
IGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgQWRkIGEgbmV3IHNldHRpbmcsIGNoZWNr
ZWQgYnkgSFRNTE1lZGlhRWxlbWVudCwgd2hpY2ggYWxsb3dzIE1lZGlhUGxheWVyUHJpdmF0ZSBp
bXBsZW1lbnRhdGlvbgorICAgICAgICB0byByZXF1aXJlIHRoYXQgdGhlIHNwZWNpZmllZCBjb2Rl
Y3MgaGF2ZSBoYXJkd2FyZSBzdXBwb3J0LiBUaGlzIHJlcXVpcmVtZW50IHdpbGwgYmUgc3VwcG9y
dGVkCisgICAgICAgIGluIHRoZSBub3JtYWwgbWVkaWEgbG9hZGluZyBwYXRoIGFuZCB0aGUgTVNF
IHBhdGggb24gQ29jb2EgcG9ydHMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdh
cmVTdXBwb3J0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAg
KiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRNZWRp
YUNvZGVjc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCk6CisgICAgICAgICogcGFnZS9TZXR0aW5n
cy5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6Om1lZGlhQ29kZWNzUmVxdWlyaW5nSGFy
ZHdhcmVTdXBwb3J0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9WaWRlb1Rvb2xib3hTb2Z0
TGluay5jcHA6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvVmlkZW9Ub29sYm94U29mdExpbmsu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6Om1lZGlhQ29kZWNzUmVxdWlyaW5nSGFyZHdhcmVT
dXBwb3J0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9B
VkFzc2V0VHJhY2tVdGlsaXRpZXMuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OmFzc2V0VHJhY2tNZWV0c0hhcmR3YXJlRGVjb2RlUmVxdWlyZW1lbnRz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OmNoZWNrUGxheWFiaWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6YXNzZXRTdGF0dXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFBhcnNlU3RyZWFt
RGF0YUFzQXNzZXQpOgorCiAyMDE3LTA1LTMxICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIEdldCA8Y2hyb25vPiBvdXQgb2YgU3RkTGliRXh0cmFzLmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBiNDRkMTJlNTAzYzk4NTAwYTFhMGNmYTMxOTMyNDRkYzJhNmUyOTIxLi5m
NjAzNzc2YmQwN2FkOWZlNDdjZjEwNjhmZmU2ZTkzZmM2N2NhYzdhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjggQEAKKzIwMTctMDYtMDUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CisKKyAgICAgICAgQWxsb3cgY2xpZW50cyB0byBzcGVjaWZ5IGEgbGlzdCBvZiBjb2RlY3Mgd2hp
Y2ggc2hvdWxkIHJlcXVpcmUgaGFyZHdhcmUgZGVjb2RlIHN1cHBvcnQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI3ODcKKworICAgICAgICBSZXZp
ZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIEFkZCBhIFdLV2ViUGFnZUNvbmZp
Z3VyYXRpb24gKGFuZCBhc3NvY2lhdGVkIFdlYlByZWZlcmVuY2VzIGFuZCBXS1ByZWZlcmVuY2Vz
UmVmKSBwcm9wZXJ0aWVzCisgICAgICAgIGFsbG93aW5nIGNsaWVudHMgdG8gcmVxdWlyZSBzcGVj
aWZpZWQgY29kZWNzIGhhdmUgaGFyZHdhcmUgZGVjb2RlIHN1cHBvcnQuIEFsc28gb3BlbiB1cCB0
aGUKKyAgICAgICAgc2FuZGJveCBvbiBDb2NvYSBwb3J0cyB0byBzZXJ2aWNlcyByZXF1aXJlZCB0
byBjaGVjayBmb3IgaGFyZHdhcmUgZGVjb2RlIGF2YWlsYWJpbGl0eS4KKworICAgICAgICAqIFNo
YXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1NldE1lZGlhQ29k
ZWNzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNDb3B5
TWVkaWFDb2RlY3NSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2luaXRpYWxpemVX
aXRoQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
Y29weVdpdGhab25lOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF9tZWRp
YUNvZGVjc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydF0pOgorICAgICAgICAoLVtXS1dlYlZpZXdD
b25maWd1cmF0aW9uIF9zZXRNZWRpYUNvZGVjc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2
YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbjoK
KwogMjAxNy0wNS0zMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBHZXQgPGNocm9ubz4gb3V0IG9mIFN0ZExpYkV4dHJhcy5oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9WZWN0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCmluZGV4IGY4
ZDQ3Zjk5NThmNjg5ZmEzMDNlOGM0ZTEzMzI1NzA0Yjk3NWEyMjcuLmUxNWY2NWM1N2JjYTlmNGVh
YjkzYTMyY2RiMjgyNWY0NTgzYTAxY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1ZlY3Rv
ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCkBAIC03ODAsNiArNzgwLDggQEAgcHVi
bGljOgogCiAgICAgdm9pZCBjaGVja0NvbnNpc3RlbmN5KCk7CiAKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBNYXBGdW5jdGlvbiwgdHlwZW5hbWUgUiA9IHR5cGVuYW1lIHN0ZDo6cmVzdWx0X29mPE1h
cEZ1bmN0aW9uKGNvbnN0IFQmKT46OnR5cGU+IFZlY3RvcjxSPiBtYXAoTWFwRnVuY3Rpb24pIGNv
bnN0OworCiBwcml2YXRlOgogICAgIHZvaWQgZXhwYW5kQ2FwYWNpdHkoc2l6ZV90IG5ld01pbkNh
cGFjaXR5KTsKICAgICBUKiBleHBhbmRDYXBhY2l0eShzaXplX3QgbmV3TWluQ2FwYWNpdHksIFQq
KTsKQEAgLTE0NTcsNiArMTQ1OSwxNiBAQCBpbmxpbmUgdm9pZCBWZWN0b3I8VCwgaW5saW5lQ2Fw
YWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+OjpyZXZlcnNlKCkKICAgICAgICAg
c3RkOjpzd2FwKGF0KGkpLCBhdChtX3NpemUgLSAxIC0gaSkpOwogfQogCit0ZW1wbGF0ZTx0eXBl
bmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlciwg
c2l6ZV90IG1pbkNhcGFjaXR5PiB0ZW1wbGF0ZTx0eXBlbmFtZSBNYXBGdW5jdGlvbiwgdHlwZW5h
bWUgUj4KK2lubGluZSBWZWN0b3I8Uj4gVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxv
d0hhbmRsZXIsIG1pbkNhcGFjaXR5Pjo6bWFwKE1hcEZ1bmN0aW9uIG1hcEZ1bmN0aW9uKSBjb25z
dAoreworICAgIFZlY3RvcjxSPiByZXN1bHQ7CisgICAgcmVzdWx0LnJlc2VydmVJbml0aWFsQ2Fw
YWNpdHkoc2l6ZSgpKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemUoKTsgKytpKQor
ICAgICAgICByZXN1bHQudW5jaGVja2VkQXBwZW5kKG1hcEZ1bmN0aW9uKGF0KGkpKSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKwogdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNh
cGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW5DYXBhY2l0eT4KIGlu
bGluZSBNYWxsb2NQdHI8VD4gVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRs
ZXIsIG1pbkNhcGFjaXR5Pjo6cmVsZWFzZUJ1ZmZlcigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcu
aAppbmRleCA2YTI0MDZjODcwNGJiNjlhYzMxMmFhYmNlNDIyMDA5MDBlNjZmZGUxLi5kYWQwNzJj
NzY5NTE2MDliNjkxNWVjY2MwYmEwNzg2NzRlZWQwYzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1dURlN0cmluZy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5n
LmgKQEAgLTM3MCw2ICszNzAsMTMgQEAgcHVibGljOgogICAgICAgICBzcGxpdChzZXBhcmF0b3Is
IGZhbHNlLCByZXN1bHQpOwogICAgIH0KIAorICAgIFZlY3RvcjxTdHJpbmc+IHNwbGl0KGNvbnN0
IFN0cmluZyYgc2VwYXJhdG9yKSBjb25zdAorICAgIHsKKyAgICAgICAgVmVjdG9yPFN0cmluZz4g
cmVzdWx0OworICAgICAgICBzcGxpdChzZXBhcmF0b3IsIGZhbHNlLCByZXN1bHQpOworICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgIH0KKwogICAgIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBpbnQg
dG9JbnRTdHJpY3QoYm9vbCogb2sgPSBudWxscHRyLCBpbnQgYmFzZSA9IDEwKSBjb25zdDsKICAg
ICBXVEZfRVhQT1JUX1NUUklOR19BUEkgdW5zaWduZWQgdG9VSW50U3RyaWN0KGJvb2wqIG9rID0g
bnVsbHB0ciwgaW50IGJhc2UgPSAxMCkgY29uc3Q7CiAgICAgV1RGX0VYUE9SVF9TVFJJTkdfQVBJ
IGludDY0X3QgdG9JbnQ2NFN0cmljdChib29sKiBvayA9IG51bGxwdHIsIGludCBiYXNlID0gMTAp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDg2YTI2YTg0YWRmZmEwZGZlN2Y2Mzc5NDA5MjY5NmQzOGNjNDcxOWUuLjgz
NzlmZjI3NGRkY2U5OTc5MjhkYWU2NGFlMmNlMGNiYjBjM2JkODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3NzcsNyArMTc3
Nyw3IEBACiAJCTQxQzc2MEIxMEVERTAzRDMwMEMxNjU1RiAvKiBTY3JpcHRTdGF0ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFDNzYwQjAwRURFMDNE
MzAwQzE2NTVGIC8qIFNjcmlwdFN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDFDQUQ3MUUxRUEwOTBBMTAwMTc4MTY0IC8qIFZpZGVvVG9v
bEJveEVuY29kZXJGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxQ0FENzFDMUVBMDkwNTcwMDE3ODE2NCAvKiBWaWRlb1Rvb2xCb3hFbmNv
ZGVyRmFjdG9yeS5jcHAgKi87IH07CiAJCTQxQ0Y4QkU3MUQ0NjIyNjcwMDcwN0RDOSAvKiBGZXRj
aEJvZHlDb25zdW1lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MUNGOEJFNDFENDYyMjIwMDA3MDdEQzkgLyogRmV0Y2hCb2R5Q29uc3VtZXIuY3Bw
ICovOyB9OwotCQk0MUQwMTVDQTBGNEI1QzcxMDA0QTY2MkYgLyogQ29udGVudFR5cGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRDAxNUM4MEY0QjVD
NzEwMDRBNjYyRiAvKiBDb250ZW50VHlwZS5oICovOyB9OworCQk0MUQwMTVDQTBGNEI1QzcxMDA0
QTY2MkYgLyogQ29udGVudFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxRDAxNUM4MEY0QjVDNzEwMDRBNjYyRiAvKiBDb250ZW50VHlwZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxRDAxNUNC
MEY0QjVDNzEwMDRBNjYyRiAvKiBDb250ZW50VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUQwMTVDOTBGNEI1QzcxMDA0QTY2MkYgLyogQ29u
dGVudFR5cGUuY3BwICovOyB9OwogCQk0MURFRkNCNTFFNTZDMUJEMDAwRDlFNUYgLyogSlNET01N
YXBMaWtlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxREVGQ0IzMUU1NkMxQjkwMDBEOUU1RiAvKiBKU0RPTU1hcExpa2UuY3BwICovOyB9OwogCQk0
MURFRkNCNjFFNTZDMUJEMDAwRDlFNUYgLyogSlNET01NYXBMaWtlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURFRkNCNDFFNTZDMUI5MDAwRDlFNUYg
LyogSlNET01NYXBMaWtlLmggKi87IH07CkBAIC02MTU0LDYgKzYxNTQsOCBAQAogCQlDRDUyMDlF
NjFCMEJEOUUxMDA3NzE4NEUgLyogSFRNTE1lZGlhRWxlbWVudEVudW1zLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDUyMDlFNTFCMEJEOUUxMDA3NzE4
NEUgLyogSFRNTE1lZGlhRWxlbWVudEVudW1zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0Q1MjQ4MUExOEUyMDBFRDAwMDhBMDdEIC8qIFNsZWVw
RGlzYWJsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q1MjQ4MTgxOEUyMDBFRDAwMDhBMDdEIC8qIFNsZWVwRGlzYWJsZXIuY3BwICovOyB9Owog
CQlDRDUyNDgxQjE4RTIwMEVEMDAwOEEwN0QgLyogU2xlZXBEaXNhYmxlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1MjQ4MTkxOEUyMDBFRDAwMDhB
MDdEIC8qIFNsZWVwRGlzYWJsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQlDRDUyNUJBMzFFRTBCMTA3MDA3ODhERjUgLyogRm91ckNDLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTI1QkExMUVF
MEIxMDcwMDc4OERGNSAvKiBGb3VyQ0MuY3BwICovOyB9OworCQlDRDUyNUJBNDFFRTBCMTA3MDA3
ODhERjUgLyogRm91ckNDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDUyNUJBMjFFRTBCMTA3MDA3ODhERjUgLyogRm91ckNDLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0Q1MzkzRDMxNzVFMDE4NjAw
QzA3MTIzIC8qIEpTTWVtb3J5SW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDUzOTNEMTE3NUUwMTg2MDBDMDcxMjMgLyogSlNNZW1vcnlJbmZv
LmNwcCAqLzsgfTsKIAkJQ0Q1MzkzRDQxNzVFMDE4NjAwQzA3MTIzIC8qIEpTTWVtb3J5SW5mby5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1MzkzRDIx
NzVFMDE4NjAwQzA3MTIzIC8qIEpTTWVtb3J5SW5mby5oICovOyB9OwogCQlDRDU0QTc2MjE4MEY5
RjcwMDBCMDc2QzkgLyogQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1NEE3NjAxODBG
OUY3MDAwQjA3NkM5IC8qIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmNwcCAq
LzsgfTsKQEAgLTYzMDIsNiArNjMwNCw4IEBACiAJCUNERUE3NjM1MTQ2MEI3MUEwMDhCMzFGMSAv
KiBDbG9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDREVBNzYzMzE0NjBCNDYyMDA4QjMxRjEgLyogQ2xvY2suY3BwICovOyB9OwogCQlDREVBN0M4
NDEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQTdDODIxMjc2MjMwNDAwQjg0NkREIC8q
IFJlbmRlckZ1bGxTY3JlZW4uaCAqLzsgfTsKIAkJQ0RFQTdDODUxMjc2MjMwNDAwQjg0NkREIC8q
IFJlbmRlckZ1bGxTY3JlZW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0RFQTdDODMxMjc2MjMwNDAwQjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4u
Y3BwICovOyB9OworCQlDREVDQTg5QTFFREY0NDdEMDBEQ0IwOEIgLyogQVZBc3NldFRyYWNrVXRp
bGl0aWVzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0RFQ0E4OTgxRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5tbSAqLzsg
fTsKKwkJQ0RFQ0E4OUIxRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQ0E4OTkx
RURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5oICovOyB9OwogCQlDREVF
MzkzNzE3OTc0MjU5MDAxRDc1ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREVFMzkzNjE3OTc0MjU5MDAxRDc1
ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgKi87IH07CiAJCUNERUY0RkQ3MTdFODVDOEYwMEFF
RTI0QiAvKiBHcmlkTGVuZ3RoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyogR3JpZExlbmd0aC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERUZBMjI4MUU3
NjY5RTgwMDBBRTk5QyAvKiBQbGF0Zm9ybUF1ZGlvRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFNjY3QTExRTRCQkE0RDAwRTgxNTRBIC8qIFBs
YXRmb3JtQXVkaW9EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTE0Njk0LDYgKzE0Njk4LDggQEAKIAkJQ0Q1MjA5RTUxQjBCRDlFMTAwNzcx
ODRFIC8qIEhUTUxNZWRpYUVsZW1lbnRFbnVtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBIVE1MTWVkaWFFbGVtZW50RW51bXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0Q1MjQ4MTgxOEUyMDBFRDAwMDhBMDdEIC8qIFNsZWVwRGlzYWJsZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2xlZXBEaXNhYmxlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTI0ODE5MThFMjAwRUQwMDA4QTA3RCAvKiBTbGVl
cERpc2FibGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNsZWVwRGlzYWJs
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q1MjVCQTExRUUwQjEwNzAwNzg4
REY1IC8qIEZvdXJDQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3VyQ0MuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDRDUyNUJBMjFFRTBCMTA3MDA3ODhERjUgLyogRm91ckND
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEZvdXJDQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDRDUzOTNDQjE3NURDQ0U2MDBDMDcxMjMgLyogTWVtb3J5SW5mby5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNZW1vcnlJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNENTM5M0NDMTc1RENDRTYwMEMwNzEyMyAvKiBNZW1vcnlJbmZvLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBNZW1vcnlJbmZvLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0Q1MzkzRDExNzVFMDE4NjAwQzA3MTIzIC8qIEpTTWVtb3J5SW5mby5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lbW9yeUluZm8uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ4NzcsNiArMTQ4ODMsOCBAQAogCQlDREVBNzYzMzE0
NjBCNDYyMDA4QjMxRjEgLyogQ2xvY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ2xvY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREVBN0M4
MjEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW5kZXJGdWxsU2NyZWVuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNERUE3QzgzMTI3NjIzMDQwMEI4NDZERCAvKiBSZW5kZXJGdWxsU2NyZWVuLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckZ1bGxTY3JlZW4u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREVDQTg5ODFFREY0NDdEMDBEQ0Iw
OEIgLyogQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQVZB
c3NldFRyYWNrVXRpbGl0aWVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREVD
QTg5OTFFREY0NDdEMDBEQ0IwOEIgLyogQVZBc3NldFRyYWNrVXRpbGl0aWVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFWQXNzZXRUcmFja1V0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDREVFMzkzNjE3OTc0MjU5MDAxRDc1ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQdWJsaWNVUkxNYW5hZ2VyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFRTM5MzgxNzk3NDI3NDAwMUQ3NTgwIC8q
IFVSTFJlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVSTFJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNERUY0RkQ2MTdFODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3Ro
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyaWRMZW5ndGguaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzMzE3LDYgKzIzMzI1LDggQEAKIAkJCQk1MDFCQUFB
ODEzOTUwRTJDMDBGN0FDRUIgLyogV2luZFJ1bGUuaCAqLywKIAkJCQkzNzk5MTk5NDEyMDBEREY0
MDBFQTA0MUMgLyogV09GRkZpbGVGb3JtYXQuY3BwICovLAogCQkJCTM3OTkxOTk1MTIwMERERjQw
MEVBMDQxQyAvKiBXT0ZGRmlsZUZvcm1hdC5oICovLAorCQkJCUNENTI1QkExMUVFMEIxMDcwMDc4
OERGNSAvKiBGb3VyQ0MuY3BwICovLAorCQkJCUNENTI1QkEyMUVFMEIxMDcwMDc4OERGNSAvKiBG
b3VyQ0MuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gZ3JhcGhpY3M7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwpAQCAtMjQ1MTQsNiArMjQ1MjQsOCBAQAogCQkJCUNEOEI1QTQwMTgwRDE0OUEw
MDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSAqLywKIAkJ
CQlDRDdFMDUyMDE2NTFBODQxMDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLmgg
Ki8sCiAJCQkJQ0Q3RTA1MjExNjUxQTg0MTAwQzEyMDFGIC8qIFdlYkNvcmVBVkZSZXNvdXJjZUxv
YWRlci5tbSAqLywKKwkJCQlDREVDQTg5ODFFREY0NDdEMDBEQ0IwOEIgLyogQVZBc3NldFRyYWNr
VXRpbGl0aWVzLm1tICovLAorCQkJCUNERUNBODk5MUVERjQ0N0QwMERDQjA4QiAvKiBBVkFzc2V0
VHJhY2tVdGlsaXRpZXMuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gb2JqYzsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CkBAIC0yODI1NCw2ICsyODI2Niw3IEBACiAJCQkJQUE3RkVFQTcxNkE0
RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBQTdGRUVBOTE2QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXNWb2lj
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4MjQzMjkwRDBDRThBMjAwNDYwQzhGIC8qIEpTU1FM
RXJyb3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUNERUNBODlCMUVERjQ0N0QwMERDQjA4QiAvKiBB
VkFzc2V0VHJhY2tVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUI1MjVBOTY1MTFDQTIz
NDAwMDNBMjNBOCAvKiBKU1NRTEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFODJG
RUQwQ0FCMDdFRTAwMjIzN0FFIC8qIEpTU1FMUmVzdWx0U2V0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUZFMTE5QTBDQkZGQ0M0MDAzMDE3RkEgLyogSlNTUUxSZXN1bHRTZXRSb3dMaXN0LmggaW4g
SGVhZGVycyAqLywKQEAgLTI5Mzg2LDYgKzI5Mzk5LDcgQEAKIAkJCQkwRkI4ODkwQTE2N0QyRkEx
MDAxMENEQTUgLyogU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTdBQUZFOEQwMTlDQjg2NzIwMDBGNTZEOCAvKiBTY3JvbGxMYXRjaGluZ1N0YXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGNDc4NzU1NDE5OTgzQUZGMDAyNEEyODcgLyogU2Nyb2xsU25hcEFuaW1h
dG9yU3RhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUNENTI1QkE0MUVFMEIxMDcwMDc4OERGNSAv
KiBGb3VyQ0MuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0NjcyOTI4MUUwREU2ODUwMEFDQzNEOCAv
KiBTY3JvbGxTbmFwT2Zmc2V0c0luZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQzU3OTVEMURB
NUMzMDEwMDZGQUNBOCAvKiBTY3JvbGxUb09wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
QzA5Qzg2MEIwNjU3QUEwMDVBQkQ0RCAvKiBTY3JvbGxUeXBlcy5oIGluIEhlYWRlcnMgKi8sCkBA
IC0zMTIzMiw2ICszMTI0Niw3IEBACiAJCQkJQThDNEE4MDgwOUQ1NjMyNzAwMDNBQzhEIC8qIEVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjVCN0ExNzAxN0MxMEFBODAwRTRBQTBBIC8q
IEVsZW1lbnREYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTRGRkMwMjJEMTY0M0I3MjYwMDRF
MTYzOCAvKiBFbGVtZW50UmFyZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q1MjVCQTMx
RUUwQjEwNzAwNzg4REY1IC8qIEZvdXJDQy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQkRCNjE5
QjE2RDYwMzJBMDBCQjMzOTQgLyogRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQThDRkY2Q0IwQTE1NjFDRDAwMEE0MjM0IC8qIEVsbGlwc2lzQm94LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUY1NUIzREJCMTI1MUYxMkQwMDNFRjI2OSAvKiBFbWFpbElucHV0VHlw
ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMzMjI1LDYgKzMzMjQwLDcgQEAKIAkJCQk5MzFDQkQw
QzE2MUE0NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5nU3RhdGVOb2RlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTkzRUY3RDU1MTk1NEYxMzkwMERGQjcxRCAvKiBTY3JvbGxpbmdTdGF0ZU5vZGUubW0g
aW4gU291cmNlcyAqLywKIAkJCQkwRkVBM0U4MzE5MUIzMUJGMDAwRjFCNTUgLyogU2Nyb2xsaW5n
U3RhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RFQ0E4
OUExRURGNDQ3RDAwRENCMDhCIC8qIEFWQXNzZXRUcmFja1V0aWxpdGllcy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTkzMUNCRDBFMTYxQTQ0RTkwMEU0Qzg3NCAvKiBTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCODg5MEUxNjdEMzAxNjAwMTBDREE1
IC8qIFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzFD
QkQxMDE2MUE0NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYTlkMTc0
MDgyOWMxMGRmY2NhYzYxM2ViMjMxNmE1YmY5YmFlYWI4Zi4uY2NiMGI5NDgwYmJhNTJjYjQ2Y2I1
ZjA4OGQ4NjQzNmQ0ODFhNjZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCkBAIC00MzIwLDYgKzQzMjAsOCBAQCBVUkwgSFRNTE1lZGlhRWxlbWVudDo6c2VsZWN0
TmV4dFNvdXJjZUNoaWxkKENvbnRlbnRUeXBlKiBjb250ZW50VHlwZSwgU3RyaW5nKiBrZQogI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgICAgICAgICBwYXJhbWV0ZXJzLmlzTWVkaWFTdHJl
YW0gPSBtZWRpYVVSTC5wcm90b2NvbElzKG1lZGlhU3RyZWFtQmxvYlByb3RvY29sKTsKICNlbmRp
ZgorICAgICAgICAgICAgcGFyYW1ldGVycy5jb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1
cHBvcnQgPSBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpOworCiAg
ICAgICAgICAgICBpZiAoIU1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUocGFyYW1ldGVycywgdGhp
cykpCiAgICAgICAgICAgICAgICAgZ290byBDaGVja0FnYWluOwogICAgICAgICB9CkBAIC02NjU3
LDYgKzY2NTksMTEgQEAgZG91YmxlIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyUmVxdWVz
dGVkUGxheWJhY2tSYXRlKCkgY29uc3QKICAgICByZXR1cm4gcG90ZW50aWFsbHlQbGF5aW5nKCkg
PyByZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSA6IDA7CiB9CiAKK2NvbnN0IFZlY3RvcjxDb250ZW50
VHlwZT4mIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdh
cmVTdXBwb3J0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKS5zZXR0aW5ncygpLm1l
ZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCk7Cit9CisKICNpZiBVU0Uo
R1NUUkVBTUVSKQogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZXF1ZXN0SW5zdGFsbE1pc3NpbmdQ
bHVnaW5zKGNvbnN0IFN0cmluZyYgZGV0YWlscywgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwg
TWVkaWFQbGF5ZXJSZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2smIGNhbGxiYWNr
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCBhNDkwYmQ3N2Q0
ZTlhNzI0YWQ0MmIyZWNlNmI2MjU5N2JkZjZmYmU1Li5mZjQ1OGM1NWVkNGUyZDlmZmQ5ODZkOGEy
OGI1NzIxYTMyZGNkYjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApA
QCAtNjgwLDYgKzY4MCw3IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIG1lZGlhUGxheWVyUmVxdWVz
dGVkUGxheWJhY2tSYXRlKCkgY29uc3QgZmluYWw7CiAgICAgVmlkZW9GdWxsc2NyZWVuTW9kZSBt
ZWRpYVBsYXllckZ1bGxzY3JlZW5Nb2RlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZnVsbHNjcmVl
bk1vZGUoKTsgfQogICAgIGJvb2wgbWVkaWFQbGF5ZXJTaG91bGREaXNhYmxlU2xlZXAoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBzaG91bGREaXNhYmxlU2xlZXAoKSA9PSBTbGVlcFR5cGU6OkRpc3Bs
YXk7IH0KKyAgICBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBtZWRpYUNvbnRlbnRUeXBlc1Jl
cXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0IGZpbmFsOwogCiAjaWYgVVNFKEdTVFJFQU1F
UikKICAgICB2b2lkIHJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnMoY29uc3QgU3RyaW5nJiBk
ZXRhaWxzLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBNZWRpYVBsYXllclJlcXVlc3RJbnN0
YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjayYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNw
cAppbmRleCAzYjQxMzQ0YmVkZjRjOWVhOGZhZTdkZWQwNjk5YjM3NDNlODc5ZmY3Li5mNjFkYWQ2
NjYxNDBiM2U4NzBhNTc5Y2M3Y2I5ZmEwM2Y4MGQ4OGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmNwcApAQCAtNzg5LDQgKzc4OSwxNSBAQCBib29sIFNldHRpbmdzOjphbGxvd3NBbnlTU0xDZXJ0
aWZpY2F0ZSgpCiAgICAgcmV0dXJuIGdBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZTsKIH0KIAordm9p
ZCBTZXR0aW5nczo6c2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQo
Y29uc3QgU3RyaW5nJiBjb250ZW50VHlwZXMpCit7CisgICAgbV9tZWRpYUNvbnRlbnRUeXBlc1Jl
cXVpcmluZ0hhcmR3YXJlU3VwcG9ydCA9IGNvbnRlbnRUeXBlcy5zcGxpdCgiOiIpLm1hcChDb250
ZW50VHlwZTo6Y3JlYXRlKTsKK30KKwordm9pZCBTZXR0aW5nczo6c2V0TWVkaWFDb250ZW50VHlw
ZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgY29u
dGVudFR5cGVzKQoreworICAgIG1fbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1
cHBvcnQgPSBjb250ZW50VHlwZXM7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5oCmluZGV4IGQ5NWI2YWU0ZTA4YzYyNjdmYTgzZDdiZmQzNGRhOGRmNjU4
NGViZmUuLjkxMTgzZTgxNzhlNGVlZWQxYTAwYzBiNjQyZWFmZjI2MjgyNzVkYjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSAiQ2xpcGJvYXJkQWNjZXNzUG9saWN5LmgiCisjaW5jbHVkZSAiQ29udGVudFR5cGUuaCIKICNp
bmNsdWRlICJFZGl0aW5nQmVoYXZpb3JUeXBlcy5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgpAQCAtMzI1LDYgKzMyNiwxMCBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUo
Ym9vbCk7CiAgICAgc3RhdGljIGJvb2wgYWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoKTsKIAorICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2Fy
ZVN1cHBvcnQoY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYpOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoY29uc3Qg
U3RyaW5nJik7CisgICAgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgbWVkaWFDb250ZW50VHlw
ZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdCB7IHJldHVybiBtX21lZGlhQ29udGVu
dFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGlj
aXQgU2V0dGluZ3MoUGFnZSopOwogCkBAIC00MjQsNiArNDI5LDggQEAgcHJpdmF0ZToKICAgICBz
dGF0aWMgYm9vbCBnTG93UG93ZXJWaWRlb0F1ZGlvQnVmZmVyU2l6ZUVuYWJsZWQ7CiAgICAgc3Rh
dGljIGJvb2wgZ1Jlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkRW5hYmxlZDsKICAgICBzdGF0
aWMgYm9vbCBnQWxsb3dzQW55U1NMQ2VydGlmaWNhdGU7CisKKyAgICBWZWN0b3I8Q29udGVudFR5
cGU+IG1fbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7CiB9OwogCiBp
bmxpbmUgYm9vbCBTZXR0aW5nczo6aXNQb3N0TG9hZENQVVVzYWdlTWVhc3VyZW1lbnRFbmFibGVk
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRlbnRUeXBlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50VHlwZS5oCmluZGV4IGQ4ZDdhMDU2ZGIwMWJj
M2YwYzJkMGI5NjhhZTExYTY5MzgxNmNiMTkuLmYzMWFjNTBhMDg3NTNjZTdhODAxZDg3NWZiM2Iy
MTE4Y2RkZDFjNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRlbnRU
eXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGVudFR5cGUuaApAQCAtMzEs
MTggKzMxLDIwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIENvbnRlbnRU
eXBlIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIGV4cGxpY2l0IENvbnRlbnRUeXBlKGNvbnN0IFN0
cmluZyYgdHlwZSk7Ci0gICAgICAgIENvbnRlbnRUeXBlKCkgPSBkZWZhdWx0OworY2xhc3MgQ29u
dGVudFR5cGUgeworcHVibGljOgorICAgIHN0YXRpYyBDb250ZW50VHlwZSBjcmVhdGUoY29uc3Qg
U3RyaW5nJiB0eXBlKSB7IHJldHVybiBDb250ZW50VHlwZSh0eXBlKTsgfQorICAgIGV4cGxpY2l0
IENvbnRlbnRUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSk7CisgICAgQ29udGVudFR5cGUoKSA9IGRl
ZmF1bHQ7CiAKLSAgICAgICAgU3RyaW5nIHBhcmFtZXRlcihjb25zdCBTdHJpbmcmIHBhcmFtZXRl
ck5hbWUpIGNvbnN0OwotICAgICAgICBTdHJpbmcgdHlwZSgpIGNvbnN0OwotICAgICAgICBWZWN0
b3I8U3RyaW5nPiBjb2RlY3MoKSBjb25zdDsKLSAgICAgICAgY29uc3QgU3RyaW5nJiByYXcoKSBj
b25zdCB7IHJldHVybiBtX3R5cGU7IH0KLSAgICBwcml2YXRlOgotICAgICAgICBTdHJpbmcgbV90
eXBlOwotICAgIH07CisgICAgU3RyaW5nIHBhcmFtZXRlcihjb25zdCBTdHJpbmcmIHBhcmFtZXRl
ck5hbWUpIGNvbnN0OworICAgIFN0cmluZyB0eXBlKCkgY29uc3Q7CisgICAgVmVjdG9yPFN0cmlu
Zz4gY29kZWNzKCkgY29uc3Q7CisgICAgY29uc3QgU3RyaW5nJiByYXcoKSBjb25zdCB7IHJldHVy
biBtX3R5cGU7IH0KKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3R5cGUuaXNF
bXB0eSgpOyB9Citwcml2YXRlOgorICAgIFN0cmluZyBtX3R5cGU7Cit9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L1ZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L1ZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcAppbmRleCAyYzJiNjhkZDQwOTY3ODc2ODFjMWU0MjFj
MWQzNzYwMjk5NmMyNDliLi5kOWZjMDQ5MjlkODUxYWEyZjVhOThlZGIyMDRhNDM2MWY1YzA3ODc2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb1Rvb2xib3hT
b2Z0TGluay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9Ub29s
Ym94U29mdExpbmsuY3BwCkBAIC0zOCw1ICszOCw2IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFKFdlYkNvcmUsIFZpZGVvVG9vbGJveCwgVlREZWNvbXByZXNzaW9uU2Vzc2lvbldhaXRG
CiAjZGVmaW5lIFZURGVjb21wcmVzc2lvblNlc3Npb25XYWl0Rm9yQXN5bmNocm9ub3VzRnJhbWVz
IHNvZnRMaW5rX1ZpZGVvVG9vbGJveF9WVERlY29tcHJlc3Npb25TZXNzaW9uV2FpdEZvckFzeW5j
aHJvbm91c0ZyYW1lcwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgVmlk
ZW9Ub29sYm94LCBWVERlY29tcHJlc3Npb25TZXNzaW9uRGVjb2RlRnJhbWUsIE9TU3RhdHVzLCAo
VlREZWNvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1w
bGVCdWZmZXIsIFZURGVjb2RlRnJhbWVGbGFncyBkZWNvZGVGbGFncywgdm9pZCogc291cmNlRnJh
bWVSZWZDb24sIFZURGVjb2RlSW5mb0ZsYWdzKiBpbmZvRmxhZ3NPdXQpLCAoc2Vzc2lvbiwgc2Ft
cGxlQnVmZmVyLCBkZWNvZGVGbGFncywgc291cmNlRnJhbWVSZWZDb24sIGluZm9GbGFnc091dCkp
CiAjZGVmaW5lIFZURGVjb21wcmVzc2lvblNlc3Npb25EZWNvZGVGcmFtZSBzb2Z0TGlua19WaWRl
b1Rvb2xib3hfVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1lCitTT0ZUX0xJTktfRlVO
Q1RJT05fTUFZX0ZBSUxfRk9SX1NPVVJDRShXZWJDb3JlLCBWaWRlb1Rvb2xib3gsIFZUSXNIYXJk
d2FyZURlY29kZVN1cHBvcnRlZCwgQm9vbGVhbiwgKENNVmlkZW9Db2RlY1R5cGUgY29kZWNUeXBl
KSwgKGNvZGVjVHlwZSkpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBW
aWRlb1Rvb2xib3gsIGtWVFZpZGVvRGVjb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVB
Y2NlbGVyYXRlZFZpZGVvRGVjb2RlciwgQ0ZTdHJpbmdSZWYpCiAjZGVmaW5lIGtWVFZpZGVvRGVj
b2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRGVjb2RlciBn
ZXRfVmlkZW9Ub29sYm94X2tWVFZpZGVvRGVjb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdh
cmVBY2NlbGVyYXRlZFZpZGVvRGVjb2RlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9WaWRlb1Rvb2xib3hTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvVmlkZW9Ub29sYm94U29mdExpbmsuaAppbmRleCBmYjAwOThlYWM4MTg2NDJm
MzY0YTc1YzE0YjE4NmM1NjNlNDMzYTk3Li5jYzc1MzgzZmI0MzdiODAyNTJkMWI3OGE1OWM3NTM4
NjI5ZDhjNzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRl
b1Rvb2xib3hTb2Z0TGluay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Zp
ZGVvVG9vbGJveFNvZnRMaW5rLmgKQEAgLTM4LDUgKzM4LDcgQEAgU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoV2ViQ29yZSwgVmlkZW9Ub29sYm94LCBWVERlY29tcHJlc3Npb25TZXNzaW9u
V2FpdEYKICNkZWZpbmUgVlREZWNvbXByZXNzaW9uU2Vzc2lvbldhaXRGb3JBc3luY2hyb25vdXNG
cmFtZXMgc29mdExpbmtfVmlkZW9Ub29sYm94X1ZURGVjb21wcmVzc2lvblNlc3Npb25XYWl0Rm9y
QXN5bmNocm9ub3VzRnJhbWVzCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3Jl
LCBWaWRlb1Rvb2xib3gsIFZURGVjb21wcmVzc2lvblNlc3Npb25EZWNvZGVGcmFtZSwgT1NTdGF0
dXMsIChWVERlY29tcHJlc3Npb25TZXNzaW9uUmVmIHNlc3Npb24sIENNU2FtcGxlQnVmZmVyUmVm
IHNhbXBsZUJ1ZmZlciwgVlREZWNvZGVGcmFtZUZsYWdzIGRlY29kZUZsYWdzLCB2b2lkKiBzb3Vy
Y2VGcmFtZVJlZkNvbiwgVlREZWNvZGVJbmZvRmxhZ3MqIGluZm9GbGFnc091dCksIChzZXNzaW9u
LCBzYW1wbGVCdWZmZXIsIGRlY29kZUZsYWdzLCBzb3VyY2VGcmFtZVJlZkNvbiwgaW5mb0ZsYWdz
T3V0KSkKICNkZWZpbmUgVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1lIHNvZnRMaW5r
X1ZpZGVvVG9vbGJveF9WVERlY29tcHJlc3Npb25TZXNzaW9uRGVjb2RlRnJhbWUKK1NPRlRfTElO
S19GVU5DVElPTl9NQVlfRkFJTF9GT1JfSEVBREVSKFdlYkNvcmUsIFZpZGVvVG9vbGJveCwgVlRJ
c0hhcmR3YXJlRGVjb2RlU3VwcG9ydGVkLCBCb29sZWFuLCAoQ01WaWRlb0NvZGVjVHlwZSBjb2Rl
Y1R5cGUpLCAoY29kZWNUeXBlKSkKKyNkZWZpbmUgVlRJc0hhcmR3YXJlRGVjb2RlU3VwcG9ydGVk
IHNvZnRMaW5rX1ZpZGVvVG9vbGJveF9WVElzSGFyZHdhcmVEZWNvZGVTdXBwb3J0ZWQKIFNPRlRf
TElOS19DT05TVEFOVF9GT1JfSEVBREVSKFdlYkNvcmUsIFZpZGVvVG9vbGJveCwga1ZUVmlkZW9E
ZWNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9EZWNvZGVy
LCBDRlN0cmluZ1JlZikKICNkZWZpbmUga1ZUVmlkZW9EZWNvZGVyU3BlY2lmaWNhdGlvbl9FbmFi
bGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9EZWNvZGVyIGdldF9WaWRlb1Rvb2xib3hfa1ZUVmlk
ZW9EZWNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9EZWNv
ZGVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvdXJD
Qy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjYwY2UyZTI5OWRlMGM4NTViNThmMTk1MTdjNjEzMDgwMjAxMGI0MjMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuY3BwCkBA
IC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiRm91ckNDLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RkOjpvcHRpb25hbDxGb3Vy
Q0M+IEZvdXJDQzo6ZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZ1ZhbHVlKQoreworICAg
IGF1dG8gYXNjaWlWYWx1ZSA9IHN0cmluZ1ZhbHVlLmFzY2lpKCk7CisgICAgaWYgKGFzY2lpVmFs
dWUubGVuZ3RoKCkgIT0gNCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGNv
bnN0IGNoYXIqIGRhdGEgPSBhc2NpaVZhbHVlLmRhdGEoKTsKKyAgICBBU1NFUlQoYXNjaWlWYWx1
ZS5kYXRhKCkpOworICAgIHVpbnQzMl90IHZhbHVlID0gZGF0YVszXSA8PCAyNCB8IGRhdGFbMl0g
PDwgMTYgfCBkYXRhWzFdIDw8IDggfCBkYXRhWzBdOworICAgIHJldHVybiBGb3VyQ0ModmFsdWUp
OworfQorCitTdHJpbmcgRm91ckNDOjp0b1N0cmluZygpIGNvbnN0Cit7CisgICAgVmVjdG9yPExD
aGFyLCA0PiBkYXRhID0geworICAgICAgICBMQ2hhcih2YWx1ZSA+PiAyNCksCisgICAgICAgIExD
aGFyKCh2YWx1ZSA+PiAxNikgJiAweEZGKSwKKyAgICAgICAgTENoYXIoKHZhbHVlID4+IDgpICYg
MHhGRiksCisgICAgICAgIExDaGFyKHZhbHVlICYgMHhGRiksCisgICAgfTsKKworICAgIHJldHVy
biBTdHJpbmc6OmFkb3B0KFdURk1vdmUoZGF0YSkpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxMzdhOGMzNmYyNzI5NWVhMTI2
MzZjZDQzNWZiOGRjMzhhNDMyNjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgRm91ckNDIHsKKyAgICBXRUJDT1JFX0VYUE9SVCBGb3Vy
Q0ModWludDMyX3QgdmFsdWUpIDogdmFsdWUodmFsdWUpIHsgfQorCisgICAgU3RyaW5nIHRvU3Ry
aW5nKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Rm91
ckNDPiBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYpOworCisgICAgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IEZvdXJDQyYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIHZhbHVlID09IG90aGVyLnZhbHVlOyB9
CisKKyAgICB1aW50MzJfdCB2YWx1ZTsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCBhODhhZDVmZTk2M2Y3OWQ0M2Uw
ZWQzYjY5ZGYyZGU4MDJjOWY0ZDM2Li5kYTA5YmJhZmE5OTJjZjNjNTljNmFkYmMxZDlkYWY5MWU2
YjllZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwCkBAIC0xNjEsNiArMTYxLDEyIEBAIHB1YmxpYzoKICAgICBib29sIGhhc1Npbmds
ZVNlY3VyaXR5T3JpZ2luKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAor
Y29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgTWVkaWFQbGF5ZXJDbGllbnQ6Om1lZGlhQ29udGVu
dFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkgY29uc3QKK3sKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8VmVjdG9yPENvbnRlbnRUeXBlPj4gY29udGVudFR5cGVzOworICAgIHJldHVy
biBjb250ZW50VHlwZXM7Cit9CisKIHN0YXRpYyBNZWRpYVBsYXllckNsaWVudCYgbnVsbE1lZGlh
UGxheWVyQ2xpZW50KCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8TWVkaWFQbGF5ZXJD
bGllbnQ+IGNsaWVudDsKQEAgLTE0NjQsNiArMTQ3MCwxMSBAQCBib29sIE1lZGlhUGxheWVyOjpz
aG91bGREaXNhYmxlU2xlZXAoKSBjb25zdAogICAgIHJldHVybiBjbGllbnQoKS5tZWRpYVBsYXll
clNob3VsZERpc2FibGVTbGVlcCgpOwogfQogCitjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBN
ZWRpYVBsYXllcjo6bWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBj
b25zdAoreworICAgIHJldHVybiBjbGllbnQoKS5tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hh
cmR3YXJlU3VwcG9ydCgpOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggOTY1YjdmYTFiYTJkNzc4OGY3OWFj
NThiMGU5M2I3OTUwZjgzOGFmZi4uMjFhZjRmZmI2Mzk1N2IxMzIxMzRkMmRmN2NhMmZkYzU3ZDUx
MTMwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlczNELmgiCiAKICNp
bmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAj
aW5jbHVkZSAiTGVnYWN5Q0RNU2Vzc2lvbi5oIgogI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1By
aXZhdGUuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCkBAIC0xMTQsNiArMTE1LDcgQEAgc3RydWN0
IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMgewogICAgIFVSTCB1cmw7CiAgICAgYm9vbCBp
c01lZGlhU291cmNlIHsgZmFsc2UgfTsKICAgICBib29sIGlzTWVkaWFTdHJlYW0geyBmYWxzZSB9
OworICAgIFZlY3RvcjxDb250ZW50VHlwZT4gY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVT
dXBwb3J0OwogfTsKIAogZXh0ZXJuIGNvbnN0IFBsYXRmb3JtTWVkaWEgTm9QbGF0Zm9ybU1lZGlh
OwpAQCAtMjczLDYgKzI3NSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdmlydHVhbCBib29s
IG1lZGlhUGxheWVyU2hvdWxkRGlzYWJsZVNsZWVwKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4mIG1lZGlhQ29udGVudFR5cGVz
UmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkgY29uc3Q7CiB9OwogCiBjbGFzcyBNZWRpYVBsYXll
clN1cHBvcnRzVHlwZUNsaWVudCB7CkBAIC01ODcsNiArNTkwLDggQEAgcHVibGljOgogICAgIGNv
bnN0IFN0cmluZyYgY29udGVudFR5cGVDb2RlY3MoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRU
eXBlQ29kZWNzOyB9CiAgICAgYm9vbCBjb250ZW50TUlNRVR5cGVXYXNJbmZlcnJlZEZyb21FeHRl
bnNpb24oKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRNSU1FVHlwZVdhc0luZmVycmVkRnJvbUV4
dGVuc2lvbjsgfQogCisgICAgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgbWVkaWFDb250ZW50
VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBN
ZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggNzc2N2MxNDg1ZmNjNTFl
YWE5MmI0ZjdlNTA2YzNhZGI2NTkwYTFlOC4uMGFkMjk4YjA1ZmMwYTMwNzA1YjFlYjgwMzE2MDhl
YjQ5ZjhmMmYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb24uaApAQCAtMjk2LDYgKzI5Niw3IEBAIHByb3RlY3RlZDoKICAgICBjb25z
dCBTdHJpbmcmIGFzc2V0VVJMKCkgY29uc3QgeyByZXR1cm4gbV9hc3NldFVSTDsgfQogCiAgICAg
TWVkaWFQbGF5ZXIqIHBsYXllcigpIHsgcmV0dXJuIG1fcGxheWVyOyB9CisgICAgY29uc3QgTWVk
aWFQbGF5ZXIqIHBsYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcGxheWVyOyB9CiAKICAgICBTdHJp
bmcgZW5naW5lRGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiQVZGb3VuZGF0
aW9uIjsgfQogICAgIGxvbmcgcGxhdGZvcm1FcnJvckNvZGUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBhc3NldEVycm9yQ29kZSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0VHJhY2tVdGlsaXRpZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNz
ZXRUcmFja1V0aWxpdGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiNTc2Y2VlNTNlMGQ1YTY2MTRmOGQyNzlh
MDIwMjQwYzM5MmNmNmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0VHJhY2tVdGlsaXRpZXMuaApAQCAt
MCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklE
RU8pICYmIFVTRShBVkZPVU5EQVRJT04pCisKKyNpbmNsdWRlICJDb250ZW50VHlwZS5oIgorI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworT0JKQ19DTEFTUyBBVkFzc2V0VHJhY2s7CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworYm9vbCBhc3NldFRyYWNrTWVldHNIYXJkd2FyZURlY29kZVJlcXVp
cmVtZW50cyhBVkFzc2V0VHJhY2sgKiwgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgY29udGVu
dFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVEZWNvZGUpOworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZB
c3NldFRyYWNrVXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFi
YmJkMGY1MjBjM2RlYjk4MjhkNTAwN2JiYTI2YmY4NmVlYzk3NWMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFz
c2V0VHJhY2tVdGlsaXRpZXMubW0KQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBv
cnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQVZBc3NldFRyYWNrVXRpbGl0aWVzLmgiCisKKyNpZiBF
TkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCisKKyNpbXBvcnQgIkZvdXJDQy5oIgor
I2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWQXNzZXRUcmFjay5oPgorCisjaW1wb3J0ICJDb3JlTWVk
aWFTb2Z0TGluay5oIgorI2ltcG9ydCAiVmlkZW9Ub29sYm94U29mdExpbmsuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitib29sIGFzc2V0VHJhY2tNZWV0c0hhcmR3YXJlRGVjb2RlUmVxdWly
ZW1lbnRzKEFWQXNzZXRUcmFjayAqdHJhY2ssIGNvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4mIGNv
bnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlRGVjb2RlKQoreworICAgIC8vIElmIHdlIGNhbid0
IGRldGVybWluZSB3aGV0aGVyIGEgY29kZWMgaGFzIGhhcmR3YXJlIHN1cHBvcnQgb3Igbm90LCBk
ZWZhdWx0IHRvIHRydWUuCisgICAgaWYgKCFjYW5Mb2FkX1ZpZGVvVG9vbGJveF9WVElzSGFyZHdh
cmVEZWNvZGVTdXBwb3J0ZWQoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoY29u
dGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVEZWNvZGUuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKworICAgIFZlY3RvcjxGb3VyQ0M+IGhhcmR3YXJlQ29kZWNzOworICAgIGZvciAo
YXV0byYgY29udGVudFR5cGUgOiBjb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZURlY29kZSkg
eworICAgICAgICBhdXRvIGNvZGVjU3RyaW5ncyA9IGNvbnRlbnRUeXBlLmNvZGVjcygpOworICAg
ICAgICBmb3IgKGF1dG8mIGNvZGVjU3RyaW5nIDogY29kZWNTdHJpbmdzKSB7CisgICAgICAgICAg
ICBhdXRvIGNvZGVjSWRlbnRpZmllciA9IEZvdXJDQzo6ZnJvbVN0cmluZyhjb2RlY1N0cmluZyk7
CisgICAgICAgICAgICBpZiAoY29kZWNJZGVudGlmaWVyKQorICAgICAgICAgICAgICAgIGhhcmR3
YXJlQ29kZWNzLmFwcGVuZChjb2RlY0lkZW50aWZpZXIudmFsdWUoKSk7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBmb3IgKE5TVUludGVnZXIgaSA9IDAsIGNvdW50ID0gdHJhY2suZm9ybWF0RGVz
Y3JpcHRpb25zLmNvdW50OyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICBDTUZvcm1hdERlc2Ny
aXB0aW9uUmVmIGRlc2NyaXB0aW9uID0gKENNRm9ybWF0RGVzY3JpcHRpb25SZWYpdHJhY2suZm9y
bWF0RGVzY3JpcHRpb25zW2ldOworICAgICAgICBpZiAoQ01Gb3JtYXREZXNjcmlwdGlvbkdldE1l
ZGlhVHlwZShkZXNjcmlwdGlvbikgIT0ga0NNTWVkaWFUeXBlX1ZpZGVvKQorICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgQ01WaWRlb0NvZGVjVHlwZSBjb2RlYyA9IENNRm9ybWF0RGVz
Y3JpcHRpb25HZXRNZWRpYVN1YlR5cGUoZGVzY3JpcHRpb24pOworICAgICAgICBpZiAoIWhhcmR3
YXJlQ29kZWNzLmNvbnRhaW5zKEZvdXJDQyhjb2RlYykpKQorICAgICAgICAgICAgY29udGludWU7
CisKKyAgICAgICAgaWYgKCFWVElzSGFyZHdhcmVEZWNvZGVTdXBwb3J0ZWQoY29kZWMpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCAzOGM5MjcwOWUxZGQwNDBiNzcxN2Vm
YjUzOTFiYjE5NTQ3MTYxOGI2Li5hYjE1ZjY0MmVlZGRiNDQ4MTdjOTFiZTdmMWEyMjRhZmNkZWQx
NzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC00MjQsNiArNDI0LDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fY2FjaGVkQ2FuUGxheUZhc3RGb3J3YXJkOwogICAgIGJvb2wgbV9jYWNoZWRD
YW5QbGF5RmFzdFJldmVyc2U7CiAgICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKKyAgICBtdXRh
YmxlIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gbV90cmFja3NBcmVQbGF5YWJsZTsKICNpZiBFTkFCTEUo
V0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAgIG11dGFibGUgYm9vbCBtX2FsbG93c1dpcmVs
ZXNzVmlkZW9QbGF5YmFjazsKICAgICBib29sIG1fc2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQg
eyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggZDA3YTEyNDk2NjJkYjhmODlm
NTNkYjRmN2Q1YWEzOTc5ZWViMTQ1Mi4uOTIzZmRiOTQxNWNiMzg4Yjk1YzkwMTliOTVkMTVhYzY0
MjY4NTYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
ZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCiAKKyNpbXBvcnQgIkFWQXNzZXRU
cmFja1V0aWxpdGllcy5oIgogI2ltcG9ydCAiQVZGb3VuZGF0aW9uTUlNRVR5cGVDYWNoZS5oIgog
I2ltcG9ydCAiQVZGb3VuZGF0aW9uU1BJLmgiCiAjaW1wb3J0ICJBVlRyYWNrUHJpdmF0ZUFWRk9i
akNJbXBsLmgiCkBAIC0xMTQ2LDcgKzExNDcsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmNoZWNrUGxheWFiaWxpdHkoKQogICAgIExPRyhNZWRpYSwgIk1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNoZWNrUGxheWFiaWxpdHkoJXApIiwgdGhp
cyk7CiAgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKIAotICAgIFttX2F2QXNz
ZXQuZ2V0KCkgbG9hZFZhbHVlc0FzeW5jaHJvbm91c2x5Rm9yS2V5czpbTlNBcnJheSBhcnJheVdp
dGhPYmplY3Q6QCJwbGF5YWJsZSJdIGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAgW21fYXZBc3Nl
dC5nZXQoKSBsb2FkVmFsdWVzQXN5bmNocm9ub3VzbHlGb3JLZXlzOltOU0FycmF5IGFycmF5V2l0
aE9iamVjdHM6QCJwbGF5YWJsZSIsIEAidHJhY2tzIiwgbmlsXSBjb21wbGV0aW9uSGFuZGxlcjpe
ewogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrVGhpc10gewogICAgICAgICAgICAgaWYg
KHdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5zY2hlZHVsZU1haW5UaHJlYWRO
b3RpZmljYXRpb24oTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpOb3RpZmljYXRpb246
OkFzc2V0UGxheWFiaWxpdHlLbm93bik7CkBAIC0xNTg5LDcgKzE1OTAsMTcgQEAgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpBc3NldFN0YXR1cyBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjoKICAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckFWQXNzZXRTdGF0
dXNDYW5jZWxsZWQ7IC8vIExvYWRpbmcgb2YgYXQgbGVhc3Qgb25lIGtleSB3YXMgY2FuY2VsbGVk
LgogICAgIH0KIAotICAgIGlmIChbW21fYXZBc3NldC5nZXQoKSB2YWx1ZUZvcktleTpAInBsYXlh
YmxlIl0gYm9vbFZhbHVlXSkKKyAgICBpZiAoIW1fdHJhY2tzQXJlUGxheWFibGUpIHsKKyAgICAg
ICAgbV90cmFja3NBcmVQbGF5YWJsZSA9IHRydWU7CisgICAgICAgIGZvciAoQVZBc3NldFRyYWNr
ICp0cmFjayBpbiBbbV9hdkFzc2V0IHRyYWNrc10pIHsKKyAgICAgICAgICAgIGlmICghYXNzZXRU
cmFja01lZXRzSGFyZHdhcmVEZWNvZGVSZXF1aXJlbWVudHModHJhY2ssIHBsYXllcigpLT5tZWRp
YUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpKSkgeworICAgICAgICAgICAg
ICAgIG1fdHJhY2tzQXJlUGxheWFibGUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChbW21fYXZBc3NldC5n
ZXQoKSB2YWx1ZUZvcktleTpAInBsYXlhYmxlIl0gYm9vbFZhbHVlXSAmJiBtX3RyYWNrc0FyZVBs
YXlhYmxlLnZhbHVlKCkpCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckFWQXNzZXRTdGF0dXNQ
bGF5YWJsZTsKIAogICAgIHJldHVybiBNZWRpYVBsYXllckFWQXNzZXRTdGF0dXNMb2FkZWQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5oCmluZGV4IDM4ZmVmMGFmZDgzZDBkNzYyZTVjODEzMDc0ODZi
NTdlOGEzMTBmMTMuLjdjOWYyZjczOWIxNTQ0Nzk4YmE0ODhjN2ZiODU3YWRiNThlMGNkNTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC0xMTcsNiArMTE3LDggQEAgcHVibGljOgogICAg
IHZvaWQga2V5TmVlZGVkKFVpbnQ4QXJyYXkqKTsKICNlbmRpZgogCisgICAgY29uc3QgVmVjdG9y
PENvbnRlbnRUeXBlPiYgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQo
KSBjb25zdDsKKwogICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFr
UHRyKCk7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCAyZmU4
ZGRkZTk0MTY5YzQ2Nzc1NTU0MWNhMmNlYjYwOGFhMGNkODAyLi40MzE1MjQzOTdkN2VkYjA2NWY3
ZjA0N2M4MjFiNmY2NDQ4MmNmZWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC05
NDgsNiArOTQ4LDExIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
OjprZXlOZWVkZWQoVWludDhBcnJheSogaW5pdERhdGEpCiB9CiAjZW5kaWYKIAorY29uc3QgVmVj
dG9yPENvbnRlbnRUeXBlPiYgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpt
ZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fcGxheWVyLT5tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9y
dCgpOworfQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0
UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKQogewogICAgIGlm
IChtX3JlYWR5U3RhdGUgPT0gcmVhZHlTdGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KaW5kZXggNTVkMjZmNmNmNzIxM2I3
ZTUyYzM5MTg2ZjlkY2ExYmM0YTAxMTA4Ni4uMWJkZDk4N2I1ZjY1NjA5Mzg3YjJjMjgxOTZmY2Q3
ZDgyM2ZiYzFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakMubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShNRURJ
QV9TT1VSQ0UpICYmIFVTRShBVkZPVU5EQVRJT04pCiAKKyNpbXBvcnQgIkFWQXNzZXRUcmFja1V0
aWxpdGllcy5oIgogI2ltcG9ydCAiQVZGb3VuZGF0aW9uU1BJLmgiCiAjaW1wb3J0ICJBdWRpb1Ry
YWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIgogI2ltcG9ydCAiQ0RNU2Vzc2lvbkFWQ29u
dGVudEtleVNlc3Npb24uaCIKQEAgLTQzMSw2ICs0MzIsMTYgQEAgdm9pZCBTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQzo6ZGlkUGFyc2VTdHJlYW1EYXRhQXNBc3NldChBVkFzc2V0KiBhc3NldCkK
IHsKICAgICBMT0coTWVkaWFTb3VyY2UsICJTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlk
UGFyc2VTdHJlYW1EYXRhQXNBc3NldCglcCkiLCB0aGlzKTsKIAorICAgIGlmICghbV9tZWRpYVNv
dXJjZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChBVkFzc2V0VHJhY2sgKnRyYWNrIGlu
IFthc3NldCB0cmFja3NdKSB7CisgICAgICAgIGlmICghYXNzZXRUcmFja01lZXRzSGFyZHdhcmVE
ZWNvZGVSZXF1aXJlbWVudHModHJhY2ssIG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5tZWRpYUNv
bnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpKSkgeworICAgICAgICAgICAgbV9w
YXJzaW5nU3VjY2VlZGVkID0gZmFsc2U7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICB9CisKICAgICBtX2Fzc2V0ID0gYXNzZXQ7CiAKICAgICBtX3ZpZGVvVHJhY2tzLmNsZWFy
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZp
bml0aW9ucy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlv
bnMuaAppbmRleCBkYzNjMzEyMGU0ZmU0MmQ4ZDk0MTBkOTZlYWU4Njg0MTc0ODNiZjBjLi4yMTUz
MGM4YjhlZWQxNGNkNDZlNjFmZGI0ZmNjZTU4ZmQ5NzI1Y2VmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKQEAgLTQwMSw2ICs0MDEs
NyBAQAogICAgIEZPUl9FQUNIX1dFQktJVF9GT05UX0ZBTUlMWV9QUkVGRVJFTkNFKG1hY3JvKSBc
CiAgICAgbWFjcm8oRGVmYXVsdFRleHRFbmNvZGluZ05hbWUsIGRlZmF1bHRUZXh0RW5jb2RpbmdO
YW1lLCBTdHJpbmcsIFN0cmluZywgZGVmYXVsdFRleHRFbmNvZGluZ05hbWVGb3JTeXN0ZW1MYW5n
dWFnZSgpLCAiIiwgIiIpIFwKICAgICBtYWNybyhGVFBEaXJlY3RvcnlUZW1wbGF0ZVBhdGgsIGZ0
cERpcmVjdG9yeVRlbXBsYXRlUGF0aCwgU3RyaW5nLCBTdHJpbmcsICIiLCAiIiwgIiIpIFwKKyAg
ICBtYWNybyhNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCwgbWVkaWFD
b250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQsIFN0cmluZywgU3RyaW5nLCAiIiwg
IiIsICIiKSBcCiAgICAgXAogCiAjZGVmaW5lIEZPUl9FQUNIX1dFQktJVF9TVFJJTkdfUFJFRkVS
RU5DRV9OT1RfSU5fV0VCQ09SRShtYWNybykgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCmluZGV4IDFiN2I4YzNmYTIwNWY1YTYzZDA5ZmU4
NmQwMzkyN2NhMmNkMjVkOTAuLjI2OWFlODc4MWFiZmU3N2M0YzNkYmRkYjY3NzYwNjFmZmFjZDgz
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVu
Y2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNl
cy5jcHAKQEAgLTE3NzAsMyArMTc3MCwxNCBAQCBib29sIFdLUHJlZmVyZW5jZXNHZXRNZWRpYVVz
ZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZQogewog
ICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5tZWRpYVVzZXJHZXN0dXJlSW5oZXJp
dHNGcm9tRG9jdW1lbnQoKTsKIH0KKwordm9pZCBXS1ByZWZlcmVuY2VzU2V0TWVkaWFDb250ZW50
VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNl
c1JlZiwgV0tTdHJpbmdSZWYgY29kZWNzKQoreworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZikt
PnNldE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KHRvV1RGU3RyaW5n
KGNvZGVjcykpOworfQorCitXS1N0cmluZ1JlZiBXS1ByZWZlcmVuY2VzQ29weU1lZGlhQ29udGVu
dFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXNSZWYpCit7CisgICAgcmV0dXJuIHRvQ29waWVkQVBJKHRvSW1wbChwcmVmZXJlbmNlc1JlZikt
Pm1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkpOworfQorCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlBy
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVm
UHJpdmF0ZS5oCmluZGV4IGVmZGE4MjUzNjE1MmFiYzlmNDU1ODIyZTJjYTY0OGYyN2Q3MGU3MDEu
LjQ4NmJhYmMzNjIyNGI3NmUxZDUwMzkyZjM1MTcwOGJjZWI2YTAxZjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0
ZS5oCkBAIC00OTcsNiArNDk3LDEwIEBAIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRJ
bnZpc2libGVNZWRpYUF1dG9wbGF5UGVybWl0dGVkKFdLUHJlZmVyZW5jZXNSZWYpCiBXS19FWFBP
UlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0TWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3Vt
ZW50KFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wgZmxhZyk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZl
cmVuY2VzR2V0TWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50KFdLUHJlZmVyZW5j
ZXNSZWYpOwogCisvLyBEZWZhdWx0cyB0byBhbiBlbXB0eSBzdHJpbmcKK1dLX0VYUE9SVCB2b2lk
IFdLUHJlZmVyZW5jZXNTZXRNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9y
dChXS1ByZWZlcmVuY2VzUmVmLCBXS1N0cmluZ1JlZik7CitXS19FWFBPUlQgV0tTdHJpbmdSZWYg
V0tQcmVmZXJlbmNlc0NvcHlNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9y
dChXS1ByZWZlcmVuY2VzUmVmKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXgg
NjQ5MmRmZjFmMzZiNzA1M2IwOWEwZjFhYzg4NzkwMTFhZGUwYzg1YS4uMmYwM2RkM2ViMTk4N2Q4
NzY3ZjJiNWMxZGJlODAzN2VjZWY3ZTUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTUwNCw2ICs1MDQsOCBAQCAtICh2b2lkKV9p
bml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKiljb25m
aWd1cmF0aW9uCiAKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZVZhbHVlcygpLnNl
dChXZWJLaXQ6OldlYlByZWZlcmVuY2VzS2V5OjpuZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVS
THNRdWlya0tleSgpLCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmU6OlZhbHVlKCEhW19jb25m
aWd1cmF0aW9uIF9uZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlya10pKTsKIAorICAg
IHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlVmFsdWVzKCkuc2V0KFdlYktpdDo6V2ViUHJl
ZmVyZW5jZXNLZXk6Om1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0S2V5
KCksIFdlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZTo6VmFsdWUoW19jb25maWd1cmF0aW9uIF9t
ZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydF0pKTsKKwogI2lmIFBMQVRG
T1JNKElPUykKICAgICBDR1JlY3QgYm91bmRzID0gc2VsZi5ib3VuZHM7CiAgICAgX3Njcm9sbFZp
ZXcgPSBhZG9wdE5TKFtbV0tTY3JvbGxWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOmJvdW5kc10p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCmluZGV4IGI0YmYzYTk4OWQwZWIxNDk5NDM4YTFiNWNl
NTJjYWU3MzMzZDBmMDcuLjQwMzBkNTNhOTE3N2I4Mjk4M2Y4NmRhZmIzNGI5NjE0ZjZhYTA4YjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Q29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KQEAgLTEzNyw2ICsxMzcsNyBAQCBAaW1wbGVtZW50
YXRpb24gV0tXZWJWaWV3Q29uZmlndXJhdGlvbiB7CiAgICAgQk9PTCBfbmVlZHNTdG9yYWdlQWNj
ZXNzRnJvbUZpbGVVUkxzUXVpcms7CiAKICAgICBOU1N0cmluZyAqX292ZXJyaWRlQ29udGVudFNl
Y3VyaXR5UG9saWN5OworICAgIE5TU3RyaW5nICpfbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdI
YXJkd2FyZVN1cHBvcnQ7CiB9CiAKIC0gKGluc3RhbmNldHlwZSlpbml0CkBAIC0zMzAsNiArMzMx
LDcgQEAgLSAoaWQpY29weVdpdGhab25lOihOU1pvbmUgKil6b25lCiAgICAgY29uZmlndXJhdGlv
bi0+X292ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5ID0gc2VsZi0+X292ZXJyaWRlQ29udGVu
dFNlY3VyaXR5UG9saWN5OwogCiAgICAgY29uZmlndXJhdGlvbi0+X3VybFNjaGVtZUhhbmRsZXJz
LnNldChhZG9wdE5TKFtzZWxmLl91cmxTY2hlbWVIYW5kbGVycyBtdXRhYmxlQ29weVdpdGhab25l
OnpvbmVdKSk7CisgICAgY29uZmlndXJhdGlvbi0+X21lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5n
SGFyZHdhcmVTdXBwb3J0ID0gc2VsZi5fbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2Fy
ZVN1cHBvcnQ7CiAKICAgICByZXR1cm4gY29uZmlndXJhdGlvbjsKIH0KQEAgLTgxNiw2ICs4MTgs
MTYgQEAgLSAodm9pZClfc2V0T3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3k6KE5TU3RyaW5n
ICopb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2wKICAgICBfb3ZlcnJpZGVDb250ZW50U2VjdXJp
dHlQb2xpY3kgPSBvdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeTsKIH0KIAorLSAoTlNTdHJp
bmcgKilfbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQKK3sKKyAgICBy
ZXR1cm4gX21lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OworfQorCist
ICh2b2lkKV9zZXRNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDooTlNT
dHJpbmcgKiltZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydAoreworICAg
IF9tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCA9IG1lZGlhQ29udGVu
dFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OworfQorCiBAZW5kCiAKIEBpbXBsZW1lbnRh
dGlvbiBXS1dlYlZpZXdDb25maWd1cmF0aW9uIChXS0RlcHJlY2F0ZWQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Q
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb25Qcml2YXRlLmgKaW5kZXggOTUxYmZkYzBhNDMzZmU0MTIwZTY3YWQ0YTZmNzMz
MWRkMDk2MDQ3My4uOGM2MzJjMGE4YjBlYmVhMTUwNGZiNTQ3MzQzOWYzNWFkYmRjNzdhMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25m
aWd1cmF0aW9uUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaApAQCAtNzYsNiArNzYsNyBAQAogQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UmVxdWlyZXNVc2VyQWN0aW9uRm9yVmlkZW9Q
bGF5YmFjazopIEJPT0wgX3JlcXVpcmVzVXNlckFjdGlvbkZvclZpZGVvUGxheWJhY2sgV0tfQVBJ
X0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgibWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rp
b25Gb3JQbGF5YmFjayIsIG1hY29zeCgxMC4xMiwgMTAuMTIpLCBpb3MoMTAuMCwgMTAuMCkpOwog
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRPdmVycmlkZUNvbnRlbnRTZWN1cml0
eVBvbGljeTopIE5TU3RyaW5nICpfb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3kgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3
YXJlU3VwcG9ydDopIE5TU3RyaW5nICpfbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2Fy
ZVN1cHBvcnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9j
b20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29t
LmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KaW5kZXggMjQzNGM2ZWU0MTcxNmYzZDQzZDYyYjUyMTk4
MDU2ZTNlYmI0NDc1OS4uMTFhYjJkMjVmMWM1Y2E5MmUxZTA0MzA2NGI4M2YzYTJiM2IzNTAwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vz
cy5zYi5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9j
ZXNzLnNiLmluCkBAIC04OSw3ICs4OSw5IEBACiAgICAgKGlva2l0LXByb3BlcnR5ICJJT0dlbmVy
YWxJbnRlcmVzdCIpCiAgICAgKGlva2l0LXByb3BlcnR5ICJJT0dMQnVuZGxlTmFtZSIpCiAgICAg
KGlva2l0LXByb3BlcnR5ICJJT0kyQ1RyYW5zYWN0aW9uVHlwZXMiKQorICAgIChpb2tpdC1wcm9w
ZXJ0eSAiSU9HVkFWVENhcGFiaWxpdGllcyIpCiAgICAgKGlva2l0LXByb3BlcnR5LXJlZ2V4ICMi
XklPR1ZBKENvZGVjfEVuY29kZXJSZXN0cmljdGVkKSIpCisgICAgKGlva2l0LXByb3BlcnR5LXJl
Z2V4ICMiXklPR1ZBKC4qKURlY29kZSQiKQogICAgIChpb2tpdC1wcm9wZXJ0eSAiSU9NYXRjaENh
dGVnb3J5IikKICAgICAoaW9raXQtcHJvcGVydHktcmVnZXggIyJeSU9OYW1lTWF0Y2gofGVkKSIp
CiAgICAgKGlva2l0LXByb3BlcnR5ICJJT1BNU3RyaWN0VHJlZU9yZGVyIikK
</data>

          </attachment>
      

    </bug>

</bugzilla>