<?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>184145</bug_id>
          
          <creation_ts>2018-03-29 12:12:29 -0700</creation_ts>
          <short_desc>Move PingHandle to WebKitLegacy</short_desc>
          <delta_ts>2018-04-04 15:29:15 -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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1410343</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-03-29 12:12:29 -0700</bug_when>
    <thetext>Move PingHandle to WebKitLegacy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410344</commentid>
    <comment_count>1</comment_count>
      <attachid>336792</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-03-29 12:15:30 -0700</bug_when>
    <thetext>Created attachment 336792
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410353</commentid>
    <comment_count>2</comment_count>
      <attachid>336796</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-03-29 13:03:12 -0700</bug_when>
    <thetext>Created attachment 336796
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411907</commentid>
    <comment_count>3</comment_count>
      <attachid>336796</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-04-04 15:22:03 -0700</bug_when>
    <thetext>Comment on attachment 336796
Patch

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

&gt; Source/WebKitLegacy/WebCoreSupport/PingHandle.h:-33
&gt; -namespace WebCore {

Shouldn&apos;t it be in namespace WebKit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411909</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-04-04 15:26:48 -0700</bug_when>
    <thetext>Most of WebKitLegacy is just in the global namespace.  namespace WebKit usually means modern WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411910</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-04-04 15:28:38 -0700</bug_when>
    <thetext>http://trac.webkit.org/r230279</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411911</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-04 15:29:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/39190530&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336792</attachid>
            <date>2018-03-29 12:15:30 -0700</date>
            <delta_ts>2018-03-29 13:03:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184145-20180329121530.patch</filename>
            <type>text/plain</type>
            <size>29087</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzMDA3NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE4LTAzLTI5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBQaW5n
SGFuZGxlIHRvIFdlYktpdExlZ2FjeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTg0MTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9QaW5nSGFuZGxlLmg6IFJlbW92ZWQuCisKIDIwMTgtMDMt
MjkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEcm9wIERPTVdp
bmRvdzo6ZnJhbWVzKCkgLyBET01XaW5kb3c6OndpbmRvdygpIG1ldGhvZHMKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlz
aW9uIDIzMDA3NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTQ2OCw3ICsxNDY4LDYgQEAKIAkJNTFBOUQ5RUEx
OTVCOTMxRjAwMUIyQjVDIC8qIEdhbWVwYWRNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUE5RDlFODE5NUI5MzFGMDAxQjJCNUMgLyogR2Ft
ZXBhZE1hbmFnZXIuaCAqLzsgfTsKIAkJNTFBQkFFMUUxMDNDMTkxMzAwOEM1MjYwIC8qIFNvY2tl
dFN0cmVhbUhhbmRsZUltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxQUJBRTFDMTAzQzE5MTMwMDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVJ
bXBsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTFBRjUwMzYxNkYxMDBGNjAwOTVCMkU4IC8qIFJlc291cmNlTG9hZGVyVHlwZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQUY1MDM1MTZGMTAwRjYw
MDk1QjJFOCAvKiBSZXNvdXJjZUxvYWRlclR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNTFCNDU0RUExQjREQUU3RDAwODVFQUE2IC8qIFBp
bmdIYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxQjQ1NEU5MUI0REFFN0QwMDg1RUFBNiAvKiBQaW5nSGFuZGxlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTFCNDVEMjExQUI4RDFFMjAwMTE3
Q0QyIC8qIENvbnRlbnRFeHRlbnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxQjQ1RDFGMUFCOEQxRTIwMDExN0NEMiAvKiBDb250ZW50RXh0ZW5z
aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTFCOTE0MTAxRkQyNzgyRDAwRUUyODU5IC8qIFJlZ2lzdHJhdGlvbkRhdGFiYXNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUI5MTQwQzFGRDI3ODI1
MDBFRTI4NTkgLyogUmVnaXN0cmF0aW9uRGF0YWJhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUI5MTQxMTFGRDI3ODJEMDBFRTI4NTkgLyog
UmVnaXN0cmF0aW9uU3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxQjkxNDBCMUZEMjc4MjUwMEVFMjg1OSAvKiBSZWdpc3RyYXRpb25TdG9yZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC03OTUw
LDcgKzc5NDksNiBAQAogCQk1MUFCRjY0QzE2MzkyRTI4MDAxMzJBN0EgLyogTG9hZGVyU3RyYXRl
Z3kuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9hZGVyU3RyYXRl
Z3kuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUFGNTAzNTE2RjEwMEY2MDA5
NUIyRTggLyogUmVzb3VyY2VMb2FkZXJUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZXNvdXJjZUxvYWRlclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxQjI0MTdBMEQ5MzFGM0YwMEU4M0Y1QyAvKiBMZWdhY3lXZWJBcmNoaXZlTWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTGVnYWN5V2ViQXJjaGl2ZU1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFCNDU0RTkxQjREQUU3RDAwODVF
QUE2IC8qIFBpbmdIYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGlu
Z0hhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUI0NUQxRTFBQjhEMUUy
MDAxMTdDRDIgLyogQ29udGVudEV4dGVuc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDb250ZW50RXh0ZW5zaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTFCNDVEMUYxQUI4RDFFMjAwMTE3Q0QyIC8qIENvbnRlbnRFeHRlbnNpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGVudEV4dGVuc2lvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUI5MTQwQjFGRDI3ODI1MDBFRTI4NTkgLyogUmVn
aXN0cmF0aW9uU3RvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVnaXN0
cmF0aW9uU3RvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NzkwLDcgKzE4
Nzg4LDYgQEAKIAkJCQlDRENENDFFNjFDM0REQjA5MDA5NjVEOTkgLyogUGFyc2VkQ29udGVudFJh
bmdlLmggKi8sCiAJCQkJNDQ3OTU4MDIxNjQzQjQ3QjAwMUUwQTdGIC8qIFBhcnNlZENvbnRlbnRU
eXBlLmNwcCAqLywKIAkJCQk0NDc5NTgwMzE2NDNCNDdCMDAxRTBBN0YgLyogUGFyc2VkQ29udGVu
dFR5cGUuaCAqLywKLQkJCQk1MUI0NTRFOTFCNERBRTdEMDA4NUVBQTYgLyogUGluZ0hhbmRsZS5o
ICovLAogCQkJCUUxNDI0Qzg5MTY0QjNCNEUwMEYzMkQ0MCAvKiBQbGF0Zm9ybUNvb2tpZUphci5o
ICovLAogCQkJCTM3QkFBRTU3MTk4MEQxREQwMDVERkU3MSAvKiBQcm90ZWN0aW9uU3BhY2UuaCAq
LywKIAkJCQk1MTRDNzY1RjBDRTkyM0ExMDA3RUYzQ0QgLyogUHJvdGVjdGlvblNwYWNlQmFzZS5j
cHAgKi8sCkBAIC0yOTMwMyw3ICsyOTMwMCw2IEBACiAJCQkJQTU1NEI1RjMxRTM4MzkzQTAwMUQ0
RTAzIC8qIFBlcmZvcm1hbmNlVXNlclRpbWluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ1ODFG
QjUxNTIwRjkzQjAwM0E3QTc1IC8qIFBlcmlvZGljV2F2ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDlENURDMkUwRjQyM0E3MzAwOEYyMEZEIC8qIFBlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9u
LmggaW4gSGVhZGVycyAqLywKLQkJCQk1MUI0NTRFQTFCNERBRTdEMDA4NUVBQTYgLyogUGluZ0hh
bmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDBGRjJBNUUxMUY4QzQ1QTAwN0U3NEUwIC8qIFBp
bmdMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEN0QzMzQ0MUM3QTEyM0YwMDA0MTI5MyAv
KiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREVGQTIyODFF
NzY2OUU4MDAwQUU5OUMgLyogUGxhdGZvcm1BdWRpb0RhdGEuaCBpbiBIZWFkZXJzICovLApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9QaW5nSGFuZGxlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9QaW5nSGFuZGxlLmgJKHJldmlz
aW9uIDIzMDA3NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUGluZ0hhbmRs
ZS5oCShub25leGlzdGVudCkKQEAgLTEsMTEzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIlJlc291
cmNlSGFuZGxlLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDbGllbnQuaCIKLSNpbmNsdWRl
ICJUaW1lci5oIgotI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLS8vIFRoaXMgY2xhc3MgdHJpZ2dlcnMgYXN5bmNocm9ub3VzIGxvYWRz
IGluZGVwZW5kZW50IG9mIHRoZSBuZXR3b3JraW5nIGNvbnRleHQgc3RheWluZyBhbGl2ZSAoaS5l
LiwgYXVkaXRpbmcgcGluZ2JhY2tzKS4KLS8vIFRoZSBvYmplY3QganVzdCBuZWVkcyB0byBsaXZl
IGxvbmcgZW5vdWdoIHRvIGVuc3VyZSB0aGUgbWVzc2FnZSB3YXMgYWN0dWFsbHkgc2VudC4KLS8v
IEFzIHNvb24gYXMgYW55IGNhbGxiYWNrIGlzIHJlY2VpdmVkIGZyb20gdGhlIFJlc291cmNlSGFu
ZGxlLCB0aGlzIGNsYXNzIHdpbGwgY2FuY2VsIHRoZSBsb2FkIGFuZCBkZWxldGUgaXRzZWxmLgot
Ci1jbGFzcyBQaW5nSGFuZGxlIGZpbmFsIDogcHJpdmF0ZSBSZXNvdXJjZUhhbmRsZUNsaWVudCB7
Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGluZ0hhbmRsZSk7IFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwotcHVibGljOgotICAgIFBpbmdIYW5kbGUoTmV0d29ya2luZ0NvbnRleHQqIG5ldHdv
cmtpbmdDb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgc2hvdWxk
VXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkRm9sbG93UmVkaXJlY3RzLCBXVEY6OkNv
bXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVzb3VyY2VFcnJvciYsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLSAgICAgICAgOiBtX2N1cnJlbnRSZXF1
ZXN0KHJlcXVlc3QpCi0gICAgICAgICwgbV90aW1lb3V0VGltZXIoKnRoaXMsICZQaW5nSGFuZGxl
Ojp0aW1lb3V0VGltZXJGaXJlZCkKLSAgICAgICAgLCBtX3Nob3VsZFVzZUNyZWRlbnRpYWxTdG9y
YWdlKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKQotICAgICAgICAsIG1fc2hvdWxkRm9sbG93
UmVkaXJlY3RzKHNob3VsZEZvbGxvd1JlZGlyZWN0cykKLSAgICAgICAgLCBtX2NvbXBsZXRpb25I
YW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQotICAgIHsKLSAgICAgICAgYm9vbCBk
ZWZlcnNMb2FkaW5nID0gZmFsc2U7Ci0gICAgICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmID0g
ZmFsc2U7Ci0gICAgICAgIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYgPSB0cnVlOwot
ICAgICAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobmV0d29ya2luZ0NvbnRl
eHQsIHJlcXVlc3QsIHRoaXMsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZiwgc2hv
dWxkQ29udGVudEVuY29kaW5nU25pZmYpOwotCi0gICAgICAgIC8vIElmIHRoZSBzZXJ2ZXIgbmV2
ZXIgcmVzcG9uZHMsIHRoaXMgb2JqZWN0IHdpbGwgaGFuZyBhcm91bmQgZm9yZXZlci4KLSAgICAg
ICAgLy8gU2V0IGEgdmVyeSBnZW5lcm91cyB0aW1lb3V0LCBqdXN0IGluIGNhc2UuCi0gICAgICAg
IG1fdGltZW91dFRpbWVyLnN0YXJ0T25lU2hvdCg2MDAwMF9zKTsKLSAgICB9Ci0KLXByaXZhdGU6
Ci0gICAgdm9pZCB3aWxsU2VuZFJlcXVlc3RBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNl
UmVxdWVzdCYmIHJlcXVlc3QsIFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCi0gICAg
ewotICAgICAgICBtX2N1cnJlbnRSZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KTsKLSAgICAgICAg
aWYgKG1fc2hvdWxkRm9sbG93UmVkaXJlY3RzKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihSZXNvdXJjZVJlcXVlc3QgeyBtX2N1cnJlbnRSZXF1ZXN0IH0pOwotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7Ci0gICAg
ICAgIHBpbmdMb2FkQ29tcGxldGUoUmVzb3VyY2VFcnJvciB7IFN0cmluZygpLCAwLCBtX2N1cnJl
bnRSZXF1ZXN0LnVybCgpLCBBU0NJSUxpdGVyYWwoIk5vdCBhbGxvd2VkIHRvIGZvbGxvdyByZWRp
cmVjdHMiKSwgUmVzb3VyY2VFcnJvcjo6VHlwZTo6QWNjZXNzQ29udHJvbCB9KTsKLSAgICB9Ci0g
ICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNl
UmVzcG9uc2UmJiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKSBmaW5hbAotICAgIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAg
ICAgICAgcGluZ0xvYWRDb21wbGV0ZSh7IH0sIHJlc3BvbnNlKTsKLSAgICB9Ci0gICAgdm9pZCBk
aWRSZWNlaXZlQnVmZmVyKFJlc291cmNlSGFuZGxlKiwgUmVmPFNoYXJlZEJ1ZmZlcj4mJiwgaW50
KSBmaW5hbCB7IHBpbmdMb2FkQ29tcGxldGUoKTsgfQotICAgIHZvaWQgZGlkRmluaXNoTG9hZGlu
ZyhSZXNvdXJjZUhhbmRsZSopIGZpbmFsIHsgcGluZ0xvYWRDb21wbGV0ZSgpOyB9Ci0gICAgdm9p
ZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpIGZp
bmFsIHsgcGluZ0xvYWRDb21wbGV0ZShlcnJvcik7IH0KLSAgICBib29sIHNob3VsZFVzZUNyZWRl
bnRpYWxTdG9yYWdlKFJlc291cmNlSGFuZGxlKikgZmluYWwgeyByZXR1cm4gbV9zaG91bGRVc2VD
cmVkZW50aWFsU3RvcmFnZTsgfQotICAgIHZvaWQgdGltZW91dFRpbWVyRmlyZWQoKSB7IHBpbmdM
b2FkQ29tcGxldGUoUmVzb3VyY2VFcnJvciB7IFN0cmluZygpLCAwLCBtX2N1cnJlbnRSZXF1ZXN0
LnVybCgpLCBBU0NJSUxpdGVyYWwoIkxvYWQgdGltZWQgb3V0IiksIFJlc291cmNlRXJyb3I6OlR5
cGU6OlRpbWVvdXQgfSk7IH0KLSNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNL
KQotICAgIHZvaWQgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZUFzeW5jKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLSAgICB7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGZhbHNlKTsKLSAgICAgICAgcGluZ0xvYWRDb21wbGV0ZShSZXNvdXJjZUVycm9y
IHsgU3RyaW5nIHsgfSwgMCwgbV9jdXJyZW50UmVxdWVzdC51cmwoKSwgQVNDSUlMaXRlcmFsKCJO
b3QgYWxsb3dlZCB0byBhdXRoZW50aWNhdGUiKSwgUmVzb3VyY2VFcnJvcjo6VHlwZTo6QWNjZXNz
Q29udHJvbCB9KTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIHZvaWQgcGluZ0xvYWRDb21wbGV0ZShj
b25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciA9IHsgfSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UgPSB7IH0pCi0gICAgewotICAgICAgICBpZiAoYXV0byBjb21wbGV0aW9uSGFuZGxl
ciA9IHN0ZDo6ZXhjaGFuZ2UobV9jb21wbGV0aW9uSGFuZGxlciwgbnVsbHB0cikpCi0gICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihlcnJvciwgcmVzcG9uc2UpOwotICAgICAgICBkZWxldGUg
dGhpczsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIH5QaW5nSGFuZGxlKCkKLSAgICB7Ci0gICAgICAg
IEFTU0VSVCghbV9jb21wbGV0aW9uSGFuZGxlcik7Ci0gICAgICAgIGlmIChtX2hhbmRsZSkgewot
ICAgICAgICAgICAgQVNTRVJUKG1faGFuZGxlLT5jbGllbnQoKSA9PSB0aGlzKTsKLSAgICAgICAg
ICAgIG1faGFuZGxlLT5jbGVhckNsaWVudCgpOwotICAgICAgICAgICAgbV9oYW5kbGUtPmNhbmNl
bCgpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBtX2hh
bmRsZTsKLSAgICBSZXNvdXJjZVJlcXVlc3QgbV9jdXJyZW50UmVxdWVzdDsKLSAgICBUaW1lciBt
X3RpbWVvdXRUaW1lcjsKLSAgICBib29sIG1fc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2U7Ci0g
ICAgYm9vbCBtX3Nob3VsZEZvbGxvd1JlZGlyZWN0czsKLSAgICBXVEY6OkNvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgUmVzb3VyY2VFcnJvciYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKT4g
bV9jb21wbGV0aW9uSGFuZGxlcjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMzAwNzgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDE4LTAzLTI5ICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBQaW5nSGFuZGxlIHRv
IFdlYktpdExlZ2FjeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTg0MTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6
CisKIDIwMTgtMDMtMjkgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTihyMjI5NDgwKTogRVJST1I6IFVuaGFuZGxlZCB3ZWIgcHJvY2VzcyBt
ZXNzYWdlICdXZWJDb29raWVNYW5hZ2VyOlNldEhUVFBDb29raWVBY2NlcHRQb2xpY3knCkluZGV4
OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMjMwMDc3KQorKysgU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDYgQEAKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0
b3JlLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGlu
Z0hhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1Db29raWVKYXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVzb3VyY2VSZXF1ZXN0Lmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwkocmV2aXNpb24gMjMw
MDc3KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNSBAQAorMjAxOC0wMy0yOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgorCisgICAgICAgIE1vdmUgUGluZ0hhbmRsZSB0byBXZWJLaXRMZWdhY3kK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDE0NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvUGluZ0hhbmRsZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1BpbmdIYW5kbGUuaC4KKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKiBX
ZWJLaXRMZWdhY3kueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxOC0wMy0yNyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgb25saW5lIHN0YXRl
IGRldGVjdGlvbiBmcm9tIHRoZSBXZWJQcm9jZXNzIHRvIHRoZSBOZXR3b3JrUHJvY2VzcwpJbmRl
eDogU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9QaW5nSGFuZGxlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9QaW5nSGFuZGxlLmgJ
KHJldmlzaW9uIDIzMDA3NykJKGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Q
aW5nSGFuZGxlLmg6MjMwMDc3KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9y
dC9QaW5nSGFuZGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDbGllbnQu
aCIKKyNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFRoaXMgY2xhc3MgdHJpZ2dlcnMgYXN5bmNo
cm9ub3VzIGxvYWRzIGluZGVwZW5kZW50IG9mIHRoZSBuZXR3b3JraW5nIGNvbnRleHQgc3RheWlu
ZyBhbGl2ZSAoaS5lLiwgYXVkaXRpbmcgcGluZ2JhY2tzKS4KKy8vIFRoZSBvYmplY3QganVzdCBu
ZWVkcyB0byBsaXZlIGxvbmcgZW5vdWdoIHRvIGVuc3VyZSB0aGUgbWVzc2FnZSB3YXMgYWN0dWFs
bHkgc2VudC4KKy8vIEFzIHNvb24gYXMgYW55IGNhbGxiYWNrIGlzIHJlY2VpdmVkIGZyb20gdGhl
IFJlc291cmNlSGFuZGxlLCB0aGlzIGNsYXNzIHdpbGwgY2FuY2VsIHRoZSBsb2FkIGFuZCBkZWxl
dGUgaXRzZWxmLgorCitjbGFzcyBQaW5nSGFuZGxlIGZpbmFsIDogcHJpdmF0ZSBSZXNvdXJjZUhh
bmRsZUNsaWVudCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGluZ0hhbmRsZSk7IFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFBpbmdIYW5kbGUoTmV0d29ya2luZ0Nv
bnRleHQqIG5ldHdvcmtpbmdDb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkRm9sbG93UmVkaXJl
Y3RzLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVzb3VyY2VFcnJvciYsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgOiBt
X2N1cnJlbnRSZXF1ZXN0KHJlcXVlc3QpCisgICAgICAgICwgbV90aW1lb3V0VGltZXIoKnRoaXMs
ICZQaW5nSGFuZGxlOjp0aW1lb3V0VGltZXJGaXJlZCkKKyAgICAgICAgLCBtX3Nob3VsZFVzZUNy
ZWRlbnRpYWxTdG9yYWdlKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKQorICAgICAgICAsIG1f
c2hvdWxkRm9sbG93UmVkaXJlY3RzKHNob3VsZEZvbGxvd1JlZGlyZWN0cykKKyAgICAgICAgLCBt
X2NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQorICAgIHsKKyAg
ICAgICAgYm9vbCBkZWZlcnNMb2FkaW5nID0gZmFsc2U7CisgICAgICAgIGJvb2wgc2hvdWxkQ29u
dGVudFNuaWZmID0gZmFsc2U7CisgICAgICAgIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25p
ZmYgPSB0cnVlOworICAgICAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobmV0
d29ya2luZ0NvbnRleHQsIHJlcXVlc3QsIHRoaXMsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRl
bnRTbmlmZiwgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpOworCisgICAgICAgIC8vIElmIHRo
ZSBzZXJ2ZXIgbmV2ZXIgcmVzcG9uZHMsIHRoaXMgb2JqZWN0IHdpbGwgaGFuZyBhcm91bmQgZm9y
ZXZlci4KKyAgICAgICAgLy8gU2V0IGEgdmVyeSBnZW5lcm91cyB0aW1lb3V0LCBqdXN0IGluIGNh
c2UuCisgICAgICAgIG1fdGltZW91dFRpbWVyLnN0YXJ0T25lU2hvdCg2MDAwMF9zKTsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3RBc3luYyhSZXNvdXJjZUhhbmRs
ZSosIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIp
IGZpbmFsCisgICAgeworICAgICAgICBtX2N1cnJlbnRSZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0
KTsKKyAgICAgICAgaWYgKG1fc2hvdWxkRm9sbG93UmVkaXJlY3RzKSB7CisgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihSZXNvdXJjZVJlcXVlc3QgeyBtX2N1cnJlbnRSZXF1ZXN0IH0pOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KHsgfSk7CisgICAgICAgIHBpbmdMb2FkQ29tcGxldGUoUmVzb3VyY2VFcnJvciB7IFN0cmluZygp
LCAwLCBtX2N1cnJlbnRSZXF1ZXN0LnVybCgpLCBBU0NJSUxpdGVyYWwoIk5vdCBhbGxvd2VkIHRv
IGZvbGxvdyByZWRpcmVjdHMiKSwgUmVzb3VyY2VFcnJvcjo6VHlwZTo6QWNjZXNzQ29udHJvbCB9
KTsKKyAgICB9CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRs
ZSosIFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAorICAgIHsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoKTsKKyAgICAgICAgcGluZ0xvYWRDb21wbGV0ZSh7IH0sIHJlc3BvbnNlKTsKKyAgICB9
CisgICAgdm9pZCBkaWRSZWNlaXZlQnVmZmVyKFJlc291cmNlSGFuZGxlKiwgUmVmPFNoYXJlZEJ1
ZmZlcj4mJiwgaW50KSBmaW5hbCB7IHBpbmdMb2FkQ29tcGxldGUoKTsgfQorICAgIHZvaWQgZGlk
RmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopIGZpbmFsIHsgcGluZ0xvYWRDb21wbGV0ZSgp
OyB9CisgICAgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJv
ciYgZXJyb3IpIGZpbmFsIHsgcGluZ0xvYWRDb21wbGV0ZShlcnJvcik7IH0KKyAgICBib29sIHNo
b3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFJlc291cmNlSGFuZGxlKikgZmluYWwgeyByZXR1cm4g
bV9zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZTsgfQorICAgIHZvaWQgdGltZW91dFRpbWVyRmly
ZWQoKSB7IHBpbmdMb2FkQ29tcGxldGUoUmVzb3VyY2VFcnJvciB7IFN0cmluZygpLCAwLCBtX2N1
cnJlbnRSZXF1ZXN0LnVybCgpLCBBU0NJSUxpdGVyYWwoIkxvYWQgdGltZWQgb3V0IiksIFJlc291
cmNlRXJyb3I6OlR5cGU6OlRpbWVvdXQgfSk7IH0KKyNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9B
VVRIX0NBTExCQUNLKQorICAgIHZvaWQgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25T
cGFjZUFzeW5jKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICB7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgcGluZ0xvYWRDb21wbGV0ZShS
ZXNvdXJjZUVycm9yIHsgU3RyaW5nIHsgfSwgMCwgbV9jdXJyZW50UmVxdWVzdC51cmwoKSwgQVND
SUlMaXRlcmFsKCJOb3QgYWxsb3dlZCB0byBhdXRoZW50aWNhdGUiKSwgUmVzb3VyY2VFcnJvcjo6
VHlwZTo6QWNjZXNzQ29udHJvbCB9KTsKKyAgICB9CisjZW5kaWYKKworICAgIHZvaWQgcGluZ0xv
YWRDb21wbGV0ZShjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciA9IHsgfSwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UgPSB7IH0pCisgICAgeworICAgICAgICBpZiAoYXV0byBjb21w
bGV0aW9uSGFuZGxlciA9IHN0ZDo6ZXhjaGFuZ2UobV9jb21wbGV0aW9uSGFuZGxlciwgbnVsbHB0
cikpCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihlcnJvciwgcmVzcG9uc2UpOworICAg
ICAgICBkZWxldGUgdGhpczsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5QaW5nSGFuZGxlKCkKKyAg
ICB7CisgICAgICAgIEFTU0VSVCghbV9jb21wbGV0aW9uSGFuZGxlcik7CisgICAgICAgIGlmICht
X2hhbmRsZSkgeworICAgICAgICAgICAgQVNTRVJUKG1faGFuZGxlLT5jbGllbnQoKSA9PSB0aGlz
KTsKKyAgICAgICAgICAgIG1faGFuZGxlLT5jbGVhckNsaWVudCgpOworICAgICAgICAgICAgbV9o
YW5kbGUtPmNhbmNlbCgpOworICAgICAgICB9CisgICAgfQorCisgICAgUmVmUHRyPFJlc291cmNl
SGFuZGxlPiBtX2hhbmRsZTsKKyAgICBSZXNvdXJjZVJlcXVlc3QgbV9jdXJyZW50UmVxdWVzdDsK
KyAgICBUaW1lciBtX3RpbWVvdXRUaW1lcjsKKyAgICBib29sIG1fc2hvdWxkVXNlQ3JlZGVudGlh
bFN0b3JhZ2U7CisgICAgYm9vbCBtX3Nob3VsZEZvbGxvd1JlZGlyZWN0czsKKyAgICBXVEY6OkNv
bXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVzb3VyY2VFcnJvciYsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmKT4gbV9jb21wbGV0aW9uSGFuZGxlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvUGluZ0hhbmRs
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvUGlu
Z0hhbmRsZS5oCShyZXZpc2lvbiAyMzAwNzcpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNv
cmVTdXBwb3J0L1BpbmdIYW5kbGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsMjEgKzI1LDE5IEBA
CiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKLSNpbmNsdWRl
ICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgotI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5k
bGVDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RpbWVyLmg+CiAjaW5jbHVkZSA8d3RmL0Nv
bXBsZXRpb25IYW5kbGVyLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQogLy8gVGhpcyBjbGFz
cyB0cmlnZ2VycyBhc3luY2hyb25vdXMgbG9hZHMgaW5kZXBlbmRlbnQgb2YgdGhlIG5ldHdvcmtp
bmcgY29udGV4dCBzdGF5aW5nIGFsaXZlIChpLmUuLCBhdWRpdGluZyBwaW5nYmFja3MpLgogLy8g
VGhlIG9iamVjdCBqdXN0IG5lZWRzIHRvIGxpdmUgbG9uZyBlbm91Z2ggdG8gZW5zdXJlIHRoZSBt
ZXNzYWdlIHdhcyBhY3R1YWxseSBzZW50LgogLy8gQXMgc29vbiBhcyBhbnkgY2FsbGJhY2sgaXMg
cmVjZWl2ZWQgZnJvbSB0aGUgUmVzb3VyY2VIYW5kbGUsIHRoaXMgY2xhc3Mgd2lsbCBjYW5jZWwg
dGhlIGxvYWQgYW5kIGRlbGV0ZSBpdHNlbGYuCiAKLWNsYXNzIFBpbmdIYW5kbGUgZmluYWwgOiBw
cml2YXRlIFJlc291cmNlSGFuZGxlQ2xpZW50IHsKK2NsYXNzIFBpbmdIYW5kbGUgZmluYWwgOiBw
cml2YXRlIFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ2xpZW50IHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShQaW5nSGFuZGxlKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgUGluZ0hhbmRsZShOZXR3b3JraW5nQ29udGV4dCogbmV0d29ya2luZ0NvbnRleHQsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFn
ZSwgYm9vbCBzaG91bGRGb2xsb3dSZWRpcmVjdHMsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBSZXNvdXJjZUVycm9yJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQorICAgIFBpbmdIYW5kbGUoV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQq
IG5ldHdvcmtpbmdDb250ZXh0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkRm9sbG93UmVk
aXJlY3RzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiAgICAgICAgIDogbV9jdXJyZW50UmVxdWVzdChyZXF1ZXN0KQogICAgICAgICAsIG1fdGlt
ZW91dFRpbWVyKCp0aGlzLCAmUGluZ0hhbmRsZTo6dGltZW91dFRpbWVyRmlyZWQpCiAgICAgICAg
ICwgbV9zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZShzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFn
ZSkKQEAgLTQ5LDcgKzQ3LDcgQEAgcHVibGljOgogICAgICAgICBib29sIGRlZmVyc0xvYWRpbmcg
PSBmYWxzZTsKICAgICAgICAgYm9vbCBzaG91bGRDb250ZW50U25pZmYgPSBmYWxzZTsKICAgICAg
ICAgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiA9IHRydWU7Ci0gICAgICAgIG1faGFu
ZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShuZXR3b3JraW5nQ29udGV4dCwgcmVxdWVzdCwg
dGhpcywgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5j
b2RpbmdTbmlmZik7CisgICAgICAgIG1faGFuZGxlID0gV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OmNyZWF0ZShuZXR3b3JraW5nQ29udGV4dCwgcmVxdWVzdCwgdGhpcywgZGVmZXJzTG9hZGluZywg
c2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7CiAKICAgICAg
ICAgLy8gSWYgdGhlIHNlcnZlciBuZXZlciByZXNwb25kcywgdGhpcyBvYmplY3Qgd2lsbCBoYW5n
IGFyb3VuZCBmb3JldmVyLgogICAgICAgICAvLyBTZXQgYSB2ZXJ5IGdlbmVyb3VzIHRpbWVvdXQs
IGp1c3QgaW4gY2FzZS4KQEAgLTU3LDcgKzU1LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0
ZToKLSAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdEFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSYmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFJlc291cmNlUmVxdWVzdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKKyAg
ICB2b2lkIHdpbGxTZW5kUmVxdWVzdEFzeW5jKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKICAgICB7CiAgICAgICAgIG1fY3VycmVudFJlcXVl
c3QgPSBXVEZNb3ZlKHJlcXVlc3QpOwogICAgICAgICBpZiAobV9zaG91bGRGb2xsb3dSZWRpcmVj
dHMpIHsKQEAgLTY1LDI3ICs2MywyNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7Ci0gICAgICAgIHBpbmdM
b2FkQ29tcGxldGUoUmVzb3VyY2VFcnJvciB7IFN0cmluZygpLCAwLCBtX2N1cnJlbnRSZXF1ZXN0
LnVybCgpLCBBU0NJSUxpdGVyYWwoIk5vdCBhbGxvd2VkIHRvIGZvbGxvdyByZWRpcmVjdHMiKSwg
UmVzb3VyY2VFcnJvcjo6VHlwZTo6QWNjZXNzQ29udHJvbCB9KTsKKyAgICAgICAgcGluZ0xvYWRD
b21wbGV0ZShXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHsgU3RyaW5nKCksIDAsIG1fY3VycmVudFJl
cXVlc3QudXJsKCksIEFTQ0lJTGl0ZXJhbCgiTm90IGFsbG93ZWQgdG8gZm9sbG93IHJlZGlyZWN0
cyIpLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yOjpUeXBlOjpBY2Nlc3NDb250cm9sIH0pOwogICAg
IH0KLSAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVz
b3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpIGZpbmFsCisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZXNw
b25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5h
bAogICAgIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICAgICAgcGluZ0xvYWRD
b21wbGV0ZSh7IH0sIHJlc3BvbnNlKTsKICAgICB9Ci0gICAgdm9pZCBkaWRSZWNlaXZlQnVmZmVy
KFJlc291cmNlSGFuZGxlKiwgUmVmPFNoYXJlZEJ1ZmZlcj4mJiwgaW50KSBmaW5hbCB7IHBpbmdM
b2FkQ29tcGxldGUoKTsgfQotICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRs
ZSopIGZpbmFsIHsgcGluZ0xvYWRDb21wbGV0ZSgpOyB9Ci0gICAgdm9pZCBkaWRGYWlsKFJlc291
cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpIGZpbmFsIHsgcGluZ0xvYWRD
b21wbGV0ZShlcnJvcik7IH0KLSAgICBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFJl
c291cmNlSGFuZGxlKikgZmluYWwgeyByZXR1cm4gbV9zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFn
ZTsgfQorICAgIHZvaWQgZGlkUmVjZWl2ZUJ1ZmZlcihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSos
IFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYsIGludCkgZmluYWwgeyBwaW5nTG9hZENvbXBs
ZXRlKCk7IH0KKyAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcoV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGUqKSBmaW5hbCB7IHBpbmdMb2FkQ29tcGxldGUoKTsgfQorICAgIHZvaWQgZGlkRmFpbChXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9y
KSBmaW5hbCB7IHBpbmdMb2FkQ29tcGxldGUoZXJyb3IpOyB9CisgICAgYm9vbCBzaG91bGRVc2VD
cmVkZW50aWFsU3RvcmFnZShXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSopIGZpbmFsIHsgcmV0dXJu
IG1fc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2U7IH0KICAgICB2b2lkIHRpbWVvdXRUaW1lckZp
cmVkKCkgeyBwaW5nTG9hZENvbXBsZXRlKFJlc291cmNlRXJyb3IgeyBTdHJpbmcoKSwgMCwgbV9j
dXJyZW50UmVxdWVzdC51cmwoKSwgQVNDSUlMaXRlcmFsKCJMb2FkIHRpbWVkIG91dCIpLCBSZXNv
dXJjZUVycm9yOjpUeXBlOjpUaW1lb3V0IH0pOyB9CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0Vf
QVVUSF9DQUxMQkFDSykKLSAgICB2b2lkIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9u
U3BhY2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgdm9pZCBj
YW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlQXN5bmMoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogICAgIHsKICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoZmFsc2UpOwogICAgICAgICBwaW5nTG9hZENvbXBsZXRlKFJlc291cmNl
RXJyb3IgeyBTdHJpbmcgeyB9LCAwLCBtX2N1cnJlbnRSZXF1ZXN0LnVybCgpLCBBU0NJSUxpdGVy
YWwoIk5vdCBhbGxvd2VkIHRvIGF1dGhlbnRpY2F0ZSIpLCBSZXNvdXJjZUVycm9yOjpUeXBlOjpB
Y2Nlc3NDb250cm9sIH0pOwogICAgIH0KICNlbmRpZgogCi0gICAgdm9pZCBwaW5nTG9hZENvbXBs
ZXRlKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yID0geyB9LCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSA9IHsgfSkKKyAgICB2b2lkIHBpbmdMb2FkQ29tcGxldGUoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IgPSB7IH0sIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlID0geyB9KQogICAgIHsKICAgICAgICAgaWYgKGF1dG8gY29tcGxl
dGlvbkhhbmRsZXIgPSBzdGQ6OmV4Y2hhbmdlKG1fY29tcGxldGlvbkhhbmRsZXIsIG51bGxwdHIp
KQogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZXJyb3IsIHJlc3BvbnNlKTsKQEAgLTEw
MiwxMiArMTAwLDEwIEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBSZWZQdHI8
UmVzb3VyY2VIYW5kbGU+IG1faGFuZGxlOwotICAgIFJlc291cmNlUmVxdWVzdCBtX2N1cnJlbnRS
ZXF1ZXN0OwotICAgIFRpbWVyIG1fdGltZW91dFRpbWVyOworICAgIFJlZlB0cjxXZWJDb3JlOjpS
ZXNvdXJjZUhhbmRsZT4gbV9oYW5kbGU7CisgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1f
Y3VycmVudFJlcXVlc3Q7CisgICAgV2ViQ29yZTo6VGltZXIgbV90aW1lb3V0VGltZXI7CiAgICAg
Ym9vbCBtX3Nob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlOwogICAgIGJvb2wgbV9zaG91bGRGb2xs
b3dSZWRpcmVjdHM7Ci0gICAgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFJlc291
cmNlRXJyb3ImLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik+IG1fY29tcGxldGlvbkhhbmRsZXI7
CisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpPiBtX2NvbXBsZXRpb25IYW5kbGVy
OwogfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYktpdExlZ2Fj
eS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2No
ZWR1bGVyLmNwcAkocmV2aXNpb24gMjMwMDc3KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9XZWJD
b3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNCw2ICsyNCw3IEBACiAKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIK
IAorI2luY2x1ZGUgIlBpbmdIYW5kbGUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
RmV0Y2hPcHRpb25zLmg+CkBAIC0zMSw3ICszMiw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFt
ZUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9QaW5nSGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVN0cmF0ZWdp
ZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU3VicmVzb3VyY2VMb2FkZXIuaD4KSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvV2Vi
S2l0TGVnYWN5Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdExlZ2FjeS9XZWJLaXRMZWdhY3kueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMjMwMDc3KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9XZWJLaXRMZWdhY3kueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTQ5LDYgKzE0OSw3IEBACiAJ
CTU5OEFEOTI4MTIwMUNGMzIwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVy
TW9jay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5
OEFEOTI3MTIwMUNGMzIwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyTW9j
ay5tbSAqLzsgfTsKIAkJNTk4QUQ5MkExMjAxQ0YzQjAwQUJBRTRFIC8qIFdlYkRldmljZU9yaWVu
dGF0aW9uUHJvdmlkZXJNb2NrSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU5OEFEOTI5MTIwMUNGM0IwMEFCQUU0RSAvKiBXZWJEZXZpY2VP
cmllbnRhdGlvblByb3ZpZGVyTW9ja0ludGVybmFsLmggKi87IH07CiAJCTU5OEFEQTQ2MTIwMjI3
NTAwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OThBREE0NTEyMDIyNzUwMDBBQkFF
NEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTVDRTQ0RjRBMjA2RDcwRUEwMDNFRkQwMSAv
KiBQaW5nSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1Q0U0NEY0OTIwNkQ3MEU5MDAzRUZEMDEgLyogUGluZ0hhbmRsZS5oICovOyB9OwogCQk1
RDdCRjgxNDBDMkExRDkwMDA4Q0UwNkQgLyogV2ViSW5zcGVjdG9yLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RDdCRjgxMjBDMkExRDkwMDA4Q0UwNkQg
LyogV2ViSW5zcGVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNUQ3QkY4MTUwQzJBMUQ5MDAwOENFMDZEIC8qIFdlYkluc3BlY3Rvci5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEN0JGODEzMEMy
QTFEOTAwMDhDRTA2RCAvKiBXZWJJbnNwZWN0b3IubW0gKi87IH07CiAJCTVERTgzQTdBMEQwRjdG
OTQwMENBRDEyQSAvKiBXZWJKYXZhU2NyaXB0VGV4dElucHV0UGFuZWwubmliIGluIFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1REU4M0E3NDBEMEY3Rjk0MDBD
QUQxMkEgLyogV2ViSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsLm5pYiAqLzsgfTsKQEAgLTk4OCw2
ICs5ODksNyBAQAogCQk1OThBRDkyNzEyMDFDRjMyMDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlck1vY2subW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyTW9jay5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTk4QUQ5MjkxMjAxQ0YzQjAwQUJBRTRFIC8qIFdlYkRldmljZU9yaWVu
dGF0aW9uUHJvdmlkZXJNb2NrSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2tJbnRlcm5hbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1OThBREE0NTEyMDIyNzUwMDBBQkFFNEUgLyogV2ViRGV2
aWNlT3JpZW50YXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTVDRTQ0RjQ5MjA2RDcwRTkwMDNFRkQwMSAvKiBQaW5nSGFuZGxlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFBpbmdIYW5kbGUuaDsgcGF0aCA9IFdlYkNvcmVTdXBw
b3J0L1BpbmdIYW5kbGUuaDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQk1RDdCRjgx
MjBDMkExRDkwMDA4Q0UwNkQgLyogV2ViSW5zcGVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJJbnNwZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNUQ3QkY4MTMwQzJBMUQ5MDAwOENFMDZEIC8qIFdlYkluc3BlY3Rvci5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJJbnNwZWN0b3IubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVERTgzQTc1MEQwRjdGOTQwMENBRDEyQSAvKiBFbmdsaXNo
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBl
ci5uaWI7IG5hbWUgPSBFbmdsaXNoOyBwYXRoID0gRW5nbGlzaC5scHJvai9XZWJKYXZhU2NyaXB0
VGV4dElucHV0UGFuZWwubmliOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CkBAIC0yNTYw
LDYgKzI1NjIsNyBAQAogCQkJCUExMEMxRDQ0MTgyMDJGRkIwMDM2ODgzQSAvKiBpb3MgKi8sCiAJ
CQkJQjgyOTU4RDExMzI3MDdEMDAwMEQwRTc5IC8qIENvcnJlY3Rpb25QYW5lbC5oICovLAogCQkJ
CUI4Mjk1OEQyMTMyNzA3RDAwMDBEMEU3OSAvKiBDb3JyZWN0aW9uUGFuZWwubW0gKi8sCisJCQkJ
NUNFNDRGNDkyMDZENzBFOTAwM0VGRDAxIC8qIFBpbmdIYW5kbGUuaCAqLywKIAkJCQk3QzAxQ0I4
MTE3MzQzNUM5MDBDNUQ4MDcgLyogUG9wdXBNZW51TWFjLmggKi8sCiAJCQkJN0MwMUNCODIxNzM0
MzVDOTAwQzVEODA3IC8qIFBvcHVwTWVudU1hYy5tbSAqLywKIAkJCQk3QzAxQ0I4MzE3MzQzNUM5
MDBDNUQ4MDcgLyogU2VhcmNoUG9wdXBNZW51TWFjLmggKi8sCkBAIC0yOTM4LDYgKzI5NDEsNyBA
QAogCQkJCTFBQUY1Q0VFMEVEREUxRkUwMDhEODgzRCAvKiBOZXRzY2FwZVBsdWdpbkluc3RhbmNl
UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDQzNzlCMUQ1N0FCRUYwMEFCODVFQSAvKiBP
YmpDRXZlbnRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENDM3OUQxRDU3QUJFRjAw
QUI4NUVBIC8qIE9iakNOb2RlRmlsdGVyQ29uZGl0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk1
Q0U0NEY0QTIwNkQ3MEVBMDAzRUZEMDEgLyogUGluZ0hhbmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTEwQzFENUYxODIwMzAwRTAwMzY4ODNBIC8qIFBvcHVwTWVudUlPUy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJN0MwMUNCODUxNzM0MzVDOTAwQzVEODA3IC8qIFBvcHVwTWVudU1hYy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUEyREJFOUYwRjI1MUUzQTAwMzZGOEE2IC8qIFByb3h5SW5zdGFuY2Uu
aCBpbiBIZWFkZXJzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336796</attachid>
            <date>2018-03-29 13:03:12 -0700</date>
            <delta_ts>2018-04-04 15:22:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184145-20180329130312.patch</filename>
            <type>text/plain</type>
            <size>29692</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzMDA3NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE4LTAzLTI5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBQaW5n
SGFuZGxlIHRvIFdlYktpdExlZ2FjeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTg0MTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9QaW5nSGFuZGxlLmg6IFJlbW92ZWQuCisKIDIwMTgtMDMt
MjkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEcm9wIERPTVdp
bmRvdzo6ZnJhbWVzKCkgLyBET01XaW5kb3c6OndpbmRvdygpIG1ldGhvZHMKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlz
aW9uIDIzMDA3NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTQ2OCw3ICsxNDY4LDYgQEAKIAkJNTFBOUQ5RUEx
OTVCOTMxRjAwMUIyQjVDIC8qIEdhbWVwYWRNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUE5RDlFODE5NUI5MzFGMDAxQjJCNUMgLyogR2Ft
ZXBhZE1hbmFnZXIuaCAqLzsgfTsKIAkJNTFBQkFFMUUxMDNDMTkxMzAwOEM1MjYwIC8qIFNvY2tl
dFN0cmVhbUhhbmRsZUltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxQUJBRTFDMTAzQzE5MTMwMDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVJ
bXBsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTFBRjUwMzYxNkYxMDBGNjAwOTVCMkU4IC8qIFJlc291cmNlTG9hZGVyVHlwZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQUY1MDM1MTZGMTAwRjYw
MDk1QjJFOCAvKiBSZXNvdXJjZUxvYWRlclR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNTFCNDU0RUExQjREQUU3RDAwODVFQUE2IC8qIFBp
bmdIYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxQjQ1NEU5MUI0REFFN0QwMDg1RUFBNiAvKiBQaW5nSGFuZGxlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTFCNDVEMjExQUI4RDFFMjAwMTE3
Q0QyIC8qIENvbnRlbnRFeHRlbnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxQjQ1RDFGMUFCOEQxRTIwMDExN0NEMiAvKiBDb250ZW50RXh0ZW5z
aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTFCOTE0MTAxRkQyNzgyRDAwRUUyODU5IC8qIFJlZ2lzdHJhdGlvbkRhdGFiYXNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUI5MTQwQzFGRDI3ODI1
MDBFRTI4NTkgLyogUmVnaXN0cmF0aW9uRGF0YWJhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUI5MTQxMTFGRDI3ODJEMDBFRTI4NTkgLyog
UmVnaXN0cmF0aW9uU3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxQjkxNDBCMUZEMjc4MjUwMEVFMjg1OSAvKiBSZWdpc3RyYXRpb25TdG9yZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC03OTUw
LDcgKzc5NDksNiBAQAogCQk1MUFCRjY0QzE2MzkyRTI4MDAxMzJBN0EgLyogTG9hZGVyU3RyYXRl
Z3kuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9hZGVyU3RyYXRl
Z3kuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUFGNTAzNTE2RjEwMEY2MDA5
NUIyRTggLyogUmVzb3VyY2VMb2FkZXJUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZXNvdXJjZUxvYWRlclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxQjI0MTdBMEQ5MzFGM0YwMEU4M0Y1QyAvKiBMZWdhY3lXZWJBcmNoaXZlTWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTGVnYWN5V2ViQXJjaGl2ZU1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFCNDU0RTkxQjREQUU3RDAwODVF
QUE2IC8qIFBpbmdIYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGlu
Z0hhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUI0NUQxRTFBQjhEMUUy
MDAxMTdDRDIgLyogQ29udGVudEV4dGVuc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDb250ZW50RXh0ZW5zaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTFCNDVEMUYxQUI4RDFFMjAwMTE3Q0QyIC8qIENvbnRlbnRFeHRlbnNpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGVudEV4dGVuc2lvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUI5MTQwQjFGRDI3ODI1MDBFRTI4NTkgLyogUmVn
aXN0cmF0aW9uU3RvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVnaXN0
cmF0aW9uU3RvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NzkwLDcgKzE4
Nzg4LDYgQEAKIAkJCQlDRENENDFFNjFDM0REQjA5MDA5NjVEOTkgLyogUGFyc2VkQ29udGVudFJh
bmdlLmggKi8sCiAJCQkJNDQ3OTU4MDIxNjQzQjQ3QjAwMUUwQTdGIC8qIFBhcnNlZENvbnRlbnRU
eXBlLmNwcCAqLywKIAkJCQk0NDc5NTgwMzE2NDNCNDdCMDAxRTBBN0YgLyogUGFyc2VkQ29udGVu
dFR5cGUuaCAqLywKLQkJCQk1MUI0NTRFOTFCNERBRTdEMDA4NUVBQTYgLyogUGluZ0hhbmRsZS5o
ICovLAogCQkJCUUxNDI0Qzg5MTY0QjNCNEUwMEYzMkQ0MCAvKiBQbGF0Zm9ybUNvb2tpZUphci5o
ICovLAogCQkJCTM3QkFBRTU3MTk4MEQxREQwMDVERkU3MSAvKiBQcm90ZWN0aW9uU3BhY2UuaCAq
LywKIAkJCQk1MTRDNzY1RjBDRTkyM0ExMDA3RUYzQ0QgLyogUHJvdGVjdGlvblNwYWNlQmFzZS5j
cHAgKi8sCkBAIC0yOTMwMyw3ICsyOTMwMCw2IEBACiAJCQkJQTU1NEI1RjMxRTM4MzkzQTAwMUQ0
RTAzIC8qIFBlcmZvcm1hbmNlVXNlclRpbWluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ1ODFG
QjUxNTIwRjkzQjAwM0E3QTc1IC8qIFBlcmlvZGljV2F2ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDlENURDMkUwRjQyM0E3MzAwOEYyMEZEIC8qIFBlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9u
LmggaW4gSGVhZGVycyAqLywKLQkJCQk1MUI0NTRFQTFCNERBRTdEMDA4NUVBQTYgLyogUGluZ0hh
bmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDBGRjJBNUUxMUY4QzQ1QTAwN0U3NEUwIC8qIFBp
bmdMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEN0QzMzQ0MUM3QTEyM0YwMDA0MTI5MyAv
KiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREVGQTIyODFF
NzY2OUU4MDAwQUU5OUMgLyogUGxhdGZvcm1BdWRpb0RhdGEuaCBpbiBIZWFkZXJzICovLApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9QaW5nSGFuZGxlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9QaW5nSGFuZGxlLmgJKHJldmlz
aW9uIDIzMDA3NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUGluZ0hhbmRs
ZS5oCShub25leGlzdGVudCkKQEAgLTEsMTEzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIlJlc291
cmNlSGFuZGxlLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDbGllbnQuaCIKLSNpbmNsdWRl
ICJUaW1lci5oIgotI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLS8vIFRoaXMgY2xhc3MgdHJpZ2dlcnMgYXN5bmNocm9ub3VzIGxvYWRz
IGluZGVwZW5kZW50IG9mIHRoZSBuZXR3b3JraW5nIGNvbnRleHQgc3RheWluZyBhbGl2ZSAoaS5l
LiwgYXVkaXRpbmcgcGluZ2JhY2tzKS4KLS8vIFRoZSBvYmplY3QganVzdCBuZWVkcyB0byBsaXZl
IGxvbmcgZW5vdWdoIHRvIGVuc3VyZSB0aGUgbWVzc2FnZSB3YXMgYWN0dWFsbHkgc2VudC4KLS8v
IEFzIHNvb24gYXMgYW55IGNhbGxiYWNrIGlzIHJlY2VpdmVkIGZyb20gdGhlIFJlc291cmNlSGFu
ZGxlLCB0aGlzIGNsYXNzIHdpbGwgY2FuY2VsIHRoZSBsb2FkIGFuZCBkZWxldGUgaXRzZWxmLgot
Ci1jbGFzcyBQaW5nSGFuZGxlIGZpbmFsIDogcHJpdmF0ZSBSZXNvdXJjZUhhbmRsZUNsaWVudCB7
Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGluZ0hhbmRsZSk7IFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwotcHVibGljOgotICAgIFBpbmdIYW5kbGUoTmV0d29ya2luZ0NvbnRleHQqIG5ldHdv
cmtpbmdDb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgc2hvdWxk
VXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkRm9sbG93UmVkaXJlY3RzLCBXVEY6OkNv
bXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVzb3VyY2VFcnJvciYsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLSAgICAgICAgOiBtX2N1cnJlbnRSZXF1
ZXN0KHJlcXVlc3QpCi0gICAgICAgICwgbV90aW1lb3V0VGltZXIoKnRoaXMsICZQaW5nSGFuZGxl
Ojp0aW1lb3V0VGltZXJGaXJlZCkKLSAgICAgICAgLCBtX3Nob3VsZFVzZUNyZWRlbnRpYWxTdG9y
YWdlKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKQotICAgICAgICAsIG1fc2hvdWxkRm9sbG93
UmVkaXJlY3RzKHNob3VsZEZvbGxvd1JlZGlyZWN0cykKLSAgICAgICAgLCBtX2NvbXBsZXRpb25I
YW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQotICAgIHsKLSAgICAgICAgYm9vbCBk
ZWZlcnNMb2FkaW5nID0gZmFsc2U7Ci0gICAgICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmID0g
ZmFsc2U7Ci0gICAgICAgIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYgPSB0cnVlOwot
ICAgICAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobmV0d29ya2luZ0NvbnRl
eHQsIHJlcXVlc3QsIHRoaXMsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZiwgc2hv
dWxkQ29udGVudEVuY29kaW5nU25pZmYpOwotCi0gICAgICAgIC8vIElmIHRoZSBzZXJ2ZXIgbmV2
ZXIgcmVzcG9uZHMsIHRoaXMgb2JqZWN0IHdpbGwgaGFuZyBhcm91bmQgZm9yZXZlci4KLSAgICAg
ICAgLy8gU2V0IGEgdmVyeSBnZW5lcm91cyB0aW1lb3V0LCBqdXN0IGluIGNhc2UuCi0gICAgICAg
IG1fdGltZW91dFRpbWVyLnN0YXJ0T25lU2hvdCg2MDAwMF9zKTsKLSAgICB9Ci0KLXByaXZhdGU6
Ci0gICAgdm9pZCB3aWxsU2VuZFJlcXVlc3RBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNl
UmVxdWVzdCYmIHJlcXVlc3QsIFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCi0gICAg
ewotICAgICAgICBtX2N1cnJlbnRSZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KTsKLSAgICAgICAg
aWYgKG1fc2hvdWxkRm9sbG93UmVkaXJlY3RzKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihSZXNvdXJjZVJlcXVlc3QgeyBtX2N1cnJlbnRSZXF1ZXN0IH0pOwotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7Ci0gICAg
ICAgIHBpbmdMb2FkQ29tcGxldGUoUmVzb3VyY2VFcnJvciB7IFN0cmluZygpLCAwLCBtX2N1cnJl
bnRSZXF1ZXN0LnVybCgpLCBBU0NJSUxpdGVyYWwoIk5vdCBhbGxvd2VkIHRvIGZvbGxvdyByZWRp
cmVjdHMiKSwgUmVzb3VyY2VFcnJvcjo6VHlwZTo6QWNjZXNzQ29udHJvbCB9KTsKLSAgICB9Ci0g
ICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNl
UmVzcG9uc2UmJiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKSBmaW5hbAotICAgIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAg
ICAgICAgcGluZ0xvYWRDb21wbGV0ZSh7IH0sIHJlc3BvbnNlKTsKLSAgICB9Ci0gICAgdm9pZCBk
aWRSZWNlaXZlQnVmZmVyKFJlc291cmNlSGFuZGxlKiwgUmVmPFNoYXJlZEJ1ZmZlcj4mJiwgaW50
KSBmaW5hbCB7IHBpbmdMb2FkQ29tcGxldGUoKTsgfQotICAgIHZvaWQgZGlkRmluaXNoTG9hZGlu
ZyhSZXNvdXJjZUhhbmRsZSopIGZpbmFsIHsgcGluZ0xvYWRDb21wbGV0ZSgpOyB9Ci0gICAgdm9p
ZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpIGZp
bmFsIHsgcGluZ0xvYWRDb21wbGV0ZShlcnJvcik7IH0KLSAgICBib29sIHNob3VsZFVzZUNyZWRl
bnRpYWxTdG9yYWdlKFJlc291cmNlSGFuZGxlKikgZmluYWwgeyByZXR1cm4gbV9zaG91bGRVc2VD
cmVkZW50aWFsU3RvcmFnZTsgfQotICAgIHZvaWQgdGltZW91dFRpbWVyRmlyZWQoKSB7IHBpbmdM
b2FkQ29tcGxldGUoUmVzb3VyY2VFcnJvciB7IFN0cmluZygpLCAwLCBtX2N1cnJlbnRSZXF1ZXN0
LnVybCgpLCBBU0NJSUxpdGVyYWwoIkxvYWQgdGltZWQgb3V0IiksIFJlc291cmNlRXJyb3I6OlR5
cGU6OlRpbWVvdXQgfSk7IH0KLSNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNL
KQotICAgIHZvaWQgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZUFzeW5jKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLSAgICB7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGZhbHNlKTsKLSAgICAgICAgcGluZ0xvYWRDb21wbGV0ZShSZXNvdXJjZUVycm9y
IHsgU3RyaW5nIHsgfSwgMCwgbV9jdXJyZW50UmVxdWVzdC51cmwoKSwgQVNDSUlMaXRlcmFsKCJO
b3QgYWxsb3dlZCB0byBhdXRoZW50aWNhdGUiKSwgUmVzb3VyY2VFcnJvcjo6VHlwZTo6QWNjZXNz
Q29udHJvbCB9KTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIHZvaWQgcGluZ0xvYWRDb21wbGV0ZShj
b25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciA9IHsgfSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UgPSB7IH0pCi0gICAgewotICAgICAgICBpZiAoYXV0byBjb21wbGV0aW9uSGFuZGxl
ciA9IHN0ZDo6ZXhjaGFuZ2UobV9jb21wbGV0aW9uSGFuZGxlciwgbnVsbHB0cikpCi0gICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihlcnJvciwgcmVzcG9uc2UpOwotICAgICAgICBkZWxldGUg
dGhpczsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIH5QaW5nSGFuZGxlKCkKLSAgICB7Ci0gICAgICAg
IEFTU0VSVCghbV9jb21wbGV0aW9uSGFuZGxlcik7Ci0gICAgICAgIGlmIChtX2hhbmRsZSkgewot
ICAgICAgICAgICAgQVNTRVJUKG1faGFuZGxlLT5jbGllbnQoKSA9PSB0aGlzKTsKLSAgICAgICAg
ICAgIG1faGFuZGxlLT5jbGVhckNsaWVudCgpOwotICAgICAgICAgICAgbV9oYW5kbGUtPmNhbmNl
bCgpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBtX2hh
bmRsZTsKLSAgICBSZXNvdXJjZVJlcXVlc3QgbV9jdXJyZW50UmVxdWVzdDsKLSAgICBUaW1lciBt
X3RpbWVvdXRUaW1lcjsKLSAgICBib29sIG1fc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2U7Ci0g
ICAgYm9vbCBtX3Nob3VsZEZvbGxvd1JlZGlyZWN0czsKLSAgICBXVEY6OkNvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgUmVzb3VyY2VFcnJvciYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKT4g
bV9jb21wbGV0aW9uSGFuZGxlcjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMzAwNzgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDE4LTAzLTI5ICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBQaW5nSGFuZGxlIHRv
IFdlYktpdExlZ2FjeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTg0MTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6
CisKIDIwMTgtMDMtMjkgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTihyMjI5NDgwKTogRVJST1I6IFVuaGFuZGxlZCB3ZWIgcHJvY2VzcyBt
ZXNzYWdlICdXZWJDb29raWVNYW5hZ2VyOlNldEhUVFBDb29raWVBY2NlcHRQb2xpY3knCkluZGV4
OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMjMwMDc3KQorKysgU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDYgQEAKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0
b3JlLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGlu
Z0hhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1Db29raWVKYXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVzb3VyY2VSZXF1ZXN0Lmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwkocmV2aXNpb24gMjMw
MDc3KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNSBAQAorMjAxOC0wMy0yOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgorCisgICAgICAgIE1vdmUgUGluZ0hhbmRsZSB0byBXZWJLaXRMZWdhY3kK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDE0NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvUGluZ0hhbmRsZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1BpbmdIYW5kbGUuaC4KKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKiBX
ZWJLaXRMZWdhY3kueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxOC0wMy0yNyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgb25saW5lIHN0YXRl
IGRldGVjdGlvbiBmcm9tIHRoZSBXZWJQcm9jZXNzIHRvIHRoZSBOZXR3b3JrUHJvY2VzcwpJbmRl
eDogU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9QaW5nSGFuZGxlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9QaW5nSGFuZGxlLmgJ
KHJldmlzaW9uIDIzMDA3NykJKGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Q
aW5nSGFuZGxlLmg6MjMwMDc3KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9y
dC9QaW5nSGFuZGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDbGllbnQu
aCIKKyNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFRoaXMgY2xhc3MgdHJpZ2dlcnMgYXN5bmNo
cm9ub3VzIGxvYWRzIGluZGVwZW5kZW50IG9mIHRoZSBuZXR3b3JraW5nIGNvbnRleHQgc3RheWlu
ZyBhbGl2ZSAoaS5lLiwgYXVkaXRpbmcgcGluZ2JhY2tzKS4KKy8vIFRoZSBvYmplY3QganVzdCBu
ZWVkcyB0byBsaXZlIGxvbmcgZW5vdWdoIHRvIGVuc3VyZSB0aGUgbWVzc2FnZSB3YXMgYWN0dWFs
bHkgc2VudC4KKy8vIEFzIHNvb24gYXMgYW55IGNhbGxiYWNrIGlzIHJlY2VpdmVkIGZyb20gdGhl
IFJlc291cmNlSGFuZGxlLCB0aGlzIGNsYXNzIHdpbGwgY2FuY2VsIHRoZSBsb2FkIGFuZCBkZWxl
dGUgaXRzZWxmLgorCitjbGFzcyBQaW5nSGFuZGxlIGZpbmFsIDogcHJpdmF0ZSBSZXNvdXJjZUhh
bmRsZUNsaWVudCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGluZ0hhbmRsZSk7IFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFBpbmdIYW5kbGUoTmV0d29ya2luZ0Nv
bnRleHQqIG5ldHdvcmtpbmdDb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wgc2hvdWxkRm9sbG93UmVkaXJl
Y3RzLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVzb3VyY2VFcnJvciYsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgOiBt
X2N1cnJlbnRSZXF1ZXN0KHJlcXVlc3QpCisgICAgICAgICwgbV90aW1lb3V0VGltZXIoKnRoaXMs
ICZQaW5nSGFuZGxlOjp0aW1lb3V0VGltZXJGaXJlZCkKKyAgICAgICAgLCBtX3Nob3VsZFVzZUNy
ZWRlbnRpYWxTdG9yYWdlKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKQorICAgICAgICAsIG1f
c2hvdWxkRm9sbG93UmVkaXJlY3RzKHNob3VsZEZvbGxvd1JlZGlyZWN0cykKKyAgICAgICAgLCBt
X2NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQorICAgIHsKKyAg
ICAgICAgYm9vbCBkZWZlcnNMb2FkaW5nID0gZmFsc2U7CisgICAgICAgIGJvb2wgc2hvdWxkQ29u
dGVudFNuaWZmID0gZmFsc2U7CisgICAgICAgIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25p
ZmYgPSB0cnVlOworICAgICAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobmV0
d29ya2luZ0NvbnRleHQsIHJlcXVlc3QsIHRoaXMsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRl
bnRTbmlmZiwgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpOworCisgICAgICAgIC8vIElmIHRo
ZSBzZXJ2ZXIgbmV2ZXIgcmVzcG9uZHMsIHRoaXMgb2JqZWN0IHdpbGwgaGFuZyBhcm91bmQgZm9y
ZXZlci4KKyAgICAgICAgLy8gU2V0IGEgdmVyeSBnZW5lcm91cyB0aW1lb3V0LCBqdXN0IGluIGNh
c2UuCisgICAgICAgIG1fdGltZW91dFRpbWVyLnN0YXJ0T25lU2hvdCg2MDAwMF9zKTsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3RBc3luYyhSZXNvdXJjZUhhbmRs
ZSosIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIp
IGZpbmFsCisgICAgeworICAgICAgICBtX2N1cnJlbnRSZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0
KTsKKyAgICAgICAgaWYgKG1fc2hvdWxkRm9sbG93UmVkaXJlY3RzKSB7CisgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihSZXNvdXJjZVJlcXVlc3QgeyBtX2N1cnJlbnRSZXF1ZXN0IH0pOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KHsgfSk7CisgICAgICAgIHBpbmdMb2FkQ29tcGxldGUoUmVzb3VyY2VFcnJvciB7IFN0cmluZygp
LCAwLCBtX2N1cnJlbnRSZXF1ZXN0LnVybCgpLCBBU0NJSUxpdGVyYWwoIk5vdCBhbGxvd2VkIHRv
IGZvbGxvdyByZWRpcmVjdHMiKSwgUmVzb3VyY2VFcnJvcjo6VHlwZTo6QWNjZXNzQ29udHJvbCB9
KTsKKyAgICB9CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRs
ZSosIFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAorICAgIHsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoKTsKKyAgICAgICAgcGluZ0xvYWRDb21wbGV0ZSh7IH0sIHJlc3BvbnNlKTsKKyAgICB9
CisgICAgdm9pZCBkaWRSZWNlaXZlQnVmZmVyKFJlc291cmNlSGFuZGxlKiwgUmVmPFNoYXJlZEJ1
ZmZlcj4mJiwgaW50KSBmaW5hbCB7IHBpbmdMb2FkQ29tcGxldGUoKTsgfQorICAgIHZvaWQgZGlk
RmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopIGZpbmFsIHsgcGluZ0xvYWRDb21wbGV0ZSgp
OyB9CisgICAgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJv
ciYgZXJyb3IpIGZpbmFsIHsgcGluZ0xvYWRDb21wbGV0ZShlcnJvcik7IH0KKyAgICBib29sIHNo
b3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFJlc291cmNlSGFuZGxlKikgZmluYWwgeyByZXR1cm4g
bV9zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZTsgfQorICAgIHZvaWQgdGltZW91dFRpbWVyRmly
ZWQoKSB7IHBpbmdMb2FkQ29tcGxldGUoUmVzb3VyY2VFcnJvciB7IFN0cmluZygpLCAwLCBtX2N1
cnJlbnRSZXF1ZXN0LnVybCgpLCBBU0NJSUxpdGVyYWwoIkxvYWQgdGltZWQgb3V0IiksIFJlc291
cmNlRXJyb3I6OlR5cGU6OlRpbWVvdXQgfSk7IH0KKyNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9B
VVRIX0NBTExCQUNLKQorICAgIHZvaWQgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25T
cGFjZUFzeW5jKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICB7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgcGluZ0xvYWRDb21wbGV0ZShS
ZXNvdXJjZUVycm9yIHsgU3RyaW5nIHsgfSwgMCwgbV9jdXJyZW50UmVxdWVzdC51cmwoKSwgQVND
SUlMaXRlcmFsKCJOb3QgYWxsb3dlZCB0byBhdXRoZW50aWNhdGUiKSwgUmVzb3VyY2VFcnJvcjo6
VHlwZTo6QWNjZXNzQ29udHJvbCB9KTsKKyAgICB9CisjZW5kaWYKKworICAgIHZvaWQgcGluZ0xv
YWRDb21wbGV0ZShjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciA9IHsgfSwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UgPSB7IH0pCisgICAgeworICAgICAgICBpZiAoYXV0byBjb21w
bGV0aW9uSGFuZGxlciA9IHN0ZDo6ZXhjaGFuZ2UobV9jb21wbGV0aW9uSGFuZGxlciwgbnVsbHB0
cikpCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihlcnJvciwgcmVzcG9uc2UpOworICAg
ICAgICBkZWxldGUgdGhpczsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5QaW5nSGFuZGxlKCkKKyAg
ICB7CisgICAgICAgIEFTU0VSVCghbV9jb21wbGV0aW9uSGFuZGxlcik7CisgICAgICAgIGlmICht
X2hhbmRsZSkgeworICAgICAgICAgICAgQVNTRVJUKG1faGFuZGxlLT5jbGllbnQoKSA9PSB0aGlz
KTsKKyAgICAgICAgICAgIG1faGFuZGxlLT5jbGVhckNsaWVudCgpOworICAgICAgICAgICAgbV9o
YW5kbGUtPmNhbmNlbCgpOworICAgICAgICB9CisgICAgfQorCisgICAgUmVmUHRyPFJlc291cmNl
SGFuZGxlPiBtX2hhbmRsZTsKKyAgICBSZXNvdXJjZVJlcXVlc3QgbV9jdXJyZW50UmVxdWVzdDsK
KyAgICBUaW1lciBtX3RpbWVvdXRUaW1lcjsKKyAgICBib29sIG1fc2hvdWxkVXNlQ3JlZGVudGlh
bFN0b3JhZ2U7CisgICAgYm9vbCBtX3Nob3VsZEZvbGxvd1JlZGlyZWN0czsKKyAgICBXVEY6OkNv
bXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVzb3VyY2VFcnJvciYsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmKT4gbV9jb21wbGV0aW9uSGFuZGxlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvUGluZ0hhbmRs
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvUGlu
Z0hhbmRsZS5oCShyZXZpc2lvbiAyMzAwNzcpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNv
cmVTdXBwb3J0L1BpbmdIYW5kbGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsMjEgKzI1LDIyIEBA
CiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKLSNpbmNsdWRl
ICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgotI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRs
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGVDbGllbnQuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VS
ZXNwb25zZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGltZXIuaD4KICNpbmNsdWRlIDx3dGYvQ29t
cGxldGlvbkhhbmRsZXIuaD4KIAotbmFtZXNwYWNlIFdlYkNvcmUgewotCiAvLyBUaGlzIGNsYXNz
IHRyaWdnZXJzIGFzeW5jaHJvbm91cyBsb2FkcyBpbmRlcGVuZGVudCBvZiB0aGUgbmV0d29ya2lu
ZyBjb250ZXh0IHN0YXlpbmcgYWxpdmUgKGkuZS4sIGF1ZGl0aW5nIHBpbmdiYWNrcykuCiAvLyBU
aGUgb2JqZWN0IGp1c3QgbmVlZHMgdG8gbGl2ZSBsb25nIGVub3VnaCB0byBlbnN1cmUgdGhlIG1l
c3NhZ2Ugd2FzIGFjdHVhbGx5IHNlbnQuCiAvLyBBcyBzb29uIGFzIGFueSBjYWxsYmFjayBpcyBy
ZWNlaXZlZCBmcm9tIHRoZSBSZXNvdXJjZUhhbmRsZSwgdGhpcyBjbGFzcyB3aWxsIGNhbmNlbCB0
aGUgbG9hZCBhbmQgZGVsZXRlIGl0c2VsZi4KIAotY2xhc3MgUGluZ0hhbmRsZSBmaW5hbCA6IHBy
aXZhdGUgUmVzb3VyY2VIYW5kbGVDbGllbnQgeworY2xhc3MgUGluZ0hhbmRsZSBmaW5hbCA6IHBy
aXZhdGUgV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVDbGllbnQgewogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFBpbmdIYW5kbGUpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAg
ICBQaW5nSGFuZGxlKE5ldHdvcmtpbmdDb250ZXh0KiBuZXR3b3JraW5nQ29udGV4dCwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdl
LCBib29sIHNob3VsZEZvbGxvd1JlZGlyZWN0cywgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGNvbnN0IFJlc291cmNlRXJyb3ImLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCisgICAgUGluZ0hhbmRsZShXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCog
bmV0d29ya2luZ0NvbnRleHQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgYm9vbCBzaG91bGRGb2xsb3dSZWRp
cmVjdHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKICAgICAgICAgOiBtX2N1cnJlbnRSZXF1ZXN0KHJlcXVlc3QpCiAgICAgICAgICwgbV90aW1l
b3V0VGltZXIoKnRoaXMsICZQaW5nSGFuZGxlOjp0aW1lb3V0VGltZXJGaXJlZCkKICAgICAgICAg
LCBtX3Nob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdl
KQpAQCAtNDksNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgZGVmZXJzTG9hZGluZyA9
IGZhbHNlOwogICAgICAgICBib29sIHNob3VsZENvbnRlbnRTbmlmZiA9IGZhbHNlOwogICAgICAg
ICBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmID0gdHJ1ZTsKLSAgICAgICAgbV9oYW5k
bGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG5ldHdvcmtpbmdDb250ZXh0LCByZXF1ZXN0LCB0
aGlzLCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmKTsKKyAgICAgICAgbV9oYW5kbGUgPSBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6
Y3JlYXRlKG5ldHdvcmtpbmdDb250ZXh0LCByZXF1ZXN0LCB0aGlzLCBkZWZlcnNMb2FkaW5nLCBz
aG91bGRDb250ZW50U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKIAogICAgICAg
ICAvLyBJZiB0aGUgc2VydmVyIG5ldmVyIHJlc3BvbmRzLCB0aGlzIG9iamVjdCB3aWxsIGhhbmcg
YXJvdW5kIGZvcmV2ZXIuCiAgICAgICAgIC8vIFNldCBhIHZlcnkgZ2VuZXJvdXMgdGltZW91dCwg
anVzdCBpbiBjYXNlLgpAQCAtNTcsMzUgKzU4LDM1IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZh
dGU6Ci0gICAgdm9pZCB3aWxsU2VuZFJlcXVlc3RBc3luYyhSZXNvdXJjZUhhbmRsZSosIFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCisg
ICAgdm9pZCB3aWxsU2VuZFJlcXVlc3RBc3luYyhXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJik+
JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCiAgICAgewogICAgICAgICBtX2N1cnJlbnRSZXF1
ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KTsKICAgICAgICAgaWYgKG1fc2hvdWxkRm9sbG93UmVkaXJl
Y3RzKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihSZXNvdXJjZVJlcXVlc3QgeyBt
X2N1cnJlbnRSZXF1ZXN0IH0pOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0IHsgbV9jdXJyZW50UmVxdWVzdCB9KTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwotICAgICAg
ICBwaW5nTG9hZENvbXBsZXRlKFJlc291cmNlRXJyb3IgeyBTdHJpbmcoKSwgMCwgbV9jdXJyZW50
UmVxdWVzdC51cmwoKSwgQVNDSUlMaXRlcmFsKCJOb3QgYWxsb3dlZCB0byBmb2xsb3cgcmVkaXJl
Y3RzIiksIFJlc291cmNlRXJyb3I6OlR5cGU6OkFjY2Vzc0NvbnRyb2wgfSk7CisgICAgICAgIHBp
bmdMb2FkQ29tcGxldGUoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciB7IFN0cmluZygpLCAwLCBtX2N1
cnJlbnRSZXF1ZXN0LnVybCgpLCBBU0NJSUxpdGVyYWwoIk5vdCBhbGxvd2VkIHRvIGZvbGxvdyBy
ZWRpcmVjdHMiKSwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcjo6VHlwZTo6QWNjZXNzQ29udHJvbCB9
KTsKICAgICB9Ci0gICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRs
ZSosIFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAorICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
QXN5bmMoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikgZmluYWwKICAgICB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAgIHBp
bmdMb2FkQ29tcGxldGUoeyB9LCByZXNwb25zZSk7CiAgICAgfQotICAgIHZvaWQgZGlkUmVjZWl2
ZUJ1ZmZlcihSZXNvdXJjZUhhbmRsZSosIFJlZjxTaGFyZWRCdWZmZXI+JiYsIGludCkgZmluYWwg
eyBwaW5nTG9hZENvbXBsZXRlKCk7IH0KLSAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3Vy
Y2VIYW5kbGUqKSBmaW5hbCB7IHBpbmdMb2FkQ29tcGxldGUoKTsgfQotICAgIHZvaWQgZGlkRmFp
bChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKSBmaW5hbCB7IHBp
bmdMb2FkQ29tcGxldGUoZXJyb3IpOyB9Ci0gICAgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3Rv
cmFnZShSZXNvdXJjZUhhbmRsZSopIGZpbmFsIHsgcmV0dXJuIG1fc2hvdWxkVXNlQ3JlZGVudGlh
bFN0b3JhZ2U7IH0KLSAgICB2b2lkIHRpbWVvdXRUaW1lckZpcmVkKCkgeyBwaW5nTG9hZENvbXBs
ZXRlKFJlc291cmNlRXJyb3IgeyBTdHJpbmcoKSwgMCwgbV9jdXJyZW50UmVxdWVzdC51cmwoKSwg
QVNDSUlMaXRlcmFsKCJMb2FkIHRpbWVkIG91dCIpLCBSZXNvdXJjZUVycm9yOjpUeXBlOjpUaW1l
b3V0IH0pOyB9CisgICAgdm9pZCBkaWRSZWNlaXZlQnVmZmVyKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlKiwgUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiwgaW50KSBmaW5hbCB7IHBpbmdMb2Fk
Q29tcGxldGUoKTsgfQorICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZyhXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZSopIGZpbmFsIHsgcGluZ0xvYWRDb21wbGV0ZSgpOyB9CisgICAgdm9pZCBkaWRGYWls
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYg
ZXJyb3IpIGZpbmFsIHsgcGluZ0xvYWRDb21wbGV0ZShlcnJvcik7IH0KKyAgICBib29sIHNob3Vs
ZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKikgZmluYWwgeyBy
ZXR1cm4gbV9zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZTsgfQorICAgIHZvaWQgdGltZW91dFRp
bWVyRmlyZWQoKSB7IHBpbmdMb2FkQ29tcGxldGUoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciB7IFN0
cmluZygpLCAwLCBtX2N1cnJlbnRSZXF1ZXN0LnVybCgpLCBBU0NJSUxpdGVyYWwoIkxvYWQgdGlt
ZWQgb3V0IiksIFdlYkNvcmU6OlJlc291cmNlRXJyb3I6OlR5cGU6OlRpbWVvdXQgfSk7IH0KICNp
ZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQotICAgIHZvaWQgY2FuQXV0aGVu
dGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZUFzeW5jKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
UHJvdGVjdGlvblNwYWNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKKyAgICB2b2lkIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3Bh
Y2VBc3luYyhXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFdlYkNvcmU6OlByb3RlY3Rp
b25TcGFjZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiAgICAgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAgICAgIHBp
bmdMb2FkQ29tcGxldGUoUmVzb3VyY2VFcnJvciB7IFN0cmluZyB7IH0sIDAsIG1fY3VycmVudFJl
cXVlc3QudXJsKCksIEFTQ0lJTGl0ZXJhbCgiTm90IGFsbG93ZWQgdG8gYXV0aGVudGljYXRlIiks
IFJlc291cmNlRXJyb3I6OlR5cGU6OkFjY2Vzc0NvbnRyb2wgfSk7CisgICAgICAgIHBpbmdMb2Fk
Q29tcGxldGUoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciB7IFN0cmluZyB7IH0sIDAsIG1fY3VycmVu
dFJlcXVlc3QudXJsKCksIEFTQ0lJTGl0ZXJhbCgiTm90IGFsbG93ZWQgdG8gYXV0aGVudGljYXRl
IiksIFdlYkNvcmU6OlJlc291cmNlRXJyb3I6OlR5cGU6OkFjY2Vzc0NvbnRyb2wgfSk7CiAgICAg
fQogI2VuZGlmCiAKLSAgICB2b2lkIHBpbmdMb2FkQ29tcGxldGUoY29uc3QgUmVzb3VyY2VFcnJv
ciYgZXJyb3IgPSB7IH0sIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlID0geyB9KQor
ICAgIHZvaWQgcGluZ0xvYWRDb21wbGV0ZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBl
cnJvciA9IHsgfSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UgPSB7
IH0pCiAgICAgewogICAgICAgICBpZiAoYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IHN0ZDo6ZXhj
aGFuZ2UobV9jb21wbGV0aW9uSGFuZGxlciwgbnVsbHB0cikpCiAgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihlcnJvciwgcmVzcG9uc2UpOwpAQCAtMTAyLDEyICsxMDMsMTAgQEAgcHJpdmF0
ZToKICAgICAgICAgfQogICAgIH0KIAotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gbV9oYW5k
bGU7Ci0gICAgUmVzb3VyY2VSZXF1ZXN0IG1fY3VycmVudFJlcXVlc3Q7Ci0gICAgVGltZXIgbV90
aW1lb3V0VGltZXI7CisgICAgUmVmUHRyPFdlYkNvcmU6OlJlc291cmNlSGFuZGxlPiBtX2hhbmRs
ZTsKKyAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgbV9jdXJyZW50UmVxdWVzdDsKKyAgICBX
ZWJDb3JlOjpUaW1lciBtX3RpbWVvdXRUaW1lcjsKICAgICBib29sIG1fc2hvdWxkVXNlQ3JlZGVu
dGlhbFN0b3JhZ2U7CiAgICAgYm9vbCBtX3Nob3VsZEZvbGxvd1JlZGlyZWN0czsKLSAgICBXVEY6
OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVzb3VyY2VFcnJvciYsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKT4gbV9jb21wbGV0aW9uSGFuZGxlcjsKKyAgICBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJik+IG1fY29tcGxldGlvbkhhbmRsZXI7CiB9OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJl
c291cmNlTG9hZFNjaGVkdWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2Fj
eS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCShyZXZpc2lvbiAy
MzAwNzcpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNl
TG9hZFNjaGVkdWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2lu
Y2x1ZGUgIldlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oIgogCisjaW5jbHVkZSAiUGluZ0hhbmRs
ZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rv
Y3VtZW50TG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GZXRjaE9wdGlvbnMuaD4KQEAgLTMx
LDcgKzMyLDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
TmV0d29ya1N0YXRlTm90aWZpZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1BpbmdIYW5kbGUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU3RyYXRlZ2llcy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdWJyZXNvdXJjZUxvYWRl
ci5oPgpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9XZWJLaXRMZWdhY3kueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L1dlYktpdExl
Z2FjeS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMzAwNzcpCisrKyBTb3Vy
Y2UvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC0xNDksNiArMTQ5LDcgQEAKIAkJNTk4QUQ5MjgxMjAxQ0YzMjAwQUJB
RTRFIC8qIFdlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJNb2NrLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTk4QUQ5MjcxMjAxQ0YzMjAwQUJBRTRF
IC8qIFdlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJNb2NrLm1tICovOyB9OwogCQk1OThBRDky
QTEyMDFDRjNCMDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2tJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTk4
QUQ5MjkxMjAxQ0YzQjAwQUJBRTRFIC8qIFdlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJNb2Nr
SW50ZXJuYWwuaCAqLzsgfTsKIAkJNTk4QURBNDYxMjAyMjc1MDAwQUJBRTRFIC8qIFdlYkRldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU5OEFEQTQ1MTIwMjI3NTAwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRh
dGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJNUNFNDRGNEEyMDZENzBFQTAwM0VGRDAxIC8qIFBpbmdIYW5kbGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDRTQ0RjQ5MjA2RDcwRTkw
MDNFRkQwMSAvKiBQaW5nSGFuZGxlLmggKi87IH07CiAJCTVEN0JGODE0MEMyQTFEOTAwMDhDRTA2
RCAvKiBXZWJJbnNwZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDVEN0JGODEyMEMyQTFEOTAwMDhDRTA2RCAvKiBXZWJJbnNwZWN0b3IuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1RDdCRjgxNTBD
MkExRDkwMDA4Q0UwNkQgLyogV2ViSW5zcGVjdG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQ3QkY4MTMwQzJBMUQ5MDAwOENFMDZEIC8qIFdlYklu
c3BlY3Rvci5tbSAqLzsgfTsKIAkJNURFODNBN0EwRDBGN0Y5NDAwQ0FEMTJBIC8qIFdlYkphdmFT
Y3JpcHRUZXh0SW5wdXRQYW5lbC5uaWIgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDVERTgzQTc0MEQwRjdGOTQwMENBRDEyQSAvKiBXZWJKYXZhU2NyaXB0
VGV4dElucHV0UGFuZWwubmliICovOyB9OwpAQCAtOTg4LDYgKzk4OSw3IEBACiAJCTU5OEFEOTI3
MTIwMUNGMzIwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyTW9jay5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkRldmljZU9yaWVudGF0
aW9uUHJvdmlkZXJNb2NrLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OThBRDky
OTEyMDFDRjNCMDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2tJbnRl
cm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEZXZpY2VPcmllbnRh
dGlvblByb3ZpZGVyTW9ja0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTU5OEFEQTQ1MTIwMjI3NTAwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRldmljZU9yaWVudGF0aW9u
UHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUNFNDRGNDkyMDZENzBF
OTAwM0VGRDAxIC8qIFBpbmdIYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gUGluZ0hhbmRsZS5oOyBwYXRoID0gV2ViQ29yZVN1cHBvcnQvUGluZ0hhbmRsZS5oOyBzb3Vy
Y2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTVEN0JGODEyMEMyQTFEOTAwMDhDRTA2RCAvKiBX
ZWJJbnNwZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkluc3Bl
Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDdCRjgxMzBDMkExRDkwMDA4
Q0UwNkQgLyogV2ViSW5zcGVjdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdlYkluc3BlY3Rvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NURFODNBNzUwRDBGN0Y5NDAwQ0FEMTJBIC8qIEVuZ2xpc2ggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLm5pYjsgbmFtZSA9IEVuZ2xpc2g7
IHBhdGggPSBFbmdsaXNoLmxwcm9qL1dlYkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbC5uaWI7IHNv
dXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKQEAgLTI1NjAsNiArMjU2Miw3IEBACiAJCQkJQTEw
QzFENDQxODIwMkZGQjAwMzY4ODNBIC8qIGlvcyAqLywKIAkJCQlCODI5NThEMTEzMjcwN0QwMDAw
RDBFNzkgLyogQ29ycmVjdGlvblBhbmVsLmggKi8sCiAJCQkJQjgyOTU4RDIxMzI3MDdEMDAwMEQw
RTc5IC8qIENvcnJlY3Rpb25QYW5lbC5tbSAqLywKKwkJCQk1Q0U0NEY0OTIwNkQ3MEU5MDAzRUZE
MDEgLyogUGluZ0hhbmRsZS5oICovLAogCQkJCTdDMDFDQjgxMTczNDM1QzkwMEM1RDgwNyAvKiBQ
b3B1cE1lbnVNYWMuaCAqLywKIAkJCQk3QzAxQ0I4MjE3MzQzNUM5MDBDNUQ4MDcgLyogUG9wdXBN
ZW51TWFjLm1tICovLAogCQkJCTdDMDFDQjgzMTczNDM1QzkwMEM1RDgwNyAvKiBTZWFyY2hQb3B1
cE1lbnVNYWMuaCAqLywKQEAgLTI5MzgsNiArMjk0MSw3IEBACiAJCQkJMUFBRjVDRUUwRURERTFG
RTAwOEQ4ODNEIC8qIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTNENDM3OUIxRDU3QUJFRjAwQUI4NUVBIC8qIE9iakNFdmVudExpc3RlbmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5M0Q0Mzc5RDFENTdBQkVGMDBBQjg1RUEgLyogT2JqQ05vZGVGaWx0
ZXJDb25kaXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTVDRTQ0RjRBMjA2RDcwRUEwMDNFRkQw
MSAvKiBQaW5nSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTBDMUQ1RjE4MjAzMDBFMDAz
Njg4M0EgLyogUG9wdXBNZW51SU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzAxQ0I4NTE3MzQz
NUM5MDBDNUQ4MDcgLyogUG9wdXBNZW51TWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTJEQkU5
RjBGMjUxRTNBMDAzNkY4QTYgLyogUHJveHlJbnN0YW5jZS5oIGluIEhlYWRlcnMgKi8sCg==
</data>
<flag name="review"
          id="355285"
          type_id="1"
          status="+"
          setter="youennf"
    />
          </attachment>
      

    </bug>

</bugzilla>