<?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>211213</bug_id>
          
          <creation_ts>2020-04-29 17:54:36 -0700</creation_ts>
          <short_desc>Ensure Intl classes don&apos;t have naming conflicts with unified builds</short_desc>
          <delta_ts>2020-05-10 16:22:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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="Ross Kirsling">ross.kirsling</reporter>
          <assigned_to name="Ross Kirsling">ross.kirsling</assigned_to>
          <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1647226</commentid>
    <comment_count>0</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-29 17:54:36 -0700</bug_when>
    <thetext>Ensure Intl classes don&apos;t have naming conflicts with unified builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647232</commentid>
    <comment_count>1</comment_count>
      <attachid>398012</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-29 18:07:24 -0700</bug_when>
    <thetext>Created attachment 398012
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647249</commentid>
    <comment_count>2</comment_count>
      <attachid>398012</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-29 19:19:32 -0700</bug_when>
    <thetext>Comment on attachment 398012
Patch

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

r=me

&gt; Source/JavaScriptCore/runtime/IntlCollator.h:60
&gt; +    static Vector&lt;String&gt; sortLocaleData(const String&amp;, size_t);
&gt; +    static Vector&lt;String&gt; searchLocaleData(const String&amp;, size_t);
&gt; +

Let&apos;s put it behind private: if possible.

&gt; Source/JavaScriptCore/runtime/IntlDateTimeFormat.h:57
&gt; +    static Vector&lt;String&gt; localeData(const String&amp;, size_t);

Ditto.

&gt; Source/JavaScriptCore/runtime/IntlNumberFormat.h:58
&gt; +    static Vector&lt;String&gt; localeData(const String&amp;, size_t);

Ditto.

&gt; Source/JavaScriptCore/runtime/IntlPluralRules.h:56
&gt; +    static Vector&lt;String&gt; localeData(const String&amp;, size_t);

Ditto.

&gt; Source/JavaScriptCore/runtime/IntlRelativeTimeFormat.h:55
&gt; +    static Vector&lt;String&gt; localeData(const String&amp;, size_t);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647250</commentid>
    <comment_count>3</comment_count>
      <attachid>398021</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-29 19:35:23 -0700</bug_when>
    <thetext>Created attachment 398021
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647260</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-29 20:00:40 -0700</bug_when>
    <thetext>Committed r260931: &lt;https://trac.webkit.org/changeset/260931&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 398021.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647261</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-29 20:01:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/62630024&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651137</commentid>
    <comment_count>6</comment_count>
      <attachid>398021</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-10 16:22:43 -0700</bug_when>
    <thetext>Comment on attachment 398021
Patch for landing

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

&gt; Source/JavaScriptCore/runtime/IntlCollator.h:71
&gt; +    static Vector&lt;String&gt; sortLocaleData(const String&amp;, size_t);
&gt; +    static Vector&lt;String&gt; searchLocaleData(const String&amp;, size_t);

Avoiding name conflict is a good thing. Adding more in headers is not such a good thing. I guess I’m OK with this, but generally would be nice to have the headers be as small as possible and not have implementation details that they don’t need to.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398012</attachid>
            <date>2020-04-29 18:07:24 -0700</date>
            <delta_ts>2020-04-29 19:35:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211213-20200429180723.patch</filename>
            <type>text/plain</type>
            <size>21770</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
ZTg1Yjk2NTI1ZmVmZTk1NTdkYjU2Y2VhZjExMDNiOGVmODczYTIyLi4zNjVmMDY4MmZlMTJiY2M0
YjM3MWZmNWExMGFiZTliYWE2ZmJhNjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMC0wNC0yOSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgRW5zdXJlIEludGwgY2xhc3NlcyBkb24ndCBoYXZlIG5hbWluZyBj
b25mbGljdHMgd2l0aCB1bmlmaWVkIGJ1aWxkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMjEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRWFjaCBJbnRsIGNsYXNzIHVzdWFsbHkgaGFzIGFuIGFycmF5
IG5hbWVkIHJlbGV2YW50RXh0ZW5zaW9uc0tleXMgYW5kIGEgZnVuY3Rpb24gbmFtZWQgbG9jYWxl
RGF0YS4KKyAgICAgICAgVGhpcyBjYW4gcmVzdWx0IGluIHJlZGVmaW5pdGlvbiBlcnJvcnMgd2hl
biB1bmlmaWVkIGJ1aWxkcyBwdXQgdHdvIG9mIHRoZW0gaW50byB0aGUgc2FtZSB0cmFuc2xhdGlv
biB1bml0LiAKKyAgICAgICAgU29tZSBhcmUgYWxyZWFkeSBndWFyZGluZyBhZ2FpbnN0IHRoaXMg
d2l0aCBhbiBpbnRlcm5hbCBuYW1lc3BhY2Ugd2hpbGUgb3RoZXJzIGFyZSBub3QuCisKKyAgICAg
ICAgQXMgYSB1bmlmb3JtIGFwcHJvYWNoLCB0aGlzIHBhdGNoIG1ha2VzIGVhY2ggbG9jYWxlRGF0
YSBmdW5jdGlvbiBhIHN0YXRpYyBtZXRob2QgYW5kCisgICAgICAgIHB1dHMgZWFjaCByZWxldmFu
dEV4dGVuc2lvbnNLZXlzIGFycmF5IChhcyB3ZWxsIGFzIGFueSBjb25zdGFudHMgZm9yIGl0cyBp
bmRpY2VzKSBpbnRvIGFuIGludGVybmFsIG5hbWVzcGFjZS4KKworICAgICAgICBGdXJ0aGVybW9y
ZSwgc2luY2UgdGhyZWUgZGlmZmVyZW50IGNsYXNzZXMgYXJlIGRlZmluaW5nIGFuIGlkZW50aWNh
bCBVRmllbGRQb3NpdGlvbkl0ZXJhdG9yRGVsZXRlciwKKyAgICAgICAgdGhpcyBwYXRjaCBjb25z
b2xpZGF0ZXMgdGhlbSBpbnRvIG9uZSBkZWZpbml0aW9uIGluIEludGxPYmplY3QuCisKKyAgICAg
ICAgKiBydW50aW1lL0ludGxDb2xsYXRvci5jcHA6CisgICAgICAgIChKU0M6OkludGxDb2xsYXRv
cjo6c29ydExvY2FsZURhdGEpOiBSZW5hbWVkIGZyb20gSlNDOjpzb3J0TG9jYWxlRGF0YS4KKyAg
ICAgICAgKEpTQzo6SW50bENvbGxhdG9yOjpzZWFyY2hMb2NhbGVEYXRhKTogUmVuYW1lZCBmcm9t
IEpTQzo6c2VhcmNoTG9jYWxlRGF0YS4KKyAgICAgICAgKEpTQzo6SW50bENvbGxhdG9yOjppbml0
aWFsaXplQ29sbGF0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvSW50bENvbGxhdG9yLmg6CisgICAg
ICAgICogcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwOgorICAgICAgICAoSlNDOjpJbnRs
RGF0ZVRpbWVGb3JtYXQ6OmxvY2FsZURhdGEpOiBSZW5hbWVkIGZyb20gSlNDOjpJbnRsRFRGSW50
ZXJuYWw6OmxvY2FsZURhdGEuCisgICAgICAgIChKU0M6OnRvRGF0ZVRpbWVPcHRpb25zQW55RGF0
ZSk6IFJlbmFtZWQgZnJvbSBKU0M6OkludGxEVEZJbnRlcm5hbDo6dG9EYXRlVGltZU9wdGlvbnNB
bnlEYXRlLgorICAgICAgICAoSlNDOjpJbnRsRGF0ZVRpbWVGb3JtYXQ6OmluaXRpYWxpemVEYXRl
VGltZUZvcm1hdCk6CisgICAgICAgIChKU0M6OlVGaWVsZFBvc2l0aW9uSXRlcmF0b3JEZWxldGVy
OjpvcGVyYXRvcigpIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0ludGxEYXRl
VGltZUZvcm1hdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSW50bE51bWJlckZvcm1hdC5jcHA6Cisg
ICAgICAgIChKU0M6OkludGxOdW1iZXJGb3JtYXQ6OmxvY2FsZURhdGEpOiBSZW5hbWVkIGZyb20g
SlNDOjpJbnRsTkZJbnRlcm5hbDo6bG9jYWxlRGF0YS4KKyAgICAgICAgKEpTQzo6SW50bE51bWJl
ckZvcm1hdDo6aW5pdGlhbGl6ZU51bWJlckZvcm1hdCk6CisgICAgICAgIChKU0M6OlVGaWVsZFBv
c2l0aW9uSXRlcmF0b3JEZWxldGVyOjpvcGVyYXRvcigpIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBydW50aW1lL0ludGxOdW1iZXJGb3JtYXQuaDoKKyAgICAgICAgKiBydW50aW1lL0ludGxP
YmplY3QuY3BwOgorICAgICAgICAoSlNDOjpVRmllbGRQb3NpdGlvbkl0ZXJhdG9yRGVsZXRlcjo6
b3BlcmF0b3IoKSBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIHJ1bnRpbWUvSW50bE9iamVjdC5o
OgorICAgICAgICAqIHJ1bnRpbWUvSW50bFBsdXJhbFJ1bGVzLmNwcDoKKyAgICAgICAgKEpTQzo6
SW50bFBsdXJhbFJ1bGVzOjpsb2NhbGVEYXRhKTogUmVuYW1lZCBmcm9tIEpTQzo6bG9jYWxlRGF0
YS4KKyAgICAgICAgKiBydW50aW1lL0ludGxQbHVyYWxSdWxlcy5oOgorICAgICAgICAqIHJ1bnRp
bWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdC5jcHA6CisgICAgICAgIChKU0M6OkludGxSZWxhdGl2
ZVRpbWVGb3JtYXQ6OmxvY2FsZURhdGEpOiBSZW5hbWVkIGZyb20gSlNDOjpsb2NhbGVEYXRhLgor
ICAgICAgICAoSlNDOjpJbnRsUmVsYXRpdmVUaW1lRm9ybWF0Ojppbml0aWFsaXplUmVsYXRpdmVU
aW1lRm9ybWF0KToKKyAgICAgICAgKEpTQzo6VUZpZWxkUG9zaXRpb25JdGVyYXRvckRlbGV0ZXI6
Om9wZXJhdG9yKCkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSW50bFJlbGF0
aXZlVGltZUZvcm1hdC5oOgorCiAyMDIwLTA0LTI5ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJz
bGluZ0Bzb255LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGZvbGxvdy11cCB0byByMjYwODQ4
LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvci5jcHAKaW5k
ZXggYzE0Y2VjMWY2MjQ1Y2I4NDQyNGJmZGI2M2YxMDFkMTczYzFhNDk4My4uNmQzN2JmMGUzMDYz
OGY0MzFkMzlmNmIxNjg2ZmVhNjI5MWY5ZmM5MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsQ29sbGF0b3IuY3BwCkBAIC00MywxMCArNDMsMTIgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBJbnRsQ29sbGF0b3I6OnNfaW5mbyA9IHsgIk9iamVj
dCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
SW50bENvbGxhdG9yKSB9OwogCi1zdGF0aWMgY29uc3QgY2hhciogY29uc3QgcmVsZXZhbnRDb2xs
YXRvckV4dGVuc2lvbktleXNbM10gPSB7ICJjbyIsICJrbiIsICJrZiIgfTsKLXN0YXRpYyBjb25z
dCBzaXplX3QgaW5kZXhPZkV4dGVuc2lvbktleUNvID0gMDsKLXN0YXRpYyBjb25zdCBzaXplX3Qg
aW5kZXhPZkV4dGVuc2lvbktleUtuID0gMTsKLXN0YXRpYyBjb25zdCBzaXplX3QgaW5kZXhPZkV4
dGVuc2lvbktleUtmID0gMjsKK25hbWVzcGFjZSBJbnRsQ29sbGF0b3JJbnRlcm5hbCB7Citjb25z
dGV4cHIgY29uc3QgY2hhciogY29uc3QgcmVsZXZhbnRFeHRlbnNpb25LZXlzWzNdID0geyAiY28i
LCAia24iLCAia2YiIH07Citjb25zdGV4cHIgc2l6ZV90IGNvbGxhdGlvbkluZGV4ID0gMDsKK2Nv
bnN0ZXhwciBzaXplX3QgbnVtZXJpY0luZGV4ID0gMTsKK2NvbnN0ZXhwciBzaXplX3QgY2FzZUZp
cnN0SW5kZXggPSAyOworfQogCiB2b2lkIEludGxDb2xsYXRvcjo6VUNvbGxhdG9yRGVsZXRlcjo6
b3BlcmF0b3IoKShVQ29sbGF0b3IqIGNvbGxhdG9yKSBjb25zdAogewpAQCAtODcsMTIgKzg5LDEy
IEBAIHZvaWQgSW50bENvbGxhdG9yOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZp
c2l0b3ImIHZpc2l0b3IpCiAgICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9ib3VuZENv
bXBhcmUpOwogfQogCi1zdGF0aWMgVmVjdG9yPFN0cmluZz4gc29ydExvY2FsZURhdGEoY29uc3Qg
U3RyaW5nJiBsb2NhbGUsIHNpemVfdCBrZXlJbmRleCkKK1ZlY3RvcjxTdHJpbmc+IEludGxDb2xs
YXRvcjo6c29ydExvY2FsZURhdGEoY29uc3QgU3RyaW5nJiBsb2NhbGUsIHNpemVfdCBrZXlJbmRl
eCkKIHsKICAgICAvLyA5LjEgSW50ZXJuYWwgc2xvdHMgb2YgU2VydmljZSBDb25zdHJ1Y3RvcnMg
JiAxMC4yLjMgSW50ZXJuYWwgc2xvdHMgKEVDTUEtNDAyIDIuMCkKICAgICBWZWN0b3I8U3RyaW5n
PiBrZXlMb2NhbGVEYXRhOwogICAgIHN3aXRjaCAoa2V5SW5kZXgpIHsKLSAgICBjYXNlIGluZGV4
T2ZFeHRlbnNpb25LZXlDbzogeworICAgIGNhc2UgSW50bENvbGxhdG9ySW50ZXJuYWw6OmNvbGxh
dGlvbkluZGV4OiB7CiAgICAgICAgIC8vIDEwLjIuMyAiVGhlIGZpcnN0IGVsZW1lbnQgb2YgW1tz
b3J0TG9jYWxlRGF0YV1dW2xvY2FsZV0uY28gYW5kIFtbc2VhcmNoTG9jYWxlRGF0YV1dW2xvY2Fs
ZV0uY28gbXVzdCBiZSBudWxsIGZvciBhbGwgbG9jYWxlIHZhbHVlcy4iCiAgICAgICAgIGtleUxv
Y2FsZURhdGEuYXBwZW5kKHsgfSk7CiAKQEAgLTEyMSwxMiArMTIzLDEyIEBAIHN0YXRpYyBWZWN0
b3I8U3RyaW5nPiBzb3J0TG9jYWxlRGF0YShjb25zdCBTdHJpbmcmIGxvY2FsZSwgc2l6ZV90IGtl
eUluZGV4KQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBjYXNlIGluZGV4
T2ZFeHRlbnNpb25LZXlLbjoKKyAgICBjYXNlIEludGxDb2xsYXRvckludGVybmFsOjpudW1lcmlj
SW5kZXg6CiAgICAgICAgIGtleUxvY2FsZURhdGEucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSgyKTsK
ICAgICAgICAga2V5TG9jYWxlRGF0YS51bmNoZWNrZWRBcHBlbmQoImZhbHNlIl9zKTsKICAgICAg
ICAga2V5TG9jYWxlRGF0YS51bmNoZWNrZWRBcHBlbmQoInRydWUiX3MpOwogICAgICAgICBicmVh
azsKLSAgICBjYXNlIGluZGV4T2ZFeHRlbnNpb25LZXlLZjoKKyAgICBjYXNlIEludGxDb2xsYXRv
ckludGVybmFsOjpjYXNlRmlyc3RJbmRleDoKICAgICAgICAga2V5TG9jYWxlRGF0YS5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KDMpOwogICAgICAgICBrZXlMb2NhbGVEYXRhLnVuY2hlY2tlZEFwcGVu
ZCgiZmFsc2UiX3MpOwogICAgICAgICBrZXlMb2NhbGVEYXRhLnVuY2hlY2tlZEFwcGVuZCgibG93
ZXIiX3MpOwpAQCAtMTM4LDIyICsxNDAsMjIgQEAgc3RhdGljIFZlY3RvcjxTdHJpbmc+IHNvcnRM
b2NhbGVEYXRhKGNvbnN0IFN0cmluZyYgbG9jYWxlLCBzaXplX3Qga2V5SW5kZXgpCiAgICAgcmV0
dXJuIGtleUxvY2FsZURhdGE7CiB9CiAKLXN0YXRpYyBWZWN0b3I8U3RyaW5nPiBzZWFyY2hMb2Nh
bGVEYXRhKGNvbnN0IFN0cmluZyYsIHNpemVfdCBrZXlJbmRleCkKK1ZlY3RvcjxTdHJpbmc+IElu
dGxDb2xsYXRvcjo6c2VhcmNoTG9jYWxlRGF0YShjb25zdCBTdHJpbmcmLCBzaXplX3Qga2V5SW5k
ZXgpCiB7CiAgICAgLy8gOS4xIEludGVybmFsIHNsb3RzIG9mIFNlcnZpY2UgQ29uc3RydWN0b3Jz
ICYgMTAuMi4zIEludGVybmFsIHNsb3RzIChFQ01BLTQwMiAyLjApCiAgICAgVmVjdG9yPFN0cmlu
Zz4ga2V5TG9jYWxlRGF0YTsKICAgICBzd2l0Y2ggKGtleUluZGV4KSB7Ci0gICAgY2FzZSBpbmRl
eE9mRXh0ZW5zaW9uS2V5Q286CisgICAgY2FzZSBJbnRsQ29sbGF0b3JJbnRlcm5hbDo6Y29sbGF0
aW9uSW5kZXg6CiAgICAgICAgIC8vIDEwLjIuMyAiVGhlIGZpcnN0IGVsZW1lbnQgb2YgW1tzb3J0
TG9jYWxlRGF0YV1dW2xvY2FsZV0uY28gYW5kIFtbc2VhcmNoTG9jYWxlRGF0YV1dW2xvY2FsZV0u
Y28gbXVzdCBiZSBudWxsIGZvciBhbGwgbG9jYWxlIHZhbHVlcy4iCiAgICAgICAgIGtleUxvY2Fs
ZURhdGEucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSgxKTsKICAgICAgICAga2V5TG9jYWxlRGF0YS5h
cHBlbmQoeyB9KTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBpbmRleE9mRXh0ZW5zaW9uS2V5
S246CisgICAgY2FzZSBJbnRsQ29sbGF0b3JJbnRlcm5hbDo6bnVtZXJpY0luZGV4OgogICAgICAg
ICBrZXlMb2NhbGVEYXRhLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoMik7CiAgICAgICAgIGtleUxv
Y2FsZURhdGEudW5jaGVja2VkQXBwZW5kKCJmYWxzZSJfcyk7CiAgICAgICAgIGtleUxvY2FsZURh
dGEudW5jaGVja2VkQXBwZW5kKCJ0cnVlIl9zKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBp
bmRleE9mRXh0ZW5zaW9uS2V5S2Y6CisgICAgY2FzZSBJbnRsQ29sbGF0b3JJbnRlcm5hbDo6Y2Fz
ZUZpcnN0SW5kZXg6CiAgICAgICAgIGtleUxvY2FsZURhdGEucmVzZXJ2ZUluaXRpYWxDYXBhY2l0
eSgzKTsKICAgICAgICAga2V5TG9jYWxlRGF0YS51bmNoZWNrZWRBcHBlbmQoImZhbHNlIl9zKTsK
ICAgICAgICAga2V5TG9jYWxlRGF0YS51bmNoZWNrZWRBcHBlbmQoImxvd2VyIl9zKTsKQEAgLTIx
NSw3ICsyMTcsNyBAQCB2b2lkIEludGxDb2xsYXRvcjo6aW5pdGlhbGl6ZUNvbGxhdG9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgbG9jYQogICAgIH0KIAogICAgIGF1dG8m
IGF2YWlsYWJsZUxvY2FsZXMgPSBpbnRsQ29sbGF0b3JBdmFpbGFibGVMb2NhbGVzKCk7Ci0gICAg
YXV0byByZXN1bHQgPSByZXNvbHZlTG9jYWxlKGdsb2JhbE9iamVjdCwgYXZhaWxhYmxlTG9jYWxl
cywgcmVxdWVzdGVkTG9jYWxlcywgb3B0LCByZWxldmFudENvbGxhdG9yRXh0ZW5zaW9uS2V5cywg
V1RGX0FSUkFZX0xFTkdUSChyZWxldmFudENvbGxhdG9yRXh0ZW5zaW9uS2V5cyksIGxvY2FsZURh
dGEpOworICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZUxvY2FsZShnbG9iYWxPYmplY3QsIGF2YWls
YWJsZUxvY2FsZXMsIHJlcXVlc3RlZExvY2FsZXMsIG9wdCwgSW50bENvbGxhdG9ySW50ZXJuYWw6
OnJlbGV2YW50RXh0ZW5zaW9uS2V5cywgV1RGX0FSUkFZX0xFTkdUSChJbnRsQ29sbGF0b3JJbnRl
cm5hbDo6cmVsZXZhbnRFeHRlbnNpb25LZXlzKSwgbG9jYWxlRGF0YSk7CiAKICAgICBtX2xvY2Fs
ZSA9IHJlc3VsdC5nZXQoImxvY2FsZSJfcyk7CiAgICAgaWYgKG1fbG9jYWxlLmlzRW1wdHkoKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3IuaAppbmRleCA0
OGE1MzcxNzYwYWRiZTQ3NDgyMzBmZDQ5NTBmY2U1ZGQ2YTJiYmJmLi45ZTgwOTNlYTVlOWY1YTc1
OTZjNzVlMTkxMTBkYTRiZjAzN2QwMTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsQ29sbGF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsQ29sbGF0b3IuaApAQCAtNTUsNiArNTUsOSBAQCBwdWJsaWM6CiAKICAgICBERUNM
QVJFX0lORk87CiAKKyAgICBzdGF0aWMgVmVjdG9yPFN0cmluZz4gc29ydExvY2FsZURhdGEoY29u
c3QgU3RyaW5nJiwgc2l6ZV90KTsKKyAgICBzdGF0aWMgVmVjdG9yPFN0cmluZz4gc2VhcmNoTG9j
YWxlRGF0YShjb25zdCBTdHJpbmcmLCBzaXplX3QpOworCiAgICAgdm9pZCBpbml0aWFsaXplQ29s
bGF0b3IoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIGxvY2FsZXMsIEpTVmFsdWUgb3B0aW9uc1Zh
bHVlKTsKICAgICBKU1ZhbHVlIGNvbXBhcmVTdHJpbmdzKEpTR2xvYmFsT2JqZWN0KiwgU3RyaW5n
VmlldywgU3RyaW5nVmlldyk7CiAgICAgSlNPYmplY3QqIHJlc29sdmVkT3B0aW9ucyhKU0dsb2Jh
bE9iamVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bERhdGVUaW1lRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxE
YXRlVGltZUZvcm1hdC5jcHAKaW5kZXggOGYwYmE4MzE3ZjI2M2U0Y2JiMGUwYmVhN2E5NDNiNDc4
MzQzNDBjMC4uYjM5OTAzZmY3MjMxOGYwZGM2NmI2NGFjYjJhYjc5MGFkMzZlZDMxMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQu
Y3BwCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSA8dW5pY29kZS91Y2FsLmg+CiAjaW5jbHVk
ZSA8dW5pY29kZS91ZGF0cGcuaD4KICNpbmNsdWRlIDx1bmljb2RlL3VlbnVtLmg+Ci0jaW5jbHVk
ZSA8dW5pY29kZS91ZmllbGRwb3NpdGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL2ljdS9JQ1VIZWxwZXJzLmg+CiAKQEAgLTQ3
LDIyICs0NiwxMyBAQCBzdGF0aWMgY29uc3QgZG91YmxlIG1pbkVDTUFTY3JpcHRUaW1lID0gLTgu
NjRFMTU7CiAKIGNvbnN0IENsYXNzSW5mbyBJbnRsRGF0ZVRpbWVGb3JtYXQ6OnNfaW5mbyA9IHsg
Ik9iamVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoSW50bERhdGVUaW1lRm9ybWF0KSB9OwogCi1uYW1lc3BhY2UgSW50bERURkludGVybmFs
IHsKLXN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCByZWxldmFudEV4dGVuc2lvbktleXNbM10gPSB7
ICJjYSIsICJudSIsICJoYyIgfTsKK25hbWVzcGFjZSBJbnRsRGF0ZVRpbWVGb3JtYXRJbnRlcm5h
bCB7Citjb25zdGV4cHIgY29uc3QgY2hhciogcmVsZXZhbnRFeHRlbnNpb25LZXlzWzNdID0geyAi
Y2EiLCAibnUiLCAiaGMiIH07Citjb25zdGV4cHIgc2l6ZV90IGNhbGVuZGFySW5kZXggPSAwOwor
Y29uc3RleHByIHNpemVfdCBudW1iZXJpbmdTeXN0ZW1JbmRleCA9IDE7Citjb25zdGV4cHIgc2l6
ZV90IGhvdXJDeWNsZUluZGV4ID0gMjsKIH0KIAotc3RhdGljIGNvbnN0IHNpemVfdCBpbmRleE9m
RXh0ZW5zaW9uS2V5Q2EgPSAwOwotc3RhdGljIGNvbnN0IHNpemVfdCBpbmRleE9mRXh0ZW5zaW9u
S2V5TnUgPSAxOwotc3RhdGljIGNvbnN0IHNpemVfdCBpbmRleE9mRXh0ZW5zaW9uS2V5SGMgPSAy
OwotCi1zdHJ1Y3QgVUZpZWxkUG9zaXRpb25JdGVyYXRvckRlbGV0ZXIgewotICAgIHZvaWQgb3Bl
cmF0b3IoKShVRmllbGRQb3NpdGlvbkl0ZXJhdG9yKiBpdGVyYXRvcikgY29uc3QKLSAgICB7Ci0g
ICAgICAgIGlmIChpdGVyYXRvcikKLSAgICAgICAgICAgIHVmaWVsZHBvc2l0ZXJfY2xvc2UoaXRl
cmF0b3IpOwotICAgIH0KLX07Ci0KIHZvaWQgSW50bERhdGVUaW1lRm9ybWF0OjpVRGF0ZUZvcm1h
dERlbGV0ZXI6Om9wZXJhdG9yKCkoVURhdGVGb3JtYXQqIGRhdGVGb3JtYXQpIGNvbnN0CiB7CiAg
ICAgaWYgKGRhdGVGb3JtYXQpCkBAIC0xOTQsMTIgKzE4NCwxMSBAQCBzdGF0aWMgU3RyaW5nIGNh
bm9uaWNhbGl6ZVRpbWVab25lTmFtZShjb25zdCBTdHJpbmcmIHRpbWVab25lTmFtZSkKICAgICBy
ZXR1cm4gY2Fub25pY2FsOwogfQogCi1uYW1lc3BhY2UgSW50bERURkludGVybmFsIHsKLXN0YXRp
YyBWZWN0b3I8U3RyaW5nPiBsb2NhbGVEYXRhKGNvbnN0IFN0cmluZyYgbG9jYWxlLCBzaXplX3Qg
a2V5SW5kZXgpCitWZWN0b3I8U3RyaW5nPiBJbnRsRGF0ZVRpbWVGb3JtYXQ6OmxvY2FsZURhdGEo
Y29uc3QgU3RyaW5nJiBsb2NhbGUsIHNpemVfdCBrZXlJbmRleCkKIHsKICAgICBWZWN0b3I8U3Ry
aW5nPiBrZXlMb2NhbGVEYXRhOwogICAgIHN3aXRjaCAoa2V5SW5kZXgpIHsKLSAgICBjYXNlIGlu
ZGV4T2ZFeHRlbnNpb25LZXlDYTogeworICAgIGNhc2UgSW50bERhdGVUaW1lRm9ybWF0SW50ZXJu
YWw6OmNhbGVuZGFySW5kZXg6IHsKICAgICAgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9f
RVJST1I7CiAgICAgICAgIFVFbnVtZXJhdGlvbiogY2FsZW5kYXJzID0gdWNhbF9nZXRLZXl3b3Jk
VmFsdWVzRm9yTG9jYWxlKCJjYWxlbmRhciIsIGxvY2FsZS51dGY4KCkuZGF0YSgpLCBmYWxzZSwg
JnN0YXR1cyk7CiAgICAgICAgIEFTU0VSVChVX1NVQ0NFU1Moc3RhdHVzKSk7CkBAIC0yMjAsMTAg
KzIwOSwxMCBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gbG9jYWxlRGF0YShjb25zdCBTdHJpbmcm
IGxvY2FsZSwgc2l6ZV90IGtleUluZGV4KQogICAgICAgICB1ZW51bV9jbG9zZShjYWxlbmRhcnMp
OwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBpbmRleE9mRXh0ZW5zaW9uS2V5TnU6
CisgICAgY2FzZSBJbnRsRGF0ZVRpbWVGb3JtYXRJbnRlcm5hbDo6bnVtYmVyaW5nU3lzdGVtSW5k
ZXg6CiAgICAgICAgIGtleUxvY2FsZURhdGEgPSBudW1iZXJpbmdTeXN0ZW1zRm9yTG9jYWxlKGxv
Y2FsZSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgaW5kZXhPZkV4dGVuc2lvbktleUhjOgor
ICAgIGNhc2UgSW50bERhdGVUaW1lRm9ybWF0SW50ZXJuYWw6OmhvdXJDeWNsZUluZGV4OgogICAg
ICAgICAvLyBOdWxsIGRlZmF1bHQgc28gd2Uga25vdyB0byB1c2UgJ2onIGluIHBhdHRlcm4uCiAg
ICAgICAgIGtleUxvY2FsZURhdGEuYXBwZW5kKFN0cmluZygpKTsKICAgICAgICAga2V5TG9jYWxl
RGF0YS5hcHBlbmQoImgxMSJfcyk7CkBAIC0zMzMsNyArMzIyLDYgQEAgc3RhdGljIEpTT2JqZWN0
KiB0b0RhdGVUaW1lT3B0aW9uc0FueURhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZQogICAgIC8vIDkuIFJldHVybiBvcHRpb25zLgogICAgIHJldHVybiBvcHRpb25zOwog
fQotfQogCiB2b2lkIEludGxEYXRlVGltZUZvcm1hdDo6c2V0Rm9ybWF0c0Zyb21QYXR0ZXJuKGNv
bnN0IFN0cmluZ1ZpZXcmIHBhdHRlcm4pCiB7CkBAIC00NDksNyArNDM3LDcgQEAgdm9pZCBJbnRs
RGF0ZVRpbWVGb3JtYXQ6OmluaXRpYWxpemVEYXRlVGltZUZvcm1hdChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LAogICAgIFZlY3RvcjxTdHJpbmc+IHJlcXVlc3RlZExvY2FsZXMgPSBjYW5v
bmljYWxpemVMb2NhbGVMaXN0KGdsb2JhbE9iamVjdCwgbG9jYWxlcyk7CiAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKIAotICAgIEpTT2JqZWN0KiBvcHRpb25zID0gSW50
bERURkludGVybmFsOjp0b0RhdGVUaW1lT3B0aW9uc0FueURhdGUoZ2xvYmFsT2JqZWN0LCBvcmln
aW5hbE9wdGlvbnMpOworICAgIEpTT2JqZWN0KiBvcHRpb25zID0gdG9EYXRlVGltZU9wdGlvbnNB
bnlEYXRlKGdsb2JhbE9iamVjdCwgb3JpZ2luYWxPcHRpb25zKTsKICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogCiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gb3B0
OwpAQCAtNDkzLDcgKzQ4MSw3IEBAIHZvaWQgSW50bERhdGVUaW1lRm9ybWF0Ojppbml0aWFsaXpl
RGF0ZVRpbWVGb3JtYXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICAgICAgb3B0
LmFkZCgiaGMiX3MsIFN0cmluZygpKTsKIAogICAgIGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYgYXZh
aWxhYmxlTG9jYWxlcyA9IGludGxEYXRlVGltZUZvcm1hdEF2YWlsYWJsZUxvY2FsZXMoKTsKLSAg
ICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiByZXNvbHZlZCA9IHJlc29sdmVMb2NhbGUoZ2xvYmFs
T2JqZWN0LCBhdmFpbGFibGVMb2NhbGVzLCByZXF1ZXN0ZWRMb2NhbGVzLCBvcHQsIEludGxEVEZJ
bnRlcm5hbDo6cmVsZXZhbnRFeHRlbnNpb25LZXlzLCBXVEZfQVJSQVlfTEVOR1RIKEludGxEVEZJ
bnRlcm5hbDo6cmVsZXZhbnRFeHRlbnNpb25LZXlzKSwgSW50bERURkludGVybmFsOjpsb2NhbGVE
YXRhKTsKKyAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiByZXNvbHZlZCA9IHJlc29sdmVMb2Nh
bGUoZ2xvYmFsT2JqZWN0LCBhdmFpbGFibGVMb2NhbGVzLCByZXF1ZXN0ZWRMb2NhbGVzLCBvcHQs
IEludGxEYXRlVGltZUZvcm1hdEludGVybmFsOjpyZWxldmFudEV4dGVuc2lvbktleXMsIFdURl9B
UlJBWV9MRU5HVEgoSW50bERhdGVUaW1lRm9ybWF0SW50ZXJuYWw6OnJlbGV2YW50RXh0ZW5zaW9u
S2V5cyksIGxvY2FsZURhdGEpOwogCiAgICAgbV9sb2NhbGUgPSByZXNvbHZlZC5nZXQodm0ucHJv
cGVydHlOYW1lcy0+bG9jYWxlLnN0cmluZygpKTsKICAgICBpZiAobV9sb2NhbGUuaXNFbXB0eSgp
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRp
bWVGb3JtYXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZv
cm1hdC5oCmluZGV4IGU1Yzk0ZTlkMzA3Mjc0MTM0Mzc3MzRmZjk5MzVlZjk5M2E5ZDdjZDIuLmY5
MDcxMmI2NDFjMzJiNDliMTdjMzhhNDJhZTQxOTcyZGY1ZTU0MTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5oCkBAIC01NCw2ICs1
NCw4IEBAIHB1YmxpYzoKIAogICAgIERFQ0xBUkVfSU5GTzsKIAorICAgIHN0YXRpYyBWZWN0b3I8
U3RyaW5nPiBsb2NhbGVEYXRhKGNvbnN0IFN0cmluZyYsIHNpemVfdCk7CisKICAgICB2b2lkIGlu
aXRpYWxpemVEYXRlVGltZUZvcm1hdChKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgbG9jYWxlcywg
SlNWYWx1ZSBvcHRpb25zKTsKICAgICBKU1ZhbHVlIGZvcm1hdChKU0dsb2JhbE9iamVjdCosIGRv
dWJsZSB2YWx1ZSk7CiAgICAgSlNWYWx1ZSBmb3JtYXRUb1BhcnRzKEpTR2xvYmFsT2JqZWN0Kiwg
ZG91YmxlIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxOdW1iZXJGb3JtYXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bE51bWJlckZvcm1hdC5jcHAKaW5kZXggNDVmMzM3OTEyYmRiYTMyODNkNDQwYWMwY2FmYjA1ZWJk
MjA0NDFmNi4uNjBjZTEyOGNhYTljMmQ4NmNlMWEyMjZmZDM5YWI3YmMyMTg4ZGNiMCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdC5jcHAK
QEAgLTM2LDIyICszNiwxNSBAQAogI2luY2x1ZGUgIkpTQm91bmRGdW5jdGlvbi5oIgogI2luY2x1
ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgotI2luY2x1
ZGUgPHVuaWNvZGUvdWZpZWxkcG9zaXRlci5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL2ljdS9J
Q1VIZWxwZXJzLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gSW50bE51
bWJlckZvcm1hdDo6c19pbmZvID0geyAiT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwg
bnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShJbnRsTnVtYmVyRm9ybWF0KSB9OwogCi1zdGF0
aWMgY29uc3QgY2hhciogY29uc3QgcmVsZXZhbnROdW1iZXJFeHRlbnNpb25LZXlzWzFdID0geyAi
bnUiIH07Ci0KLXN0cnVjdCBVRmllbGRQb3NpdGlvbkl0ZXJhdG9yRGVsZXRlciB7Ci0gICAgdm9p
ZCBvcGVyYXRvcigpKFVGaWVsZFBvc2l0aW9uSXRlcmF0b3IqIGl0ZXJhdG9yKSBjb25zdAotICAg
IHsKLSAgICAgICAgaWYgKGl0ZXJhdG9yKQotICAgICAgICAgICAgdWZpZWxkcG9zaXRlcl9jbG9z
ZShpdGVyYXRvcik7Ci0gICAgfQotfTsKK25hbWVzcGFjZSBJbnRsTnVtYmVyRm9ybWF0SW50ZXJu
YWwgeworY29uc3RleHByIGNvbnN0IGNoYXIqIHJlbGV2YW50RXh0ZW5zaW9uS2V5c1sxXSA9IHsg
Im51IiB9OworfQogCiBzdHJ1Y3QgSW50bE51bWJlckZvcm1hdEZpZWxkIHsKICAgICBpbnQzMl90
IHR5cGU7CkBAIC05NywxNCArOTAsMTIgQEAgdm9pZCBJbnRsTnVtYmVyRm9ybWF0Ojp2aXNpdENo
aWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgdmlzaXRvci5h
cHBlbmQodGhpc09iamVjdC0+bV9ib3VuZEZvcm1hdCk7CiB9CiAKLW5hbWVzcGFjZSBJbnRsTkZJ
bnRlcm5hbCB7Ci1zdGF0aWMgVmVjdG9yPFN0cmluZz4gbG9jYWxlRGF0YShjb25zdCBTdHJpbmcm
IGxvY2FsZSwgc2l6ZV90IGtleUluZGV4KQorVmVjdG9yPFN0cmluZz4gSW50bE51bWJlckZvcm1h
dDo6bG9jYWxlRGF0YShjb25zdCBTdHJpbmcmIGxvY2FsZSwgc2l6ZV90IGtleUluZGV4KQogewog
ICAgIC8vIDkuMSBJbnRlcm5hbCBzbG90cyBvZiBTZXJ2aWNlIENvbnN0cnVjdG9ycyAmIDExLjIu
MyBJbnRlcm5hbCBzbG90cyAoRUNNQS00MDIgMi4wKQogICAgIEFTU0VSVF9VTlVTRUQoa2V5SW5k
ZXgsICFrZXlJbmRleCk7IC8vIFRoZSBpbmRleCBvZiB0aGUgZXh0ZW5zaW9uIGtleSAibnUiIGlu
IHJlbGV2YW50RXh0ZW5zaW9uS2V5cyBpcyAwLgogICAgIHJldHVybiBudW1iZXJpbmdTeXN0ZW1z
Rm9yTG9jYWxlKGxvY2FsZSk7CiB9Ci19CiAKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgY29tcHV0
ZUN1cnJlbmN5U29ydEtleShjb25zdCBTdHJpbmcmIGN1cnJlbmN5KQogewpAQCAtMTk4LDcgKzE4
OSw3IEBAIHZvaWQgSW50bE51bWJlckZvcm1hdDo6aW5pdGlhbGl6ZU51bWJlckZvcm1hdChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhCiAgICAgfQogCiAgICAgYXV0byYgYXZhaWxh
YmxlTG9jYWxlcyA9IGludGxOdW1iZXJGb3JtYXRBdmFpbGFibGVMb2NhbGVzKCk7Ci0gICAgYXV0
byByZXN1bHQgPSByZXNvbHZlTG9jYWxlKGdsb2JhbE9iamVjdCwgYXZhaWxhYmxlTG9jYWxlcywg
cmVxdWVzdGVkTG9jYWxlcywgb3B0LCByZWxldmFudE51bWJlckV4dGVuc2lvbktleXMsIFdURl9B
UlJBWV9MRU5HVEgocmVsZXZhbnROdW1iZXJFeHRlbnNpb25LZXlzKSwgSW50bE5GSW50ZXJuYWw6
OmxvY2FsZURhdGEpOworICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZUxvY2FsZShnbG9iYWxPYmpl
Y3QsIGF2YWlsYWJsZUxvY2FsZXMsIHJlcXVlc3RlZExvY2FsZXMsIG9wdCwgSW50bE51bWJlckZv
cm1hdEludGVybmFsOjpyZWxldmFudEV4dGVuc2lvbktleXMsIFdURl9BUlJBWV9MRU5HVEgoSW50
bE51bWJlckZvcm1hdEludGVybmFsOjpyZWxldmFudEV4dGVuc2lvbktleXMpLCBsb2NhbGVEYXRh
KTsKIAogICAgIG1fbG9jYWxlID0gcmVzdWx0LmdldCgibG9jYWxlIl9zKTsKICAgICBpZiAobV9s
b2NhbGUuaXNFbXB0eSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsTnVtYmVyRm9ybWF0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsTnVtYmVyRm9ybWF0LmgKaW5kZXggZjVjNjJhZDc2OGNlODNkNjQyZTZhZmQxYmZlMDRlNmFm
ZGFmYjNiYi4uNDNjMWY0YmI0ZjIzZDlhMWU2YTk1NDU0ZjE2YjQ4MWU5MTgzYTI5NSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXQuaApAQCAt
NTUsNiArNTUsOCBAQCBwdWJsaWM6CiAKICAgICBERUNMQVJFX0lORk87CiAKKyAgICBzdGF0aWMg
VmVjdG9yPFN0cmluZz4gbG9jYWxlRGF0YShjb25zdCBTdHJpbmcmLCBzaXplX3QpOworCiAgICAg
dm9pZCBpbml0aWFsaXplTnVtYmVyRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBsb2Nh
bGVzLCBKU1ZhbHVlIG9wdGlvbnNWYWx1ZSk7CiAgICAgSlNWYWx1ZSBmb3JtYXQoSlNHbG9iYWxP
YmplY3QqLCBkb3VibGUpOwogICAgIEpTVmFsdWUgZm9ybWF0KEpTR2xvYmFsT2JqZWN0KiwgSlNC
aWdJbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxP
YmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAK
aW5kZXggZGFiMzdlN2VjN2MxOWNiZTRjYTU2ZGQwMmVmZmU1MThiYzM4MmJmNi4uODhmMTk3MGFk
MDRjMjc5ODUyNGUwMjVhNGE1MTljZDFmMTc2YWE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJP
YmplY3RQcm90b3R5cGUuaCIKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSA8dW5pY29k
ZS91Y29sLmg+CisjaW5jbHVkZSA8dW5pY29kZS91ZmllbGRwb3NpdGVyLmg+CiAjaW5jbHVkZSA8
dW5pY29kZS91bG9jLmg+CiAjaW5jbHVkZSA8dW5pY29kZS91bnVtc3lzLmg+CiAjaW5jbHVkZSA8
d3RmL0Fzc2VydGlvbnMuaD4KQEAgLTExNCw2ICsxMTUsMTIgQEAgc3RydWN0IE1hdGNoZXJSZXN1
bHQgewogCiBjb25zdCBDbGFzc0luZm8gSW50bE9iamVjdDo6c19pbmZvID0geyAiT2JqZWN0Iiwg
JkJhc2U6OnNfaW5mbywgJmludGxPYmplY3RUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShJbnRsT2JqZWN0KSB9OwogCit2b2lkIFVGaWVsZFBvc2l0aW9uSXRlcmF0b3JEZWxldGVy
OjpvcGVyYXRvcigpKFVGaWVsZFBvc2l0aW9uSXRlcmF0b3IqIGl0ZXJhdG9yKSBjb25zdAorewor
ICAgIGlmIChpdGVyYXRvcikKKyAgICAgICAgdWZpZWxkcG9zaXRlcl9jbG9zZShpdGVyYXRvcik7
Cit9CisKIEludGxPYmplY3Q6OkludGxPYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxPYmplY3QuaAppbmRleCA2YWY2ZjczOWZkM2M5YzJiYmIzNzFkNmMwYmMzNjIz
NTlhYWJiMThhLi5mMTEyMmY0MTM5YzFhODNmNDVmMTlkMjBkOWIyZjgxNzAxMDI4ZjBmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5oCkBAIC0zMCw2ICszMCw4
IEBACiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU09iamVjdC5o
IgogCitzdHJ1Y3QgVUZpZWxkUG9zaXRpb25JdGVyYXRvcjsKKwogbmFtZXNwYWNlIEpTQyB7CiAK
IGNsYXNzIEludGxPYmplY3QgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CkBAIC03
NSw0ICs3Nyw4IEBAIFZlY3RvcjxTdHJpbmc+IG51bWJlcmluZ1N5c3RlbXNGb3JMb2NhbGUoY29u
c3QgU3RyaW5nJiBsb2NhbGUpOwogCiBib29sIGlzVW5pY29kZUxvY2FsZUlkZW50aWZpZXJUeXBl
KFN0cmluZ1ZpZXcpOwogCitzdHJ1Y3QgVUZpZWxkUG9zaXRpb25JdGVyYXRvckRlbGV0ZXIgewor
ICAgIHZvaWQgb3BlcmF0b3IoKShVRmllbGRQb3NpdGlvbkl0ZXJhdG9yKikgY29uc3Q7Cit9Owor
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxQbHVyYWxSdWxlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsUGx1cmFsUnVsZXMuY3BwCmluZGV4IGIyZjE5MTg4NjRjNDE2ODE5MGVhYmFhOTExZjhl
NWVlNzZlMDgyZGQuLjc5OTRmNzE3YjRmN2M2MDViZDRhZTBjYjMzYTQwYWFhODJhZWQxMzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxQbHVyYWxSdWxlcy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFBsdXJhbFJ1bGVzLmNw
cApAQCAtODgsNyArODgsNyBAQCB2b2lkIEludGxQbHVyYWxSdWxlczo6dmlzaXRDaGlsZHJlbihK
U0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIEJhc2U6OnZpc2l0Q2hpbGRy
ZW4odGhpc09iamVjdCwgdmlzaXRvcik7CiB9CiAKLXN0YXRpYyBWZWN0b3I8U3RyaW5nPiBsb2Nh
bGVEYXRhKGNvbnN0IFN0cmluZyYsIHNpemVfdCkKK1ZlY3RvcjxTdHJpbmc+IEludGxQbHVyYWxS
dWxlczo6bG9jYWxlRGF0YShjb25zdCBTdHJpbmcmLCBzaXplX3QpCiB7CiAgICAgcmV0dXJuIHsg
fTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxQbHVy
YWxSdWxlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFBsdXJhbFJ1bGVz
LmgKaW5kZXggNzA4ZDc5YmQxMjljNzlmNTE1N2VlNDExNTcxYjdmMDY2MmYzMDI2Yy4uYmVlMTcy
MGEwMDcxNjFjYjRiYjlkODY0MmRhNGVlMmJlYmU5NDA2OCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFBsdXJhbFJ1bGVzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50bFBsdXJhbFJ1bGVzLmgKQEAgLTUzLDYgKzUzLDggQEAgcHVi
bGljOgogCiAgICAgREVDTEFSRV9JTkZPOwogCisgICAgc3RhdGljIFZlY3RvcjxTdHJpbmc+IGxv
Y2FsZURhdGEoY29uc3QgU3RyaW5nJiwgc2l6ZV90KTsKKwogICAgIHZvaWQgaW5pdGlhbGl6ZVBs
dXJhbFJ1bGVzKEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBsb2NhbGVzLCBKU1ZhbHVlIG9wdGlv
bnMpOwogICAgIEpTVmFsdWUgc2VsZWN0KEpTR2xvYmFsT2JqZWN0KiwgZG91YmxlIHZhbHVlKTsK
ICAgICBKU09iamVjdCogcmVzb2x2ZWRPcHRpb25zKEpTR2xvYmFsT2JqZWN0Kik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUmVsYXRpdmVUaW1lRm9ybWF0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3Jt
YXQuY3BwCmluZGV4IDcxNDBlZmFlMmYyNDkwZThiMDJiZTVmZWM0NjNlNWY0NDZhZDZmYWYuLjBi
NDBjMjE5NzhiN2ZiNWE0YjcwNTRhYWMxMWU5NzU4MjMwZjI5YmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXQuY3Bw
CkBAIC0zNywxNSArMzcsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIElu
dGxSZWxhdGl2ZVRpbWVGb3JtYXQ6OnNfaW5mbyA9IHsgIk9iamVjdCIsICZCYXNlOjpzX2luZm8s
IG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSW50bFJlbGF0aXZlVGltZUZv
cm1hdCkgfTsKIAorbmFtZXNwYWNlIEludGxSZWxhdGl2ZVRpbWVGb3JtYXRJbnRlcm5hbCB7CiBj
b25zdGV4cHIgY29uc3QgY2hhciogcmVsZXZhbnRFeHRlbnNpb25LZXlzWzFdID0geyAibnUiIH07
Ci0KLXN0cnVjdCBVRmllbGRQb3NpdGlvbkl0ZXJhdG9yRGVsZXRlciB7Ci0gICAgdm9pZCBvcGVy
YXRvcigpKFVGaWVsZFBvc2l0aW9uSXRlcmF0b3IqIGl0ZXJhdG9yKSBjb25zdAotICAgIHsKLSAg
ICAgICAgaWYgKGl0ZXJhdG9yKQotICAgICAgICAgICAgdWZpZWxkcG9zaXRlcl9jbG9zZShpdGVy
YXRvcik7Ci0gICAgfQotfTsKK30KIAogdm9pZCBJbnRsUmVsYXRpdmVUaW1lRm9ybWF0OjpVUmVs
YXRpdmVEYXRlVGltZUZvcm1hdHRlckRlbGV0ZXI6Om9wZXJhdG9yKCkoVVJlbGF0aXZlRGF0ZVRp
bWVGb3JtYXR0ZXIqIHJlbGF0aXZlRGF0ZVRpbWVGb3JtYXR0ZXIpIGNvbnN0CiB7CkBAIC05MCw3
ICs4NCw3IEBAIHZvaWQgSW50bFJlbGF0aXZlVGltZUZvcm1hdDo6dmlzaXRDaGlsZHJlbihKU0Nl
bGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4o
dGhpc09iamVjdCwgdmlzaXRvcik7CiB9CiAKLXN0YXRpYyBWZWN0b3I8U3RyaW5nPiBsb2NhbGVE
YXRhKGNvbnN0IFN0cmluZyYgbG9jYWxlLCBzaXplX3Qga2V5SW5kZXgpCitWZWN0b3I8U3RyaW5n
PiBJbnRsUmVsYXRpdmVUaW1lRm9ybWF0Ojpsb2NhbGVEYXRhKGNvbnN0IFN0cmluZyYgbG9jYWxl
LCBzaXplX3Qga2V5SW5kZXgpCiB7CiAgICAgLy8gVGhlIGluZGV4IG9mIHRoZSBleHRlbnNpb24g
a2V5ICJudSIgaW4gcmVsZXZhbnRFeHRlbnNpb25LZXlzIGlzIDAuCiAgICAgQVNTRVJUX1VOVVNF
RChrZXlJbmRleCwgIWtleUluZGV4KTsKQEAgLTEzMCw3ICsxMjQsNyBAQCB2b2lkIEludGxSZWxh
dGl2ZVRpbWVGb3JtYXQ6OmluaXRpYWxpemVSZWxhdGl2ZVRpbWVGb3JtYXQoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbAogICAgIH0KIAogICAgIGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYgYXZhaWxhYmxl
TG9jYWxlcyA9IGludGxSZWxhdGl2ZVRpbWVGb3JtYXRBdmFpbGFibGVMb2NhbGVzKCk7Ci0gICAg
SGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gcmVzb2x2ZWQgPSByZXNvbHZlTG9jYWxlKGdsb2JhbE9i
amVjdCwgYXZhaWxhYmxlTG9jYWxlcywgcmVxdWVzdGVkTG9jYWxlcywgb3B0LCByZWxldmFudEV4
dGVuc2lvbktleXMsIFdURl9BUlJBWV9MRU5HVEgocmVsZXZhbnRFeHRlbnNpb25LZXlzKSwgbG9j
YWxlRGF0YSk7CisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gcmVzb2x2ZWQgPSByZXNvbHZl
TG9jYWxlKGdsb2JhbE9iamVjdCwgYXZhaWxhYmxlTG9jYWxlcywgcmVxdWVzdGVkTG9jYWxlcywg
b3B0LCBJbnRsUmVsYXRpdmVUaW1lRm9ybWF0SW50ZXJuYWw6OnJlbGV2YW50RXh0ZW5zaW9uS2V5
cywgV1RGX0FSUkFZX0xFTkdUSChJbnRsUmVsYXRpdmVUaW1lRm9ybWF0SW50ZXJuYWw6OnJlbGV2
YW50RXh0ZW5zaW9uS2V5cyksIGxvY2FsZURhdGEpOwogICAgIG1fbG9jYWxlID0gcmVzb2x2ZWQu
Z2V0KHZtLnByb3BlcnR5TmFtZXMtPmxvY2FsZS5zdHJpbmcoKSk7CiAgICAgaWYgKG1fbG9jYWxl
LmlzRW1wdHkoKSkgewogICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3Bl
LCAiZmFpbGVkIHRvIGluaXRpYWxpemUgUmVsYXRpdmVUaW1lRm9ybWF0IGR1ZSB0byBpbnZhbGlk
IGxvY2FsZSJfcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsUmVsYXRpdmVUaW1lRm9ybWF0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsUmVsYXRpdmVUaW1lRm9ybWF0LmgKaW5kZXggZTcyMTkzMGFjOTE5NGZhZGY0YzgyM2YyNzEx
M2IwN2I0MDdmM2UyYS4uNDVjOTIxZDU0ZjMzMzNlODEyNTJlYjI1MWI3M2IxNGY5ZjE4NmQyZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJlbGF0aXZlVGlt
ZUZvcm1hdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxSZWxhdGl2
ZVRpbWVGb3JtYXQuaApAQCAtMjYsNyArMjYsNiBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
ICJKU09iamVjdC5oIgotI2luY2x1ZGUgPHVuaWNvZGUvdWZpZWxkcG9zaXRlci5oPgogI2luY2x1
ZGUgPHVuaWNvZGUvdXJlbGRhdGVmbXQuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC01Myw2ICs1
Miw4IEBAIHB1YmxpYzoKIAogICAgIERFQ0xBUkVfSU5GTzsKIAorICAgIHN0YXRpYyBWZWN0b3I8
U3RyaW5nPiBsb2NhbGVEYXRhKGNvbnN0IFN0cmluZyYsIHNpemVfdCk7CisKICAgICB2b2lkIGlu
aXRpYWxpemVSZWxhdGl2ZVRpbWVGb3JtYXQoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIGxvY2Fs
ZXMsIEpTVmFsdWUgb3B0aW9ucyk7CiAgICAgSlNWYWx1ZSBmb3JtYXQoSlNHbG9iYWxPYmplY3Qq
LCBkb3VibGUsIFN0cmluZ1ZpZXcgdW5pdFN0cmluZyk7CiAgICAgSlNWYWx1ZSBmb3JtYXRUb1Bh
cnRzKEpTR2xvYmFsT2JqZWN0KiwgZG91YmxlLCBTdHJpbmdWaWV3IHVuaXRTdHJpbmcpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398021</attachid>
            <date>2020-04-29 19:35:23 -0700</date>
            <delta_ts>2020-04-29 20:00:40 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-211213-20200429193522.patch</filename>
            <type>text/plain</type>
            <size>21799</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
ZTg1Yjk2NTI1ZmVmZTk1NTdkYjU2Y2VhZjExMDNiOGVmODczYTIyLi4yYjZjOWUwYjIwZTkwODdj
Yjk2YjdlMTI1ZWJkNmRkYjI2YzRiODRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMC0wNC0yOSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgRW5zdXJlIEludGwgY2xhc3NlcyBkb24ndCBoYXZlIG5hbWluZyBj
b25mbGljdHMgd2l0aCB1bmlmaWVkIGJ1aWxkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMjEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWXVzdWtl
IFN1enVraS4KKworICAgICAgICBFYWNoIEludGwgY2xhc3MgdXN1YWxseSBoYXMgYW4gYXJyYXkg
bmFtZWQgcmVsZXZhbnRFeHRlbnNpb25zS2V5cyBhbmQgYSBmdW5jdGlvbiBuYW1lZCBsb2NhbGVE
YXRhLgorICAgICAgICBUaGlzIGNhbiByZXN1bHQgaW4gcmVkZWZpbml0aW9uIGVycm9ycyB3aGVu
IHVuaWZpZWQgYnVpbGRzIHB1dCB0d28gb2YgdGhlbSBpbnRvIHRoZSBzYW1lIHRyYW5zbGF0aW9u
IHVuaXQuIAorICAgICAgICBTb21lIGFyZSBhbHJlYWR5IGd1YXJkaW5nIGFnYWluc3QgdGhpcyB3
aXRoIGFuIGludGVybmFsIG5hbWVzcGFjZSB3aGlsZSBvdGhlcnMgYXJlIG5vdC4KKworICAgICAg
ICBBcyBhIHVuaWZvcm0gYXBwcm9hY2gsIHRoaXMgcGF0Y2ggbWFrZXMgZWFjaCBsb2NhbGVEYXRh
IGZ1bmN0aW9uIGEgc3RhdGljIG1ldGhvZCBhbmQKKyAgICAgICAgcHV0cyBlYWNoIHJlbGV2YW50
RXh0ZW5zaW9uc0tleXMgYXJyYXkgKGFzIHdlbGwgYXMgYW55IGNvbnN0YW50cyBmb3IgaXRzIGlu
ZGljZXMpIGludG8gYW4gaW50ZXJuYWwgbmFtZXNwYWNlLgorCisgICAgICAgIEZ1cnRoZXJtb3Jl
LCBzaW5jZSB0aHJlZSBkaWZmZXJlbnQgY2xhc3NlcyBhcmUgZGVmaW5pbmcgYW4gaWRlbnRpY2Fs
IFVGaWVsZFBvc2l0aW9uSXRlcmF0b3JEZWxldGVyLAorICAgICAgICB0aGlzIHBhdGNoIGNvbnNv
bGlkYXRlcyB0aGVtIGludG8gb25lIGRlZmluaXRpb24gaW4gSW50bE9iamVjdC4KKworICAgICAg
ICAqIHJ1bnRpbWUvSW50bENvbGxhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SW50bENvbGxhdG9y
Ojpzb3J0TG9jYWxlRGF0YSk6IFJlbmFtZWQgZnJvbSBKU0M6OnNvcnRMb2NhbGVEYXRhLgorICAg
ICAgICAoSlNDOjpJbnRsQ29sbGF0b3I6OnNlYXJjaExvY2FsZURhdGEpOiBSZW5hbWVkIGZyb20g
SlNDOjpzZWFyY2hMb2NhbGVEYXRhLgorICAgICAgICAoSlNDOjpJbnRsQ29sbGF0b3I6OmluaXRp
YWxpemVDb2xsYXRvcik6CisgICAgICAgICogcnVudGltZS9JbnRsQ29sbGF0b3IuaDoKKyAgICAg
ICAgKiBydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHA6CisgICAgICAgIChKU0M6OkludGxE
YXRlVGltZUZvcm1hdDo6bG9jYWxlRGF0YSk6IFJlbmFtZWQgZnJvbSBKU0M6OkludGxEVEZJbnRl
cm5hbDo6bG9jYWxlRGF0YS4KKyAgICAgICAgKEpTQzo6dG9EYXRlVGltZU9wdGlvbnNBbnlEYXRl
KTogUmVuYW1lZCBmcm9tIEpTQzo6SW50bERURkludGVybmFsOjp0b0RhdGVUaW1lT3B0aW9uc0Fu
eURhdGUuCisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1hdDo6aW5pdGlhbGl6ZURhdGVU
aW1lRm9ybWF0KToKKyAgICAgICAgKEpTQzo6VUZpZWxkUG9zaXRpb25JdGVyYXRvckRlbGV0ZXI6
Om9wZXJhdG9yKCkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSW50bERhdGVU
aW1lRm9ybWF0Lmg6CisgICAgICAgICogcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0LmNwcDoKKyAg
ICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1hdDo6bG9jYWxlRGF0YSk6IFJlbmFtZWQgZnJvbSBK
U0M6OkludGxORkludGVybmFsOjpsb2NhbGVEYXRhLgorICAgICAgICAoSlNDOjpJbnRsTnVtYmVy
Rm9ybWF0Ojppbml0aWFsaXplTnVtYmVyRm9ybWF0KToKKyAgICAgICAgKEpTQzo6VUZpZWxkUG9z
aXRpb25JdGVyYXRvckRlbGV0ZXI6Om9wZXJhdG9yKCkgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIHJ1bnRpbWUvSW50bE51bWJlckZvcm1hdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSW50bE9i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OlVGaWVsZFBvc2l0aW9uSXRlcmF0b3JEZWxldGVyOjpv
cGVyYXRvcigpIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogcnVudGltZS9JbnRsT2JqZWN0Lmg6
CisgICAgICAgICogcnVudGltZS9JbnRsUGx1cmFsUnVsZXMuY3BwOgorICAgICAgICAoSlNDOjpJ
bnRsUGx1cmFsUnVsZXM6OmxvY2FsZURhdGEpOiBSZW5hbWVkIGZyb20gSlNDOjpsb2NhbGVEYXRh
LgorICAgICAgICAqIHJ1bnRpbWUvSW50bFBsdXJhbFJ1bGVzLmg6CisgICAgICAgICogcnVudGlt
ZS9JbnRsUmVsYXRpdmVUaW1lRm9ybWF0LmNwcDoKKyAgICAgICAgKEpTQzo6SW50bFJlbGF0aXZl
VGltZUZvcm1hdDo6bG9jYWxlRGF0YSk6IFJlbmFtZWQgZnJvbSBKU0M6OmxvY2FsZURhdGEuCisg
ICAgICAgIChKU0M6OkludGxSZWxhdGl2ZVRpbWVGb3JtYXQ6OmluaXRpYWxpemVSZWxhdGl2ZVRp
bWVGb3JtYXQpOgorICAgICAgICAoSlNDOjpVRmllbGRQb3NpdGlvbkl0ZXJhdG9yRGVsZXRlcjo6
b3BlcmF0b3IoKSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9JbnRsUmVsYXRp
dmVUaW1lRm9ybWF0Lmg6CisKIDIwMjAtMDQtMjkgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNs
aW5nQHNvbnkuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZm9sbG93LXVwIHRvIHIyNjA4NDgu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3Iu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yLmNwcAppbmRl
eCBjMTRjZWMxZjYyNDVjYjg0NDI0YmZkYjYzZjEwMWQxNzNjMWE0OTgzLi42ZDM3YmYwZTMwNjM4
ZjQzMWQzOWY2YjE2ODZmZWE2MjkxZjlmYzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxDb2xsYXRvci5jcHAKQEAgLTQzLDEwICs0MywxMiBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIEludGxDb2xsYXRvcjo6c19pbmZvID0geyAiT2JqZWN0
IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShJ
bnRsQ29sbGF0b3IpIH07CiAKLXN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCByZWxldmFudENvbGxh
dG9yRXh0ZW5zaW9uS2V5c1szXSA9IHsgImNvIiwgImtuIiwgImtmIiB9Owotc3RhdGljIGNvbnN0
IHNpemVfdCBpbmRleE9mRXh0ZW5zaW9uS2V5Q28gPSAwOwotc3RhdGljIGNvbnN0IHNpemVfdCBp
bmRleE9mRXh0ZW5zaW9uS2V5S24gPSAxOwotc3RhdGljIGNvbnN0IHNpemVfdCBpbmRleE9mRXh0
ZW5zaW9uS2V5S2YgPSAyOworbmFtZXNwYWNlIEludGxDb2xsYXRvckludGVybmFsIHsKK2NvbnN0
ZXhwciBjb25zdCBjaGFyKiBjb25zdCByZWxldmFudEV4dGVuc2lvbktleXNbM10gPSB7ICJjbyIs
ICJrbiIsICJrZiIgfTsKK2NvbnN0ZXhwciBzaXplX3QgY29sbGF0aW9uSW5kZXggPSAwOworY29u
c3RleHByIHNpemVfdCBudW1lcmljSW5kZXggPSAxOworY29uc3RleHByIHNpemVfdCBjYXNlRmly
c3RJbmRleCA9IDI7Cit9CiAKIHZvaWQgSW50bENvbGxhdG9yOjpVQ29sbGF0b3JEZWxldGVyOjpv
cGVyYXRvcigpKFVDb2xsYXRvciogY29sbGF0b3IpIGNvbnN0CiB7CkBAIC04NywxMiArODksMTIg
QEAgdm9pZCBJbnRsQ29sbGF0b3I6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90Vmlz
aXRvciYgdmlzaXRvcikKICAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX2JvdW5kQ29t
cGFyZSk7CiB9CiAKLXN0YXRpYyBWZWN0b3I8U3RyaW5nPiBzb3J0TG9jYWxlRGF0YShjb25zdCBT
dHJpbmcmIGxvY2FsZSwgc2l6ZV90IGtleUluZGV4KQorVmVjdG9yPFN0cmluZz4gSW50bENvbGxh
dG9yOjpzb3J0TG9jYWxlRGF0YShjb25zdCBTdHJpbmcmIGxvY2FsZSwgc2l6ZV90IGtleUluZGV4
KQogewogICAgIC8vIDkuMSBJbnRlcm5hbCBzbG90cyBvZiBTZXJ2aWNlIENvbnN0cnVjdG9ycyAm
IDEwLjIuMyBJbnRlcm5hbCBzbG90cyAoRUNNQS00MDIgMi4wKQogICAgIFZlY3RvcjxTdHJpbmc+
IGtleUxvY2FsZURhdGE7CiAgICAgc3dpdGNoIChrZXlJbmRleCkgewotICAgIGNhc2UgaW5kZXhP
ZkV4dGVuc2lvbktleUNvOiB7CisgICAgY2FzZSBJbnRsQ29sbGF0b3JJbnRlcm5hbDo6Y29sbGF0
aW9uSW5kZXg6IHsKICAgICAgICAgLy8gMTAuMi4zICJUaGUgZmlyc3QgZWxlbWVudCBvZiBbW3Nv
cnRMb2NhbGVEYXRhXV1bbG9jYWxlXS5jbyBhbmQgW1tzZWFyY2hMb2NhbGVEYXRhXV1bbG9jYWxl
XS5jbyBtdXN0IGJlIG51bGwgZm9yIGFsbCBsb2NhbGUgdmFsdWVzLiIKICAgICAgICAga2V5TG9j
YWxlRGF0YS5hcHBlbmQoeyB9KTsKIApAQCAtMTIxLDEyICsxMjMsMTIgQEAgc3RhdGljIFZlY3Rv
cjxTdHJpbmc+IHNvcnRMb2NhbGVEYXRhKGNvbnN0IFN0cmluZyYgbG9jYWxlLCBzaXplX3Qga2V5
SW5kZXgpCiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIGNhc2UgaW5kZXhP
ZkV4dGVuc2lvbktleUtuOgorICAgIGNhc2UgSW50bENvbGxhdG9ySW50ZXJuYWw6Om51bWVyaWNJ
bmRleDoKICAgICAgICAga2V5TG9jYWxlRGF0YS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KDIpOwog
ICAgICAgICBrZXlMb2NhbGVEYXRhLnVuY2hlY2tlZEFwcGVuZCgiZmFsc2UiX3MpOwogICAgICAg
ICBrZXlMb2NhbGVEYXRhLnVuY2hlY2tlZEFwcGVuZCgidHJ1ZSJfcyk7CiAgICAgICAgIGJyZWFr
OwotICAgIGNhc2UgaW5kZXhPZkV4dGVuc2lvbktleUtmOgorICAgIGNhc2UgSW50bENvbGxhdG9y
SW50ZXJuYWw6OmNhc2VGaXJzdEluZGV4OgogICAgICAgICBrZXlMb2NhbGVEYXRhLnJlc2VydmVJ
bml0aWFsQ2FwYWNpdHkoMyk7CiAgICAgICAgIGtleUxvY2FsZURhdGEudW5jaGVja2VkQXBwZW5k
KCJmYWxzZSJfcyk7CiAgICAgICAgIGtleUxvY2FsZURhdGEudW5jaGVja2VkQXBwZW5kKCJsb3dl
ciJfcyk7CkBAIC0xMzgsMjIgKzE0MCwyMiBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gc29ydExv
Y2FsZURhdGEoY29uc3QgU3RyaW5nJiBsb2NhbGUsIHNpemVfdCBrZXlJbmRleCkKICAgICByZXR1
cm4ga2V5TG9jYWxlRGF0YTsKIH0KIAotc3RhdGljIFZlY3RvcjxTdHJpbmc+IHNlYXJjaExvY2Fs
ZURhdGEoY29uc3QgU3RyaW5nJiwgc2l6ZV90IGtleUluZGV4KQorVmVjdG9yPFN0cmluZz4gSW50
bENvbGxhdG9yOjpzZWFyY2hMb2NhbGVEYXRhKGNvbnN0IFN0cmluZyYsIHNpemVfdCBrZXlJbmRl
eCkKIHsKICAgICAvLyA5LjEgSW50ZXJuYWwgc2xvdHMgb2YgU2VydmljZSBDb25zdHJ1Y3RvcnMg
JiAxMC4yLjMgSW50ZXJuYWwgc2xvdHMgKEVDTUEtNDAyIDIuMCkKICAgICBWZWN0b3I8U3RyaW5n
PiBrZXlMb2NhbGVEYXRhOwogICAgIHN3aXRjaCAoa2V5SW5kZXgpIHsKLSAgICBjYXNlIGluZGV4
T2ZFeHRlbnNpb25LZXlDbzoKKyAgICBjYXNlIEludGxDb2xsYXRvckludGVybmFsOjpjb2xsYXRp
b25JbmRleDoKICAgICAgICAgLy8gMTAuMi4zICJUaGUgZmlyc3QgZWxlbWVudCBvZiBbW3NvcnRM
b2NhbGVEYXRhXV1bbG9jYWxlXS5jbyBhbmQgW1tzZWFyY2hMb2NhbGVEYXRhXV1bbG9jYWxlXS5j
byBtdXN0IGJlIG51bGwgZm9yIGFsbCBsb2NhbGUgdmFsdWVzLiIKICAgICAgICAga2V5TG9jYWxl
RGF0YS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KDEpOwogICAgICAgICBrZXlMb2NhbGVEYXRhLmFw
cGVuZCh7IH0pOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIGluZGV4T2ZFeHRlbnNpb25LZXlL
bjoKKyAgICBjYXNlIEludGxDb2xsYXRvckludGVybmFsOjpudW1lcmljSW5kZXg6CiAgICAgICAg
IGtleUxvY2FsZURhdGEucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSgyKTsKICAgICAgICAga2V5TG9j
YWxlRGF0YS51bmNoZWNrZWRBcHBlbmQoImZhbHNlIl9zKTsKICAgICAgICAga2V5TG9jYWxlRGF0
YS51bmNoZWNrZWRBcHBlbmQoInRydWUiX3MpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIGlu
ZGV4T2ZFeHRlbnNpb25LZXlLZjoKKyAgICBjYXNlIEludGxDb2xsYXRvckludGVybmFsOjpjYXNl
Rmlyc3RJbmRleDoKICAgICAgICAga2V5TG9jYWxlRGF0YS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5
KDMpOwogICAgICAgICBrZXlMb2NhbGVEYXRhLnVuY2hlY2tlZEFwcGVuZCgiZmFsc2UiX3MpOwog
ICAgICAgICBrZXlMb2NhbGVEYXRhLnVuY2hlY2tlZEFwcGVuZCgibG93ZXIiX3MpOwpAQCAtMjE1
LDcgKzIxNyw3IEBAIHZvaWQgSW50bENvbGxhdG9yOjppbml0aWFsaXplQ29sbGF0b3IoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBsb2NhCiAgICAgfQogCiAgICAgYXV0byYg
YXZhaWxhYmxlTG9jYWxlcyA9IGludGxDb2xsYXRvckF2YWlsYWJsZUxvY2FsZXMoKTsKLSAgICBh
dXRvIHJlc3VsdCA9IHJlc29sdmVMb2NhbGUoZ2xvYmFsT2JqZWN0LCBhdmFpbGFibGVMb2NhbGVz
LCByZXF1ZXN0ZWRMb2NhbGVzLCBvcHQsIHJlbGV2YW50Q29sbGF0b3JFeHRlbnNpb25LZXlzLCBX
VEZfQVJSQVlfTEVOR1RIKHJlbGV2YW50Q29sbGF0b3JFeHRlbnNpb25LZXlzKSwgbG9jYWxlRGF0
YSk7CisgICAgYXV0byByZXN1bHQgPSByZXNvbHZlTG9jYWxlKGdsb2JhbE9iamVjdCwgYXZhaWxh
YmxlTG9jYWxlcywgcmVxdWVzdGVkTG9jYWxlcywgb3B0LCBJbnRsQ29sbGF0b3JJbnRlcm5hbDo6
cmVsZXZhbnRFeHRlbnNpb25LZXlzLCBXVEZfQVJSQVlfTEVOR1RIKEludGxDb2xsYXRvckludGVy
bmFsOjpyZWxldmFudEV4dGVuc2lvbktleXMpLCBsb2NhbGVEYXRhKTsKIAogICAgIG1fbG9jYWxl
ID0gcmVzdWx0LmdldCgibG9jYWxlIl9zKTsKICAgICBpZiAobV9sb2NhbGUuaXNFbXB0eSgpKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3Iu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvci5oCmluZGV4IDQ4
YTUzNzE3NjBhZGJlNDc0ODIzMGZkNDk1MGZjZTVkZDZhMmJiYmYuLjhkMzQ5Nzc0NGRkZjczODRh
N2ZlNWY4MjgzMGVjYWM1MjM4OTMwYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxDb2xsYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxDb2xsYXRvci5oCkBAIC02Nyw2ICs2Nyw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBm
aW5pc2hDcmVhdGlvbihWTSYpOwogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxs
KiwgU2xvdFZpc2l0b3ImKTsKIAorICAgIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiBzb3J0TG9jYWxl
RGF0YShjb25zdCBTdHJpbmcmLCBzaXplX3QpOworICAgIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiBz
ZWFyY2hMb2NhbGVEYXRhKGNvbnN0IFN0cmluZyYsIHNpemVfdCk7CisKICAgICBlbnVtIGNsYXNz
IFVzYWdlIDogdWludDhfdCB7IFNvcnQsIFNlYXJjaCB9OwogICAgIGVudW0gY2xhc3MgU2Vuc2l0
aXZpdHkgOiB1aW50OF90IHsgQmFzZSwgQWNjZW50LCBDYXNlLCBWYXJpYW50IH07CiAgICAgZW51
bSBjbGFzcyBDYXNlRmlyc3QgOiB1aW50OF90IHsgVXBwZXIsIExvd2VyLCBGYWxzZSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5j
cHAKaW5kZXggOGYwYmE4MzE3ZjI2M2U0Y2JiMGUwYmVhN2E5NDNiNDc4MzQzNDBjMC4uYjM5OTAz
ZmY3MjMxOGYwZGM2NmI2NGFjYjJhYjc5MGFkMzZlZDMxMiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCkBAIC0zNyw3ICsz
Nyw2IEBACiAjaW5jbHVkZSA8dW5pY29kZS91Y2FsLmg+CiAjaW5jbHVkZSA8dW5pY29kZS91ZGF0
cGcuaD4KICNpbmNsdWRlIDx1bmljb2RlL3VlbnVtLmg+Ci0jaW5jbHVkZSA8dW5pY29kZS91Zmll
bGRwb3NpdGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1
ZGUgPHd0Zi91bmljb2RlL2ljdS9JQ1VIZWxwZXJzLmg+CiAKQEAgLTQ3LDIyICs0NiwxMyBAQCBz
dGF0aWMgY29uc3QgZG91YmxlIG1pbkVDTUFTY3JpcHRUaW1lID0gLTguNjRFMTU7CiAKIGNvbnN0
IENsYXNzSW5mbyBJbnRsRGF0ZVRpbWVGb3JtYXQ6OnNfaW5mbyA9IHsgIk9iamVjdCIsICZCYXNl
OjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSW50bERhdGVU
aW1lRm9ybWF0KSB9OwogCi1uYW1lc3BhY2UgSW50bERURkludGVybmFsIHsKLXN0YXRpYyBjb25z
dCBjaGFyKiBjb25zdCByZWxldmFudEV4dGVuc2lvbktleXNbM10gPSB7ICJjYSIsICJudSIsICJo
YyIgfTsKK25hbWVzcGFjZSBJbnRsRGF0ZVRpbWVGb3JtYXRJbnRlcm5hbCB7Citjb25zdGV4cHIg
Y29uc3QgY2hhciogcmVsZXZhbnRFeHRlbnNpb25LZXlzWzNdID0geyAiY2EiLCAibnUiLCAiaGMi
IH07Citjb25zdGV4cHIgc2l6ZV90IGNhbGVuZGFySW5kZXggPSAwOworY29uc3RleHByIHNpemVf
dCBudW1iZXJpbmdTeXN0ZW1JbmRleCA9IDE7Citjb25zdGV4cHIgc2l6ZV90IGhvdXJDeWNsZUlu
ZGV4ID0gMjsKIH0KIAotc3RhdGljIGNvbnN0IHNpemVfdCBpbmRleE9mRXh0ZW5zaW9uS2V5Q2Eg
PSAwOwotc3RhdGljIGNvbnN0IHNpemVfdCBpbmRleE9mRXh0ZW5zaW9uS2V5TnUgPSAxOwotc3Rh
dGljIGNvbnN0IHNpemVfdCBpbmRleE9mRXh0ZW5zaW9uS2V5SGMgPSAyOwotCi1zdHJ1Y3QgVUZp
ZWxkUG9zaXRpb25JdGVyYXRvckRlbGV0ZXIgewotICAgIHZvaWQgb3BlcmF0b3IoKShVRmllbGRQ
b3NpdGlvbkl0ZXJhdG9yKiBpdGVyYXRvcikgY29uc3QKLSAgICB7Ci0gICAgICAgIGlmIChpdGVy
YXRvcikKLSAgICAgICAgICAgIHVmaWVsZHBvc2l0ZXJfY2xvc2UoaXRlcmF0b3IpOwotICAgIH0K
LX07Ci0KIHZvaWQgSW50bERhdGVUaW1lRm9ybWF0OjpVRGF0ZUZvcm1hdERlbGV0ZXI6Om9wZXJh
dG9yKCkoVURhdGVGb3JtYXQqIGRhdGVGb3JtYXQpIGNvbnN0CiB7CiAgICAgaWYgKGRhdGVGb3Jt
YXQpCkBAIC0xOTQsMTIgKzE4NCwxMSBAQCBzdGF0aWMgU3RyaW5nIGNhbm9uaWNhbGl6ZVRpbWVa
b25lTmFtZShjb25zdCBTdHJpbmcmIHRpbWVab25lTmFtZSkKICAgICByZXR1cm4gY2Fub25pY2Fs
OwogfQogCi1uYW1lc3BhY2UgSW50bERURkludGVybmFsIHsKLXN0YXRpYyBWZWN0b3I8U3RyaW5n
PiBsb2NhbGVEYXRhKGNvbnN0IFN0cmluZyYgbG9jYWxlLCBzaXplX3Qga2V5SW5kZXgpCitWZWN0
b3I8U3RyaW5nPiBJbnRsRGF0ZVRpbWVGb3JtYXQ6OmxvY2FsZURhdGEoY29uc3QgU3RyaW5nJiBs
b2NhbGUsIHNpemVfdCBrZXlJbmRleCkKIHsKICAgICBWZWN0b3I8U3RyaW5nPiBrZXlMb2NhbGVE
YXRhOwogICAgIHN3aXRjaCAoa2V5SW5kZXgpIHsKLSAgICBjYXNlIGluZGV4T2ZFeHRlbnNpb25L
ZXlDYTogeworICAgIGNhc2UgSW50bERhdGVUaW1lRm9ybWF0SW50ZXJuYWw6OmNhbGVuZGFySW5k
ZXg6IHsKICAgICAgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CiAgICAgICAg
IFVFbnVtZXJhdGlvbiogY2FsZW5kYXJzID0gdWNhbF9nZXRLZXl3b3JkVmFsdWVzRm9yTG9jYWxl
KCJjYWxlbmRhciIsIGxvY2FsZS51dGY4KCkuZGF0YSgpLCBmYWxzZSwgJnN0YXR1cyk7CiAgICAg
ICAgIEFTU0VSVChVX1NVQ0NFU1Moc3RhdHVzKSk7CkBAIC0yMjAsMTAgKzIwOSwxMCBAQCBzdGF0
aWMgVmVjdG9yPFN0cmluZz4gbG9jYWxlRGF0YShjb25zdCBTdHJpbmcmIGxvY2FsZSwgc2l6ZV90
IGtleUluZGV4KQogICAgICAgICB1ZW51bV9jbG9zZShjYWxlbmRhcnMpOwogICAgICAgICBicmVh
azsKICAgICB9Ci0gICAgY2FzZSBpbmRleE9mRXh0ZW5zaW9uS2V5TnU6CisgICAgY2FzZSBJbnRs
RGF0ZVRpbWVGb3JtYXRJbnRlcm5hbDo6bnVtYmVyaW5nU3lzdGVtSW5kZXg6CiAgICAgICAgIGtl
eUxvY2FsZURhdGEgPSBudW1iZXJpbmdTeXN0ZW1zRm9yTG9jYWxlKGxvY2FsZSk7CiAgICAgICAg
IGJyZWFrOwotICAgIGNhc2UgaW5kZXhPZkV4dGVuc2lvbktleUhjOgorICAgIGNhc2UgSW50bERh
dGVUaW1lRm9ybWF0SW50ZXJuYWw6OmhvdXJDeWNsZUluZGV4OgogICAgICAgICAvLyBOdWxsIGRl
ZmF1bHQgc28gd2Uga25vdyB0byB1c2UgJ2onIGluIHBhdHRlcm4uCiAgICAgICAgIGtleUxvY2Fs
ZURhdGEuYXBwZW5kKFN0cmluZygpKTsKICAgICAgICAga2V5TG9jYWxlRGF0YS5hcHBlbmQoImgx
MSJfcyk7CkBAIC0zMzMsNyArMzIyLDYgQEAgc3RhdGljIEpTT2JqZWN0KiB0b0RhdGVUaW1lT3B0
aW9uc0FueURhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZQogICAgIC8v
IDkuIFJldHVybiBvcHRpb25zLgogICAgIHJldHVybiBvcHRpb25zOwogfQotfQogCiB2b2lkIElu
dGxEYXRlVGltZUZvcm1hdDo6c2V0Rm9ybWF0c0Zyb21QYXR0ZXJuKGNvbnN0IFN0cmluZ1ZpZXcm
IHBhdHRlcm4pCiB7CkBAIC00NDksNyArNDM3LDcgQEAgdm9pZCBJbnRsRGF0ZVRpbWVGb3JtYXQ6
OmluaXRpYWxpemVEYXRlVGltZUZvcm1hdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAog
ICAgIFZlY3RvcjxTdHJpbmc+IHJlcXVlc3RlZExvY2FsZXMgPSBjYW5vbmljYWxpemVMb2NhbGVM
aXN0KGdsb2JhbE9iamVjdCwgbG9jYWxlcyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgdm9pZCgpKTsKIAotICAgIEpTT2JqZWN0KiBvcHRpb25zID0gSW50bERURkludGVybmFsOjp0
b0RhdGVUaW1lT3B0aW9uc0FueURhdGUoZ2xvYmFsT2JqZWN0LCBvcmlnaW5hbE9wdGlvbnMpOwor
ICAgIEpTT2JqZWN0KiBvcHRpb25zID0gdG9EYXRlVGltZU9wdGlvbnNBbnlEYXRlKGdsb2JhbE9i
amVjdCwgb3JpZ2luYWxPcHRpb25zKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2
b2lkKCkpOwogCiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gb3B0OwpAQCAtNDkzLDcgKzQ4
MSw3IEBAIHZvaWQgSW50bERhdGVUaW1lRm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICAgICAgb3B0LmFkZCgiaGMiX3MsIFN0
cmluZygpKTsKIAogICAgIGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYgYXZhaWxhYmxlTG9jYWxlcyA9
IGludGxEYXRlVGltZUZvcm1hdEF2YWlsYWJsZUxvY2FsZXMoKTsKLSAgICBIYXNoTWFwPFN0cmlu
ZywgU3RyaW5nPiByZXNvbHZlZCA9IHJlc29sdmVMb2NhbGUoZ2xvYmFsT2JqZWN0LCBhdmFpbGFi
bGVMb2NhbGVzLCByZXF1ZXN0ZWRMb2NhbGVzLCBvcHQsIEludGxEVEZJbnRlcm5hbDo6cmVsZXZh
bnRFeHRlbnNpb25LZXlzLCBXVEZfQVJSQVlfTEVOR1RIKEludGxEVEZJbnRlcm5hbDo6cmVsZXZh
bnRFeHRlbnNpb25LZXlzKSwgSW50bERURkludGVybmFsOjpsb2NhbGVEYXRhKTsKKyAgICBIYXNo
TWFwPFN0cmluZywgU3RyaW5nPiByZXNvbHZlZCA9IHJlc29sdmVMb2NhbGUoZ2xvYmFsT2JqZWN0
LCBhdmFpbGFibGVMb2NhbGVzLCByZXF1ZXN0ZWRMb2NhbGVzLCBvcHQsIEludGxEYXRlVGltZUZv
cm1hdEludGVybmFsOjpyZWxldmFudEV4dGVuc2lvbktleXMsIFdURl9BUlJBWV9MRU5HVEgoSW50
bERhdGVUaW1lRm9ybWF0SW50ZXJuYWw6OnJlbGV2YW50RXh0ZW5zaW9uS2V5cyksIGxvY2FsZURh
dGEpOwogCiAgICAgbV9sb2NhbGUgPSByZXNvbHZlZC5nZXQodm0ucHJvcGVydHlOYW1lcy0+bG9j
YWxlLnN0cmluZygpKTsKICAgICBpZiAobV9sb2NhbGUuaXNFbXB0eSgpKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5oCmluZGV4IGU1
Yzk0ZTlkMzA3Mjc0MTM0Mzc3MzRmZjk5MzVlZjk5M2E5ZDdjZDIuLmJkOTQzODc4OGFiNWMwNzE5
YjAzODY1YmYzNTZiMzFkYjYxMWZkMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5oCkBAIC02Nyw2ICs2Nyw4IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOwogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hp
bGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAorICAgIHN0YXRpYyBWZWN0b3I8U3RyaW5n
PiBsb2NhbGVEYXRhKGNvbnN0IFN0cmluZyYsIHNpemVfdCk7CisKICAgICBlbnVtIGNsYXNzIFdl
ZWtkYXkgOiB1aW50OF90IHsgTm9uZSwgTmFycm93LCBTaG9ydCwgTG9uZyB9OwogICAgIGVudW0g
Y2xhc3MgRXJhIDogdWludDhfdCB7IE5vbmUsIE5hcnJvdywgU2hvcnQsIExvbmcgfTsKICAgICBl
bnVtIGNsYXNzIFllYXIgOiB1aW50OF90IHsgTm9uZSwgVHdvRGlnaXQsIE51bWVyaWMgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdC5jcHAK
aW5kZXggNDVmMzM3OTEyYmRiYTMyODNkNDQwYWMwY2FmYjA1ZWJkMjA0NDFmNi4uNjBjZTEyOGNh
YTljMmQ4NmNlMWEyMjZmZDM5YWI3YmMyMTg4ZGNiMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdC5jcHAKQEAgLTM2LDIyICszNiwxNSBA
QAogI2luY2x1ZGUgIkpTQm91bmRGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIK
ICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgotI2luY2x1ZGUgPHVuaWNvZGUvdWZpZWxk
cG9zaXRlci5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL2ljdS9JQ1VIZWxwZXJzLmg+CiAKIG5h
bWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gSW50bE51bWJlckZvcm1hdDo6c19pbmZv
ID0geyAiT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01F
VEhPRF9UQUJMRShJbnRsTnVtYmVyRm9ybWF0KSB9OwogCi1zdGF0aWMgY29uc3QgY2hhciogY29u
c3QgcmVsZXZhbnROdW1iZXJFeHRlbnNpb25LZXlzWzFdID0geyAibnUiIH07Ci0KLXN0cnVjdCBV
RmllbGRQb3NpdGlvbkl0ZXJhdG9yRGVsZXRlciB7Ci0gICAgdm9pZCBvcGVyYXRvcigpKFVGaWVs
ZFBvc2l0aW9uSXRlcmF0b3IqIGl0ZXJhdG9yKSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKGl0
ZXJhdG9yKQotICAgICAgICAgICAgdWZpZWxkcG9zaXRlcl9jbG9zZShpdGVyYXRvcik7Ci0gICAg
fQotfTsKK25hbWVzcGFjZSBJbnRsTnVtYmVyRm9ybWF0SW50ZXJuYWwgeworY29uc3RleHByIGNv
bnN0IGNoYXIqIHJlbGV2YW50RXh0ZW5zaW9uS2V5c1sxXSA9IHsgIm51IiB9OworfQogCiBzdHJ1
Y3QgSW50bE51bWJlckZvcm1hdEZpZWxkIHsKICAgICBpbnQzMl90IHR5cGU7CkBAIC05NywxNCAr
OTAsMTIgQEAgdm9pZCBJbnRsTnVtYmVyRm9ybWF0Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2Vs
bCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+
bV9ib3VuZEZvcm1hdCk7CiB9CiAKLW5hbWVzcGFjZSBJbnRsTkZJbnRlcm5hbCB7Ci1zdGF0aWMg
VmVjdG9yPFN0cmluZz4gbG9jYWxlRGF0YShjb25zdCBTdHJpbmcmIGxvY2FsZSwgc2l6ZV90IGtl
eUluZGV4KQorVmVjdG9yPFN0cmluZz4gSW50bE51bWJlckZvcm1hdDo6bG9jYWxlRGF0YShjb25z
dCBTdHJpbmcmIGxvY2FsZSwgc2l6ZV90IGtleUluZGV4KQogewogICAgIC8vIDkuMSBJbnRlcm5h
bCBzbG90cyBvZiBTZXJ2aWNlIENvbnN0cnVjdG9ycyAmIDExLjIuMyBJbnRlcm5hbCBzbG90cyAo
RUNNQS00MDIgMi4wKQogICAgIEFTU0VSVF9VTlVTRUQoa2V5SW5kZXgsICFrZXlJbmRleCk7IC8v
IFRoZSBpbmRleCBvZiB0aGUgZXh0ZW5zaW9uIGtleSAibnUiIGluIHJlbGV2YW50RXh0ZW5zaW9u
S2V5cyBpcyAwLgogICAgIHJldHVybiBudW1iZXJpbmdTeXN0ZW1zRm9yTG9jYWxlKGxvY2FsZSk7
CiB9Ci19CiAKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgY29tcHV0ZUN1cnJlbmN5U29ydEtleShj
b25zdCBTdHJpbmcmIGN1cnJlbmN5KQogewpAQCAtMTk4LDcgKzE4OSw3IEBAIHZvaWQgSW50bE51
bWJlckZvcm1hdDo6aW5pdGlhbGl6ZU51bWJlckZvcm1hdChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhCiAgICAgfQogCiAgICAgYXV0byYgYXZhaWxhYmxlTG9jYWxlcyA9IGludGxO
dW1iZXJGb3JtYXRBdmFpbGFibGVMb2NhbGVzKCk7Ci0gICAgYXV0byByZXN1bHQgPSByZXNvbHZl
TG9jYWxlKGdsb2JhbE9iamVjdCwgYXZhaWxhYmxlTG9jYWxlcywgcmVxdWVzdGVkTG9jYWxlcywg
b3B0LCByZWxldmFudE51bWJlckV4dGVuc2lvbktleXMsIFdURl9BUlJBWV9MRU5HVEgocmVsZXZh
bnROdW1iZXJFeHRlbnNpb25LZXlzKSwgSW50bE5GSW50ZXJuYWw6OmxvY2FsZURhdGEpOworICAg
IGF1dG8gcmVzdWx0ID0gcmVzb2x2ZUxvY2FsZShnbG9iYWxPYmplY3QsIGF2YWlsYWJsZUxvY2Fs
ZXMsIHJlcXVlc3RlZExvY2FsZXMsIG9wdCwgSW50bE51bWJlckZvcm1hdEludGVybmFsOjpyZWxl
dmFudEV4dGVuc2lvbktleXMsIFdURl9BUlJBWV9MRU5HVEgoSW50bE51bWJlckZvcm1hdEludGVy
bmFsOjpyZWxldmFudEV4dGVuc2lvbktleXMpLCBsb2NhbGVEYXRhKTsKIAogICAgIG1fbG9jYWxl
ID0gcmVzdWx0LmdldCgibG9jYWxlIl9zKTsKICAgICBpZiAobV9sb2NhbGUuaXNFbXB0eSgpKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9y
bWF0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0LmgK
aW5kZXggZjVjNjJhZDc2OGNlODNkNjQyZTZhZmQxYmZlMDRlNmFmZGFmYjNiYi4uZTVhYWViNDJl
ZDkxMTdkOWY5MmJjMjM0YWYyNzEzYzk1YzM3MWM2NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXQuaApAQCAtNzEsNiArNzEsOCBAQCBwcml2
YXRlOgogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mKTsKICAgICBzdGF0aWMgdm9pZCB2aXNp
dENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAKKyAgICBzdGF0aWMgVmVjdG9yPFN0
cmluZz4gbG9jYWxlRGF0YShjb25zdCBTdHJpbmcmLCBzaXplX3QpOworCiAgICAgZW51bSBjbGFz
cyBTdHlsZSA6IHVpbnQ4X3QgeyBEZWNpbWFsLCBQZXJjZW50LCBDdXJyZW5jeSB9OwogICAgIGVu
dW0gY2xhc3MgQ3VycmVuY3lEaXNwbGF5IDogdWludDhfdCB7IENvZGUsIFN5bWJvbCwgTmFtZSB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCmluZGV4
IGRhYjM3ZTdlYzdjMTljYmU0Y2E1NmRkMDJlZmZlNTE4YmMzODJiZjYuLjg4ZjE5NzBhZDA0YzI3
OTg1MjRlMDI1YTRhNTE5Y2QxZjE3NmFhNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxPYmplY3QuY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiT2JqZWN0
UHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgPHVuaWNvZGUvdWNv
bC5oPgorI2luY2x1ZGUgPHVuaWNvZGUvdWZpZWxkcG9zaXRlci5oPgogI2luY2x1ZGUgPHVuaWNv
ZGUvdWxvYy5oPgogI2luY2x1ZGUgPHVuaWNvZGUvdW51bXN5cy5oPgogI2luY2x1ZGUgPHd0Zi9B
c3NlcnRpb25zLmg+CkBAIC0xMTQsNiArMTE1LDEyIEBAIHN0cnVjdCBNYXRjaGVyUmVzdWx0IHsK
IAogY29uc3QgQ2xhc3NJbmZvIEludGxPYmplY3Q6OnNfaW5mbyA9IHsgIk9iamVjdCIsICZCYXNl
OjpzX2luZm8sICZpbnRsT2JqZWN0VGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
SW50bE9iamVjdCkgfTsKIAordm9pZCBVRmllbGRQb3NpdGlvbkl0ZXJhdG9yRGVsZXRlcjo6b3Bl
cmF0b3IoKShVRmllbGRQb3NpdGlvbkl0ZXJhdG9yKiBpdGVyYXRvcikgY29uc3QKK3sKKyAgICBp
ZiAoaXRlcmF0b3IpCisgICAgICAgIHVmaWVsZHBvc2l0ZXJfY2xvc2UoaXRlcmF0b3IpOworfQor
CiBJbnRsT2JqZWN0OjpJbnRsT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAg
ICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsT2JqZWN0LmgKaW5kZXggNmFmNmY3MzlmZDNjOWMyYmJiMzcxZDZjMGJjMzYyMzU5YWFi
YjE4YS4uZjExMjJmNDEzOWMxYTgzZjQ1ZjE5ZDIwZDliMmY4MTcwMTAyOGYwZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuaApAQCAtMzAsNiArMzAsOCBAQAog
I2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKIAor
c3RydWN0IFVGaWVsZFBvc2l0aW9uSXRlcmF0b3I7CisKIG5hbWVzcGFjZSBKU0MgewogCiBjbGFz
cyBJbnRsT2JqZWN0IGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewpAQCAtNzUsNCAr
NzcsOCBAQCBWZWN0b3I8U3RyaW5nPiBudW1iZXJpbmdTeXN0ZW1zRm9yTG9jYWxlKGNvbnN0IFN0
cmluZyYgbG9jYWxlKTsKIAogYm9vbCBpc1VuaWNvZGVMb2NhbGVJZGVudGlmaWVyVHlwZShTdHJp
bmdWaWV3KTsKIAorc3RydWN0IFVGaWVsZFBvc2l0aW9uSXRlcmF0b3JEZWxldGVyIHsKKyAgICB2
b2lkIG9wZXJhdG9yKCkoVUZpZWxkUG9zaXRpb25JdGVyYXRvciopIGNvbnN0OworfTsKKwogfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsUGx1cmFsUnVsZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bFBsdXJhbFJ1bGVzLmNwcAppbmRleCBiMmYxOTE4ODY0YzQxNjgxOTBlYWJhYTkxMWY4ZTVlZTc2
ZTA4MmRkLi43OTk0ZjcxN2I0ZjdjNjA1YmQ0YWUwY2IzM2E0MGFhYTgyYWVkMTMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUGx1cmFsUnVsZXMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxQbHVyYWxSdWxlcy5jcHAKQEAg
LTg4LDcgKzg4LDcgQEAgdm9pZCBJbnRsUGx1cmFsUnVsZXM6OnZpc2l0Q2hpbGRyZW4oSlNDZWxs
KiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHRo
aXNPYmplY3QsIHZpc2l0b3IpOwogfQogCi1zdGF0aWMgVmVjdG9yPFN0cmluZz4gbG9jYWxlRGF0
YShjb25zdCBTdHJpbmcmLCBzaXplX3QpCitWZWN0b3I8U3RyaW5nPiBJbnRsUGx1cmFsUnVsZXM6
OmxvY2FsZURhdGEoY29uc3QgU3RyaW5nJiwgc2l6ZV90KQogewogICAgIHJldHVybiB7IH07CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUGx1cmFsUnVs
ZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxQbHVyYWxSdWxlcy5oCmlu
ZGV4IDcwOGQ3OWJkMTI5Yzc5ZjUxNTdlZTQxMTU3MWI3ZjA2NjJmMzAyNmMuLmNiNjZlOTQyNGUy
ZDYzMjA3NDYzYTMyNjE2ZDU5ZDBhM2RiOTk2MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxQbHVyYWxSdWxlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxQbHVyYWxSdWxlcy5oCkBAIC02Miw2ICs2Miw4IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOwogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hp
bGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAorICAgIHN0YXRpYyBWZWN0b3I8U3RyaW5n
PiBsb2NhbGVEYXRhKGNvbnN0IFN0cmluZyYsIHNpemVfdCk7CisKICAgICBzdHJ1Y3QgVVBsdXJh
bFJ1bGVzRGVsZXRlciB7CiAgICAgICAgIHZvaWQgb3BlcmF0b3IoKShVUGx1cmFsUnVsZXMqKSBj
b25zdDsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bFJlbGF0aXZlVGltZUZvcm1hdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsUmVsYXRpdmVUaW1lRm9ybWF0LmNwcAppbmRleCA3MTQwZWZhZTJmMjQ5MGU4YjAyYmU1
ZmVjNDYzZTVmNDQ2YWQ2ZmFmLi4wYjQwYzIxOTc4YjdmYjVhNGI3MDU0YWFjMTFlOTc1ODIzMGYy
OWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUmVsYXRp
dmVUaW1lRm9ybWF0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
UmVsYXRpdmVUaW1lRm9ybWF0LmNwcApAQCAtMzcsMTUgKzM3LDkgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKIGNvbnN0IENsYXNzSW5mbyBJbnRsUmVsYXRpdmVUaW1lRm9ybWF0OjpzX2luZm8gPSB7ICJP
YmplY3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RB
QkxFKEludGxSZWxhdGl2ZVRpbWVGb3JtYXQpIH07CiAKK25hbWVzcGFjZSBJbnRsUmVsYXRpdmVU
aW1lRm9ybWF0SW50ZXJuYWwgewogY29uc3RleHByIGNvbnN0IGNoYXIqIHJlbGV2YW50RXh0ZW5z
aW9uS2V5c1sxXSA9IHsgIm51IiB9OwotCi1zdHJ1Y3QgVUZpZWxkUG9zaXRpb25JdGVyYXRvckRl
bGV0ZXIgewotICAgIHZvaWQgb3BlcmF0b3IoKShVRmllbGRQb3NpdGlvbkl0ZXJhdG9yKiBpdGVy
YXRvcikgY29uc3QKLSAgICB7Ci0gICAgICAgIGlmIChpdGVyYXRvcikKLSAgICAgICAgICAgIHVm
aWVsZHBvc2l0ZXJfY2xvc2UoaXRlcmF0b3IpOwotICAgIH0KLX07Cit9CiAKIHZvaWQgSW50bFJl
bGF0aXZlVGltZUZvcm1hdDo6VVJlbGF0aXZlRGF0ZVRpbWVGb3JtYXR0ZXJEZWxldGVyOjpvcGVy
YXRvcigpKFVSZWxhdGl2ZURhdGVUaW1lRm9ybWF0dGVyKiByZWxhdGl2ZURhdGVUaW1lRm9ybWF0
dGVyKSBjb25zdAogewpAQCAtOTAsNyArODQsNyBAQCB2b2lkIEludGxSZWxhdGl2ZVRpbWVGb3Jt
YXQ6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAg
ICBCYXNlOjp2aXNpdENoaWxkcmVuKHRoaXNPYmplY3QsIHZpc2l0b3IpOwogfQogCi1zdGF0aWMg
VmVjdG9yPFN0cmluZz4gbG9jYWxlRGF0YShjb25zdCBTdHJpbmcmIGxvY2FsZSwgc2l6ZV90IGtl
eUluZGV4KQorVmVjdG9yPFN0cmluZz4gSW50bFJlbGF0aXZlVGltZUZvcm1hdDo6bG9jYWxlRGF0
YShjb25zdCBTdHJpbmcmIGxvY2FsZSwgc2l6ZV90IGtleUluZGV4KQogewogICAgIC8vIFRoZSBp
bmRleCBvZiB0aGUgZXh0ZW5zaW9uIGtleSAibnUiIGluIHJlbGV2YW50RXh0ZW5zaW9uS2V5cyBp
cyAwLgogICAgIEFTU0VSVF9VTlVTRUQoa2V5SW5kZXgsICFrZXlJbmRleCk7CkBAIC0xMzAsNyAr
MTI0LDcgQEAgdm9pZCBJbnRsUmVsYXRpdmVUaW1lRm9ybWF0Ojppbml0aWFsaXplUmVsYXRpdmVU
aW1lRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICB9CiAKICAgICBjb25zdCBIYXNo
U2V0PFN0cmluZz4mIGF2YWlsYWJsZUxvY2FsZXMgPSBpbnRsUmVsYXRpdmVUaW1lRm9ybWF0QXZh
aWxhYmxlTG9jYWxlcygpOwotICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHJlc29sdmVkID0g
cmVzb2x2ZUxvY2FsZShnbG9iYWxPYmplY3QsIGF2YWlsYWJsZUxvY2FsZXMsIHJlcXVlc3RlZExv
Y2FsZXMsIG9wdCwgcmVsZXZhbnRFeHRlbnNpb25LZXlzLCBXVEZfQVJSQVlfTEVOR1RIKHJlbGV2
YW50RXh0ZW5zaW9uS2V5cyksIGxvY2FsZURhdGEpOworICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJp
bmc+IHJlc29sdmVkID0gcmVzb2x2ZUxvY2FsZShnbG9iYWxPYmplY3QsIGF2YWlsYWJsZUxvY2Fs
ZXMsIHJlcXVlc3RlZExvY2FsZXMsIG9wdCwgSW50bFJlbGF0aXZlVGltZUZvcm1hdEludGVybmFs
OjpyZWxldmFudEV4dGVuc2lvbktleXMsIFdURl9BUlJBWV9MRU5HVEgoSW50bFJlbGF0aXZlVGlt
ZUZvcm1hdEludGVybmFsOjpyZWxldmFudEV4dGVuc2lvbktleXMpLCBsb2NhbGVEYXRhKTsKICAg
ICBtX2xvY2FsZSA9IHJlc29sdmVkLmdldCh2bS5wcm9wZXJ0eU5hbWVzLT5sb2NhbGUuc3RyaW5n
KCkpOwogICAgIGlmIChtX2xvY2FsZS5pc0VtcHR5KCkpIHsKICAgICAgICAgdGhyb3dUeXBlRXJy
b3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBpbml0aWFsaXplIFJlbGF0aXZlVGlt
ZUZvcm1hdCBkdWUgdG8gaW52YWxpZCBsb2NhbGUiX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdC5oCmluZGV4IGU3MjE5
MzBhYzkxOTRmYWRmNGM4MjNmMjcxMTNiMDdiNDA3ZjNlMmEuLmUxNDA1Y2ZjYTMyNzAyOWQ1OGI1
NDkzNTJmOGM1ZmE2MjBiZDFmZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsUmVsYXRpdmVUaW1lRm9ybWF0LmgKQEAgLTI2LDcgKzI2LDYgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKLSNpbmNsdWRlIDx1bmljb2RlL3Vm
aWVsZHBvc2l0ZXIuaD4KICNpbmNsdWRlIDx1bmljb2RlL3VyZWxkYXRlZm10Lmg+CiAKIG5hbWVz
cGFjZSBKU0MgewpAQCAtNjMsNiArNjIsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oVk0mKTsKICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RW
aXNpdG9yJik7CiAKKyAgICBzdGF0aWMgVmVjdG9yPFN0cmluZz4gbG9jYWxlRGF0YShjb25zdCBT
dHJpbmcmLCBzaXplX3QpOworCiAgICAgU3RyaW5nIGZvcm1hdEludGVybmFsKEpTR2xvYmFsT2Jq
ZWN0KiwgZG91YmxlLCBTdHJpbmdWaWV3IHVuaXQpOwogCiAgICAgc3RydWN0IFVSZWxhdGl2ZURh
dGVUaW1lRm9ybWF0dGVyRGVsZXRlciB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>