<?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>232541</bug_id>
          
          <creation_ts>2021-10-30 22:37:51 -0700</creation_ts>
          <short_desc>Remove some straggling files after r280467</short_desc>
          <delta_ts>2021-10-31 15:47:52 -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>WebGPU</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>
          
          <blocked>232550</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>rmorisset</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1810484</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-10-30 22:37:51 -0700</bug_when>
    <thetext>Somehow I must have missed some files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810485</commentid>
    <comment_count>1</comment_count>
      <attachid>442928</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-10-30 22:39:36 -0700</bug_when>
    <thetext>Created attachment 442928
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810486</commentid>
    <comment_count>2</comment_count>
      <attachid>442929</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-10-30 22:40:40 -0700</bug_when>
    <thetext>Created attachment 442929
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810510</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-31 11:20:34 -0700</bug_when>
    <thetext>Committed r285096 (243738@main): &lt;https://commits.webkit.org/243738@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 442929.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810511</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-31 11:21:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/84858622&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442928</attachid>
            <date>2021-10-30 22:39:36 -0700</date>
            <delta_ts>2021-10-30 22:40:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>17352</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1OGFhZjRlMmRkY2MuLjBjOTA5MDRjMzA3YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE3IEBACisyMDIxLTEwLTMwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBh
cHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHNvbWUgc3RyYWdnbGluZyBmaWxlcyBhZnRlciBy
MjgwNDY3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzI1NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBO
byBuZXcgdGVzdHMgYmVjYXVzZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xTdGF0ZW1lbnQuY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFN0YXRlbWVudExpc3Qu
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xUeXBl
LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFByb2dy
YW0uY3BwOiBSZW1vdmVkLgorCiAyMDIxLTEwLTMwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhm
aWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgTWlncmF0ZSB0aGUgZmlyc3QgZmV3IGNhbGxlcnMg
ZnJvbSBJbWFnZUJ1ZmZlcjo6dHJ1bmNhdGVkTG9naWNhbFNpemUoKSB0byBJbWFnZUJ1ZmZlcjo6
bG9naWNhbFNpemUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V0hMU0wvQVNUL1dITFNMU3RhdGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dITFNML0FTVC9XSExTTFN0YXRlbWVudC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDliZjcyN2IzNzFmOC4uMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFN0YXRlbWVudC5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSwxNDEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJXSExTTFN0YXRlbWVudC5oIgotCi0jaWYgRU5BQkxFKFdITFNMX0NPTVBJTEVSKQotCi0j
aW5jbHVkZSAiV0hMU0xBU1QuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1uYW1lc3BhY2Ug
V0hMU0wgewotCi1uYW1lc3BhY2UgQVNUIHsKLQotdm9pZCBTdGF0ZW1lbnQ6OmRlc3Ryb3koU3Rh
dGVtZW50JiBzdGF0ZW1lbnQpCi17Ci0gICAgc3dpdGNoIChzdGF0ZW1lbnQua2luZCgpKSB7Ci0g
ICAgY2FzZSBLaW5kOjpCbG9jazoKLSAgICAgICAgZGVsZXRlICZkb3duY2FzdDxCbG9jaz4oc3Rh
dGVtZW50KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBLaW5kOjpCcmVhazoKLSAgICAgICAg
ZGVsZXRlICZkb3duY2FzdDxCcmVhaz4oc3RhdGVtZW50KTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBLaW5kOjpDb250aW51ZToKLSAgICAgICAgZGVsZXRlICZkb3duY2FzdDxDb250aW51ZT4o
c3RhdGVtZW50KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBLaW5kOjpEb1doaWxlTG9vcDoK
LSAgICAgICAgZGVsZXRlICZkb3duY2FzdDxEb1doaWxlTG9vcD4oc3RhdGVtZW50KTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBLaW5kOjpFZmZlY3RmdWxFeHByZXNzaW9uOgotICAgICAgICBk
ZWxldGUgJmRvd25jYXN0PEVmZmVjdGZ1bEV4cHJlc3Npb25TdGF0ZW1lbnQ+KHN0YXRlbWVudCk7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgS2luZDo6RmFsbHRocm91Z2g6Ci0gICAgICAgIGRl
bGV0ZSAmZG93bmNhc3Q8RmFsbHRocm91Z2g+KHN0YXRlbWVudCk7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgS2luZDo6Rm9yTG9vcDoKLSAgICAgICAgZGVsZXRlICZkb3duY2FzdDxGb3JMb29w
PihzdGF0ZW1lbnQpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEtpbmQ6OklmOgotICAgICAg
ICBkZWxldGUgJmRvd25jYXN0PElmU3RhdGVtZW50PihzdGF0ZW1lbnQpOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIEtpbmQ6OlJldHVybjoKLSAgICAgICAgZGVsZXRlICZkb3duY2FzdDxSZXR1
cm4+KHN0YXRlbWVudCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgS2luZDo6U3RhdGVtZW50
TGlzdDoKLSAgICAgICAgZGVsZXRlICZkb3duY2FzdDxTdGF0ZW1lbnRMaXN0PihzdGF0ZW1lbnQp
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEtpbmQ6OlN3aXRjaENhc2U6Ci0gICAgICAgIGRl
bGV0ZSAmZG93bmNhc3Q8U3dpdGNoQ2FzZT4oc3RhdGVtZW50KTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBLaW5kOjpTd2l0Y2g6Ci0gICAgICAgIGRlbGV0ZSAmZG93bmNhc3Q8U3dpdGNoU3Rh
dGVtZW50PihzdGF0ZW1lbnQpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEtpbmQ6OlZhcmlh
YmxlRGVjbGFyYXRpb25zOgotICAgICAgICBkZWxldGUgJmRvd25jYXN0PFZhcmlhYmxlRGVjbGFy
YXRpb25zU3RhdGVtZW50PihzdGF0ZW1lbnQpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEtp
bmQ6OldoaWxlTG9vcDoKLSAgICAgICAgZGVsZXRlICZkb3duY2FzdDxXaGlsZUxvb3A+KHN0YXRl
bWVudCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLX0KLQotdm9pZCBTdGF0ZW1lbnQ6OmRlc3Ry
dWN0KFN0YXRlbWVudCYgc3RhdGVtZW50KQotewotICAgIHN3aXRjaCAoc3RhdGVtZW50LmtpbmQo
KSkgewotICAgIGNhc2UgS2luZDo6QmxvY2s6Ci0gICAgICAgIGRvd25jYXN0PEJsb2NrPihzdGF0
ZW1lbnQpLn5CbG9jaygpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEtpbmQ6OkJyZWFrOgot
ICAgICAgICBkb3duY2FzdDxCcmVhaz4oc3RhdGVtZW50KS5+QnJlYWsoKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBLaW5kOjpDb250aW51ZToKLSAgICAgICAgZG93bmNhc3Q8Q29udGludWU+
KHN0YXRlbWVudCkufkNvbnRpbnVlKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgS2luZDo6
RG9XaGlsZUxvb3A6Ci0gICAgICAgIGRvd25jYXN0PERvV2hpbGVMb29wPihzdGF0ZW1lbnQpLn5E
b1doaWxlTG9vcCgpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEtpbmQ6OkVmZmVjdGZ1bEV4
cHJlc3Npb246Ci0gICAgICAgIGRvd25jYXN0PEVmZmVjdGZ1bEV4cHJlc3Npb25TdGF0ZW1lbnQ+
KHN0YXRlbWVudCkufkVmZmVjdGZ1bEV4cHJlc3Npb25TdGF0ZW1lbnQoKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBLaW5kOjpGYWxsdGhyb3VnaDoKLSAgICAgICAgZG93bmNhc3Q8RmFsbHRo
cm91Z2g+KHN0YXRlbWVudCkufkZhbGx0aHJvdWdoKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgS2luZDo6Rm9yTG9vcDoKLSAgICAgICAgZG93bmNhc3Q8Rm9yTG9vcD4oc3RhdGVtZW50KS5+
Rm9yTG9vcCgpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEtpbmQ6OklmOgotICAgICAgICBk
b3duY2FzdDxJZlN0YXRlbWVudD4oc3RhdGVtZW50KS5+SWZTdGF0ZW1lbnQoKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBLaW5kOjpSZXR1cm46Ci0gICAgICAgIGRvd25jYXN0PFJldHVybj4o
c3RhdGVtZW50KS5+UmV0dXJuKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgS2luZDo6U3Rh
dGVtZW50TGlzdDoKLSAgICAgICAgZG93bmNhc3Q8U3RhdGVtZW50TGlzdD4oc3RhdGVtZW50KS5+
U3RhdGVtZW50TGlzdCgpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEtpbmQ6OlN3aXRjaENh
c2U6Ci0gICAgICAgIGRvd25jYXN0PFN3aXRjaENhc2U+KHN0YXRlbWVudCkuflN3aXRjaENhc2Uo
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBLaW5kOjpTd2l0Y2g6Ci0gICAgICAgIGRvd25j
YXN0PFN3aXRjaFN0YXRlbWVudD4oc3RhdGVtZW50KS5+U3dpdGNoU3RhdGVtZW50KCk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgS2luZDo6VmFyaWFibGVEZWNsYXJhdGlvbnM6Ci0gICAgICAg
IGRvd25jYXN0PFZhcmlhYmxlRGVjbGFyYXRpb25zU3RhdGVtZW50PihzdGF0ZW1lbnQpLn5WYXJp
YWJsZURlY2xhcmF0aW9uc1N0YXRlbWVudCgpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEtp
bmQ6OldoaWxlTG9vcDoKLSAgICAgICAgZG93bmNhc3Q8V2hpbGVMb29wPihzdGF0ZW1lbnQpLn5X
aGlsZUxvb3AoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi19IC8vIG5hbWVzcGFjZSBB
U1QKLQotfSAvLyBuYW1lc3BhY2UgV0hMU0wKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gRU5BQkxFKFdITFNMX0NPTVBJTEVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMU3RhdGVtZW50TGlzdC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMU3RhdGVtZW50TGlzdC5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYzg3NjU4ZTY2NTUuLjAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xTdGF0ZW1l
bnRMaXN0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3By
YWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoV0hMU0xfQ09NUElMRVIpCi0KLSNpbmNsdWRlICJXSExT
TENvZGVMb2NhdGlvbi5oIgotI2luY2x1ZGUgIldITFNMU3RhdGVtZW50LmgiCi0jaW5jbHVkZSA8
d3RmL0Zhc3RNYWxsb2MuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotbmFtZXNwYWNlIFdITFNMIHsKLQotbmFtZXNwYWNlIEFTVCB7Ci0KLWNsYXNz
IFN0YXRlbWVudExpc3QgZmluYWwgOiBwdWJsaWMgU3RhdGVtZW50IHsKLSAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKLSAgICB1c2luZyBCYXNlID0gU3RhdGVtZW50OwotcHVibGljOgotICAg
IFN0YXRlbWVudExpc3QoQ29kZUxvY2F0aW9uIGxvY2F0aW9uLCBTdGF0ZW1lbnRzJiYgc3RhdGVt
ZW50cykKLSAgICAgICAgOiBCYXNlKGxvY2F0aW9uLCBLaW5kOjpTdGF0ZW1lbnRMaXN0KQotICAg
ICAgICAsIG1fc3RhdGVtZW50cyhXVEZNb3ZlKHN0YXRlbWVudHMpKQotICAgIHsgfQotCi0gICAg
flN0YXRlbWVudExpc3QoKSA9IGRlZmF1bHQ7Ci0KLSAgICBTdGF0ZW1lbnRzJiBzdGF0ZW1lbnRz
KCkgeyByZXR1cm4gbV9zdGF0ZW1lbnRzOyB9Ci0KLXByaXZhdGU6Ci0gICAgU3RhdGVtZW50cyBt
X3N0YXRlbWVudHM7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBBU1QKLQotfQotCi19Ci0KLURFRklO
RV9ERUZBVUxUX0RFTEVURShTdGF0ZW1lbnRMaXN0KQotCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X1dITFNMX1NUQVRFTUVOVChTdGF0ZW1lbnRMaXN0LCBpc1N0YXRlbWVudExpc3QoKSkKLQotI2Vu
ZGlmIC8vIEVOQUJMRShXSExTTF9DT01QSUxFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMVHlwZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDEzNGM2MjMxYTRkZC4uMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFR5cGUuY3BwCisrKyAvZGV2L251bGwK
QEAgLTEsMTk4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiV0hMU0xUeXBlLmgiCi0KLSNpZiBFTkFCTEUoV0hMU0xfQ09NUElMRVIpCi0KLSNpbmNs
dWRlICJXSExTTEFTVC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLW5hbWVzcGFjZSBXSExT
TCB7Ci0KLW5hbWVzcGFjZSBBU1QgewotCi12b2lkIFR5cGU6OmRlc3Ryb3koVHlwZSYgdHlwZSkK
LXsKLSAgICBzd2l0Y2ggKHR5cGUua2luZCgpKSB7Ci0gICAgY2FzZSBLaW5kOjpUeXBlUmVmZXJl
bmNlOgotICAgICAgICBkZWxldGUgJmRvd25jYXN0PFR5cGVSZWZlcmVuY2U+KHR5cGUpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIEtpbmQ6OlBvaW50ZXI6Ci0gICAgICAgIGRlbGV0ZSAmZG93
bmNhc3Q8UG9pbnRlclR5cGU+KHR5cGUpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEtpbmQ6
OkFycmF5UmVmZXJlbmNlOgotICAgICAgICBkZWxldGUgJmRvd25jYXN0PEFycmF5UmVmZXJlbmNl
VHlwZT4odHlwZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgS2luZDo6QXJyYXk6Ci0gICAg
ICAgIGRlbGV0ZSAmZG93bmNhc3Q8QXJyYXlUeXBlPih0eXBlKTsKLSAgICAgICAgYnJlYWs7Ci0K
LSAgICBjYXNlIEtpbmQ6OlR5cGVEZWZpbml0aW9uOgotICAgICAgICBkZWxldGUgJmRvd25jYXN0
PFR5cGVEZWZpbml0aW9uPih0eXBlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBLaW5kOjpT
dHJ1Y3R1cmVEZWZpbml0aW9uOgotICAgICAgICBkZWxldGUgJmRvd25jYXN0PFN0cnVjdHVyZURl
ZmluaXRpb24+KHR5cGUpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEtpbmQ6OkVudW1lcmF0
aW9uRGVmaW5pdGlvbjoKLSAgICAgICAgZGVsZXRlICZkb3duY2FzdDxFbnVtZXJhdGlvbkRlZmlu
aXRpb24+KHR5cGUpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEtpbmQ6Ok5hdGl2ZVR5cGVE
ZWNsYXJhdGlvbjoKLSAgICAgICAgZGVsZXRlICZkb3duY2FzdDxOYXRpdmVUeXBlRGVjbGFyYXRp
b24+KHR5cGUpOwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgS2luZDo6RmxvYXRMaXRlcmFs
OgotICAgICAgICBkZWxldGUgJmRvd25jYXN0PEZsb2F0TGl0ZXJhbFR5cGU+KHR5cGUpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIEtpbmQ6OkludGVnZXJMaXRlcmFsOgotICAgICAgICBkZWxl
dGUgJmRvd25jYXN0PEludGVnZXJMaXRlcmFsVHlwZT4odHlwZSk7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgS2luZDo6VW5zaWduZWRJbnRlZ2VyTGl0ZXJhbDoKLSAgICAgICAgZGVsZXRlICZk
b3duY2FzdDxVbnNpZ25lZEludGVnZXJMaXRlcmFsVHlwZT4odHlwZSk7Ci0gICAgICAgIGJyZWFr
OwotICAgIH0KLX0KLQotdm9pZCBUeXBlOjpkZXN0cnVjdChUeXBlJiB0eXBlKQotewotICAgIHN3
aXRjaCAodHlwZS5raW5kKCkpIHsKLSAgICBjYXNlIEtpbmQ6OlR5cGVSZWZlcmVuY2U6Ci0gICAg
ICAgIGRvd25jYXN0PFR5cGVSZWZlcmVuY2U+KHR5cGUpLn5UeXBlUmVmZXJlbmNlKCk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgS2luZDo6UG9pbnRlcjoKLSAgICAgICAgZG93bmNhc3Q8UG9p
bnRlclR5cGU+KHR5cGUpLn5Qb2ludGVyVHlwZSgpOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IEtpbmQ6OkFycmF5UmVmZXJlbmNlOgotICAgICAgICBkb3duY2FzdDxBcnJheVJlZmVyZW5jZVR5
cGU+KHR5cGUpLn5BcnJheVJlZmVyZW5jZVR5cGUoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBLaW5kOjpBcnJheToKLSAgICAgICAgZG93bmNhc3Q8QXJyYXlUeXBlPih0eXBlKS5+QXJyYXlU
eXBlKCk7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBLaW5kOjpUeXBlRGVmaW5pdGlvbjoK
LSAgICAgICAgZG93bmNhc3Q8VHlwZURlZmluaXRpb24+KHR5cGUpLn5UeXBlRGVmaW5pdGlvbigp
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEtpbmQ6OlN0cnVjdHVyZURlZmluaXRpb246Ci0g
ICAgICAgIGRvd25jYXN0PFN0cnVjdHVyZURlZmluaXRpb24+KHR5cGUpLn5TdHJ1Y3R1cmVEZWZp
bml0aW9uKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgS2luZDo6RW51bWVyYXRpb25EZWZp
bml0aW9uOgotICAgICAgICBkb3duY2FzdDxFbnVtZXJhdGlvbkRlZmluaXRpb24+KHR5cGUpLn5F
bnVtZXJhdGlvbkRlZmluaXRpb24oKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBLaW5kOjpO
YXRpdmVUeXBlRGVjbGFyYXRpb246Ci0gICAgICAgIGRvd25jYXN0PE5hdGl2ZVR5cGVEZWNsYXJh
dGlvbj4odHlwZSkufk5hdGl2ZVR5cGVEZWNsYXJhdGlvbigpOwotICAgICAgICBicmVhazsKLQot
ICAgIGNhc2UgS2luZDo6RmxvYXRMaXRlcmFsOgotICAgICAgICBkb3duY2FzdDxGbG9hdExpdGVy
YWxUeXBlPih0eXBlKS5+RmxvYXRMaXRlcmFsVHlwZSgpOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIEtpbmQ6OkludGVnZXJMaXRlcmFsOgotICAgICAgICBkb3duY2FzdDxJbnRlZ2VyTGl0ZXJh
bFR5cGU+KHR5cGUpLn5JbnRlZ2VyTGl0ZXJhbFR5cGUoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBLaW5kOjpVbnNpZ25lZEludGVnZXJMaXRlcmFsOgotICAgICAgICBkb3duY2FzdDxVbnNp
Z25lZEludGVnZXJMaXRlcmFsVHlwZT4odHlwZSkuflVuc2lnbmVkSW50ZWdlckxpdGVyYWxUeXBl
KCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLX0KLQotVHlwZSYgVHlwZTo6dW5pZnlOb2RlKCkK
LXsKLSAgICBzd2l0Y2ggKGtpbmQoKSkgewotICAgIGNhc2UgS2luZDo6VHlwZVJlZmVyZW5jZToK
LSAgICAgICAgcmV0dXJuIGRvd25jYXN0PFR5cGVSZWZlcmVuY2U+KCp0aGlzKS51bmlmeU5vZGVJ
bXBsKCk7Ci0gICAgY2FzZSBLaW5kOjpQb2ludGVyOgotICAgICAgICByZXR1cm4gZG93bmNhc3Q8
UG9pbnRlclR5cGU+KCp0aGlzKS51bmlmeU5vZGVJbXBsKCk7Ci0gICAgY2FzZSBLaW5kOjpBcnJh
eVJlZmVyZW5jZToKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PEFycmF5UmVmZXJlbmNlVHlwZT4o
KnRoaXMpLnVuaWZ5Tm9kZUltcGwoKTsKLSAgICBjYXNlIEtpbmQ6OkFycmF5OgotICAgICAgICBy
ZXR1cm4gZG93bmNhc3Q8QXJyYXlUeXBlPigqdGhpcykudW5pZnlOb2RlSW1wbCgpOwotCi0gICAg
Y2FzZSBLaW5kOjpUeXBlRGVmaW5pdGlvbjoKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PFR5cGVE
ZWZpbml0aW9uPigqdGhpcykudW5pZnlOb2RlSW1wbCgpOwotICAgIGNhc2UgS2luZDo6U3RydWN0
dXJlRGVmaW5pdGlvbjoKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PFN0cnVjdHVyZURlZmluaXRp
b24+KCp0aGlzKS51bmlmeU5vZGVJbXBsKCk7Ci0gICAgY2FzZSBLaW5kOjpFbnVtZXJhdGlvbkRl
ZmluaXRpb246Ci0gICAgICAgIHJldHVybiBkb3duY2FzdDxFbnVtZXJhdGlvbkRlZmluaXRpb24+
KCp0aGlzKS51bmlmeU5vZGVJbXBsKCk7Ci0gICAgY2FzZSBLaW5kOjpOYXRpdmVUeXBlRGVjbGFy
YXRpb246Ci0gICAgICAgIHJldHVybiBkb3duY2FzdDxOYXRpdmVUeXBlRGVjbGFyYXRpb24+KCp0
aGlzKS51bmlmeU5vZGVJbXBsKCk7Ci0KLSAgICBkZWZhdWx0OiAKLSAgICAgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9Ci19Ci0KLWJvb2wgUmVzb2x2YWJsZVR5cGU6OmNh
blJlc29sdmUoY29uc3QgVHlwZSYgdHlwZSkgY29uc3QKLXsKLSAgICBzd2l0Y2ggKGtpbmQoKSkg
ewotICAgIGNhc2UgS2luZDo6RmxvYXRMaXRlcmFsOgotICAgICAgICByZXR1cm4gZG93bmNhc3Q8
RmxvYXRMaXRlcmFsVHlwZT4oKnRoaXMpLmNhblJlc29sdmUodHlwZSk7Ci0gICAgY2FzZSBLaW5k
OjpJbnRlZ2VyTGl0ZXJhbDoKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PEludGVnZXJMaXRlcmFs
VHlwZT4oKnRoaXMpLmNhblJlc29sdmUodHlwZSk7Ci0gICAgY2FzZSBLaW5kOjpVbnNpZ25lZElu
dGVnZXJMaXRlcmFsOgotICAgICAgICByZXR1cm4gZG93bmNhc3Q8VW5zaWduZWRJbnRlZ2VyTGl0
ZXJhbFR5cGU+KCp0aGlzKS5jYW5SZXNvbHZlKHR5cGUpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgfQotfQotCi11bnNpZ25lZCBSZXNv
bHZhYmxlVHlwZTo6Y29udmVyc2lvbkNvc3QoY29uc3QgVW5uYW1lZFR5cGUmIHR5cGUpIGNvbnN0
Ci17Ci0gICAgc3dpdGNoIChraW5kKCkpIHsKLSAgICBjYXNlIEtpbmQ6OkZsb2F0TGl0ZXJhbDoK
LSAgICAgICAgcmV0dXJuIGRvd25jYXN0PEZsb2F0TGl0ZXJhbFR5cGU+KCp0aGlzKS5jb252ZXJz
aW9uQ29zdCh0eXBlKTsKLSAgICBjYXNlIEtpbmQ6OkludGVnZXJMaXRlcmFsOgotICAgICAgICBy
ZXR1cm4gZG93bmNhc3Q8SW50ZWdlckxpdGVyYWxUeXBlPigqdGhpcykuY29udmVyc2lvbkNvc3Qo
dHlwZSk7Ci0gICAgY2FzZSBLaW5kOjpVbnNpZ25lZEludGVnZXJMaXRlcmFsOgotICAgICAgICBy
ZXR1cm4gZG93bmNhc3Q8VW5zaWduZWRJbnRlZ2VyTGl0ZXJhbFR5cGU+KCp0aGlzKS5jb252ZXJz
aW9uQ29zdCh0eXBlKTsKLSAgICBkZWZhdWx0OgotICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgIH0KLX0KLQotU3RyaW5nIFVubmFtZWRUeXBlOjp0b1N0cmluZygpIGNv
bnN0Ci17Ci0gICAgc3dpdGNoIChraW5kKCkpIHsKLSAgICBjYXNlIEtpbmQ6OlR5cGVSZWZlcmVu
Y2U6Ci0gICAgICAgIHJldHVybiBkb3duY2FzdDxUeXBlUmVmZXJlbmNlPigqdGhpcykudG9TdHJp
bmcoKTsKLSAgICBjYXNlIEtpbmQ6OlBvaW50ZXI6Ci0gICAgICAgIHJldHVybiBkb3duY2FzdDxQ
b2ludGVyVHlwZT4oKnRoaXMpLnRvU3RyaW5nKCk7Ci0gICAgY2FzZSBLaW5kOjpBcnJheVJlZmVy
ZW5jZToKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PEFycmF5UmVmZXJlbmNlVHlwZT4oKnRoaXMp
LnRvU3RyaW5nKCk7Ci0gICAgY2FzZSBLaW5kOjpBcnJheToKLSAgICAgICAgcmV0dXJuIGRvd25j
YXN0PEFycmF5VHlwZT4oKnRoaXMpLnRvU3RyaW5nKCk7Ci0gICAgZGVmYXVsdDogCi0gICAgICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgfQotCi19Ci0KLX0gLy8gbmFtZXNw
YWNlIEFTVAotCi19IC8vIG5hbWVzcGFjZSBXSExTTAotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0hMU0xfQ09NUElMRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFByb2dyYW0uY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQcm9ncmFtLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMjA4ZDM0NzhmOGIxLi4wMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQcm9ncmFtLmNwcAorKysgL2Rldi9u
dWxsCkBAIC0xLDU5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiV0hMU0xQcm9ncmFtLmgiCi0KLSNpZiBFTkFCTEUoV0hMU0xfQ09NUElMRVIpCi0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotbmFtZXNwYWNlIFdITFNMIHsKLQotYm9vbCBQcm9ncmFt
Ojppc1ZhbGlkVmVjdG9yUHJvcGVydHkoU3RyaW5nIHByb3BlcnR5KQotewotICAgIGlmIChwcm9w
ZXJ0eS5sZW5ndGgoKSA8IDEgfHwgcHJvcGVydHkubGVuZ3RoKCkgPiA0KQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHByb3BlcnR5Lmxlbmd0aCgp
OyArK2kpIHsKLSAgICAgICAgc3dpdGNoIChwcm9wZXJ0eVtpXSkgewotICAgICAgICBjYXNlICd4
JzoKLSAgICAgICAgY2FzZSAneSc6Ci0gICAgICAgIGNhc2UgJ3onOgotICAgICAgICBjYXNlICd3
JzoKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdITFNMCi0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8v
IEVOQUJMRShXSExTTF9DT01QSUxFUikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442929</attachid>
            <date>2021-10-30 22:40:40 -0700</date>
            <delta_ts>2021-10-31 11:20:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>17402</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1OGFhZjRlMmRkY2MuLjcxZWUzNmQxYTI4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE5IEBACisyMDIxLTEwLTMwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBh
cHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHNvbWUgc3RyYWdnbGluZyBmaWxlcyBhZnRlciBy
MjgwNDY3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzI1NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
b21laG93IEkgbXVzdCBoYXZlIG1pc3NlZCBzb21lIGZpbGVzLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cyBiZWNhdXNlIHRoZXJlIGlzIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIE1v
ZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFN0YXRlbWVudC5jcHA6IFJlbW92ZWQuCisgICAg
ICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMU3RhdGVtZW50TGlzdC5oOiBSZW1v
dmVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFR5cGUuY3BwOiBS
ZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUHJvZ3JhbS5jcHA6
IFJlbW92ZWQuCisKIDIwMjEtMTAtMzAgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFw
cGxlLmNvbT4KIAogICAgICAgICBNaWdyYXRlIHRoZSBmaXJzdCBmZXcgY2FsbGVycyBmcm9tIElt
YWdlQnVmZmVyOjp0cnVuY2F0ZWRMb2dpY2FsU2l6ZSgpIHRvIEltYWdlQnVmZmVyOjpsb2dpY2Fs
U2l6ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9B
U1QvV0hMU0xTdGF0ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hM
U0wvQVNUL1dITFNMU3RhdGVtZW50LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OWJmNzI3YjM3MWY4Li4wMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV0hMU0wvQVNUL1dITFNMU3RhdGVtZW50LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE0
MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldI
TFNMU3RhdGVtZW50LmgiCi0KLSNpZiBFTkFCTEUoV0hMU0xfQ09NUElMRVIpCi0KLSNpbmNsdWRl
ICJXSExTTEFTVC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLW5hbWVzcGFjZSBXSExTTCB7
Ci0KLW5hbWVzcGFjZSBBU1QgewotCi12b2lkIFN0YXRlbWVudDo6ZGVzdHJveShTdGF0ZW1lbnQm
IHN0YXRlbWVudCkKLXsKLSAgICBzd2l0Y2ggKHN0YXRlbWVudC5raW5kKCkpIHsKLSAgICBjYXNl
IEtpbmQ6OkJsb2NrOgotICAgICAgICBkZWxldGUgJmRvd25jYXN0PEJsb2NrPihzdGF0ZW1lbnQp
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEtpbmQ6OkJyZWFrOgotICAgICAgICBkZWxldGUg
JmRvd25jYXN0PEJyZWFrPihzdGF0ZW1lbnQpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEtp
bmQ6OkNvbnRpbnVlOgotICAgICAgICBkZWxldGUgJmRvd25jYXN0PENvbnRpbnVlPihzdGF0ZW1l
bnQpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEtpbmQ6OkRvV2hpbGVMb29wOgotICAgICAg
ICBkZWxldGUgJmRvd25jYXN0PERvV2hpbGVMb29wPihzdGF0ZW1lbnQpOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIEtpbmQ6OkVmZmVjdGZ1bEV4cHJlc3Npb246Ci0gICAgICAgIGRlbGV0ZSAm
ZG93bmNhc3Q8RWZmZWN0ZnVsRXhwcmVzc2lvblN0YXRlbWVudD4oc3RhdGVtZW50KTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBLaW5kOjpGYWxsdGhyb3VnaDoKLSAgICAgICAgZGVsZXRlICZk
b3duY2FzdDxGYWxsdGhyb3VnaD4oc3RhdGVtZW50KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBLaW5kOjpGb3JMb29wOgotICAgICAgICBkZWxldGUgJmRvd25jYXN0PEZvckxvb3A+KHN0YXRl
bWVudCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgS2luZDo6SWY6Ci0gICAgICAgIGRlbGV0
ZSAmZG93bmNhc3Q8SWZTdGF0ZW1lbnQ+KHN0YXRlbWVudCk7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgS2luZDo6UmV0dXJuOgotICAgICAgICBkZWxldGUgJmRvd25jYXN0PFJldHVybj4oc3Rh
dGVtZW50KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBLaW5kOjpTdGF0ZW1lbnRMaXN0Ogot
ICAgICAgICBkZWxldGUgJmRvd25jYXN0PFN0YXRlbWVudExpc3Q+KHN0YXRlbWVudCk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgS2luZDo6U3dpdGNoQ2FzZToKLSAgICAgICAgZGVsZXRlICZk
b3duY2FzdDxTd2l0Y2hDYXNlPihzdGF0ZW1lbnQpOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IEtpbmQ6OlN3aXRjaDoKLSAgICAgICAgZGVsZXRlICZkb3duY2FzdDxTd2l0Y2hTdGF0ZW1lbnQ+
KHN0YXRlbWVudCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgS2luZDo6VmFyaWFibGVEZWNs
YXJhdGlvbnM6Ci0gICAgICAgIGRlbGV0ZSAmZG93bmNhc3Q8VmFyaWFibGVEZWNsYXJhdGlvbnNT
dGF0ZW1lbnQ+KHN0YXRlbWVudCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgS2luZDo6V2hp
bGVMb29wOgotICAgICAgICBkZWxldGUgJmRvd25jYXN0PFdoaWxlTG9vcD4oc3RhdGVtZW50KTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi12b2lkIFN0YXRlbWVudDo6ZGVzdHJ1Y3QoU3Rh
dGVtZW50JiBzdGF0ZW1lbnQpCi17Ci0gICAgc3dpdGNoIChzdGF0ZW1lbnQua2luZCgpKSB7Ci0g
ICAgY2FzZSBLaW5kOjpCbG9jazoKLSAgICAgICAgZG93bmNhc3Q8QmxvY2s+KHN0YXRlbWVudCku
fkJsb2NrKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgS2luZDo6QnJlYWs6Ci0gICAgICAg
IGRvd25jYXN0PEJyZWFrPihzdGF0ZW1lbnQpLn5CcmVhaygpOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIEtpbmQ6OkNvbnRpbnVlOgotICAgICAgICBkb3duY2FzdDxDb250aW51ZT4oc3RhdGVt
ZW50KS5+Q29udGludWUoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBLaW5kOjpEb1doaWxl
TG9vcDoKLSAgICAgICAgZG93bmNhc3Q8RG9XaGlsZUxvb3A+KHN0YXRlbWVudCkufkRvV2hpbGVM
b29wKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgS2luZDo6RWZmZWN0ZnVsRXhwcmVzc2lv
bjoKLSAgICAgICAgZG93bmNhc3Q8RWZmZWN0ZnVsRXhwcmVzc2lvblN0YXRlbWVudD4oc3RhdGVt
ZW50KS5+RWZmZWN0ZnVsRXhwcmVzc2lvblN0YXRlbWVudCgpOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIEtpbmQ6OkZhbGx0aHJvdWdoOgotICAgICAgICBkb3duY2FzdDxGYWxsdGhyb3VnaD4o
c3RhdGVtZW50KS5+RmFsbHRocm91Z2goKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBLaW5k
OjpGb3JMb29wOgotICAgICAgICBkb3duY2FzdDxGb3JMb29wPihzdGF0ZW1lbnQpLn5Gb3JMb29w
KCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgS2luZDo6SWY6Ci0gICAgICAgIGRvd25jYXN0
PElmU3RhdGVtZW50PihzdGF0ZW1lbnQpLn5JZlN0YXRlbWVudCgpOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIEtpbmQ6OlJldHVybjoKLSAgICAgICAgZG93bmNhc3Q8UmV0dXJuPihzdGF0ZW1l
bnQpLn5SZXR1cm4oKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBLaW5kOjpTdGF0ZW1lbnRM
aXN0OgotICAgICAgICBkb3duY2FzdDxTdGF0ZW1lbnRMaXN0PihzdGF0ZW1lbnQpLn5TdGF0ZW1l
bnRMaXN0KCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgS2luZDo6U3dpdGNoQ2FzZToKLSAg
ICAgICAgZG93bmNhc3Q8U3dpdGNoQ2FzZT4oc3RhdGVtZW50KS5+U3dpdGNoQ2FzZSgpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIEtpbmQ6OlN3aXRjaDoKLSAgICAgICAgZG93bmNhc3Q8U3dp
dGNoU3RhdGVtZW50PihzdGF0ZW1lbnQpLn5Td2l0Y2hTdGF0ZW1lbnQoKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBLaW5kOjpWYXJpYWJsZURlY2xhcmF0aW9uczoKLSAgICAgICAgZG93bmNh
c3Q8VmFyaWFibGVEZWNsYXJhdGlvbnNTdGF0ZW1lbnQ+KHN0YXRlbWVudCkuflZhcmlhYmxlRGVj
bGFyYXRpb25zU3RhdGVtZW50KCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgS2luZDo6V2hp
bGVMb29wOgotICAgICAgICBkb3duY2FzdDxXaGlsZUxvb3A+KHN0YXRlbWVudCkufldoaWxlTG9v
cCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEFTVAotCi19
IC8vIG5hbWVzcGFjZSBXSExTTAotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAv
LyBFTkFCTEUoV0hMU0xfQ09NUElMRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xTdGF0ZW1lbnRMaXN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xTdGF0ZW1lbnRMaXN0LmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZjODc2NThlNjY1NS4uMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFN0YXRlbWVudExpc3Qu
aAorKysgL2Rldi9udWxsCkBAIC0xLDY4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9u
Y2UKLQotI2lmIEVOQUJMRShXSExTTF9DT01QSUxFUikKLQotI2luY2x1ZGUgIldITFNMQ29kZUxv
Y2F0aW9uLmgiCi0jaW5jbHVkZSAiV0hMU0xTdGF0ZW1lbnQuaCIKLSNpbmNsdWRlIDx3dGYvRmFz
dE1hbGxvYy5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1uYW1lc3BhY2UgV0hMU0wgewotCi1uYW1lc3BhY2UgQVNUIHsKLQotY2xhc3MgU3RhdGVt
ZW50TGlzdCBmaW5hbCA6IHB1YmxpYyBTdGF0ZW1lbnQgewotICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwotICAgIHVzaW5nIEJhc2UgPSBTdGF0ZW1lbnQ7Ci1wdWJsaWM6Ci0gICAgU3RhdGVt
ZW50TGlzdChDb2RlTG9jYXRpb24gbG9jYXRpb24sIFN0YXRlbWVudHMmJiBzdGF0ZW1lbnRzKQot
ICAgICAgICA6IEJhc2UobG9jYXRpb24sIEtpbmQ6OlN0YXRlbWVudExpc3QpCi0gICAgICAgICwg
bV9zdGF0ZW1lbnRzKFdURk1vdmUoc3RhdGVtZW50cykpCi0gICAgeyB9Ci0KLSAgICB+U3RhdGVt
ZW50TGlzdCgpID0gZGVmYXVsdDsKLQotICAgIFN0YXRlbWVudHMmIHN0YXRlbWVudHMoKSB7IHJl
dHVybiBtX3N0YXRlbWVudHM7IH0KLQotcHJpdmF0ZToKLSAgICBTdGF0ZW1lbnRzIG1fc3RhdGVt
ZW50czsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIEFTVAotCi19Ci0KLX0KLQotREVGSU5FX0RFRkFV
TFRfREVMRVRFKFN0YXRlbWVudExpc3QpCi0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfV0hMU0xf
U1RBVEVNRU5UKFN0YXRlbWVudExpc3QsIGlzU3RhdGVtZW50TGlzdCgpKQotCi0jZW5kaWYgLy8g
RU5BQkxFKFdITFNMX0NPTVBJTEVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV0hMU0wvQVNUL1dITFNMVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XSExTTC9BU1QvV0hMU0xUeXBlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMTM0YzYyMzFhNGRkLi4wMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMVHlwZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwx
OTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJX
SExTTFR5cGUuaCIKLQotI2lmIEVOQUJMRShXSExTTF9DT01QSUxFUikKLQotI2luY2x1ZGUgIldI
TFNMQVNULmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotbmFtZXNwYWNlIFdITFNMIHsKLQot
bmFtZXNwYWNlIEFTVCB7Ci0KLXZvaWQgVHlwZTo6ZGVzdHJveShUeXBlJiB0eXBlKQotewotICAg
IHN3aXRjaCAodHlwZS5raW5kKCkpIHsKLSAgICBjYXNlIEtpbmQ6OlR5cGVSZWZlcmVuY2U6Ci0g
ICAgICAgIGRlbGV0ZSAmZG93bmNhc3Q8VHlwZVJlZmVyZW5jZT4odHlwZSk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgS2luZDo6UG9pbnRlcjoKLSAgICAgICAgZGVsZXRlICZkb3duY2FzdDxQ
b2ludGVyVHlwZT4odHlwZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgS2luZDo6QXJyYXlS
ZWZlcmVuY2U6Ci0gICAgICAgIGRlbGV0ZSAmZG93bmNhc3Q8QXJyYXlSZWZlcmVuY2VUeXBlPih0
eXBlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBLaW5kOjpBcnJheToKLSAgICAgICAgZGVs
ZXRlICZkb3duY2FzdDxBcnJheVR5cGU+KHR5cGUpOwotICAgICAgICBicmVhazsKLQotICAgIGNh
c2UgS2luZDo6VHlwZURlZmluaXRpb246Ci0gICAgICAgIGRlbGV0ZSAmZG93bmNhc3Q8VHlwZURl
ZmluaXRpb24+KHR5cGUpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEtpbmQ6OlN0cnVjdHVy
ZURlZmluaXRpb246Ci0gICAgICAgIGRlbGV0ZSAmZG93bmNhc3Q8U3RydWN0dXJlRGVmaW5pdGlv
bj4odHlwZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgS2luZDo6RW51bWVyYXRpb25EZWZp
bml0aW9uOgotICAgICAgICBkZWxldGUgJmRvd25jYXN0PEVudW1lcmF0aW9uRGVmaW5pdGlvbj4o
dHlwZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgS2luZDo6TmF0aXZlVHlwZURlY2xhcmF0
aW9uOgotICAgICAgICBkZWxldGUgJmRvd25jYXN0PE5hdGl2ZVR5cGVEZWNsYXJhdGlvbj4odHlw
ZSk7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBLaW5kOjpGbG9hdExpdGVyYWw6Ci0gICAg
ICAgIGRlbGV0ZSAmZG93bmNhc3Q8RmxvYXRMaXRlcmFsVHlwZT4odHlwZSk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgS2luZDo6SW50ZWdlckxpdGVyYWw6Ci0gICAgICAgIGRlbGV0ZSAmZG93
bmNhc3Q8SW50ZWdlckxpdGVyYWxUeXBlPih0eXBlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBLaW5kOjpVbnNpZ25lZEludGVnZXJMaXRlcmFsOgotICAgICAgICBkZWxldGUgJmRvd25jYXN0
PFVuc2lnbmVkSW50ZWdlckxpdGVyYWxUeXBlPih0eXBlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
fQotfQotCi12b2lkIFR5cGU6OmRlc3RydWN0KFR5cGUmIHR5cGUpCi17Ci0gICAgc3dpdGNoICh0
eXBlLmtpbmQoKSkgewotICAgIGNhc2UgS2luZDo6VHlwZVJlZmVyZW5jZToKLSAgICAgICAgZG93
bmNhc3Q8VHlwZVJlZmVyZW5jZT4odHlwZSkuflR5cGVSZWZlcmVuY2UoKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBLaW5kOjpQb2ludGVyOgotICAgICAgICBkb3duY2FzdDxQb2ludGVyVHlw
ZT4odHlwZSkuflBvaW50ZXJUeXBlKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgS2luZDo6
QXJyYXlSZWZlcmVuY2U6Ci0gICAgICAgIGRvd25jYXN0PEFycmF5UmVmZXJlbmNlVHlwZT4odHlw
ZSkufkFycmF5UmVmZXJlbmNlVHlwZSgpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEtpbmQ6
OkFycmF5OgotICAgICAgICBkb3duY2FzdDxBcnJheVR5cGU+KHR5cGUpLn5BcnJheVR5cGUoKTsK
LSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIEtpbmQ6OlR5cGVEZWZpbml0aW9uOgotICAgICAg
ICBkb3duY2FzdDxUeXBlRGVmaW5pdGlvbj4odHlwZSkuflR5cGVEZWZpbml0aW9uKCk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgS2luZDo6U3RydWN0dXJlRGVmaW5pdGlvbjoKLSAgICAgICAg
ZG93bmNhc3Q8U3RydWN0dXJlRGVmaW5pdGlvbj4odHlwZSkuflN0cnVjdHVyZURlZmluaXRpb24o
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBLaW5kOjpFbnVtZXJhdGlvbkRlZmluaXRpb246
Ci0gICAgICAgIGRvd25jYXN0PEVudW1lcmF0aW9uRGVmaW5pdGlvbj4odHlwZSkufkVudW1lcmF0
aW9uRGVmaW5pdGlvbigpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEtpbmQ6Ok5hdGl2ZVR5
cGVEZWNsYXJhdGlvbjoKLSAgICAgICAgZG93bmNhc3Q8TmF0aXZlVHlwZURlY2xhcmF0aW9uPih0
eXBlKS5+TmF0aXZlVHlwZURlY2xhcmF0aW9uKCk7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2Fz
ZSBLaW5kOjpGbG9hdExpdGVyYWw6Ci0gICAgICAgIGRvd25jYXN0PEZsb2F0TGl0ZXJhbFR5cGU+
KHR5cGUpLn5GbG9hdExpdGVyYWxUeXBlKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgS2lu
ZDo6SW50ZWdlckxpdGVyYWw6Ci0gICAgICAgIGRvd25jYXN0PEludGVnZXJMaXRlcmFsVHlwZT4o
dHlwZSkufkludGVnZXJMaXRlcmFsVHlwZSgpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEtp
bmQ6OlVuc2lnbmVkSW50ZWdlckxpdGVyYWw6Ci0gICAgICAgIGRvd25jYXN0PFVuc2lnbmVkSW50
ZWdlckxpdGVyYWxUeXBlPih0eXBlKS5+VW5zaWduZWRJbnRlZ2VyTGl0ZXJhbFR5cGUoKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi1UeXBlJiBUeXBlOjp1bmlmeU5vZGUoKQotewotICAg
IHN3aXRjaCAoa2luZCgpKSB7Ci0gICAgY2FzZSBLaW5kOjpUeXBlUmVmZXJlbmNlOgotICAgICAg
ICByZXR1cm4gZG93bmNhc3Q8VHlwZVJlZmVyZW5jZT4oKnRoaXMpLnVuaWZ5Tm9kZUltcGwoKTsK
LSAgICBjYXNlIEtpbmQ6OlBvaW50ZXI6Ci0gICAgICAgIHJldHVybiBkb3duY2FzdDxQb2ludGVy
VHlwZT4oKnRoaXMpLnVuaWZ5Tm9kZUltcGwoKTsKLSAgICBjYXNlIEtpbmQ6OkFycmF5UmVmZXJl
bmNlOgotICAgICAgICByZXR1cm4gZG93bmNhc3Q8QXJyYXlSZWZlcmVuY2VUeXBlPigqdGhpcyku
dW5pZnlOb2RlSW1wbCgpOwotICAgIGNhc2UgS2luZDo6QXJyYXk6Ci0gICAgICAgIHJldHVybiBk
b3duY2FzdDxBcnJheVR5cGU+KCp0aGlzKS51bmlmeU5vZGVJbXBsKCk7Ci0KLSAgICBjYXNlIEtp
bmQ6OlR5cGVEZWZpbml0aW9uOgotICAgICAgICByZXR1cm4gZG93bmNhc3Q8VHlwZURlZmluaXRp
b24+KCp0aGlzKS51bmlmeU5vZGVJbXBsKCk7Ci0gICAgY2FzZSBLaW5kOjpTdHJ1Y3R1cmVEZWZp
bml0aW9uOgotICAgICAgICByZXR1cm4gZG93bmNhc3Q8U3RydWN0dXJlRGVmaW5pdGlvbj4oKnRo
aXMpLnVuaWZ5Tm9kZUltcGwoKTsKLSAgICBjYXNlIEtpbmQ6OkVudW1lcmF0aW9uRGVmaW5pdGlv
bjoKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PEVudW1lcmF0aW9uRGVmaW5pdGlvbj4oKnRoaXMp
LnVuaWZ5Tm9kZUltcGwoKTsKLSAgICBjYXNlIEtpbmQ6Ok5hdGl2ZVR5cGVEZWNsYXJhdGlvbjoK
LSAgICAgICAgcmV0dXJuIGRvd25jYXN0PE5hdGl2ZVR5cGVEZWNsYXJhdGlvbj4oKnRoaXMpLnVu
aWZ5Tm9kZUltcGwoKTsKLQotICAgIGRlZmF1bHQ6IAotICAgICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgIH0KLX0KLQotYm9vbCBSZXNvbHZhYmxlVHlwZTo6Y2FuUmVzb2x2
ZShjb25zdCBUeXBlJiB0eXBlKSBjb25zdAotewotICAgIHN3aXRjaCAoa2luZCgpKSB7Ci0gICAg
Y2FzZSBLaW5kOjpGbG9hdExpdGVyYWw6Ci0gICAgICAgIHJldHVybiBkb3duY2FzdDxGbG9hdExp
dGVyYWxUeXBlPigqdGhpcykuY2FuUmVzb2x2ZSh0eXBlKTsKLSAgICBjYXNlIEtpbmQ6OkludGVn
ZXJMaXRlcmFsOgotICAgICAgICByZXR1cm4gZG93bmNhc3Q8SW50ZWdlckxpdGVyYWxUeXBlPigq
dGhpcykuY2FuUmVzb2x2ZSh0eXBlKTsKLSAgICBjYXNlIEtpbmQ6OlVuc2lnbmVkSW50ZWdlckxp
dGVyYWw6Ci0gICAgICAgIHJldHVybiBkb3duY2FzdDxVbnNpZ25lZEludGVnZXJMaXRlcmFsVHlw
ZT4oKnRoaXMpLmNhblJlc29sdmUodHlwZSk7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9Ci19Ci0KLXVuc2lnbmVkIFJlc29sdmFibGVU
eXBlOjpjb252ZXJzaW9uQ29zdChjb25zdCBVbm5hbWVkVHlwZSYgdHlwZSkgY29uc3QKLXsKLSAg
ICBzd2l0Y2ggKGtpbmQoKSkgewotICAgIGNhc2UgS2luZDo6RmxvYXRMaXRlcmFsOgotICAgICAg
ICByZXR1cm4gZG93bmNhc3Q8RmxvYXRMaXRlcmFsVHlwZT4oKnRoaXMpLmNvbnZlcnNpb25Db3N0
KHR5cGUpOwotICAgIGNhc2UgS2luZDo6SW50ZWdlckxpdGVyYWw6Ci0gICAgICAgIHJldHVybiBk
b3duY2FzdDxJbnRlZ2VyTGl0ZXJhbFR5cGU+KCp0aGlzKS5jb252ZXJzaW9uQ29zdCh0eXBlKTsK
LSAgICBjYXNlIEtpbmQ6OlVuc2lnbmVkSW50ZWdlckxpdGVyYWw6Ci0gICAgICAgIHJldHVybiBk
b3duY2FzdDxVbnNpZ25lZEludGVnZXJMaXRlcmFsVHlwZT4oKnRoaXMpLmNvbnZlcnNpb25Db3N0
KHR5cGUpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgfQotfQotCi1TdHJpbmcgVW5uYW1lZFR5cGU6OnRvU3RyaW5nKCkgY29uc3QKLXsK
LSAgICBzd2l0Y2ggKGtpbmQoKSkgewotICAgIGNhc2UgS2luZDo6VHlwZVJlZmVyZW5jZToKLSAg
ICAgICAgcmV0dXJuIGRvd25jYXN0PFR5cGVSZWZlcmVuY2U+KCp0aGlzKS50b1N0cmluZygpOwot
ICAgIGNhc2UgS2luZDo6UG9pbnRlcjoKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PFBvaW50ZXJU
eXBlPigqdGhpcykudG9TdHJpbmcoKTsKLSAgICBjYXNlIEtpbmQ6OkFycmF5UmVmZXJlbmNlOgot
ICAgICAgICByZXR1cm4gZG93bmNhc3Q8QXJyYXlSZWZlcmVuY2VUeXBlPigqdGhpcykudG9TdHJp
bmcoKTsKLSAgICBjYXNlIEtpbmQ6OkFycmF5OgotICAgICAgICByZXR1cm4gZG93bmNhc3Q8QXJy
YXlUeXBlPigqdGhpcykudG9TdHJpbmcoKTsKLSAgICBkZWZhdWx0OiAKLSAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9Ci0KLX0KLQotfSAvLyBuYW1lc3BhY2UgQVNU
Ci0KLX0gLy8gbmFtZXNwYWNlIFdITFNMCi0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmIC8vIEVOQUJMRShXSExTTF9DT01QSUxFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUHJvZ3JhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFByb2dyYW0uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyMDhkMzQ3OGY4YjEuLjAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFByb2dyYW0uY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsNTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJXSExTTFByb2dyYW0uaCIKLQotI2lmIEVOQUJMRShXSExTTF9DT01QSUxFUikKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1uYW1lc3BhY2UgV0hMU0wgewotCi1ib29sIFByb2dyYW06OmlzVmFs
aWRWZWN0b3JQcm9wZXJ0eShTdHJpbmcgcHJvcGVydHkpCi17Ci0gICAgaWYgKHByb3BlcnR5Lmxl
bmd0aCgpIDwgMSB8fCBwcm9wZXJ0eS5sZW5ndGgoKSA+IDQpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcHJvcGVydHkubGVuZ3RoKCk7ICsraSkg
ewotICAgICAgICBzd2l0Y2ggKHByb3BlcnR5W2ldKSB7Ci0gICAgICAgIGNhc2UgJ3gnOgotICAg
ICAgICBjYXNlICd5JzoKLSAgICAgICAgY2FzZSAneic6Ci0gICAgICAgIGNhc2UgJ3cnOgotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgV0hMU0wKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxF
KFdITFNMX0NPTVBJTEVSKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>