<?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>189004</bug_id>
          
          <creation_ts>2018-08-27 14:20:41 -0700</creation_ts>
          <short_desc>[Attachment Support] Remove WebCore::AttachmentDisplayOptions and friends</short_desc>
          <delta_ts>2018-08-27 17:28:59 -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>WebCore Misc.</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>DoNotImportToRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1454079</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-08-27 14:20:41 -0700</bug_when>
    <thetext>This class no longer serves a purpose, now that we have a plan for inline image and video attachment presentation that does not involve using _WKAttachmentDisplayOptions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454106</commentid>
    <comment_count>1</comment_count>
      <attachid>348205</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-08-27 14:55:43 -0700</bug_when>
    <thetext>Created attachment 348205
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454125</commentid>
    <comment_count>2</comment_count>
      <attachid>348210</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-08-27 15:19:38 -0700</bug_when>
    <thetext>Created attachment 348210
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454231</commentid>
    <comment_count>3</comment_count>
      <attachid>348210</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-27 17:28:58 -0700</bug_when>
    <thetext>Comment on attachment 348210
Patch for EWS

Clearing flags on attachment: 348210

Committed r235414: &lt;https://trac.webkit.org/changeset/235414&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454232</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-27 17:28:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348205</attachid>
            <date>2018-08-27 14:55:43 -0700</date>
            <delta_ts>2018-08-27 15:19:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189004-20180827145542.patch</filename>
            <type>text/plain</type>
            <size>34910</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjgwZjQ3MWUyYTJjOGQx
N2VlNGJmNDNlNTYzMzQ4YmRiODc1MjI3ZS4uOWRhMGY0MDhjMTU2MTY2MjE2YjZmN2QyMDZhOGUw
MWEzNzEyYTllOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE4LTA4LTI3ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtBdHRhY2htZW50
IFN1cHBvcnRdIFJlbW92ZSBXZWJDb3JlOjpBdHRhY2htZW50RGlzcGxheU9wdGlvbnMgYW5kIGZy
aWVuZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
OTAwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cywgc2luY2UgdGhlcmUgaXMgbm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGVkaXRp
bmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6aW5zZXJ0QXR0YWNobWVu
dCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBodG1sL0F0dGFjaG1l
bnRUeXBlcy5oOiBSZW1vdmVkLgorICAgICAgICAqIGh0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50
Lmg6CisKIDIwMTgtMDgtMjcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CiAKICAgICAgICAgW0NvY29hXSBFeGNlcHRpb24gKGZpbGVUeXBlICdkeW4uYWdxOHUnIGlzIG5v
dCBhIHZhbGlkIFVUSSkgcmFpc2VkIHdoZW4gZHJhZ2dpbmcgYW4gYXR0YWNobWVudCB3aG9zZSBm
aWxlIHdyYXBwZXIgaXMgYSBkaXJlY3RvcnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYjA5MzM2NjRkZWYxZmFmMThj
MDMxMjFhNmJiODIzODRmY2FhMjEyZS4uYjUxZmEzOTJmMGM0NjkzOTlhNjg3NDM3MWQ4Y2I4ZmMx
N2ZkMjFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAxOC0wOC0yNyAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbQXR0YWNobWVudCBTdXBw
b3J0XSBSZW1vdmUgV2ViQ29yZTo6QXR0YWNobWVudERpc3BsYXlPcHRpb25zIGFuZCBmcmllbmRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODkwMDQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVz
IGFsbCB1c2FnZSBvZiBXZWJDb3JlOjpBdHRhY2htZW50RGlzcGxheU9wdGlvbnMsIGFuZCBkZWxl
dGVzIGFuIFNQSSBtZXRob2QgdGhhdCBpc24ndCBiZWluZyB1c2VkIGJ5IGFueQorICAgICAgICBp
bnRlcm5hbCBjbGllbnRzLiBSZW1vdmFsIG9mIF9XS0F0dGFjaG1lbnREaXNwbGF5T3B0aW9ucyBp
dHNlbGYgaXMgc3RpbGwgYmxvY2tlZCBvbiB0aGUgc3VibWlzc2lvbiBvZgorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNDMzNTcyODE+LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9BUElBdHRhY2htZW50LmNwcDoKKyAgICAgICAgKEFQSTo6QXR0
YWNobWVudDo6c2V0RGlzcGxheU9wdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQVBJQXR0YWNobWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2luc2VydEF0dGFjaG1lbnRXaXRoRmls
ZW5hbWU6Y29udGVudFR5cGU6ZGF0YTpvcHRpb25zOmNvbXBsZXRpb246XSk6CisgICAgICAgICgt
W1dLV2ViVmlldyBfaW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlV3JhcHBlcjpjb250ZW50VHlwZTpv
cHRpb25zOmNvbXBsZXRpb246XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfaW5zZXJ0QXR0YWNo
bWVudFdpdGhGaWxlV3JhcHBlcjpjb250ZW50VHlwZTpjb21wbGV0aW9uOl0pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorCisgICAgICAgIERlcHJl
Y2F0ZSAtX2luc2VydEF0dGFjaG1lbnRXaXRoRmlsZVdyYXBwZXI6Y29udGVudFR5cGU6b3B0aW9u
czpjb21wbGV0aW9uOiwgaW4gZmF2b3Igb2YKKyAgICAgICAgLV9pbnNlcnRBdHRhY2htZW50V2l0
aEZpbGVXcmFwcGVyOmNvbnRlbnRUeXBlOmNvbXBsZXRpb246LgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tBdHRhY2htZW50Lmg6CisKKyAgICAgICAgUmVtb3ZlIC1zZXREaXNw
bGF5T3B0aW9uczpjb21wbGV0aW9uOiwgc2luY2UgaXQgaXMgYSBub3cgYSBub29wLCBhbmQgYWxz
byBpc24ndCB1c2VkIGJ5IGFueSBpbnRlcm5hbCBjbGllbnRzLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tBdHRhY2htZW50Lm1tOgorICAgICAgICAoLVtfV0tBdHRhY2htZW50
RGlzcGxheU9wdGlvbnMgY29yZURpc3BsYXlPcHRpb25zXSk6IERlbGV0ZWQuCisgICAgICAgICgt
W19XS0F0dGFjaG1lbnQgc2V0RGlzcGxheU9wdGlvbnM6Y29tcGxldGlvbjpdKTogRGVsZXRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0dGFjaG1lbnRJbnRlcm5hbC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6Omluc2VydEF0dGFjaG1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnNldEF0dGFjaG1lbnREaXNwbGF5T3B0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aW5zZXJ0QXR0YWNobWVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldEF0dGFjaG1lbnREaXNwbGF5T3B0aW9ucyk6
IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAxOC0wOC0y
NyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29j
b2FdIEV4Y2VwdGlvbiAoZmlsZVR5cGUgJ2R5bi5hZ3E4dScgaXMgbm90IGEgdmFsaWQgVVRJKSBy
YWlzZWQgd2hlbiBkcmFnZ2luZyBhbiBhdHRhY2htZW50IHdob3NlIGZpbGUgd3JhcHBlciBpcyBh
IGRpcmVjdG9yeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDcyNTVkMjY1Yzc3MjE1ZWMwOWJhMzhkOTY3Y2E0Y2Q3ZThhYTE2NTgu
LmI2ZGY3NDhhNmQxOTA0ODViMThjM2Q1OGNiNTE4M2JiYWRiODJmODkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ4MDYsNyAr
NDgwNiw2IEBACiAJCUYzQUJGRTBDMTMwRTlEQTAwMEU3RjdEMSAvKiBJbnN0cnVtZW50aW5nQWdl
bnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGM0FC
RkUwQjEzMEU5REEwMDBFN0Y3RDEgLyogSW5zdHJ1bWVudGluZ0FnZW50cy5oICovOyB9OwogCQlG
M0Q0NjE0OTExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQw
OSAvKiBKU0Vycm9ySGFuZGxlci5oICovOyB9OwogCQlGNDMzRTkwMzFEQkJEQkEyMDBFRjBEMTQg
LyogU3RhdGljUGFzdGVib2FyZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjQzM0U5MDIxREJCREJBMjAwRUYwRDE0IC8qIFN0YXRpY1Bhc3RlYm9hcmQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlGNDM3
NTlCNDFGQ0Y0OEZBMDAxMDA3MDYgLyogQXR0YWNobWVudFR5cGVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDM3NTlCMzFGQ0Y0OEZBMDAxMDA3MDYg
LyogQXR0YWNobWVudFR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJRjQ0QTVGNTkxRkVEMzhGMjAwN0Y1OTQ0IC8qIExlZ2FjeU5TUGFzdGVi
b2FyZFR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNDRBNUY1NzFGRUQzODMwMDA3RjU5NDQgLyogTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDRFQkJE
OTFEQjVEMjE0MDAyNzczMzQgLyogU3RhdGljUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NEVCQkQ4MURCNUQyMTQwMDI3NzMzNCAvKiBTdGF0
aWNSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUY0NUMyMzFFMTk5NUI3M0IwMEE2RTJFMyAvKiBBeGlzU2Nyb2xsU25hcE9mZnNldHMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NUMyMzFDMTk5
NUI3M0IwMEE2RTJFMyAvKiBBeGlzU2Nyb2xsU25hcE9mZnNldHMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTQ0NTgsNyArMTQ0NTcsNiBAQAog
CQlGM0Q0NjE0NzExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFcnJvckhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjQzM0U5MDIxREJCREJBMjAwRUYwRDE0IC8qIFN0YXRpY1Bhc3RlYm9h
cmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RhdGljUGFzdGVib2FyZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDMzRTkwNDFEQkJEQkMyMDBFRjBEMTQg
LyogU3RhdGljUGFzdGVib2FyZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdGF0aWNQYXN0ZWJv
YXJkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjQzNzU5QjMxRkNGNDhGQTAw
MTAwNzA2IC8qIEF0dGFjaG1lbnRUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdHRhY2htZW50VHlw
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0QTVGNTcxRkVEMzgzMDAwN0Y1
OTQ0IC8qIExlZ2FjeU5TUGFzdGVib2FyZFR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2FjeU5T
UGFzdGVib2FyZFR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NEVCQkQ2
MURCNUQxQjYwMDI3NzMzNCAvKiBTdGF0aWNSYW5nZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gU3RhdGljUmFuZ2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRFQkJE
ODFEQjVEMjE0MDAyNzczMzQgLyogU3RhdGljUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3RhdGljUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE1MjQwLDggKzE1MjM4LDggQEAKIAkJCQk0MTEwM0FBNzFFMzk3OTBBMDA3NjlGMTQgLyogUmVh
bHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuY3BwICovLAogCQkJCTQxMTAzQUE4MUUzOTc5
MEEwMDc2OUYxNCAvKiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5oICovLAogCQkJ
CTVDREQ4MzNCMUU0MzI0QkIwMDYyMUI4MyAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VD
b2NvYS5jcHAgKi8sCi0JCQkJNDE5MjQyNDcyMTI3QjdDQzAwNjM0RkNGIC8qIFJlYWx0aW1lT3V0
Z29pbmdWaWRlb1NvdXJjZUNvY29hLm1tICovLAogCQkJCTVDREQ4MzNDMUU0MzI0QkIwMDYyMUI4
MyAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5oICovLAorCQkJCTQxOTI0MjQ3
MjEyN0I3Q0MwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5tbSAq
LywKIAkJCQkwNzBBOUY1RTFGRkVDQzcwMDAzREY2NDkgLyogU2NyZWVuRGlzcGxheUNhcHR1cmVT
b3VyY2VNYWMuaCAqLywKIAkJCQkwNzBBOUY2MDFGRkVDQzcxMDAzREY2NDkgLyogU2NyZWVuRGlz
cGxheUNhcHR1cmVTb3VyY2VNYWMubW0gKi8sCiAJCQkJMDdENjM3M0UxQkIwQjExMzAwMjU2Q0U5
IC8qIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggKi8sCkBAIC0yMDI4NCw3ICsyMDI4
Miw2IEBACiAJCQkJOTdDMUY1NTExMjI4NTU4ODAwRURFNjE2IC8qIHBhcnNlciAqLywKIAkJCQk0
MTUwRjlFRDEyQjZFMDk5MDAwOEM4NjAgLyogc2hhZG93ICovLAogCQkJCUIxQUQ0RTc3MTNBMTJB
NzIwMDg0NkIyNyAvKiB0cmFjayAqLywKLQkJCQlGNDM3NTlCMzFGQ0Y0OEZBMDAxMDA3MDYgLyog
QXR0YWNobWVudFR5cGVzLmggKi8sCiAJCQkJQTVGNkUxNkMxMzJFRDQ2RTAwOEVEQUUzIC8qIEF1
dG9jYXBpdGFsaXplLmNwcCAqLywKIAkJCQlBNTAxOTIwQzEzMkVCRjJFMDA4QkZFNTUgLyogQXV0
b2NhcGl0YWxpemUuaCAqLywKIAkJCQlBNUE3QUE0MjEzMkYwRUNDMDBEM0EzQzIgLyogQXV0b2Nh
cGl0YWxpemVUeXBlcy5oICovLApAQCAtMjcwMzcsNyArMjcwMzQsNiBAQAogCQkJCUZENTY4NkNB
MTNBQzE4MDIwMEI2OUM2OCAvKiBBc3luY0F1ZGlvRGVjb2Rlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRTFDREU5MjIxNTAxOTE2OTAwODYyQ0M1IC8qIEFzeW5jRmlsZVN0cmVhbS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZGRDRENjExODY1MUZBMzAwNTEyRjZFIC8qIEFzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCUY0Mzc1OUI0MUZDRjQ4RkEwMDEwMDcwNiAv
KiBBdHRhY2htZW50VHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QzRBODBEMDlENTYzMjcw
MDAzQUM4RCAvKiBBdHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEM0QTgwQjA5RDU2MzI3MDAw
M0FDOEQgLyogQXR0cmlidXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEE4MTREQTFDNzBFMTBE
MDBCRjg1QUMgLyogQXR0cmlidXRlQ2hhbmdlSW52YWxpZGF0aW9uLmggaW4gSGVhZGVycyAqLywK
QEAgLTMxNDQ2LDYgKzMxNDQyLDcgQEAKIAkJCQlBQTEyREY0OTE3NDNERjgzMDA0REFGREYgLyog
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEQTI5
QTMwMUNCRjc0RDQwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbSBp
biBTb3VyY2VzICovLAogCQkJCUNEQTI5QTE2MUNCREE1NkMwMDkwMUNDRiAvKiBQbGF5YmFja1Nl
c3Npb25JbnRlcmZhY2VNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQk0MTkyNDI0OTIxMjdCOTNF
MDA2MzRGQ0YgLyogUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EubW0gaW4gU291cmNl
cyAqLywKIAkJCQkzMTZEQ0I4QTFFN0E2OTk2MDAxQjVGODcgLyogUlRDSWNlVHJhbnNwb3J0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUJDNTExNTZFMTJCMTc0OUMwMEM5Njc1NCAvKiBTY3JvbGxB
bmltYXRvck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDRUY4NjlGMEU4NDRFOUQwMEE4NUNE
NSAvKiBTY3JvbGxiYXJUaGVtZU1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtMzE1NjYsNyArMzE1
NjMsNiBAQAogCQkJCTUzOEVDOEExMUY5OTNGOUQwMDREMjJBOCAvKiBVbmlmaWVkU291cmNlNDgu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJREU1Rjg1OTkxRkExQUJGNDAwNkRCNjNBIC8qIFVuaWZp
ZWRTb3VyY2U0OS1tbS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUzOEVDOEEyMUY5OTNGOUQwMDRE
MjJBOCAvKiBVbmlmaWVkU291cmNlNDkuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDE5MjQyNDky
MTI3QjkzRTAwNjM0RkNGIC8qIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJREU1Rjg1OUExRkExQUJGNDAwNkRCNjNBIC8qIFVuaWZpZWRTb3Vy
Y2U1MC1tbS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUzOEVDOEEzMUY5OTNGOUQwMDREMjJBOCAv
KiBVbmlmaWVkU291cmNlNTAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJREU1Rjg2NTAxRkEyQUYy
NDAwNkRCNjNBIC8qIFVuaWZpZWRTb3VyY2U1MS1tbS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDRlY2E5MTUwZDZhNzk5MGRlYzI3NDFjYTM2ZDRjNjhh
OWY1NzU2N2EuLjQzODczN2E1MjczYzg4OWFmODAyYzJmMzNlZGEyMGVhNjg5MGNmMzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTM4NzYsNyArMzg3Niw3IEBAIHZvaWQgRWRpdG9y
Ojpub3RpZnlDbGllbnRPZkF0dGFjaG1lbnRVcGRhdGVzKCkKICAgICB9CiB9CiAKLXZvaWQgRWRp
dG9yOjppbnNlcnRBdHRhY2htZW50KGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgQXR0
YWNobWVudERpc3BsYXlPcHRpb25zJiwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4mJiBmaWxlU2l6
ZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkKK3Zv
aWQgRWRpdG9yOjppbnNlcnRBdHRhY2htZW50KGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgc3Rk
OjpvcHRpb25hbDx1aW50NjRfdD4mJiBmaWxlU2l6ZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwg
Y29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkKIHsKICAgICBhdXRvIGF0dGFjaG1lbnQgPSBIVE1M
QXR0YWNobWVudEVsZW1lbnQ6OmNyZWF0ZShIVE1MTmFtZXM6OmF0dGFjaG1lbnRUYWcsIGRvY3Vt
ZW50KCkpOwogICAgIGF0dGFjaG1lbnQtPnNldFVuaXF1ZUlkZW50aWZpZXIoaWRlbnRpZmllcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCA2ZjVhYmJhYzJkYTk5Njk5ZTdhNTJlNTAwYmRl
ZDRiZmU0NmQxMjgwLi4zZDYzY2UxNDUxMTc0NWI5NDkwNGRmOTgwMzlkZmY4ZTYxZDdjNzg0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTk1LDcgKzk1LDYgQEAgZW51bSBjbGFzcyBNYWls
QmxvY2txdW90ZUhhbmRsaW5nIHsKIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiBj
bGFzcyBIVE1MQXR0YWNobWVudEVsZW1lbnQ7Ci1zdHJ1Y3QgQXR0YWNobWVudERpc3BsYXlPcHRp
b25zOwogI2VuZGlmCiAKIGVudW0gVGVtcG9yYXJ5U2VsZWN0aW9uT3B0aW9uIDogdWludDhfdCB7
CkBAIC01MDMsNyArNTAyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNHZXR0aW5nRGljdGlvbmFy
eVBvcHVwSW5mbygpIGNvbnN0IHsgcmV0dXJuIG1faXNHZXR0aW5nRGljdGlvbmFyeVBvcHVwSW5m
bzsgfQogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKLSAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGluc2VydEF0dGFjaG1lbnQoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBB
dHRhY2htZW50RGlzcGxheU9wdGlvbnMmLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiYmIGZpbGVT
aXplLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGluc2VydEF0dGFjaG1lbnQoY29uc3QgU3RyaW5nJiBp
ZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiYmIGZpbGVTaXplLCBjb25zdCBTdHJp
bmcmIGZpbGVOYW1lLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKICAgICB2b2lkIHJlZ2lz
dGVyQXR0YWNobWVudElkZW50aWZpZXIoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiAvKiBj
b250ZW50VHlwZSAqLywgY29uc3QgU3RyaW5nJiAvKiBwcmVmZXJyZWRGaWxlTmFtZSAqLywgUmVm
PFNoYXJlZEJ1ZmZlcj4mJik7CiAgICAgdm9pZCByZWdpc3RlckF0dGFjaG1lbnRJZGVudGlmaWVy
KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgLyogY29udGVudFR5cGUgKi8sIGNvbnN0IFN0
cmluZyYgLyogZmlsZVBhdGggKi8pOwogICAgIHZvaWQgY2xvbmVBdHRhY2htZW50RGF0YShjb25z
dCBTdHJpbmcmIGZyb21JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRvSWRlbnRpZmllcik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0F0dGFjaG1lbnRUeXBlcy5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9BdHRhY2htZW50VHlwZXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggODliYmNhYmFlOGYzNDEyYTdlZTU5MmJkNjZiMDlhZTg4Y2UyNDMwNC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0F0dGFjaG1lbnRUeXBlcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKLQot
I2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0cnVjdCBBdHRhY2htZW50RGlzcGxheU9wdGlv
bnMgewotICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBj
b25zdDsKLSAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxB
dHRhY2htZW50RGlzcGxheU9wdGlvbnM+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiBpbmxpbmUgdm9pZCBBdHRhY2htZW50RGlzcGxheU9wdGlvbnM6OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAotewotICAgIFVOVVNFRF9QQVJBTShlbmNvZGVy
KTsKLX0KLQotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gaW5saW5lIHN0ZDo6b3B0aW9uYWw8QXR0
YWNobWVudERpc3BsYXlPcHRpb25zPiBBdHRhY2htZW50RGlzcGxheU9wdGlvbnM6OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQotewotICAgIFVOVVNFRF9QQVJBTShkZWNvZGVyKTsKLSAgICByZXR1
cm4gQXR0YWNobWVudERpc3BsYXlPcHRpb25zKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2VuZGlmIC8vIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQXR0YWNobWVudEVsZW1lbnQuaAppbmRleCA2MWVhMTVhOTI4ZjBiYWE0NTJl
OWRmZmUxNzlhY2Y0ZWVkMzI3NjJkLi5iZjk0NDNjNmJmZTg4ODEzMDJiZjRhZDBkOWM2NGEzZWQ5
MTNkYTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50LmgK
QEAgLTI3LDcgKzI3LDYgQEAKIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAKLSNp
bmNsdWRlICJBdHRhY2htZW50VHlwZXMuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eQppbmRleCA3YWYxNjhjOTM0MTljYjMyOTQ1MjA2MGE0MTBjODcwM2VhMTBhMzU5Li4wNmJlYTFj
YzJmMGJkNjYyNmEwOTgwMDgxMmVkZDI2NzFkYThkNjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTM3Nyw3ICszNzcsNiBAQCBkZWYgaGVhZGVyc19mb3Jf
dHlwZSh0eXBlKToKICAgICAgICAgJ1dhbGxUaW1lJzogWyc8d3RmL1dhbGxUaW1lLmg+J10sCiAg
ICAgICAgICdTdHJpbmcnOiBbJzx3dGYvdGV4dC9XVEZTdHJpbmcuaD4nXSwKICAgICAgICAgJ1BB
TDo6U2Vzc2lvbklEJzogWyc8cGFsL1Nlc3Npb25JRC5oPiddLAotICAgICAgICAnV2ViQ29yZTo6
QXR0YWNobWVudERpc3BsYXlPcHRpb25zJzogWyc8V2ViQ29yZS9BdHRhY2htZW50VHlwZXMuaD4n
XSwKICAgICAgICAgJ1dlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncyc6IFsnPFdlYkNvcmUvQXV0
b3BsYXlFdmVudC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyc6IFsn
PFdlYkNvcmUvSlNET01FeGNlcHRpb25IYW5kbGluZy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6
RmlsZUNob29zZXJTZXR0aW5ncyc6IFsnPFdlYkNvcmUvRmlsZUNob29zZXIuaD4nXSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDM1M2Qz
Mjg1NDJmYjhlYTkxYjYzOTNkYTc3MWJlODU2NWJhMmU5NDAuLmY0NDQzOGY1NDQwOTE4MWNhMGUy
MDVjYmE2YzZiNWJlNzE4MWQxNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMjgsNyArMjgsNiBAQAogCiAjaW5jbHVkZSAiRGF0YVJl
ZmVyZW5jZS5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgotI2luY2x1ZGUgPFdlYkNv
cmUvQXR0YWNobWVudFR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRoZW50aWNhdGlvbkNo
YWxsZW5nZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQmxvYlBhcnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0NhY2hlUXVlcnlPcHRpb25zLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJQXR0YWNobWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJQXR0YWNobWVudC5jcHAKaW5kZXggMDczYTQ0Y2U0NDg2Y2FmZDYyZTI1Y2JkZThlOWZiYzkz
YmNjN2Y0Ni4uNjQxMDZjNjc1ODBhNDNiYWEyYzJjZWRmMjc5NWRiZGJlMzc5ZmMyZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUF0dGFjaG1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElBdHRhY2htZW50LmNwcApAQCAtMjgsNyAr
MjgsNiBAQAogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKIAotI2luY2x1ZGUgPFdl
YkNvcmUvQXR0YWNobWVudFR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNDksMTQgKzQ4LDYgQEAg
QXR0YWNobWVudDo6fkF0dGFjaG1lbnQoKQogewogfQogCi12b2lkIEF0dGFjaG1lbnQ6OnNldERp
c3BsYXlPcHRpb25zKFdlYkNvcmU6OkF0dGFjaG1lbnREaXNwbGF5T3B0aW9ucyBvcHRpb25zLCBG
dW5jdGlvbjx2b2lkKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2spCi17
Ci0gICAgaWYgKG1fd2ViUGFnZSkKLSAgICAgICAgbV93ZWJQYWdlLT5zZXRBdHRhY2htZW50RGlz
cGxheU9wdGlvbnMobV9pZGVudGlmaWVyLCBvcHRpb25zLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0g
ICAgZWxzZQotICAgICAgICBjYWxsYmFjayhXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3I6Ok93
bmVyV2FzSW52YWxpZGF0ZWQpOwotfQotCiB2b2lkIEF0dGFjaG1lbnQ6OnVwZGF0ZUF0dHJpYnV0
ZXMoRnVuY3Rpb248dm9pZChXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNr
KQogewogICAgIGlmICghbV93ZWJQYWdlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSUF0dGFjaG1lbnQuaAppbmRleCA4NDQzZjQzMGJjOTM2M2I5M2IwOGEzN2EzNDMyMTBmMGJj
YzJkZmM0Li45NTJmNDFiMjY0ODE3ZjMzZTJhNzZiYmM4OWQ5NzYzMjY2YTE3ZDVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElBdHRhY2htZW50LmgKQEAgLTM4LDcgKzM4LDYg
QEAgT0JKQ19DTEFTUyBOU0ZpbGVXcmFwcGVyOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBTaGFyZWRCdWZmZXI7Ci1zdHJ1Y3QgQXR0YWNobWVudERpc3BsYXlPcHRpb25zOwogfQogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKQEAgLTU1LDcgKzU0LDYgQEAgcHVibGljOgogICAgIGVudW0gY2xh
c3MgSW5zZXJ0aW9uU3RhdGUgOiB1aW50OF90IHsgTm90SW5zZXJ0ZWQsIEluc2VydGVkIH07CiAK
ICAgICBjb25zdCBXVEY6OlN0cmluZyYgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRl
bnRpZmllcjsgfQotICAgIHZvaWQgc2V0RGlzcGxheU9wdGlvbnMoV2ViQ29yZTo6QXR0YWNobWVu
dERpc3BsYXlPcHRpb25zLCBGdW5jdGlvbjx2b2lkKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJv
cik+JiYpOwogICAgIHZvaWQgdXBkYXRlQXR0cmlidXRlcyhGdW5jdGlvbjx2b2lkKFdlYktpdDo6
Q2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAyZmE3
ODNmZmVhMmE1MzFhOTUyYjFjMzQ2NDU1YmUxMjkxMDIxMmRhLi42OWVlM2QzOTZmOGMyNjQ1ZDU0
ODQwYTUzNWZlOWViYzJjNWEzZmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTk0LDcgKzk0LDYgQEAKICNpbXBvcnQgIl9XS1Nlc3Np
b25TdGF0ZUludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tWaXNpdGVkTGlua1N0b3JlSW50ZXJuYWwu
aCIKICNpbXBvcnQgIl9XS1dlYnNpdGVQb2xpY2llc0ludGVybmFsLmgiCi0jaW1wb3J0IDxXZWJD
b3JlL0F0dGFjaG1lbnRUeXBlcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRD
Ry5oPgogI2ltcG9ydCA8V2ViQ29yZS9JT1N1cmZhY2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNE
T01CaW5kaW5nLmg+CkBAIC00NDQyLDIwICs0NDQxLDI2IEBAIFdFQkNPUkVfQ09NTUFORCh5YW5r
QW5kU2VsZWN0KQogCiAtIChfV0tBdHRhY2htZW50ICopX2luc2VydEF0dGFjaG1lbnRXaXRoRmls
ZW5hbWU6KE5TU3RyaW5nICopZmlsZW5hbWUgY29udGVudFR5cGU6KE5TU3RyaW5nICopY29udGVu
dFR5cGUgZGF0YTooTlNEYXRhICopZGF0YSBvcHRpb25zOihfV0tBdHRhY2htZW50RGlzcGxheU9w
dGlvbnMgKilvcHRpb25zIGNvbXBsZXRpb246KHZvaWQoXikoQk9PTCBzdWNjZXNzKSljb21wbGV0
aW9uSGFuZGxlcgogeworICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsKICAgICBhdXRvIGZpbGVX
cmFwcGVyID0gYWRvcHROUyhbW05TRmlsZVdyYXBwZXIgYWxsb2NdIGluaXRSZWd1bGFyRmlsZVdp
dGhDb250ZW50czpkYXRhXSk7CiAgICAgaWYgKGZpbGVuYW1lKQogICAgICAgICBbZmlsZVdyYXBw
ZXIgc2V0UHJlZmVycmVkRmlsZW5hbWU6ZmlsZW5hbWVdOwotICAgIHJldHVybiBbc2VsZiBfaW5z
ZXJ0QXR0YWNobWVudFdpdGhGaWxlV3JhcHBlcjpmaWxlV3JhcHBlci5nZXQoKSBjb250ZW50VHlw
ZTpjb250ZW50VHlwZSBvcHRpb25zOm9wdGlvbnMgY29tcGxldGlvbjpjb21wbGV0aW9uSGFuZGxl
cl07CisgICAgcmV0dXJuIFtzZWxmIF9pbnNlcnRBdHRhY2htZW50V2l0aEZpbGVXcmFwcGVyOmZp
bGVXcmFwcGVyLmdldCgpIGNvbnRlbnRUeXBlOmNvbnRlbnRUeXBlIGNvbXBsZXRpb246Y29tcGxl
dGlvbkhhbmRsZXJdOwogfQogCiAtIChfV0tBdHRhY2htZW50ICopX2luc2VydEF0dGFjaG1lbnRX
aXRoRmlsZVdyYXBwZXI6KE5TRmlsZVdyYXBwZXIgKilmaWxlV3JhcHBlciBjb250ZW50VHlwZToo
TlNTdHJpbmcgKiljb250ZW50VHlwZSBvcHRpb25zOihfV0tBdHRhY2htZW50RGlzcGxheU9wdGlv
bnMgKilvcHRpb25zIGNvbXBsZXRpb246KHZvaWQoXikoQk9PTCBzdWNjZXNzKSljb21wbGV0aW9u
SGFuZGxlcgoreworICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsKKyAgICByZXR1cm4gW3NlbGYg
X2luc2VydEF0dGFjaG1lbnRXaXRoRmlsZVdyYXBwZXI6ZmlsZVdyYXBwZXIgY29udGVudFR5cGU6
Y29udGVudFR5cGUgY29tcGxldGlvbjpjb21wbGV0aW9uSGFuZGxlcl07Cit9CisKKy0gKF9XS0F0
dGFjaG1lbnQgKilfaW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlV3JhcHBlcjooTlNGaWxlV3JhcHBl
ciAqKWZpbGVXcmFwcGVyIGNvbnRlbnRUeXBlOihOU1N0cmluZyAqKWNvbnRlbnRUeXBlIGNvbXBs
ZXRpb246KHZvaWQoXikoQk9PTCBzdWNjZXNzKSljb21wbGV0aW9uSGFuZGxlcgogewogI2lmIEVO
QUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAgYXV0byBpZGVudGlmaWVyID0gY3JlYXRlQ2Fu
b25pY2FsVVVJRFN0cmluZygpOwotICAgIGF1dG8gY29yZU9wdGlvbnMgPSBvcHRpb25zID8gb3B0
aW9ucy5jb3JlRGlzcGxheU9wdGlvbnMgOiBXZWJDb3JlOjpBdHRhY2htZW50RGlzcGxheU9wdGlv
bnMgeyB9OwogICAgIGF1dG8gYXR0YWNobWVudCA9IEFQSTo6QXR0YWNobWVudDo6Y3JlYXRlKGlk
ZW50aWZpZXIsICpfcGFnZSk7CiAgICAgYXR0YWNobWVudC0+c2V0RmlsZVdyYXBwZXJBbmRVcGRh
dGVDb250ZW50VHlwZShmaWxlV3JhcHBlciwgY29udGVudFR5cGUpOwotICAgIF9wYWdlLT5pbnNl
cnRBdHRhY2htZW50KGF0dGFjaG1lbnQuY29weVJlZigpLCBjb3JlT3B0aW9ucywgW2NhcHR1cmVk
SGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIChXZWJLaXQ6OkNhbGxi
YWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKKyAgICBfcGFnZS0+aW5zZXJ0QXR0YWNobWVudChhdHRh
Y2htZW50LmNvcHlSZWYoKSwgW2NhcHR1cmVkSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0
aW9uSGFuZGxlcildIChXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKICAgICAg
ICAgaWYgKGNhcHR1cmVkSGFuZGxlcikKICAgICAgICAgICAgIGNhcHR1cmVkSGFuZGxlcihlcnJv
ciA9PSBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUpOwogICAgIH0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgK
aW5kZXggYTNjNWZhMDM5Zjg0YzFjMDQwZDlmMTg4NjExNWM1NDE1ZWY4MGFmMi4uZjA1MGViMGU5
ZDZhOTEyYWU4NzI4N2M4ZjJlZGZlMmQ4OWVmNDE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0xODIsNyArMTgy
LDggQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1JlY3RFZGdlKSB7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRCYWNrZ3JvdW5kRXh0ZW5kc0JleW9uZFBhZ2U6
KSBCT09MIF9iYWNrZ3JvdW5kRXh0ZW5kc0JleW9uZFBhZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTMuNCksIGlvcyg4LjApKTsKIAogLSAoX1dLQXR0YWNobWVudCAqKV9pbnNlcnRBdHRh
Y2htZW50V2l0aEZpbGVuYW1lOihOU1N0cmluZyAqKWZpbGVuYW1lIGNvbnRlbnRUeXBlOihOU1N0
cmluZyAqKWNvbnRlbnRUeXBlIGRhdGE6KE5TRGF0YSAqKWRhdGEgb3B0aW9uczooX1dLQXR0YWNo
bWVudERpc3BsYXlPcHRpb25zICopb3B0aW9ucyBjb21wbGV0aW9uOih2b2lkKF4pKEJPT0wgc3Vj
Y2VzcykpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVO
VCgiLV9pbnNlcnRBdHRhY2htZW50V2l0aEZpbGVXcmFwcGVyOmNvbnRlbnRUeXBlOm9wdGlvbnM6
Y29tcGxldGlvbjoiLCBtYWNvc3goMTAuMTMuNCwgV0tfTUFDX1RCQSksIGlvcygxMS4zLCBXS19J
T1NfVEJBKSk7Ci0tIChfV0tBdHRhY2htZW50ICopX2luc2VydEF0dGFjaG1lbnRXaXRoRmlsZVdy
YXBwZXI6KE5TRmlsZVdyYXBwZXIgKilmaWxlV3JhcHBlciBjb250ZW50VHlwZTooTlNTdHJpbmcg
Kiljb250ZW50VHlwZSBvcHRpb25zOihfV0tBdHRhY2htZW50RGlzcGxheU9wdGlvbnMgKilvcHRp
b25zIGNvbXBsZXRpb246KHZvaWQoXikoQk9PTCBzdWNjZXNzKSljb21wbGV0aW9uSGFuZGxlciBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0g
KF9XS0F0dGFjaG1lbnQgKilfaW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlV3JhcHBlcjooTlNGaWxl
V3JhcHBlciAqKWZpbGVXcmFwcGVyIGNvbnRlbnRUeXBlOihOU1N0cmluZyAqKWNvbnRlbnRUeXBl
IG9wdGlvbnM6KF9XS0F0dGFjaG1lbnREaXNwbGF5T3B0aW9ucyAqKW9wdGlvbnMgY29tcGxldGlv
bjoodm9pZCheKShCT09MIHN1Y2Nlc3MpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9ERVBSRUNB
VEVEX1dJVEhfUkVQTEFDRU1FTlQoIi1faW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlV3JhcHBlcjpj
b250ZW50VHlwZTpjb21wbGV0aW9uOiIsIG1hY29zeChXS19NQUNfVEJBLCBXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEsIFdLX0lPU19UQkEpKTsKKy0gKF9XS0F0dGFjaG1lbnQgKilfaW5zZXJ0
QXR0YWNobWVudFdpdGhGaWxlV3JhcHBlcjooTlNGaWxlV3JhcHBlciAqKWZpbGVXcmFwcGVyIGNv
bnRlbnRUeXBlOihOU1N0cmluZyAqKWNvbnRlbnRUeXBlIGNvbXBsZXRpb246KHZvaWQoXikoQk9P
TCBzdWNjZXNzKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIC8vIERF
UkVDQVRFRDogVGhlIHNldHRlcnMgb2YgdGhlIHRocmVlIGZvbGxvd2luZyBmdW5jdGlvbiBhcmUg
ZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSBvdmVycmlkZUxheW91dFBhcmFtZXRlcnMuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXR0YWNobWVudC5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdHRhY2htZW50Lm1tCmluZGV4
IDBjYTNkNTM5Mzg2MTU1YzRhYTQwYTQ5ZGMzODk0NTczNjBiNjJlNGIuLjgxMTI0MGQyODQyZjUw
ZTdiOTI0ZmQ4NTJhMGYyYjY4MGZkMTUzY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tBdHRhY2htZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tBdHRhY2htZW50Lm1tCkBAIC0zMSw3ICszMSw2IEBACiAjaW1w
b3J0ICJBUElBdHRhY2htZW50LmgiCiAjaW1wb3J0ICJXS0Vycm9yUHJpdmF0ZS5oIgogI2ltcG9y
dCAiX1dLQXR0YWNobWVudEludGVybmFsLmgiCi0jaW1wb3J0IDxXZWJDb3JlL0F0dGFjaG1lbnRU
eXBlcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CkBAIC00Niwx
MiArNDUsNiBAQCBzdGF0aWMgY29uc3QgTlNJbnRlZ2VyIFVuc3BlY2lmaWVkQXR0YWNobWVudEVy
cm9yQ29kZSA9IDE7CiBzdGF0aWMgY29uc3QgTlNJbnRlZ2VyIEludmFsaWRBdHRhY2htZW50RXJy
b3JDb2RlID0gMjsKIAogQGltcGxlbWVudGF0aW9uIF9XS0F0dGFjaG1lbnREaXNwbGF5T3B0aW9u
cyA6IE5TT2JqZWN0Ci0KLS0gKFdlYkNvcmU6OkF0dGFjaG1lbnREaXNwbGF5T3B0aW9ucyljb3Jl
RGlzcGxheU9wdGlvbnMKLXsKLSAgICByZXR1cm4geyB9OwotfQotCiBAZW5kCiAKIEBpbXBsZW1l
bnRhdGlvbiBfV0tBdHRhY2htZW50SW5mbyB7CkBAIC0xMzEsMjUgKzEyNCw2IEBAIHN0YXRpYyBj
b25zdCBOU0ludGVnZXIgSW52YWxpZEF0dGFjaG1lbnRFcnJvckNvZGUgPSAyOwogICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHNlbGYuaW5mbywgbmlsKTsKIH0KIAotLSAodm9pZClzZXREaXNwbGF5T3B0
aW9uczooX1dLQXR0YWNobWVudERpc3BsYXlPcHRpb25zICopb3B0aW9ucyBjb21wbGV0aW9uOih2
b2lkKF4pKE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXIKLXsKLSAgICBpZiAoIV9hdHRhY2ht
ZW50LT5pc1ZhbGlkKCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoW05TRXJyb3IgZXJy
b3JXaXRoRG9tYWluOldLRXJyb3JEb21haW4gY29kZTpJbnZhbGlkQXR0YWNobWVudEVycm9yQ29k
ZSB1c2VySW5mbzpuaWxdKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1dG8gY29y
ZU9wdGlvbnMgPSBvcHRpb25zID8gb3B0aW9ucy5jb3JlRGlzcGxheU9wdGlvbnMgOiBXZWJDb3Jl
OjpBdHRhY2htZW50RGlzcGxheU9wdGlvbnMgeyB9OwotICAgIF9hdHRhY2htZW50LT5zZXREaXNw
bGF5T3B0aW9ucyhjb3JlT3B0aW9ucywgW2NhcHR1cmVkQmxvY2sgPSBtYWtlQmxvY2tQdHIoY29t
cGxldGlvbkhhbmRsZXIpXSAoQ2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgewotICAgICAgICBp
ZiAoIWNhcHR1cmVkQmxvY2spCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKGVy
cm9yID09IENhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUpCi0gICAgICAgICAgICBjYXB0dXJlZEJs
b2NrKG5pbCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNhcHR1cmVkQmxvY2soW05TRXJy
b3IgZXJyb3JXaXRoRG9tYWluOldLRXJyb3JEb21haW4gY29kZTpVbnNwZWNpZmllZEF0dGFjaG1l
bnRFcnJvckNvZGUgdXNlckluZm86bmlsXSk7Ci0gICAgfSk7Ci19Ci0KIC0gKHZvaWQpc2V0Rmls
ZVdyYXBwZXI6KE5TRmlsZVdyYXBwZXIgKilmaWxlV3JhcHBlciBjb250ZW50VHlwZTooTlNTdHJp
bmcgKiljb250ZW50VHlwZSBjb21wbGV0aW9uOih2b2lkICheKShOU0Vycm9yICopKWNvbXBsZXRp
b25IYW5kbGVyCiB7CiAgICAgaWYgKCFfYXR0YWNobWVudC0+aXNWYWxpZCgpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXR0YWNobWVudEludGVy
bmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXR0YWNobWVudElu
dGVybmFsLmgKaW5kZXggMTM4YTk1MzdhODE1MGM0NmY2MGE3YWZkMDNiY2QxOWFmZTE5YjcwOC4u
YWJkYTE1MjhmYjdjNTQzNDYwNjIxNDkxYTczMWQxN2I0MjI1NGJmZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0dGFjaG1lbnRJbnRlcm5hbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdHRhY2htZW50SW50ZXJu
YWwuaApAQCAtMzQsMTAgKzM0LDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgV3JhcHBlclRyYWl0czxB
UEk6OkF0dGFjaG1lbnQ+IHsKIAogfQogCi1AaW50ZXJmYWNlIF9XS0F0dGFjaG1lbnREaXNwbGF5
T3B0aW9ucyAoKQotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXZWJDb3JlOjpBdHRh
Y2htZW50RGlzcGxheU9wdGlvbnMgY29yZURpc3BsYXlPcHRpb25zOwotQGVuZAotCiBAaW50ZXJm
YWNlIF9XS0F0dGFjaG1lbnQgKCkgPFdLT2JqZWN0PiB7CiBAcGFja2FnZQogICAgIEFQSTo6T2Jq
ZWN0U3RvcmFnZTxBUEk6OkF0dGFjaG1lbnQ+IF9hdHRhY2htZW50OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZmE4MTI0YzYzNjc1YThhYzJlZjg1NjhiNzAz
ZjY2YmEzYzM0ZDU5OC4uZDUxMzMzN2ZkNTUxYzExN2E4YjU0NDY0ZjUzMjk5MGQxYjBkM2Y1YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMjIsNyArMTIy
LDYgQEAKICNpbmNsdWRlICJXZWJVUkxTY2hlbWVIYW5kbGVyLmgiCiAjaW5jbHVkZSAiV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyUHJveHkuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlLmgi
Ci0jaW5jbHVkZSA8V2ViQ29yZS9BdHRhY2htZW50VHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0JpdG1hcEltYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EZXByZWNhdGVkR2xvYmFsU2V0dGlu
Z3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg+CkBAIC03
NzUxLDcgKzc3NTAsNyBAQCBSZWZQdHI8QVBJOjpBdHRhY2htZW50PiBXZWJQYWdlUHJveHk6OmF0
dGFjaG1lbnRGb3JJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgaWRlbgogICAgIHJldHVybiBtX2F0
dGFjaG1lbnRJZGVudGlmaWVyVG9BdHRhY2htZW50TWFwLmdldChpZGVudGlmaWVyKTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6Omluc2VydEF0dGFjaG1lbnQoUmVmPEFQSTo6QXR0YWNobWVudD4m
JiBhdHRhY2htZW50LCBjb25zdCBBdHRhY2htZW50RGlzcGxheU9wdGlvbnMmIG9wdGlvbnMsIEZ1
bmN0aW9uPHZvaWQoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2spCit2b2lkIFdlYlBh
Z2VQcm94eTo6aW5zZXJ0QXR0YWNobWVudChSZWY8QVBJOjpBdHRhY2htZW50PiYmIGF0dGFjaG1l
bnQsIEZ1bmN0aW9uPHZvaWQoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2spCiB7CiAg
ICAgaWYgKCFpc1ZhbGlkKCkpIHsKICAgICAgICAgY2FsbGJhY2soQ2FsbGJhY2tCYXNlOjpFcnJv
cjo6T3duZXJXYXNJbnZhbGlkYXRlZCk7CkBAIC03NzYwLDIxICs3NzU5LDEwIEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjppbnNlcnRBdHRhY2htZW50KFJlZjxBUEk6OkF0dGFjaG1lbnQ+JiYgYXR0YWNo
bWVudCwgY29uc3QgQXR0CiAKICAgICBhdXRvIGF0dGFjaG1lbnRJZGVudGlmaWVyID0gYXR0YWNo
bWVudC0+aWRlbnRpZmllcigpOwogICAgIGF1dG8gY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1
dChXVEZNb3ZlKGNhbGxiYWNrKSwgbV9wcm9jZXNzLT50aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0
aXZpdHlUb2tlbigpKTsKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6Oklu
c2VydEF0dGFjaG1lbnQoYXR0YWNobWVudElkZW50aWZpZXIsIG9wdGlvbnMsIGF0dGFjaG1lbnQt
PmZpbGVTaXplRm9yRGlzcGxheSgpLCBhdHRhY2htZW50LT5maWxlTmFtZSgpLCBhdHRhY2htZW50
LT5jb250ZW50VHlwZSgpLCBjYWxsYmFja0lEKSwgbV9wYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6SW5zZXJ0QXR0YWNobWVudChhdHRhY2htZW50SWRlbnRp
ZmllciwgYXR0YWNobWVudC0+ZmlsZVNpemVGb3JEaXNwbGF5KCksIGF0dGFjaG1lbnQtPmZpbGVO
YW1lKCksIGF0dGFjaG1lbnQtPmNvbnRlbnRUeXBlKCksIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7
CiAgICAgbV9hdHRhY2htZW50SWRlbnRpZmllclRvQXR0YWNobWVudE1hcC5zZXQoYXR0YWNobWVu
dElkZW50aWZpZXIsIFdURk1vdmUoYXR0YWNobWVudCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94
eTo6c2V0QXR0YWNobWVudERpc3BsYXlPcHRpb25zKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwg
QXR0YWNobWVudERpc3BsYXlPcHRpb25zIG9wdGlvbnMsIEZ1bmN0aW9uPHZvaWQoQ2FsbGJhY2tC
YXNlOjpFcnJvcik+JiYgY2FsbGJhY2spCi17Ci0gICAgaWYgKCFpc1ZhbGlkKCkpIHsKLSAgICAg
ICAgY2FsbGJhY2soQ2FsbGJhY2tCYXNlOjpFcnJvcjo6T3duZXJXYXNJbnZhbGlkYXRlZCk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvIGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNr
cy5wdXQoV1RGTW92ZShjYWxsYmFjayksIG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkuYmFja2dyb3Vu
ZEFjdGl2aXR5VG9rZW4oKSk7Ci0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpTZXRBdHRhY2htZW50RGlzcGxheU9wdGlvbnMoaWRlbnRpZmllciwgb3B0aW9ucywgY2FsbGJh
Y2tJRCksIG1fcGFnZUlEKTsKLX0KLQogdm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZUF0dGFjaG1l
bnRBdHRyaWJ1dGVzKGNvbnN0IEFQSTo6QXR0YWNobWVudCYgYXR0YWNobWVudCwgRnVuY3Rpb248
dm9pZChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFjaykKIHsKICAgICBpZiAoIWlzVmFs
aWQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA4YzU1ZDI1
NThmOGI2ZGVjZDAwYTRjNTg3MjE5YTQwMGYxYjBlOWExLi4yNWZlNGEyZTg0Y2Q4NDlkM2Q5YjBm
YTFjZDkzODlhNzNkYzFjZWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aApAQCAtMTk2LDEyICsxOTYsNiBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWU+IGNsYXNzIFJlY3RFZGdl
czsKIHVzaW5nIEZsb2F0Qm94RXh0ZW50ID0gUmVjdEVkZ2VzPGZsb2F0PjsKIH0KIAotI2lmIEVO
QUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1zdHJ1Y3QgQXR0
YWNobWVudERpc3BsYXlPcHRpb25zOwotfQotI2VuZGlmCi0KICNpZiBQTEFURk9STShHVEspCiB0
eXBlZGVmIEd0a1dpZGdldCogUGxhdGZvcm1XaWRnZXQ7CiAjZW5kaWYKQEAgLTEzMTksOCArMTMx
Myw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAgUmVm
UHRyPEFQSTo6QXR0YWNobWVudD4gYXR0YWNobWVudEZvcklkZW50aWZpZXIoY29uc3QgU3RyaW5n
JiBpZGVudGlmaWVyKSBjb25zdDsKLSAgICB2b2lkIGluc2VydEF0dGFjaG1lbnQoUmVmPEFQSTo6
QXR0YWNobWVudD4mJiwgY29uc3QgV2ViQ29yZTo6QXR0YWNobWVudERpc3BsYXlPcHRpb25zJiwg
RnVuY3Rpb248dm9pZChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7Ci0gICAgdm9pZCBzZXRBdHRh
Y2htZW50RGlzcGxheU9wdGlvbnMoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBXZWJDb3JlOjpB
dHRhY2htZW50RGlzcGxheU9wdGlvbnMsIEZ1bmN0aW9uPHZvaWQoQ2FsbGJhY2tCYXNlOjpFcnJv
cik+JiYpOworICAgIHZvaWQgaW5zZXJ0QXR0YWNobWVudChSZWY8QVBJOjpBdHRhY2htZW50PiYm
LCBGdW5jdGlvbjx2b2lkKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKICAgICB2b2lkIHVwZGF0
ZUF0dGFjaG1lbnRBdHRyaWJ1dGVzKGNvbnN0IEFQSTo6QXR0YWNobWVudCYsIEZ1bmN0aW9uPHZv
aWQoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNGI1ZjVhYjg2OTBlZmU2OWFkY2Qx
MzYwZTdjMTk4OGFkZjA1MGZmNS4uMzI2NTk5NzE5NDAxMjA0NTRmNTIzOWNiMDAxODNhNTljZjVk
OTBhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
QEAgLTYwNjYsMTUgKzYwNjYsMTAgQEAgdm9pZCBXZWJQYWdlOjpzdG9yYWdlQWNjZXNzUmVzcG9u
c2UoYm9vbCB3YXNHcmFudGVkLCB1aW50NjRfdCBjb250ZXh0SWQpCiAKICNpZiBFTkFCTEUoQVRU
QUNITUVOVF9FTEVNRU5UKQogCi12b2lkIFdlYlBhZ2U6Omluc2VydEF0dGFjaG1lbnQoY29uc3Qg
U3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBBdHRhY2htZW50RGlzcGxheU9wdGlvbnMmIG9wdGlv
bnMsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+JiYgZmlsZVNpemUsIGNvbnN0IFN0cmluZyYgZmls
ZU5hbWUsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkK
K3ZvaWQgV2ViUGFnZTo6aW5zZXJ0QXR0YWNobWVudChjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIs
IHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+JiYgZmlsZVNpemUsIGNvbnN0IFN0cmluZyYgZmlsZU5h
bWUsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsK
ICAgICBhdXRvJiBmcmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFp
bkZyYW1lKCk7Ci0gICAgZnJhbWUuZWRpdG9yKCkuaW5zZXJ0QXR0YWNobWVudChpZGVudGlmaWVy
LCBvcHRpb25zLCBXVEZNb3ZlKGZpbGVTaXplKSwgZmlsZU5hbWUsIGNvbnRlbnRUeXBlKTsKLSAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlZvaWRDYWxsYmFjayhjYWxsYmFja0lEKSk7
Ci19Ci0KLXZvaWQgV2ViUGFnZTo6c2V0QXR0YWNobWVudERpc3BsYXlPcHRpb25zKGNvbnN0IFN0
cmluZyYsIGNvbnN0IEF0dGFjaG1lbnREaXNwbGF5T3B0aW9ucyYsIENhbGxiYWNrSUQgY2FsbGJh
Y2tJRCkKLXsKKyAgICBmcmFtZS5lZGl0b3IoKS5pbnNlcnRBdHRhY2htZW50KGlkZW50aWZpZXIs
IFdURk1vdmUoZmlsZVNpemUpLCBmaWxlTmFtZSwgY29udGVudFR5cGUpOwogICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6Vm9pZENhbGxiYWNrKGNhbGxiYWNrSUQpKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDRkNGFlODUxYjI2
NWVjYjM5ZTBmNWVlYTQwYWUwMTA2OWQ0NDAwODEuLjI1NTlhMGQ2NTU2NTE0NWM1NmVlZmI0OGJh
ZmI5ZjNkNWU2MDhhOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKQEAgLTE3MiwxMSArMTcyLDggQEAgc3RydWN0IFByb21pc2VkQXR0YWNobWVudEluZm87
CiBzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0Owogc3RydWN0IFZpZXdwb3J0QXJndW1lbnRzOwog
Ci0KLQogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiBjbGFzcyBIVE1MQXR0YWNobWVu
dEVsZW1lbnQ7Ci1zdHJ1Y3QgQXR0YWNobWVudERpc3BsYXlPcHRpb25zOwogI2VuZGlmCiB9CiAK
QEAgLTEwNzUsOCArMTA3Miw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKEFUVEFD
SE1FTlRfRUxFTUVOVCkKLSAgICB2b2lkIGluc2VydEF0dGFjaG1lbnQoY29uc3QgU3RyaW5nJiBp
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpBdHRhY2htZW50RGlzcGxheU9wdGlvbnMmLCBzdGQ6
Om9wdGlvbmFsPHVpbnQ2NF90PiYmIGZpbGVTaXplLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBj
b25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBDYWxsYmFja0lEKTsKLSAgICB2b2lkIHNldEF0dGFj
aG1lbnREaXNwbGF5T3B0aW9ucyhjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OkF0dGFjaG1lbnREaXNwbGF5T3B0aW9ucyYsIENhbGxiYWNrSUQpOworICAgIHZvaWQgaW5z
ZXJ0QXR0YWNobWVudChjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8dWlu
dDY0X3Q+JiYgZmlsZVNpemUsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIGNvbnN0IFN0cmluZyYg
Y29udGVudFR5cGUsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgdXBkYXRlQXR0YWNobWVudEF0dHJp
YnV0ZXMoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiYm
IGZpbGVTaXplLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4mJiBuZXdGaWxlbmFtZSwgQ2FsbGJhY2tJRCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMjg5
YWJkYTg3ZjA1M2I0YmFjMjViZWFkMDU1MjQ2NDdkOTc0NjU5Zi4uN2RkY2I5YjIxNGJkOWRkNTQx
OTQ3YTk0ZDJiYWY1YTVlMjUzN2M5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC01MTAsOCArNTEwLDcgQEAgbWVz
c2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShB
VFRBQ0hNRU5UX0VMRU1FTlQpCi0gICAgSW5zZXJ0QXR0YWNobWVudChTdHJpbmcgaWRlbnRpZmll
ciwgc3RydWN0IFdlYkNvcmU6OkF0dGFjaG1lbnREaXNwbGF5T3B0aW9ucyBvcHRpb25zLCBzdGQ6
Om9wdGlvbmFsPHVpbnQ2NF90PiBmaWxlU2l6ZSwgU3RyaW5nIGZpbGVOYW1lLCBTdHJpbmcgY29u
dGVudFR5cGUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIFNldEF0dGFjaG1l
bnREaXNwbGF5T3B0aW9ucyhTdHJpbmcgaWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OkF0dGFj
aG1lbnREaXNwbGF5T3B0aW9ucyBvcHRpb25zLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJ
RCkKKyAgICBJbnNlcnRBdHRhY2htZW50KFN0cmluZyBpZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFs
PHVpbnQ2NF90PiBmaWxlU2l6ZSwgU3RyaW5nIGZpbGVOYW1lLCBTdHJpbmcgY29udGVudFR5cGUs
IFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIFVwZGF0ZUF0dGFjaG1lbnRBdHRy
aWJ1dGVzKFN0cmluZyBpZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmaWxlU2l6
ZSwgU3RyaW5nIG5ld0NvbnRlbnRUeXBlLCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gbmV3RmlsZW5h
bWUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2Y2I4ZDJiOGM4ODUzMmY4
ZmJhNzlmYjZmNzY0NmQ4NmFhNDhlNmJkLi4zODNkODgxNGZiMDc2NWI1ODJmMjNiYTZlMTcwNWFl
ZDg2NGFmNjFjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMDgtMjcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0F0dGFjaG1lbnQgU3VwcG9ydF0gUmVtb3ZlIFdl
YkNvcmU6OkF0dGFjaG1lbnREaXNwbGF5T3B0aW9ucyBhbmQgZnJpZW5kcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5MDA0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBvZmYgb2YgZGVwcmVjYXRl
ZCBhdHRhY2htZW50IGluc2VydGlvbiBTUEkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dLQXR0YWNobWVudFRlc3RzLm1tOgorICAgICAgICAoLVtUZXN0V0tX
ZWJWaWV3IHN5bmNocm9ub3VzbHlJbnNlcnRBdHRhY2htZW50V2l0aEZpbGVXcmFwcGVyOmNvbnRl
bnRUeXBlOl0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHN5bmNocm9ub3VzbHlJbnNlcnRB
dHRhY2htZW50V2l0aEZpbGVuYW1lOmNvbnRlbnRUeXBlOmRhdGE6XSk6CisgICAgICAgICgtW19X
S0F0dGFjaG1lbnQgc3luY2hyb25vdXNseVNldERpc3BsYXlPcHRpb25zOmVycm9yOl0pOiBEZWxl
dGVkLgorCiAyMDE4LTA4LTI3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgogCiAgICAgICAgIFtDb2NvYV0gRXhjZXB0aW9uIChmaWxlVHlwZSAnZHluLmFncTh1JyBpcyBu
b3QgYSB2YWxpZCBVVEkpIHJhaXNlZCB3aGVuIGRyYWdnaW5nIGFuIGF0dGFjaG1lbnQgd2hvc2Ug
ZmlsZSB3cmFwcGVyIGlzIGEgZGlyZWN0b3J5CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQXR0YWNobWVudFRlc3RzLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbQppbmRleCAwYTAx
MDNiNGIzODJkM2I0Y2M3Yjc1MWZiMjUwZjhlZDU5Nzg4ZDNlLi43MGQyMjcwNTdjNzM0Njg1MjY5
Y2YxNjcyNGRhYTU3NmQ4YmIwOGM5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dLQXR0YWNobWVudFRlc3RzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMubW0KQEAgLTI2MSw3ICsy
NjEsNyBAQCBzdGF0aWMgTlNEYXRhICp0ZXN0UERGRGF0YSgpCiAtIChfV0tBdHRhY2htZW50ICop
c3luY2hyb25vdXNseUluc2VydEF0dGFjaG1lbnRXaXRoRmlsZVdyYXBwZXI6KE5TRmlsZVdyYXBw
ZXIgKilmaWxlV3JhcHBlciBjb250ZW50VHlwZTooTlNTdHJpbmcgKiljb250ZW50VHlwZQogewog
ICAgIF9fYmxvY2sgYm9vbCBkb25lID0gZmFsc2U7Ci0gICAgUmV0YWluUHRyPF9XS0F0dGFjaG1l
bnQ+IGF0dGFjaG1lbnQgPSBbc2VsZiBfaW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlV3JhcHBlcjpm
aWxlV3JhcHBlciBjb250ZW50VHlwZTpjb250ZW50VHlwZSBvcHRpb25zOm5pbCBjb21wbGV0aW9u
Ol4oQk9PTCkgeworICAgIFJldGFpblB0cjxfV0tBdHRhY2htZW50PiBhdHRhY2htZW50ID0gW3Nl
bGYgX2luc2VydEF0dGFjaG1lbnRXaXRoRmlsZVdyYXBwZXI6ZmlsZVdyYXBwZXIgY29udGVudFR5
cGU6Y29udGVudFR5cGUgY29tcGxldGlvbjpeKEJPT0wpIHsKICAgICAgICAgZG9uZSA9IHRydWU7
CiAgICAgfV07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKQEAgLTI3NCw3
ICsyNzQsNyBAQCBzdGF0aWMgTlNEYXRhICp0ZXN0UERGRGF0YSgpCiAgICAgYXV0byBmaWxlV3Jh
cHBlciA9IGFkb3B0TlMoW1tOU0ZpbGVXcmFwcGVyIGFsbG9jXSBpbml0UmVndWxhckZpbGVXaXRo
Q29udGVudHM6ZGF0YV0pOwogICAgIGlmIChmaWxlbmFtZSkKICAgICAgICAgW2ZpbGVXcmFwcGVy
IHNldFByZWZlcnJlZEZpbGVuYW1lOmZpbGVuYW1lXTsKLSAgICBSZXRhaW5QdHI8X1dLQXR0YWNo
bWVudD4gYXR0YWNobWVudCA9IFtzZWxmIF9pbnNlcnRBdHRhY2htZW50V2l0aEZpbGVXcmFwcGVy
OmZpbGVXcmFwcGVyLmdldCgpIGNvbnRlbnRUeXBlOmNvbnRlbnRUeXBlIG9wdGlvbnM6bmlsIGNv
bXBsZXRpb246XihCT09MKSB7CisgICAgUmV0YWluUHRyPF9XS0F0dGFjaG1lbnQ+IGF0dGFjaG1l
bnQgPSBbc2VsZiBfaW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlV3JhcHBlcjpmaWxlV3JhcHBlci5n
ZXQoKSBjb250ZW50VHlwZTpjb250ZW50VHlwZSBjb21wbGV0aW9uOl4oQk9PTCkgewogICAgICAg
ICBkb25lID0gdHJ1ZTsKICAgICB9XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOwpAQCAtMzQzLDIxICszNDMsNiBAQCBzdGF0aWMgTlNEYXRhICp0ZXN0UERGRGF0YSgpCiAK
IEBpbXBsZW1lbnRhdGlvbiBfV0tBdHRhY2htZW50IChBdHRhY2htZW50VGVzdGluZykKIAotLSAo
dm9pZClzeW5jaHJvbm91c2x5U2V0RGlzcGxheU9wdGlvbnM6KF9XS0F0dGFjaG1lbnREaXNwbGF5
T3B0aW9ucyAqKW9wdGlvbnMgZXJyb3I6KE5TRXJyb3IgKiopZXJyb3IKLXsKLSAgICBfX2Jsb2Nr
IFJldGFpblB0cjxOU0Vycm9yPiByZXN1bHRFcnJvcjsKLSAgICBfX2Jsb2NrIGJvb2wgZG9uZSA9
IGZhbHNlOwotICAgIFtzZWxmIHNldERpc3BsYXlPcHRpb25zOm9wdGlvbnMgY29tcGxldGlvbjpe
KE5TRXJyb3IgKmVycm9yKSB7Ci0gICAgICAgIHJlc3VsdEVycm9yID0gZXJyb3I7Ci0gICAgICAg
IGRvbmUgPSB0cnVlOwotICAgIH1dOwotCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKLQotICAgIGlmIChlcnJvcikKLSAgICAgICAgKmVycm9yID0gcmVzdWx0RXJyb3IuYXV0
b3JlbGVhc2UoKTsKLX0KLQogLSAodm9pZClzeW5jaHJvbm91c2x5U2V0RmlsZVdyYXBwZXI6KE5T
RmlsZVdyYXBwZXIgKilmaWxlV3JhcHBlciBuZXdDb250ZW50VHlwZTooTlNTdHJpbmcgKiluZXdD
b250ZW50VHlwZSBlcnJvcjooTlNFcnJvciAqKillcnJvcgogewogICAgIF9fYmxvY2sgUmV0YWlu
UHRyPE5TRXJyb3I+IHJlc3VsdEVycm9yOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348210</attachid>
            <date>2018-08-27 15:19:38 -0700</date>
            <delta_ts>2018-08-27 17:28:58 -0700</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>bug-189004-20180827151937.patch</filename>
            <type>text/plain</type>
            <size>35873</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjgwZjQ3MWUyYTJjOGQx
N2VlNGJmNDNlNTYzMzQ4YmRiODc1MjI3ZS4uZjBlZTc0MWZjYWJkZGU1OWVmNjcwMjkwM2IzZjVh
YzhlODBlZThlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE4LTA4LTI3ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtBdHRhY2htZW50
IFN1cHBvcnRdIFJlbW92ZSBXZWJDb3JlOjpBdHRhY2htZW50RGlzcGxheU9wdGlvbnMgYW5kIGZy
aWVuZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
OTAwNAorCisgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCBzaW5jZSB0aGVyZSBpcyBubyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjppbnNlcnRBdHRhY2htZW50
KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAqIGh0bWwvQXR0YWNobWVu
dFR5cGVzLmg6IFJlbW92ZWQuCisgICAgICAgICogaHRtbC9IVE1MQXR0YWNobWVudEVsZW1lbnQu
aDoKKwogMjAxOC0wOC0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
IAogICAgICAgICBbQ29jb2FdIEV4Y2VwdGlvbiAoZmlsZVR5cGUgJ2R5bi5hZ3E4dScgaXMgbm90
IGEgdmFsaWQgVVRJKSByYWlzZWQgd2hlbiBkcmFnZ2luZyBhbiBhdHRhY2htZW50IHdob3NlIGZp
bGUgd3JhcHBlciBpcyBhIGRpcmVjdG9yeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiMDkzMzY2NGRlZjFmYWYxOGMw
MzEyMWE2YmI4MjM4NGZjYWEyMTJlLi5hMzA4NGI0MDQwNTIxNzI4NzA2OTlkNjlhNjA5NzgzNGM2
MDVlOTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE4LTA4LTI3ICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtBdHRhY2htZW50IFN1cHBv
cnRdIFJlbW92ZSBXZWJDb3JlOjpBdHRhY2htZW50RGlzcGxheU9wdGlvbnMgYW5kIGZyaWVuZHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTAwNAor
CisgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCisKKyAgICAgICAgUmVtb3ZlcyBh
bGwgdXNhZ2Ugb2YgV2ViQ29yZTo6QXR0YWNobWVudERpc3BsYXlPcHRpb25zLCBhbmQgZGVsZXRl
cyBhbiBTUEkgbWV0aG9kIHRoYXQgaXNuJ3QgYmVpbmcgdXNlZCBieSBhbnkKKyAgICAgICAgaW50
ZXJuYWwgY2xpZW50cy4gUmVtb3ZhbCBvZiBfV0tBdHRhY2htZW50RGlzcGxheU9wdGlvbnMgaXRz
ZWxmIGlzIHN0aWxsIGJsb2NrZWQgb24gdGhlIHN1Ym1pc3Npb24gb2YKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzQzMzU3MjgxPi4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5OgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5jcHA6CisgICAgICAgIChBUEk6OkF0dGFj
aG1lbnQ6OnNldERpc3BsYXlPcHRpb25zKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0FQSUF0dGFjaG1lbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9pbnNlcnRBdHRhY2htZW50V2l0aEZpbGVu
YW1lOmNvbnRlbnRUeXBlOmRhdGE6b3B0aW9uczpjb21wbGV0aW9uOl0pOgorICAgICAgICAoLVtX
S1dlYlZpZXcgX2luc2VydEF0dGFjaG1lbnRXaXRoRmlsZVdyYXBwZXI6Y29udGVudFR5cGU6b3B0
aW9uczpjb21wbGV0aW9uOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2luc2VydEF0dGFjaG1l
bnRXaXRoRmlsZVdyYXBwZXI6Y29udGVudFR5cGU6Y29tcGxldGlvbjpdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKworICAgICAgICBEZXByZWNh
dGUgLV9pbnNlcnRBdHRhY2htZW50V2l0aEZpbGVXcmFwcGVyOmNvbnRlbnRUeXBlOm9wdGlvbnM6
Y29tcGxldGlvbjosIGluIGZhdm9yIG9mCisgICAgICAgIC1faW5zZXJ0QXR0YWNobWVudFdpdGhG
aWxlV3JhcHBlcjpjb250ZW50VHlwZTpjb21wbGV0aW9uOi4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLQXR0YWNobWVudC5oOgorCisgICAgICAgIFJlbW92ZSAtc2V0RGlzcGxh
eU9wdGlvbnM6Y29tcGxldGlvbjosIHNpbmNlIGl0IGlzIGEgbm93IGEgbm9vcCwgYW5kIGFsc28g
aXNuJ3QgdXNlZCBieSBhbnkgaW50ZXJuYWwgY2xpZW50cy4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLQXR0YWNobWVudC5tbToKKyAgICAgICAgKC1bX1dLQXR0YWNobWVudERp
c3BsYXlPcHRpb25zIGNvcmVEaXNwbGF5T3B0aW9uc10pOiBEZWxldGVkLgorICAgICAgICAoLVtf
V0tBdHRhY2htZW50IHNldERpc3BsYXlPcHRpb25zOmNvbXBsZXRpb246XSk6IERlbGV0ZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdHRhY2htZW50SW50ZXJuYWwuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjppbnNlcnRBdHRhY2htZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpzZXRBdHRhY2htZW50RGlzcGxheU9wdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Omluc2VydEF0dGFjaG1lbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRBdHRhY2htZW50RGlzcGxheU9wdGlvbnMpOiBE
ZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMTgtMDgtMjcg
IFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29h
XSBFeGNlcHRpb24gKGZpbGVUeXBlICdkeW4uYWdxOHUnIGlzIG5vdCBhIHZhbGlkIFVUSSkgcmFp
c2VkIHdoZW4gZHJhZ2dpbmcgYW4gYXR0YWNobWVudCB3aG9zZSBmaWxlIHdyYXBwZXIgaXMgYSBk
aXJlY3RvcnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA3MjU1ZDI2NWM3NzIxNWVjMDliYTM4ZDk2N2NhNGNkN2U4YWExNjU4Li5i
NmRmNzQ4YTZkMTkwNDg1YjE4YzNkNThjYjUxODNiYmFkYjgyZjg5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00ODA2LDcgKzQ4
MDYsNiBAQAogCQlGM0FCRkUwQzEzMEU5REEwMDBFN0Y3RDEgLyogSW5zdHJ1bWVudGluZ0FnZW50
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNBQkZF
MEIxMzBFOURBMDAwRTdGN0QxIC8qIEluc3RydW1lbnRpbmdBZ2VudHMuaCAqLzsgfTsKIAkJRjNE
NDYxNDkxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGM0Q0NjE0NzExNjFENTMyMDBDQTBEMDkg
LyogSlNFcnJvckhhbmRsZXIuaCAqLzsgfTsKIAkJRjQzM0U5MDMxREJCREJBMjAwRUYwRDE0IC8q
IFN0YXRpY1Bhc3RlYm9hcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0MzNFOTAyMURCQkRCQTIwMEVGMEQxNCAvKiBTdGF0aWNQYXN0ZWJvYXJkLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRjQzNzU5
QjQxRkNGNDhGQTAwMTAwNzA2IC8qIEF0dGFjaG1lbnRUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQzNzU5QjMxRkNGNDhGQTAwMTAwNzA2IC8q
IEF0dGFjaG1lbnRUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUY0NEE1RjU5MUZFRDM4RjIwMDdGNTk0NCAvKiBMZWdhY3lOU1Bhc3RlYm9h
cmRUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjQ0QTVGNTcxRkVEMzgzMDAwN0Y1OTQ0IC8qIExlZ2FjeU5TUGFzdGVib2FyZFR5cGVzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ0RUJCRDkx
REI1RDIxNDAwMjc3MzM0IC8qIFN0YXRpY1JhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDRFQkJEODFEQjVEMjE0MDAyNzczMzQgLyogU3RhdGlj
UmFuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlGNDVDMjMxRTE5OTVCNzNCMDBBNkUyRTMgLyogQXhpc1Njcm9sbFNuYXBPZmZzZXRzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDVDMjMxQzE5OTVC
NzNCMDBBNkUyRTMgLyogQXhpc1Njcm9sbFNuYXBPZmZzZXRzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE0NDU4LDcgKzE0NDU3LDYgQEAKIAkJ
RjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTRXJyb3JIYW5kbGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXJyb3JIYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY0MzNFOTAyMURCQkRCQTIwMEVGMEQxNCAvKiBTdGF0aWNQYXN0ZWJvYXJk
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0YXRpY1Bhc3RlYm9hcmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQzM0U5MDQxREJCREJDMjAwRUYwRDE0IC8q
IFN0YXRpY1Bhc3RlYm9hcmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RhdGljUGFzdGVib2Fy
ZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY0Mzc1OUIzMUZDRjQ4RkEwMDEw
MDcwNiAvKiBBdHRhY2htZW50VHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXR0YWNobWVudFR5cGVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NEE1RjU3MUZFRDM4MzAwMDdGNTk0
NCAvKiBMZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMZWdhY3lOU1Bh
c3RlYm9hcmRUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRFQkJENjFE
QjVEMUI2MDAyNzczMzQgLyogU3RhdGljUmFuZ2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFN0YXRpY1JhbmdlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0RUJCRDgx
REI1RDIxNDAwMjc3MzM0IC8qIFN0YXRpY1JhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFN0YXRpY1JhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NTI0MCw4ICsxNTIzOCw4IEBACiAJCQkJNDExMDNBQTcxRTM5NzkwQTAwNzY5RjE0IC8qIFJlYWx0
aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmNwcCAqLywKIAkJCQk0MTEwM0FBODFFMzk3OTBB
MDA3NjlGMTQgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuaCAqLywKIAkJCQk1
Q0REODMzQjFFNDMyNEJCMDA2MjFCODMgLyogUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29j
b2EuY3BwICovLAotCQkJCTQxOTI0MjQ3MjEyN0I3Q0MwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdv
aW5nVmlkZW9Tb3VyY2VDb2NvYS5tbSAqLywKIAkJCQk1Q0REODMzQzFFNDMyNEJCMDA2MjFCODMg
LyogUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuaCAqLywKKwkJCQk0MTkyNDI0NzIx
MjdCN0NDMDA2MzRGQ0YgLyogUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EubW0gKi8s
CiAJCQkJMDcwQTlGNUUxRkZFQ0M3MDAwM0RGNjQ5IC8qIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291
cmNlTWFjLmggKi8sCiAJCQkJMDcwQTlGNjAxRkZFQ0M3MTAwM0RGNjQ5IC8qIFNjcmVlbkRpc3Bs
YXlDYXB0dXJlU291cmNlTWFjLm1tICovLAogCQkJCTA3RDYzNzNFMUJCMEIxMTMwMDI1NkNFOSAv
KiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oICovLApAQCAtMjAyODQsNyArMjAyODIs
NiBAQAogCQkJCTk3QzFGNTUxMTIyODU1ODgwMEVERTYxNiAvKiBwYXJzZXIgKi8sCiAJCQkJNDE1
MEY5RUQxMkI2RTA5OTAwMDhDODYwIC8qIHNoYWRvdyAqLywKIAkJCQlCMUFENEU3NzEzQTEyQTcy
MDA4NDZCMjcgLyogdHJhY2sgKi8sCi0JCQkJRjQzNzU5QjMxRkNGNDhGQTAwMTAwNzA2IC8qIEF0
dGFjaG1lbnRUeXBlcy5oICovLAogCQkJCUE1RjZFMTZDMTMyRUQ0NkUwMDhFREFFMyAvKiBBdXRv
Y2FwaXRhbGl6ZS5jcHAgKi8sCiAJCQkJQTUwMTkyMEMxMzJFQkYyRTAwOEJGRTU1IC8qIEF1dG9j
YXBpdGFsaXplLmggKi8sCiAJCQkJQTVBN0FBNDIxMzJGMEVDQzAwRDNBM0MyIC8qIEF1dG9jYXBp
dGFsaXplVHlwZXMuaCAqLywKQEAgLTI3MDM3LDcgKzI3MDM0LDYgQEAKIAkJCQlGRDU2ODZDQTEz
QUMxODAyMDBCNjlDNjggLyogQXN5bmNBdWRpb0RlY29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUUxQ0RFOTIyMTUwMTkxNjkwMDg2MkNDNSAvKiBBc3luY0ZpbGVTdHJlYW0uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGRkQ0RDYxMTg2NTFGQTMwMDUxMkY2RSAvKiBBc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQlGNDM3NTlCNDFGQ0Y0OEZBMDAxMDA3MDYgLyog
QXR0YWNobWVudFR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEM0QTgwRDA5RDU2MzI3MDAw
M0FDOEQgLyogQXR0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDNEE4MEIwOUQ1NjMyNzAwMDNB
QzhEIC8qIEF0dHJpYnV0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRBODE0REExQzcwRTEwRDAw
QkY4NUFDIC8qIEF0dHJpYnV0ZUNoYW5nZUludmFsaWRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBA
IC0zMTQ0Niw2ICszMTQ0Miw3IEBACiAJCQkJQUExMkRGNDkxNzQzREY4MzAwNERBRkRGIC8qIFBs
YXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlDREEyOUEz
MDFDQkY3NEQ0MDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0gaW4g
U291cmNlcyAqLywKIAkJCQlDREEyOUExNjFDQkRBNTZDMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNz
aW9uSW50ZXJmYWNlTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNDE5MjQyNDkyMTI3QjkzRTAw
NjM0RkNGIC8qIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMzE2RENCOEExRTdBNjk5NjAwMUI1Rjg3IC8qIFJUQ0ljZVRyYW5zcG9ydC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzUxMTU2RTEyQjE3NDlDMDBDOTY3NTQgLyogU2Nyb2xsQW5p
bWF0b3JNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQ0VGODY5RjBFODQ0RTlEMDBBODVDRDUg
LyogU2Nyb2xsYmFyVGhlbWVNYWMubW0gaW4gU291cmNlcyAqLywKQEAgLTMxNTY2LDcgKzMxNTYz
LDYgQEAKIAkJCQk1MzhFQzhBMTFGOTkzRjlEMDA0RDIyQTggLyogVW5pZmllZFNvdXJjZTQ4LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCURFNUY4NTk5MUZBMUFCRjQwMDZEQjYzQSAvKiBVbmlmaWVk
U291cmNlNDktbW0ubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MzhFQzhBMjFGOTkzRjlEMDA0RDIy
QTggLyogVW5pZmllZFNvdXJjZTQ5LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQxOTI0MjQ5MjEy
N0I5M0UwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCURFNUY4NTlBMUZBMUFCRjQwMDZEQjYzQSAvKiBVbmlmaWVkU291cmNl
NTAtbW0ubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MzhFQzhBMzFGOTkzRjlEMDA0RDIyQTggLyog
VW5pZmllZFNvdXJjZTUwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURFNUY4NjUwMUZBMkFGMjQw
MDZEQjYzQSAvKiBVbmlmaWVkU291cmNlNTEtbW0ubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcAppbmRleCA0ZWNhOTE1MGQ2YTc5OTBkZWMyNzQxY2EzNmQ0YzY4YTlm
NTc1NjdhLi40Mzg3MzdhNTI3M2M4ODlhZjgwMmMyZjMzZWRhMjBlYTY4OTBjZjM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0zODc2LDcgKzM4NzYsNyBAQCB2b2lkIEVkaXRvcjo6
bm90aWZ5Q2xpZW50T2ZBdHRhY2htZW50VXBkYXRlcygpCiAgICAgfQogfQogCi12b2lkIEVkaXRv
cjo6aW5zZXJ0QXR0YWNobWVudChjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IEF0dGFj
aG1lbnREaXNwbGF5T3B0aW9ucyYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+JiYgZmlsZVNpemUs
IGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCit2b2lk
IEVkaXRvcjo6aW5zZXJ0QXR0YWNobWVudChjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIHN0ZDo6
b3B0aW9uYWw8dWludDY0X3Q+JiYgZmlsZVNpemUsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIGNv
bnN0IFN0cmluZyYgY29udGVudFR5cGUpCiB7CiAgICAgYXV0byBhdHRhY2htZW50ID0gSFRNTEF0
dGFjaG1lbnRFbGVtZW50OjpjcmVhdGUoSFRNTE5hbWVzOjphdHRhY2htZW50VGFnLCBkb2N1bWVu
dCgpKTsKICAgICBhdHRhY2htZW50LT5zZXRVbmlxdWVJZGVudGlmaWVyKGlkZW50aWZpZXIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggNmY1YWJiYWMyZGE5OTY5OWU3YTUyZTUwMGJkZWQ0
YmZlNDZkMTI4MC4uM2Q2M2NlMTQ1MTE3NDViOTQ5MDRkZjk4MDM5ZGZmOGU2MWQ3Yzc4NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC05NSw3ICs5NSw2IEBAIGVudW0gY2xhc3MgTWFpbEJs
b2NrcXVvdGVIYW5kbGluZyB7CiAKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogY2xh
c3MgSFRNTEF0dGFjaG1lbnRFbGVtZW50Owotc3RydWN0IEF0dGFjaG1lbnREaXNwbGF5T3B0aW9u
czsKICNlbmRpZgogCiBlbnVtIFRlbXBvcmFyeVNlbGVjdGlvbk9wdGlvbiA6IHVpbnQ4X3QgewpA
QCAtNTAzLDcgKzUwMiw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzR2V0dGluZ0RpY3Rpb25hcnlQ
b3B1cEluZm8oKSBjb25zdCB7IHJldHVybiBtX2lzR2V0dGluZ0RpY3Rpb25hcnlQb3B1cEluZm87
IH0KIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCi0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBpbnNlcnRBdHRhY2htZW50KGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgQXR0
YWNobWVudERpc3BsYXlPcHRpb25zJiwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4mJiBmaWxlU2l6
ZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbnNlcnRBdHRhY2htZW50KGNvbnN0IFN0cmluZyYgaWRl
bnRpZmllciwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4mJiBmaWxlU2l6ZSwgY29uc3QgU3RyaW5n
JiBmaWxlTmFtZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSk7CiAgICAgdm9pZCByZWdpc3Rl
ckF0dGFjaG1lbnRJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgLyogY29u
dGVudFR5cGUgKi8sIGNvbnN0IFN0cmluZyYgLyogcHJlZmVycmVkRmlsZU5hbWUgKi8sIFJlZjxT
aGFyZWRCdWZmZXI+JiYpOwogICAgIHZvaWQgcmVnaXN0ZXJBdHRhY2htZW50SWRlbnRpZmllcihj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmIC8qIGNvbnRlbnRUeXBlICovLCBjb25zdCBTdHJp
bmcmIC8qIGZpbGVQYXRoICovKTsKICAgICB2b2lkIGNsb25lQXR0YWNobWVudERhdGEoY29uc3Qg
U3RyaW5nJiBmcm9tSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0b0lkZW50aWZpZXIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9BdHRhY2htZW50VHlwZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQXR0YWNobWVudFR5cGVzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDg5YmJjYWJhZThmMzQxMmE3ZWU1OTJiZDY2YjA5YWU4OGNlMjQzMDQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9B
dHRhY2htZW50VHlwZXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCi0KLSNp
bmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdHJ1Y3QgQXR0YWNobWVudERpc3BsYXlPcHRpb25z
IHsKLSAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29u
c3Q7Ci0gICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8QXR0
YWNobWVudERpc3BsYXlPcHRpb25zPiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4gaW5saW5lIHZvaWQgQXR0YWNobWVudERpc3BsYXlPcHRpb25zOjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKLXsKLSAgICBVTlVTRURfUEFSQU0oZW5jb2Rlcik7
Ci19Ci0KLXRlbXBsYXRlPGNsYXNzIERlY29kZXI+IGlubGluZSBzdGQ6Om9wdGlvbmFsPEF0dGFj
aG1lbnREaXNwbGF5T3B0aW9ucz4gQXR0YWNobWVudERpc3BsYXlPcHRpb25zOjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKLXsKLSAgICBVTlVTRURfUEFSQU0oZGVjb2Rlcik7Ci0gICAgcmV0dXJu
IEF0dGFjaG1lbnREaXNwbGF5T3B0aW9ucygpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLSNlbmRpZiAvLyBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0YWNobWVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50LmgKaW5kZXggNjFlYTE1YTkyOGYwYmFhNDUyZTlk
ZmZlMTc5YWNmNGVlZDMyNzYyZC4uYmY5NDQzYzZiZmU4ODgxMzAyYmY0YWQwZDljNjRhM2VkOTEz
ZGE4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0YWNobWVudEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5oCkBA
IC0yNyw3ICsyNyw2IEBACiAKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogCi0jaW5j
bHVkZSAiQXR0YWNobWVudFR5cGVzLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkK
aW5kZXggN2FmMTY4YzkzNDE5Y2IzMjk0NTIwNjBhNDEwYzg3MDNlYTEwYTM1OS4uMDZiZWExY2My
ZjBiZDY2MjZhMDk4MDA4MTJlZGQyNjcxZGE4ZDYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5CkBAIC0zNzcsNyArMzc3LDYgQEAgZGVmIGhlYWRlcnNfZm9yX3R5
cGUodHlwZSk6CiAgICAgICAgICdXYWxsVGltZSc6IFsnPHd0Zi9XYWxsVGltZS5oPiddLAogICAg
ICAgICAnU3RyaW5nJzogWyc8d3RmL3RleHQvV1RGU3RyaW5nLmg+J10sCiAgICAgICAgICdQQUw6
OlNlc3Npb25JRCc6IFsnPHBhbC9TZXNzaW9uSUQuaD4nXSwKLSAgICAgICAgJ1dlYkNvcmU6OkF0
dGFjaG1lbnREaXNwbGF5T3B0aW9ucyc6IFsnPFdlYkNvcmUvQXR0YWNobWVudFR5cGVzLmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3MnOiBbJzxXZWJDb3JlL0F1dG9w
bGF5RXZlbnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMnOiBbJzxX
ZWJDb3JlL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkZp
bGVDaG9vc2VyU2V0dGluZ3MnOiBbJzxXZWJDb3JlL0ZpbGVDaG9vc2VyLmg+J10sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCAzNTNkMzI4
NTQyZmI4ZWE5MWI2MzkzZGE3NzFiZTg1NjViYTJlOTQwLi5mNDQ0MzhmNTQ0MDkxODFjYTBlMjA1
Y2JhNmM2YjViZTcxODFkMTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHAKQEAgLTI4LDcgKzI4LDYgQEAKIAogI2luY2x1ZGUgIkRhdGFSZWZl
cmVuY2UuaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKLSNpbmNsdWRlIDxXZWJDb3Jl
L0F0dGFjaG1lbnRUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Jsb2JQYXJ0Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9DYWNoZVF1ZXJ5T3B0aW9ucy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSUF0dGFjaG1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SUF0dGFjaG1lbnQuY3BwCmluZGV4IDA3M2E0NGNlNDQ4NmNhZmQ2MmUyNWNiZGU4ZTlmYmM5M2Jj
YzdmNDYuLjY0MTA2YzY3NTgwYTQzYmFhMmMyY2VkZjI3OTVkYmRiZTM3OWZjMmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElBdHRhY2htZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5jcHAKQEAgLTI4LDcgKzI4
LDYgQEAKIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAKLSNpbmNsdWRlIDxXZWJD
b3JlL0F0dGFjaG1lbnRUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ5LDE0ICs0OCw2IEBAIEF0
dGFjaG1lbnQ6On5BdHRhY2htZW50KCkKIHsKIH0KIAotdm9pZCBBdHRhY2htZW50OjpzZXREaXNw
bGF5T3B0aW9ucyhXZWJDb3JlOjpBdHRhY2htZW50RGlzcGxheU9wdGlvbnMgb3B0aW9ucywgRnVu
Y3Rpb248dm9pZChXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrKQotewot
ICAgIGlmIChtX3dlYlBhZ2UpCi0gICAgICAgIG1fd2ViUGFnZS0+c2V0QXR0YWNobWVudERpc3Bs
YXlPcHRpb25zKG1faWRlbnRpZmllciwgb3B0aW9ucywgV1RGTW92ZShjYWxsYmFjaykpOwotICAg
IGVsc2UKLSAgICAgICAgY2FsbGJhY2soV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yOjpPd25l
cldhc0ludmFsaWRhdGVkKTsKLX0KLQogdm9pZCBBdHRhY2htZW50Ojp1cGRhdGVBdHRyaWJ1dGVz
KEZ1bmN0aW9uPHZvaWQoV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFjaykK
IHsKICAgICBpZiAoIW1fd2ViUGFnZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSUF0dGFjaG1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElBdHRhY2htZW50LmgKaW5kZXggODQ0M2Y0MzBiYzkzNjNiOTNiMDhhMzdhMzQzMjEwZjBiY2My
ZGZjNC4uOTUyZjQxYjI2NDgxN2YzM2UyYTc2YmJjODlkOTc2MzI2NmExN2Q1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUF0dGFjaG1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5oCkBAIC0zOCw3ICszOCw2IEBA
IE9CSkNfQ0xBU1MgTlNGaWxlV3JhcHBlcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
U2hhcmVkQnVmZmVyOwotc3RydWN0IEF0dGFjaG1lbnREaXNwbGF5T3B0aW9uczsKIH0KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CkBAIC01NSw3ICs1NCw2IEBAIHB1YmxpYzoKICAgICBlbnVtIGNsYXNz
IEluc2VydGlvblN0YXRlIDogdWludDhfdCB7IE5vdEluc2VydGVkLCBJbnNlcnRlZCB9OwogCiAg
ICAgY29uc3QgV1RGOjpTdHJpbmcmIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50
aWZpZXI7IH0KLSAgICB2b2lkIHNldERpc3BsYXlPcHRpb25zKFdlYkNvcmU6OkF0dGFjaG1lbnRE
aXNwbGF5T3B0aW9ucywgRnVuY3Rpb248dm9pZChXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3Ip
PiYmKTsKICAgICB2b2lkIHVwZGF0ZUF0dHJpYnV0ZXMoRnVuY3Rpb248dm9pZChXZWJLaXQ6OkNh
bGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMmZhNzgz
ZmZlYTJhNTMxYTk1MmIxYzM0NjQ1NWJlMTI5MTAyMTJkYS4uNjllZTNkMzk2ZjhjMjY0NWQ1NDg0
MGE1MzVmZTllYmMyYzVhM2ZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCkBAIC05NCw3ICs5NCw2IEBACiAjaW1wb3J0ICJfV0tTZXNzaW9u
U3RhdGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLVmlzaXRlZExpbmtTdG9yZUludGVybmFsLmgi
CiAjaW1wb3J0ICJfV0tXZWJzaXRlUG9saWNpZXNJbnRlcm5hbC5oIgotI2ltcG9ydCA8V2ViQ29y
ZS9BdHRhY2htZW50VHlwZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Q0cu
aD4KICNpbXBvcnQgPFdlYkNvcmUvSU9TdXJmYWNlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pTRE9N
QmluZGluZy5oPgpAQCAtNDQ0MiwyMCArNDQ0MSwyNiBAQCBXRUJDT1JFX0NPTU1BTkQoeWFua0Fu
ZFNlbGVjdCkKIAogLSAoX1dLQXR0YWNobWVudCAqKV9pbnNlcnRBdHRhY2htZW50V2l0aEZpbGVu
YW1lOihOU1N0cmluZyAqKWZpbGVuYW1lIGNvbnRlbnRUeXBlOihOU1N0cmluZyAqKWNvbnRlbnRU
eXBlIGRhdGE6KE5TRGF0YSAqKWRhdGEgb3B0aW9uczooX1dLQXR0YWNobWVudERpc3BsYXlPcHRp
b25zICopb3B0aW9ucyBjb21wbGV0aW9uOih2b2lkKF4pKEJPT0wgc3VjY2VzcykpY29tcGxldGlv
bkhhbmRsZXIKIHsKKyAgICBVTlVTRURfUEFSQU0ob3B0aW9ucyk7CiAgICAgYXV0byBmaWxlV3Jh
cHBlciA9IGFkb3B0TlMoW1tOU0ZpbGVXcmFwcGVyIGFsbG9jXSBpbml0UmVndWxhckZpbGVXaXRo
Q29udGVudHM6ZGF0YV0pOwogICAgIGlmIChmaWxlbmFtZSkKICAgICAgICAgW2ZpbGVXcmFwcGVy
IHNldFByZWZlcnJlZEZpbGVuYW1lOmZpbGVuYW1lXTsKLSAgICByZXR1cm4gW3NlbGYgX2luc2Vy
dEF0dGFjaG1lbnRXaXRoRmlsZVdyYXBwZXI6ZmlsZVdyYXBwZXIuZ2V0KCkgY29udGVudFR5cGU6
Y29udGVudFR5cGUgb3B0aW9uczpvcHRpb25zIGNvbXBsZXRpb246Y29tcGxldGlvbkhhbmRsZXJd
OworICAgIHJldHVybiBbc2VsZiBfaW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlV3JhcHBlcjpmaWxl
V3JhcHBlci5nZXQoKSBjb250ZW50VHlwZTpjb250ZW50VHlwZSBjb21wbGV0aW9uOmNvbXBsZXRp
b25IYW5kbGVyXTsKIH0KIAogLSAoX1dLQXR0YWNobWVudCAqKV9pbnNlcnRBdHRhY2htZW50V2l0
aEZpbGVXcmFwcGVyOihOU0ZpbGVXcmFwcGVyICopZmlsZVdyYXBwZXIgY29udGVudFR5cGU6KE5T
U3RyaW5nICopY29udGVudFR5cGUgb3B0aW9uczooX1dLQXR0YWNobWVudERpc3BsYXlPcHRpb25z
ICopb3B0aW9ucyBjb21wbGV0aW9uOih2b2lkKF4pKEJPT0wgc3VjY2VzcykpY29tcGxldGlvbkhh
bmRsZXIKK3sKKyAgICBVTlVTRURfUEFSQU0ob3B0aW9ucyk7CisgICAgcmV0dXJuIFtzZWxmIF9p
bnNlcnRBdHRhY2htZW50V2l0aEZpbGVXcmFwcGVyOmZpbGVXcmFwcGVyIGNvbnRlbnRUeXBlOmNv
bnRlbnRUeXBlIGNvbXBsZXRpb246Y29tcGxldGlvbkhhbmRsZXJdOworfQorCistIChfV0tBdHRh
Y2htZW50ICopX2luc2VydEF0dGFjaG1lbnRXaXRoRmlsZVdyYXBwZXI6KE5TRmlsZVdyYXBwZXIg
KilmaWxlV3JhcHBlciBjb250ZW50VHlwZTooTlNTdHJpbmcgKiljb250ZW50VHlwZSBjb21wbGV0
aW9uOih2b2lkKF4pKEJPT0wgc3VjY2VzcykpY29tcGxldGlvbkhhbmRsZXIKIHsKICNpZiBFTkFC
TEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAgIGF1dG8gaWRlbnRpZmllciA9IGNyZWF0ZUNhbm9u
aWNhbFVVSURTdHJpbmcoKTsKLSAgICBhdXRvIGNvcmVPcHRpb25zID0gb3B0aW9ucyA/IG9wdGlv
bnMuY29yZURpc3BsYXlPcHRpb25zIDogV2ViQ29yZTo6QXR0YWNobWVudERpc3BsYXlPcHRpb25z
IHsgfTsKICAgICBhdXRvIGF0dGFjaG1lbnQgPSBBUEk6OkF0dGFjaG1lbnQ6OmNyZWF0ZShpZGVu
dGlmaWVyLCAqX3BhZ2UpOwogICAgIGF0dGFjaG1lbnQtPnNldEZpbGVXcmFwcGVyQW5kVXBkYXRl
Q29udGVudFR5cGUoZmlsZVdyYXBwZXIsIGNvbnRlbnRUeXBlKTsKLSAgICBfcGFnZS0+aW5zZXJ0
QXR0YWNobWVudChhdHRhY2htZW50LmNvcHlSZWYoKSwgY29yZU9wdGlvbnMsIFtjYXB0dXJlZEhh
bmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSAoV2ViS2l0OjpDYWxsYmFj
a0Jhc2U6OkVycm9yIGVycm9yKSB7CisgICAgX3BhZ2UtPmluc2VydEF0dGFjaG1lbnQoYXR0YWNo
bWVudC5jb3B5UmVmKCksIFtjYXB0dXJlZEhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlv
bkhhbmRsZXIpXSAoV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CiAgICAgICAg
IGlmIChjYXB0dXJlZEhhbmRsZXIpCiAgICAgICAgICAgICBjYXB0dXJlZEhhbmRsZXIoZXJyb3Ig
PT0gV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKTsKICAgICB9KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmlu
ZGV4IGEzYzVmYTAzOWY4NGMxYzA0MGQ5ZjE4ODYxMTVjNTQxNWVmODBhZjIuLmYwNTBlYjBlOWQ2
YTkxMmFlODcyODdjOGYyZWRmZTJkODllZjQxN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtMTgyLDcgKzE4Miw4
IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tSZWN0RWRnZSkgewogQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QmFja2dyb3VuZEV4dGVuZHNCZXlvbmRQYWdlOikg
Qk9PTCBfYmFja2dyb3VuZEV4dGVuZHNCZXlvbmRQYWdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjEzLjQpLCBpb3MoOC4wKSk7CiAKIC0gKF9XS0F0dGFjaG1lbnQgKilfaW5zZXJ0QXR0YWNo
bWVudFdpdGhGaWxlbmFtZTooTlNTdHJpbmcgKilmaWxlbmFtZSBjb250ZW50VHlwZTooTlNTdHJp
bmcgKiljb250ZW50VHlwZSBkYXRhOihOU0RhdGEgKilkYXRhIG9wdGlvbnM6KF9XS0F0dGFjaG1l
bnREaXNwbGF5T3B0aW9ucyAqKW9wdGlvbnMgY29tcGxldGlvbjoodm9pZCheKShCT09MIHN1Y2Nl
c3MpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQo
Ii1faW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlV3JhcHBlcjpjb250ZW50VHlwZTpvcHRpb25zOmNv
bXBsZXRpb246IiwgbWFjb3N4KDEwLjEzLjQsIFdLX01BQ19UQkEpLCBpb3MoMTEuMywgV0tfSU9T
X1RCQSkpOwotLSAoX1dLQXR0YWNobWVudCAqKV9pbnNlcnRBdHRhY2htZW50V2l0aEZpbGVXcmFw
cGVyOihOU0ZpbGVXcmFwcGVyICopZmlsZVdyYXBwZXIgY29udGVudFR5cGU6KE5TU3RyaW5nICop
Y29udGVudFR5cGUgb3B0aW9uczooX1dLQXR0YWNobWVudERpc3BsYXlPcHRpb25zICopb3B0aW9u
cyBjb21wbGV0aW9uOih2b2lkKF4pKEJPT0wgc3VjY2VzcykpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChf
V0tBdHRhY2htZW50ICopX2luc2VydEF0dGFjaG1lbnRXaXRoRmlsZVdyYXBwZXI6KE5TRmlsZVdy
YXBwZXIgKilmaWxlV3JhcHBlciBjb250ZW50VHlwZTooTlNTdHJpbmcgKiljb250ZW50VHlwZSBv
cHRpb25zOihfV0tBdHRhY2htZW50RGlzcGxheU9wdGlvbnMgKilvcHRpb25zIGNvbXBsZXRpb246
KHZvaWQoXikoQk9PTCBzdWNjZXNzKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfREVQUkVDQVRF
RF9XSVRIX1JFUExBQ0VNRU5UKCItX2luc2VydEF0dGFjaG1lbnRXaXRoRmlsZVdyYXBwZXI6Y29u
dGVudFR5cGU6Y29tcGxldGlvbjoiLCBtYWNvc3goV0tfTUFDX1RCQSwgV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBLCBXS19JT1NfVEJBKSk7CistIChfV0tBdHRhY2htZW50ICopX2luc2VydEF0
dGFjaG1lbnRXaXRoRmlsZVdyYXBwZXI6KE5TRmlsZVdyYXBwZXIgKilmaWxlV3JhcHBlciBjb250
ZW50VHlwZTooTlNTdHJpbmcgKiljb250ZW50VHlwZSBjb21wbGV0aW9uOih2b2lkKF4pKEJPT0wg
c3VjY2VzcykpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCiAvLyBERVJF
Q0FURUQ6IFRoZSBzZXR0ZXJzIG9mIHRoZSB0aHJlZSBmb2xsb3dpbmcgZnVuY3Rpb24gYXJlIGRl
cHJlY2F0ZWQsIHBsZWFzZSB1c2Ugb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0dGFjaG1lbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdHRhY2htZW50LmgKaW5kZXggYTFm
MzAyYzA2NmRlN2NiZTYwNWE5N2UzNTA1Y2Q5ZTg5MDgxYmMzNS4uMzJkMWYzYWVhYjhhZjFjMTQ5
ZTA4ZTIxMWUxMzYzZmFkMmRkMjdkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0F0dGFjaG1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLQXR0YWNobWVudC5oCkBAIC01NCw3ICs1NCw2IEBAIFdLX0NMQVNTX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKIFdLX0NMQVNTX0FW
QUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSkKIEBpbnRlcmZhY2UgX1dLQXR0YWNo
bWVudCA6IE5TT2JqZWN0CiAKLS0gKHZvaWQpc2V0RGlzcGxheU9wdGlvbnM6KF9XS0F0dGFjaG1l
bnREaXNwbGF5T3B0aW9ucyAqKW9wdGlvbnMgY29tcGxldGlvbjoodm9pZCheIF9OdWxsYWJsZSko
TlNFcnJvciAqIF9OdWxsYWJsZSkpY29tcGxldGlvbkhhbmRsZXI7CiAtICh2b2lkKXNldEZpbGVX
cmFwcGVyOihOU0ZpbGVXcmFwcGVyICopZmlsZVdyYXBwZXIgY29udGVudFR5cGU6KG51bGxhYmxl
IE5TU3RyaW5nICopY29udGVudFR5cGUgY29tcGxldGlvbjoodm9pZCheIF9OdWxsYWJsZSkoTlNF
cnJvciAqIF9OdWxsYWJsZSkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSwgbnVsbGFibGUpIF9XS0F0dGFjaG1lbnRJbmZvICppbmZvIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0dGFjaG1lbnQubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXR0YWNobWVudC5tbQppbmRleCAwY2Ez
ZDUzOTM4NjE1NWM0YWE0MGE0OWRjMzg5NDU3MzYwYjYyZTRiLi44MTEyNDBkMjg0MmY1MGU3Yjky
NGZkODUyYTBmMmI2ODBmZDE1M2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLQXR0YWNobWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLQXR0YWNobWVudC5tbQpAQCAtMzEsNyArMzEsNiBAQAogI2ltcG9ydCAi
QVBJQXR0YWNobWVudC5oIgogI2ltcG9ydCAiV0tFcnJvclByaXZhdGUuaCIKICNpbXBvcnQgIl9X
S0F0dGFjaG1lbnRJbnRlcm5hbC5oIgotI2ltcG9ydCA8V2ViQ29yZS9BdHRhY2htZW50VHlwZXMu
aD4KICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgpAQCAtNDYsMTIgKzQ1
LDYgQEAgc3RhdGljIGNvbnN0IE5TSW50ZWdlciBVbnNwZWNpZmllZEF0dGFjaG1lbnRFcnJvckNv
ZGUgPSAxOwogc3RhdGljIGNvbnN0IE5TSW50ZWdlciBJbnZhbGlkQXR0YWNobWVudEVycm9yQ29k
ZSA9IDI7CiAKIEBpbXBsZW1lbnRhdGlvbiBfV0tBdHRhY2htZW50RGlzcGxheU9wdGlvbnMgOiBO
U09iamVjdAotCi0tIChXZWJDb3JlOjpBdHRhY2htZW50RGlzcGxheU9wdGlvbnMpY29yZURpc3Bs
YXlPcHRpb25zCi17Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQogQGVuZAogCiBAaW1wbGVtZW50YXRp
b24gX1dLQXR0YWNobWVudEluZm8gewpAQCAtMTMxLDI1ICsxMjQsNiBAQCBzdGF0aWMgY29uc3Qg
TlNJbnRlZ2VyIEludmFsaWRBdHRhY2htZW50RXJyb3JDb2RlID0gMjsKICAgICBjb21wbGV0aW9u
SGFuZGxlcihzZWxmLmluZm8sIG5pbCk7CiB9CiAKLS0gKHZvaWQpc2V0RGlzcGxheU9wdGlvbnM6
KF9XS0F0dGFjaG1lbnREaXNwbGF5T3B0aW9ucyAqKW9wdGlvbnMgY29tcGxldGlvbjoodm9pZChe
KShOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyCi17Ci0gICAgaWYgKCFfYXR0YWNobWVudC0+
aXNWYWxpZCgpKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFtOU0Vycm9yIGVycm9yV2l0
aERvbWFpbjpXS0Vycm9yRG9tYWluIGNvZGU6SW52YWxpZEF0dGFjaG1lbnRFcnJvckNvZGUgdXNl
ckluZm86bmlsXSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvIGNvcmVPcHRp
b25zID0gb3B0aW9ucyA/IG9wdGlvbnMuY29yZURpc3BsYXlPcHRpb25zIDogV2ViQ29yZTo6QXR0
YWNobWVudERpc3BsYXlPcHRpb25zIHsgfTsKLSAgICBfYXR0YWNobWVudC0+c2V0RGlzcGxheU9w
dGlvbnMoY29yZU9wdGlvbnMsIFtjYXB0dXJlZEJsb2NrID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRp
b25IYW5kbGVyKV0gKENhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKLSAgICAgICAgaWYgKCFj
YXB0dXJlZEJsb2NrKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmIChlcnJvciA9
PSBDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKQotICAgICAgICAgICAgY2FwdHVyZWRCbG9jayhu
aWwpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjYXB0dXJlZEJsb2NrKFtOU0Vycm9yIGVy
cm9yV2l0aERvbWFpbjpXS0Vycm9yRG9tYWluIGNvZGU6VW5zcGVjaWZpZWRBdHRhY2htZW50RXJy
b3JDb2RlIHVzZXJJbmZvOm5pbF0pOwotICAgIH0pOwotfQotCiAtICh2b2lkKXNldEZpbGVXcmFw
cGVyOihOU0ZpbGVXcmFwcGVyICopZmlsZVdyYXBwZXIgY29udGVudFR5cGU6KE5TU3RyaW5nICop
Y29udGVudFR5cGUgY29tcGxldGlvbjoodm9pZCAoXikoTlNFcnJvciAqKSljb21wbGV0aW9uSGFu
ZGxlcgogewogICAgIGlmICghX2F0dGFjaG1lbnQtPmlzVmFsaWQoKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0dGFjaG1lbnRJbnRlcm5hbC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F0dGFjaG1lbnRJbnRlcm5h
bC5oCmluZGV4IDEzOGE5NTM3YTgxNTBjNDZmNjBhN2FmZDAzYmNkMTlhZmUxOWI3MDguLmFiZGEx
NTI4ZmI3YzU0MzQ2MDYyMTQ5MWE3MzFkMTdiNDIyNTRiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdHRhY2htZW50SW50ZXJuYWwuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXR0YWNobWVudEludGVybmFsLmgK
QEAgLTM0LDEwICszNCw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IFdyYXBwZXJUcmFpdHM8QVBJOjpB
dHRhY2htZW50PiB7CiAKIH0KIAotQGludGVyZmFjZSBfV0tBdHRhY2htZW50RGlzcGxheU9wdGlv
bnMgKCkKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV2ViQ29yZTo6QXR0YWNobWVu
dERpc3BsYXlPcHRpb25zIGNvcmVEaXNwbGF5T3B0aW9uczsKLUBlbmQKLQogQGludGVyZmFjZSBf
V0tBdHRhY2htZW50ICgpIDxXS09iamVjdD4gewogQHBhY2thZ2UKICAgICBBUEk6Ok9iamVjdFN0
b3JhZ2U8QVBJOjpBdHRhY2htZW50PiBfYXR0YWNobWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGZhODEyNGM2MzY3NWE4YWMyZWY4NTY4YjcwM2Y2NmJh
M2MzNGQ1OTguLmQ1MTMzMzdmZDU1MWMxMTdhOGI1NDQ2NGY1MzI5OTBkMWIwZDNmNWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTIyLDcgKzEyMiw2IEBA
CiAjaW5jbHVkZSAiV2ViVVJMU2NoZW1lSGFuZGxlci5oIgogI2luY2x1ZGUgIldlYlVzZXJDb250
ZW50Q29udHJvbGxlclByb3h5LmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgotI2lu
Y2x1ZGUgPFdlYkNvcmUvQXR0YWNobWVudFR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9CaXRt
YXBJbWFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oPgpAQCAtNzc1MSw3
ICs3NzUwLDcgQEAgUmVmUHRyPEFQSTo6QXR0YWNobWVudD4gV2ViUGFnZVByb3h5OjphdHRhY2ht
ZW50Rm9ySWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGlkZW4KICAgICByZXR1cm4gbV9hdHRhY2ht
ZW50SWRlbnRpZmllclRvQXR0YWNobWVudE1hcC5nZXQoaWRlbnRpZmllcik7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5OjppbnNlcnRBdHRhY2htZW50KFJlZjxBUEk6OkF0dGFjaG1lbnQ+JiYgYXR0
YWNobWVudCwgY29uc3QgQXR0YWNobWVudERpc3BsYXlPcHRpb25zJiBvcHRpb25zLCBGdW5jdGlv
bjx2b2lkKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrKQordm9pZCBXZWJQYWdlUHJv
eHk6Omluc2VydEF0dGFjaG1lbnQoUmVmPEFQSTo6QXR0YWNobWVudD4mJiBhdHRhY2htZW50LCBG
dW5jdGlvbjx2b2lkKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrKQogewogICAgIGlm
ICghaXNWYWxpZCgpKSB7CiAgICAgICAgIGNhbGxiYWNrKENhbGxiYWNrQmFzZTo6RXJyb3I6Ok93
bmVyV2FzSW52YWxpZGF0ZWQpOwpAQCAtNzc2MCwyMSArNzc1OSwxMCBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6aW5zZXJ0QXR0YWNobWVudChSZWY8QVBJOjpBdHRhY2htZW50PiYmIGF0dGFjaG1lbnQs
IGNvbnN0IEF0dAogCiAgICAgYXV0byBhdHRhY2htZW50SWRlbnRpZmllciA9IGF0dGFjaG1lbnQt
PmlkZW50aWZpZXIoKTsKICAgICBhdXRvIGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RG
TW92ZShjYWxsYmFjayksIG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5
VG9rZW4oKSk7Ci0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpJbnNlcnRB
dHRhY2htZW50KGF0dGFjaG1lbnRJZGVudGlmaWVyLCBvcHRpb25zLCBhdHRhY2htZW50LT5maWxl
U2l6ZUZvckRpc3BsYXkoKSwgYXR0YWNobWVudC0+ZmlsZU5hbWUoKSwgYXR0YWNobWVudC0+Y29u
dGVudFR5cGUoKSwgY2FsbGJhY2tJRCksIG1fcGFnZUlEKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6Okluc2VydEF0dGFjaG1lbnQoYXR0YWNobWVudElkZW50aWZpZXIs
IGF0dGFjaG1lbnQtPmZpbGVTaXplRm9yRGlzcGxheSgpLCBhdHRhY2htZW50LT5maWxlTmFtZSgp
LCBhdHRhY2htZW50LT5jb250ZW50VHlwZSgpLCBjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogICAg
IG1fYXR0YWNobWVudElkZW50aWZpZXJUb0F0dGFjaG1lbnRNYXAuc2V0KGF0dGFjaG1lbnRJZGVu
dGlmaWVyLCBXVEZNb3ZlKGF0dGFjaG1lbnQpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnNl
dEF0dGFjaG1lbnREaXNwbGF5T3B0aW9ucyhjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIEF0dGFj
aG1lbnREaXNwbGF5T3B0aW9ucyBvcHRpb25zLCBGdW5jdGlvbjx2b2lkKENhbGxiYWNrQmFzZTo6
RXJyb3IpPiYmIGNhbGxiYWNrKQotewotICAgIGlmICghaXNWYWxpZCgpKSB7Ci0gICAgICAgIGNh
bGxiYWNrKENhbGxiYWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxpZGF0ZWQpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCi0gICAgYXV0byBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0
KFdURk1vdmUoY2FsbGJhY2spLCBtX3Byb2Nlc3MtPnRocm90dGxlcigpLmJhY2tncm91bmRBY3Rp
dml0eVRva2VuKCkpOwotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0
QXR0YWNobWVudERpc3BsYXlPcHRpb25zKGlkZW50aWZpZXIsIG9wdGlvbnMsIGNhbGxiYWNrSUQp
LCBtX3BhZ2VJRCk7Ci19Ci0KIHZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVBdHRhY2htZW50QXR0
cmlidXRlcyhjb25zdCBBUEk6OkF0dGFjaG1lbnQmIGF0dGFjaG1lbnQsIEZ1bmN0aW9uPHZvaWQo
Q2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2spCiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggOGM1NWQyNTU4Zjhi
NmRlY2QwMGE0YzU4NzIxOWE0MDBmMWIwZTlhMS4uMjVmZTRhMmU4NGNkODQ5ZDNkOWIwZmExY2Q5
Mzg5YTczZGMxY2VhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTE5NiwxMiArMTk2LDYgQEAgdGVtcGxhdGUgPHR5cGVuYW1lPiBjbGFzcyBSZWN0RWRnZXM7CiB1
c2luZyBGbG9hdEJveEV4dGVudCA9IFJlY3RFZGdlczxmbG9hdD47CiB9CiAKLSNpZiBFTkFCTEUo
QVRUQUNITUVOVF9FTEVNRU5UKQotbmFtZXNwYWNlIFdlYkNvcmUgewotc3RydWN0IEF0dGFjaG1l
bnREaXNwbGF5T3B0aW9uczsKLX0KLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oR1RLKQogdHlwZWRl
ZiBHdGtXaWRnZXQqIFBsYXRmb3JtV2lkZ2V0OwogI2VuZGlmCkBAIC0xMzE5LDggKzEzMTMsNyBA
QCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAgIFJlZlB0cjxB
UEk6OkF0dGFjaG1lbnQ+IGF0dGFjaG1lbnRGb3JJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgaWRl
bnRpZmllcikgY29uc3Q7Ci0gICAgdm9pZCBpbnNlcnRBdHRhY2htZW50KFJlZjxBUEk6OkF0dGFj
aG1lbnQ+JiYsIGNvbnN0IFdlYkNvcmU6OkF0dGFjaG1lbnREaXNwbGF5T3B0aW9ucyYsIEZ1bmN0
aW9uPHZvaWQoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwotICAgIHZvaWQgc2V0QXR0YWNobWVu
dERpc3BsYXlPcHRpb25zKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgV2ViQ29yZTo6QXR0YWNo
bWVudERpc3BsYXlPcHRpb25zLCBGdW5jdGlvbjx2b2lkKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYm
KTsKKyAgICB2b2lkIGluc2VydEF0dGFjaG1lbnQoUmVmPEFQSTo6QXR0YWNobWVudD4mJiwgRnVu
Y3Rpb248dm9pZChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7CiAgICAgdm9pZCB1cGRhdGVBdHRh
Y2htZW50QXR0cmlidXRlcyhjb25zdCBBUEk6OkF0dGFjaG1lbnQmLCBGdW5jdGlvbjx2b2lkKENh
bGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDRiNWY1YWI4NjkwZWZlNjlhZGNkMTM2MGU3
YzE5ODhhZGYwNTBmZjUuLjMyNjU5OTcxOTQwMTIwNDU0ZjUyMzljYjAwMTgzYTU5Y2Y1ZDkwYWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02
MDY2LDE1ICs2MDY2LDEwIEBAIHZvaWQgV2ViUGFnZTo6c3RvcmFnZUFjY2Vzc1Jlc3BvbnNlKGJv
b2wgd2FzR3JhbnRlZCwgdWludDY0X3QgY29udGV4dElkKQogCiAjaWYgRU5BQkxFKEFUVEFDSE1F
TlRfRUxFTUVOVCkKIAotdm9pZCBXZWJQYWdlOjppbnNlcnRBdHRhY2htZW50KGNvbnN0IFN0cmlu
ZyYgaWRlbnRpZmllciwgY29uc3QgQXR0YWNobWVudERpc3BsYXlPcHRpb25zJiBvcHRpb25zLCBz
dGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiYmIGZpbGVTaXplLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1l
LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lk
IFdlYlBhZ2U6Omluc2VydEF0dGFjaG1lbnQoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBzdGQ6
Om9wdGlvbmFsPHVpbnQ2NF90PiYmIGZpbGVTaXplLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBj
b25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAg
YXV0byYgZnJhbWUgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFt
ZSgpOwotICAgIGZyYW1lLmVkaXRvcigpLmluc2VydEF0dGFjaG1lbnQoaWRlbnRpZmllciwgb3B0
aW9ucywgV1RGTW92ZShmaWxlU2l6ZSksIGZpbGVOYW1lLCBjb250ZW50VHlwZSk7Ci0gICAgc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpWb2lkQ2FsbGJhY2soY2FsbGJhY2tJRCkpOwotfQot
Ci12b2lkIFdlYlBhZ2U6OnNldEF0dGFjaG1lbnREaXNwbGF5T3B0aW9ucyhjb25zdCBTdHJpbmcm
LCBjb25zdCBBdHRhY2htZW50RGlzcGxheU9wdGlvbnMmLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQp
Ci17CisgICAgZnJhbWUuZWRpdG9yKCkuaW5zZXJ0QXR0YWNobWVudChpZGVudGlmaWVyLCBXVEZN
b3ZlKGZpbGVTaXplKSwgZmlsZU5hbWUsIGNvbnRlbnRUeXBlKTsKICAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlZvaWRDYWxsYmFjayhjYWxsYmFja0lEKSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA0ZDRhZTg1MWIyNjVlY2Iz
OWUwZjVlZWE0MGFlMDEwNjlkNDQwMDgxLi4yNTU5YTBkNjU1NjUxNDVjNTZlZWZiNDhiYWZiOWYz
ZDVlNjA4YTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CkBAIC0xNzIsMTEgKzE3Miw4IEBAIHN0cnVjdCBQcm9taXNlZEF0dGFjaG1lbnRJbmZvOwogc3Ry
dWN0IFRleHRDaGVja2luZ1Jlc3VsdDsKIHN0cnVjdCBWaWV3cG9ydEFyZ3VtZW50czsKIAotCi0K
ICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogY2xhc3MgSFRNTEF0dGFjaG1lbnRFbGVt
ZW50Owotc3RydWN0IEF0dGFjaG1lbnREaXNwbGF5T3B0aW9uczsKICNlbmRpZgogfQogCkBAIC0x
MDc1LDggKzEwNzIsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5U
X0VMRU1FTlQpCi0gICAgdm9pZCBpbnNlcnRBdHRhY2htZW50KGNvbnN0IFN0cmluZyYgaWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6QXR0YWNobWVudERpc3BsYXlPcHRpb25zJiwgc3RkOjpvcHRp
b25hbDx1aW50NjRfdD4mJiBmaWxlU2l6ZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgY29uc3Qg
U3RyaW5nJiBjb250ZW50VHlwZSwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBzZXRBdHRhY2htZW50
RGlzcGxheU9wdGlvbnMoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpB
dHRhY2htZW50RGlzcGxheU9wdGlvbnMmLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGluc2VydEF0
dGFjaG1lbnQoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90
PiYmIGZpbGVTaXplLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnRUeXBlLCBDYWxsYmFja0lEKTsKICAgICB2b2lkIHVwZGF0ZUF0dGFjaG1lbnRBdHRyaWJ1dGVz
KGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4mJiBmaWxl
U2l6ZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgc3RkOjpvcHRpb25hbDxTdHJpbmc+JiYg
bmV3RmlsZW5hbWUsIENhbGxiYWNrSUQpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDI4OWFiZGE4
N2YwNTNiNGJhYzI1YmVhZDA1NTI0NjQ3ZDk3NDY1OWYuLjdkZGNiOWIyMTRiZDlkZDU0MTk0N2E5
NGQyYmFmNWE1ZTI1MzdjOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNTEwLDggKzUxMCw3IEBAIG1lc3NhZ2Vz
IC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogI2VuZGlmCiAKICNpZiBFTkFCTEUoQVRUQUNI
TUVOVF9FTEVNRU5UKQotICAgIEluc2VydEF0dGFjaG1lbnQoU3RyaW5nIGlkZW50aWZpZXIsIHN0
cnVjdCBXZWJDb3JlOjpBdHRhY2htZW50RGlzcGxheU9wdGlvbnMgb3B0aW9ucywgc3RkOjpvcHRp
b25hbDx1aW50NjRfdD4gZmlsZVNpemUsIFN0cmluZyBmaWxlTmFtZSwgU3RyaW5nIGNvbnRlbnRU
eXBlLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAgICBTZXRBdHRhY2htZW50RGlz
cGxheU9wdGlvbnMoU3RyaW5nIGlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpBdHRhY2htZW50
RGlzcGxheU9wdGlvbnMgb3B0aW9ucywgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisg
ICAgSW5zZXJ0QXR0YWNobWVudChTdHJpbmcgaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDx1aW50
NjRfdD4gZmlsZVNpemUsIFN0cmluZyBmaWxlTmFtZSwgU3RyaW5nIGNvbnRlbnRUeXBlLCBXZWJL
aXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBVcGRhdGVBdHRhY2htZW50QXR0cmlidXRl
cyhTdHJpbmcgaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZmlsZVNpemUsIFN0
cmluZyBuZXdDb250ZW50VHlwZSwgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG5ld0ZpbGVuYW1lLCBX
ZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNmNiOGQyYjhjODg1MzJmOGZiYTc5
ZmI2Zjc2NDZkODZhYTQ4ZTZiZC4uNjZmNTE4MjE5MjMwZTFhMzY1ZjQ5ZTMyZWEzZTU2ZTUyY2Nl
OTIyMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDE4LTA4LTI3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgorCisgICAgICAgIFtBdHRhY2htZW50IFN1cHBvcnRdIFJlbW92ZSBXZWJDb3Jl
OjpBdHRhY2htZW50RGlzcGxheU9wdGlvbnMgYW5kIGZyaWVuZHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTAwNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IERhbiBCZXJuc3RlaW4uCisKKyAgICAgICAgTW92ZSBvZmYgb2YgZGVwcmVjYXRlZCBhdHRh
Y2htZW50IGluc2VydGlvbiBTUEkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dLQXR0YWNobWVudFRlc3RzLm1tOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3
IHN5bmNocm9ub3VzbHlJbnNlcnRBdHRhY2htZW50V2l0aEZpbGVXcmFwcGVyOmNvbnRlbnRUeXBl
Ol0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHN5bmNocm9ub3VzbHlJbnNlcnRBdHRhY2ht
ZW50V2l0aEZpbGVuYW1lOmNvbnRlbnRUeXBlOmRhdGE6XSk6CisgICAgICAgICgtW19XS0F0dGFj
aG1lbnQgc3luY2hyb25vdXNseVNldERpc3BsYXlPcHRpb25zOmVycm9yOl0pOiBEZWxldGVkLgor
CiAyMDE4LTA4LTI3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtDb2NvYV0gRXhjZXB0aW9uIChmaWxlVHlwZSAnZHluLmFncTh1JyBpcyBub3QgYSB2
YWxpZCBVVEkpIHJhaXNlZCB3aGVuIGRyYWdnaW5nIGFuIGF0dGFjaG1lbnQgd2hvc2UgZmlsZSB3
cmFwcGVyIGlzIGEgZGlyZWN0b3J5CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dLQXR0YWNobWVudFRlc3RzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbQppbmRleCAwYTAxMDNiNGIz
ODJkM2I0Y2M3Yjc1MWZiMjUwZjhlZDU5Nzg4ZDNlLi43MGQyMjcwNTdjNzM0Njg1MjY5Y2YxNjcy
NGRhYTU3NmQ4YmIwOGM5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dLQXR0YWNobWVudFRlc3RzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMubW0KQEAgLTI2MSw3ICsyNjEsNyBA
QCBzdGF0aWMgTlNEYXRhICp0ZXN0UERGRGF0YSgpCiAtIChfV0tBdHRhY2htZW50ICopc3luY2hy
b25vdXNseUluc2VydEF0dGFjaG1lbnRXaXRoRmlsZVdyYXBwZXI6KE5TRmlsZVdyYXBwZXIgKilm
aWxlV3JhcHBlciBjb250ZW50VHlwZTooTlNTdHJpbmcgKiljb250ZW50VHlwZQogewogICAgIF9f
YmxvY2sgYm9vbCBkb25lID0gZmFsc2U7Ci0gICAgUmV0YWluUHRyPF9XS0F0dGFjaG1lbnQ+IGF0
dGFjaG1lbnQgPSBbc2VsZiBfaW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlV3JhcHBlcjpmaWxlV3Jh
cHBlciBjb250ZW50VHlwZTpjb250ZW50VHlwZSBvcHRpb25zOm5pbCBjb21wbGV0aW9uOl4oQk9P
TCkgeworICAgIFJldGFpblB0cjxfV0tBdHRhY2htZW50PiBhdHRhY2htZW50ID0gW3NlbGYgX2lu
c2VydEF0dGFjaG1lbnRXaXRoRmlsZVdyYXBwZXI6ZmlsZVdyYXBwZXIgY29udGVudFR5cGU6Y29u
dGVudFR5cGUgY29tcGxldGlvbjpeKEJPT0wpIHsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAg
fV07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKQEAgLTI3NCw3ICsyNzQs
NyBAQCBzdGF0aWMgTlNEYXRhICp0ZXN0UERGRGF0YSgpCiAgICAgYXV0byBmaWxlV3JhcHBlciA9
IGFkb3B0TlMoW1tOU0ZpbGVXcmFwcGVyIGFsbG9jXSBpbml0UmVndWxhckZpbGVXaXRoQ29udGVu
dHM6ZGF0YV0pOwogICAgIGlmIChmaWxlbmFtZSkKICAgICAgICAgW2ZpbGVXcmFwcGVyIHNldFBy
ZWZlcnJlZEZpbGVuYW1lOmZpbGVuYW1lXTsKLSAgICBSZXRhaW5QdHI8X1dLQXR0YWNobWVudD4g
YXR0YWNobWVudCA9IFtzZWxmIF9pbnNlcnRBdHRhY2htZW50V2l0aEZpbGVXcmFwcGVyOmZpbGVX
cmFwcGVyLmdldCgpIGNvbnRlbnRUeXBlOmNvbnRlbnRUeXBlIG9wdGlvbnM6bmlsIGNvbXBsZXRp
b246XihCT09MKSB7CisgICAgUmV0YWluUHRyPF9XS0F0dGFjaG1lbnQ+IGF0dGFjaG1lbnQgPSBb
c2VsZiBfaW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlV3JhcHBlcjpmaWxlV3JhcHBlci5nZXQoKSBj
b250ZW50VHlwZTpjb250ZW50VHlwZSBjb21wbGV0aW9uOl4oQk9PTCkgewogICAgICAgICBkb25l
ID0gdHJ1ZTsKICAgICB9XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwpA
QCAtMzQzLDIxICszNDMsNiBAQCBzdGF0aWMgTlNEYXRhICp0ZXN0UERGRGF0YSgpCiAKIEBpbXBs
ZW1lbnRhdGlvbiBfV0tBdHRhY2htZW50IChBdHRhY2htZW50VGVzdGluZykKIAotLSAodm9pZClz
eW5jaHJvbm91c2x5U2V0RGlzcGxheU9wdGlvbnM6KF9XS0F0dGFjaG1lbnREaXNwbGF5T3B0aW9u
cyAqKW9wdGlvbnMgZXJyb3I6KE5TRXJyb3IgKiopZXJyb3IKLXsKLSAgICBfX2Jsb2NrIFJldGFp
blB0cjxOU0Vycm9yPiByZXN1bHRFcnJvcjsKLSAgICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNl
OwotICAgIFtzZWxmIHNldERpc3BsYXlPcHRpb25zOm9wdGlvbnMgY29tcGxldGlvbjpeKE5TRXJy
b3IgKmVycm9yKSB7Ci0gICAgICAgIHJlc3VsdEVycm9yID0gZXJyb3I7Ci0gICAgICAgIGRvbmUg
PSB0cnVlOwotICAgIH1dOwotCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
LQotICAgIGlmIChlcnJvcikKLSAgICAgICAgKmVycm9yID0gcmVzdWx0RXJyb3IuYXV0b3JlbGVh
c2UoKTsKLX0KLQogLSAodm9pZClzeW5jaHJvbm91c2x5U2V0RmlsZVdyYXBwZXI6KE5TRmlsZVdy
YXBwZXIgKilmaWxlV3JhcHBlciBuZXdDb250ZW50VHlwZTooTlNTdHJpbmcgKiluZXdDb250ZW50
VHlwZSBlcnJvcjooTlNFcnJvciAqKillcnJvcgogewogICAgIF9fYmxvY2sgUmV0YWluUHRyPE5T
RXJyb3I+IHJlc3VsdEVycm9yOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>