<?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>198709</bug_id>
          
          <creation_ts>2019-06-10 02:25:59 -0700</creation_ts>
          <short_desc>Make new Symbol/Promise API public</short_desc>
          <delta_ts>2019-06-10 09:38:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1543282</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-06-10 02:25:59 -0700</bug_when>
    <thetext>Make new Symbol/Promise API public</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543283</commentid>
    <comment_count>1</comment_count>
      <attachid>371730</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-06-10 02:28:14 -0700</bug_when>
    <thetext>Created attachment 371730
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543284</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-06-10 02:29:33 -0700</bug_when>
    <thetext>Attachment 371730 did not pass style-queue:


ERROR: Source/JavaScriptCore/API/JSValue.h:552:  Misplaced OS version check. Please use a named macro in wtf/Platform.h, wtf/FeatureDefines.h, or an appropriate internal file.  [build/version_check] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRef.h:576:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRef.h:588:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRef.h:601:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRef.h:601:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRef.h:601:  The parameter name &quot;attributes&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRef.h:613:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSValueRef.h:54:  JSC_API_AVAILABLE is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/API/JSValueRef.h:152:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/tests/testapi.mm:654:  Misplaced OS version check. Please use a named macro in wtf/Platform.h, wtf/FeatureDefines.h, or an appropriate internal file.  [build/version_check] [5]
Total errors found: 10 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543285</commentid>
    <comment_count>3</comment_count>
      <attachid>371731</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-06-10 02:31:32 -0700</bug_when>
    <thetext>Created attachment 371731
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543286</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-06-10 02:34:33 -0700</bug_when>
    <thetext>Attachment 371731 did not pass style-queue:


ERROR: Source/JavaScriptCore/API/JSValue.h:552:  Misplaced OS version check. Please use a named macro in wtf/Platform.h, wtf/FeatureDefines.h, or an appropriate internal file.  [build/version_check] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRef.h:576:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRef.h:588:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRef.h:601:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRef.h:601:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRef.h:601:  The parameter name &quot;attributes&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSObjectRef.h:613:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/JSValueRef.h:54:  JSC_API_AVAILABLE is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/API/JSValueRef.h:152:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/API/tests/testapi.mm:654:  Misplaced OS version check. Please use a named macro in wtf/Platform.h, wtf/FeatureDefines.h, or an appropriate internal file.  [build/version_check] [5]
Total errors found: 10 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543350</commentid>
    <comment_count>5</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-06-10 09:04:37 -0700</bug_when>
    <thetext>Windows build failure seems to be something with generating DerivedSources/JavaScriptCore/CombinedDomains.json. From what I can tell that seems like an inspector thing, which I shouldn&apos;t have changed... I guess I&apos;ll land this and watch the windows bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543360</commentid>
    <comment_count>6</comment_count>
      <attachid>371731</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-10 09:35:06 -0700</bug_when>
    <thetext>Comment on attachment 371731
Patch

Clearing flags on attachment: 371731

Committed r246265: &lt;https://trac.webkit.org/changeset/246265&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543361</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-10 09:35:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543362</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-06-10 09:38:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/51584049&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371730</attachid>
            <date>2019-06-10 02:28:14 -0700</date>
            <delta_ts>2019-06-10 02:31:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198709-20190610112812.patch</filename>
            <type>text/plain</type>
            <size>30938</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
YWZmOTNmNTYwNWUwY2E3ZDY2MDA0ZTkxYmNhNmY4NmY0NzM3NzFmLi4yMzgwMGM4N2NlNTdjZGE1
MWUwMTNhMDk0YTEzYmI3NmI0NmZhMDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxOS0wNi0xMCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBNYWtlIG5ldyBTeW1ib2wvUHJvbWlzZSBBUEkgcHVibGljCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg3MDkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBhbHNvIG5lZWQg
dG8gI2lmZGVmIHNvbWUgdGVzdHMgd2hlbiBidWlsZGluZyBmb3Igb2xkZXIKKyAgICAgICAgcGxh
dGZvcm1zIGJlY2F1c2UgdGhlIHNpZ25hdHVyZXMgZm9yIHNvbWUgbWV0aG9kcyBhcmUgb3V0ZGF0
ZWQgb24KKyAgICAgICAgdGhvc2UgcGxhdGZvcm1zLgorCisgICAgICAgICogQVBJL0pTT2JqZWN0
UmVmLmg6CisgICAgICAgICogQVBJL0pTT2JqZWN0UmVmUHJpdmF0ZS5oOgorICAgICAgICAqIEFQ
SS9KU1ZhbHVlLmg6CisgICAgICAgICogQVBJL0pTVmFsdWVQcml2YXRlLmg6CisgICAgICAgICog
QVBJL0pTVmFsdWVSZWYuaDoKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5tbToKKyAgICAg
ICAgKHRlc3RPYmplY3RpdmVDQVBJTWFpbik6CisKIDIwMTktMDYtMDkgIENvbW1pdCBRdWV1ZSAg
PGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIyNDYxNTAsIHIyNDYxNjAsIGFuZCByMjQ2MTY2LgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU09iamVjdFJlZi5oCmluZGV4IDQxMmZiZTllYTZhZmYyNDk4OTM5YWY4YTE5MDMzYWMzYjVm
M2I0OWIuLjcyMjI2NzIyNzA3ZmU3ZWJmNTAyODgxM2NlZWVkZmVjYTZmMjM2MjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmgKQEAgLTQ3Niw2ICs0NzYsMTcgQEAgSlNf
RVhQT1JUIEpTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZUVycm9yKEpTQ29udGV4dFJlZiBjdHgsIHNp
emVfdCBhcmd1bWVudENvdW50LAogICovCiBKU19FWFBPUlQgSlNPYmplY3RSZWYgSlNPYmplY3RN
YWtlUmVnRXhwKEpTQ29udGV4dFJlZiBjdHgsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBK
U1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIEpTQ19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjYpLCBpb3MoNy4wKSk7CiAKKy8qIQorIEBmdW5jdGlvbgorIEBhYnN0
cmFjdCBDcmVhdGVzIGEgSmF2YVNjcmlwdCBwcm9taXNlIG9iamVjdCBieSBpbnZva2luZyB0aGUg
cHJvdmlkZWQgZXhlY3V0b3IuCisgQHBhcmFtIGN0eCBUaGUgZXhlY3V0aW9uIGNvbnRleHQgdG8g
dXNlLgorIEBwYXJhbSByZXNvbHZlIEEgcG9pbnRlciB0byBhIEpTT2JqZWN0UmVmIGluIHdoaWNo
IHRvIHN0b3JlIHRoZSByZXNvbHZlIGZ1bmN0aW9uIGZvciB0aGUgbmV3IHByb21pc2UuIFBhc3Mg
TlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgdGhlIHJlc29sdmUgY2FsbGJhY2suCisg
QHBhcmFtIHJlamVjdCBBIHBvaW50ZXIgdG8gYSBKU09iamVjdFJlZiBpbiB3aGljaCB0byBzdG9y
ZSB0aGUgcmVqZWN0IGZ1bmN0aW9uIGZvciB0aGUgbmV3IHByb21pc2UuIFBhc3MgTlVMTCBpZiB5
b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgdGhlIHJlamVjdCBjYWxsYmFjay4KKyBAcGFyYW0gZXhj
ZXB0aW9uIEEgcG9pbnRlciB0byBhIEpTVmFsdWVSZWYgaW4gd2hpY2ggdG8gc3RvcmUgYW4gZXhj
ZXB0aW9uLCBpZiBhbnkuIFBhc3MgTlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgYW4g
ZXhjZXB0aW9uLgorIEByZXN1bHQgQSBKU09iamVjdCB0aGF0IGlzIGEgcHJvbWlzZSBvciBOVUxM
IGlmIGFuIGV4Y2VwdGlvbiBvY2N1cnJlZC4KKyAqLworSlNfRVhQT1JUIEpTT2JqZWN0UmVmIEpT
T2JqZWN0TWFrZURlZmVycmVkUHJvbWlzZShKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiog
cmVzb2x2ZSwgSlNPYmplY3RSZWYqIHJlamVjdCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0Nf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7CisKIC8qIQogQGZ1bmN0aW9u
CiBAYWJzdHJhY3QgQ3JlYXRlcyBhIGZ1bmN0aW9uIHdpdGggYSBnaXZlbiBzY3JpcHQgYXMgaXRz
IGJvZHkuCkBAIC01NTMsNiArNTY0LDU0IEBAIEpTX0VYUE9SVCB2b2lkIEpTT2JqZWN0U2V0UHJv
cGVydHkoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1N0cmluCiAqLwog
SlNfRVhQT1JUIGJvb2wgSlNPYmplY3REZWxldGVQcm9wZXJ0eShKU0NvbnRleHRSZWYgY3R4LCBK
U09iamVjdFJlZiBvYmplY3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNWYWx1ZVJlZiog
ZXhjZXB0aW9uKTsKIAorLyohCisgQGZ1bmN0aW9uCisgQGFic3RyYWN0IFRlc3RzIHdoZXRoZXIg
YW4gb2JqZWN0IGhhcyBhIGdpdmVuIHByb3BlcnR5IHVzaW5nIGEgSlNWYWx1ZVJlZiBhcyB0aGUg
cHJvcGVydHkga2V5LgorIEBwYXJhbSBvYmplY3QgVGhlIEpTT2JqZWN0IHRvIHRlc3QuCisgQHBh
cmFtIHByb3BlcnR5S2V5IEEgSlNWYWx1ZVJlZiBjb250YWluaW5nIHRoZSBwcm9wZXJ0eSBrZXkg
dG8gdXNlIHdoZW4gbG9va2luZyB1cCB0aGUgcHJvcGVydHkuCisgQHBhcmFtIGV4Y2VwdGlvbiBB
IHBvaW50ZXIgdG8gYSBKU1ZhbHVlUmVmIGluIHdoaWNoIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbiwg
aWYgYW55LiBQYXNzIE5VTEwgaWYgeW91IGRvIG5vdCBjYXJlIHRvIHN0b3JlIGFuIGV4Y2VwdGlv
bi4KKyBAcmVzdWx0IHRydWUgaWYgdGhlIG9iamVjdCBoYXMgYSBwcm9wZXJ0eSB3aG9zZSBuYW1l
IG1hdGNoZXMgcHJvcGVydHlLZXksIG90aGVyd2lzZSBmYWxzZS4KKyBAZGlzY3Vzc2lvbiBUaGlz
IGZ1bmN0aW9uIGlzIHRoZSBzYW1lIGFzIHBlcmZvcm1pbmcgInByb3BlcnR5S2V5IGluIG9iamVj
dCIgZnJvbSBKYXZhU2NyaXB0LgorICovCitKU19FWFBPUlQgYm9vbCBKU09iamVjdEhhc1Byb3Bl
cnR5Rm9yS2V5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNWYWx1ZVJl
ZiBwcm9wZXJ0eUtleSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0NfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNSksIGlvcygxMy4wKSk7CisKKy8qIQorIEBmdW5jdGlvbgorIEBhYnN0cmFjdCBH
ZXRzIGEgcHJvcGVydHkgZnJvbSBhbiBvYmplY3QgdXNpbmcgYSBKU1ZhbHVlUmVmIGFzIHRoZSBw
cm9wZXJ0eSBrZXkuCisgQHBhcmFtIGN0eCBUaGUgZXhlY3V0aW9uIGNvbnRleHQgdG8gdXNlLgor
IEBwYXJhbSBvYmplY3QgVGhlIEpTT2JqZWN0IHdob3NlIHByb3BlcnR5IHlvdSB3YW50IHRvIGdl
dC4KKyBAcGFyYW0gcHJvcGVydHlLZXkgQSBKU1ZhbHVlUmVmIGNvbnRhaW5pbmcgdGhlIHByb3Bl
cnR5IGtleSB0byB1c2Ugd2hlbiBsb29raW5nIHVwIHRoZSBwcm9wZXJ0eS4KKyBAcGFyYW0gZXhj
ZXB0aW9uIEEgcG9pbnRlciB0byBhIEpTVmFsdWVSZWYgaW4gd2hpY2ggdG8gc3RvcmUgYW4gZXhj
ZXB0aW9uLCBpZiBhbnkuIFBhc3MgTlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgYW4g
ZXhjZXB0aW9uLgorIEByZXN1bHQgVGhlIHByb3BlcnR5J3MgdmFsdWUgaWYgb2JqZWN0IGhhcyB0
aGUgcHJvcGVydHkga2V5LCBvdGhlcndpc2UgdGhlIHVuZGVmaW5lZCB2YWx1ZS4KKyBAZGlzY3Vz
c2lvbiBUaGlzIGZ1bmN0aW9uIGlzIHRoZSBzYW1lIGFzIHBlcmZvcm1pbmcgIm9iamVjdFtwcm9w
ZXJ0eUtleV0iIGZyb20gSmF2YVNjcmlwdC4KKyAqLworSlNfRVhQT1JUIEpTVmFsdWVSZWYgSlNP
YmplY3RHZXRQcm9wZXJ0eUZvcktleShKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmpl
Y3QsIEpTVmFsdWVSZWYgcHJvcGVydHlLZXksIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOworCisvKiEKKyBAZnVuY3Rpb24K
KyBAYWJzdHJhY3QgU2V0cyBhIHByb3BlcnR5IG9uIGFuIG9iamVjdCB1c2luZyBhIEpTVmFsdWVS
ZWYgYXMgdGhlIHByb3BlcnR5IGtleS4KKyBAcGFyYW0gY3R4IFRoZSBleGVjdXRpb24gY29udGV4
dCB0byB1c2UuCisgQHBhcmFtIG9iamVjdCBUaGUgSlNPYmplY3Qgd2hvc2UgcHJvcGVydHkgeW91
IHdhbnQgdG8gc2V0LgorIEBwYXJhbSBwcm9wZXJ0eUtleSBBIEpTVmFsdWVSZWYgY29udGFpbmlu
ZyB0aGUgcHJvcGVydHkga2V5IHRvIHVzZSB3aGVuIGxvb2tpbmcgdXAgdGhlIHByb3BlcnR5Lgor
IEBwYXJhbSB2YWx1ZSBBIEpTVmFsdWVSZWYgdG8gdXNlIGFzIHRoZSBwcm9wZXJ0eSdzIHZhbHVl
LgorIEBwYXJhbSBhdHRyaWJ1dGVzIEEgbG9naWNhbGx5IE9SZWQgc2V0IG9mIEpTUHJvcGVydHlB
dHRyaWJ1dGVzIHRvIGdpdmUgdG8gdGhlIHByb3BlcnR5LgorIEBwYXJhbSBleGNlcHRpb24gQSBw
b2ludGVyIHRvIGEgSlNWYWx1ZVJlZiBpbiB3aGljaCB0byBzdG9yZSBhbiBleGNlcHRpb24sIGlm
IGFueS4gUGFzcyBOVUxMIGlmIHlvdSBkbyBub3QgY2FyZSB0byBzdG9yZSBhbiBleGNlcHRpb24u
CisgQGRpc2N1c3Npb24gVGhpcyBmdW5jdGlvbiBpcyB0aGUgc2FtZSBhcyBwZXJmb3JtaW5nICJv
YmplY3RbcHJvcGVydHlLZXldID0gdmFsdWUiIGZyb20gSmF2YVNjcmlwdC4KKyAqLworSlNfRVhQ
T1JUIHZvaWQgSlNPYmplY3RTZXRQcm9wZXJ0eUZvcktleShKU0NvbnRleHRSZWYgY3R4LCBKU09i
amVjdFJlZiBvYmplY3QsIEpTVmFsdWVSZWYgcHJvcGVydHlLZXksIEpTVmFsdWVSZWYgdmFsdWUs
IEpTUHJvcGVydHlBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikg
SlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOworCisvKiEKKyBAZnVu
Y3Rpb24KKyBAYWJzdHJhY3QgRGVsZXRlcyBhIHByb3BlcnR5IGZyb20gYW4gb2JqZWN0IHVzaW5n
IGEgSlNWYWx1ZVJlZiBhcyB0aGUgcHJvcGVydHkga2V5LgorIEBwYXJhbSBjdHggVGhlIGV4ZWN1
dGlvbiBjb250ZXh0IHRvIHVzZS4KKyBAcGFyYW0gb2JqZWN0IFRoZSBKU09iamVjdCB3aG9zZSBw
cm9wZXJ0eSB5b3Ugd2FudCB0byBkZWxldGUuCisgQHBhcmFtIHByb3BlcnR5S2V5IEEgSlNWYWx1
ZVJlZiBjb250YWluaW5nIHRoZSBwcm9wZXJ0eSBrZXkgdG8gdXNlIHdoZW4gbG9va2luZyB1cCB0
aGUgcHJvcGVydHkuCisgQHBhcmFtIGV4Y2VwdGlvbiBBIHBvaW50ZXIgdG8gYSBKU1ZhbHVlUmVm
IGluIHdoaWNoIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbiwgaWYgYW55LiBQYXNzIE5VTEwgaWYgeW91
IGRvIG5vdCBjYXJlIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbi4KKyBAcmVzdWx0IHRydWUgaWYgdGhl
IGRlbGV0ZSBvcGVyYXRpb24gc3VjY2VlZHMsIG90aGVyd2lzZSBmYWxzZSAoZm9yIGV4YW1wbGUs
IGlmIHRoZSBwcm9wZXJ0eSBoYXMgdGhlIGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSBh
dHRyaWJ1dGUgc2V0KS4KKyBAZGlzY3Vzc2lvbiBUaGlzIGZ1bmN0aW9uIGlzIHRoZSBzYW1lIGFz
IHBlcmZvcm1pbmcgImRlbGV0ZSBvYmplY3RbcHJvcGVydHlLZXldIiBmcm9tIEphdmFTY3JpcHQu
CisgKi8KK0pTX0VYUE9SVCBib29sIEpTT2JqZWN0RGVsZXRlUHJvcGVydHlGb3JLZXkoSlNDb250
ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1ZhbHVlUmVmIHByb3BlcnR5S2V5LCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9z
KDEzLjApKTsKKwogLyohCiBAZnVuY3Rpb24KIEBhYnN0cmFjdCBHZXRzIGEgcHJvcGVydHkgZnJv
bSBhbiBvYmplY3QgYnkgbnVtZXJpYyBpbmRleC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNPYmplY3RSZWZQcml2YXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTT2JqZWN0UmVmUHJpdmF0ZS5oCmluZGV4IDQzMjYzNzIzNGMyOGVlMjE5NjhjZjM3NTll
ZDUzYTJjYjVlZWNhZTAuLjY0NjdmNzkwNDZhNjkyZDIxMjg0MDFiZWQyZGQ4OGUzYmIzMGVhOTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWZQcml2YXRl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZlByaXZhdGUuaApA
QCAtNzEsODMgKzcxLDYgQEAgSlNfRVhQT1JUIEpTT2JqZWN0UmVmIEpTT2JqZWN0R2V0UHJveHlU
YXJnZXQoSlNPYmplY3RSZWYpOwogCiBKU19FWFBPUlQgSlNHbG9iYWxDb250ZXh0UmVmIEpTT2Jq
ZWN0R2V0R2xvYmFsQ29udGV4dChKU09iamVjdFJlZiBvYmplY3QpOwogCi0vKiEKLSBAZnVuY3Rp
b24KLSBAYWJzdHJhY3QgQ3JlYXRlcyBhIEphdmFTY3JpcHQgcHJvbWlzZSBvYmplY3QgYnkgaW52
b2tpbmcgdGhlIHByb3ZpZGVkIGV4ZWN1dG9yLgotIEBwYXJhbSBjdHggVGhlIGV4ZWN1dGlvbiBj
b250ZXh0IHRvIHVzZS4KLSBAcGFyYW0gcmVzb2x2ZSBBIHBvaW50ZXIgdG8gYSBKU09iamVjdFJl
ZiBpbiB3aGljaCB0byBzdG9yZSB0aGUgcmVzb2x2ZSBmdW5jdGlvbiBmb3IgdGhlIG5ldyBwcm9t
aXNlLiBQYXNzIE5VTEwgaWYgeW91IGRvIG5vdCBjYXJlIHRvIHN0b3JlIHRoZSByZXNvbHZlIGNh
bGxiYWNrLgotIEBwYXJhbSByZWplY3QgQSBwb2ludGVyIHRvIGEgSlNPYmplY3RSZWYgaW4gd2hp
Y2ggdG8gc3RvcmUgdGhlIHJlamVjdCBmdW5jdGlvbiBmb3IgdGhlIG5ldyBwcm9taXNlLiBQYXNz
IE5VTEwgaWYgeW91IGRvIG5vdCBjYXJlIHRvIHN0b3JlIHRoZSByZWplY3QgY2FsbGJhY2suCi0g
QHBhcmFtIGV4Y2VwdGlvbiBBIHBvaW50ZXIgdG8gYSBKU1ZhbHVlUmVmIGluIHdoaWNoIHRvIHN0
b3JlIGFuIGV4Y2VwdGlvbiwgaWYgYW55LiBQYXNzIE5VTEwgaWYgeW91IGRvIG5vdCBjYXJlIHRv
IHN0b3JlIGFuIGV4Y2VwdGlvbi4KLSBAcmVzdWx0IEEgSlNPYmplY3QgdGhhdCBpcyBhIHByb21p
c2Ugb3IgTlVMTCBpZiBhbiBleGNlcHRpb24gb2NjdXJyZWQuCi0gKi8KLUpTX0VYUE9SVCBKU09i
amVjdFJlZiBKU09iamVjdE1ha2VEZWZlcnJlZFByb21pc2UoSlNDb250ZXh0UmVmIGN0eCwgSlNP
YmplY3RSZWYqIHJlc29sdmUsIEpTT2JqZWN0UmVmKiByZWplY3QsIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbikgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoSlNDX01BQ19UQkEpLCBpb3MoSlNDX0lPU19U
QkEpKTsKLQotLyohCi0gQGZ1bmN0aW9uCi0gQGFic3RyYWN0IFRlc3RzIHdoZXRoZXIgYW4gb2Jq
ZWN0IGhhcyBhIGdpdmVuIHByb3BlcnR5IHVzaW5nIGEgSlNWYWx1ZVJlZiBhcyB0aGUgcHJvcGVy
dHkga2V5LgotIEBwYXJhbSBvYmplY3QgVGhlIEpTT2JqZWN0IHRvIHRlc3QuCi0gQHBhcmFtIHBy
b3BlcnR5S2V5IEEgSlNWYWx1ZVJlZiBjb250YWluaW5nIHRoZSBwcm9wZXJ0eSBrZXkgdG8gdXNl
IHdoZW4gbG9va2luZyB1cCB0aGUgcHJvcGVydHkuCi0gQHBhcmFtIGV4Y2VwdGlvbiBBIHBvaW50
ZXIgdG8gYSBKU1ZhbHVlUmVmIGluIHdoaWNoIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbiwgaWYgYW55
LiBQYXNzIE5VTEwgaWYgeW91IGRvIG5vdCBjYXJlIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbi4KLSBA
cmVzdWx0IHRydWUgaWYgdGhlIG9iamVjdCBoYXMgYSBwcm9wZXJ0eSB3aG9zZSBuYW1lIG1hdGNo
ZXMgcHJvcGVydHlLZXksIG90aGVyd2lzZSBmYWxzZS4KLSBAZGlzY3Vzc2lvbiBUaGlzIGZ1bmN0
aW9uIGlzIHRoZSBzYW1lIGFzIHBlcmZvcm1pbmcgInByb3BlcnR5S2V5IGluIG9iamVjdCIgZnJv
bSBKYXZhU2NyaXB0LgotICovCi1KU19FWFBPUlQgYm9vbCBKU09iamVjdEhhc1Byb3BlcnR5Rm9y
S2V5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNWYWx1ZVJlZiBwcm9w
ZXJ0eUtleSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcyhK
U0NfTUFDX1RCQSksIGlvcyhKU0NfSU9TX1RCQSkpOwotCi0vKiEKLSBAZnVuY3Rpb24KLSBAYWJz
dHJhY3QgR2V0cyBhIHByb3BlcnR5IGZyb20gYW4gb2JqZWN0IHVzaW5nIGEgSlNWYWx1ZVJlZiBh
cyB0aGUgcHJvcGVydHkga2V5LgotIEBwYXJhbSBjdHggVGhlIGV4ZWN1dGlvbiBjb250ZXh0IHRv
IHVzZS4KLSBAcGFyYW0gb2JqZWN0IFRoZSBKU09iamVjdCB3aG9zZSBwcm9wZXJ0eSB5b3Ugd2Fu
dCB0byBnZXQuCi0gQHBhcmFtIHByb3BlcnR5S2V5IEEgSlNWYWx1ZVJlZiBjb250YWluaW5nIHRo
ZSBwcm9wZXJ0eSBrZXkgdG8gdXNlIHdoZW4gbG9va2luZyB1cCB0aGUgcHJvcGVydHkuCi0gQHBh
cmFtIGV4Y2VwdGlvbiBBIHBvaW50ZXIgdG8gYSBKU1ZhbHVlUmVmIGluIHdoaWNoIHRvIHN0b3Jl
IGFuIGV4Y2VwdGlvbiwgaWYgYW55LiBQYXNzIE5VTEwgaWYgeW91IGRvIG5vdCBjYXJlIHRvIHN0
b3JlIGFuIGV4Y2VwdGlvbi4KLSBAcmVzdWx0IFRoZSBwcm9wZXJ0eSdzIHZhbHVlIGlmIG9iamVj
dCBoYXMgdGhlIHByb3BlcnR5IGtleSwgb3RoZXJ3aXNlIHRoZSB1bmRlZmluZWQgdmFsdWUuCi0g
QGRpc2N1c3Npb24gVGhpcyBmdW5jdGlvbiBpcyB0aGUgc2FtZSBhcyBwZXJmb3JtaW5nICJvYmpl
Y3RbcHJvcGVydHlLZXldIiBmcm9tIEphdmFTY3JpcHQuCi0gKi8KLUpTX0VYUE9SVCBKU1ZhbHVl
UmVmIEpTT2JqZWN0R2V0UHJvcGVydHlGb3JLZXkoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RS
ZWYgb2JqZWN0LCBKU1ZhbHVlUmVmIHByb3BlcnR5S2V5LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24p
IEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19JT1NfVEJBKSk7
Ci0KLS8qIQotIEBmdW5jdGlvbgotIEBhYnN0cmFjdCBTZXRzIGEgcHJvcGVydHkgb24gYW4gb2Jq
ZWN0IHVzaW5nIGEgSlNWYWx1ZVJlZiBhcyB0aGUgcHJvcGVydHkga2V5LgotIEBwYXJhbSBjdHgg
VGhlIGV4ZWN1dGlvbiBjb250ZXh0IHRvIHVzZS4KLSBAcGFyYW0gb2JqZWN0IFRoZSBKU09iamVj
dCB3aG9zZSBwcm9wZXJ0eSB5b3Ugd2FudCB0byBzZXQuCi0gQHBhcmFtIHByb3BlcnR5S2V5IEEg
SlNWYWx1ZVJlZiBjb250YWluaW5nIHRoZSBwcm9wZXJ0eSBrZXkgdG8gdXNlIHdoZW4gbG9va2lu
ZyB1cCB0aGUgcHJvcGVydHkuCi0gQHBhcmFtIHZhbHVlIEEgSlNWYWx1ZVJlZiB0byB1c2UgYXMg
dGhlIHByb3BlcnR5J3MgdmFsdWUuCi0gQHBhcmFtIGF0dHJpYnV0ZXMgQSBsb2dpY2FsbHkgT1Jl
ZCBzZXQgb2YgSlNQcm9wZXJ0eUF0dHJpYnV0ZXMgdG8gZ2l2ZSB0byB0aGUgcHJvcGVydHkuCi0g
QHBhcmFtIGV4Y2VwdGlvbiBBIHBvaW50ZXIgdG8gYSBKU1ZhbHVlUmVmIGluIHdoaWNoIHRvIHN0
b3JlIGFuIGV4Y2VwdGlvbiwgaWYgYW55LiBQYXNzIE5VTEwgaWYgeW91IGRvIG5vdCBjYXJlIHRv
IHN0b3JlIGFuIGV4Y2VwdGlvbi4KLSBAZGlzY3Vzc2lvbiBUaGlzIGZ1bmN0aW9uIGlzIHRoZSBz
YW1lIGFzIHBlcmZvcm1pbmcgIm9iamVjdFtwcm9wZXJ0eUtleV0gPSB2YWx1ZSIgZnJvbSBKYXZh
U2NyaXB0LgotICovCi1KU19FWFBPUlQgdm9pZCBKU09iamVjdFNldFByb3BlcnR5Rm9yS2V5KEpT
Q29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNWYWx1ZVJlZiBwcm9wZXJ0eUtl
eSwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNQcm9wZXJ0eUF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSlNW
YWx1ZVJlZiogZXhjZXB0aW9uKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcyhKU0NfTUFDX1RCQSks
IGlvcyhKU0NfSU9TX1RCQSkpOwotCi0vKiEKLSBAZnVuY3Rpb24KLSBAYWJzdHJhY3QgRGVsZXRl
cyBhIHByb3BlcnR5IGZyb20gYW4gb2JqZWN0IHVzaW5nIGEgSlNWYWx1ZVJlZiBhcyB0aGUgcHJv
cGVydHkga2V5LgotIEBwYXJhbSBjdHggVGhlIGV4ZWN1dGlvbiBjb250ZXh0IHRvIHVzZS4KLSBA
cGFyYW0gb2JqZWN0IFRoZSBKU09iamVjdCB3aG9zZSBwcm9wZXJ0eSB5b3Ugd2FudCB0byBkZWxl
dGUuCi0gQHBhcmFtIHByb3BlcnR5S2V5IEEgSlNWYWx1ZVJlZiBjb250YWluaW5nIHRoZSBwcm9w
ZXJ0eSBrZXkgdG8gdXNlIHdoZW4gbG9va2luZyB1cCB0aGUgcHJvcGVydHkuCi0gQHBhcmFtIGV4
Y2VwdGlvbiBBIHBvaW50ZXIgdG8gYSBKU1ZhbHVlUmVmIGluIHdoaWNoIHRvIHN0b3JlIGFuIGV4
Y2VwdGlvbiwgaWYgYW55LiBQYXNzIE5VTEwgaWYgeW91IGRvIG5vdCBjYXJlIHRvIHN0b3JlIGFu
IGV4Y2VwdGlvbi4KLSBAcmVzdWx0IHRydWUgaWYgdGhlIGRlbGV0ZSBvcGVyYXRpb24gc3VjY2Vl
ZHMsIG90aGVyd2lzZSBmYWxzZSAoZm9yIGV4YW1wbGUsIGlmIHRoZSBwcm9wZXJ0eSBoYXMgdGhl
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSBhdHRyaWJ1dGUgc2V0KS4KLSBAZGlzY3Vz
c2lvbiBUaGlzIGZ1bmN0aW9uIGlzIHRoZSBzYW1lIGFzIHBlcmZvcm1pbmcgImRlbGV0ZSBvYmpl
Y3RbcHJvcGVydHlLZXldIiBmcm9tIEphdmFTY3JpcHQuCi0gKi8KLUpTX0VYUE9SVCBib29sIEpT
T2JqZWN0RGVsZXRlUHJvcGVydHlGb3JLZXkoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYg
b2JqZWN0LCBKU1ZhbHVlUmVmIHByb3BlcnR5S2V5LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIEpT
Q19BUElfQVZBSUxBQkxFKG1hY29zKEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19JT1NfVEJBKSk7Ci0K
LS8qIQotIEBmdW5jdGlvbgotIEBhYnN0cmFjdCAgICAgICAgICAgIENyZWF0ZXMgYSBKYXZhU2Ny
aXB0IHZhbHVlIG9mIHRoZSBzeW1ib2wgdHlwZS4KLSBAcGFyYW0gY3R4ICAgICAgICAgICBUaGUg
ZXhlY3V0aW9uIGNvbnRleHQgdG8gdXNlLgotIEBwYXJhbSBkZXNjcmlwdGlvbiAgIEEgZGVzY3Jp
cHRpb24gb2YgdGhlIG5ld2x5IGNyZWF0ZWQgc3ltYm9sIHZhbHVlLgotIEByZXN1bHQgICAgICAg
ICAgICAgIEEgdW5pcXVlIEpTVmFsdWUgb2YgdGhlIHN5bWJvbCB0eXBlLCB3aG9zZSBkZXNjcmlw
dGlvbiBtYXRjaGVzIHRoZSBvbmUgcHJvdmlkZWQuCi0gKi8KLUpTX0VYUE9SVCBKU1ZhbHVlUmVm
IEpTVmFsdWVNYWtlU3ltYm9sKEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIGRlc2NyaXB0
aW9uKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcyhKU0NfTUFDX1RCQSksIGlvcyhKU0NfSU9TX1RC
QSkpOwotCi0vKiEKLSBAZnVuY3Rpb24KLSBAYWJzdHJhY3QgICAgICAgVGVzdHMgd2hldGhlciBh
IEphdmFTY3JpcHQgdmFsdWUncyB0eXBlIGlzIHRoZSBzeW1ib2wgdHlwZS4KLSBAcGFyYW0gY3R4
ICAgICAgVGhlIGV4ZWN1dGlvbiBjb250ZXh0IHRvIHVzZS4KLSBAcGFyYW0gdmFsdWUgICAgVGhl
IEpTVmFsdWUgdG8gdGVzdC4KLSBAcmVzdWx0ICAgICAgICAgdHJ1ZSBpZiB2YWx1ZSdzIHR5cGUg
aXMgdGhlIHN5bWJvbCB0eXBlLCBvdGhlcndpc2UgZmFsc2UuCi0gKi8KLUpTX0VYUE9SVCBib29s
IEpTVmFsdWVJc1N5bWJvbChKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlKSBKU0Nf
QVBJX0FWQUlMQUJMRShtYWNvcyhKU0NfTUFDX1RCQSksIGlvcyhKU0NfSU9TX1RCQSkpOwotCiAj
aWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUu
aAppbmRleCA4ZmU1MjkxYWFiZjg5NjA4ODdjZjJjNzM4YWRlYmY5NTQxOTBmNjg3Li5hMTMyY2Fi
YjhhZTMzMThlYTk5ZjcxZGYxYWIzYWNlMjc5NGViODI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTVmFsdWUuaApAQCAtMTMyLDYgKzEzMiw0NSBAQCBOU19DTEFTU19BVkFJTEFCTEUoMTBfOSwg
N18wKQogKi8KICsgKEpTVmFsdWUgKil2YWx1ZVdpdGhOZXdFcnJvckZyb21NZXNzYWdlOihOU1N0
cmluZyAqKW1lc3NhZ2UgaW5Db250ZXh0OihKU0NvbnRleHQgKiljb250ZXh0OwogCisvKiEKK0Bt
ZXRob2QKK0BhYnN0cmFjdCBDcmVhdGUgYSBuZXcgcHJvbWlzZSBvYmplY3QgdXNpbmcgdGhlIHBy
b3ZpZGVkIGV4ZWN1dG9yIGNhbGxiYWNrLgorQHBhcmFtIGNhbGxiYWNrIEEgY2FsbGJhY2sgYmxv
Y2sgaW52b2tlZCB3aGlsZSB0aGUgcHJvbWlzZSBvYmplY3QgaXMgYmVpbmcgaW5pdGlhbGl6ZWQu
IFRoZSByZXNvbHZlIGFuZCByZWplY3QgcGFyYW1ldGVycyBhcmUgZnVuY3Rpb25zIHRoYXQgY2Fu
IGJlIGNhbGxlZCB0byBub3RpZnkgYW55IHBlbmRpbmcgcmVhY3Rpb25zIGFib3V0IHRoZSBzdGF0
ZSBvZiB0aGUgbmV3IHByb21pc2Ugb2JqZWN0LgorQHBhcmFtIGNvbnRleHQgVGhlIEpTQ29udGV4
dCB0byB3aGljaCB0aGUgcmVzdWx0aW5nIEpTVmFsdWUgYmVsb25ncy4KK0ByZXN1bHQgVGhlIEpT
VmFsdWUgcmVwcmVzZW50aW5nIGEgbmV3IHByb21pc2UgSmF2YVNjcmlwdCBvYmplY3QuCitAZGlz
Y3Vzc2lvbiBUaGlzIG1ldGhvZCBpcyBlcXVpdmFsZW50IHRvIGNhbGxpbmcgdGhlIFByb21pc2Ug
Y29uc3RydWN0b3IgaW4gSmF2YVNjcmlwdC4gdGhlIHJlc29sdmUgYW5kIHJlamVjdCBjYWxsYmFj
a3MgZWFjaCBub3JtYWxseSB0YWtlIGEgc2luZ2xlIHZhbHVlLCB3aGljaCB0aGV5IGZvcndhcmQg
dG8gYWxsIHJlbGV2ZW50IHBlbmRpbmcgcmVhY3Rpb25zLiBXaGlsZSBpbnNpZGUgdGhlIGV4ZWN1
dG9yIGNhbGxiYWNrIGNvbnRleHQgd2lsbCBhY3QgYXMgaWYgaXQgd2VyZSBpbiBhbnkgb3RoZXIg
Y2FsbGJhY2ssIGV4Y2VwdCBjYWxsZWVGdW5jdGlvbiB3aWxsIGJlIDxjb2RlPm5pbDwvY29kZT4u
IFRoaXMgYWxzbyBtZWFucyBtZWFucyB0aGUgbmV3IHByb21pc2Ugb2JqZWN0IG1heSBiZSBhY2Nl
c3NlZCB2aWEgPGNvZGU+W2NvbnRleHQgdGhpc1ZhbHVlXTwvY29kZT4uCisqLworKyAoSlNWYWx1
ZSAqKXZhbHVlV2l0aE5ld1Byb21pc2VJbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQgZnJv
bUV4ZWN1dG9yOih2b2lkICheKShKU1ZhbHVlICpyZXNvbHZlLCBKU1ZhbHVlICpyZWplY3QpKWNh
bGxiYWNrIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKKworLyoh
CitAbWV0aG9kCitAYWJzdHJhY3QgQ3JlYXRlIGEgbmV3IHJlc29sdmVkIHByb21pc2Ugb2JqZWN0
IHdpdGggdGhlIHByb3ZpZGVkIHZhbHVlLgorQHBhcmFtIHJlc3VsdCBUaGUgcmVzdWx0IHZhbHVl
IHRvIGJlIHBhc3NlZCB0byBhbnkgcmVhY3Rpb25zLgorQHBhcmFtIGNvbnRleHQgVGhlIEpTQ29u
dGV4dCB0byB3aGljaCB0aGUgcmVzdWx0aW5nIEpTVmFsdWUgYmVsb25ncy4KK0ByZXN1bHQgVGhl
IEpTVmFsdWUgcmVwcmVzZW50aW5nIGEgbmV3IHByb21pc2UgSmF2YVNjcmlwdCBvYmplY3QuCitA
ZGlzY3Vzc2lvbiBUaGlzIG1ldGhvZCBpcyBlcXVpdmFsZW50IHRvIGNhbGxpbmcgPGNvZGU+W0pT
VmFsdWUgdmFsdWVXaXRoTmV3UHJvbWlzZUZyb21FeGVjdXRvcjpeKEpTVmFsdWUgKnJlc29sdmUs
IEpTVmFsdWUgKnJlamVjdCkgeyBbcmVzb2x2ZSBjYWxsV2l0aEFyZ3VtZW50czpAW3Jlc3VsdF1d
OyB9IGluQ29udGV4dDpjb250ZXh0XTwvY29kZT4KKyovCisrIChKU1ZhbHVlICopdmFsdWVXaXRo
TmV3UHJvbWlzZVJlc29sdmVkV2l0aFJlc3VsdDooaWQpcmVzdWx0IGluQ29udGV4dDooSlNDb250
ZXh0ICopY29udGV4dCBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7
CisKKy8qIQorQG1ldGhvZAorQGFic3RyYWN0IENyZWF0ZSBhIG5ldyByZWplY3RlZCBwcm9taXNl
IG9iamVjdCB3aXRoIHRoZSBwcm92aWRlZCB2YWx1ZS4KK0BwYXJhbSByZWFzb24gVGhlIHJlc3Vs
dCB2YWx1ZSB0byBiZSBwYXNzZWQgdG8gYW55IHJlYWN0aW9ucy4KK0BwYXJhbSBjb250ZXh0IFRo
ZSBKU0NvbnRleHQgdG8gd2hpY2ggdGhlIHJlc3VsdGluZyBKU1ZhbHVlIGJlbG9uZ3MuCitAcmVz
dWx0IFRoZSBKU1ZhbHVlIHJlcHJlc2VudGluZyBhIG5ldyBwcm9taXNlIEphdmFTY3JpcHQgb2Jq
ZWN0LgorQGRpc2N1c3Npb24gVGhpcyBtZXRob2QgaXMgZXF1aXZhbGVudCB0byBjYWxsaW5nIDxj
b2RlPltKU1ZhbHVlIHZhbHVlV2l0aE5ld1Byb21pc2VGcm9tRXhlY3V0b3I6XihKU1ZhbHVlICpy
ZXNvbHZlLCBKU1ZhbHVlICpyZWplY3QpIHsgW3JlamVjdCBjYWxsV2l0aEFyZ3VtZW50czpAW3Jl
YXNvbl1dOyB9IGluQ29udGV4dDpjb250ZXh0XTwvY29kZT4KKyovCisrIChKU1ZhbHVlICopdmFs
dWVXaXRoTmV3UHJvbWlzZVJlamVjdGVkV2l0aFJlYXNvbjooaWQpcmVhc29uIGluQ29udGV4dDoo
SlNDb250ZXh0ICopY29udGV4dCBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygx
My4wKSk7CisKKy8qIQorQG1ldGhvZAorQGFic3RyYWN0IENyZWF0ZSBhIG5ldywgdW5pcXVlLCBz
eW1ib2wgb2JqZWN0LgorQHBhcmFtIGRlc2NyaXB0aW9uIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUg
c3ltYm9sIG9iamVjdCBiZWluZyBjcmVhdGVkLgorQHBhcmFtIGNvbnRleHQgVGhlIEpTQ29udGV4
dCB0byB3aGljaCB0aGUgcmVzdWx0aW5nIEpTVmFsdWUgYmVsb25ncy4KK0ByZXN1bHQgVGhlIEpT
VmFsdWUgcmVwcmVzZW50aW5nIGEgdW5pcXVlIEphdmFTY3JpcHQgdmFsdWUgd2l0aCB0eXBlIHN5
bWJvbC4KKyovCisrIChKU1ZhbHVlICopdmFsdWVXaXRoTmV3U3ltYm9sRnJvbURlc2NyaXB0aW9u
OihOU1N0cmluZyAqKWRlc2NyaXB0aW9uIGluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dCBK
U0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7CisKIC8qIQogQG1ldGhv
ZAogQGFic3RyYWN0IENyZWF0ZSB0aGUgSmF2YVNjcmlwdCB2YWx1ZSA8Y29kZT5udWxsPC9jb2Rl
Pi4KQEAgLTM1Nyw2ICszOTYsMTIgQEAgTlNfQ0xBU1NfQVZBSUxBQkxFKDEwXzksIDdfMCkKICov
IAogQHByb3BlcnR5IChyZWFkb25seSkgQk9PTCBpc0RhdGUgSlNDX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTEpLCBpb3MoOS4wKSk7CiAKKy8qIQorIEBwcm9wZXJ0eQorIEBhYnN0cmFjdCBDaGVj
ayBpZiBhIEpTVmFsdWUgaXMgYSBzeW1ib2wuCisgKi8KK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIEJP
T0wgaXNTeW1ib2wgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOwor
CiAvKiEKIEBtZXRob2QKIEBhYnN0cmFjdCBDb21wYXJlIHR3byBKU1ZhbHVlcyB1c2luZyBKYXZh
U2NyaXB0J3MgPGNvZGU+PT09PC9jb2RlPiBvcGVyYXRvci4KQEAgLTUwNCw0MyArNTQ5LDUyIEBA
IENyZWF0ZSBhIEpTVmFsdWUgZnJvbSBhIENHUmVjdC4KICAqLwogQGludGVyZmFjZSBKU1ZhbHVl
IChQcm9wZXJ0eUFjY2VzcykKIAorI2lmIChkZWZpbmVkKF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDE1MDApIHx8
IChkZWZpbmVkKF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEKSAmJiBfX0lQSE9ORV9P
U19WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEzMDAwMCkKK3R5cGVkZWYgTlNTdHJpbmcgKkpTVmFs
dWVQcm9wZXJ0eTsKKyNlbHNlCit0eXBlZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKKyNlbmRpZgor
CiAvKiEKICBAbWV0aG9kCiAgQGFic3RyYWN0IEFjY2VzcyBhIHByb3BlcnR5IG9mIGEgSlNWYWx1
ZS4KICBAcmVzdWx0IFRoZSBKU1ZhbHVlIGZvciB0aGUgcmVxdWVzdGVkIHByb3BlcnR5IG9yIHRo
ZSBKU1ZhbHVlIDxjb2RlPnVuZGVmaW5lZDwvY29kZT4KICBpZiB0aGUgcHJvcGVydHkgZG9lcyBu
b3QgZXhpc3QuCisgQGRpc2N1c3Npb24gQ29ycmVzcG9uZHMgdG8gdGhlIEphdmFTY3JpcHQgb3Bl
cmF0aW9uIDxjb2RlPm9iamVjdFtwcm9wZXJ0eV08L2NvZGU+LiBTdGFydGluZyB3aXRoIG1hY09T
IDEwLjE1IGFuZCBpT1MgMTMsICdwcm9wZXJ0eScgY2FuIGJlIGFueSAnaWQnIGFuZCB3aWxsIGJl
IGNvbnZlcnRlZCB0byBhIEpTVmFsdWUgdXNpbmcgdGhlIGNvbnZlcnNpb24gcnVsZXMgb2YgPGNv
ZGU+dmFsdWVXaXRoT2JqZWN0OmluQ29udGV4dDo8L2NvZGU+LiBQcmlvciB0byBtYWNPUyAxMC4x
NSBhbmQgaU9TIDEzLCAncHJvcGVydHknIHdhcyBleHBlY3RlZCB0byBiZSBhbiBOU1N0cmluZyAq
LgogICovCi0tIChKU1ZhbHVlICopdmFsdWVGb3JQcm9wZXJ0eTooTlNTdHJpbmcgKilwcm9wZXJ0
eTsKKy0gKEpTVmFsdWUgKil2YWx1ZUZvclByb3BlcnR5OihKU1ZhbHVlUHJvcGVydHkpcHJvcGVy
dHk7CiAKIC8qIQogIEBtZXRob2QKICBAYWJzdHJhY3QgU2V0IGEgcHJvcGVydHkgb24gYSBKU1Zh
bHVlLgorIEBkaXNjdXNzaW9uIENvcnJlc3BvbmRzIHRvIHRoZSBKYXZhU2NyaXB0IG9wZXJhdGlv
biA8Y29kZT5vYmplY3RbcHJvcGVydHldID0gdmFsdWU8L2NvZGU+LiBTdGFydGluZyB3aXRoIG1h
Y09TIDEwLjE1IGFuZCBpT1MgMTMsICdwcm9wZXJ0eScgY2FuIGJlIGFueSAnaWQnIGFuZCB3aWxs
IGJlIGNvbnZlcnRlZCB0byBhIEpTVmFsdWUgdXNpbmcgdGhlIGNvbnZlcnNpb24gcnVsZXMgb2Yg
PGNvZGU+dmFsdWVXaXRoT2JqZWN0OmluQ29udGV4dDo8L2NvZGU+LiBQcmlvciB0byBtYWNPUyAx
MC4xNSBhbmQgaU9TIDEzLCAncHJvcGVydHknIHdhcyBleHBlY3RlZCB0byBiZSBhbiBOU1N0cmlu
ZyAqLgogICovCi0tICh2b2lkKXNldFZhbHVlOihpZCl2YWx1ZSBmb3JQcm9wZXJ0eTooTlNTdHJp
bmcgKilwcm9wZXJ0eTsKKy0gKHZvaWQpc2V0VmFsdWU6KGlkKXZhbHVlIGZvclByb3BlcnR5OihK
U1ZhbHVlUHJvcGVydHkpcHJvcGVydHk7CiAKIC8qIQogIEBtZXRob2QKICBAYWJzdHJhY3QgRGVs
ZXRlIGEgcHJvcGVydHkgZnJvbSBhIEpTVmFsdWUuCiAgQHJlc3VsdCBZRVMgaWYgZGVsZXRpb24g
aXMgc3VjY2Vzc2Z1bCwgTk8gb3RoZXJ3aXNlLgorIEBkaXNjdXNzaW9uIENvcnJlc3BvbmRzIHRv
IHRoZSBKYXZhU2NyaXB0IG9wZXJhdGlvbiA8Y29kZT5kZWxldGUgb2JqZWN0W3Byb3BlcnR5XTwv
Y29kZT4uIFN0YXJ0aW5nIHdpdGggbWFjT1MgMTAuMTUgYW5kIGlPUyAxMywgJ3Byb3BlcnR5JyBj
YW4gYmUgYW55ICdpZCcgYW5kIHdpbGwgYmUgY29udmVydGVkIHRvIGEgSlNWYWx1ZSB1c2luZyB0
aGUgY29udmVyc2lvbiBydWxlcyBvZiA8Y29kZT52YWx1ZVdpdGhPYmplY3Q6aW5Db250ZXh0Ojwv
Y29kZT4uIFByaW9yIHRvIG1hY09TIDEwLjE1IGFuZCBpT1MgMTMsICdwcm9wZXJ0eScgd2FzIGV4
cGVjdGVkIHRvIGJlIGFuIE5TU3RyaW5nICouCiAgKi8KLS0gKEJPT0wpZGVsZXRlUHJvcGVydHk6
KE5TU3RyaW5nICopcHJvcGVydHk7CistIChCT09MKWRlbGV0ZVByb3BlcnR5OihKU1ZhbHVlUHJv
cGVydHkpcHJvcGVydHk7CiAKIC8qIQogIEBtZXRob2QKICBAYWJzdHJhY3QgQ2hlY2sgaWYgYSBK
U1ZhbHVlIGhhcyBhIHByb3BlcnR5LgogIEBkaXNjdXNzaW9uIFRoaXMgbWV0aG9kIGhhcyB0aGUg
c2FtZSBmdW5jdGlvbiBhcyB0aGUgSmF2YVNjcmlwdCBvcGVyYXRvciA8Y29kZT5pbjwvY29kZT4u
CiAgQHJlc3VsdCBSZXR1cm5zIFlFUyBpZiBwcm9wZXJ0eSBpcyBwcmVzZW50IG9uIHRoZSB2YWx1
ZS4KKyBAZGlzY3Vzc2lvbiBDb3JyZXNwb25kcyB0byB0aGUgSmF2YVNjcmlwdCBvcGVyYXRpb24g
PGNvZGU+cHJvcGVydHkgaW4gb2JqZWN0PC9jb2RlPi4gU3RhcnRpbmcgd2l0aCBtYWNPUyAxMC4x
NSBhbmQgaU9TIDEzLCAncHJvcGVydHknIGNhbiBiZSBhbnkgJ2lkJyBhbmQgd2lsbCBiZSBjb252
ZXJ0ZWQgdG8gYSBKU1ZhbHVlIHVzaW5nIHRoZSBjb252ZXJzaW9uIHJ1bGVzIG9mIDxjb2RlPnZh
bHVlV2l0aE9iamVjdDppbkNvbnRleHQ6PC9jb2RlPi4gUHJpb3IgdG8gbWFjT1MgMTAuMTUgYW5k
IGlPUyAxMywgJ3Byb3BlcnR5JyB3YXMgZXhwZWN0ZWQgdG8gYmUgYW4gTlNTdHJpbmcgKi4KICAq
LwotLSAoQk9PTCloYXNQcm9wZXJ0eTooTlNTdHJpbmcgKilwcm9wZXJ0eTsKKy0gKEJPT0wpaGFz
UHJvcGVydHk6KEpTVmFsdWVQcm9wZXJ0eSlwcm9wZXJ0eTsKIAogLyohCiAgQG1ldGhvZAogIEBh
YnN0cmFjdCBEZWZpbmUgcHJvcGVydGllcyB3aXRoIGN1c3RvbSBkZXNjcmlwdG9ycyBvbiBKU1Zh
bHVlcy4KICBAZGlzY3Vzc2lvbiBUaGlzIG1ldGhvZCBtYXkgYmUgdXNlZCB0byBjcmVhdGUgYSBk
YXRhIG9yIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIG9iamVjdC4KLSBUaGlzIG1ldGhvZCBvcGVy
YXRlcyBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSBtZXRob2Qg
aW4gdGhlCi0gSmF2YVNjcmlwdCBsYW5ndWFnZS4KKyBUaGlzIG1ldGhvZCBvcGVyYXRlcyBpbiBh
Y2NvcmRhbmNlIHdpdGggdGhlIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSBtZXRob2QgaW4gdGhlIEph
dmFTY3JpcHQgbGFuZ3VhZ2UuIFN0YXJ0aW5nIHdpdGggbWFjT1MgMTAuMTUgYW5kIGlPUyAxMywg
J3Byb3BlcnR5JyBjYW4gYmUgYW55ICdpZCcgYW5kIHdpbGwgYmUgY29udmVydGVkIHRvIGEgSlNW
YWx1ZSB1c2luZyB0aGUgY29udmVyc2lvbiBydWxlcyBvZiA8Y29kZT52YWx1ZVdpdGhPYmplY3Q6
aW5Db250ZXh0OjwvY29kZT4uIFByaW9yIHRvIG1hY09TIDEwLjE1IGFuZCBpT1MgMTMsICdwcm9w
ZXJ0eScgd2FzIGV4cGVjdGVkIHRvIGJlIGFuIE5TU3RyaW5nICouCiAgKi8KLS0gKHZvaWQpZGVm
aW5lUHJvcGVydHk6KE5TU3RyaW5nICopcHJvcGVydHkgZGVzY3JpcHRvcjooaWQpZGVzY3JpcHRv
cjsKKy0gKHZvaWQpZGVmaW5lUHJvcGVydHk6KEpTVmFsdWVQcm9wZXJ0eSlwcm9wZXJ0eSBkZXNj
cmlwdG9yOihpZClkZXNjcmlwdG9yOwogCiAvKiEKICBAbWV0aG9kCkBAIC01NzQsMTMgKzYyOCwx
NiBAQCBDcmVhdGUgYSBKU1ZhbHVlIGZyb20gYSBDR1JlY3QuCiBAL3RleHRibG9jawogCiAgQW4g
b2JqZWN0IGtleSBwYXNzZWQgYXMgYSBzdWJzY3JpcHQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYSBK
YXZhU2NyaXB0IHZhbHVlLAotIGFuZCB0aGVuIHRoZSB2YWx1ZSBjb252ZXJ0ZWQgdG8gYSBzdHJp
bmcgdXNlZCBhcyBhIHByb3BlcnR5IG5hbWUuCisgYW5kIHRoZW4gdGhlIHZhbHVlIHVzaW5nIHRo
ZSBzYW1lIHJ1bGVzIGFzIDxjb2RlPnZhbHVlV2l0aE9iamVjdDppbkNvbnRleHQ6PC9jb2RlPi4g
SW4gbWFjT1MKKyAxMC4xNCBhbmQgaU9TIDEyIGFuZCBiZWxvdywgdGhlIDxjb2RlPmtleTwvY29k
ZT4gYXJndW1lbnQgb2YKKyA8Y29kZT5zZXRPYmplY3Q6b2JqZWN0IGZvcktleWVkU3Vic2NyaXB0
OmtleTwvY29kZT4gd2FzIHJlc3RyaWN0ZWQgdG8gYW4KKyA8Y29kZT5OU09iamVjdCA8TlNDb3B5
aW5nPiAqPC9jb2RlPiBidXQgdGhhdCByZXN0cmljdGlvbiB3YXMgbmV2ZXIgdXNlZCBpbnRlcm5h
bGx5LgogKi8KIEBpbnRlcmZhY2UgSlNWYWx1ZSAoU3Vic2NyaXB0U3VwcG9ydCkKIAogLSAoSlNW
YWx1ZSAqKW9iamVjdEZvcktleWVkU3Vic2NyaXB0OihpZClrZXk7CiAtIChKU1ZhbHVlICopb2Jq
ZWN0QXRJbmRleGVkU3Vic2NyaXB0OihOU1VJbnRlZ2VyKWluZGV4OwotLSAodm9pZClzZXRPYmpl
Y3Q6KGlkKW9iamVjdCBmb3JLZXllZFN1YnNjcmlwdDooTlNPYmplY3QgPE5TQ29weWluZz4gKilr
ZXk7CistICh2b2lkKXNldE9iamVjdDooaWQpb2JqZWN0IGZvcktleWVkU3Vic2NyaXB0OihpZClr
ZXk7CiAtICh2b2lkKXNldE9iamVjdDooaWQpb2JqZWN0IGF0SW5kZXhlZFN1YnNjcmlwdDooTlNV
SW50ZWdlcilpbmRleDsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU1ZhbHVlUHJpdmF0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVl
UHJpdmF0ZS5oCmluZGV4IGIzMTU3NGYyOGVjYzE3MmM4MWZlNjE3NWQ5ODM5Njc1YmE5YTk0ZjIu
LjM1ZDNkMTAwMDMxNDBhMTgwZTk0ZDNlODJmMGJjMmFjOGE4YTk5MTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVQcml2YXRlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksMTMyICsyOSw3IEBACiAKIEBpbnRl
cmZhY2UgSlNWYWx1ZShKU1ByaXZhdGUpCiAKLSNpZiAoZGVmaW5lZChfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgSlND
X01BQ19WRVJTSU9OX1RCQSkgfHwgKGRlZmluZWQoX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVR
VUlSRUQpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgSlNDX0lPU19WRVJT
SU9OX1RCQSkKLXR5cGVkZWYgTlNTdHJpbmcgKkpTVmFsdWVQcm9wZXJ0eTsKLSNlbHNlCi10eXBl
ZGVmIGlkIEpTVmFsdWVQcm9wZXJ0eTsKLSNlbmRpZgotCi0vKiEKLSBAbWV0aG9kCi0gQGFic3Ry
YWN0IENyZWF0ZSBhIG5ldywgdW5pcXVlLCBzeW1ib2wgb2JqZWN0LgotIEBwYXJhbSBkZXNjcmlw
dGlvbiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIHN5bWJvbCBvYmplY3QgYmVpbmcgY3JlYXRlZC4K
LSBAcGFyYW0gY29udGV4dCBUaGUgSlNDb250ZXh0IHRvIHdoaWNoIHRoZSByZXN1bHRpbmcgSlNW
YWx1ZSBiZWxvbmdzLgotIEByZXN1bHQgVGhlIEpTVmFsdWUgcmVwcmVzZW50aW5nIGEgdW5pcXVl
IEphdmFTY3JpcHQgdmFsdWUgd2l0aCB0eXBlIHN5bWJvbC4KLSAqLwotKyAoSlNWYWx1ZSAqKXZh
bHVlV2l0aE5ld1N5bWJvbEZyb21EZXNjcmlwdGlvbjooTlNTdHJpbmcgKilkZXNjcmlwdGlvbiBp
bkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoSlND
X01BQ19UQkEpLCBpb3MoSlNDX0lPU19UQkEpKTsKLQotLyohCi0gQG1ldGhvZAotIEBhYnN0cmFj
dCBBY2Nlc3MgYSBwcm9wZXJ0eSBvZiBhIEpTVmFsdWUuCi0gQHJlc3VsdCBUaGUgSlNWYWx1ZSBm
b3IgdGhlIHJlcXVlc3RlZCBwcm9wZXJ0eSBvciB0aGUgSlNWYWx1ZSA8Y29kZT51bmRlZmluZWQ8
L2NvZGU+Ci0gaWYgdGhlIHByb3BlcnR5IGRvZXMgbm90IGV4aXN0LgotIEBkaXNjdXNzaW9uIENv
cnJlc3BvbmRzIHRvIHRoZSBKYXZhU2NyaXB0IG9wZXJhdGlvbiA8Y29kZT5vYmplY3RbcHJvcGVy
dHldPC9jb2RlPi4gQWZ0ZXIgbWFjT1MgVEJBIGFuZCBpT1MgVEJBLCAncHJvcGVydHknIGNhbiBi
ZSBhbnkgJ2lkJyBhbmQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYSBKU1ZhbHVlIHVzaW5nIHRoZSBj
b252ZXJzaW9uIHJ1bGVzIG9mIDxjb2RlPnZhbHVlV2l0aE9iamVjdDppbkNvbnRleHQ6PC9jb2Rl
Pi4gUHJpb3IgdG8gbWFjT1MgVEJBIGFuZCBpT1MgVEJBLCAncHJvcGVydHknIHdhcyBleHBlY3Rl
ZCB0byBiZSBhbiBOU1N0cmluZyAqLgotICovCi0tIChKU1ZhbHVlICopdmFsdWVGb3JQcm9wZXJ0
eTooSlNWYWx1ZVByb3BlcnR5KXByb3BlcnR5OwotCi0vKiEKLSBAbWV0aG9kCi0gQGFic3RyYWN0
IFNldCBhIHByb3BlcnR5IG9uIGEgSlNWYWx1ZS4KLSBAZGlzY3Vzc2lvbiBDb3JyZXNwb25kcyB0
byB0aGUgSmF2YVNjcmlwdCBvcGVyYXRpb24gPGNvZGU+b2JqZWN0W3Byb3BlcnR5XSA9IHZhbHVl
PC9jb2RlPi4gQWZ0ZXIgbWFjT1MgVEJBIGFuZCBpT1MgVEJBLCAncHJvcGVydHknIGNhbiBiZSBh
bnkgJ2lkJyBhbmQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYSBKU1ZhbHVlIHVzaW5nIHRoZSBjb252
ZXJzaW9uIHJ1bGVzIG9mIDxjb2RlPnZhbHVlV2l0aE9iamVjdDppbkNvbnRleHQ6PC9jb2RlPi4g
UHJpb3IgdG8gbWFjT1MgVEJBIGFuZCBpT1MgVEJBLCAncHJvcGVydHknIHdhcyBleHBlY3RlZCB0
byBiZSBhbiBOU1N0cmluZyAqLgotICovCi0tICh2b2lkKXNldFZhbHVlOihpZCl2YWx1ZSBmb3JQ
cm9wZXJ0eTooSlNWYWx1ZVByb3BlcnR5KXByb3BlcnR5OwotCi0vKiEKLSBAbWV0aG9kCi0gQGFi
c3RyYWN0IERlbGV0ZSBhIHByb3BlcnR5IGZyb20gYSBKU1ZhbHVlLgotIEByZXN1bHQgWUVTIGlm
IGRlbGV0aW9uIGlzIHN1Y2Nlc3NmdWwsIE5PIG90aGVyd2lzZS4KLSBAZGlzY3Vzc2lvbiBDb3Jy
ZXNwb25kcyB0byB0aGUgSmF2YVNjcmlwdCBvcGVyYXRpb24gPGNvZGU+ZGVsZXRlIG9iamVjdFtw
cm9wZXJ0eV08L2NvZGU+LiBBZnRlciBtYWNPUyBUQkEgYW5kIGlPUyBUQkEsICdwcm9wZXJ0eScg
Y2FuIGJlIGFueSAnaWQnIGFuZCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhIEpTVmFsdWUgdXNpbmcg
dGhlIGNvbnZlcnNpb24gcnVsZXMgb2YgPGNvZGU+dmFsdWVXaXRoT2JqZWN0OmluQ29udGV4dDo8
L2NvZGU+LiBQcmlvciB0byBtYWNPUyBUQkEgYW5kIGlPUyBUQkEsICdwcm9wZXJ0eScgd2FzIGV4
cGVjdGVkIHRvIGJlIGFuIE5TU3RyaW5nICouCi0gKi8KLS0gKEJPT0wpZGVsZXRlUHJvcGVydHk6
KEpTVmFsdWVQcm9wZXJ0eSlwcm9wZXJ0eTsKLQotLyohCi0gQG1ldGhvZAotIEBhYnN0cmFjdCBD
aGVjayBpZiBhIEpTVmFsdWUgaGFzIGEgcHJvcGVydHkuCi0gQGRpc2N1c3Npb24gVGhpcyBtZXRo
b2QgaGFzIHRoZSBzYW1lIGZ1bmN0aW9uIGFzIHRoZSBKYXZhU2NyaXB0IG9wZXJhdG9yIDxjb2Rl
PmluPC9jb2RlPi4KLSBAcmVzdWx0IFJldHVybnMgWUVTIGlmIHByb3BlcnR5IGlzIHByZXNlbnQg
b24gdGhlIHZhbHVlLgotIEBkaXNjdXNzaW9uIENvcnJlc3BvbmRzIHRvIHRoZSBKYXZhU2NyaXB0
IG9wZXJhdGlvbiA8Y29kZT5wcm9wZXJ0eSBpbiBvYmplY3Q8L2NvZGU+LiBBZnRlciBtYWNPUyBU
QkEgYW5kIGlPUyBUQkEsICdwcm9wZXJ0eScgY2FuIGJlIGFueSAnaWQnIGFuZCB3aWxsIGJlIGNv
bnZlcnRlZCB0byBhIEpTVmFsdWUgdXNpbmcgdGhlIGNvbnZlcnNpb24gcnVsZXMgb2YgPGNvZGU+
dmFsdWVXaXRoT2JqZWN0OmluQ29udGV4dDo8L2NvZGU+LiBQcmlvciB0byBtYWNPUyBUQkEgYW5k
IGlPUyBUQkEsICdwcm9wZXJ0eScgd2FzIGV4cGVjdGVkIHRvIGJlIGFuIE5TU3RyaW5nICouCi0g
Ki8KLS0gKEJPT0wpaGFzUHJvcGVydHk6KEpTVmFsdWVQcm9wZXJ0eSlwcm9wZXJ0eTsKLQotLyoh
Ci0gQG1ldGhvZAotIEBhYnN0cmFjdCBEZWZpbmUgcHJvcGVydGllcyB3aXRoIGN1c3RvbSBkZXNj
cmlwdG9ycyBvbiBKU1ZhbHVlcy4KLSBAZGlzY3Vzc2lvbiBUaGlzIG1ldGhvZCBtYXkgYmUgdXNl
ZCB0byBjcmVhdGUgYSBkYXRhIG9yIGFjY2Vzc29yIHByb3BlcnR5IG9uIGFuIG9iamVjdC4KLSBU
aGlzIG1ldGhvZCBvcGVyYXRlcyBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eSBtZXRob2QgaW4gdGhlIEphdmFTY3JpcHQgbGFuZ3VhZ2UuIEFmdGVyIG1hY09TIFRC
QSBhbmQgaU9TIFRCQSwgJ3Byb3BlcnR5JyBjYW4gYmUgYW55ICdpZCcgYW5kIHdpbGwgYmUgY29u
dmVydGVkIHRvIGEgSlNWYWx1ZSB1c2luZyB0aGUgY29udmVyc2lvbiBydWxlcyBvZiA8Y29kZT52
YWx1ZVdpdGhPYmplY3Q6aW5Db250ZXh0OjwvY29kZT4uIFByaW9yIHRvIG1hY09TIFRCQSBhbmQg
aU9TIFRCQSwgJ3Byb3BlcnR5JyB3YXMgZXhwZWN0ZWQgdG8gYmUgYW4gTlNTdHJpbmcgKi4KLSAq
LwotLSAodm9pZClkZWZpbmVQcm9wZXJ0eTooSlNWYWx1ZVByb3BlcnR5KXByb3BlcnR5IGRlc2Ny
aXB0b3I6KGlkKWRlc2NyaXB0b3I7Ci0KLS8qIQotIEBwcm9wZXJ0eQotIEBhYnN0cmFjdCBDaGVj
ayBpZiBhIEpTVmFsdWUgaXMgYSBzeW1ib2wuCi0gKi8KLUBwcm9wZXJ0eSAocmVhZG9ubHkpIEJP
T0wgaXNTeW1ib2wgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoSlNDX01BQ19UQkEpLCBpb3MoSlND
X0lPU19UQkEpKTsKLQotLyohCi0gQG1ldGhvZAotIEBhYnN0cmFjdCBDcmVhdGUgYSBuZXcgcHJv
bWlzZSBvYmplY3QgdXNpbmcgdGhlIHByb3ZpZGVkIGV4ZWN1dG9yIGNhbGxiYWNrLgotIEBwYXJh
bSBjYWxsYmFjayBBIGNhbGxiYWNrIGJsb2NrIGludm9rZWQgd2hpbGUgdGhlIHByb21pc2Ugb2Jq
ZWN0IGlzCi0gYmVpbmcgaW5pdGlhbGl6ZWQuIFRoZSByZXNvbHZlIGFuZCByZWplY3QgcGFyYW1l
dGVycyBhcmUgZnVuY3Rpb25zIHRoYXQKLSBjYW4gYmUgY2FsbGVkIHRvIG5vdGlmeSBhbnkgcGVu
ZGluZyByZWFjdGlvbnMgYWJvdXQgdGhlIHN0YXRlIG9mIHRoZQotIG5ldyBwcm9taXNlIG9iamVj
dC4KLSBAcGFyYW0gY29udGV4dCBUaGUgSlNDb250ZXh0IHRvIHdoaWNoIHRoZSByZXN1bHRpbmcg
SlNWYWx1ZSBiZWxvbmdzLgotIEByZXN1bHQgVGhlIEpTVmFsdWUgcmVwcmVzZW50aW5nIGEgbmV3
IHByb21pc2UgSmF2YVNjcmlwdCBvYmplY3QuCi0gQGRpc2N1c3Npb24gVGhpcyBtZXRob2QgaXMg
ZXF1aXZhbGVudCB0byBjYWxsaW5nIHRoZSBQcm9taXNlIGNvbnN0cnVjdG9yIGluIEphdmFTY3Jp
cHQuCi0gdGhlIHJlc29sdmUgYW5kIHJlamVjdCBjYWxsYmFja3MgZWFjaCBub3JtYWxseSB0YWtl
IGEgc2luZ2xlIHZhbHVlLCB3aGljaCB0aGV5Ci0gZm9yd2FyZCB0byBhbGwgcmVsZXZlbnQgcGVu
ZGluZyByZWFjdGlvbnMuIFdoaWxlIGluc2lkZSB0aGUgZXhlY3V0b3IgY2FsbGJhY2sgY29udGV4
dCB3aWxsIGFjdAotIGFzIGlmIGl0IHdlcmUgaW4gYW55IG90aGVyIGNhbGxiYWNrLCBleGNlcHQg
Y2FsbGVlRnVuY3Rpb24gd2lsbCBiZSA8Y29kZT5uaWw8L2NvZGU+LiBUaGlzIGFsc28gbWVhbnMK
LSBtZWFucyB0aGUgbmV3IHByb21pc2Ugb2JqZWN0IG1heSBiZSBhY2Nlc3NlZCB2aWEgPGNvZGU+
W2NvbnRleHQgdGhpc1ZhbHVlXTwvY29kZT4uCi0gKi8KLSsgKEpTVmFsdWUgKil2YWx1ZVdpdGhO
ZXdQcm9taXNlSW5Db250ZXh0OihKU0NvbnRleHQgKiljb250ZXh0IGZyb21FeGVjdXRvcjoodm9p
ZCAoXikoSlNWYWx1ZSAqcmVzb2x2ZSwgSlNWYWx1ZSAqcmVqZWN0KSljYWxsYmFjayBKU0NfQVBJ
X0FWQUlMQUJMRShtYWNvcyhKU0NfTUFDX1RCQSksIGlvcyhKU0NfSU9TX1RCQSkpOwotCi0vKiEK
LSBAbWV0aG9kCi0gQGFic3RyYWN0IENyZWF0ZSBhIG5ldyByZXNvbHZlZCBwcm9taXNlIG9iamVj
dCB3aXRoIHRoZSBwcm92aWRlZCB2YWx1ZS4KLSBAcGFyYW0gcmVzdWx0IFRoZSByZXN1bHQgdmFs
dWUgdG8gYmUgcGFzc2VkIHRvIGFueSByZWFjdGlvbnMuCi0gQHBhcmFtIGNvbnRleHQgVGhlIEpT
Q29udGV4dCB0byB3aGljaCB0aGUgcmVzdWx0aW5nIEpTVmFsdWUgYmVsb25ncy4KLSBAcmVzdWx0
IFRoZSBKU1ZhbHVlIHJlcHJlc2VudGluZyBhIG5ldyBwcm9taXNlIEphdmFTY3JpcHQgb2JqZWN0
LgotIEBkaXNjdXNzaW9uIFRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8gY2FsbGluZyA8Y29k
ZT5bSlNWYWx1ZSB2YWx1ZVdpdGhOZXdQcm9taXNlRnJvbUV4ZWN1dG9yOl4oSlNWYWx1ZSAqcmVz
b2x2ZSwgSlNWYWx1ZSAqcmVqZWN0KSB7IFtyZXNvbHZlIGNhbGxXaXRoQXJndW1lbnRzOkBbcmVz
dWx0XV07IH0gaW5Db250ZXh0OmNvbnRleHRdPC9jb2RlPgotICovCi0rIChKU1ZhbHVlICopdmFs
dWVXaXRoTmV3UHJvbWlzZVJlc29sdmVkV2l0aFJlc3VsdDooaWQpcmVzdWx0IGluQ29udGV4dDoo
SlNDb250ZXh0ICopY29udGV4dCBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcyhKU0NfTUFDX1RCQSks
IGlvcyhKU0NfSU9TX1RCQSkpOwotCi0vKiEKLSBAbWV0aG9kCi0gQGFic3RyYWN0IENyZWF0ZSBh
IG5ldyByZWplY3RlZCBwcm9taXNlIG9iamVjdCB3aXRoIHRoZSBwcm92aWRlZCB2YWx1ZS4KLSBA
cGFyYW0gcmVhc29uIFRoZSByZXN1bHQgdmFsdWUgdG8gYmUgcGFzc2VkIHRvIGFueSByZWFjdGlv
bnMuCi0gQHBhcmFtIGNvbnRleHQgVGhlIEpTQ29udGV4dCB0byB3aGljaCB0aGUgcmVzdWx0aW5n
IEpTVmFsdWUgYmVsb25ncy4KLSBAcmVzdWx0IFRoZSBKU1ZhbHVlIHJlcHJlc2VudGluZyBhIG5l
dyBwcm9taXNlIEphdmFTY3JpcHQgb2JqZWN0LgotIEBkaXNjdXNzaW9uIFRoaXMgbWV0aG9kIGlz
IGVxdWl2YWxlbnQgdG8gY2FsbGluZyA8Y29kZT5bSlNWYWx1ZSB2YWx1ZVdpdGhOZXdQcm9taXNl
RnJvbUV4ZWN1dG9yOl4oSlNWYWx1ZSAqcmVzb2x2ZSwgSlNWYWx1ZSAqcmVqZWN0KSB7IFtyZWpl
Y3QgY2FsbFdpdGhBcmd1bWVudHM6QFtyZWFzb25dXTsgfSBpbkNvbnRleHQ6Y29udGV4dF08L2Nv
ZGU+Ci0gKi8KLSsgKEpTVmFsdWUgKil2YWx1ZVdpdGhOZXdQcm9taXNlUmVqZWN0ZWRXaXRoUmVh
c29uOihpZClyZWFzb24gaW5Db250ZXh0OihKU0NvbnRleHQgKiljb250ZXh0IEpTQ19BUElfQVZB
SUxBQkxFKG1hY29zKEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19JT1NfVEJBKSk7Ci0KLUBlbmQKLQot
LyohCi0gQGNhdGVnb3J5Ci0gQGRpc2N1c3Npb24gSW5zdGFuY2VzIG9mIEpTVmFsdWUgaW1wbGVt
ZW50IHRoZSBmb2xsb3dpbmcgbWV0aG9kcyBpbiBvcmRlciB0byBlbmFibGUKLSBzdXBwb3J0IGZv
ciBzdWJzY3JpcHQgYWNjZXNzIGJ5IGtleSBhbmQgaW5kZXgsIGZvciBleGFtcGxlOgotCi0gQHRl
eHRibG9jawotIEpTVmFsdWUgKm9iamVjdEEsICpvYmplY3RCOwotIEpTVmFsdWUgKnYxID0gb2Jq
ZWN0W0AiWCJdOyAvLyBHZXQgdmFsdWUgZm9yIHByb3BlcnR5ICJYIiBmcm9tICdvYmplY3QnLgot
IEpTVmFsdWUgKnYyID0gb2JqZWN0WzQyXTsgICAvLyBHZXQgdmFsdWUgZm9yIGluZGV4IDQyIGZy
b20gJ29iamVjdCcuCi0gb2JqZWN0W0AiWSJdID0gdjE7ICAgICAgICAgIC8vIEFzc2lnbiAndjEn
IHRvIHByb3BlcnR5ICJZIiBvZiAnb2JqZWN0Jy4KLSBvYmplY3RbMTAxXSA9IHYyOyAgICAgICAg
ICAgLy8gQXNzaWduICd2MicgdG8gaW5kZXggMTAxIG9mICdvYmplY3QnLgotIEAvdGV4dGJsb2Nr
Ci0KLSBBbiBvYmplY3Qga2V5IHBhc3NlZCBhcyBhIHN1YnNjcmlwdCB3aWxsIGJlIGNvbnZlcnRl
ZCB0byBhIEphdmFTY3JpcHQgdmFsdWUsCi0gYW5kIHRoZW4gdGhlIHZhbHVlIHVzaW5nIHRoZSBz
YW1lIHJ1bGVzIGFzIDxjb2RlPnZhbHVlV2l0aE9iamVjdDppbkNvbnRleHQ6PC9jb2RlPi4gSW4g
bWFjT1MKLSBUQkEgYW5kIGlPUyBUQkEgYW5kIGJlbG93LCB0aGUgPGNvZGU+a2V5PC9jb2RlPiBh
cmd1bWVudCBvZgotIDxjb2RlPnNldE9iamVjdDpvYmplY3QgZm9yS2V5ZWRTdWJzY3JpcHQ6a2V5
PC9jb2RlPiB3YXMgcmVzdHJpY3RlZCB0byBhbgotIDxjb2RlPk5TU3RyaW5nIDxOU0NvcHlpbmc+
ICo8L2NvZGU+IGJ1dCB0aGF0IHJlc3RyaWN0aW9uIHdhcyBuZXZlciB1c2VkLgotICovCi1AaW50
ZXJmYWNlIEpTVmFsdWUgKFN1YnNjcmlwdFN1cHBvcnRQcml2YXRlKQotCi0tIChKU1ZhbHVlICop
b2JqZWN0Rm9yS2V5ZWRTdWJzY3JpcHQ6KEpTVmFsdWVQcm9wZXJ0eSlrZXk7Ci0tIChKU1ZhbHVl
ICopb2JqZWN0QXRJbmRleGVkU3Vic2NyaXB0OihOU1VJbnRlZ2VyKWluZGV4OwotLSAodm9pZClz
ZXRPYmplY3Q6KGlkKW9iamVjdCBmb3JLZXllZFN1YnNjcmlwdDooSlNWYWx1ZVByb3BlcnR5KWtl
eTsKLS0gKHZvaWQpc2V0T2JqZWN0OihpZClvYmplY3QgYXRJbmRleGVkU3Vic2NyaXB0OihOU1VJ
bnRlZ2VyKWluZGV4OworLy8gQ3VycmVudGx5IGVtcHR5LiBNYXkgYmUgdXNlZCBhZ2FpbiBpbiB0
aGUgZnV0dXJlLgogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNWYWx1ZVJlZi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmgK
aW5kZXggZjA5Y2M3YTNhMzdiYWE5NWJjOTkwNmJjMmNmOTc4Yjg1NjkwNmQzNC4uNzQyZWIxY2My
YjYzYTY0YWFhZTQ2MmI5MTZmOGE5OGUyNzlhZTBmNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU1ZhbHVlUmVmLmgKQEAgLTUxLDcgKzUxLDcgQEAgdHlwZWRlZiBlbnVtIHsKICAgICBrSlNU
eXBlTnVtYmVyLAogICAgIGtKU1R5cGVTdHJpbmcsCiAgICAga0pTVHlwZU9iamVjdCwKLSAgICBr
SlNUeXBlU3ltYm9sIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKEpTQ19NQUNfVEJBKSwgaW9zKEpT
Q19JT1NfVEJBKSkKKyAgICBrSlNUeXBlU3ltYm9sIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjE1KSwgaW9zKDEzLjApKQogfSBKU1R5cGU7CiAKIC8qIQpAQCAtMTQyLDYgKzE0MiwxNSBAQCBK
U19FWFBPUlQgYm9vbCBKU1ZhbHVlSXNOdW1iZXIoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJl
ZiB2YWx1ZSk7CiAqLwogSlNfRVhQT1JUIGJvb2wgSlNWYWx1ZUlzU3RyaW5nKEpTQ29udGV4dFJl
ZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUpOwogCisvKiEKK0BmdW5jdGlvbgorQGFic3RyYWN0ICAg
ICAgIFRlc3RzIHdoZXRoZXIgYSBKYXZhU2NyaXB0IHZhbHVlJ3MgdHlwZSBpcyB0aGUgc3ltYm9s
IHR5cGUuCitAcGFyYW0gY3R4ICAgICAgVGhlIGV4ZWN1dGlvbiBjb250ZXh0IHRvIHVzZS4KK0Bw
YXJhbSB2YWx1ZSAgICBUaGUgSlNWYWx1ZSB0byB0ZXN0LgorQHJlc3VsdCAgICAgICAgIHRydWUg
aWYgdmFsdWUncyB0eXBlIGlzIHRoZSBzeW1ib2wgdHlwZSwgb3RoZXJ3aXNlIGZhbHNlLgorKi8K
K0pTX0VYUE9SVCBib29sIEpTVmFsdWVJc1N5bWJvbChKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVl
UmVmIHZhbHVlKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7CisK
IC8qIQogQGZ1bmN0aW9uCiBAYWJzdHJhY3QgICAgICAgVGVzdHMgd2hldGhlciBhIEphdmFTY3Jp
cHQgdmFsdWUncyB0eXBlIGlzIHRoZSBvYmplY3QgdHlwZS4KQEAgLTI3MCw2ICsyNzksMTUgQEAg
SlNfRVhQT1JUIEpTVmFsdWVSZWYgSlNWYWx1ZU1ha2VOdW1iZXIoSlNDb250ZXh0UmVmIGN0eCwg
ZG91YmxlIG51bWJlcik7CiAqLwogSlNfRVhQT1JUIEpTVmFsdWVSZWYgSlNWYWx1ZU1ha2VTdHJp
bmcoSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgc3RyaW5nKTsKIAorLyohCisgQGZ1bmN0
aW9uCisgQGFic3RyYWN0ICAgICAgICAgICAgQ3JlYXRlcyBhIEphdmFTY3JpcHQgdmFsdWUgb2Yg
dGhlIHN5bWJvbCB0eXBlLgorIEBwYXJhbSBjdHggICAgICAgICAgIFRoZSBleGVjdXRpb24gY29u
dGV4dCB0byB1c2UuCisgQHBhcmFtIGRlc2NyaXB0aW9uICAgQSBkZXNjcmlwdGlvbiBvZiB0aGUg
bmV3bHkgY3JlYXRlZCBzeW1ib2wgdmFsdWUuCisgQHJlc3VsdCAgICAgICAgICAgICAgQSB1bmlx
dWUgSlNWYWx1ZSBvZiB0aGUgc3ltYm9sIHR5cGUsIHdob3NlIGRlc2NyaXB0aW9uIG1hdGNoZXMg
dGhlIG9uZSBwcm92aWRlZC4KKyAqLworSlNfRVhQT1JUIEpTVmFsdWVSZWYgSlNWYWx1ZU1ha2VT
eW1ib2woSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgZGVzY3JpcHRpb24pIEpTQ19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKKwogLyogQ29udmVydGluZyB0byBh
bmQgZnJvbSBKU09OIGZvcm1hdHRlZCBzdHJpbmdzICovCiAKIC8qIQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1tIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1tCmluZGV4IDZjZTgwZjBlMDEyYThjMmFiNzYzY2Q3
NjBlNGQ2NzFlMDhiMTEyNDguLmRmOTE0MmM2ZmNkZjE5ZDkyYzI4Y2MzMjAzMDFkMDc2OTA3MjAy
MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5t
bQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0KQEAgLTY0
OSw2ICs2NDksMTAgQEAgc3RhdGljIHZvaWQgdGVzdE9iamVjdGl2ZUNBUElNYWluKCkKICAgICAg
ICAgY2hlY2tSZXN1bHQoQCJTaG91bGQgYmUgYSBjcmVhdGVkIGZyb20gT2JqLUMiLCBzeW1ib2wu
aXNTeW1ib2wpOwogICAgIH0KIAorLy8gT2xkZXIgcGxhdGZvcm1zIGlmZGVmIHRoZSB0eXBlIG9m
IHNvbWUgc2VsZWN0b3JzIHNvIHRoZXNlIHRlc3RzIGRvbid0IHdvcmsuCisvLyBGSVhNRTogUmVt
b3ZlIHRoaXMgd2hlbiB3ZSBzdG9wIGJ1aWxkaW5nIGZvciBtYWNPUyAxMC4xNC9pT1MgMTIuCisj
aWYgKGRlZmluZWQoX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCkgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDApIHx8IChkZWZpbmVkKF9fSVBIT05FX09T
X1ZFUlNJT05fTUlOX1JFUVVJUkVEKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMzAwMDApCisKICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKICAgICAgICAgSlNDb250ZXh0
ICpjb250ZXh0ID0gW1tKU0NvbnRleHQgYWxsb2NdIGluaXRdOwogICAgICAgICBKU1ZhbHVlICph
cnJheUl0ZXJhdG9yID0gW2NvbnRleHQgZXZhbHVhdGVTY3JpcHQ6QCJBcnJheS5wcm90b3R5cGVb
U3ltYm9sLml0ZXJhdG9yXSJdOwpAQCAtNzM0LDYgKzczOCw4IEBAIHN0YXRpYyB2b2lkIHRlc3RP
YmplY3RpdmVDQVBJTWFpbigpCiAgICAgICAgIGNoZWNrUmVzdWx0KEAiaXRlcmF0aW9uIGNvdW50
IHNob3VsZCBiZSAxIiwgW2NvdW50IHRvVUludDMyXSA9PSAxKTsKICAgICB9CiAKKyNlbmRpZgor
CiAgICAgQGF1dG9yZWxlYXNlcG9vbCB7CiAgICAgICAgIEpTQ29sbGVjdGlvbiogbXlQcml2YXRl
UHJvcGVydGllcyA9IFtbSlNDb2xsZWN0aW9uIGFsbG9jXSBpbml0XTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371731</attachid>
            <date>2019-06-10 02:31:32 -0700</date>
            <delta_ts>2019-06-10 09:35:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198709-20190610113131.patch</filename>
            <type>text/plain</type>
            <size>32348</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
YWZmOTNmNTYwNWUwY2E3ZDY2MDA0ZTkxYmNhNmY4NmY0NzM3NzFmLi4yMzgwMGM4N2NlNTdjZGE1
MWUwMTNhMDk0YTEzYmI3NmI0NmZhMDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxOS0wNi0xMCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBNYWtlIG5ldyBTeW1ib2wvUHJvbWlzZSBBUEkgcHVibGljCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg3MDkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBhbHNvIG5lZWQg
dG8gI2lmZGVmIHNvbWUgdGVzdHMgd2hlbiBidWlsZGluZyBmb3Igb2xkZXIKKyAgICAgICAgcGxh
dGZvcm1zIGJlY2F1c2UgdGhlIHNpZ25hdHVyZXMgZm9yIHNvbWUgbWV0aG9kcyBhcmUgb3V0ZGF0
ZWQgb24KKyAgICAgICAgdGhvc2UgcGxhdGZvcm1zLgorCisgICAgICAgICogQVBJL0pTT2JqZWN0
UmVmLmg6CisgICAgICAgICogQVBJL0pTT2JqZWN0UmVmUHJpdmF0ZS5oOgorICAgICAgICAqIEFQ
SS9KU1ZhbHVlLmg6CisgICAgICAgICogQVBJL0pTVmFsdWVQcml2YXRlLmg6CisgICAgICAgICog
QVBJL0pTVmFsdWVSZWYuaDoKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5tbToKKyAgICAg
ICAgKHRlc3RPYmplY3RpdmVDQVBJTWFpbik6CisKIDIwMTktMDYtMDkgIENvbW1pdCBRdWV1ZSAg
PGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIyNDYxNTAsIHIyNDYxNjAsIGFuZCByMjQ2MTY2LgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU09iamVjdFJlZi5oCmluZGV4IDQxMmZiZTllYTZhZmYyNDk4OTM5YWY4YTE5MDMzYWMzYjVm
M2I0OWIuLmIwZGJkNzgyODhiNjI2M2RhMjhmYjY3NGIzMzE4Nzg4NDE5ZGM0ZWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBLZWx2aW4gVyBTaGVybG9jayAoa3NoZXJsb2NrQGdt
YWlsLmNvbSkKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTQ3Niw2ICs0NzYsMTcgQEAgSlNfRVhQT1JU
IEpTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZUVycm9yKEpTQ29udGV4dFJlZiBjdHgsIHNpemVfdCBh
cmd1bWVudENvdW50LAogICovCiBKU19FWFBPUlQgSlNPYmplY3RSZWYgSlNPYmplY3RNYWtlUmVn
RXhwKEpTQ29udGV4dFJlZiBjdHgsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVl
UmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pIEpTQ19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjYpLCBpb3MoNy4wKSk7CiAKKy8qIQorIEBmdW5jdGlvbgorIEBhYnN0cmFjdCBD
cmVhdGVzIGEgSmF2YVNjcmlwdCBwcm9taXNlIG9iamVjdCBieSBpbnZva2luZyB0aGUgcHJvdmlk
ZWQgZXhlY3V0b3IuCisgQHBhcmFtIGN0eCBUaGUgZXhlY3V0aW9uIGNvbnRleHQgdG8gdXNlLgor
IEBwYXJhbSByZXNvbHZlIEEgcG9pbnRlciB0byBhIEpTT2JqZWN0UmVmIGluIHdoaWNoIHRvIHN0
b3JlIHRoZSByZXNvbHZlIGZ1bmN0aW9uIGZvciB0aGUgbmV3IHByb21pc2UuIFBhc3MgTlVMTCBp
ZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgdGhlIHJlc29sdmUgY2FsbGJhY2suCisgQHBhcmFt
IHJlamVjdCBBIHBvaW50ZXIgdG8gYSBKU09iamVjdFJlZiBpbiB3aGljaCB0byBzdG9yZSB0aGUg
cmVqZWN0IGZ1bmN0aW9uIGZvciB0aGUgbmV3IHByb21pc2UuIFBhc3MgTlVMTCBpZiB5b3UgZG8g
bm90IGNhcmUgdG8gc3RvcmUgdGhlIHJlamVjdCBjYWxsYmFjay4KKyBAcGFyYW0gZXhjZXB0aW9u
IEEgcG9pbnRlciB0byBhIEpTVmFsdWVSZWYgaW4gd2hpY2ggdG8gc3RvcmUgYW4gZXhjZXB0aW9u
LCBpZiBhbnkuIFBhc3MgTlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgYW4gZXhjZXB0
aW9uLgorIEByZXN1bHQgQSBKU09iamVjdCB0aGF0IGlzIGEgcHJvbWlzZSBvciBOVUxMIGlmIGFu
IGV4Y2VwdGlvbiBvY2N1cnJlZC4KKyAqLworSlNfRVhQT1JUIEpTT2JqZWN0UmVmIEpTT2JqZWN0
TWFrZURlZmVycmVkUHJvbWlzZShKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiogcmVzb2x2
ZSwgSlNPYmplY3RSZWYqIHJlamVjdCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0NfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7CisKIC8qIQogQGZ1bmN0aW9uCiBAYWJz
dHJhY3QgQ3JlYXRlcyBhIGZ1bmN0aW9uIHdpdGggYSBnaXZlbiBzY3JpcHQgYXMgaXRzIGJvZHku
CkBAIC01NTMsNiArNTY0LDU0IEBAIEpTX0VYUE9SVCB2b2lkIEpTT2JqZWN0U2V0UHJvcGVydHko
SlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1N0cmluCiAqLwogSlNfRVhQ
T1JUIGJvb2wgSlNPYmplY3REZWxldGVQcm9wZXJ0eShKU0NvbnRleHRSZWYgY3R4LCBKU09iamVj
dFJlZiBvYmplY3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNWYWx1ZVJlZiogZXhjZXB0
aW9uKTsKIAorLyohCisgQGZ1bmN0aW9uCisgQGFic3RyYWN0IFRlc3RzIHdoZXRoZXIgYW4gb2Jq
ZWN0IGhhcyBhIGdpdmVuIHByb3BlcnR5IHVzaW5nIGEgSlNWYWx1ZVJlZiBhcyB0aGUgcHJvcGVy
dHkga2V5LgorIEBwYXJhbSBvYmplY3QgVGhlIEpTT2JqZWN0IHRvIHRlc3QuCisgQHBhcmFtIHBy
b3BlcnR5S2V5IEEgSlNWYWx1ZVJlZiBjb250YWluaW5nIHRoZSBwcm9wZXJ0eSBrZXkgdG8gdXNl
IHdoZW4gbG9va2luZyB1cCB0aGUgcHJvcGVydHkuCisgQHBhcmFtIGV4Y2VwdGlvbiBBIHBvaW50
ZXIgdG8gYSBKU1ZhbHVlUmVmIGluIHdoaWNoIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbiwgaWYgYW55
LiBQYXNzIE5VTEwgaWYgeW91IGRvIG5vdCBjYXJlIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbi4KKyBA
cmVzdWx0IHRydWUgaWYgdGhlIG9iamVjdCBoYXMgYSBwcm9wZXJ0eSB3aG9zZSBuYW1lIG1hdGNo
ZXMgcHJvcGVydHlLZXksIG90aGVyd2lzZSBmYWxzZS4KKyBAZGlzY3Vzc2lvbiBUaGlzIGZ1bmN0
aW9uIGlzIHRoZSBzYW1lIGFzIHBlcmZvcm1pbmcgInByb3BlcnR5S2V5IGluIG9iamVjdCIgZnJv
bSBKYXZhU2NyaXB0LgorICovCitKU19FWFBPUlQgYm9vbCBKU09iamVjdEhhc1Byb3BlcnR5Rm9y
S2V5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNWYWx1ZVJlZiBwcm9w
ZXJ0eUtleSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xNSksIGlvcygxMy4wKSk7CisKKy8qIQorIEBmdW5jdGlvbgorIEBhYnN0cmFjdCBHZXRzIGEg
cHJvcGVydHkgZnJvbSBhbiBvYmplY3QgdXNpbmcgYSBKU1ZhbHVlUmVmIGFzIHRoZSBwcm9wZXJ0
eSBrZXkuCisgQHBhcmFtIGN0eCBUaGUgZXhlY3V0aW9uIGNvbnRleHQgdG8gdXNlLgorIEBwYXJh
bSBvYmplY3QgVGhlIEpTT2JqZWN0IHdob3NlIHByb3BlcnR5IHlvdSB3YW50IHRvIGdldC4KKyBA
cGFyYW0gcHJvcGVydHlLZXkgQSBKU1ZhbHVlUmVmIGNvbnRhaW5pbmcgdGhlIHByb3BlcnR5IGtl
eSB0byB1c2Ugd2hlbiBsb29raW5nIHVwIHRoZSBwcm9wZXJ0eS4KKyBAcGFyYW0gZXhjZXB0aW9u
IEEgcG9pbnRlciB0byBhIEpTVmFsdWVSZWYgaW4gd2hpY2ggdG8gc3RvcmUgYW4gZXhjZXB0aW9u
LCBpZiBhbnkuIFBhc3MgTlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgYW4gZXhjZXB0
aW9uLgorIEByZXN1bHQgVGhlIHByb3BlcnR5J3MgdmFsdWUgaWYgb2JqZWN0IGhhcyB0aGUgcHJv
cGVydHkga2V5LCBvdGhlcndpc2UgdGhlIHVuZGVmaW5lZCB2YWx1ZS4KKyBAZGlzY3Vzc2lvbiBU
aGlzIGZ1bmN0aW9uIGlzIHRoZSBzYW1lIGFzIHBlcmZvcm1pbmcgIm9iamVjdFtwcm9wZXJ0eUtl
eV0iIGZyb20gSmF2YVNjcmlwdC4KKyAqLworSlNfRVhQT1JUIEpTVmFsdWVSZWYgSlNPYmplY3RH
ZXRQcm9wZXJ0eUZvcktleShKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIEpT
VmFsdWVSZWYgcHJvcGVydHlLZXksIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOworCisvKiEKKyBAZnVuY3Rpb24KKyBAYWJz
dHJhY3QgU2V0cyBhIHByb3BlcnR5IG9uIGFuIG9iamVjdCB1c2luZyBhIEpTVmFsdWVSZWYgYXMg
dGhlIHByb3BlcnR5IGtleS4KKyBAcGFyYW0gY3R4IFRoZSBleGVjdXRpb24gY29udGV4dCB0byB1
c2UuCisgQHBhcmFtIG9iamVjdCBUaGUgSlNPYmplY3Qgd2hvc2UgcHJvcGVydHkgeW91IHdhbnQg
dG8gc2V0LgorIEBwYXJhbSBwcm9wZXJ0eUtleSBBIEpTVmFsdWVSZWYgY29udGFpbmluZyB0aGUg
cHJvcGVydHkga2V5IHRvIHVzZSB3aGVuIGxvb2tpbmcgdXAgdGhlIHByb3BlcnR5LgorIEBwYXJh
bSB2YWx1ZSBBIEpTVmFsdWVSZWYgdG8gdXNlIGFzIHRoZSBwcm9wZXJ0eSdzIHZhbHVlLgorIEBw
YXJhbSBhdHRyaWJ1dGVzIEEgbG9naWNhbGx5IE9SZWQgc2V0IG9mIEpTUHJvcGVydHlBdHRyaWJ1
dGVzIHRvIGdpdmUgdG8gdGhlIHByb3BlcnR5LgorIEBwYXJhbSBleGNlcHRpb24gQSBwb2ludGVy
IHRvIGEgSlNWYWx1ZVJlZiBpbiB3aGljaCB0byBzdG9yZSBhbiBleGNlcHRpb24sIGlmIGFueS4g
UGFzcyBOVUxMIGlmIHlvdSBkbyBub3QgY2FyZSB0byBzdG9yZSBhbiBleGNlcHRpb24uCisgQGRp
c2N1c3Npb24gVGhpcyBmdW5jdGlvbiBpcyB0aGUgc2FtZSBhcyBwZXJmb3JtaW5nICJvYmplY3Rb
cHJvcGVydHlLZXldID0gdmFsdWUiIGZyb20gSmF2YVNjcmlwdC4KKyAqLworSlNfRVhQT1JUIHZv
aWQgSlNPYmplY3RTZXRQcm9wZXJ0eUZvcktleShKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJl
ZiBvYmplY3QsIEpTVmFsdWVSZWYgcHJvcGVydHlLZXksIEpTVmFsdWVSZWYgdmFsdWUsIEpTUHJv
cGVydHlBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOworCisvKiEKKyBAZnVuY3Rpb24K
KyBAYWJzdHJhY3QgRGVsZXRlcyBhIHByb3BlcnR5IGZyb20gYW4gb2JqZWN0IHVzaW5nIGEgSlNW
YWx1ZVJlZiBhcyB0aGUgcHJvcGVydHkga2V5LgorIEBwYXJhbSBjdHggVGhlIGV4ZWN1dGlvbiBj
b250ZXh0IHRvIHVzZS4KKyBAcGFyYW0gb2JqZWN0IFRoZSBKU09iamVjdCB3aG9zZSBwcm9wZXJ0
eSB5b3Ugd2FudCB0byBkZWxldGUuCisgQHBhcmFtIHByb3BlcnR5S2V5IEEgSlNWYWx1ZVJlZiBj
b250YWluaW5nIHRoZSBwcm9wZXJ0eSBrZXkgdG8gdXNlIHdoZW4gbG9va2luZyB1cCB0aGUgcHJv
cGVydHkuCisgQHBhcmFtIGV4Y2VwdGlvbiBBIHBvaW50ZXIgdG8gYSBKU1ZhbHVlUmVmIGluIHdo
aWNoIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbiwgaWYgYW55LiBQYXNzIE5VTEwgaWYgeW91IGRvIG5v
dCBjYXJlIHRvIHN0b3JlIGFuIGV4Y2VwdGlvbi4KKyBAcmVzdWx0IHRydWUgaWYgdGhlIGRlbGV0
ZSBvcGVyYXRpb24gc3VjY2VlZHMsIG90aGVyd2lzZSBmYWxzZSAoZm9yIGV4YW1wbGUsIGlmIHRo
ZSBwcm9wZXJ0eSBoYXMgdGhlIGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSBhdHRyaWJ1
dGUgc2V0KS4KKyBAZGlzY3Vzc2lvbiBUaGlzIGZ1bmN0aW9uIGlzIHRoZSBzYW1lIGFzIHBlcmZv
cm1pbmcgImRlbGV0ZSBvYmplY3RbcHJvcGVydHlLZXldIiBmcm9tIEphdmFTY3JpcHQuCisgKi8K
K0pTX0VYUE9SVCBib29sIEpTT2JqZWN0RGVsZXRlUHJvcGVydHlGb3JLZXkoSlNDb250ZXh0UmVm
IGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1ZhbHVlUmVmIHByb3BlcnR5S2V5LCBKU1ZhbHVl
UmVmKiBleGNlcHRpb24pIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjAp
KTsKKwogLyohCiBAZnVuY3Rpb24KIEBhYnN0cmFjdCBHZXRzIGEgcHJvcGVydHkgZnJvbSBhbiBv
YmplY3QgYnkgbnVtZXJpYyBpbmRleC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNPYmplY3RSZWZQcml2YXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
T2JqZWN0UmVmUHJpdmF0ZS5oCmluZGV4IDQzMjYzNzIzNGMyOGVlMjE5NjhjZjM3NTllZDUzYTJj
YjVlZWNhZTAuLjZlMzI2MTJlMzhhY2RmYjc3NTI3YzBlYzU3MjQ2MDdkZWM2MTYzYzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWZQcml2YXRlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZlByaXZhdGUuaApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03MSw4MyAr
NzEsNiBAQCBKU19FWFBPUlQgSlNPYmplY3RSZWYgSlNPYmplY3RHZXRQcm94eVRhcmdldChKU09i
amVjdFJlZik7CiAKIEpTX0VYUE9SVCBKU0dsb2JhbENvbnRleHRSZWYgSlNPYmplY3RHZXRHbG9i
YWxDb250ZXh0KEpTT2JqZWN0UmVmIG9iamVjdCk7CiAKLS8qIQotIEBmdW5jdGlvbgotIEBhYnN0
cmFjdCBDcmVhdGVzIGEgSmF2YVNjcmlwdCBwcm9taXNlIG9iamVjdCBieSBpbnZva2luZyB0aGUg
cHJvdmlkZWQgZXhlY3V0b3IuCi0gQHBhcmFtIGN0eCBUaGUgZXhlY3V0aW9uIGNvbnRleHQgdG8g
dXNlLgotIEBwYXJhbSByZXNvbHZlIEEgcG9pbnRlciB0byBhIEpTT2JqZWN0UmVmIGluIHdoaWNo
IHRvIHN0b3JlIHRoZSByZXNvbHZlIGZ1bmN0aW9uIGZvciB0aGUgbmV3IHByb21pc2UuIFBhc3Mg
TlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgdGhlIHJlc29sdmUgY2FsbGJhY2suCi0g
QHBhcmFtIHJlamVjdCBBIHBvaW50ZXIgdG8gYSBKU09iamVjdFJlZiBpbiB3aGljaCB0byBzdG9y
ZSB0aGUgcmVqZWN0IGZ1bmN0aW9uIGZvciB0aGUgbmV3IHByb21pc2UuIFBhc3MgTlVMTCBpZiB5
b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgdGhlIHJlamVjdCBjYWxsYmFjay4KLSBAcGFyYW0gZXhj
ZXB0aW9uIEEgcG9pbnRlciB0byBhIEpTVmFsdWVSZWYgaW4gd2hpY2ggdG8gc3RvcmUgYW4gZXhj
ZXB0aW9uLCBpZiBhbnkuIFBhc3MgTlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgYW4g
ZXhjZXB0aW9uLgotIEByZXN1bHQgQSBKU09iamVjdCB0aGF0IGlzIGEgcHJvbWlzZSBvciBOVUxM
IGlmIGFuIGV4Y2VwdGlvbiBvY2N1cnJlZC4KLSAqLwotSlNfRVhQT1JUIEpTT2JqZWN0UmVmIEpT
T2JqZWN0TWFrZURlZmVycmVkUHJvbWlzZShKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiog
cmVzb2x2ZSwgSlNPYmplY3RSZWYqIHJlamVjdCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKSBKU0Nf
QVBJX0FWQUlMQUJMRShtYWNvcyhKU0NfTUFDX1RCQSksIGlvcyhKU0NfSU9TX1RCQSkpOwotCi0v
KiEKLSBAZnVuY3Rpb24KLSBAYWJzdHJhY3QgVGVzdHMgd2hldGhlciBhbiBvYmplY3QgaGFzIGEg
Z2l2ZW4gcHJvcGVydHkgdXNpbmcgYSBKU1ZhbHVlUmVmIGFzIHRoZSBwcm9wZXJ0eSBrZXkuCi0g
QHBhcmFtIG9iamVjdCBUaGUgSlNPYmplY3QgdG8gdGVzdC4KLSBAcGFyYW0gcHJvcGVydHlLZXkg
QSBKU1ZhbHVlUmVmIGNvbnRhaW5pbmcgdGhlIHByb3BlcnR5IGtleSB0byB1c2Ugd2hlbiBsb29r
aW5nIHVwIHRoZSBwcm9wZXJ0eS4KLSBAcGFyYW0gZXhjZXB0aW9uIEEgcG9pbnRlciB0byBhIEpT
VmFsdWVSZWYgaW4gd2hpY2ggdG8gc3RvcmUgYW4gZXhjZXB0aW9uLCBpZiBhbnkuIFBhc3MgTlVM
TCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgYW4gZXhjZXB0aW9uLgotIEByZXN1bHQgdHJ1
ZSBpZiB0aGUgb2JqZWN0IGhhcyBhIHByb3BlcnR5IHdob3NlIG5hbWUgbWF0Y2hlcyBwcm9wZXJ0
eUtleSwgb3RoZXJ3aXNlIGZhbHNlLgotIEBkaXNjdXNzaW9uIFRoaXMgZnVuY3Rpb24gaXMgdGhl
IHNhbWUgYXMgcGVyZm9ybWluZyAicHJvcGVydHlLZXkgaW4gb2JqZWN0IiBmcm9tIEphdmFTY3Jp
cHQuCi0gKi8KLUpTX0VYUE9SVCBib29sIEpTT2JqZWN0SGFzUHJvcGVydHlGb3JLZXkoSlNDb250
ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1ZhbHVlUmVmIHByb3BlcnR5S2V5LCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKEpTQ19NQUNfVEJB
KSwgaW9zKEpTQ19JT1NfVEJBKSk7Ci0KLS8qIQotIEBmdW5jdGlvbgotIEBhYnN0cmFjdCBHZXRz
IGEgcHJvcGVydHkgZnJvbSBhbiBvYmplY3QgdXNpbmcgYSBKU1ZhbHVlUmVmIGFzIHRoZSBwcm9w
ZXJ0eSBrZXkuCi0gQHBhcmFtIGN0eCBUaGUgZXhlY3V0aW9uIGNvbnRleHQgdG8gdXNlLgotIEBw
YXJhbSBvYmplY3QgVGhlIEpTT2JqZWN0IHdob3NlIHByb3BlcnR5IHlvdSB3YW50IHRvIGdldC4K
LSBAcGFyYW0gcHJvcGVydHlLZXkgQSBKU1ZhbHVlUmVmIGNvbnRhaW5pbmcgdGhlIHByb3BlcnR5
IGtleSB0byB1c2Ugd2hlbiBsb29raW5nIHVwIHRoZSBwcm9wZXJ0eS4KLSBAcGFyYW0gZXhjZXB0
aW9uIEEgcG9pbnRlciB0byBhIEpTVmFsdWVSZWYgaW4gd2hpY2ggdG8gc3RvcmUgYW4gZXhjZXB0
aW9uLCBpZiBhbnkuIFBhc3MgTlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgYW4gZXhj
ZXB0aW9uLgotIEByZXN1bHQgVGhlIHByb3BlcnR5J3MgdmFsdWUgaWYgb2JqZWN0IGhhcyB0aGUg
cHJvcGVydHkga2V5LCBvdGhlcndpc2UgdGhlIHVuZGVmaW5lZCB2YWx1ZS4KLSBAZGlzY3Vzc2lv
biBUaGlzIGZ1bmN0aW9uIGlzIHRoZSBzYW1lIGFzIHBlcmZvcm1pbmcgIm9iamVjdFtwcm9wZXJ0
eUtleV0iIGZyb20gSmF2YVNjcmlwdC4KLSAqLwotSlNfRVhQT1JUIEpTVmFsdWVSZWYgSlNPYmpl
Y3RHZXRQcm9wZXJ0eUZvcktleShKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3Qs
IEpTVmFsdWVSZWYgcHJvcGVydHlLZXksIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQSV9B
VkFJTEFCTEUobWFjb3MoSlNDX01BQ19UQkEpLCBpb3MoSlNDX0lPU19UQkEpKTsKLQotLyohCi0g
QGZ1bmN0aW9uCi0gQGFic3RyYWN0IFNldHMgYSBwcm9wZXJ0eSBvbiBhbiBvYmplY3QgdXNpbmcg
YSBKU1ZhbHVlUmVmIGFzIHRoZSBwcm9wZXJ0eSBrZXkuCi0gQHBhcmFtIGN0eCBUaGUgZXhlY3V0
aW9uIGNvbnRleHQgdG8gdXNlLgotIEBwYXJhbSBvYmplY3QgVGhlIEpTT2JqZWN0IHdob3NlIHBy
b3BlcnR5IHlvdSB3YW50IHRvIHNldC4KLSBAcGFyYW0gcHJvcGVydHlLZXkgQSBKU1ZhbHVlUmVm
IGNvbnRhaW5pbmcgdGhlIHByb3BlcnR5IGtleSB0byB1c2Ugd2hlbiBsb29raW5nIHVwIHRoZSBw
cm9wZXJ0eS4KLSBAcGFyYW0gdmFsdWUgQSBKU1ZhbHVlUmVmIHRvIHVzZSBhcyB0aGUgcHJvcGVy
dHkncyB2YWx1ZS4KLSBAcGFyYW0gYXR0cmlidXRlcyBBIGxvZ2ljYWxseSBPUmVkIHNldCBvZiBK
U1Byb3BlcnR5QXR0cmlidXRlcyB0byBnaXZlIHRvIHRoZSBwcm9wZXJ0eS4KLSBAcGFyYW0gZXhj
ZXB0aW9uIEEgcG9pbnRlciB0byBhIEpTVmFsdWVSZWYgaW4gd2hpY2ggdG8gc3RvcmUgYW4gZXhj
ZXB0aW9uLCBpZiBhbnkuIFBhc3MgTlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgYW4g
ZXhjZXB0aW9uLgotIEBkaXNjdXNzaW9uIFRoaXMgZnVuY3Rpb24gaXMgdGhlIHNhbWUgYXMgcGVy
Zm9ybWluZyAib2JqZWN0W3Byb3BlcnR5S2V5XSA9IHZhbHVlIiBmcm9tIEphdmFTY3JpcHQuCi0g
Ki8KLUpTX0VYUE9SVCB2b2lkIEpTT2JqZWN0U2V0UHJvcGVydHlGb3JLZXkoSlNDb250ZXh0UmVm
IGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1ZhbHVlUmVmIHByb3BlcnR5S2V5LCBKU1ZhbHVl
UmVmIHZhbHVlLCBKU1Byb3BlcnR5QXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBKU1ZhbHVlUmVmKiBl
eGNlcHRpb24pIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19J
T1NfVEJBKSk7Ci0KLS8qIQotIEBmdW5jdGlvbgotIEBhYnN0cmFjdCBEZWxldGVzIGEgcHJvcGVy
dHkgZnJvbSBhbiBvYmplY3QgdXNpbmcgYSBKU1ZhbHVlUmVmIGFzIHRoZSBwcm9wZXJ0eSBrZXku
Ci0gQHBhcmFtIGN0eCBUaGUgZXhlY3V0aW9uIGNvbnRleHQgdG8gdXNlLgotIEBwYXJhbSBvYmpl
Y3QgVGhlIEpTT2JqZWN0IHdob3NlIHByb3BlcnR5IHlvdSB3YW50IHRvIGRlbGV0ZS4KLSBAcGFy
YW0gcHJvcGVydHlLZXkgQSBKU1ZhbHVlUmVmIGNvbnRhaW5pbmcgdGhlIHByb3BlcnR5IGtleSB0
byB1c2Ugd2hlbiBsb29raW5nIHVwIHRoZSBwcm9wZXJ0eS4KLSBAcGFyYW0gZXhjZXB0aW9uIEEg
cG9pbnRlciB0byBhIEpTVmFsdWVSZWYgaW4gd2hpY2ggdG8gc3RvcmUgYW4gZXhjZXB0aW9uLCBp
ZiBhbnkuIFBhc3MgTlVMTCBpZiB5b3UgZG8gbm90IGNhcmUgdG8gc3RvcmUgYW4gZXhjZXB0aW9u
LgotIEByZXN1bHQgdHJ1ZSBpZiB0aGUgZGVsZXRlIG9wZXJhdGlvbiBzdWNjZWVkcywgb3RoZXJ3
aXNlIGZhbHNlIChmb3IgZXhhbXBsZSwgaWYgdGhlIHByb3BlcnR5IGhhcyB0aGUga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIGF0dHJpYnV0ZSBzZXQpLgotIEBkaXNjdXNzaW9uIFRoaXMg
ZnVuY3Rpb24gaXMgdGhlIHNhbWUgYXMgcGVyZm9ybWluZyAiZGVsZXRlIG9iamVjdFtwcm9wZXJ0
eUtleV0iIGZyb20gSmF2YVNjcmlwdC4KLSAqLwotSlNfRVhQT1JUIGJvb2wgSlNPYmplY3REZWxl
dGVQcm9wZXJ0eUZvcktleShKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIEpT
VmFsdWVSZWYgcHJvcGVydHlLZXksIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikgSlNDX0FQSV9BVkFJ
TEFCTEUobWFjb3MoSlNDX01BQ19UQkEpLCBpb3MoSlNDX0lPU19UQkEpKTsKLQotLyohCi0gQGZ1
bmN0aW9uCi0gQGFic3RyYWN0ICAgICAgICAgICAgQ3JlYXRlcyBhIEphdmFTY3JpcHQgdmFsdWUg
b2YgdGhlIHN5bWJvbCB0eXBlLgotIEBwYXJhbSBjdHggICAgICAgICAgIFRoZSBleGVjdXRpb24g
Y29udGV4dCB0byB1c2UuCi0gQHBhcmFtIGRlc2NyaXB0aW9uICAgQSBkZXNjcmlwdGlvbiBvZiB0
aGUgbmV3bHkgY3JlYXRlZCBzeW1ib2wgdmFsdWUuCi0gQHJlc3VsdCAgICAgICAgICAgICAgQSB1
bmlxdWUgSlNWYWx1ZSBvZiB0aGUgc3ltYm9sIHR5cGUsIHdob3NlIGRlc2NyaXB0aW9uIG1hdGNo
ZXMgdGhlIG9uZSBwcm92aWRlZC4KLSAqLwotSlNfRVhQT1JUIEpTVmFsdWVSZWYgSlNWYWx1ZU1h
a2VTeW1ib2woSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgZGVzY3JpcHRpb24pIEpTQ19B
UElfQVZBSUxBQkxFKG1hY29zKEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19JT1NfVEJBKSk7Ci0KLS8q
IQotIEBmdW5jdGlvbgotIEBhYnN0cmFjdCAgICAgICBUZXN0cyB3aGV0aGVyIGEgSmF2YVNjcmlw
dCB2YWx1ZSdzIHR5cGUgaXMgdGhlIHN5bWJvbCB0eXBlLgotIEBwYXJhbSBjdHggICAgICBUaGUg
ZXhlY3V0aW9uIGNvbnRleHQgdG8gdXNlLgotIEBwYXJhbSB2YWx1ZSAgICBUaGUgSlNWYWx1ZSB0
byB0ZXN0LgotIEByZXN1bHQgICAgICAgICB0cnVlIGlmIHZhbHVlJ3MgdHlwZSBpcyB0aGUgc3lt
Ym9sIHR5cGUsIG90aGVyd2lzZSBmYWxzZS4KLSAqLwotSlNfRVhQT1JUIGJvb2wgSlNWYWx1ZUlz
U3ltYm9sKEpTQ29udGV4dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUpIEpTQ19BUElfQVZBSUxB
QkxFKG1hY29zKEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19JT1NfVEJBKSk7Ci0KICNpZmRlZiBfX2Nw
bHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZS5oCmluZGV4IDhm
ZTUyOTFhYWJmODk2MDg4N2NmMmM3MzhhZGViZjk1NDE5MGY2ODcuLjFiNTg0NWU5YmRlYTJjMjY2
MzQwNTkxYTQ4YTlhMDM4MzRhNDk4NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZS5o
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTEzMiw2ICsxMzIsNDUgQEAgTlNfQ0xBU1NfQVZBSUxBQkxFKDEwXzksIDdfMCkKICovCiArIChK
U1ZhbHVlICopdmFsdWVXaXRoTmV3RXJyb3JGcm9tTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdl
IGluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dDsKIAorLyohCitAbWV0aG9kCitAYWJzdHJh
Y3QgQ3JlYXRlIGEgbmV3IHByb21pc2Ugb2JqZWN0IHVzaW5nIHRoZSBwcm92aWRlZCBleGVjdXRv
ciBjYWxsYmFjay4KK0BwYXJhbSBjYWxsYmFjayBBIGNhbGxiYWNrIGJsb2NrIGludm9rZWQgd2hp
bGUgdGhlIHByb21pc2Ugb2JqZWN0IGlzIGJlaW5nIGluaXRpYWxpemVkLiBUaGUgcmVzb2x2ZSBh
bmQgcmVqZWN0IHBhcmFtZXRlcnMgYXJlIGZ1bmN0aW9ucyB0aGF0IGNhbiBiZSBjYWxsZWQgdG8g
bm90aWZ5IGFueSBwZW5kaW5nIHJlYWN0aW9ucyBhYm91dCB0aGUgc3RhdGUgb2YgdGhlIG5ldyBw
cm9taXNlIG9iamVjdC4KK0BwYXJhbSBjb250ZXh0IFRoZSBKU0NvbnRleHQgdG8gd2hpY2ggdGhl
IHJlc3VsdGluZyBKU1ZhbHVlIGJlbG9uZ3MuCitAcmVzdWx0IFRoZSBKU1ZhbHVlIHJlcHJlc2Vu
dGluZyBhIG5ldyBwcm9taXNlIEphdmFTY3JpcHQgb2JqZWN0LgorQGRpc2N1c3Npb24gVGhpcyBt
ZXRob2QgaXMgZXF1aXZhbGVudCB0byBjYWxsaW5nIHRoZSBQcm9taXNlIGNvbnN0cnVjdG9yIGlu
IEphdmFTY3JpcHQuIHRoZSByZXNvbHZlIGFuZCByZWplY3QgY2FsbGJhY2tzIGVhY2ggbm9ybWFs
bHkgdGFrZSBhIHNpbmdsZSB2YWx1ZSwgd2hpY2ggdGhleSBmb3J3YXJkIHRvIGFsbCByZWxldmVu
dCBwZW5kaW5nIHJlYWN0aW9ucy4gV2hpbGUgaW5zaWRlIHRoZSBleGVjdXRvciBjYWxsYmFjayBj
b250ZXh0IHdpbGwgYWN0IGFzIGlmIGl0IHdlcmUgaW4gYW55IG90aGVyIGNhbGxiYWNrLCBleGNl
cHQgY2FsbGVlRnVuY3Rpb24gd2lsbCBiZSA8Y29kZT5uaWw8L2NvZGU+LiBUaGlzIGFsc28gbWVh
bnMgbWVhbnMgdGhlIG5ldyBwcm9taXNlIG9iamVjdCBtYXkgYmUgYWNjZXNzZWQgdmlhIDxjb2Rl
Pltjb250ZXh0IHRoaXNWYWx1ZV08L2NvZGU+LgorKi8KKysgKEpTVmFsdWUgKil2YWx1ZVdpdGhO
ZXdQcm9taXNlSW5Db250ZXh0OihKU0NvbnRleHQgKiljb250ZXh0IGZyb21FeGVjdXRvcjoodm9p
ZCAoXikoSlNWYWx1ZSAqcmVzb2x2ZSwgSlNWYWx1ZSAqcmVqZWN0KSljYWxsYmFjayBKU0NfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7CisKKy8qIQorQG1ldGhvZAorQGFi
c3RyYWN0IENyZWF0ZSBhIG5ldyByZXNvbHZlZCBwcm9taXNlIG9iamVjdCB3aXRoIHRoZSBwcm92
aWRlZCB2YWx1ZS4KK0BwYXJhbSByZXN1bHQgVGhlIHJlc3VsdCB2YWx1ZSB0byBiZSBwYXNzZWQg
dG8gYW55IHJlYWN0aW9ucy4KK0BwYXJhbSBjb250ZXh0IFRoZSBKU0NvbnRleHQgdG8gd2hpY2gg
dGhlIHJlc3VsdGluZyBKU1ZhbHVlIGJlbG9uZ3MuCitAcmVzdWx0IFRoZSBKU1ZhbHVlIHJlcHJl
c2VudGluZyBhIG5ldyBwcm9taXNlIEphdmFTY3JpcHQgb2JqZWN0LgorQGRpc2N1c3Npb24gVGhp
cyBtZXRob2QgaXMgZXF1aXZhbGVudCB0byBjYWxsaW5nIDxjb2RlPltKU1ZhbHVlIHZhbHVlV2l0
aE5ld1Byb21pc2VGcm9tRXhlY3V0b3I6XihKU1ZhbHVlICpyZXNvbHZlLCBKU1ZhbHVlICpyZWpl
Y3QpIHsgW3Jlc29sdmUgY2FsbFdpdGhBcmd1bWVudHM6QFtyZXN1bHRdXTsgfSBpbkNvbnRleHQ6
Y29udGV4dF08L2NvZGU+CisqLworKyAoSlNWYWx1ZSAqKXZhbHVlV2l0aE5ld1Byb21pc2VSZXNv
bHZlZFdpdGhSZXN1bHQ6KGlkKXJlc3VsdCBpbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQg
SlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOworCisvKiEKK0BtZXRo
b2QKK0BhYnN0cmFjdCBDcmVhdGUgYSBuZXcgcmVqZWN0ZWQgcHJvbWlzZSBvYmplY3Qgd2l0aCB0
aGUgcHJvdmlkZWQgdmFsdWUuCitAcGFyYW0gcmVhc29uIFRoZSByZXN1bHQgdmFsdWUgdG8gYmUg
cGFzc2VkIHRvIGFueSByZWFjdGlvbnMuCitAcGFyYW0gY29udGV4dCBUaGUgSlNDb250ZXh0IHRv
IHdoaWNoIHRoZSByZXN1bHRpbmcgSlNWYWx1ZSBiZWxvbmdzLgorQHJlc3VsdCBUaGUgSlNWYWx1
ZSByZXByZXNlbnRpbmcgYSBuZXcgcHJvbWlzZSBKYXZhU2NyaXB0IG9iamVjdC4KK0BkaXNjdXNz
aW9uIFRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8gY2FsbGluZyA8Y29kZT5bSlNWYWx1ZSB2
YWx1ZVdpdGhOZXdQcm9taXNlRnJvbUV4ZWN1dG9yOl4oSlNWYWx1ZSAqcmVzb2x2ZSwgSlNWYWx1
ZSAqcmVqZWN0KSB7IFtyZWplY3QgY2FsbFdpdGhBcmd1bWVudHM6QFtyZWFzb25dXTsgfSBpbkNv
bnRleHQ6Y29udGV4dF08L2NvZGU+CisqLworKyAoSlNWYWx1ZSAqKXZhbHVlV2l0aE5ld1Byb21p
c2VSZWplY3RlZFdpdGhSZWFzb246KGlkKXJlYXNvbiBpbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNv
bnRleHQgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOworCisvKiEK
K0BtZXRob2QKK0BhYnN0cmFjdCBDcmVhdGUgYSBuZXcsIHVuaXF1ZSwgc3ltYm9sIG9iamVjdC4K
K0BwYXJhbSBkZXNjcmlwdGlvbiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIHN5bWJvbCBvYmplY3Qg
YmVpbmcgY3JlYXRlZC4KK0BwYXJhbSBjb250ZXh0IFRoZSBKU0NvbnRleHQgdG8gd2hpY2ggdGhl
IHJlc3VsdGluZyBKU1ZhbHVlIGJlbG9uZ3MuCitAcmVzdWx0IFRoZSBKU1ZhbHVlIHJlcHJlc2Vu
dGluZyBhIHVuaXF1ZSBKYXZhU2NyaXB0IHZhbHVlIHdpdGggdHlwZSBzeW1ib2wuCisqLworKyAo
SlNWYWx1ZSAqKXZhbHVlV2l0aE5ld1N5bWJvbEZyb21EZXNjcmlwdGlvbjooTlNTdHJpbmcgKilk
ZXNjcmlwdGlvbiBpbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQgSlNDX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOworCiAvKiEKIEBtZXRob2QKIEBhYnN0cmFjdCBD
cmVhdGUgdGhlIEphdmFTY3JpcHQgdmFsdWUgPGNvZGU+bnVsbDwvY29kZT4uCkBAIC0zNTcsNiAr
Mzk2LDEyIEBAIE5TX0NMQVNTX0FWQUlMQUJMRSgxMF85LCA3XzApCiAqLyAKIEBwcm9wZXJ0eSAo
cmVhZG9ubHkpIEJPT0wgaXNEYXRlIEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9z
KDkuMCkpOwogCisvKiEKKyBAcHJvcGVydHkKKyBAYWJzdHJhY3QgQ2hlY2sgaWYgYSBKU1ZhbHVl
IGlzIGEgc3ltYm9sLgorICovCitAcHJvcGVydHkgKHJlYWRvbmx5KSBCT09MIGlzU3ltYm9sIEpT
Q19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKKwogLyohCiBAbWV0aG9k
CiBAYWJzdHJhY3QgQ29tcGFyZSB0d28gSlNWYWx1ZXMgdXNpbmcgSmF2YVNjcmlwdCdzIDxjb2Rl
Pj09PTwvY29kZT4gb3BlcmF0b3IuCkBAIC01MDQsNDMgKzU0OSw1MiBAQCBDcmVhdGUgYSBKU1Zh
bHVlIGZyb20gYSBDR1JlY3QuCiAgKi8KIEBpbnRlcmZhY2UgSlNWYWx1ZSAoUHJvcGVydHlBY2Nl
c3MpCiAKKyNpZiAoZGVmaW5lZChfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxNTAwKSB8fCAoZGVmaW5lZChfX0lQ
SE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPCAxMzAwMDApCit0eXBlZGVmIE5TU3RyaW5nICpKU1ZhbHVlUHJvcGVydHk7Cisj
ZWxzZQordHlwZWRlZiBpZCBKU1ZhbHVlUHJvcGVydHk7CisjZW5kaWYKKwogLyohCiAgQG1ldGhv
ZAogIEBhYnN0cmFjdCBBY2Nlc3MgYSBwcm9wZXJ0eSBvZiBhIEpTVmFsdWUuCiAgQHJlc3VsdCBU
aGUgSlNWYWx1ZSBmb3IgdGhlIHJlcXVlc3RlZCBwcm9wZXJ0eSBvciB0aGUgSlNWYWx1ZSA8Y29k
ZT51bmRlZmluZWQ8L2NvZGU+CiAgaWYgdGhlIHByb3BlcnR5IGRvZXMgbm90IGV4aXN0LgorIEBk
aXNjdXNzaW9uIENvcnJlc3BvbmRzIHRvIHRoZSBKYXZhU2NyaXB0IG9wZXJhdGlvbiA8Y29kZT5v
YmplY3RbcHJvcGVydHldPC9jb2RlPi4gU3RhcnRpbmcgd2l0aCBtYWNPUyAxMC4xNSBhbmQgaU9T
IDEzLCAncHJvcGVydHknIGNhbiBiZSBhbnkgJ2lkJyBhbmQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8g
YSBKU1ZhbHVlIHVzaW5nIHRoZSBjb252ZXJzaW9uIHJ1bGVzIG9mIDxjb2RlPnZhbHVlV2l0aE9i
amVjdDppbkNvbnRleHQ6PC9jb2RlPi4gUHJpb3IgdG8gbWFjT1MgMTAuMTUgYW5kIGlPUyAxMywg
J3Byb3BlcnR5JyB3YXMgZXhwZWN0ZWQgdG8gYmUgYW4gTlNTdHJpbmcgKi4KICAqLwotLSAoSlNW
YWx1ZSAqKXZhbHVlRm9yUHJvcGVydHk6KE5TU3RyaW5nICopcHJvcGVydHk7CistIChKU1ZhbHVl
ICopdmFsdWVGb3JQcm9wZXJ0eTooSlNWYWx1ZVByb3BlcnR5KXByb3BlcnR5OwogCiAvKiEKICBA
bWV0aG9kCiAgQGFic3RyYWN0IFNldCBhIHByb3BlcnR5IG9uIGEgSlNWYWx1ZS4KKyBAZGlzY3Vz
c2lvbiBDb3JyZXNwb25kcyB0byB0aGUgSmF2YVNjcmlwdCBvcGVyYXRpb24gPGNvZGU+b2JqZWN0
W3Byb3BlcnR5XSA9IHZhbHVlPC9jb2RlPi4gU3RhcnRpbmcgd2l0aCBtYWNPUyAxMC4xNSBhbmQg
aU9TIDEzLCAncHJvcGVydHknIGNhbiBiZSBhbnkgJ2lkJyBhbmQgd2lsbCBiZSBjb252ZXJ0ZWQg
dG8gYSBKU1ZhbHVlIHVzaW5nIHRoZSBjb252ZXJzaW9uIHJ1bGVzIG9mIDxjb2RlPnZhbHVlV2l0
aE9iamVjdDppbkNvbnRleHQ6PC9jb2RlPi4gUHJpb3IgdG8gbWFjT1MgMTAuMTUgYW5kIGlPUyAx
MywgJ3Byb3BlcnR5JyB3YXMgZXhwZWN0ZWQgdG8gYmUgYW4gTlNTdHJpbmcgKi4KICAqLwotLSAo
dm9pZClzZXRWYWx1ZTooaWQpdmFsdWUgZm9yUHJvcGVydHk6KE5TU3RyaW5nICopcHJvcGVydHk7
CistICh2b2lkKXNldFZhbHVlOihpZCl2YWx1ZSBmb3JQcm9wZXJ0eTooSlNWYWx1ZVByb3BlcnR5
KXByb3BlcnR5OwogCiAvKiEKICBAbWV0aG9kCiAgQGFic3RyYWN0IERlbGV0ZSBhIHByb3BlcnR5
IGZyb20gYSBKU1ZhbHVlLgogIEByZXN1bHQgWUVTIGlmIGRlbGV0aW9uIGlzIHN1Y2Nlc3NmdWws
IE5PIG90aGVyd2lzZS4KKyBAZGlzY3Vzc2lvbiBDb3JyZXNwb25kcyB0byB0aGUgSmF2YVNjcmlw
dCBvcGVyYXRpb24gPGNvZGU+ZGVsZXRlIG9iamVjdFtwcm9wZXJ0eV08L2NvZGU+LiBTdGFydGlu
ZyB3aXRoIG1hY09TIDEwLjE1IGFuZCBpT1MgMTMsICdwcm9wZXJ0eScgY2FuIGJlIGFueSAnaWQn
IGFuZCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhIEpTVmFsdWUgdXNpbmcgdGhlIGNvbnZlcnNpb24g
cnVsZXMgb2YgPGNvZGU+dmFsdWVXaXRoT2JqZWN0OmluQ29udGV4dDo8L2NvZGU+LiBQcmlvciB0
byBtYWNPUyAxMC4xNSBhbmQgaU9TIDEzLCAncHJvcGVydHknIHdhcyBleHBlY3RlZCB0byBiZSBh
biBOU1N0cmluZyAqLgogICovCi0tIChCT09MKWRlbGV0ZVByb3BlcnR5OihOU1N0cmluZyAqKXBy
b3BlcnR5OworLSAoQk9PTClkZWxldGVQcm9wZXJ0eTooSlNWYWx1ZVByb3BlcnR5KXByb3BlcnR5
OwogCiAvKiEKICBAbWV0aG9kCiAgQGFic3RyYWN0IENoZWNrIGlmIGEgSlNWYWx1ZSBoYXMgYSBw
cm9wZXJ0eS4KICBAZGlzY3Vzc2lvbiBUaGlzIG1ldGhvZCBoYXMgdGhlIHNhbWUgZnVuY3Rpb24g
YXMgdGhlIEphdmFTY3JpcHQgb3BlcmF0b3IgPGNvZGU+aW48L2NvZGU+LgogIEByZXN1bHQgUmV0
dXJucyBZRVMgaWYgcHJvcGVydHkgaXMgcHJlc2VudCBvbiB0aGUgdmFsdWUuCisgQGRpc2N1c3Np
b24gQ29ycmVzcG9uZHMgdG8gdGhlIEphdmFTY3JpcHQgb3BlcmF0aW9uIDxjb2RlPnByb3BlcnR5
IGluIG9iamVjdDwvY29kZT4uIFN0YXJ0aW5nIHdpdGggbWFjT1MgMTAuMTUgYW5kIGlPUyAxMywg
J3Byb3BlcnR5JyBjYW4gYmUgYW55ICdpZCcgYW5kIHdpbGwgYmUgY29udmVydGVkIHRvIGEgSlNW
YWx1ZSB1c2luZyB0aGUgY29udmVyc2lvbiBydWxlcyBvZiA8Y29kZT52YWx1ZVdpdGhPYmplY3Q6
aW5Db250ZXh0OjwvY29kZT4uIFByaW9yIHRvIG1hY09TIDEwLjE1IGFuZCBpT1MgMTMsICdwcm9w
ZXJ0eScgd2FzIGV4cGVjdGVkIHRvIGJlIGFuIE5TU3RyaW5nICouCiAgKi8KLS0gKEJPT0wpaGFz
UHJvcGVydHk6KE5TU3RyaW5nICopcHJvcGVydHk7CistIChCT09MKWhhc1Byb3BlcnR5OihKU1Zh
bHVlUHJvcGVydHkpcHJvcGVydHk7CiAKIC8qIQogIEBtZXRob2QKICBAYWJzdHJhY3QgRGVmaW5l
IHByb3BlcnRpZXMgd2l0aCBjdXN0b20gZGVzY3JpcHRvcnMgb24gSlNWYWx1ZXMuCiAgQGRpc2N1
c3Npb24gVGhpcyBtZXRob2QgbWF5IGJlIHVzZWQgdG8gY3JlYXRlIGEgZGF0YSBvciBhY2Nlc3Nv
ciBwcm9wZXJ0eSBvbiBhbiBvYmplY3QuCi0gVGhpcyBtZXRob2Qgb3BlcmF0ZXMgaW4gYWNjb3Jk
YW5jZSB3aXRoIHRoZSBPYmplY3QuZGVmaW5lUHJvcGVydHkgbWV0aG9kIGluIHRoZQotIEphdmFT
Y3JpcHQgbGFuZ3VhZ2UuCisgVGhpcyBtZXRob2Qgb3BlcmF0ZXMgaW4gYWNjb3JkYW5jZSB3aXRo
IHRoZSBPYmplY3QuZGVmaW5lUHJvcGVydHkgbWV0aG9kIGluIHRoZSBKYXZhU2NyaXB0IGxhbmd1
YWdlLiBTdGFydGluZyB3aXRoIG1hY09TIDEwLjE1IGFuZCBpT1MgMTMsICdwcm9wZXJ0eScgY2Fu
IGJlIGFueSAnaWQnIGFuZCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhIEpTVmFsdWUgdXNpbmcgdGhl
IGNvbnZlcnNpb24gcnVsZXMgb2YgPGNvZGU+dmFsdWVXaXRoT2JqZWN0OmluQ29udGV4dDo8L2Nv
ZGU+LiBQcmlvciB0byBtYWNPUyAxMC4xNSBhbmQgaU9TIDEzLCAncHJvcGVydHknIHdhcyBleHBl
Y3RlZCB0byBiZSBhbiBOU1N0cmluZyAqLgogICovCi0tICh2b2lkKWRlZmluZVByb3BlcnR5OihO
U1N0cmluZyAqKXByb3BlcnR5IGRlc2NyaXB0b3I6KGlkKWRlc2NyaXB0b3I7CistICh2b2lkKWRl
ZmluZVByb3BlcnR5OihKU1ZhbHVlUHJvcGVydHkpcHJvcGVydHkgZGVzY3JpcHRvcjooaWQpZGVz
Y3JpcHRvcjsKIAogLyohCiAgQG1ldGhvZApAQCAtNTc0LDEzICs2MjgsMTYgQEAgQ3JlYXRlIGEg
SlNWYWx1ZSBmcm9tIGEgQ0dSZWN0LgogQC90ZXh0YmxvY2sKIAogIEFuIG9iamVjdCBrZXkgcGFz
c2VkIGFzIGEgc3Vic2NyaXB0IHdpbGwgYmUgY29udmVydGVkIHRvIGEgSmF2YVNjcmlwdCB2YWx1
ZSwKLSBhbmQgdGhlbiB0aGUgdmFsdWUgY29udmVydGVkIHRvIGEgc3RyaW5nIHVzZWQgYXMgYSBw
cm9wZXJ0eSBuYW1lLgorIGFuZCB0aGVuIHRoZSB2YWx1ZSB1c2luZyB0aGUgc2FtZSBydWxlcyBh
cyA8Y29kZT52YWx1ZVdpdGhPYmplY3Q6aW5Db250ZXh0OjwvY29kZT4uIEluIG1hY09TCisgMTAu
MTQgYW5kIGlPUyAxMiBhbmQgYmVsb3csIHRoZSA8Y29kZT5rZXk8L2NvZGU+IGFyZ3VtZW50IG9m
CisgPGNvZGU+c2V0T2JqZWN0Om9iamVjdCBmb3JLZXllZFN1YnNjcmlwdDprZXk8L2NvZGU+IHdh
cyByZXN0cmljdGVkIHRvIGFuCisgPGNvZGU+TlNPYmplY3QgPE5TQ29weWluZz4gKjwvY29kZT4g
YnV0IHRoYXQgcmVzdHJpY3Rpb24gd2FzIG5ldmVyIHVzZWQgaW50ZXJuYWxseS4KICovCiBAaW50
ZXJmYWNlIEpTVmFsdWUgKFN1YnNjcmlwdFN1cHBvcnQpCiAKIC0gKEpTVmFsdWUgKilvYmplY3RG
b3JLZXllZFN1YnNjcmlwdDooaWQpa2V5OwogLSAoSlNWYWx1ZSAqKW9iamVjdEF0SW5kZXhlZFN1
YnNjcmlwdDooTlNVSW50ZWdlcilpbmRleDsKLS0gKHZvaWQpc2V0T2JqZWN0OihpZClvYmplY3Qg
Zm9yS2V5ZWRTdWJzY3JpcHQ6KE5TT2JqZWN0IDxOU0NvcHlpbmc+ICopa2V5OworLSAodm9pZClz
ZXRPYmplY3Q6KGlkKW9iamVjdCBmb3JLZXllZFN1YnNjcmlwdDooaWQpa2V5OwogLSAodm9pZClz
ZXRPYmplY3Q6KGlkKW9iamVjdCBhdEluZGV4ZWRTdWJzY3JpcHQ6KE5TVUludGVnZXIpaW5kZXg7
CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVBy
aXZhdGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVByaXZhdGUuaAppbmRl
eCBiMzE1NzRmMjhlY2MxNzJjODFmZTYxNzVkOTgzOTY3NWJhOWE5NGYyLi4zNWQzZDEwMDAzMTQw
YTE4MGU5NGQzZTgyZjBiYzJhYzhhOGE5OTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTVmFsdWVQcml2YXRlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU1ZhbHVlUHJpdmF0ZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDEzMiArMjksNyBAQAogCiBAaW50ZXJmYWNlIEpTVmFsdWUo
SlNQcml2YXRlKQogCi0jaWYgKGRlZmluZWQoX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCkgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IEpTQ19NQUNfVkVSU0lPTl9U
QkEpIHx8IChkZWZpbmVkKF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEKSAmJiBfX0lQ
SE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA8IEpTQ19JT1NfVkVSU0lPTl9UQkEpCi10eXBl
ZGVmIE5TU3RyaW5nICpKU1ZhbHVlUHJvcGVydHk7Ci0jZWxzZQotdHlwZWRlZiBpZCBKU1ZhbHVl
UHJvcGVydHk7Ci0jZW5kaWYKLQotLyohCi0gQG1ldGhvZAotIEBhYnN0cmFjdCBDcmVhdGUgYSBu
ZXcsIHVuaXF1ZSwgc3ltYm9sIG9iamVjdC4KLSBAcGFyYW0gZGVzY3JpcHRpb24gVGhlIGRlc2Ny
aXB0aW9uIG9mIHRoZSBzeW1ib2wgb2JqZWN0IGJlaW5nIGNyZWF0ZWQuCi0gQHBhcmFtIGNvbnRl
eHQgVGhlIEpTQ29udGV4dCB0byB3aGljaCB0aGUgcmVzdWx0aW5nIEpTVmFsdWUgYmVsb25ncy4K
LSBAcmVzdWx0IFRoZSBKU1ZhbHVlIHJlcHJlc2VudGluZyBhIHVuaXF1ZSBKYXZhU2NyaXB0IHZh
bHVlIHdpdGggdHlwZSBzeW1ib2wuCi0gKi8KLSsgKEpTVmFsdWUgKil2YWx1ZVdpdGhOZXdTeW1i
b2xGcm9tRGVzY3JpcHRpb246KE5TU3RyaW5nICopZGVzY3JpcHRpb24gaW5Db250ZXh0OihKU0Nv
bnRleHQgKiljb250ZXh0IEpTQ19BUElfQVZBSUxBQkxFKG1hY29zKEpTQ19NQUNfVEJBKSwgaW9z
KEpTQ19JT1NfVEJBKSk7Ci0KLS8qIQotIEBtZXRob2QKLSBAYWJzdHJhY3QgQWNjZXNzIGEgcHJv
cGVydHkgb2YgYSBKU1ZhbHVlLgotIEByZXN1bHQgVGhlIEpTVmFsdWUgZm9yIHRoZSByZXF1ZXN0
ZWQgcHJvcGVydHkgb3IgdGhlIEpTVmFsdWUgPGNvZGU+dW5kZWZpbmVkPC9jb2RlPgotIGlmIHRo
ZSBwcm9wZXJ0eSBkb2VzIG5vdCBleGlzdC4KLSBAZGlzY3Vzc2lvbiBDb3JyZXNwb25kcyB0byB0
aGUgSmF2YVNjcmlwdCBvcGVyYXRpb24gPGNvZGU+b2JqZWN0W3Byb3BlcnR5XTwvY29kZT4uIEFm
dGVyIG1hY09TIFRCQSBhbmQgaU9TIFRCQSwgJ3Byb3BlcnR5JyBjYW4gYmUgYW55ICdpZCcgYW5k
IHdpbGwgYmUgY29udmVydGVkIHRvIGEgSlNWYWx1ZSB1c2luZyB0aGUgY29udmVyc2lvbiBydWxl
cyBvZiA8Y29kZT52YWx1ZVdpdGhPYmplY3Q6aW5Db250ZXh0OjwvY29kZT4uIFByaW9yIHRvIG1h
Y09TIFRCQSBhbmQgaU9TIFRCQSwgJ3Byb3BlcnR5JyB3YXMgZXhwZWN0ZWQgdG8gYmUgYW4gTlNT
dHJpbmcgKi4KLSAqLwotLSAoSlNWYWx1ZSAqKXZhbHVlRm9yUHJvcGVydHk6KEpTVmFsdWVQcm9w
ZXJ0eSlwcm9wZXJ0eTsKLQotLyohCi0gQG1ldGhvZAotIEBhYnN0cmFjdCBTZXQgYSBwcm9wZXJ0
eSBvbiBhIEpTVmFsdWUuCi0gQGRpc2N1c3Npb24gQ29ycmVzcG9uZHMgdG8gdGhlIEphdmFTY3Jp
cHQgb3BlcmF0aW9uIDxjb2RlPm9iamVjdFtwcm9wZXJ0eV0gPSB2YWx1ZTwvY29kZT4uIEFmdGVy
IG1hY09TIFRCQSBhbmQgaU9TIFRCQSwgJ3Byb3BlcnR5JyBjYW4gYmUgYW55ICdpZCcgYW5kIHdp
bGwgYmUgY29udmVydGVkIHRvIGEgSlNWYWx1ZSB1c2luZyB0aGUgY29udmVyc2lvbiBydWxlcyBv
ZiA8Y29kZT52YWx1ZVdpdGhPYmplY3Q6aW5Db250ZXh0OjwvY29kZT4uIFByaW9yIHRvIG1hY09T
IFRCQSBhbmQgaU9TIFRCQSwgJ3Byb3BlcnR5JyB3YXMgZXhwZWN0ZWQgdG8gYmUgYW4gTlNTdHJp
bmcgKi4KLSAqLwotLSAodm9pZClzZXRWYWx1ZTooaWQpdmFsdWUgZm9yUHJvcGVydHk6KEpTVmFs
dWVQcm9wZXJ0eSlwcm9wZXJ0eTsKLQotLyohCi0gQG1ldGhvZAotIEBhYnN0cmFjdCBEZWxldGUg
YSBwcm9wZXJ0eSBmcm9tIGEgSlNWYWx1ZS4KLSBAcmVzdWx0IFlFUyBpZiBkZWxldGlvbiBpcyBz
dWNjZXNzZnVsLCBOTyBvdGhlcndpc2UuCi0gQGRpc2N1c3Npb24gQ29ycmVzcG9uZHMgdG8gdGhl
IEphdmFTY3JpcHQgb3BlcmF0aW9uIDxjb2RlPmRlbGV0ZSBvYmplY3RbcHJvcGVydHldPC9jb2Rl
Pi4gQWZ0ZXIgbWFjT1MgVEJBIGFuZCBpT1MgVEJBLCAncHJvcGVydHknIGNhbiBiZSBhbnkgJ2lk
JyBhbmQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYSBKU1ZhbHVlIHVzaW5nIHRoZSBjb252ZXJzaW9u
IHJ1bGVzIG9mIDxjb2RlPnZhbHVlV2l0aE9iamVjdDppbkNvbnRleHQ6PC9jb2RlPi4gUHJpb3Ig
dG8gbWFjT1MgVEJBIGFuZCBpT1MgVEJBLCAncHJvcGVydHknIHdhcyBleHBlY3RlZCB0byBiZSBh
biBOU1N0cmluZyAqLgotICovCi0tIChCT09MKWRlbGV0ZVByb3BlcnR5OihKU1ZhbHVlUHJvcGVy
dHkpcHJvcGVydHk7Ci0KLS8qIQotIEBtZXRob2QKLSBAYWJzdHJhY3QgQ2hlY2sgaWYgYSBKU1Zh
bHVlIGhhcyBhIHByb3BlcnR5LgotIEBkaXNjdXNzaW9uIFRoaXMgbWV0aG9kIGhhcyB0aGUgc2Ft
ZSBmdW5jdGlvbiBhcyB0aGUgSmF2YVNjcmlwdCBvcGVyYXRvciA8Y29kZT5pbjwvY29kZT4uCi0g
QHJlc3VsdCBSZXR1cm5zIFlFUyBpZiBwcm9wZXJ0eSBpcyBwcmVzZW50IG9uIHRoZSB2YWx1ZS4K
LSBAZGlzY3Vzc2lvbiBDb3JyZXNwb25kcyB0byB0aGUgSmF2YVNjcmlwdCBvcGVyYXRpb24gPGNv
ZGU+cHJvcGVydHkgaW4gb2JqZWN0PC9jb2RlPi4gQWZ0ZXIgbWFjT1MgVEJBIGFuZCBpT1MgVEJB
LCAncHJvcGVydHknIGNhbiBiZSBhbnkgJ2lkJyBhbmQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYSBK
U1ZhbHVlIHVzaW5nIHRoZSBjb252ZXJzaW9uIHJ1bGVzIG9mIDxjb2RlPnZhbHVlV2l0aE9iamVj
dDppbkNvbnRleHQ6PC9jb2RlPi4gUHJpb3IgdG8gbWFjT1MgVEJBIGFuZCBpT1MgVEJBLCAncHJv
cGVydHknIHdhcyBleHBlY3RlZCB0byBiZSBhbiBOU1N0cmluZyAqLgotICovCi0tIChCT09MKWhh
c1Byb3BlcnR5OihKU1ZhbHVlUHJvcGVydHkpcHJvcGVydHk7Ci0KLS8qIQotIEBtZXRob2QKLSBA
YWJzdHJhY3QgRGVmaW5lIHByb3BlcnRpZXMgd2l0aCBjdXN0b20gZGVzY3JpcHRvcnMgb24gSlNW
YWx1ZXMuCi0gQGRpc2N1c3Npb24gVGhpcyBtZXRob2QgbWF5IGJlIHVzZWQgdG8gY3JlYXRlIGEg
ZGF0YSBvciBhY2Nlc3NvciBwcm9wZXJ0eSBvbiBhbiBvYmplY3QuCi0gVGhpcyBtZXRob2Qgb3Bl
cmF0ZXMgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBPYmplY3QuZGVmaW5lUHJvcGVydHkgbWV0aG9k
IGluIHRoZSBKYXZhU2NyaXB0IGxhbmd1YWdlLiBBZnRlciBtYWNPUyBUQkEgYW5kIGlPUyBUQkEs
ICdwcm9wZXJ0eScgY2FuIGJlIGFueSAnaWQnIGFuZCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhIEpT
VmFsdWUgdXNpbmcgdGhlIGNvbnZlcnNpb24gcnVsZXMgb2YgPGNvZGU+dmFsdWVXaXRoT2JqZWN0
OmluQ29udGV4dDo8L2NvZGU+LiBQcmlvciB0byBtYWNPUyBUQkEgYW5kIGlPUyBUQkEsICdwcm9w
ZXJ0eScgd2FzIGV4cGVjdGVkIHRvIGJlIGFuIE5TU3RyaW5nICouCi0gKi8KLS0gKHZvaWQpZGVm
aW5lUHJvcGVydHk6KEpTVmFsdWVQcm9wZXJ0eSlwcm9wZXJ0eSBkZXNjcmlwdG9yOihpZClkZXNj
cmlwdG9yOwotCi0vKiEKLSBAcHJvcGVydHkKLSBAYWJzdHJhY3QgQ2hlY2sgaWYgYSBKU1ZhbHVl
IGlzIGEgc3ltYm9sLgotICovCi1AcHJvcGVydHkgKHJlYWRvbmx5KSBCT09MIGlzU3ltYm9sIEpT
Q19BUElfQVZBSUxBQkxFKG1hY29zKEpTQ19NQUNfVEJBKSwgaW9zKEpTQ19JT1NfVEJBKSk7Ci0K
LS8qIQotIEBtZXRob2QKLSBAYWJzdHJhY3QgQ3JlYXRlIGEgbmV3IHByb21pc2Ugb2JqZWN0IHVz
aW5nIHRoZSBwcm92aWRlZCBleGVjdXRvciBjYWxsYmFjay4KLSBAcGFyYW0gY2FsbGJhY2sgQSBj
YWxsYmFjayBibG9jayBpbnZva2VkIHdoaWxlIHRoZSBwcm9taXNlIG9iamVjdCBpcwotIGJlaW5n
IGluaXRpYWxpemVkLiBUaGUgcmVzb2x2ZSBhbmQgcmVqZWN0IHBhcmFtZXRlcnMgYXJlIGZ1bmN0
aW9ucyB0aGF0Ci0gY2FuIGJlIGNhbGxlZCB0byBub3RpZnkgYW55IHBlbmRpbmcgcmVhY3Rpb25z
IGFib3V0IHRoZSBzdGF0ZSBvZiB0aGUKLSBuZXcgcHJvbWlzZSBvYmplY3QuCi0gQHBhcmFtIGNv
bnRleHQgVGhlIEpTQ29udGV4dCB0byB3aGljaCB0aGUgcmVzdWx0aW5nIEpTVmFsdWUgYmVsb25n
cy4KLSBAcmVzdWx0IFRoZSBKU1ZhbHVlIHJlcHJlc2VudGluZyBhIG5ldyBwcm9taXNlIEphdmFT
Y3JpcHQgb2JqZWN0LgotIEBkaXNjdXNzaW9uIFRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8g
Y2FsbGluZyB0aGUgUHJvbWlzZSBjb25zdHJ1Y3RvciBpbiBKYXZhU2NyaXB0LgotIHRoZSByZXNv
bHZlIGFuZCByZWplY3QgY2FsbGJhY2tzIGVhY2ggbm9ybWFsbHkgdGFrZSBhIHNpbmdsZSB2YWx1
ZSwgd2hpY2ggdGhleQotIGZvcndhcmQgdG8gYWxsIHJlbGV2ZW50IHBlbmRpbmcgcmVhY3Rpb25z
LiBXaGlsZSBpbnNpZGUgdGhlIGV4ZWN1dG9yIGNhbGxiYWNrIGNvbnRleHQgd2lsbCBhY3QKLSBh
cyBpZiBpdCB3ZXJlIGluIGFueSBvdGhlciBjYWxsYmFjaywgZXhjZXB0IGNhbGxlZUZ1bmN0aW9u
IHdpbGwgYmUgPGNvZGU+bmlsPC9jb2RlPi4gVGhpcyBhbHNvIG1lYW5zCi0gbWVhbnMgdGhlIG5l
dyBwcm9taXNlIG9iamVjdCBtYXkgYmUgYWNjZXNzZWQgdmlhIDxjb2RlPltjb250ZXh0IHRoaXNW
YWx1ZV08L2NvZGU+LgotICovCi0rIChKU1ZhbHVlICopdmFsdWVXaXRoTmV3UHJvbWlzZUluQ29u
dGV4dDooSlNDb250ZXh0ICopY29udGV4dCBmcm9tRXhlY3V0b3I6KHZvaWQgKF4pKEpTVmFsdWUg
KnJlc29sdmUsIEpTVmFsdWUgKnJlamVjdCkpY2FsbGJhY2sgSlNDX0FQSV9BVkFJTEFCTEUobWFj
b3MoSlNDX01BQ19UQkEpLCBpb3MoSlNDX0lPU19UQkEpKTsKLQotLyohCi0gQG1ldGhvZAotIEBh
YnN0cmFjdCBDcmVhdGUgYSBuZXcgcmVzb2x2ZWQgcHJvbWlzZSBvYmplY3Qgd2l0aCB0aGUgcHJv
dmlkZWQgdmFsdWUuCi0gQHBhcmFtIHJlc3VsdCBUaGUgcmVzdWx0IHZhbHVlIHRvIGJlIHBhc3Nl
ZCB0byBhbnkgcmVhY3Rpb25zLgotIEBwYXJhbSBjb250ZXh0IFRoZSBKU0NvbnRleHQgdG8gd2hp
Y2ggdGhlIHJlc3VsdGluZyBKU1ZhbHVlIGJlbG9uZ3MuCi0gQHJlc3VsdCBUaGUgSlNWYWx1ZSBy
ZXByZXNlbnRpbmcgYSBuZXcgcHJvbWlzZSBKYXZhU2NyaXB0IG9iamVjdC4KLSBAZGlzY3Vzc2lv
biBUaGlzIG1ldGhvZCBpcyBlcXVpdmFsZW50IHRvIGNhbGxpbmcgPGNvZGU+W0pTVmFsdWUgdmFs
dWVXaXRoTmV3UHJvbWlzZUZyb21FeGVjdXRvcjpeKEpTVmFsdWUgKnJlc29sdmUsIEpTVmFsdWUg
KnJlamVjdCkgeyBbcmVzb2x2ZSBjYWxsV2l0aEFyZ3VtZW50czpAW3Jlc3VsdF1dOyB9IGluQ29u
dGV4dDpjb250ZXh0XTwvY29kZT4KLSAqLwotKyAoSlNWYWx1ZSAqKXZhbHVlV2l0aE5ld1Byb21p
c2VSZXNvbHZlZFdpdGhSZXN1bHQ6KGlkKXJlc3VsdCBpbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNv
bnRleHQgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoSlNDX01BQ19UQkEpLCBpb3MoSlNDX0lPU19U
QkEpKTsKLQotLyohCi0gQG1ldGhvZAotIEBhYnN0cmFjdCBDcmVhdGUgYSBuZXcgcmVqZWN0ZWQg
cHJvbWlzZSBvYmplY3Qgd2l0aCB0aGUgcHJvdmlkZWQgdmFsdWUuCi0gQHBhcmFtIHJlYXNvbiBU
aGUgcmVzdWx0IHZhbHVlIHRvIGJlIHBhc3NlZCB0byBhbnkgcmVhY3Rpb25zLgotIEBwYXJhbSBj
b250ZXh0IFRoZSBKU0NvbnRleHQgdG8gd2hpY2ggdGhlIHJlc3VsdGluZyBKU1ZhbHVlIGJlbG9u
Z3MuCi0gQHJlc3VsdCBUaGUgSlNWYWx1ZSByZXByZXNlbnRpbmcgYSBuZXcgcHJvbWlzZSBKYXZh
U2NyaXB0IG9iamVjdC4KLSBAZGlzY3Vzc2lvbiBUaGlzIG1ldGhvZCBpcyBlcXVpdmFsZW50IHRv
IGNhbGxpbmcgPGNvZGU+W0pTVmFsdWUgdmFsdWVXaXRoTmV3UHJvbWlzZUZyb21FeGVjdXRvcjpe
KEpTVmFsdWUgKnJlc29sdmUsIEpTVmFsdWUgKnJlamVjdCkgeyBbcmVqZWN0IGNhbGxXaXRoQXJn
dW1lbnRzOkBbcmVhc29uXV07IH0gaW5Db250ZXh0OmNvbnRleHRdPC9jb2RlPgotICovCi0rIChK
U1ZhbHVlICopdmFsdWVXaXRoTmV3UHJvbWlzZVJlamVjdGVkV2l0aFJlYXNvbjooaWQpcmVhc29u
IGluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dCBKU0NfQVBJX0FWQUlMQUJMRShtYWNvcyhK
U0NfTUFDX1RCQSksIGlvcyhKU0NfSU9TX1RCQSkpOwotCi1AZW5kCi0KLS8qIQotIEBjYXRlZ29y
eQotIEBkaXNjdXNzaW9uIEluc3RhbmNlcyBvZiBKU1ZhbHVlIGltcGxlbWVudCB0aGUgZm9sbG93
aW5nIG1ldGhvZHMgaW4gb3JkZXIgdG8gZW5hYmxlCi0gc3VwcG9ydCBmb3Igc3Vic2NyaXB0IGFj
Y2VzcyBieSBrZXkgYW5kIGluZGV4LCBmb3IgZXhhbXBsZToKLQotIEB0ZXh0YmxvY2sKLSBKU1Zh
bHVlICpvYmplY3RBLCAqb2JqZWN0QjsKLSBKU1ZhbHVlICp2MSA9IG9iamVjdFtAIlgiXTsgLy8g
R2V0IHZhbHVlIGZvciBwcm9wZXJ0eSAiWCIgZnJvbSAnb2JqZWN0Jy4KLSBKU1ZhbHVlICp2MiA9
IG9iamVjdFs0Ml07ICAgLy8gR2V0IHZhbHVlIGZvciBpbmRleCA0MiBmcm9tICdvYmplY3QnLgot
IG9iamVjdFtAIlkiXSA9IHYxOyAgICAgICAgICAvLyBBc3NpZ24gJ3YxJyB0byBwcm9wZXJ0eSAi
WSIgb2YgJ29iamVjdCcuCi0gb2JqZWN0WzEwMV0gPSB2MjsgICAgICAgICAgIC8vIEFzc2lnbiAn
djInIHRvIGluZGV4IDEwMSBvZiAnb2JqZWN0Jy4KLSBAL3RleHRibG9jawotCi0gQW4gb2JqZWN0
IGtleSBwYXNzZWQgYXMgYSBzdWJzY3JpcHQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYSBKYXZhU2Ny
aXB0IHZhbHVlLAotIGFuZCB0aGVuIHRoZSB2YWx1ZSB1c2luZyB0aGUgc2FtZSBydWxlcyBhcyA8
Y29kZT52YWx1ZVdpdGhPYmplY3Q6aW5Db250ZXh0OjwvY29kZT4uIEluIG1hY09TCi0gVEJBIGFu
ZCBpT1MgVEJBIGFuZCBiZWxvdywgdGhlIDxjb2RlPmtleTwvY29kZT4gYXJndW1lbnQgb2YKLSA8
Y29kZT5zZXRPYmplY3Q6b2JqZWN0IGZvcktleWVkU3Vic2NyaXB0OmtleTwvY29kZT4gd2FzIHJl
c3RyaWN0ZWQgdG8gYW4KLSA8Y29kZT5OU1N0cmluZyA8TlNDb3B5aW5nPiAqPC9jb2RlPiBidXQg
dGhhdCByZXN0cmljdGlvbiB3YXMgbmV2ZXIgdXNlZC4KLSAqLwotQGludGVyZmFjZSBKU1ZhbHVl
IChTdWJzY3JpcHRTdXBwb3J0UHJpdmF0ZSkKLQotLSAoSlNWYWx1ZSAqKW9iamVjdEZvcktleWVk
U3Vic2NyaXB0OihKU1ZhbHVlUHJvcGVydHkpa2V5OwotLSAoSlNWYWx1ZSAqKW9iamVjdEF0SW5k
ZXhlZFN1YnNjcmlwdDooTlNVSW50ZWdlcilpbmRleDsKLS0gKHZvaWQpc2V0T2JqZWN0OihpZClv
YmplY3QgZm9yS2V5ZWRTdWJzY3JpcHQ6KEpTVmFsdWVQcm9wZXJ0eSlrZXk7Ci0tICh2b2lkKXNl
dE9iamVjdDooaWQpb2JqZWN0IGF0SW5kZXhlZFN1YnNjcmlwdDooTlNVSW50ZWdlcilpbmRleDsK
Ky8vIEN1cnJlbnRseSBlbXB0eS4gTWF5IGJlIHVzZWQgYWdhaW4gaW4gdGhlIGZ1dHVyZS4KIAog
QGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5oCmluZGV4IGYwOWNjN2Ez
YTM3YmFhOTViYzk5MDZiYzJjZjk3OGI4NTY5MDZkMzQuLjkxMWI0YmZjNGRmMTlhMDQ3ZGNlYTA4
NDhkNGQ1MmMyOGU3Nzg3ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNWYWx1ZVJlZi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5o
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTkgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtNTEsNyArNTEsNyBAQCB0eXBlZGVmIGVudW0gewogICAgIGtKU1R5cGVOdW1iZXIsCiAgICAg
a0pTVHlwZVN0cmluZywKICAgICBrSlNUeXBlT2JqZWN0LAotICAgIGtKU1R5cGVTeW1ib2wgSlND
X0FQSV9BVkFJTEFCTEUobWFjb3MoSlNDX01BQ19UQkEpLCBpb3MoSlNDX0lPU19UQkEpKQorICAg
IGtKU1R5cGVTeW1ib2wgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkp
CiB9IEpTVHlwZTsKIAogLyohCkBAIC0xNDIsNiArMTQyLDE1IEBAIEpTX0VYUE9SVCBib29sIEpT
VmFsdWVJc051bWJlcihKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlKTsKICovCiBK
U19FWFBPUlQgYm9vbCBKU1ZhbHVlSXNTdHJpbmcoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJl
ZiB2YWx1ZSk7CiAKKy8qIQorQGZ1bmN0aW9uCitAYWJzdHJhY3QgICAgICAgVGVzdHMgd2hldGhl
ciBhIEphdmFTY3JpcHQgdmFsdWUncyB0eXBlIGlzIHRoZSBzeW1ib2wgdHlwZS4KK0BwYXJhbSBj
dHggICAgICBUaGUgZXhlY3V0aW9uIGNvbnRleHQgdG8gdXNlLgorQHBhcmFtIHZhbHVlICAgIFRo
ZSBKU1ZhbHVlIHRvIHRlc3QuCitAcmVzdWx0ICAgICAgICAgdHJ1ZSBpZiB2YWx1ZSdzIHR5cGUg
aXMgdGhlIHN5bWJvbCB0eXBlLCBvdGhlcndpc2UgZmFsc2UuCisqLworSlNfRVhQT1JUIGJvb2wg
SlNWYWx1ZUlzU3ltYm9sKEpTQ29udGV4dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUpIEpTQ19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKKwogLyohCiBAZnVuY3Rpb24K
IEBhYnN0cmFjdCAgICAgICBUZXN0cyB3aGV0aGVyIGEgSmF2YVNjcmlwdCB2YWx1ZSdzIHR5cGUg
aXMgdGhlIG9iamVjdCB0eXBlLgpAQCAtMjcwLDYgKzI3OSwxNSBAQCBKU19FWFBPUlQgSlNWYWx1
ZVJlZiBKU1ZhbHVlTWFrZU51bWJlcihKU0NvbnRleHRSZWYgY3R4LCBkb3VibGUgbnVtYmVyKTsK
ICovCiBKU19FWFBPUlQgSlNWYWx1ZVJlZiBKU1ZhbHVlTWFrZVN0cmluZyhKU0NvbnRleHRSZWYg
Y3R4LCBKU1N0cmluZ1JlZiBzdHJpbmcpOwogCisvKiEKKyBAZnVuY3Rpb24KKyBAYWJzdHJhY3Qg
ICAgICAgICAgICBDcmVhdGVzIGEgSmF2YVNjcmlwdCB2YWx1ZSBvZiB0aGUgc3ltYm9sIHR5cGUu
CisgQHBhcmFtIGN0eCAgICAgICAgICAgVGhlIGV4ZWN1dGlvbiBjb250ZXh0IHRvIHVzZS4KKyBA
cGFyYW0gZGVzY3JpcHRpb24gICBBIGRlc2NyaXB0aW9uIG9mIHRoZSBuZXdseSBjcmVhdGVkIHN5
bWJvbCB2YWx1ZS4KKyBAcmVzdWx0ICAgICAgICAgICAgICBBIHVuaXF1ZSBKU1ZhbHVlIG9mIHRo
ZSBzeW1ib2wgdHlwZSwgd2hvc2UgZGVzY3JpcHRpb24gbWF0Y2hlcyB0aGUgb25lIHByb3ZpZGVk
LgorICovCitKU19FWFBPUlQgSlNWYWx1ZVJlZiBKU1ZhbHVlTWFrZVN5bWJvbChKU0NvbnRleHRS
ZWYgY3R4LCBKU1N0cmluZ1JlZiBkZXNjcmlwdGlvbikgSlNDX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTUpLCBpb3MoMTMuMCkpOworCiAvKiBDb252ZXJ0aW5nIHRvIGFuZCBmcm9tIEpTT04gZm9y
bWF0dGVkIHN0cmluZ3MgKi8KIAogLyohCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3Rz
L3Rlc3RhcGkubW0KaW5kZXggNmNlODBmMGUwMTJhOGMyYWI3NjNjZDc2MGU0ZDY3MWUwOGIxMTI0
OC4uMDZlOGQyYjc4MTY0MTMzYWNiOGQ5N2U4OWEzZWFhYzYwZjM1MTQxNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1tCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTY0OSw2ICs2NDksMTAgQEAg
c3RhdGljIHZvaWQgdGVzdE9iamVjdGl2ZUNBUElNYWluKCkKICAgICAgICAgY2hlY2tSZXN1bHQo
QCJTaG91bGQgYmUgYSBjcmVhdGVkIGZyb20gT2JqLUMiLCBzeW1ib2wuaXNTeW1ib2wpOwogICAg
IH0KIAorLy8gT2xkZXIgcGxhdGZvcm1zIGlmZGVmIHRoZSB0eXBlIG9mIHNvbWUgc2VsZWN0b3Jz
IHNvIHRoZXNlIHRlc3RzIGRvbid0IHdvcmsuCisvLyBGSVhNRTogUmVtb3ZlIHRoaXMgd2hlbiB3
ZSBzdG9wIGJ1aWxkaW5nIGZvciBtYWNPUyAxMC4xNC9pT1MgMTIuCisjaWYgKGRlZmluZWQoX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCkgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDE1MDApIHx8IChkZWZpbmVkKF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JF
UVVJUkVEKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDApCisK
ICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKICAgICAgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW1tK
U0NvbnRleHQgYWxsb2NdIGluaXRdOwogICAgICAgICBKU1ZhbHVlICphcnJheUl0ZXJhdG9yID0g
W2NvbnRleHQgZXZhbHVhdGVTY3JpcHQ6QCJBcnJheS5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9y
XSJdOwpAQCAtNzM0LDYgKzczOCw4IEBAIHN0YXRpYyB2b2lkIHRlc3RPYmplY3RpdmVDQVBJTWFp
bigpCiAgICAgICAgIGNoZWNrUmVzdWx0KEAiaXRlcmF0aW9uIGNvdW50IHNob3VsZCBiZSAxIiwg
W2NvdW50IHRvVUludDMyXSA9PSAxKTsKICAgICB9CiAKKyNlbmRpZgorCiAgICAgQGF1dG9yZWxl
YXNlcG9vbCB7CiAgICAgICAgIEpTQ29sbGVjdGlvbiogbXlQcml2YXRlUHJvcGVydGllcyA9IFtb
SlNDb2xsZWN0aW9uIGFsbG9jXSBpbml0XTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>