<?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>193583</bug_id>
          
          <creation_ts>2019-01-18 11:36:27 -0800</creation_ts>
          <short_desc>CSS auto focus-ring outlines don&apos;t render on iOS</short_desc>
          <delta_ts>2019-01-20 14:38:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Local Build</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 12</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=193581</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=193591</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=193630</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="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1495951</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-01-18 11:36:27 -0800</bug_when>
    <thetext>We should support drawing focus rings on iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495952</commentid>
    <comment_count>1</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-01-18 11:36:36 -0800</bug_when>
    <thetext>&lt;rdar://problem/6508697&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495969</commentid>
    <comment_count>2</comment_count>
      <attachid>359520</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-01-18 12:16:46 -0800</bug_when>
    <thetext>Created attachment 359520
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495972</commentid>
    <comment_count>3</comment_count>
      <attachid>359522</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-01-18 12:20:20 -0800</bug_when>
    <thetext>Created attachment 359522
Patch

Remove ColorIOS.mm from Xcode project and add to SourceCocoa.txt so that it can be part of unified builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495992</commentid>
    <comment_count>4</comment_count>
      <attachid>359522</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-01-18 12:41:18 -0800</bug_when>
    <thetext>Comment on attachment 359522
Patch

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

&gt; Source/WebCore/platform/ios/ColorIOS.mm:37
&gt; +    // FIXME: Make this work for a UIColor that was created from a pattern.

Also make it work with DispayP3 colors.

&gt; Source/WebCore/platform/ios/ColorIOS.mm:46
&gt; +    static const double scaleFactor = nextafter(256.0, 0.0);
&gt; +    return makeRGBA(scaleFactor * redComponent, scaleFactor * greenComponent, scaleFactor * blueComponent, scaleFactor * alpha);

Why not makeRGBA32FromFloats()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496028</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-01-18 14:14:31 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #4)
&gt; Comment on attachment 359522 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=359522&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/ios/ColorIOS.mm:37
&gt; &gt; +    // FIXME: Make this work for a UIColor that was created from a pattern.
&gt; 
&gt; Also make it work with DispayP3 colors.

Will amend this comment before landing.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/ColorIOS.mm:46
&gt; &gt; +    static const double scaleFactor = nextafter(256.0, 0.0);
&gt; &gt; +    return makeRGBA(scaleFactor * redComponent, scaleFactor * greenComponent, scaleFactor * blueComponent, scaleFactor * alpha);
&gt; 
&gt; Why not makeRGBA32FromFloats()?

So, you&apos;re staying makeRGBA32FromFloats() is analogous to this code? I took this code from ColorMac.m: &lt;https://trac.webkit.org/browser/trunk/Source/WebCore/platform/graphics/mac/ColorMac.mm?rev=240041#L56&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496029</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-01-18 14:19:25 -0800</bug_when>
    <thetext>(In reply to Daniel Bates from comment #5)
&gt; &gt; &gt; Source/WebCore/platform/ios/ColorIOS.mm:46
&gt; &gt; &gt; +    static const double scaleFactor = nextafter(256.0, 0.0);
&gt; &gt; &gt; +    return makeRGBA(scaleFactor * redComponent, scaleFactor * greenComponent, scaleFactor * blueComponent, scaleFactor * alpha);
&gt; &gt; 
&gt; &gt; Why not makeRGBA32FromFloats()?
&gt; 
&gt; So, you&apos;re staying makeRGBA32FromFloats() is analogous to this code? I took
&gt; this code from ColorMac.m:
&gt; &lt;https://trac.webkit.org/browser/trunk/Source/WebCore/platform/graphics/mac/
&gt; ColorMac.mm?rev=240041#L56&gt;.

I am going to defer doing this for now as makeRGBA32FromFloats() does not seem to produce identical results from code inspection as well as by the comment in Color.cpp, &lt;https://trac.webkit.org/browser/trunk/Source/WebCore/platform/graphics/Color.cpp?rev=240041#L84&gt;. If I make this change for ColorIOS.mm then we should make it for ColorMac.mm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496033</commentid>
    <comment_count>7</comment_count>
      <attachid>359539</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-01-18 14:25:43 -0800</bug_when>
    <thetext>Created attachment 359539
To Land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496034</commentid>
    <comment_count>8</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-01-18 14:26:48 -0800</bug_when>
    <thetext>Committed r240174: &lt;https://trac.webkit.org/changeset/240174&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496035</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-01-18 14:28:51 -0800</bug_when>
    <thetext>(In reply to Daniel Bates from comment #6)
&gt; (In reply to Daniel Bates from comment #5)
&gt; &gt; &gt; &gt; Source/WebCore/platform/ios/ColorIOS.mm:46
&gt; &gt; &gt; &gt; +    static const double scaleFactor = nextafter(256.0, 0.0);
&gt; &gt; &gt; &gt; +    return makeRGBA(scaleFactor * redComponent, scaleFactor * greenComponent, scaleFactor * blueComponent, scaleFactor * alpha);
&gt; &gt; &gt; 
&gt; &gt; &gt; Why not makeRGBA32FromFloats()?
&gt; &gt; 
&gt; &gt; So, you&apos;re staying makeRGBA32FromFloats() is analogous to this code? I took
&gt; &gt; this code from ColorMac.m:
&gt; &gt; &lt;https://trac.webkit.org/browser/trunk/Source/WebCore/platform/graphics/mac/
&gt; &gt; ColorMac.mm?rev=240041#L56&gt;.
&gt; 
&gt; I am going to defer doing this for now as makeRGBA32FromFloats() does not
&gt; seem to produce identical results from code inspection as well as by the
&gt; comment in Color.cpp,
&gt; &lt;https://trac.webkit.org/browser/trunk/Source/WebCore/platform/graphics/
&gt; Color.cpp?rev=240041#L84&gt;. If I make this change for ColorIOS.mm then we
&gt; should make it for ColorMac.mm.

We have multiple code paths that do float -&gt; 0-255 color component conversions, and I think we probably have 3 types of rounding:
1. Multiply by nextafter(256.0, 0.0);
2. colorFloatToRGBAByte() which is lroundf(255.0f * f)
3. f * 255 and truncate.

We need to standardize on one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496045</commentid>
    <comment_count>10</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-01-18 14:56:18 -0800</bug_when>
    <thetext>Committed attempt to fix the iOS build in &lt;https://trac.webkit.org/changeset/240177&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496078</commentid>
    <comment_count>11</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-01-18 15:51:36 -0800</bug_when>
    <thetext>Committed another build fix in &lt;https://trac.webkit.org/changeset/240179/&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1496079</commentid>
    <comment_count>12</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-01-18 15:51:50 -0800</bug_when>
    <thetext>Committed another build fix in &lt;https://trac.webkit.org/changeset/240185/&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359520</attachid>
            <date>2019-01-18 12:16:46 -0800</date>
            <delta_ts>2019-01-18 12:20:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193583-20190118121645.patch</filename>
            <type>text/plain</type>
            <size>21307</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDY2MmY5OWJlNWQxYzIw
Y2EzOGUzMWZhNjBiMTE1ZjdmNzc5OTIwNy4uMmYwNDQ1NGRiYzViMjU4MTY4YWY2YWMxMjg1MDdh
YzFiNzJkYWE0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE5LTAxLTE4ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBDU1MgYXV0byBmb2N1cy1y
aW5nIG91dGxpbmVzIGRvbid0IHJlbmRlciBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzU4MworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NjUwODY5Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgZHJhd2luZyBmb2N1cyByaW5ncyBvbiBpT1Mgd2hlbiBi
dWlsdCB3aXRoIEVOQUJMRShGVUxMX0tFWUJPQVJEX0FDQ0VTUykKKyAgICAgICAgZW5hYmxlZC4K
KworICAgICAgICBGb3Igbm93IHRoZSBmb2N1cyByaW5nIGRyYXdpbmcgZm9yIGlPUyBpcyB0YW5n
bGVkIHVwIGludG8gdGhlIE1hYy1zcGVjaWZpYyBjb2RlIHRvIGRyYXcKKyAgICAgICAgYW5pbWF0
ZWQgZm9jdXMgcmluZ3MuIFdlIHdpbGwgbmVlZCB0byBmaXggPGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM1ODE+CisgICAgICAgIHRvIGJlIGluIGEgcG9zaXRpb25t
IHRvIHVudGFuZ2xlIHRoaXMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6IEFkZCBmaWxlcyBDb2xvcklPUy57aCwgbW19LgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvR3JhcGhpY3NDb250ZXh0Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpkcmF3
Rm9jdXNSaW5nQXRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJh
d0ZvY3VzUmluZyk6CisgICAgICAgIENvbXBpbGUgZm9jdXMgcmluZyBkcmF3aW5nIGNvZGUgd2hl
biBidWlsZGluZyB3aXRoIEVOQUJMRShGVUxMX0tFWUJPQVJEX0FDQ0VTUykgZW5hYmxlZC4KKyAg
ICAgICAgVGhpcyBpcyBhbHdheXMgZW5hYmxlZCBvbiBNYWMuCisgICAgICAgIAorICAgICAgICAq
IHBsYXRmb3JtL2lvcy9Db2xvcklPUy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mv
Q29sb3JJT1MubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29sb3JGcm9tVUlDb2xvcik6
IENvbnZlcnQgYSBVSUNvbG9yIHRvIGEgV2ViQ29yZTo6Q29sb3IuCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50
OjpwYWludEZvY3VzUmluZyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjpwYWludEFyZWFFbGVtZW50Rm9jdXNSaW5n
KToKKyAgICAgICAgQ29tcGlsZSBmb2N1cyByaW5nIGRyYXdpbmcgY29kZSB3aGVuIGJ1aWxkaW5n
IHdpdGggRU5BQkxFKEZVTExfS0VZQk9BUkRfQUNDRVNTKSBlbmFibGVkLgorICAgICAgICBUaGlz
IGlzIGFsd2F5cyBlbmFibGVkIG9uIE1hYy4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
aGVtZUlPUy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yIGNvbnN0
KTogSW1wbGVtZW50IHRoaXMgb3ZlcnJpZGUgZm9yIGlPUy4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lSU9TOjpzdXBwb3J0c0ZvY3VzUmluZyBjb25zdCk6IEltcGxlbWVudCB0aGlzIG92
ZXJyaWRlIGZvciBpT1MgdG8gYWx3YXlzCisgICAgICAgIHJldHVybiBmYWxzZSAtIHRoZSBpT1Mg
dGhlbWUgY29kZSBkb2VzIG5vdCBzdXBwb3J0IHBhaW50aW5nIGZvY3VzIHJpbmdzLiBCeSByZXR1
cm5pbmcgZmFsc2Ugd2UKKyAgICAgICAgd2lsbCB1c2UgdGhlIHBsYXRmb3JtLWluZGVwZW5kZW50
LCBub24tdGhlbWUgY29kZSBwYXRoIHRvIGRyYXcgZm9jdXMgcmluZ3MuCisKIDIwMTktMDEtMTUg
IERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIE1ha2Ug
V2luZG93IHZpcnR1YWwga2V5IGNvZGUgY29tcHV0YXRpb24gbWF0Y2ggTWFjCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZwppbmRleCA1ZDczZGY0ZDZjMDNjY2QxNDBiNjRiODZhODMwYWI2ZGM3NTNjNGZjLi44ZWVh
OTUyNDg1NjUxZmRiZmIxOWEwNmY0MGQwNTdjNzMzMmQ1MTNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxOS0wMS0xOCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBs
ZS5jb20+CisKKyAgICAgICAgQ1NTIGF1dG8gZm9jdXMtcmluZyBvdXRsaW5lcyBkb24ndCByZW5k
ZXIgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTM1ODMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY1MDg2OTc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yd2FyZCBkZWNsYXJlIHNvbWUg
SVBJLgorCisgICAgICAgICogcGFsL3NwaS9pb3MvVUlLaXRTUEkuaDoKKwogMjAxOS0wMS0xMSAg
RGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gS2V5dXBz
IGZvciBub24tbW9kaWZpZXIga2V5cyBpZGVudGlmaWVkIGFzICJEZWFkIiB3aGVuIG5vdCBmb2N1
c2VkIGluIGEgY29udGVudC1lZGl0YWJsZSBlbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3NwaS9pb3MvVUlLaXRTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL2lvcy9VSUtpdFNQSS5oCmluZGV4IGM0YjhkY2M4NjkxMWEzNzQ2NTg1NzY1ZGVlNTZiZWRh
NzU5ZjZlNDYuLjU2NmNkZWFlYzQ2NzhmNjI0Y2ZmNzllNmY0YTc0NTZmZWUyMjQzNjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9VSUtpdFNQSS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9VSUtpdFNQSS5oCkBAIC0xMTYsNCArMTE2LDEw
IEBAIE5TX0FTU1VNRV9OT05OVUxMX0VORAogQGVuZAogI2VuZGlmCiAKKyNlbmRpZiAvLyBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQorCisjaWYgRU5BQkxFKEZVTExfS0VZQk9BUkRfQUNDRVNTKQor
QGludGVyZmFjZSBVSUNvbG9yIChJUEkpCisrIChVSUNvbG9yICopa2V5Ym9hcmRGb2N1c0luZGlj
YXRvckNvbG9yOworQGVuZAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggY2U0OWZkZjNlNDE5OTcwOTE2MTIxNjhiZTM1
ZDUxYjhjYmNmM2I2ZS4uNDFjOWE1MGY2OGU4OWFlODBlYWQzYjYwNDNhMGM1YTk2NDU4YTIzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNDIwMyw2ICs0MjAzLDggQEAKIAkJQ0UxODY2NDUxRjcyRTVCNDAwQTBDQUI2IC8qIE1h
cmtlZFRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENFMTg2NjQzMUY3MkU1QjQwMEEwQ0FCNiAvKiBNYXJrZWRUZXh0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0UyODQ5ODcxQ0EzNjBERjAwQjRB
NTdGIC8qIENvbnRlbnRTZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTI4NDk4NjFDQTM2MERGMDBCNEE1
N0YgLyogQ29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXMuaCAqLzsgfTsKIAkJQ0U0
RUNDRDYyMTVBQTgxMjAwNTU4QzQxIC8qIFdlYkV2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkUwRDg0RUExMDQ4NDM2RTAwMUExNzlFIC8qIFdl
YkV2ZW50Lm1tICovOyB9OworCQlDRTUxNjlFNzIxRjFCODQ3MDBFQTRGNzggLyogQ29sb3JJT1Mu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFNTE2OUU1
MjFGMUI4NDcwMEVBNEY3OCAvKiBDb2xvcklPUy5oICovOyB9OworCQlDRTUxNjlFQTIxRjFCQ0ZC
MDBFQTRGNzggLyogQ29sb3JJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRTUxNjlFNjIxRjFCODQ3MDBFQTRGNzggLyogQ29sb3JJT1MubW0gKi87
IH07CiAJCUNFNUZBMjU1MjA5RTQ4QzUwMDUxRDcwMCAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lD
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENF
NUZBMjUzMjA5RTQ4QzUwMDUxRDcwMCAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRTZEQURG
QTFDNTkxRTZBMDAzRjZBODggLyogQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTZEQURG
ODFDNTkxRTZBMDAzRjZBODggLyogQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0U3
OTlGOTgxQzZBNDZCQzAwOTdCNTE4IC8qIENvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZUxpc3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFNzk5Rjk2
MUM2QTQ2QkMwMDk3QjUxOCAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2VMaXN0LmggKi87
IH07CkBAIC0xMzgyOCw2ICsxMzgzMCw4IEBACiAJCUNFMTg2NjQzMUY3MkU1QjQwMEEwQ0FCNiAv
KiBNYXJrZWRUZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hcmtlZFRleHQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0UyODQ5ODYxQ0EzNjBERjAwQjRBNTdGIC8qIENvbnRlbnRTZWN1
cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IENvbnRlbnRTZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzLmg7IHBhdGggPSBjc3AvQ29u
dGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0UyODQ5ODgxQ0EzNjE0NjAwQjRBNTdGIC8qIENvbnRlbnRTZWN1cml0eVBvbGlj
eURpcmVjdGl2ZU5hbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IENvbnRlbnRTZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzLmNwcDsgcGF0aCA9IGNzcC9Db250
ZW50U2VjdXJpdHlQb2xpY3lEaXJlY3RpdmVOYW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNFNTE2OUU1MjFGMUI4NDcwMEVBNEY3OCAvKiBDb2xvcklPUy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDb2xvcklPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRTUxNjlF
NjIxRjFCODQ3MDBFQTRGNzggLyogQ29sb3JJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBD
b2xvcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0U1Q0IxQjMxNEVEQUI2
RjAwQkIyNzk1IC8qIEV2ZW50U2VuZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEV2ZW50U2VuZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFNUZBMjUz
MjA5RTQ4QzUwMDUxRDcwMCAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gQ29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50Lmg7IHBhdGggPSBjc3AvQ29udGVu
dFNlY3VyaXR5UG9saWN5Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNF
NjhDOEZGMjE5MjRFRTUwMDEyMzBCMyAvKiBQbGF0Zm9ybUtleWJvYXJkRXZlbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUGxhdGZvcm1LZXlib2FyZEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIyMjU2LDYgKzIyMjYwLDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJ
CUExNDgzMjhCMTg3RjUwNjgwMERBNjNBNiAvKiB3YWsgKi8sCiAJCQkJRjQ4MjIzMTIxRTM4NkUy
NDAwNjZGQzc5IC8qIEFic3RyYWN0UGFzdGVib2FyZC5oICovLAorCQkJCUNFNTE2OUU1MjFGMUI4
NDcwMEVBNEY3OCAvKiBDb2xvcklPUy5oICovLAorCQkJCUNFNTE2OUU2MjFGMUI4NDcwMEVBNEY3
OCAvKiBDb2xvcklPUy5tbSAqLywKIAkJCQkyNjU1NDE0QjE0ODlBQTJCMDAwREZDNUQgLyogQ3Vy
c29ySU9TLmNwcCAqLywKIAkJCQlBMUVENzc4QTFCRTMyOTNGMDBEQzE3OTEgLyogRGV2aWNlLmNw
cCAqLywKIAkJCQlBMUVENzc4QjFCRTMyOTQwMDBEQzE3OTEgLyogRGV2aWNlLmggKi8sCkBAIC0y
ODUyNSw2ICsyODUzMSw3IEBACiAJCQkJRjQ4RDJBQTUyMTU5NzQwRDAwQzY3NTJCIC8qIENvbG9y
Q29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMDNCN0RGMURCMDE1NjcwMDhCQjg5MCAvKiBD
b2xvckhhc2guaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzREI0MTI1MUYxMkQwMDNFRjI2OSAv
KiBDb2xvcklucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0U1MTY5RTcyMUYxQjg0NzAw
RUE0Rjc4IC8qIENvbG9ySU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlFREUzQTUwMDBDN0E0MzA2
MDA5NTZBMzcgLyogQ29sb3JNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzODJERjU4MTBBOEQ1
QzkwMDkyNTY1MiAvKiBDb2xvclNwYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0RENDU0RTEy
MzZDOTVDMDA5QTc5ODUgLyogQ29sdW1uSW5mby5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjcwMyw2
ICszMjcxMCw3IEBACiAJCQkJQ0RERTAyRUQxOEIzRUQ2RDAwQ0Y3RkYxIC8qIENETVNlc3Npb25B
VkZvdW5kYXRpb25PYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RERTAyRjAxOEI1NjUxMzAw
Q0Y3RkYxIC8qIENETVNlc3Npb25BVlN0cmVhbVNlc3Npb24ubW0gaW4gU291cmNlcyAqLywKIAkJ
CQlDREU1OTU5RDFCRjI3NTcxMDBBMUNCRTggLyogQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2Jq
Qy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNFNTE2OUVBMjFGMUJDRkIwMEVBNEY3OCAvKiBDb2xv
cklPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExNDA5MEZCMUFBNTFFMUQwMDkxMTkxQSAvKiBD
b250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXJDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3
QUZGNDIzMUVGQjE0NDkwMEI1NDVCMyAvKiBDb3JlQXVkaW9DYXB0dXJlU291cmNlSU9TLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDZDNjk2Q0MxRTcyMDVGQzAwNTk3OTM3IC8qIENQVU1vbml0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IDFjMzY2ZDUxY2JkNzRkMGJjZWRlYzU3OTBkZjJl
ZDcxYWFjYzdhOTYuLjk1OTIxNDM1MDBkZWY2NzViNmU1MzE0OTc0OWY2ZmMzOTA1YzM0YWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dC5oCkBAIC00NDYsNyArNDQ2LDEwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZHJhd0ZvY3VzUmlu
Zyhjb25zdCBWZWN0b3I8RmxvYXRSZWN0PiYsIGZsb2F0IHdpZHRoLCBmbG9hdCBvZmZzZXQsIGNv
bnN0IENvbG9yJik7CiAgICAgdm9pZCBkcmF3Rm9jdXNSaW5nKGNvbnN0IFBhdGgmLCBmbG9hdCB3
aWR0aCwgZmxvYXQgb2Zmc2V0LCBjb25zdCBDb2xvciYpOwotI2lmIFBMQVRGT1JNKE1BQykKKwor
ICAgIC8vIEZJWE1FOiBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBzaG91bGQgb25seSBiZSBjb21w
aWxlZCBmb3IgTWFjLiBPbmNlIHdlIGZpeCA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5MzU4MT4KKyAgICAvLyB3ZSB3aWxsIGJlIGluIGEgcG9zaXRpb24gdG8gb25s
eSBjYWxsIHRoZXNlIGZ1bmN0aW9ucyBmb3IgTWFjLgorI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IHZvaWQgZHJhd0ZvY3VzUmluZyhjb25zdCBQYXRoJiwgZG91YmxlIHRpbWVPZmZzZXQsIGJvb2wm
IG5lZWRzUmVkcmF3LCBjb25zdCBDb2xvciYpOwogICAgIHZvaWQgZHJhd0ZvY3VzUmluZyhjb25z
dCBWZWN0b3I8RmxvYXRSZWN0PiYsIGRvdWJsZSB0aW1lT2Zmc2V0LCBib29sJiBuZWVkc1JlZHJh
dywgY29uc3QgQ29sb3ImKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0Q29jb2EubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRDb2NvYS5tbQppbmRl
eCAwNjhhZWZhMGFiNWFkOTgzMDFhMGMxZWM0Y2QxNGIxMzU3MWUxNzllLi42OTg2MGVlOWQzZmVj
Y2JmNzI3NWNmY2QzOWZmOGRmYmNkOTNhMGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRDb2NvYS5t
bQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTU5LDEyICs1OSwyNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBOU0NvbG9yLCBO
U0JlemllclBhdGgsIGFuZCBOU0dyYXBoaWNzQ29udGV4dCBjYWxscyBkbyBub3QgcmFpc2UgZXhj
ZXB0aW9ucwogLy8gc28gd2UgZG9uJ3QgYmxvY2sgZXhjZXB0aW9ucy4KIAotI2lmIFBMQVRGT1JN
KE1BQykKKyNpZiBFTkFCTEUoRlVMTF9LRVlCT0FSRF9BQ0NFU1MpCiAKIHN0YXRpYyBib29sIGRy
YXdGb2N1c1JpbmdBdFRpbWUoQ0dDb250ZXh0UmVmIGNvbnRleHQsIE5TVGltZUludGVydmFsIHRp
bWVPZmZzZXQsIGNvbnN0IENvbG9yJiBjb2xvcikKIHsKKyNpZiBVU0UoQVBQS0lUKQogICAgIENH
Rm9jdXNSaW5nU3R5bGUgZm9jdXNSaW5nU3R5bGU7CiAgICAgQk9PTCBuZWVkc1JlcGFpbnQgPSBO
U0luaXRpYWxpemVDR0ZvY3VzUmluZ1N0eWxlRm9yVGltZShOU0ZvY3VzUmluZ09ubHksICZmb2N1
c1JpbmdTdHlsZSwgdGltZU9mZnNldCk7CisjZWxzZQorICAgIEJPT0wgbmVlZHNSZXBhaW50ID0g
Tk87CisgICAgVU5VU0VEX1BBUkFNKHRpbWVPZmZzZXQpOworCisgICAgQ0dGb2N1c1JpbmdTdHls
ZSBmb2N1c1JpbmdTdHlsZTsKKyAgICBmb2N1c1JpbmdTdHlsZS52ZXJzaW9uID0gMDsKKyAgICBm
b2N1c1JpbmdTdHlsZS50aW50ID0ga0NHRm9jdXNSaW5nVGludEJsdWU7CisgICAgZm9jdXNSaW5n
U3R5bGUub3JkZXJpbmcgPSBrQ0dGb2N1c1JpbmdPcmRlcmluZ05vbmU7CisgICAgZm9jdXNSaW5n
U3R5bGUuYWxwaGEgPSBrQ0dGb2N1c1JpbmdBbHBoYURlZmF1bHQ7CisgICAgZm9jdXNSaW5nU3R5
bGUucmFkaXVzID0ga0NHRm9jdXNSaW5nUmFkaXVzRGVmYXVsdDsKKyAgICBmb2N1c1JpbmdTdHls
ZS50aHJlc2hvbGQgPSBrQ0dGb2N1c1JpbmdUaHJlc2hvbGREZWZhdWx0OworICAgIGZvY3VzUmlu
Z1N0eWxlLmJvdW5kcyA9IENHUmVjdFplcm87CisjZW5kaWYKIAogICAgIC8vIFdlIHdhbnQgdG8g
cmVzcGVjdCB0aGUgQ0dDb250ZXh0IGNsaXBwaW5nIGFuZCBhbHNvIG5vdCBvdmVycGFpbnQgYW55
CiAgICAgLy8gZXhpc3RpbmcgZm9jdXMgcmluZy4gVGhlIHdheSB0byBkbyB0aGlzIGlzIHNldCBh
Y2N1bXVsYXRlIHRvCkBAIC0xMDEsMTEgKzExNSwxMSBAQCBzdGF0aWMgYm9vbCBkcmF3Rm9jdXNS
aW5nVG9Db250ZXh0QXRUaW1lKENHQ29udGV4dFJlZiBjb250ZXh0LCBDR1BhdGhSZWYgZm9jdXNS
aQogICAgIHJldHVybiBkcmF3Rm9jdXNSaW5nQXRUaW1lKGNvbnRleHQsIHN0ZDo6bnVtZXJpY19s
aW1pdHM8ZG91YmxlPjo6bWF4KCksIGNvbG9yKTsKIH0KIAotI2VuZGlmIC8vIFBMQVRGT1JNKE1B
QykKKyNlbmRpZiAvLyBFTkFCTEUoRlVMTF9LRVlCT0FSRF9BQ0NFU1MpCiAKIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNvbnN0IFBhdGgmIHBhdGgsIGZsb2F0IHdpZHRoLCBm
bG9hdCBvZmZzZXQsIGNvbnN0IENvbG9yJiBjb2xvcikKIHsKLSNpZiBQTEFURk9STShNQUMpCisj
aWYgRU5BQkxFKEZVTExfS0VZQk9BUkRfQUNDRVNTKQogICAgIGlmIChwYWludGluZ0Rpc2FibGVk
KCkgfHwgcGF0aC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xMjMsNyArMTM3LDEw
IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNvbnN0IFBhdGgmIHBhdGgs
IGZsb2F0IHdpZHRoLCBmbG9hdCBvZmZzZXQsCiAjZW5kaWYKIH0KIAotI2lmIFBMQVRGT1JNKE1B
QykKKy8vIEZJWE1FOiBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBzaG91bGQgb25seSBiZSBjb21w
aWxlZCBmb3IgTWFjLiBPbmNlIHdlIGZpeCA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5MzU4MT4KKy8vIHdlIHdpbGwgYmUgaW4gYSBwb3NpdGlvbiB0byBvbmx5IGNh
bGwgdGhlc2UgZnVuY3Rpb25zIGZvciBNYWMuCisjaWYgRU5BQkxFKEZVTExfS0VZQk9BUkRfQUND
RVNTKQorCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBQYXRoJiBw
YXRoLCBkb3VibGUgdGltZU9mZnNldCwgYm9vbCYgbmVlZHNSZWRyYXcsIGNvbnN0IENvbG9yJiBj
b2xvcikKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpIHx8IHBhdGguaXNOdWxsKCkpCkBA
IC0xNDksMTEgKzE2NiwxMiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhj
b25zdCBWZWN0b3I8RmxvYXRSZWN0PiYgcmVjdHMsIGRvdWJsZSB0aW1lTwogCiAgICAgbmVlZHNS
ZWRyYXcgPSBkcmF3Rm9jdXNSaW5nVG9Db250ZXh0QXRUaW1lKHBsYXRmb3JtQ29udGV4dCgpLCBm
b2N1c1JpbmdQYXRoLmdldCgpLCB0aW1lT2Zmc2V0LCBjb2xvcik7CiB9CisKICNlbmRpZgogCiB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBWZWN0b3I8RmxvYXRSZWN0
PiYgcmVjdHMsIGZsb2F0IHdpZHRoLCBmbG9hdCBvZmZzZXQsIGNvbnN0IENvbG9yJiBjb2xvcikK
IHsKLSNpZiBQTEFURk9STShNQUMpCisjaWYgRU5BQkxFKEZVTExfS0VZQk9BUkRfQUNDRVNTKQog
ICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0NvbG9ySU9TLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvQ29sb3JJT1MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjA3Nzg1MzhjYjAxMGExNDA3
OTg2NGFmODlhNWMyODJhOGE4YmM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL0NvbG9ySU9TLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ29sb3IuaCIKKworI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisKK09CSkNfQ0xBU1MgVUlDb2xvcjsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDb2xv
ciBjb2xvckZyb21VSUNvbG9yKFVJQ29sb3IgKik7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ29sb3JJ
T1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ29sb3JJT1MubW0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzExZmRlZDZhOTQ1NGJiNjFiOWQ1NTdjYjY2YjNhYjMxODAzNjUzZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9Db2xvcklPUy5tbQpAQCAtMCwwICsx
LDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJDb2xvcklP
Uy5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2ltcG9ydCA8VUlLaXQvVUlLaXQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDb2xvciBjb2xvckZyb21VSUNvbG9yKFVJQ29s
b3IgKmNvbG9yKQoreworICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgd29yayBmb3IgYSBVSUNvbG9y
IHRoYXQgd2FzIGNyZWF0ZWQgZnJvbSBhIHBhdHRlcm4uCisgICAgQ0dGbG9hdCByZWRDb21wb25l
bnQ7CisgICAgQ0dGbG9hdCBncmVlbkNvbXBvbmVudDsKKyAgICBDR0Zsb2F0IGJsdWVDb21wb25l
bnQ7CisgICAgQ0dGbG9hdCBhbHBoYTsKKworICAgIFtjb2xvciBnZXRSZWQ6JnJlZENvbXBvbmVu
dCBncmVlbjomZ3JlZW5Db21wb25lbnQgYmx1ZTomYmx1ZUNvbXBvbmVudCBhbHBoYTomYWxwaGFd
OworCisgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBzY2FsZUZhY3RvciA9IG5leHRhZnRlcigyNTYu
MCwgMC4wKTsKKyAgICByZXR1cm4gbWFrZVJHQkEoc2NhbGVGYWN0b3IgKiByZWRDb21wb25lbnQs
IHNjYWxlRmFjdG9yICogZ3JlZW5Db21wb25lbnQsIHNjYWxlRmFjdG9yICogYmx1ZUNvbXBvbmVu
dCwgc2NhbGVGYWN0b3IgKiBhbHBoYSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXgg
Mzk1NDQ1MjU4NmI1NGVlOTJlOGM1MzA0MjE5MDJhOTc0Yzk0YTE1ZC4uMzY0MWRkOWFlMmRkN2Jh
OTg2ZDVjMTE1MDI0ZjlmNTkxZTQ5OGMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbGVtZW50LmNwcApAQCAtMTgxOSw3ICsxODE5LDEwIEBAIHZvaWQgUmVuZGVyRWxlbWVu
dDo6cGFpbnRGb2N1c1JpbmcoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IFJlbmRlclN0eWxl
JiBzdHlsCiAgICAgICAgIHJlY3QuaW5mbGF0ZShvdXRsaW5lT2Zmc2V0KTsKICAgICAgICAgcGl4
ZWxTbmFwcGVkRm9jdXNSaW5nUmVjdHMuYXBwZW5kKHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMocmVj
dCwgZGV2aWNlU2NhbGVGYWN0b3IpKTsKICAgICB9Ci0jaWYgUExBVEZPUk0oTUFDKQorICAgIC8v
IEZJWE1FOiBUaGUgZm9sbG93aW5nIGNvZGUgc2hvdWxkIG9ubHkgYmUgY29tcGlsZWQgZm9yIE1h
Yy4gT25jZSB3ZSBmaXggPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTM1ODE+CisgICAgLy8gd2UgY2FuIGV4dHJhY3QgdGhlIHBsYXRmb3JtLWluZGVwZW5kZW50IHNo
cmluay13cmFwcGluZyBsb2dpYyBhbmQgb25seSBndWFyZCB0aGUgY2FsbHMgdG8gdGhlIHJlcGFp
bnQtYXdhcmUgZHJhd0ZvY3VzUmluZygpCisgICAgLy8gdmFyaWFudHMgaW4gUExBVEZPUk0oTUFD
KS4KKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBib29sIG5lZWRzUmVwYWludDsKICAgICBpZiAo
c3R5bGUuaGFzQm9yZGVyUmFkaXVzKCkpIHsKICAgICAgICAgUGF0aCBwYXRoID0gUGF0aFV0aWxp
dGllczo6cGF0aFdpdGhTaHJpbmtXcmFwcGVkUmVjdHNGb3JPdXRsaW5lKHBpeGVsU25hcHBlZEZv
Y3VzUmluZ1JlY3RzLCBzdHlsZS5ib3JkZXIoKSwgb3V0bGluZU9mZnNldCwgc3R5bGUuZGlyZWN0
aW9uKCksIHN0eWxlLndyaXRpbmdNb2RlKCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckltYWdlLmNwcAppbmRleCA3NjQ0MWVhZDE4ZDQ4NmVmNTU4MTljZDE2YzYxZDE4YTk1NmZhNTQx
Li4xODNhOTM0MTk0OGNiMmRmMDZjOGQzYmJiYjM0NjI1NTc1NGZiMTU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKQEAgLTU1MCwxMCArNTUwLDcgQEAgdm9pZCBS
ZW5kZXJJbWFnZTo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50
JiBwYWludE9mZnNldCkKICAgICAKIHZvaWQgUmVuZGVySW1hZ2U6OnBhaW50QXJlYUVsZW1lbnRG
b2N1c1JpbmcoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9m
ZnNldCkKIHsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIFVOVVNFRF9QQVJBTShwYWlu
dEluZm8pOwotICAgIFVOVVNFRF9QQVJBTShwYWludE9mZnNldCk7Ci0jZWxzZQorI2lmIEVOQUJM
RShGVUxMX0tFWUJPQVJEX0FDQ0VTUykKICAgICBpZiAoZG9jdW1lbnQoKS5wcmludGluZygpIHx8
ICFmcmFtZSgpLnNlbGVjdGlvbigpLmlzRm9jdXNlZEFuZEFjdGl2ZSgpKQogICAgICAgICByZXR1
cm47CiAgICAgCkBAIC01OTcsOCArNTk0LDExIEBAIHZvaWQgUmVuZGVySW1hZ2U6OnBhaW50QXJl
YUVsZW1lbnRGb2N1c1JpbmcoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvCiAg
ICAgICAgIHBhZ2UoKS5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudE5lZWRzUmVw
YWludCgpOwogI2Vsc2UKICAgICBwYWludEluZm8uY29udGV4dCgpLmRyYXdGb2N1c1JpbmcocGF0
aCwgb3V0bGluZVdpZHRoLCBhcmVhRWxlbWVudFN0eWxlLT5vdXRsaW5lT2Zmc2V0KCksIGFyZWFF
bGVtZW50U3R5bGUtPnZpc2l0ZWREZXBlbmRlbnRDb2xvcldpdGhDb2xvckZpbHRlcihDU1NQcm9w
ZXJ0eU91dGxpbmVDb2xvcikpOwotI2VuZGlmCi0jZW5kaWYKKyNlbmRpZiAvLyBQTEFURk9STShN
QUMpCisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWludEluZm8pOworICAgIFVOVVNFRF9QQVJB
TShwYWludE9mZnNldCk7CisjZW5kaWYgLy8gRU5BQkxFKEZVTExfS0VZQk9BUkRfQUNDRVNTKQog
fQogCiB2b2lkIFJlbmRlckltYWdlOjphcmVhRWxlbWVudEZvY3VzQ2hhbmdlZChIVE1MQXJlYUVs
ZW1lbnQqIGVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5o
CmluZGV4IGE1YTMwYWMyYTk0MWJiMmMzNThmNDRhN2E2ZmY3YzZiZjVmMjAwNDguLjM5MzQ2YzE0
NWQ4OWMyNzlkMGFkMjUxMmRiNTBjZmU4ZDUyZTUxNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUlPUy5oCkBAIC0xMDksOCArMTA5LDExIEBAIHByb3RlY3RlZDoKICAg
ICB2b2lkIGFkanVzdFNlYXJjaEZpZWxkU3R5bGUoU3R5bGVSZXNvbHZlciYsIFJlbmRlclN0eWxl
JiwgY29uc3QgRWxlbWVudCopIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgcGFpbnRTZWFyY2hG
aWVsZERlY29yYXRpb25zKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNv
bnN0IEludFJlY3QmKSBvdmVycmlkZTsKIAorICAgIGJvb2wgc3VwcG9ydHNGb2N1c1JpbmcoY29u
c3QgUmVuZGVyU3R5bGUmKSBjb25zdCBmaW5hbDsKKwogICAgIENvbG9yIHBsYXRmb3JtQWN0aXZl
U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRl
OworICAgIENvbG9yIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAg
Q29sb3IgcGxhdGZvcm1UYXBIaWdobGlnaHRDb2xvcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IDB4NEQxQTFBMUE7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5t
bQppbmRleCBlZTFlMjI2ODMxY2Y2NDk3YzA0ZGYzYjUwNzdhZDc1Nzk4ODVlODg5Li44ZjNlNGM2
YjA3OTIzM2QyN2RmNTQ5ZGY3YTFiNjBkY2JhYzNkNTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJDU1NQ
cmltaXRpdmVWYWx1ZS5oIgogI2ltcG9ydCAiQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oIgog
I2ltcG9ydCAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgorI2ltcG9ydCAiQ29sb3JJT1MuaCIKICNpbXBv
cnQgIkRhdGVDb21wb25lbnRzLmgiCiAjaW1wb3J0ICJEb2N1bWVudC5oIgogI2ltcG9ydCAiRmls
ZS5oIgpAQCAtMTEzMCwxMSArMTEzMSwyMSBAQCBDb2xvciBSZW5kZXJUaGVtZUlPUzo6cGxhdGZv
cm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDbwogICAg
IHJldHVybiBDb2xvcjo6dHJhbnNwYXJlbnQ7CiB9CiAKK0NvbG9yIFJlbmRlclRoZW1lSU9TOjpw
bGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29u
c3QKK3sKKyAgICByZXR1cm4gY29sb3JGcm9tVUlDb2xvcihbZ2V0VUlDb2xvckNsYXNzKCkga2V5
Ym9hcmRGb2N1c0luZGljYXRvckNvbG9yXSk7Cit9CisKIGJvb2wgUmVuZGVyVGhlbWVJT1M6OnNo
b3VsZEhhdmVTcGluQnV0dG9uKGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQmKSBjb25zdAogewogICAg
IHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBSZW5kZXJUaGVtZUlPUzo6c3VwcG9ydHNGb2N1c1Jp
bmcoY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKwog
Rm9udENhc2NhZGVEZXNjcmlwdGlvbiYgUmVuZGVyVGhlbWVJT1M6OmNhY2hlZFN5c3RlbUZvbnRE
ZXNjcmlwdGlvbihDU1NWYWx1ZUlEIHZhbHVlSUQpIGNvbnN0CiB7CiAgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEZvbnRDYXNjYWRlRGVzY3JpcHRpb24+IHN5c3RlbUZvbnQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359522</attachid>
            <date>2019-01-18 12:20:20 -0800</date>
            <delta_ts>2019-01-18 14:25:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193583-20190118122019.patch</filename>
            <type>text/plain</type>
            <size>21365</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDY2MmY5OWJlNWQxYzIw
Y2EzOGUzMWZhNjBiMTE1ZjdmNzc5OTIwNy4uODdhNzQ4YTBlYmMwNDdlNDMxNTdkMjlhMjM3YWQ2
ZTkwMmJmMGFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE5LTAxLTE4ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBDU1MgYXV0byBmb2N1cy1y
aW5nIG91dGxpbmVzIGRvbid0IHJlbmRlciBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzU4MworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NjUwODY5Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgZHJhd2luZyBmb2N1cyByaW5ncyBvbiBpT1Mgd2hlbiBi
dWlsdCB3aXRoIEVOQUJMRShGVUxMX0tFWUJPQVJEX0FDQ0VTUykKKyAgICAgICAgZW5hYmxlZC4K
KworICAgICAgICBGb3Igbm93IHRoZSBmb2N1cyByaW5nIGRyYXdpbmcgZm9yIGlPUyBpcyB0YW5n
bGVkIHVwIGludG8gdGhlIE1hYy1zcGVjaWZpYyBjb2RlIHRvIGRyYXcKKyAgICAgICAgYW5pbWF0
ZWQgZm9jdXMgcmluZ3MuIFdlIHdpbGwgbmVlZCB0byBmaXggPGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM1ODE+CisgICAgICAgIHRvIGJlIGluIGEgcG9zaXRpb25t
IHRvIHVudGFuZ2xlIHRoaXMuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OiBBZGQgZmls
ZSBDb2xvcklPUy5tbS4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6IEFkZCBmaWxlcyBDb2xvcklPUy57aCwgbW19LgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvR3JhcGhpY3NDb250ZXh0Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpkcmF3Rm9jdXNS
aW5nQXRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3Vz
UmluZyk6CisgICAgICAgIENvbXBpbGUgZm9jdXMgcmluZyBkcmF3aW5nIGNvZGUgd2hlbiBidWls
ZGluZyB3aXRoIEVOQUJMRShGVUxMX0tFWUJPQVJEX0FDQ0VTUykgZW5hYmxlZC4KKyAgICAgICAg
VGhpcyBpcyBhbHdheXMgZW5hYmxlZCBvbiBNYWMuCisgICAgICAgIAorICAgICAgICAqIHBsYXRm
b3JtL2lvcy9Db2xvcklPUy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvQ29sb3JJ
T1MubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29sb3JGcm9tVUlDb2xvcik6IENvbnZl
cnQgYSBVSUNvbG9yIHRvIGEgV2ViQ29yZTo6Q29sb3IuCisKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpwYWlu
dEZvY3VzUmluZyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjpwYWludEFyZWFFbGVtZW50Rm9jdXNSaW5nKToKKyAg
ICAgICAgQ29tcGlsZSBmb2N1cyByaW5nIGRyYXdpbmcgY29kZSB3aGVuIGJ1aWxkaW5nIHdpdGgg
RU5BQkxFKEZVTExfS0VZQk9BUkRfQUNDRVNTKSBlbmFibGVkLgorICAgICAgICBUaGlzIGlzIGFs
d2F5cyBlbmFibGVkIG9uIE1hYy4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUlP
Uy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yIGNvbnN0KTogSW1w
bGVtZW50IHRoaXMgb3ZlcnJpZGUgZm9yIGlPUy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lSU9TOjpzdXBwb3J0c0ZvY3VzUmluZyBjb25zdCk6IEltcGxlbWVudCB0aGlzIG92ZXJyaWRl
IGZvciBpT1MgdG8gYWx3YXlzCisgICAgICAgIHJldHVybiBmYWxzZSAtIHRoZSBpT1MgdGhlbWUg
Y29kZSBkb2VzIG5vdCBzdXBwb3J0IHBhaW50aW5nIGZvY3VzIHJpbmdzLiBCeSByZXR1cm5pbmcg
ZmFsc2Ugd2UKKyAgICAgICAgd2lsbCB1c2UgdGhlIHBsYXRmb3JtLWluZGVwZW5kZW50LCBub24t
dGhlbWUgY29kZSBwYXRoIHRvIGRyYXcgZm9jdXMgcmluZ3MuCisKIDIwMTktMDEtMTUgIERhbmll
bCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIE1ha2UgV2luZG93
IHZpcnR1YWwga2V5IGNvZGUgY29tcHV0YXRpb24gbWF0Y2ggTWFjCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpp
bmRleCA1ZDczZGY0ZDZjMDNjY2QxNDBiNjRiODZhODMwYWI2ZGM3NTNjNGZjLi44ZWVhOTUyNDg1
NjUxZmRiZmIxOWEwNmY0MGQwNTdjNzMzMmQ1MTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxOS0wMS0xOCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+
CisKKyAgICAgICAgQ1NTIGF1dG8gZm9jdXMtcmluZyBvdXRsaW5lcyBkb24ndCByZW5kZXIgb24g
aU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM1
ODMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY1MDg2OTc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yd2FyZCBkZWNsYXJlIHNvbWUgSVBJLgor
CisgICAgICAgICogcGFsL3NwaS9pb3MvVUlLaXRTUEkuaDoKKwogMjAxOS0wMS0xMSAgRGFuaWVs
IEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gS2V5dXBzIGZvciBu
b24tbW9kaWZpZXIga2V5cyBpZGVudGlmaWVkIGFzICJEZWFkIiB3aGVuIG5vdCBmb2N1c2VkIGlu
IGEgY29udGVudC1lZGl0YWJsZSBlbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9pb3MvVUlLaXRTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lv
cy9VSUtpdFNQSS5oCmluZGV4IGM0YjhkY2M4NjkxMWEzNzQ2NTg1NzY1ZGVlNTZiZWRhNzU5ZjZl
NDYuLjU2NmNkZWFlYzQ2NzhmNjI0Y2ZmNzllNmY0YTc0NTZmZWUyMjQzNjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9VSUtpdFNQSS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9VSUtpdFNQSS5oCkBAIC0xMTYsNCArMTE2LDEwIEBAIE5T
X0FTU1VNRV9OT05OVUxMX0VORAogQGVuZAogI2VuZGlmCiAKKyNlbmRpZiAvLyBVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKQorCisjaWYgRU5BQkxFKEZVTExfS0VZQk9BUkRfQUNDRVNTKQorQGludGVy
ZmFjZSBVSUNvbG9yIChJUEkpCisrIChVSUNvbG9yICopa2V5Ym9hcmRGb2N1c0luZGljYXRvckNv
bG9yOworQGVuZAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29j
b2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCAyMDA1YzlhOTJl
MTZmZTcxNzFmN2E3YmJkZjRiN2JiZGZkYTViOWU3Li4yNzJiNDJjMzZmMzYxNDU3ZWJhYWE5MDdh
YmMxYzZlYzM5ZDE5ZGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2Eu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTM4OCw2ICszODgs
NyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGVtcG9yYXJ5T3BlbkdMU2V0dGluZy5jcHAK
IAogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVDRy5jcHAKIAorcGxhdGZvcm0v
aW9zL0NvbG9ySU9TLm1tCiBwbGF0Zm9ybS9pb3MvQ3Vyc29ySU9TLmNwcAogcGxhdGZvcm0vaW9z
L0RldmljZS5jcHAKIHBsYXRmb3JtL2lvcy9EZXZpY2VNb3Rpb25DbGllbnRJT1MubW0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBj
ZTQ5ZmRmM2U0MTk5NzA5MTYxMjE2OGJlMzVkNTFiOGNiY2YzYjZlLi42MzUwZTg0YjI1OWM0ZDFm
NGY1ODM3Y2Q5ZTA5ZjlmZjkxMzdlYjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MjAzLDYgKzQyMDMsNyBAQAogCQlDRTE4
NjY0NTFGNzJFNUI0MDBBMENBQjYgLyogTWFya2VkVGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0UxODY2NDMxRjcyRTVCNDAwQTBDQUI2IC8qIE1h
cmtlZFRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlDRTI4NDk4NzFDQTM2MERGMDBCNEE1N0YgLyogQ29udGVudFNlY3VyaXR5UG9saWN5RGly
ZWN0aXZlTmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENFMjg0OTg2MUNBMzYwREYwMEI0QTU3RiAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lEaXJl
Y3RpdmVOYW1lcy5oICovOyB9OwogCQlDRTRFQ0NENjIxNUFBODEyMDA1NThDNDEgLyogV2ViRXZl
bnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTBE
ODRFQTEwNDg0MzZFMDAxQTE3OUUgLyogV2ViRXZlbnQubW0gKi87IH07CisJCUNFNTE2OUU3MjFG
MUI4NDcwMEVBNEY3OCAvKiBDb2xvcklPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0U1MTY5RTUyMUYxQjg0NzAwRUE0Rjc4IC8qIENvbG9ySU9TLmgg
Ki87IH07CiAJCUNFNUZBMjU1MjA5RTQ4QzUwMDUxRDcwMCAvKiBDb250ZW50U2VjdXJpdHlQb2xp
Y3lDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENFNUZBMjUzMjA5RTQ4QzUwMDUxRDcwMCAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRTZE
QURGQTFDNTkxRTZBMDAzRjZBODggLyogQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTZE
QURGODFDNTkxRTZBMDAzRjZBODggLyogQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
Q0U3OTlGOTgxQzZBNDZCQzAwOTdCNTE4IC8qIENvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZUxp
c3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFNzk5
Rjk2MUM2QTQ2QkMwMDk3QjUxOCAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2VMaXN0Lmgg
Ki87IH07CkBAIC0xMzgyOCw2ICsxMzgyOSw4IEBACiAJCUNFMTg2NjQzMUY3MkU1QjQwMEEwQ0FC
NiAvKiBNYXJrZWRUZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hcmtlZFRleHQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0UyODQ5ODYxQ0EzNjBERjAwQjRBNTdGIC8qIENvbnRlbnRT
ZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IENvbnRlbnRTZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzLmg7IHBhdGggPSBjc3Av
Q29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0UyODQ5ODgxQ0EzNjE0NjAwQjRBNTdGIC8qIENvbnRlbnRTZWN1cml0eVBv
bGljeURpcmVjdGl2ZU5hbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IENvbnRlbnRTZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzLmNwcDsgcGF0aCA9IGNzcC9D
b250ZW50U2VjdXJpdHlQb2xpY3lEaXJlY3RpdmVOYW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNFNTE2OUU1MjFGMUI4NDcwMEVBNEY3OCAvKiBDb2xvcklPUy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDb2xvcklPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRTUx
NjlFNjIxRjFCODQ3MDBFQTRGNzggLyogQ29sb3JJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBDb2xvcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0U1Q0IxQjMxNEVE
QUI2RjAwQkIyNzk1IC8qIEV2ZW50U2VuZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEV2ZW50U2VuZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFNUZB
MjUzMjA5RTQ4QzUwMDUxRDcwMCAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gQ29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50Lmg7IHBhdGggPSBjc3AvQ29u
dGVudFNlY3VyaXR5UG9saWN5Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNFNjhDOEZGMjE5MjRFRTUwMDEyMzBCMyAvKiBQbGF0Zm9ybUtleWJvYXJkRXZlbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1LZXlib2FyZEV2ZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTIyMjU2LDYgKzIyMjU5LDggQEAKIAkJCWNoaWxkcmVuID0gKAog
CQkJCUExNDgzMjhCMTg3RjUwNjgwMERBNjNBNiAvKiB3YWsgKi8sCiAJCQkJRjQ4MjIzMTIxRTM4
NkUyNDAwNjZGQzc5IC8qIEFic3RyYWN0UGFzdGVib2FyZC5oICovLAorCQkJCUNFNTE2OUU1MjFG
MUI4NDcwMEVBNEY3OCAvKiBDb2xvcklPUy5oICovLAorCQkJCUNFNTE2OUU2MjFGMUI4NDcwMEVB
NEY3OCAvKiBDb2xvcklPUy5tbSAqLywKIAkJCQkyNjU1NDE0QjE0ODlBQTJCMDAwREZDNUQgLyog
Q3Vyc29ySU9TLmNwcCAqLywKIAkJCQlBMUVENzc4QTFCRTMyOTNGMDBEQzE3OTEgLyogRGV2aWNl
LmNwcCAqLywKIAkJCQlBMUVENzc4QjFCRTMyOTQwMDBEQzE3OTEgLyogRGV2aWNlLmggKi8sCkBA
IC0yODUyNSw2ICsyODUzMCw3IEBACiAJCQkJRjQ4RDJBQTUyMTU5NzQwRDAwQzY3NTJCIC8qIENv
bG9yQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMDNCN0RGMURCMDE1NjcwMDhCQjg5MCAv
KiBDb2xvckhhc2guaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzREI0MTI1MUYxMkQwMDNFRjI2
OSAvKiBDb2xvcklucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0U1MTY5RTcyMUYxQjg0
NzAwRUE0Rjc4IC8qIENvbG9ySU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlFREUzQTUwMDBDN0E0
MzA2MDA5NTZBMzcgLyogQ29sb3JNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzODJERjU4MTBB
OEQ1QzkwMDkyNTY1MiAvKiBDb2xvclNwYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0RENDU0
RTEyMzZDOTVDMDA5QTc5ODUgLyogQ29sdW1uSW5mby5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjQy
Myw2ICszMjQyOSw3IEBACiAJCQkJU3BhbmlzaCwKIAkJCQlEdXRjaCwKIAkJCQlJdGFsaWFuLAor
CQkJCWVuLAogCQkJKTsKIAkJCW1haW5Hcm91cCA9IDA4NjdENjkxRkU4NDAyOEZDMDJBQUMwNyAv
KiBXZWJDb3JlICovOwogCQkJcHJvZHVjdFJlZkdyb3VwID0gMDM0NzY4REZGRjM4QTUwNDExREI5
QzhCIC8qIFByb2R1Y3RzICovOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRleCAxYzM2NmQ1MWNiZDc0ZDBiY2VkZWM1NzkwZGYy
ZWQ3MWFhY2M3YTk2Li45NTkyMTQzNTAwZGVmNjc1YjZlNTMxNDk3NDlmNmZjMzkwNWMzNGFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuaApAQCAtNDQ2LDcgKzQ0NiwxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRyYXdGb2N1c1Jp
bmcoY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mLCBmbG9hdCB3aWR0aCwgZmxvYXQgb2Zmc2V0LCBj
b25zdCBDb2xvciYpOwogICAgIHZvaWQgZHJhd0ZvY3VzUmluZyhjb25zdCBQYXRoJiwgZmxvYXQg
d2lkdGgsIGZsb2F0IG9mZnNldCwgY29uc3QgQ29sb3ImKTsKLSNpZiBQTEFURk9STShNQUMpCisK
KyAgICAvLyBGSVhNRTogVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgc2hvdWxkIG9ubHkgYmUgY29t
cGlsZWQgZm9yIE1hYy4gT25jZSB3ZSBmaXggPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTM1ODE+CisgICAgLy8gd2Ugd2lsbCBiZSBpbiBhIHBvc2l0aW9uIHRvIG9u
bHkgY2FsbCB0aGVzZSBmdW5jdGlvbnMgZm9yIE1hYy4KKyNpZiBQTEFURk9STShDT0NPQSkKICAg
ICB2b2lkIGRyYXdGb2N1c1JpbmcoY29uc3QgUGF0aCYsIGRvdWJsZSB0aW1lT2Zmc2V0LCBib29s
JiBuZWVkc1JlZHJhdywgY29uc3QgQ29sb3ImKTsKICAgICB2b2lkIGRyYXdGb2N1c1JpbmcoY29u
c3QgVmVjdG9yPEZsb2F0UmVjdD4mLCBkb3VibGUgdGltZU9mZnNldCwgYm9vbCYgbmVlZHNSZWRy
YXcsIGNvbnN0IENvbG9yJik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dENvY29hLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0Q29jb2EubW0KaW5k
ZXggMDY4YWVmYTBhYjVhZDk4MzAxYTBjMWVjNGNkMTRiMTM1NzFlMTc5ZS4uNjk4NjBlZTlkM2Zl
Y2NiZjcyNzVjZmNkMzlmZjhkZmJjZDkzYTBmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0Q29jb2EubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0Q29jb2Eu
bW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC01OSwxMiArNTksMjYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gTlNDb2xvciwg
TlNCZXppZXJQYXRoLCBhbmQgTlNHcmFwaGljc0NvbnRleHQgY2FsbHMgZG8gbm90IHJhaXNlIGV4
Y2VwdGlvbnMKIC8vIHNvIHdlIGRvbid0IGJsb2NrIGV4Y2VwdGlvbnMuCiAKLSNpZiBQTEFURk9S
TShNQUMpCisjaWYgRU5BQkxFKEZVTExfS0VZQk9BUkRfQUNDRVNTKQogCiBzdGF0aWMgYm9vbCBk
cmF3Rm9jdXNSaW5nQXRUaW1lKENHQ29udGV4dFJlZiBjb250ZXh0LCBOU1RpbWVJbnRlcnZhbCB0
aW1lT2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3IpCiB7CisjaWYgVVNFKEFQUEtJVCkKICAgICBD
R0ZvY3VzUmluZ1N0eWxlIGZvY3VzUmluZ1N0eWxlOwogICAgIEJPT0wgbmVlZHNSZXBhaW50ID0g
TlNJbml0aWFsaXplQ0dGb2N1c1JpbmdTdHlsZUZvclRpbWUoTlNGb2N1c1JpbmdPbmx5LCAmZm9j
dXNSaW5nU3R5bGUsIHRpbWVPZmZzZXQpOworI2Vsc2UKKyAgICBCT09MIG5lZWRzUmVwYWludCA9
IE5POworICAgIFVOVVNFRF9QQVJBTSh0aW1lT2Zmc2V0KTsKKworICAgIENHRm9jdXNSaW5nU3R5
bGUgZm9jdXNSaW5nU3R5bGU7CisgICAgZm9jdXNSaW5nU3R5bGUudmVyc2lvbiA9IDA7CisgICAg
Zm9jdXNSaW5nU3R5bGUudGludCA9IGtDR0ZvY3VzUmluZ1RpbnRCbHVlOworICAgIGZvY3VzUmlu
Z1N0eWxlLm9yZGVyaW5nID0ga0NHRm9jdXNSaW5nT3JkZXJpbmdOb25lOworICAgIGZvY3VzUmlu
Z1N0eWxlLmFscGhhID0ga0NHRm9jdXNSaW5nQWxwaGFEZWZhdWx0OworICAgIGZvY3VzUmluZ1N0
eWxlLnJhZGl1cyA9IGtDR0ZvY3VzUmluZ1JhZGl1c0RlZmF1bHQ7CisgICAgZm9jdXNSaW5nU3R5
bGUudGhyZXNob2xkID0ga0NHRm9jdXNSaW5nVGhyZXNob2xkRGVmYXVsdDsKKyAgICBmb2N1c1Jp
bmdTdHlsZS5ib3VuZHMgPSBDR1JlY3RaZXJvOworI2VuZGlmCiAKICAgICAvLyBXZSB3YW50IHRv
IHJlc3BlY3QgdGhlIENHQ29udGV4dCBjbGlwcGluZyBhbmQgYWxzbyBub3Qgb3ZlcnBhaW50IGFu
eQogICAgIC8vIGV4aXN0aW5nIGZvY3VzIHJpbmcuIFRoZSB3YXkgdG8gZG8gdGhpcyBpcyBzZXQg
YWNjdW11bGF0ZSB0bwpAQCAtMTAxLDExICsxMTUsMTEgQEAgc3RhdGljIGJvb2wgZHJhd0ZvY3Vz
UmluZ1RvQ29udGV4dEF0VGltZShDR0NvbnRleHRSZWYgY29udGV4dCwgQ0dQYXRoUmVmIGZvY3Vz
UmkKICAgICByZXR1cm4gZHJhd0ZvY3VzUmluZ0F0VGltZShjb250ZXh0LCBzdGQ6Om51bWVyaWNf
bGltaXRzPGRvdWJsZT46Om1heCgpLCBjb2xvcik7CiB9CiAKLSNlbmRpZiAvLyBQTEFURk9STShN
QUMpCisjZW5kaWYgLy8gRU5BQkxFKEZVTExfS0VZQk9BUkRfQUNDRVNTKQogCiB2b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBQYXRoJiBwYXRoLCBmbG9hdCB3aWR0aCwg
ZmxvYXQgb2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3IpCiB7Ci0jaWYgUExBVEZPUk0oTUFDKQor
I2lmIEVOQUJMRShGVUxMX0tFWUJPQVJEX0FDQ0VTUykKICAgICBpZiAocGFpbnRpbmdEaXNhYmxl
ZCgpIHx8IHBhdGguaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTIzLDcgKzEzNywx
MCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBQYXRoJiBwYXRo
LCBmbG9hdCB3aWR0aCwgZmxvYXQgb2Zmc2V0LAogI2VuZGlmCiB9CiAKLSNpZiBQTEFURk9STShN
QUMpCisvLyBGSVhNRTogVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgc2hvdWxkIG9ubHkgYmUgY29t
cGlsZWQgZm9yIE1hYy4gT25jZSB3ZSBmaXggPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTM1ODE+CisvLyB3ZSB3aWxsIGJlIGluIGEgcG9zaXRpb24gdG8gb25seSBj
YWxsIHRoZXNlIGZ1bmN0aW9ucyBmb3IgTWFjLgorI2lmIEVOQUJMRShGVUxMX0tFWUJPQVJEX0FD
Q0VTUykKKwogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcoY29uc3QgUGF0aCYg
cGF0aCwgZG91YmxlIHRpbWVPZmZzZXQsIGJvb2wmIG5lZWRzUmVkcmF3LCBjb25zdCBDb2xvciYg
Y29sb3IpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSB8fCBwYXRoLmlzTnVsbCgpKQpA
QCAtMTQ5LDExICsxNjYsMTIgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1Jpbmco
Y29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mIHJlY3RzLCBkb3VibGUgdGltZU8KIAogICAgIG5lZWRz
UmVkcmF3ID0gZHJhd0ZvY3VzUmluZ1RvQ29udGV4dEF0VGltZShwbGF0Zm9ybUNvbnRleHQoKSwg
Zm9jdXNSaW5nUGF0aC5nZXQoKSwgdGltZU9mZnNldCwgY29sb3IpOwogfQorCiAjZW5kaWYKIAog
dm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcoY29uc3QgVmVjdG9yPEZsb2F0UmVj
dD4mIHJlY3RzLCBmbG9hdCB3aWR0aCwgZmxvYXQgb2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3Ip
CiB7Ci0jaWYgUExBVEZPUk0oTUFDKQorI2lmIEVOQUJMRShGVUxMX0tFWUJPQVJEX0FDQ0VTUykK
ICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9Db2xvcklPUy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL0NvbG9ySU9TLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWYwNzc4NTM4Y2IwMTBhMTQw
Nzk4NjRhZjg5YTVjMjgyYThhOGJjOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9Db2xvcklPUy5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbG9yLmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQorCitPQkpDX0NMQVNTIFVJQ29sb3I7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ29s
b3IgY29sb3JGcm9tVUlDb2xvcihVSUNvbG9yICopOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0NvbG9y
SU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0NvbG9ySU9TLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmMxMWZkZWQ2YTk0NTRiYjYxYjlkNTU3Y2I2NmIzYWIzMTgwMzY1M2QKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ29sb3JJT1MubW0KQEAgLTAsMCAr
MSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQ29sb3JJ
T1MuaCIKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNpbXBvcnQgPFVJS2l0L1VJS2l0
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ29sb3IgY29sb3JGcm9tVUlDb2xvcihVSUNv
bG9yICpjb2xvcikKK3sKKyAgICAvLyBGSVhNRTogTWFrZSB0aGlzIHdvcmsgZm9yIGEgVUlDb2xv
ciB0aGF0IHdhcyBjcmVhdGVkIGZyb20gYSBwYXR0ZXJuLgorICAgIENHRmxvYXQgcmVkQ29tcG9u
ZW50OworICAgIENHRmxvYXQgZ3JlZW5Db21wb25lbnQ7CisgICAgQ0dGbG9hdCBibHVlQ29tcG9u
ZW50OworICAgIENHRmxvYXQgYWxwaGE7CisKKyAgICBbY29sb3IgZ2V0UmVkOiZyZWRDb21wb25l
bnQgZ3JlZW46JmdyZWVuQ29tcG9uZW50IGJsdWU6JmJsdWVDb21wb25lbnQgYWxwaGE6JmFscGhh
XTsKKworICAgIHN0YXRpYyBjb25zdCBkb3VibGUgc2NhbGVGYWN0b3IgPSBuZXh0YWZ0ZXIoMjU2
LjAsIDAuMCk7CisgICAgcmV0dXJuIG1ha2VSR0JBKHNjYWxlRmFjdG9yICogcmVkQ29tcG9uZW50
LCBzY2FsZUZhY3RvciAqIGdyZWVuQ29tcG9uZW50LCBzY2FsZUZhY3RvciAqIGJsdWVDb21wb25l
bnQsIHNjYWxlRmFjdG9yICogYWxwaGEpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmluZGV4
IDM5NTQ0NTI1ODZiNTRlZTkyZThjNTMwNDIxOTAyYTk3NGM5NGExNWQuLjM2NDFkZDlhZTJkZDdi
YTk4NmQ1YzExNTAyNGY5ZjU5MWU0OThjMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5jcHAKQEAgLTE4MTksNyArMTgxOSwxMCBAQCB2b2lkIFJlbmRlckVsZW1l
bnQ6OnBhaW50Rm9jdXNSaW5nKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bAogICAgICAgICByZWN0LmluZmxhdGUob3V0bGluZU9mZnNldCk7CiAgICAgICAgIHBp
eGVsU25hcHBlZEZvY3VzUmluZ1JlY3RzLmFwcGVuZChzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHJl
Y3QsIGRldmljZVNjYWxlRmFjdG9yKSk7CiAgICAgfQotI2lmIFBMQVRGT1JNKE1BQykKKyAgICAv
LyBGSVhNRTogVGhlIGZvbGxvd2luZyBjb2RlIHNob3VsZCBvbmx5IGJlIGNvbXBpbGVkIGZvciBN
YWMuIE9uY2Ugd2UgZml4IDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkzNTgxPgorICAgIC8vIHdlIGNhbiBleHRyYWN0IHRoZSBwbGF0Zm9ybS1pbmRlcGVuZGVudCBz
aHJpbmstd3JhcHBpbmcgbG9naWMgYW5kIG9ubHkgZ3VhcmQgdGhlIGNhbGxzIHRvIHRoZSByZXBh
aW50LWF3YXJlIGRyYXdGb2N1c1JpbmcoKQorICAgIC8vIHZhcmlhbnRzIGluIFBMQVRGT1JNKE1B
QykuCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgYm9vbCBuZWVkc1JlcGFpbnQ7CiAgICAgaWYg
KHN0eWxlLmhhc0JvcmRlclJhZGl1cygpKSB7CiAgICAgICAgIFBhdGggcGF0aCA9IFBhdGhVdGls
aXRpZXM6OnBhdGhXaXRoU2hyaW5rV3JhcHBlZFJlY3RzRm9yT3V0bGluZShwaXhlbFNuYXBwZWRG
b2N1c1JpbmdSZWN0cywgc3R5bGUuYm9yZGVyKCksIG91dGxpbmVPZmZzZXQsIHN0eWxlLmRpcmVj
dGlvbigpLCBzdHlsZS53cml0aW5nTW9kZSgpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJbWFnZS5jcHAKaW5kZXggNzY0NDFlYWQxOGQ0ODZlZjU1ODE5Y2QxNmM2MWQxOGE5NTZmYTU0
MS4uMTgzYTkzNDE5NDhjYjJkZjA2YzhkM2JiYmIzNDYyNTU3NTRmYjE1NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCkBAIC01NTAsMTAgKzU1MCw3IEBAIHZvaWQg
UmVuZGVySW1hZ2U6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2lu
dCYgcGFpbnRPZmZzZXQpCiAgICAgCiB2b2lkIFJlbmRlckltYWdlOjpwYWludEFyZWFFbGVtZW50
Rm9jdXNSaW5nKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRP
ZmZzZXQpCiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBVTlVTRURfUEFSQU0ocGFp
bnRJbmZvKTsKLSAgICBVTlVTRURfUEFSQU0ocGFpbnRPZmZzZXQpOwotI2Vsc2UKKyNpZiBFTkFC
TEUoRlVMTF9LRVlCT0FSRF9BQ0NFU1MpCiAgICAgaWYgKGRvY3VtZW50KCkucHJpbnRpbmcoKSB8
fCAhZnJhbWUoKS5zZWxlY3Rpb24oKS5pc0ZvY3VzZWRBbmRBY3RpdmUoKSkKICAgICAgICAgcmV0
dXJuOwogICAgIApAQCAtNTk3LDggKzU5NCwxMSBAQCB2b2lkIFJlbmRlckltYWdlOjpwYWludEFy
ZWFFbGVtZW50Rm9jdXNSaW5nKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQbwog
ICAgICAgICBwYWdlKCkuZm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnROZWVkc1Jl
cGFpbnQoKTsKICNlbHNlCiAgICAgcGFpbnRJbmZvLmNvbnRleHQoKS5kcmF3Rm9jdXNSaW5nKHBh
dGgsIG91dGxpbmVXaWR0aCwgYXJlYUVsZW1lbnRTdHlsZS0+b3V0bGluZU9mZnNldCgpLCBhcmVh
RWxlbWVudFN0eWxlLT52aXNpdGVkRGVwZW5kZW50Q29sb3JXaXRoQ29sb3JGaWx0ZXIoQ1NTUHJv
cGVydHlPdXRsaW5lQ29sb3IpKTsKLSNlbmRpZgotI2VuZGlmCisjZW5kaWYgLy8gUExBVEZPUk0o
TUFDKQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFpbnRJbmZvKTsKKyAgICBVTlVTRURfUEFS
QU0ocGFpbnRPZmZzZXQpOworI2VuZGlmIC8vIEVOQUJMRShGVUxMX0tFWUJPQVJEX0FDQ0VTUykK
IH0KIAogdm9pZCBSZW5kZXJJbWFnZTo6YXJlYUVsZW1lbnRGb2N1c0NoYW5nZWQoSFRNTEFyZWFF
bGVtZW50KiBlbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1Mu
aAppbmRleCBhNWEzMGFjMmE5NDFiYjJjMzU4ZjQ0YTdhNmZmN2M2YmY1ZjIwMDQ4Li4zOTM0NmMx
NDVkODljMjc5ZDBhZDI1MTJkYjUwY2ZlOGQ1MmU1MTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVJT1MuaApAQCAtMTA5LDggKzEwOSwxMSBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdm9pZCBhZGp1c3RTZWFyY2hGaWVsZFN0eWxlKFN0eWxlUmVzb2x2ZXImLCBSZW5kZXJTdHls
ZSYsIGNvbnN0IEVsZW1lbnQqKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHBhaW50U2VhcmNo
RmllbGREZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBj
b25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CiAKKyAgICBib29sIHN1cHBvcnRzRm9jdXNSaW5nKGNv
bnN0IFJlbmRlclN0eWxlJikgY29uc3QgZmluYWw7CisKICAgICBDb2xvciBwbGF0Zm9ybUFjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4p
IGNvbnN0IG92ZXJyaWRlOwogICAgIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBvdmVycmlk
ZTsKKyAgICBDb2xvciBwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPikgY29uc3QgZmluYWw7CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAg
IENvbG9yIHBsYXRmb3JtVGFwSGlnaGxpZ2h0Q29sb3IoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biAweDREMUExQTFBOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1Mu
bW0KaW5kZXggZWUxZTIyNjgzMWNmNjQ5N2MwNGRmM2I1MDc3YWQ3NTc5ODg1ZTg4OS4uOGYzZTRj
NmIwNzkyMzNkMjdkZjU0OWRmN2ExYjYwZGNiYWMzZDUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCAiQ1NT
UHJpbWl0aXZlVmFsdWUuaCIKICNpbXBvcnQgIkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaCIK
ICNpbXBvcnQgIkNTU1ZhbHVlS2V5d29yZHMuaCIKKyNpbXBvcnQgIkNvbG9ySU9TLmgiCiAjaW1w
b3J0ICJEYXRlQ29tcG9uZW50cy5oIgogI2ltcG9ydCAiRG9jdW1lbnQuaCIKICNpbXBvcnQgIkZp
bGUuaCIKQEAgLTExMzAsMTEgKzExMzEsMjEgQEAgQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnBsYXRm
b3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ28KICAg
ICByZXR1cm4gQ29sb3I6OnRyYW5zcGFyZW50OwogfQogCitDb2xvciBSZW5kZXJUaGVtZUlPUzo6
cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNv
bnN0Cit7CisgICAgcmV0dXJuIGNvbG9yRnJvbVVJQ29sb3IoW2dldFVJQ29sb3JDbGFzcygpIGtl
eWJvYXJkRm9jdXNJbmRpY2F0b3JDb2xvcl0pOworfQorCiBib29sIFJlbmRlclRoZW1lSU9TOjpz
aG91bGRIYXZlU3BpbkJ1dHRvbihjb25zdCBIVE1MSW5wdXRFbGVtZW50JikgY29uc3QKIHsKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgUmVuZGVyVGhlbWVJT1M6OnN1cHBvcnRzRm9jdXNS
aW5nKGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
IEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mIFJlbmRlclRoZW1lSU9TOjpjYWNoZWRTeXN0ZW1Gb250
RGVzY3JpcHRpb24oQ1NTVmFsdWVJRCB2YWx1ZUlEKSBjb25zdAogewogICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxGb250Q2FzY2FkZURlc2NyaXB0aW9uPiBzeXN0ZW1Gb250Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359539</attachid>
            <date>2019-01-18 14:25:43 -0800</date>
            <delta_ts>2019-01-18 14:25:43 -0800</delta_ts>
            <desc>To Land</desc>
            <filename>bug-193583-20190118142542.patch</filename>
            <type>text/plain</type>
            <size>20938</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTI0ZTQyMWVmNDBiOGY2
NjQzOTI4MDcyZjhlNWU3M2ZhNGUxMjJhYi4uZDdmODQ3NjM4YmZiNzY3YWU1MzQzNzhhMGIxNjUy
ZjM2YmE2ZGY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE5LTAxLTE4ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBDU1MgYXV0byBmb2N1cy1y
aW5nIG91dGxpbmVzIGRvbid0IHJlbmRlciBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzU4MworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NjUwODY5Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAg
SW1wbGVtZW50IHN1cHBvcnQgZm9yIGRyYXdpbmcgZm9jdXMgcmluZ3Mgb24gaU9TIHdoZW4gYnVp
bHQgd2l0aCBFTkFCTEUoRlVMTF9LRVlCT0FSRF9BQ0NFU1MpCisgICAgICAgIGVuYWJsZWQuCisK
KyAgICAgICAgRm9yIG5vdyB0aGUgZm9jdXMgcmluZyBkcmF3aW5nIGZvciBpT1MgaXMgdGFuZ2xl
ZCB1cCBpbnRvIHRoZSBNYWMtc3BlY2lmaWMgY29kZSB0byBkcmF3CisgICAgICAgIGFuaW1hdGVk
IGZvY3VzIHJpbmdzLiBJIHdpbGwgZml4IHRoaXMgaW4gPGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTM1OTE+LgorCisgICAgICAgICogU291cmNlc0NvY29hLnR4dDog
QWRkIGZpbGUgQ29sb3JJT1MubW0uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOiBBZGQgZmlsZXMgQ29sb3JJT1Mue2gsIG1tfS4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6ZHJh
d0ZvY3VzUmluZ0F0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRy
YXdGb2N1c1JpbmcpOgorICAgICAgICBDb21waWxlIGZvY3VzIHJpbmcgZHJhd2luZyBjb2RlIHdo
ZW4gYnVpbGRpbmcgd2l0aCBFTkFCTEUoRlVMTF9LRVlCT0FSRF9BQ0NFU1MpIGVuYWJsZWQuCisg
ICAgICAgIFRoaXMgaXMgYWx3YXlzIGVuYWJsZWQgb24gTWFjLgorICAgICAgICAKKyAgICAgICAg
KiBwbGF0Zm9ybS9pb3MvQ29sb3JJT1MuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9z
L0NvbG9ySU9TLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNvbG9yRnJvbVVJQ29sb3Ip
OiBDb252ZXJ0IGEgVUlDb2xvciB0byBhIFdlYkNvcmU6OkNvbG9yLgorCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVu
dDo6cGFpbnRGb2N1c1JpbmcpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6cGFpbnRBcmVhRWxlbWVudEZvY3VzUmlu
Zyk6CisgICAgICAgIENvbXBpbGUgZm9jdXMgcmluZyBkcmF3aW5nIGNvZGUgd2hlbiBidWlsZGlu
ZyB3aXRoIEVOQUJMRShGVUxMX0tFWUJPQVJEX0FDQ0VTUykgZW5hYmxlZC4KKyAgICAgICAgVGhp
cyBpcyBhbHdheXMgZW5hYmxlZCBvbiBNYWMuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGhlbWVJT1MuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW06CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvciBjb25z
dCk6IEltcGxlbWVudCB0aGlzIG92ZXJyaWRlIGZvciBpT1MuCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZUlPUzo6c3VwcG9ydHNGb2N1c1JpbmcgY29uc3QpOiBJbXBsZW1lbnQgdGhpcyBv
dmVycmlkZSBmb3IgaU9TIHRvIGFsd2F5cworICAgICAgICByZXR1cm4gZmFsc2UgLSB0aGUgaU9T
IHRoZW1lIGNvZGUgZG9lcyBub3Qgc3VwcG9ydCBwYWludGluZyBmb2N1cyByaW5ncy4gQnkgcmV0
dXJuaW5nIGZhbHNlIHdlCisgICAgICAgIHdpbGwgdXNlIHRoZSBwbGF0Zm9ybS1pbmRlcGVuZGVu
dCwgbm9uLXRoZW1lIGNvZGUgcGF0aCB0byBkcmF3IGZvY3VzIHJpbmdzLgorCiAyMDE5LTAxLTE4
ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgRm9sbG93LXVw
OiBTd2l0Y2ggcmVtYWluaW5nIFVJS2l0IHNvZnQtbGlua2luZyBpbiBXZWJDb3JlLCBXZWJLaXRM
ZWdhY3kgb3ZlciB0byBVSUtpdFNvZnRMaW5rLntjcHAsaH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4
IGQ0NWQ4YmEwNThkMjk2ZjQzMWZmYzg1OTg3MGU2MTlmZWIyMWNmOTIuLjJkODU4NGJmMGFhMzNj
ODI4YzU1NWJiOThlNzc1N2UzNTM0YWIxZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDE5LTAxLTE4ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKwor
ICAgICAgICBDU1MgYXV0byBmb2N1cy1yaW5nIG91dGxpbmVzIGRvbid0IHJlbmRlciBvbiBpT1MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzU4Mwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjUwODY5Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBT
aW1vbiBGcmFzZXIuCisKKyAgICAgICAgRm9yd2FyZCBkZWNsYXJlIHNvbWUgSVBJLgorCisgICAg
ICAgICogcGFsL3NwaS9pb3MvVUlLaXRTUEkuaDoKKwogMjAxOS0wMS0xOCAgRGF2aWQgS2lsemVy
ICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFN3aXRjaCByZW1haW5pbmcgVUlLaXQg
c29mdC1saW5raW5nIGluIFdlYkNvcmUsIFdlYktpdExlZ2FjeSBvdmVyIHRvIFVJS2l0U29mdExp
bmsue2NwcCxofQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL1VJ
S2l0U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvVUlLaXRTUEkuaAppbmRl
eCA3ZjMxNjVhNzc4OTYyZGUzMDVmOGI4MDYyNWJhZTNiNTJiODZiNThjLi5lMWQ0NmFjOTU1MzUy
YTQwMzc3ODRjYzEyYzg3MWU2MWEwNzM3Y2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9pb3MvVUlLaXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9pb3MvVUlLaXRTUEkuaApAQCAtMTQyLDYgKzE0MiwxMiBAQCBOU19BU1NVTUVfTk9OTlVMTF9F
TkQKIEBlbmQKICNlbmRpZgogCisjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKwor
I2lmIEVOQUJMRShGVUxMX0tFWUJPQVJEX0FDQ0VTUykKK0BpbnRlcmZhY2UgVUlDb2xvciAoSVBJ
KQorKyAoVUlDb2xvciAqKWtleWJvYXJkRm9jdXNJbmRpY2F0b3JDb2xvcjsKK0BlbmQKICNlbmRp
ZgogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
CmluZGV4IGYwOGIzYzg3MjE0M2Q1NTEwNWU0ZGZhNDI2ZDRjYzYwODcxMDEyZWQuLjI3ZDkzYTQw
MDVmYjliMjFhMzc0NTQ1ZDRiZjE4N2E1ZjQ0Yzc1Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4
dApAQCAtMzg5LDYgKzM4OSw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZW1wb3JhcnlP
cGVuR0xTZXR0aW5nLmNwcAogCiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZUNH
LmNwcAogCitwbGF0Zm9ybS9pb3MvQ29sb3JJT1MubW0KIHBsYXRmb3JtL2lvcy9DdXJzb3JJT1Mu
Y3BwCiBwbGF0Zm9ybS9pb3MvRGV2aWNlLmNwcAogcGxhdGZvcm0vaW9zL0RldmljZU1vdGlvbkNs
aWVudElPUy5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGRmYzJkYjRhZmY5MGU5ODI3MWY3MzY3NTUxMzdkNGY1NTBiYWRlZjMu
LmRmYWVjNWM4NzVhOTg5NTI5MWM3M2Q4ZmMzMzMwMTllMjBlYzNlZDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQyMDAsNiAr
NDIwMCw3IEBACiAJCUNFMDhDM0QyMTUyQjU5OUEwMDIxQjhDMiAvKiBBbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRTA4QzNEMDE1MkI1OTlBMDAyMUI4QzIgLyogQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CiAJCUNFMTg2NjQ1MUY3MkU1
QjQwMEEwQ0FCNiAvKiBNYXJrZWRUZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRTE4NjY0MzFGNzJFNUI0MDBBMENBQjYgLyogTWFya2VkVGV4dC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNFMjg0
OTg3MUNBMzYwREYwMEI0QTU3RiAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lEaXJlY3RpdmVOYW1l
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0UyODQ5
ODYxQ0EzNjBERjAwQjRBNTdGIC8qIENvbnRlbnRTZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVz
LmggKi87IH07CisJCUNFNTE2OUU3MjFGMUI4NDcwMEVBNEY3OCAvKiBDb2xvcklPUy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0U1MTY5RTUyMUYxQjg0
NzAwRUE0Rjc4IC8qIENvbG9ySU9TLmggKi87IH07CiAJCUNFNUZBMjU1MjA5RTQ4QzUwMDUxRDcw
MCAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFNUZBMjUzMjA5RTQ4QzUwMDUxRDcwMCAvKiBDb250
ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlDRTZEQURGQTFDNTkxRTZBMDAzRjZBODggLyogQ29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRTZEQURGODFDNTkxRTZBMDAzRjZBODggLyogQ29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0U3OTlGOTgxQzZBNDZCQzAwOTdCNTE4IC8qIENvbnRl
bnRTZWN1cml0eVBvbGljeVNvdXJjZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENFNzk5Rjk2MUM2QTQ2QkMwMDk3QjUxOCAvKiBDb250ZW50U2Vj
dXJpdHlQb2xpY3lTb3VyY2VMaXN0LmggKi87IH07CkBAIC0xMzgzNCw2ICsxMzgzNSw4IEBACiAJ
CUNFMTg2NjQzMUY3MkU1QjQwMEEwQ0FCNiAvKiBNYXJrZWRUZXh0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1hcmtlZFRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0UyODQ5ODYxQ0Ez
NjBERjAwQjRBNTdGIC8qIENvbnRlbnRTZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENvbnRlbnRTZWN1cml0eVBvbGljeURpcmVj
dGl2ZU5hbWVzLmg7IHBhdGggPSBjc3AvQ29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFt
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0UyODQ5ODgxQ0EzNjE0NjAwQjRB
NTdGIC8qIENvbnRlbnRTZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENvbnRlbnRTZWN1cml0eVBvbGljeURpcmVjdGl2
ZU5hbWVzLmNwcDsgcGF0aCA9IGNzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lEaXJlY3RpdmVOYW1l
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNFNTE2OUU1MjFGMUI4NDcwMEVB
NEY3OCAvKiBDb2xvcklPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xvcklPUy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDRTUxNjlFNjIxRjFCODQ3MDBFQTRGNzggLyogQ29sb3JJT1Mu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb2xvcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0U1Q0IxQjMxNEVEQUI2RjAwQkIyNzk1IC8qIEV2ZW50U2VuZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50U2VuZGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNFNUZBMjUzMjA5RTQ4QzUwMDUxRDcwMCAvKiBDb250ZW50U2Vj
dXJpdHlQb2xpY3lDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ29udGVudFNlY3VyaXR5UG9saWN5
Q2xpZW50Lmg7IHBhdGggPSBjc3AvQ29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFNjhDOEZGMjE5MjRFRTUwMDEyMzBCMyAvKiBQbGF0
Zm9ybUtleWJvYXJkRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyMjY1LDYgKzIyMjY4
LDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUExNDgzMjhCMTg3RjUwNjgwMERBNjNBNiAvKiB3
YWsgKi8sCiAJCQkJRjQ4MjIzMTIxRTM4NkUyNDAwNjZGQzc5IC8qIEFic3RyYWN0UGFzdGVib2Fy
ZC5oICovLAorCQkJCUNFNTE2OUU1MjFGMUI4NDcwMEVBNEY3OCAvKiBDb2xvcklPUy5oICovLAor
CQkJCUNFNTE2OUU2MjFGMUI4NDcwMEVBNEY3OCAvKiBDb2xvcklPUy5tbSAqLywKIAkJCQkyNjU1
NDE0QjE0ODlBQTJCMDAwREZDNUQgLyogQ3Vyc29ySU9TLmNwcCAqLywKIAkJCQlBMUVENzc4QTFC
RTMyOTNGMDBEQzE3OTEgLyogRGV2aWNlLmNwcCAqLywKIAkJCQlBMUVENzc4QjFCRTMyOTQwMDBE
QzE3OTEgLyogRGV2aWNlLmggKi8sCkBAIC0yODUzOSw2ICsyODU0NCw3IEBACiAJCQkJRjQ4RDJB
QTUyMTU5NzQwRDAwQzY3NTJCIC8qIENvbG9yQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTMx
MDNCN0RGMURCMDE1NjcwMDhCQjg5MCAvKiBDb2xvckhhc2guaCBpbiBIZWFkZXJzICovLAogCQkJ
CUY1NUIzREI0MTI1MUYxMkQwMDNFRjI2OSAvKiBDb2xvcklucHV0VHlwZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQ0U1MTY5RTcyMUYxQjg0NzAwRUE0Rjc4IC8qIENvbG9ySU9TLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFREUzQTUwMDBDN0E0MzA2MDA5NTZBMzcgLyogQ29sb3JNYWMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzODJERjU4MTBBOEQ1QzkwMDkyNTY1MiAvKiBDb2xvclNwYWNlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQ0RENDU0RTEyMzZDOTVDMDA5QTc5ODUgLyogQ29sdW1uSW5mby5o
IGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IDFjMzY2ZDUxY2JkNzRkMGJjZWRlYzU3OTBkZjJlZDcx
YWFjYzdhOTYuLjgxNmNhZWE3YjFiMDA3ZmIwMzI5NmQzY2VjYjVkNzY4ODhkZTlkZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5o
CkBAIC00NDYsNyArNDQ2LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBkcmF3Rm9jdXNSaW5nKGNv
bnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiwgZmxvYXQgd2lkdGgsIGZsb2F0IG9mZnNldCwgY29uc3Qg
Q29sb3ImKTsKICAgICB2b2lkIGRyYXdGb2N1c1JpbmcoY29uc3QgUGF0aCYsIGZsb2F0IHdpZHRo
LCBmbG9hdCBvZmZzZXQsIGNvbnN0IENvbG9yJik7Ci0jaWYgUExBVEZPUk0oTUFDKQorCisgICAg
Ly8gRklYTUU6IFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIHNob3VsZCBvbmx5IGJlIGNvbXBpbGVk
IGZvciBNYWMuIFNlZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
MzU5MT4uCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBkcmF3Rm9jdXNSaW5nKGNvbnN0
IFBhdGgmLCBkb3VibGUgdGltZU9mZnNldCwgYm9vbCYgbmVlZHNSZWRyYXcsIGNvbnN0IENvbG9y
Jik7CiAgICAgdm9pZCBkcmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiwgZG91
YmxlIHRpbWVPZmZzZXQsIGJvb2wmIG5lZWRzUmVkcmF3LCBjb25zdCBDb2xvciYpOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFw
aGljc0NvbnRleHRDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0dyYXBoaWNzQ29udGV4dENvY29hLm1tCmluZGV4IDA2OGFlZmEwYWI1YWQ5ODMwMWEwYzFl
YzRjZDE0YjEzNTcxZTE3OWUuLjcwMmQ2YzUzYTRhOGIzODJkZTUzMDdiZTQwN2Q2OGZhNTdiYmU4
NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dy
YXBoaWNzQ29udGV4dENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dENvY29hLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTksMTIgKzU5LDI2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIC8vIE5TQ29sb3IsIE5TQmV6aWVyUGF0aCwgYW5kIE5TR3JhcGhp
Y3NDb250ZXh0IGNhbGxzIGRvIG5vdCByYWlzZSBleGNlcHRpb25zCiAvLyBzbyB3ZSBkb24ndCBi
bG9jayBleGNlcHRpb25zLgogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIEVOQUJMRShGVUxMX0tF
WUJPQVJEX0FDQ0VTUykKIAogc3RhdGljIGJvb2wgZHJhd0ZvY3VzUmluZ0F0VGltZShDR0NvbnRl
eHRSZWYgY29udGV4dCwgTlNUaW1lSW50ZXJ2YWwgdGltZU9mZnNldCwgY29uc3QgQ29sb3ImIGNv
bG9yKQogeworI2lmIFVTRShBUFBLSVQpCiAgICAgQ0dGb2N1c1JpbmdTdHlsZSBmb2N1c1JpbmdT
dHlsZTsKICAgICBCT09MIG5lZWRzUmVwYWludCA9IE5TSW5pdGlhbGl6ZUNHRm9jdXNSaW5nU3R5
bGVGb3JUaW1lKE5TRm9jdXNSaW5nT25seSwgJmZvY3VzUmluZ1N0eWxlLCB0aW1lT2Zmc2V0KTsK
KyNlbHNlCisgICAgQk9PTCBuZWVkc1JlcGFpbnQgPSBOTzsKKyAgICBVTlVTRURfUEFSQU0odGlt
ZU9mZnNldCk7CisKKyAgICBDR0ZvY3VzUmluZ1N0eWxlIGZvY3VzUmluZ1N0eWxlOworICAgIGZv
Y3VzUmluZ1N0eWxlLnZlcnNpb24gPSAwOworICAgIGZvY3VzUmluZ1N0eWxlLnRpbnQgPSBrQ0dG
b2N1c1JpbmdUaW50Qmx1ZTsKKyAgICBmb2N1c1JpbmdTdHlsZS5vcmRlcmluZyA9IGtDR0ZvY3Vz
UmluZ09yZGVyaW5nTm9uZTsKKyAgICBmb2N1c1JpbmdTdHlsZS5hbHBoYSA9IGtDR0ZvY3VzUmlu
Z0FscGhhRGVmYXVsdDsKKyAgICBmb2N1c1JpbmdTdHlsZS5yYWRpdXMgPSBrQ0dGb2N1c1JpbmdS
YWRpdXNEZWZhdWx0OworICAgIGZvY3VzUmluZ1N0eWxlLnRocmVzaG9sZCA9IGtDR0ZvY3VzUmlu
Z1RocmVzaG9sZERlZmF1bHQ7CisgICAgZm9jdXNSaW5nU3R5bGUuYm91bmRzID0gQ0dSZWN0WmVy
bzsKKyNlbmRpZgogCiAgICAgLy8gV2Ugd2FudCB0byByZXNwZWN0IHRoZSBDR0NvbnRleHQgY2xp
cHBpbmcgYW5kIGFsc28gbm90IG92ZXJwYWludCBhbnkKICAgICAvLyBleGlzdGluZyBmb2N1cyBy
aW5nLiBUaGUgd2F5IHRvIGRvIHRoaXMgaXMgc2V0IGFjY3VtdWxhdGUgdG8KQEAgLTEwMSwxMSAr
MTE1LDExIEBAIHN0YXRpYyBib29sIGRyYXdGb2N1c1JpbmdUb0NvbnRleHRBdFRpbWUoQ0dDb250
ZXh0UmVmIGNvbnRleHQsIENHUGF0aFJlZiBmb2N1c1JpCiAgICAgcmV0dXJuIGRyYXdGb2N1c1Jp
bmdBdFRpbWUoY29udGV4dCwgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjptYXgoKSwgY29s
b3IpOwogfQogCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKQorI2VuZGlmIC8vIEVOQUJMRShGVUxM
X0tFWUJPQVJEX0FDQ0VTUykKIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1Jpbmco
Y29uc3QgUGF0aCYgcGF0aCwgZmxvYXQgd2lkdGgsIGZsb2F0IG9mZnNldCwgY29uc3QgQ29sb3Im
IGNvbG9yKQogewotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBFTkFCTEUoRlVMTF9LRVlCT0FSRF9B
Q0NFU1MpCiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSB8fCBwYXRoLmlzTnVsbCgpKQogICAg
ICAgICByZXR1cm47CiAKQEAgLTEyMyw3ICsxMzcsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd0ZvY3VzUmluZyhjb25zdCBQYXRoJiBwYXRoLCBmbG9hdCB3aWR0aCwgZmxvYXQgb2Zmc2V0
LAogI2VuZGlmCiB9CiAKLSNpZiBQTEFURk9STShNQUMpCisvLyBGSVhNRTogVGhlIGZvbGxvd2lu
ZyBmdW5jdGlvbnMgc2hvdWxkIG9ubHkgYmUgY29tcGlsZWQgZm9yIE1hYy4gU2VlIDxodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNTkxPi4KKyNpZiBFTkFCTEUoRlVM
TF9LRVlCT0FSRF9BQ0NFU1MpCisKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5n
KGNvbnN0IFBhdGgmIHBhdGgsIGRvdWJsZSB0aW1lT2Zmc2V0LCBib29sJiBuZWVkc1JlZHJhdywg
Y29uc3QgQ29sb3ImIGNvbG9yKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkgfHwgcGF0
aC5pc051bGwoKSkKQEAgLTE0OSwxMSArMTY1LDEyIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpk
cmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiByZWN0cywgZG91YmxlIHRpbWVP
CiAKICAgICBuZWVkc1JlZHJhdyA9IGRyYXdGb2N1c1JpbmdUb0NvbnRleHRBdFRpbWUocGxhdGZv
cm1Db250ZXh0KCksIGZvY3VzUmluZ1BhdGguZ2V0KCksIHRpbWVPZmZzZXQsIGNvbG9yKTsKIH0K
KwogI2VuZGlmCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNvbnN0IFZl
Y3RvcjxGbG9hdFJlY3Q+JiByZWN0cywgZmxvYXQgd2lkdGgsIGZsb2F0IG9mZnNldCwgY29uc3Qg
Q29sb3ImIGNvbG9yKQogewotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBFTkFCTEUoRlVMTF9LRVlC
T0FSRF9BQ0NFU1MpCiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJu
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ29sb3JJT1MuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9Db2xvcklPUy5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmMDc3
ODUzOGNiMDEwYTE0MDc5ODY0YWY4OWE1YzI4MmE4YThiYzgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ29sb3JJT1MuaApAQCAtMCwwICsxLDQwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDb2xvci5oIgorCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKworT0JKQ19DTEFTUyBVSUNvbG9yOworCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK0NvbG9yIGNvbG9yRnJvbVVJQ29sb3IoVUlDb2xvciAqKTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9Db2xvcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9Db2xvcklP
Uy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yZjg5YTQ2NjM4YWViZTg3Yzc0MGU2Y2NlMzM4OWVkYTEzYTdjMTI4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0NvbG9ySU9T
Lm1tCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNp
bXBvcnQgIkNvbG9ySU9TLmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW1wb3J0
IDxVSUtpdC9VSUtpdC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0NvbG9yIGNvbG9yRnJv
bVVJQ29sb3IoVUlDb2xvciAqY29sb3IpCit7CisgICAgLy8gRklYTUU6IE1ha2UgdGhpcyB3b3Jr
IGZvciBhIFVJQ29sb3IgdGhhdCB3YXMgY3JlYXRlZCBmcm9tIGEgcGF0dGVybiBvciBhIERpc3Bh
eVAzIGNvbG9yLgorICAgIENHRmxvYXQgcmVkQ29tcG9uZW50OworICAgIENHRmxvYXQgZ3JlZW5D
b21wb25lbnQ7CisgICAgQ0dGbG9hdCBibHVlQ29tcG9uZW50OworICAgIENHRmxvYXQgYWxwaGE7
CisKKyAgICBbY29sb3IgZ2V0UmVkOiZyZWRDb21wb25lbnQgZ3JlZW46JmdyZWVuQ29tcG9uZW50
IGJsdWU6JmJsdWVDb21wb25lbnQgYWxwaGE6JmFscGhhXTsKKworICAgIHN0YXRpYyBjb25zdCBk
b3VibGUgc2NhbGVGYWN0b3IgPSBuZXh0YWZ0ZXIoMjU2LjAsIDAuMCk7CisgICAgcmV0dXJuIG1h
a2VSR0JBKHNjYWxlRmFjdG9yICogcmVkQ29tcG9uZW50LCBzY2FsZUZhY3RvciAqIGdyZWVuQ29t
cG9uZW50LCBzY2FsZUZhY3RvciAqIGJsdWVDb21wb25lbnQsIHNjYWxlRmFjdG9yICogYWxwaGEp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmluZGV4IDM5NTQ0NTI1ODZiNTRlZTkyZThjNTMw
NDIxOTAyYTk3NGM5NGExNWQuLjE1YzlhMzUyODdiM2Y5ZDMwNmI2N2VmNWFlZDBhNzIwMzVmNWU5
MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTE4
MTksNyArMTgxOSw4IEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6cGFpbnRGb2N1c1JpbmcoUGFpbnRJ
bmZvJiBwYWludEluZm8sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsCiAgICAgICAgIHJlY3QuaW5m
bGF0ZShvdXRsaW5lT2Zmc2V0KTsKICAgICAgICAgcGl4ZWxTbmFwcGVkRm9jdXNSaW5nUmVjdHMu
YXBwZW5kKHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMocmVjdCwgZGV2aWNlU2NhbGVGYWN0b3IpKTsK
ICAgICB9Ci0jaWYgUExBVEZPUk0oTUFDKQorICAgIC8vIEZJWE1FOiBUaGUgZm9sbG93aW5nIGNv
ZGUgc2hvdWxkIG9ubHkgYmUgY29tcGlsZWQgZm9yIE1hYy4gU2VlIDxodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNTkxPi4KKyNpZiBQTEFURk9STShDT0NPQSkKICAg
ICBib29sIG5lZWRzUmVwYWludDsKICAgICBpZiAoc3R5bGUuaGFzQm9yZGVyUmFkaXVzKCkpIHsK
ICAgICAgICAgUGF0aCBwYXRoID0gUGF0aFV0aWxpdGllczo6cGF0aFdpdGhTaHJpbmtXcmFwcGVk
UmVjdHNGb3JPdXRsaW5lKHBpeGVsU25hcHBlZEZvY3VzUmluZ1JlY3RzLCBzdHlsZS5ib3JkZXIo
KSwgb3V0bGluZU9mZnNldCwgc3R5bGUuZGlyZWN0aW9uKCksIHN0eWxlLndyaXRpbmdNb2RlKCks
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAppbmRleCA3NjQ0MWVhZDE4
ZDQ4NmVmNTU4MTljZDE2YzYxZDE4YTk1NmZhNTQxLi4xODNhOTM0MTk0OGNiMmRmMDZjOGQzYmJi
YjM0NjI1NTc1NGZiMTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5j
cHAKQEAgLTU1MCwxMCArNTUwLDcgQEAgdm9pZCBSZW5kZXJJbWFnZTo6cGFpbnQoUGFpbnRJbmZv
JiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKICAgICAKIHZvaWQg
UmVuZGVySW1hZ2U6OnBhaW50QXJlYUVsZW1lbnRGb2N1c1JpbmcoUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKIHsKLSNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQotICAgIFVOVVNFRF9QQVJBTShwYWludEluZm8pOwotICAgIFVOVVNFRF9QQVJBTShw
YWludE9mZnNldCk7Ci0jZWxzZQorI2lmIEVOQUJMRShGVUxMX0tFWUJPQVJEX0FDQ0VTUykKICAg
ICBpZiAoZG9jdW1lbnQoKS5wcmludGluZygpIHx8ICFmcmFtZSgpLnNlbGVjdGlvbigpLmlzRm9j
dXNlZEFuZEFjdGl2ZSgpKQogICAgICAgICByZXR1cm47CiAgICAgCkBAIC01OTcsOCArNTk0LDEx
IEBAIHZvaWQgUmVuZGVySW1hZ2U6OnBhaW50QXJlYUVsZW1lbnRGb2N1c1JpbmcoUGFpbnRJbmZv
JiBwYWludEluZm8sIGNvbnN0IExheW91dFBvCiAgICAgICAgIHBhZ2UoKS5mb2N1c0NvbnRyb2xs
ZXIoKS5zZXRGb2N1c2VkRWxlbWVudE5lZWRzUmVwYWludCgpOwogI2Vsc2UKICAgICBwYWludElu
Zm8uY29udGV4dCgpLmRyYXdGb2N1c1JpbmcocGF0aCwgb3V0bGluZVdpZHRoLCBhcmVhRWxlbWVu
dFN0eWxlLT5vdXRsaW5lT2Zmc2V0KCksIGFyZWFFbGVtZW50U3R5bGUtPnZpc2l0ZWREZXBlbmRl
bnRDb2xvcldpdGhDb2xvckZpbHRlcihDU1NQcm9wZXJ0eU91dGxpbmVDb2xvcikpOwotI2VuZGlm
Ci0jZW5kaWYKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShwYWludEluZm8pOworICAgIFVOVVNFRF9QQVJBTShwYWludE9mZnNldCk7CisjZW5kaWYgLy8g
RU5BQkxFKEZVTExfS0VZQk9BUkRfQUNDRVNTKQogfQogCiB2b2lkIFJlbmRlckltYWdlOjphcmVh
RWxlbWVudEZvY3VzQ2hhbmdlZChIVE1MQXJlYUVsZW1lbnQqIGVsZW1lbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCmluZGV4IGE1YTMwYWMyYTk0MWJiMmMzNThm
NDRhN2E2ZmY3YzZiZjVmMjAwNDguLjM5MzQ2YzE0NWQ4OWMyNzlkMGFkMjUxMmRiNTBjZmU4ZDUy
ZTUxNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlP
Uy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCkBAIC0x
MDksOCArMTA5LDExIEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGFkanVzdFNlYXJjaEZpZWxkU3R5
bGUoU3R5bGVSZXNvbHZlciYsIFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCopIGNvbnN0IG92
ZXJyaWRlOwogICAgIGJvb2wgcGFpbnRTZWFyY2hGaWVsZERlY29yYXRpb25zKGNvbnN0IFJlbmRl
ck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKIAor
ICAgIGJvb2wgc3VwcG9ydHNGb2N1c1JpbmcoY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCBmaW5h
bDsKKwogICAgIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgQ29sb3Ig
cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVD
b2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOworICAgIENvbG9yIHBsYXRmb3JtRm9jdXNS
aW5nQ29sb3IoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBmaW5hbDsKIAog
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgQ29sb3IgcGxhdGZvcm1UYXBIaWdobGlnaHRD
b2xvcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDB4NEQxQTFBMUE7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQppbmRleCA2MDk0OTkxNmIzODgxYzRjODg1
MmE4MzcxMjc1MmMyNDI2ZmQ0M2U0Li43YzZjNzdlMDkwNWJlMThjNDMyNjcwMTQyMmJiMzE5ODcw
M2VkMDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJ
T1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCkBA
IC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2ltcG9ydCAi
Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oIgogI2ltcG9ydCAiQ1NTVmFsdWVLZXl3b3Jkcy5o
IgorI2ltcG9ydCAiQ29sb3JJT1MuaCIKICNpbXBvcnQgIkRhdGVDb21wb25lbnRzLmgiCiAjaW1w
b3J0ICJEb2N1bWVudC5oIgogI2ltcG9ydCAiRmlsZS5oIgpAQCAtMTEyMiwxMSArMTEyMywyMSBA
QCBDb2xvciBSZW5kZXJUaGVtZUlPUzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDbwogICAgIHJldHVybiBDb2xvcjo6dHJhbnNwYXJlbnQ7
CiB9CiAKK0NvbG9yIFJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKE9wdGlv
blNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QKK3sKKyAgICByZXR1cm4gY29sb3JGcm9t
VUlDb2xvcihbZ2V0VUlDb2xvckNsYXNzKCkga2V5Ym9hcmRGb2N1c0luZGljYXRvckNvbG9yXSk7
Cit9CisKIGJvb2wgUmVuZGVyVGhlbWVJT1M6OnNob3VsZEhhdmVTcGluQnV0dG9uKGNvbnN0IEhU
TUxJbnB1dEVsZW1lbnQmKSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBS
ZW5kZXJUaGVtZUlPUzo6c3VwcG9ydHNGb2N1c1JpbmcoY29uc3QgUmVuZGVyU3R5bGUmKSBjb25z
dAoreworICAgIHJldHVybiBmYWxzZTsKK30KKwogRm9udENhc2NhZGVEZXNjcmlwdGlvbiYgUmVu
ZGVyVGhlbWVJT1M6OmNhY2hlZFN5c3RlbUZvbnREZXNjcmlwdGlvbihDU1NWYWx1ZUlEIHZhbHVl
SUQpIGNvbnN0CiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZvbnRDYXNjYWRlRGVzY3Jp
cHRpb24+IHN5c3RlbUZvbnQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>