<?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>231715</bug_id>
          
          <creation_ts>2021-10-13 17:56:30 -0700</creation_ts>
          <short_desc>Make unlinked Baseline JIT scope operations bias the order of checks to the ResolveType that profiling tells us we are likely to be</short_desc>
          <delta_ts>2021-10-14 18:50:16 -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>JavaScriptCore</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="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1804108</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-10-13 17:56:30 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804117</commentid>
    <comment_count>1</comment_count>
      <attachid>441173</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-10-13 18:45:16 -0700</bug_when>
    <thetext>Created attachment 441173
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804362</commentid>
    <comment_count>2</comment_count>
      <attachid>441241</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-10-14 11:14:55 -0700</bug_when>
    <thetext>Created attachment 441241
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804371</commentid>
    <comment_count>3</comment_count>
      <attachid>441246</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-10-14 11:27:21 -0700</bug_when>
    <thetext>Created attachment 441246
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804387</commentid>
    <comment_count>4</comment_count>
      <attachid>441250</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-10-14 11:48:50 -0700</bug_when>
    <thetext>Created attachment 441250
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804402</commentid>
    <comment_count>5</comment_count>
      <attachid>441250</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-14 12:11:48 -0700</bug_when>
    <thetext>Comment on attachment 441250
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804644</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-14 18:49:52 -0700</bug_when>
    <thetext>Committed r284224 (243033@main): &lt;https://commits.webkit.org/243033@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441250.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804645</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-14 18:50:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/84284754&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441173</attachid>
            <date>2021-10-13 18:45:16 -0700</date>
            <delta_ts>2021-10-14 11:14:55 -0700</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>15893</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjg0MTQxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDIxLTEwLTEzICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IE1ha2UgdW5saW5rZWQgQmFzZWxpbmUgSklUIHNjb3BlIG9wZXJhdGlvbnMgYmlhcyB0aGUgb3Jk
ZXIgb2YgY2hlY2tzIHRvIHRoZSBSZXNvbHZlVHlwZSB0aGF0IHByb2ZpbGluZyB0ZWxscyB1cyB3
ZSBhcmUgbGlrZWx5IHRvIGJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzE3MTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGlzIGlzIGEgc21hbGwgdGhyb3VnaG91dCB3aW4gaW4gdGhlIGNvZGUgZ2Vu
ZXJhdGVkIGJ5IHVubGlua2VkIGJhc2VsaW5lIEpJVC4KKworICAgICAgICAqIGppdC9KSVQuaDoK
KyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRfb3BfcmVzb2x2ZV9zY29wZSk6CisgICAgICAgIChKU0M6OkpJVDo6Z2VuZXJhdGVPcFJl
c29sdmVTY29wZVRodW5rKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9mcm9tX3Nj
b3BlKToKKyAgICAgICAgKEpTQzo6SklUOjpnZW5lcmF0ZU9wR2V0RnJvbVNjb3BlVGh1bmspOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X3RvX3Njb3BlKToKKwogMjAyMS0xMC0xMyAg
SmVhbi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAgIENsZWFybHkgZGlz
dGluZ3Vpc2ggc2VyaWFsIGZyb20gY29uY3VycmVudCBXb3JrUXVldWUKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuaAkocmV2aXNpb24gMjgzMTM5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuaAkod29ya2luZyBjb3B5KQpAQCAtNzU1LDggKzc1NSwxMCBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgICAgICBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRy
VGFnPiBzbG93X29wX2dldF9mcm9tX3Njb3BlR2VuZXJhdG9yKFZNJik7CiAgICAgICAgIHN0YXRp
YyBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IHNsb3dfb3BfcmVzb2x2ZV9z
Y29wZUdlbmVyYXRvcihWTSYpOwotICAgICAgICBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
PEpJVFRodW5rUHRyVGFnPiBnZW5lcmF0ZU9wR2V0RnJvbVNjb3BlVGh1bmsoVk0mLCBzdGQ6Om9w
dGlvbmFsPFJlc29sdmVUeXBlPiwgY29uc3QgY2hhciogdGh1bmtOYW1lKTsKLSAgICAgICAgc3Rh
dGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gZ2VuZXJhdGVPcFJlc29s
dmVTY29wZVRodW5rKFZNJiwgc3RkOjpvcHRpb25hbDxSZXNvbHZlVHlwZT4sIGNvbnN0IGNoYXIq
IHRodW5rTmFtZSk7CisgICAgICAgIHRlbXBsYXRlIDxSZXNvbHZlVHlwZT4KKyAgICAgICAgc3Rh
dGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gZ2VuZXJhdGVPcEdldEZy
b21TY29wZVRodW5rKFZNJik7CisgICAgICAgIHRlbXBsYXRlIDxSZXNvbHZlVHlwZT4KKyAgICAg
ICAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gZ2VuZXJhdGVP
cFJlc29sdmVTY29wZVRodW5rKFZNJik7CiAjZW5kaWYgLy8gRU5BQkxFKEVYVFJBX0NUSV9USFVO
S1MpCiAKICAgICAgICAgSnVtcCBnZXRTbG93Q2FzZShWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0
ZXJhdG9yJiBpdGVyKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0
eUFjY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2Vzcy5jcHAJKHJldmlzaW9uIDI4MzEzOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTczLDE4
ICsxOTczLDYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmVzb2x2ZV9zY29wZShjb25zdCBJbgogICAg
IGVsc2UgewogICAgICAgICBwdHJkaWZmX3QgbWV0YWRhdGFPZmZzZXQgPSBtX3VubGlua2VkQ29k
ZUJsb2NrLT5tZXRhZGF0YSgpLm9mZnNldEluTWV0YWRhdGFUYWJsZShieXRlY29kZSk7CiAKLSAg
ICAgICAgYXV0byBjbG9zdXJlVmFyR2VuZXJhdG9yID0gW10gKFZNJiB2bSkgewotICAgICAgICAg
ICAgcmV0dXJuIEpJVDo6Z2VuZXJhdGVPcFJlc29sdmVTY29wZVRodW5rKHZtLCBDbG9zdXJlVmFy
LCAiQmFzZWxpbmU6IG9wX3Jlc29sdmVfc2NvcGUgQ2xvc3VyZVZhciIpOwotICAgICAgICB9Owot
Ci0gICAgICAgIGF1dG8gY2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVja3NHZW5lcmF0b3Ig
PSBbXSAoVk0mIHZtKSB7Ci0gICAgICAgICAgICByZXR1cm4gSklUOjpnZW5lcmF0ZU9wUmVzb2x2
ZVNjb3BlVGh1bmsodm0sIENsb3N1cmVWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzLCAiQmFzZWxp
bmU6IG9wX3Jlc29sdmVfc2NvcGUgQ2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MiKTsK
LSAgICAgICAgfTsKLQotICAgICAgICBhdXRvIGdlbmVyaWNSZXNvbHZlU2NvcGVHZW5lcmF0b3Ig
PSBbXSAoVk0mIHZtKSB7Ci0gICAgICAgICAgICByZXR1cm4gSklUOjpnZW5lcmF0ZU9wUmVzb2x2
ZVNjb3BlVGh1bmsodm0sIHN0ZDo6bnVsbG9wdCwgIkJhc2VsaW5lOiBvcF9yZXNvbHZlX3Njb3Bl
IGdlbmVyaWMiKTsKLSAgICAgICAgfTsKLQogICAgICAgICBjb25zdGV4cHIgR1BSUmVnIG1ldGFk
YXRhR1BSID0gcmVnVDI7CiAgICAgICAgIGNvbnN0ZXhwciBHUFJSZWcgc2NvcGVHUFIgPSByZWdU
MDsKICAgICAgICAgY29uc3RleHByIEdQUlJlZyBieXRlY29kZU9mZnNldEdQUiA9IHJlZ1Q1OwpA
QCAtMTk5NSwxOCArMTk4MywzMiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9yZXNvbHZlX3Njb3BlKGNv
bnN0IEluCiAKICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBj
b2RlOwogICAgICAgICBpZiAocHJvZmlsZWRSZXNvbHZlVHlwZSA9PSBDbG9zdXJlVmFyKQotICAg
ICAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoY2xvc3VyZVZhckdlbmVyYXRvcik7CisgICAg
ICAgICAgICBjb2RlID0gdm0uZ2V0Q1RJU3R1YihnZW5lcmF0ZU9wUmVzb2x2ZVNjb3BlVGh1bms8
Q2xvc3VyZVZhcj4pOwogICAgICAgICBlbHNlIGlmIChwcm9maWxlZFJlc29sdmVUeXBlID09IENs
b3N1cmVWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzKQotICAgICAgICAgICAgY29kZSA9IHZtLmdl
dENUSVN0dWIoY2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVja3NHZW5lcmF0b3IpOworICAg
ICAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoZ2VuZXJhdGVPcFJlc29sdmVTY29wZVRodW5r
PENsb3N1cmVWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzPik7CisgICAgICAgIGVsc2UgaWYgKHBy
b2ZpbGVkUmVzb2x2ZVR5cGUgPT0gR2xvYmFsVmFyKQorICAgICAgICAgICAgY29kZSA9IHZtLmdl
dENUSVN0dWIoZ2VuZXJhdGVPcFJlc29sdmVTY29wZVRodW5rPEdsb2JhbFZhcj4pOworICAgICAg
ICBlbHNlIGlmIChwcm9maWxlZFJlc29sdmVUeXBlID09IEdsb2JhbFByb3BlcnR5KQorICAgICAg
ICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoZ2VuZXJhdGVPcFJlc29sdmVTY29wZVRodW5rPEds
b2JhbFByb3BlcnR5Pik7CisgICAgICAgIGVsc2UgaWYgKHByb2ZpbGVkUmVzb2x2ZVR5cGUgPT0g
R2xvYmFsTGV4aWNhbFZhcikKKyAgICAgICAgICAgIGNvZGUgPSB2bS5nZXRDVElTdHViKGdlbmVy
YXRlT3BSZXNvbHZlU2NvcGVUaHVuazxHbG9iYWxMZXhpY2FsVmFyPik7CisgICAgICAgIGVsc2Ug
aWYgKHByb2ZpbGVkUmVzb2x2ZVR5cGUgPT0gR2xvYmFsVmFyV2l0aFZhckluamVjdGlvbkNoZWNr
cykKKyAgICAgICAgICAgIGNvZGUgPSB2bS5nZXRDVElTdHViKGdlbmVyYXRlT3BSZXNvbHZlU2Nv
cGVUaHVuazxHbG9iYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzPik7CisgICAgICAgIGVsc2Ug
aWYgKHByb2ZpbGVkUmVzb2x2ZVR5cGUgPT0gR2xvYmFsUHJvcGVydHlXaXRoVmFySW5qZWN0aW9u
Q2hlY2tzKQorICAgICAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoZ2VuZXJhdGVPcFJlc29s
dmVTY29wZVRodW5rPEdsb2JhbFByb3BlcnR5V2l0aFZhckluamVjdGlvbkNoZWNrcz4pOworICAg
ICAgICBlbHNlIGlmIChwcm9maWxlZFJlc29sdmVUeXBlID09IEdsb2JhbExleGljYWxWYXJXaXRo
VmFySW5qZWN0aW9uQ2hlY2tzKQorICAgICAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoZ2Vu
ZXJhdGVPcFJlc29sdmVTY29wZVRodW5rPEdsb2JhbExleGljYWxWYXJXaXRoVmFySW5qZWN0aW9u
Q2hlY2tzPik7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvZGUgPSB2bS5nZXRDVElTdHVi
KGdlbmVyaWNSZXNvbHZlU2NvcGVHZW5lcmF0b3IpOworICAgICAgICAgICAgY29kZSA9IHZtLmdl
dENUSVN0dWIoZ2VuZXJhdGVPcFJlc29sdmVTY29wZVRodW5rPEdsb2JhbFZhcj4pOworCiAgICAg
ICAgIGVtaXROYWtlZE5lYXJDYWxsKGNvZGUucmV0YWdnZWRDb2RlPE5vUHRyVGFnPigpKTsKICAg
ICB9CiAKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiB9CiAKLU1hY3JvQXNzZW1i
bGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gSklUOjpnZW5lcmF0ZU9wUmVzb2x2ZVNjb3BlVGh1
bmsoVk0mIHZtLCBzdGQ6Om9wdGlvbmFsPFJlc29sdmVUeXBlPiByZXNvbHZlVHlwZSwgY29uc3Qg
Y2hhciogdGh1bmtOYW1lKQordGVtcGxhdGUgPFJlc29sdmVUeXBlIHByb2ZpbGVkUmVzb2x2ZVR5
cGU+CitNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IEpJVDo6Z2VuZXJhdGVP
cFJlc29sdmVTY29wZVRodW5rKFZNJiB2bSkKIHsKICAgICAvLyBUaGUgdGh1bmsgZ2VuZXJhdGVk
IGJ5IHRoaXMgZnVuY3Rpb24gY2FuIG9ubHkgd29yayB3aXRoIHRoZSBMTEludCAvIEJhc2VsaW5l
IEpJVCBiZWNhdXNlCiAgICAgLy8gaXQgbWFrZXMgYXNzdW1wdGlvbnMgYWJvdXQgdGhlIHJpZ2h0
IGdsb2JhbE9iamVjdCBiZWluZyBhdmFpbGFibGUgZnJvbSBDYWxsRnJhbWU6OmNvZGVCbG9jaygp
LgpAQCAtMjA5NSwyMCArMjA5NywyOSBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQ
dHJUYWc+IEpJCiAgICAgICAgIH0KICAgICB9OwogCi0gICAgaWYgKHJlc29sdmVUeXBlKSB7Ci0g
ICAgICAgIFJFTEVBU0VfQVNTRVJUKCpyZXNvbHZlVHlwZSA9PSBDbG9zdXJlVmFyIHx8ICpyZXNv
bHZlVHlwZSA9PSBDbG9zdXJlVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcyk7Ci0gICAgICAgIGVt
aXRDb2RlKCpyZXNvbHZlVHlwZSk7Ci0gICAgfSBlbHNlIHsKKyAgICBpZiAocHJvZmlsZWRSZXNv
bHZlVHlwZSA9PSBDbG9zdXJlVmFyKQorICAgICAgICBlbWl0Q29kZShDbG9zdXJlVmFyKTsKKyAg
ICBlbHNlIGlmIChwcm9maWxlZFJlc29sdmVUeXBlID09IENsb3N1cmVWYXJXaXRoVmFySW5qZWN0
aW9uQ2hlY2tzKQorICAgICAgICBlbWl0Q29kZShDbG9zdXJlVmFyV2l0aFZhckluamVjdGlvbkNo
ZWNrcyk7CisgICAgZWxzZSB7CiAgICAgICAgIEp1bXBMaXN0IHNraXBUb0VuZDsKICAgICAgICAg
aml0LmxvYWQzMihBZGRyZXNzKG1ldGFkYXRhR1BSLCBNZXRhZGF0YTo6b2Zmc2V0T2ZSZXNvbHZl
VHlwZSgpKSwgcmVnVDEpOwogCi0gICAgICAgIGF1dG8gZW1pdENhc2UgPSBbJl0gKFJlc29sdmVU
eXBlIHJlc29sdmVUeXBlKSB7CisgICAgICAgIGF1dG8gZW1pdENhc2VXaXRob3V0Q2hlY2sgPSBb
Jl0gKFJlc29sdmVUeXBlIHJlc29sdmVUeXBlKSB7CiAgICAgICAgICAgICBKdW1wIG5vdENhc2Ug
PSBqaXQuYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QxLCBUcnVzdGVkSW1tMzIocmVzb2x2ZVR5cGUp
KTsKICAgICAgICAgICAgIGVtaXRDb2RlKHJlc29sdmVUeXBlKTsKICAgICAgICAgICAgIHNraXBU
b0VuZC5hcHBlbmQoaml0Lmp1bXAoKSk7CiAgICAgICAgICAgICBub3RDYXNlLmxpbmsoJmppdCk7
CiAgICAgICAgIH07CiAKKyAgICAgICAgYXV0byBlbWl0Q2FzZSA9IFsmXSAoUmVzb2x2ZVR5cGUg
cmVzb2x2ZVR5cGUpIHsKKyAgICAgICAgICAgIGlmIChyZXNvbHZlVHlwZSAhPSBwcm9maWxlZFJl
c29sdmVUeXBlKQorICAgICAgICAgICAgICAgIGVtaXRDYXNlV2l0aG91dENoZWNrKHJlc29sdmVU
eXBlKTsKKyAgICAgICAgfTsKKworICAgICAgICAvLyBDaGVjayB0aGF0IHdlJ3JlIHRoZSBwcm9m
aWxlZCByZXNvbHZlIHR5cGUgZmlyc3QuCisgICAgICAgIGVtaXRDYXNlV2l0aG91dENoZWNrKHBy
b2ZpbGVkUmVzb2x2ZVR5cGUpOworCiAgICAgICAgIGVtaXRDYXNlKEdsb2JhbFZhcik7CiAgICAg
ICAgIGVtaXRDYXNlKEdsb2JhbFByb3BlcnR5KTsKICAgICAgICAgZW1pdENhc2UoR2xvYmFsTGV4
aWNhbFZhcik7CkBAIC0yMTI0LDcgKzIxMzUsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklU
VGh1bmtQdHJUYWc+IEpJCiAKICAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKGppdCwgR0xPQkFM
X1RIVU5LX0lELCBMaW5rQnVmZmVyOjpQcm9maWxlOjpUaHVuayk7CiAgICAgcGF0Y2hCdWZmZXIu
bGluayhzbG93Q2FzZSwgQ29kZUxvY2F0aW9uTGFiZWwodm0uZ2V0Q1RJU3R1YihzbG93X29wX3Jl
c29sdmVfc2NvcGVHZW5lcmF0b3IpLnJldGFnZ2VkQ29kZTxOb1B0clRhZz4oKSkpOwotICAgIHJl
dHVybiBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCBKSVRUaHVua1B0clRhZywgdGh1bmtOYW1l
KTsKKyAgICByZXR1cm4gRklOQUxJWkVfQ09ERShwYXRjaEJ1ZmZlciwgSklUVGh1bmtQdHJUYWcs
ICJyZXNvbHZlX3Njb3BlIHRodW5rIik7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRU
aHVua1B0clRhZz4gSklUOjpzbG93X29wX3Jlc29sdmVfc2NvcGVHZW5lcmF0b3IoVk0mIHZtKQpA
QCAtMjM1NCwxOCArMjM2NSw2IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9mcm9tX3Njb3BlKGNv
bnN0IEkKICAgICBBU1NFUlQoQnl0ZWNvZGVJbmRleChieXRlY29kZU9mZnNldCkgPT0gbV9ieXRl
Y29kZUluZGV4KTsKICAgICBBU1NFUlQobV91bmxpbmtlZENvZGVCbG9jay0+aW5zdHJ1Y3Rpb25B
dChtX2J5dGVjb2RlSW5kZXgpID09IGN1cnJlbnRJbnN0cnVjdGlvbik7CiAKLSAgICBhdXRvIGNs
b3N1cmVWYXJHZW5lcmF0b3IgPSBbXSAoVk0mIHZtKSB7Ci0gICAgICAgIHJldHVybiBKSVQ6Omdl
bmVyYXRlT3BHZXRGcm9tU2NvcGVUaHVuayh2bSwgQ2xvc3VyZVZhciwgIkJhc2VsaW5lOiBvcF9n
ZXRfZnJvbV9zY29wZSBDbG9zdXJlVmFyIik7Ci0gICAgfTsKLQotICAgIGF1dG8gY2xvc3VyZVZh
cldpdGhWYXJJbmplY3Rpb25DaGVja3NHZW5lcmF0b3IgPSBbXSAoVk0mIHZtKSB7Ci0gICAgICAg
IHJldHVybiBKSVQ6OmdlbmVyYXRlT3BHZXRGcm9tU2NvcGVUaHVuayh2bSwgQ2xvc3VyZVZhcldp
dGhWYXJJbmplY3Rpb25DaGVja3MsICJCYXNlbGluZTogb3BfZ2V0X2Zyb21fc2NvcGUgQ2xvc3Vy
ZVZhciIpOwotICAgIH07Ci0KLSAgICBhdXRvIGdlbmVyaWNHZXRGcm9tU2NvcGVHZW5lcmF0b3Ig
PSBbXSAoVk0mIHZtKSB7Ci0gICAgICAgIHJldHVybiBKSVQ6OmdlbmVyYXRlT3BHZXRGcm9tU2Nv
cGVUaHVuayh2bSwgc3RkOjpudWxsb3B0LCAiQmFzZWxpbmU6IG9wX2dldF9mcm9tX3Njb3BlIGdl
bmVyaWMiKTsKLSAgICB9OwotCiAgICAgY29uc3RleHByIEdQUlJlZyBtZXRhZGF0YUdQUiA9IHJl
Z1Q0OwogICAgIGNvbnN0ZXhwciBHUFJSZWcgc2NvcGVHUFIgPSByZWdUMjsKICAgICBjb25zdGV4
cHIgR1BSUmVnIGJ5dGVjb2RlT2Zmc2V0R1BSID0gcmVnVDU7CkBAIC0yMzc4LDE3ICsyMzc3LDI4
IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9mcm9tX3Njb3BlKGNvbnN0IEkKIAogICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gY29kZTsKICAgICBpZiAocHJvZmlsZWRS
ZXNvbHZlVHlwZSA9PSBDbG9zdXJlVmFyKQotICAgICAgICBjb2RlID0gdm0uZ2V0Q1RJU3R1Yihj
bG9zdXJlVmFyR2VuZXJhdG9yKTsKKyAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoZ2VuZXJh
dGVPcEdldEZyb21TY29wZVRodW5rPENsb3N1cmVWYXI+KTsKICAgICBlbHNlIGlmIChwcm9maWxl
ZFJlc29sdmVUeXBlID09IENsb3N1cmVWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzKQotICAgICAg
ICBjb2RlID0gdm0uZ2V0Q1RJU3R1YihjbG9zdXJlVmFyV2l0aFZhckluamVjdGlvbkNoZWNrc0dl
bmVyYXRvcik7CisgICAgICAgIGNvZGUgPSB2bS5nZXRDVElTdHViKGdlbmVyYXRlT3BHZXRGcm9t
U2NvcGVUaHVuazxDbG9zdXJlVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcz4pOworICAgIGVsc2Ug
aWYgKHByb2ZpbGVkUmVzb2x2ZVR5cGUgPT0gR2xvYmFsVmFyKQorICAgICAgICBjb2RlID0gdm0u
Z2V0Q1RJU3R1YihnZW5lcmF0ZU9wR2V0RnJvbVNjb3BlVGh1bms8R2xvYmFsVmFyPik7CisgICAg
ZWxzZSBpZiAocHJvZmlsZWRSZXNvbHZlVHlwZSA9PSBHbG9iYWxWYXJXaXRoVmFySW5qZWN0aW9u
Q2hlY2tzKQorICAgICAgICBjb2RlID0gdm0uZ2V0Q1RJU3R1YihnZW5lcmF0ZU9wR2V0RnJvbVNj
b3BlVGh1bms8R2xvYmFsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcz4pOworICAgIGVsc2UgaWYg
KHByb2ZpbGVkUmVzb2x2ZVR5cGUgPT0gR2xvYmFsUHJvcGVydHkpCisgICAgICAgIGNvZGUgPSB2
bS5nZXRDVElTdHViKGdlbmVyYXRlT3BHZXRGcm9tU2NvcGVUaHVuazxHbG9iYWxQcm9wZXJ0eT4p
OworICAgIGVsc2UgaWYgKHByb2ZpbGVkUmVzb2x2ZVR5cGUgPT0gR2xvYmFsTGV4aWNhbFZhcikK
KyAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoZ2VuZXJhdGVPcEdldEZyb21TY29wZVRodW5r
PEdsb2JhbExleGljYWxWYXI+KTsKKyAgICBlbHNlIGlmIChwcm9maWxlZFJlc29sdmVUeXBlID09
IEdsb2JhbExleGljYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzKQorICAgICAgICBjb2RlID0g
dm0uZ2V0Q1RJU3R1YihnZW5lcmF0ZU9wR2V0RnJvbVNjb3BlVGh1bms8R2xvYmFsTGV4aWNhbFZh
cldpdGhWYXJJbmplY3Rpb25DaGVja3M+KTsKICAgICBlbHNlCi0gICAgICAgIGNvZGUgPSB2bS5n
ZXRDVElTdHViKGdlbmVyaWNHZXRGcm9tU2NvcGVHZW5lcmF0b3IpOworICAgICAgICBjb2RlID0g
dm0uZ2V0Q1RJU3R1YihnZW5lcmF0ZU9wR2V0RnJvbVNjb3BlVGh1bms8R2xvYmFsVmFyPik7CiAK
ICAgICBlbWl0TmFrZWROZWFyQ2FsbChjb2RlLnJldGFnZ2VkQ29kZTxOb1B0clRhZz4oKSk7CiAg
ICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwogfQogCi1NYWNyb0Fzc2VtYmxlckNvZGVS
ZWY8SklUVGh1bmtQdHJUYWc+IEpJVDo6Z2VuZXJhdGVPcEdldEZyb21TY29wZVRodW5rKFZNJiB2
bSwgc3RkOjpvcHRpb25hbDxSZXNvbHZlVHlwZT4gcmVzb2x2ZVR5cGUsIGNvbnN0IGNoYXIqIHRo
dW5rTmFtZSkKK3RlbXBsYXRlIDxSZXNvbHZlVHlwZSBwcm9maWxlZFJlc29sdmVUeXBlPgorTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBKSVQ6OmdlbmVyYXRlT3BHZXRGcm9t
U2NvcGVUaHVuayhWTSYgdm0pCiB7CiAgICAgLy8gVGhlIHRodW5rIGdlbmVyYXRlZCBieSB0aGlz
IGZ1bmN0aW9uIGNhbiBvbmx5IHdvcmsgd2l0aCB0aGUgTExJbnQgLyBCYXNlbGluZSBKSVQgYmVj
YXVzZQogICAgIC8vIGl0IG1ha2VzIGFzc3VtcHRpb25zIGFib3V0IHRoZSByaWdodCBnbG9iYWxP
YmplY3QgYmVpbmcgYXZhaWxhYmxlIGZyb20gQ2FsbEZyYW1lOjpjb2RlQmxvY2soKS4KQEAgLTI0
NzgsNDMgKzI0ODgsMzUgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBK
SQogICAgICAgICB9CiAgICAgfTsKIAotICAgIGlmIChyZXNvbHZlVHlwZSkgewotICAgICAgICBS
RUxFQVNFX0FTU0VSVCgqcmVzb2x2ZVR5cGUgPT0gQ2xvc3VyZVZhciB8fCAqcmVzb2x2ZVR5cGUg
PT0gQ2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MpOwotICAgICAgICBlbWl0Q29kZSgq
cmVzb2x2ZVR5cGUpOwotICAgIH0gZWxzZSB7CisgICAgaWYgKHByb2ZpbGVkUmVzb2x2ZVR5cGUg
PT0gQ2xvc3VyZVZhciB8fCBwcm9maWxlZFJlc29sdmVUeXBlID09IENsb3N1cmVWYXJXaXRoVmFy
SW5qZWN0aW9uQ2hlY2tzKQorICAgICAgICBlbWl0Q29kZShwcm9maWxlZFJlc29sdmVUeXBlKTsK
KyAgICBlbHNlIHsKICAgICAgICAgSnVtcExpc3Qgc2tpcFRvRW5kOwogICAgICAgICBqaXQubG9h
ZDMyKEFkZHJlc3MobWV0YWRhdGFHUFIsIE1ldGFkYXRhOjpvZmZzZXRPZkdldFB1dEluZm8oKSks
IHJlZ1QwKTsKICAgICAgICAgaml0LmFuZDMyKFRydXN0ZWRJbW0zMihHZXRQdXRJbmZvOjp0eXBl
Qml0cyksIHJlZ1QwKTsgLy8gTG9hZCBSZXNvbHZlVHlwZSBpbnRvIFQwCiAKLSAgICAgICAgSnVt
cCBub3RHbG9iYWxWYXIgPSBqaXQuYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QwLCBUcnVzdGVkSW1t
MzIoR2xvYmFsVmFyKSk7Ci0gICAgICAgIGVtaXRDb2RlKEdsb2JhbFZhcik7Ci0gICAgICAgIHNr
aXBUb0VuZC5hcHBlbmQoaml0Lmp1bXAoKSk7Ci0gICAgICAgIG5vdEdsb2JhbFZhci5saW5rKCZq
aXQpOwotCi0gICAgICAgIEp1bXAgbm90R2xvYmFsVmFyV2l0aFZhckluamVjdGlvbiA9IGppdC5i
cmFuY2gzMihOb3RFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW0zMihHbG9iYWxWYXJXaXRoVmFySW5q
ZWN0aW9uQ2hlY2tzKSk7Ci0gICAgICAgIGVtaXRDb2RlKEdsb2JhbFZhcldpdGhWYXJJbmplY3Rp
b25DaGVja3MpOwotICAgICAgICBza2lwVG9FbmQuYXBwZW5kKGppdC5qdW1wKCkpOwotICAgICAg
ICBub3RHbG9iYWxWYXJXaXRoVmFySW5qZWN0aW9uLmxpbmsoJmppdCk7CisgICAgICAgIGF1dG8g
ZW1pdENhc2VXaXRob3V0Q2hlY2sgPSBbJl0gKFJlc29sdmVUeXBlIHJlc29sdmVUeXBlKSB7Cisg
ICAgICAgICAgICBKdW1wIG5vdENhc2UgPSBqaXQuYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QwLCBU
cnVzdGVkSW1tMzIocmVzb2x2ZVR5cGUpKTsKKyAgICAgICAgICAgIGVtaXRDb2RlKHJlc29sdmVU
eXBlKTsKKyAgICAgICAgICAgIHNraXBUb0VuZC5hcHBlbmQoaml0Lmp1bXAoKSk7CisgICAgICAg
ICAgICBub3RDYXNlLmxpbmsoJmppdCk7CisgICAgICAgIH07CiAKLSAgICAgICAgSnVtcCBpc0ds
b2JhbFByb3BlcnR5ID0gaml0LmJyYW5jaDMyKEVxdWFsLCByZWdUMCwgVHJ1c3RlZEltbTMyKEds
b2JhbFByb3BlcnR5KSk7Ci0gICAgICAgIEp1bXAgbm90R2xvYmFsUHJvcGVydHlXaXRoVmFySW5q
ZWN0aW9ucyA9IGppdC5icmFuY2gzMihOb3RFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW0zMihHbG9i
YWxQcm9wZXJ0eVdpdGhWYXJJbmplY3Rpb25DaGVja3MpKTsKLSAgICAgICAgaXNHbG9iYWxQcm9w
ZXJ0eS5saW5rKCZqaXQpOwotICAgICAgICBlbWl0Q29kZShHbG9iYWxQcm9wZXJ0eSk7Ci0gICAg
ICAgIHNraXBUb0VuZC5hcHBlbmQoaml0Lmp1bXAoKSk7Ci0gICAgICAgIG5vdEdsb2JhbFByb3Bl
cnR5V2l0aFZhckluamVjdGlvbnMubGluaygmaml0KTsKKyAgICAgICAgYXV0byBlbWl0Q2FzZSA9
IFsmXSAoUmVzb2x2ZVR5cGUgcmVzb2x2ZVR5cGUpIHsKKyAgICAgICAgICAgIGlmIChwcm9maWxl
ZFJlc29sdmVUeXBlICE9IHJlc29sdmVUeXBlKQorICAgICAgICAgICAgICAgIGVtaXRDYXNlV2l0
aG91dENoZWNrKHJlc29sdmVUeXBlKTsKKyAgICAgICAgfTsKIAotICAgICAgICBKdW1wIG5vdEds
b2JhbExleGljYWxWYXIgPSBqaXQuYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QwLCBUcnVzdGVkSW1t
MzIoR2xvYmFsTGV4aWNhbFZhcikpOwotICAgICAgICBlbWl0Q29kZShHbG9iYWxMZXhpY2FsVmFy
KTsKLSAgICAgICAgc2tpcFRvRW5kLmFwcGVuZChqaXQuanVtcCgpKTsKLSAgICAgICAgbm90R2xv
YmFsTGV4aWNhbFZhci5saW5rKCZqaXQpOworICAgICAgICBlbWl0Q2FzZVdpdGhvdXRDaGVjayhw
cm9maWxlZFJlc29sdmVUeXBlKTsKIAotICAgICAgICBKdW1wIG5vdEdsb2JhbExleGljYWxWYXJX
aXRoVmFySW5qZWN0aW9ucyA9IGppdC5icmFuY2gzMihOb3RFcXVhbCwgcmVnVDAsIFRydXN0ZWRJ
bW0zMihHbG9iYWxMZXhpY2FsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcykpOwotICAgICAgICBl
bWl0Q29kZShHbG9iYWxMZXhpY2FsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcyk7Ci0gICAgICAg
IHNraXBUb0VuZC5hcHBlbmQoaml0Lmp1bXAoKSk7Ci0gICAgICAgIG5vdEdsb2JhbExleGljYWxW
YXJXaXRoVmFySW5qZWN0aW9ucy5saW5rKCZqaXQpOworICAgICAgICBlbWl0Q2FzZShHbG9iYWxW
YXIpOworICAgICAgICBlbWl0Q2FzZShHbG9iYWxQcm9wZXJ0eSk7CisgICAgICAgIGVtaXRDYXNl
KEdsb2JhbExleGljYWxWYXIpOworICAgICAgICBlbWl0Q2FzZShHbG9iYWxWYXJXaXRoVmFySW5q
ZWN0aW9uQ2hlY2tzKTsKKyAgICAgICAgZW1pdENhc2UoR2xvYmFsUHJvcGVydHlXaXRoVmFySW5q
ZWN0aW9uQ2hlY2tzKTsKKyAgICAgICAgZW1pdENhc2UoR2xvYmFsTGV4aWNhbFZhcldpdGhWYXJJ
bmplY3Rpb25DaGVja3MpOwogCiAgICAgICAgIHNsb3dDYXNlLmFwcGVuZChqaXQuanVtcCgpKTsK
LQogICAgICAgICBza2lwVG9FbmQubGluaygmaml0KTsKICAgICB9CiAKQEAgLTI1MjUsNyArMjUy
Nyw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gSkkKIAogICAgIExp
bmtCdWZmZXIgcGF0Y2hCdWZmZXIoaml0LCBHTE9CQUxfVEhVTktfSUQsIExpbmtCdWZmZXI6OlBy
b2ZpbGU6OlRodW5rKTsKICAgICBwYXRjaEJ1ZmZlci5saW5rKHNsb3dDYXNlLCBDb2RlTG9jYXRp
b25MYWJlbCh2bS5nZXRDVElTdHViKHNsb3dfb3BfZ2V0X2Zyb21fc2NvcGVHZW5lcmF0b3IpLnJl
dGFnZ2VkQ29kZTxOb1B0clRhZz4oKSkpOwotICAgIHJldHVybiBGSU5BTElaRV9DT0RFKHBhdGNo
QnVmZmVyLCBKSVRUaHVua1B0clRhZywgdGh1bmtOYW1lKTsKKyAgICByZXR1cm4gRklOQUxJWkVf
Q09ERShwYXRjaEJ1ZmZlciwgSklUVGh1bmtQdHJUYWcsICJnZXRfZnJvbV9zY29wZSB0aHVuayIp
OwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IEpJVDo6c2xvd19v
cF9nZXRfZnJvbV9zY29wZUdlbmVyYXRvcihWTSYgdm0pCkBAIC0yNjkwLDM1ICsyNjkyLDI4IEBA
IHZvaWQgSklUOjplbWl0X29wX3B1dF90b19zY29wZShjb25zdCBJbnMKICAgICAgICAgbG9hZDMy
RnJvbU1ldGFkYXRhKGJ5dGVjb2RlLCBPcFB1dFRvU2NvcGU6Ok1ldGFkYXRhOjpvZmZzZXRPZkdl
dFB1dEluZm8oKSwgcmVnVDApOwogICAgICAgICBhbmQzMihUcnVzdGVkSW1tMzIoR2V0UHV0SW5m
bzo6dHlwZUJpdHMpLCByZWdUMCk7IC8vIExvYWQgUmVzb2x2ZVR5cGUgaW50byBUMAogCi0gICAg
ICAgIEp1bXAgaXNHbG9iYWxQcm9wZXJ0eSA9IGJyYW5jaDMyKEVxdWFsLCByZWdUMCwgVHJ1c3Rl
ZEltbTMyKEdsb2JhbFByb3BlcnR5KSk7Ci0gICAgICAgIEp1bXAgbm90R2xvYmFsUHJvcGVydHlX
aXRoVmFySW5qZWN0aW9ucyA9IGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMCwgVHJ1c3RlZEltbTMy
KEdsb2JhbFByb3BlcnR5V2l0aFZhckluamVjdGlvbkNoZWNrcykpOwotICAgICAgICBpc0dsb2Jh
bFByb3BlcnR5LmxpbmsodGhpcyk7Ci0gICAgICAgIGVtaXRDb2RlKEdsb2JhbFByb3BlcnR5KTsK
LSAgICAgICAgc2tpcFRvRW5kLmFwcGVuZChqdW1wKCkpOwotICAgICAgICBub3RHbG9iYWxQcm9w
ZXJ0eVdpdGhWYXJJbmplY3Rpb25zLmxpbmsodGhpcyk7Ci0KLSAgICAgICAgSnVtcCBub3RHbG9i
YWxWYXIgPSBicmFuY2gzMihOb3RFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW0zMihHbG9iYWxWYXIp
KTsKLSAgICAgICAgZW1pdENvZGUoR2xvYmFsVmFyKTsKLSAgICAgICAgc2tpcFRvRW5kLmFwcGVu
ZChqdW1wKCkpOwotICAgICAgICBub3RHbG9iYWxWYXIubGluayh0aGlzKTsKKyAgICAgICAgYXV0
byBlbWl0Q2FzZVdpdGhvdXRDaGVjayA9IFsmXSAoUmVzb2x2ZVR5cGUgcmVzb2x2ZVR5cGUpIHsK
KyAgICAgICAgICAgIEp1bXAgbm90Q2FzZSA9IGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMCwgVHJ1
c3RlZEltbTMyKHJlc29sdmVUeXBlKSk7CisgICAgICAgICAgICBlbWl0Q29kZShyZXNvbHZlVHlw
ZSk7CisgICAgICAgICAgICBza2lwVG9FbmQuYXBwZW5kKGp1bXAoKSk7CisgICAgICAgICAgICBu
b3RDYXNlLmxpbmsodGhpcyk7CisgICAgICAgIH07CiAKLSAgICAgICAgSnVtcCBub3RHbG9iYWxW
YXJXaXRoVmFySW5qZWN0aW9uID0gYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QwLCBUcnVzdGVkSW1t
MzIoR2xvYmFsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcykpOwotICAgICAgICBlbWl0Q29kZShH
bG9iYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzKTsKLSAgICAgICAgc2tpcFRvRW5kLmFwcGVu
ZChqdW1wKCkpOwotICAgICAgICBub3RHbG9iYWxWYXJXaXRoVmFySW5qZWN0aW9uLmxpbmsodGhp
cyk7CisgICAgICAgIGF1dG8gZW1pdENhc2UgPSBbJl0gKFJlc29sdmVUeXBlIHJlc29sdmVUeXBl
KSB7CisgICAgICAgICAgICBpZiAocHJvZmlsZWRSZXNvbHZlVHlwZSAhPSByZXNvbHZlVHlwZSkK
KyAgICAgICAgICAgICAgICBlbWl0Q2FzZVdpdGhvdXRDaGVjayhyZXNvbHZlVHlwZSk7CisgICAg
ICAgIH07CiAKLSAgICAgICAgSnVtcCBub3RHbG9iYWxMZXhpY2FsVmFyID0gYnJhbmNoMzIoTm90
RXF1YWwsIHJlZ1QwLCBUcnVzdGVkSW1tMzIoR2xvYmFsTGV4aWNhbFZhcikpOwotICAgICAgICBl
bWl0Q29kZShHbG9iYWxMZXhpY2FsVmFyKTsKLSAgICAgICAgc2tpcFRvRW5kLmFwcGVuZChqdW1w
KCkpOwotICAgICAgICBub3RHbG9iYWxMZXhpY2FsVmFyLmxpbmsodGhpcyk7CisgICAgICAgIGVt
aXRDYXNlV2l0aG91dENoZWNrKHByb2ZpbGVkUmVzb2x2ZVR5cGUpOwogCi0gICAgICAgIEp1bXAg
bm90R2xvYmFsTGV4aWNhbFZhcldpdGhWYXJJbmplY3Rpb25zID0gYnJhbmNoMzIoTm90RXF1YWws
IHJlZ1QwLCBUcnVzdGVkSW1tMzIoR2xvYmFsTGV4aWNhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVj
a3MpKTsKLSAgICAgICAgZW1pdENvZGUoR2xvYmFsTGV4aWNhbFZhcldpdGhWYXJJbmplY3Rpb25D
aGVja3MpOwotICAgICAgICBza2lwVG9FbmQuYXBwZW5kKGp1bXAoKSk7Ci0gICAgICAgIG5vdEds
b2JhbExleGljYWxWYXJXaXRoVmFySW5qZWN0aW9ucy5saW5rKHRoaXMpOworICAgICAgICBlbWl0
Q2FzZShHbG9iYWxWYXIpOworICAgICAgICBlbWl0Q2FzZShHbG9iYWxQcm9wZXJ0eSk7CisgICAg
ICAgIGVtaXRDYXNlKEdsb2JhbExleGljYWxWYXIpOworICAgICAgICBlbWl0Q2FzZShHbG9iYWxW
YXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzKTsKKyAgICAgICAgZW1pdENhc2UoR2xvYmFsUHJvcGVy
dHlXaXRoVmFySW5qZWN0aW9uQ2hlY2tzKTsKKyAgICAgICAgZW1pdENhc2UoR2xvYmFsTGV4aWNh
bFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MpOwogCiAgICAgICAgIGFkZFNsb3dDYXNlKGp1bXAo
KSk7Ci0KICAgICAgICAgc2tpcFRvRW5kLmxpbmsodGhpcyk7CiAgICAgfQogfQo=
</data>
<flag name="commit-queue"
          id="465329"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441241</attachid>
            <date>2021-10-14 11:14:55 -0700</date>
            <delta_ts>2021-10-14 11:27:21 -0700</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>16620</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjg0MTQxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDIxLTEwLTEzICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IE1ha2UgdW5saW5rZWQgQmFzZWxpbmUgSklUIHNjb3BlIG9wZXJhdGlvbnMgYmlhcyB0aGUgb3Jk
ZXIgb2YgY2hlY2tzIHRvIHRoZSBSZXNvbHZlVHlwZSB0aGF0IHByb2ZpbGluZyB0ZWxscyB1cyB3
ZSBhcmUgbGlrZWx5IHRvIGJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzE3MTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGlzIGlzIGEgc21hbGwgdGhyb3VnaG91dCB3aW4gaW4gdGhlIGNvZGUgZ2Vu
ZXJhdGVkIGJ5IHVubGlua2VkIGJhc2VsaW5lIEpJVC4KKworICAgICAgICAqIGppdC9KSVQuaDoK
KyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRfb3BfcmVzb2x2ZV9zY29wZSk6CisgICAgICAgIChKU0M6OkpJVDo6Z2VuZXJhdGVPcFJl
c29sdmVTY29wZVRodW5rKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9mcm9tX3Nj
b3BlKToKKyAgICAgICAgKEpTQzo6SklUOjpnZW5lcmF0ZU9wR2V0RnJvbVNjb3BlVGh1bmspOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X3RvX3Njb3BlKToKKwogMjAyMS0xMC0xMyAg
SmVhbi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAgIENsZWFybHkgZGlz
dGluZ3Vpc2ggc2VyaWFsIGZyb20gY29uY3VycmVudCBXb3JrUXVldWUKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuaAkocmV2aXNpb24gMjgzMTM5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuaAkod29ya2luZyBjb3B5KQpAQCAtNzU1LDggKzc1NSwxMCBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgICAgICBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRy
VGFnPiBzbG93X29wX2dldF9mcm9tX3Njb3BlR2VuZXJhdG9yKFZNJik7CiAgICAgICAgIHN0YXRp
YyBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IHNsb3dfb3BfcmVzb2x2ZV9z
Y29wZUdlbmVyYXRvcihWTSYpOwotICAgICAgICBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
PEpJVFRodW5rUHRyVGFnPiBnZW5lcmF0ZU9wR2V0RnJvbVNjb3BlVGh1bmsoVk0mLCBzdGQ6Om9w
dGlvbmFsPFJlc29sdmVUeXBlPiwgY29uc3QgY2hhciogdGh1bmtOYW1lKTsKLSAgICAgICAgc3Rh
dGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gZ2VuZXJhdGVPcFJlc29s
dmVTY29wZVRodW5rKFZNJiwgc3RkOjpvcHRpb25hbDxSZXNvbHZlVHlwZT4sIGNvbnN0IGNoYXIq
IHRodW5rTmFtZSk7CisgICAgICAgIHRlbXBsYXRlIDxSZXNvbHZlVHlwZT4KKyAgICAgICAgc3Rh
dGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gZ2VuZXJhdGVPcEdldEZy
b21TY29wZVRodW5rKFZNJik7CisgICAgICAgIHRlbXBsYXRlIDxSZXNvbHZlVHlwZT4KKyAgICAg
ICAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gZ2VuZXJhdGVP
cFJlc29sdmVTY29wZVRodW5rKFZNJik7CiAjZW5kaWYgLy8gRU5BQkxFKEVYVFJBX0NUSV9USFVO
S1MpCiAKICAgICAgICAgSnVtcCBnZXRTbG93Q2FzZShWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0
ZXJhdG9yJiBpdGVyKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0
eUFjY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2Vzcy5jcHAJKHJldmlzaW9uIDI4MzEzOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTczLDE4
ICsxOTczLDYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmVzb2x2ZV9zY29wZShjb25zdCBJbgogICAg
IGVsc2UgewogICAgICAgICBwdHJkaWZmX3QgbWV0YWRhdGFPZmZzZXQgPSBtX3VubGlua2VkQ29k
ZUJsb2NrLT5tZXRhZGF0YSgpLm9mZnNldEluTWV0YWRhdGFUYWJsZShieXRlY29kZSk7CiAKLSAg
ICAgICAgYXV0byBjbG9zdXJlVmFyR2VuZXJhdG9yID0gW10gKFZNJiB2bSkgewotICAgICAgICAg
ICAgcmV0dXJuIEpJVDo6Z2VuZXJhdGVPcFJlc29sdmVTY29wZVRodW5rKHZtLCBDbG9zdXJlVmFy
LCAiQmFzZWxpbmU6IG9wX3Jlc29sdmVfc2NvcGUgQ2xvc3VyZVZhciIpOwotICAgICAgICB9Owot
Ci0gICAgICAgIGF1dG8gY2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVja3NHZW5lcmF0b3Ig
PSBbXSAoVk0mIHZtKSB7Ci0gICAgICAgICAgICByZXR1cm4gSklUOjpnZW5lcmF0ZU9wUmVzb2x2
ZVNjb3BlVGh1bmsodm0sIENsb3N1cmVWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzLCAiQmFzZWxp
bmU6IG9wX3Jlc29sdmVfc2NvcGUgQ2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MiKTsK
LSAgICAgICAgfTsKLQotICAgICAgICBhdXRvIGdlbmVyaWNSZXNvbHZlU2NvcGVHZW5lcmF0b3Ig
PSBbXSAoVk0mIHZtKSB7Ci0gICAgICAgICAgICByZXR1cm4gSklUOjpnZW5lcmF0ZU9wUmVzb2x2
ZVNjb3BlVGh1bmsodm0sIHN0ZDo6bnVsbG9wdCwgIkJhc2VsaW5lOiBvcF9yZXNvbHZlX3Njb3Bl
IGdlbmVyaWMiKTsKLSAgICAgICAgfTsKLQogICAgICAgICBjb25zdGV4cHIgR1BSUmVnIG1ldGFk
YXRhR1BSID0gcmVnVDI7CiAgICAgICAgIGNvbnN0ZXhwciBHUFJSZWcgc2NvcGVHUFIgPSByZWdU
MDsKICAgICAgICAgY29uc3RleHByIEdQUlJlZyBieXRlY29kZU9mZnNldEdQUiA9IHJlZ1Q1OwpA
QCAtMTk5NSwxOCArMTk4MywzMiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9yZXNvbHZlX3Njb3BlKGNv
bnN0IEluCiAKICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBj
b2RlOwogICAgICAgICBpZiAocHJvZmlsZWRSZXNvbHZlVHlwZSA9PSBDbG9zdXJlVmFyKQotICAg
ICAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoY2xvc3VyZVZhckdlbmVyYXRvcik7CisgICAg
ICAgICAgICBjb2RlID0gdm0uZ2V0Q1RJU3R1YihnZW5lcmF0ZU9wUmVzb2x2ZVNjb3BlVGh1bms8
Q2xvc3VyZVZhcj4pOwogICAgICAgICBlbHNlIGlmIChwcm9maWxlZFJlc29sdmVUeXBlID09IENs
b3N1cmVWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzKQotICAgICAgICAgICAgY29kZSA9IHZtLmdl
dENUSVN0dWIoY2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVja3NHZW5lcmF0b3IpOworICAg
ICAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoZ2VuZXJhdGVPcFJlc29sdmVTY29wZVRodW5r
PENsb3N1cmVWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzPik7CisgICAgICAgIGVsc2UgaWYgKHBy
b2ZpbGVkUmVzb2x2ZVR5cGUgPT0gR2xvYmFsVmFyKQorICAgICAgICAgICAgY29kZSA9IHZtLmdl
dENUSVN0dWIoZ2VuZXJhdGVPcFJlc29sdmVTY29wZVRodW5rPEdsb2JhbFZhcj4pOworICAgICAg
ICBlbHNlIGlmIChwcm9maWxlZFJlc29sdmVUeXBlID09IEdsb2JhbFByb3BlcnR5KQorICAgICAg
ICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoZ2VuZXJhdGVPcFJlc29sdmVTY29wZVRodW5rPEds
b2JhbFByb3BlcnR5Pik7CisgICAgICAgIGVsc2UgaWYgKHByb2ZpbGVkUmVzb2x2ZVR5cGUgPT0g
R2xvYmFsTGV4aWNhbFZhcikKKyAgICAgICAgICAgIGNvZGUgPSB2bS5nZXRDVElTdHViKGdlbmVy
YXRlT3BSZXNvbHZlU2NvcGVUaHVuazxHbG9iYWxMZXhpY2FsVmFyPik7CisgICAgICAgIGVsc2Ug
aWYgKHByb2ZpbGVkUmVzb2x2ZVR5cGUgPT0gR2xvYmFsVmFyV2l0aFZhckluamVjdGlvbkNoZWNr
cykKKyAgICAgICAgICAgIGNvZGUgPSB2bS5nZXRDVElTdHViKGdlbmVyYXRlT3BSZXNvbHZlU2Nv
cGVUaHVuazxHbG9iYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzPik7CisgICAgICAgIGVsc2Ug
aWYgKHByb2ZpbGVkUmVzb2x2ZVR5cGUgPT0gR2xvYmFsUHJvcGVydHlXaXRoVmFySW5qZWN0aW9u
Q2hlY2tzKQorICAgICAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoZ2VuZXJhdGVPcFJlc29s
dmVTY29wZVRodW5rPEdsb2JhbFByb3BlcnR5V2l0aFZhckluamVjdGlvbkNoZWNrcz4pOworICAg
ICAgICBlbHNlIGlmIChwcm9maWxlZFJlc29sdmVUeXBlID09IEdsb2JhbExleGljYWxWYXJXaXRo
VmFySW5qZWN0aW9uQ2hlY2tzKQorICAgICAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoZ2Vu
ZXJhdGVPcFJlc29sdmVTY29wZVRodW5rPEdsb2JhbExleGljYWxWYXJXaXRoVmFySW5qZWN0aW9u
Q2hlY2tzPik7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvZGUgPSB2bS5nZXRDVElTdHVi
KGdlbmVyaWNSZXNvbHZlU2NvcGVHZW5lcmF0b3IpOworICAgICAgICAgICAgY29kZSA9IHZtLmdl
dENUSVN0dWIoZ2VuZXJhdGVPcFJlc29sdmVTY29wZVRodW5rPEdsb2JhbFZhcj4pOworCiAgICAg
ICAgIGVtaXROYWtlZE5lYXJDYWxsKGNvZGUucmV0YWdnZWRDb2RlPE5vUHRyVGFnPigpKTsKICAg
ICB9CiAKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiB9CiAKLU1hY3JvQXNzZW1i
bGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gSklUOjpnZW5lcmF0ZU9wUmVzb2x2ZVNjb3BlVGh1
bmsoVk0mIHZtLCBzdGQ6Om9wdGlvbmFsPFJlc29sdmVUeXBlPiByZXNvbHZlVHlwZSwgY29uc3Qg
Y2hhciogdGh1bmtOYW1lKQordGVtcGxhdGUgPFJlc29sdmVUeXBlIHByb2ZpbGVkUmVzb2x2ZVR5
cGU+CitNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IEpJVDo6Z2VuZXJhdGVP
cFJlc29sdmVTY29wZVRodW5rKFZNJiB2bSkKIHsKICAgICAvLyBUaGUgdGh1bmsgZ2VuZXJhdGVk
IGJ5IHRoaXMgZnVuY3Rpb24gY2FuIG9ubHkgd29yayB3aXRoIHRoZSBMTEludCAvIEJhc2VsaW5l
IEpJVCBiZWNhdXNlCiAgICAgLy8gaXQgbWFrZXMgYXNzdW1wdGlvbnMgYWJvdXQgdGhlIHJpZ2h0
IGdsb2JhbE9iamVjdCBiZWluZyBhdmFpbGFibGUgZnJvbSBDYWxsRnJhbWU6OmNvZGVCbG9jaygp
LgpAQCAtMjA5NSwyMCArMjA5NywzOCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQ
dHJUYWc+IEpJCiAgICAgICAgIH0KICAgICB9OwogCi0gICAgaWYgKHJlc29sdmVUeXBlKSB7Ci0g
ICAgICAgIFJFTEVBU0VfQVNTRVJUKCpyZXNvbHZlVHlwZSA9PSBDbG9zdXJlVmFyIHx8ICpyZXNv
bHZlVHlwZSA9PSBDbG9zdXJlVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcyk7Ci0gICAgICAgIGVt
aXRDb2RlKCpyZXNvbHZlVHlwZSk7Ci0gICAgfSBlbHNlIHsKKyAgICBpZiAocHJvZmlsZWRSZXNv
bHZlVHlwZSA9PSBDbG9zdXJlVmFyKQorICAgICAgICBlbWl0Q29kZShDbG9zdXJlVmFyKTsKKyAg
ICBlbHNlIGlmIChwcm9maWxlZFJlc29sdmVUeXBlID09IENsb3N1cmVWYXJXaXRoVmFySW5qZWN0
aW9uQ2hlY2tzKQorICAgICAgICBlbWl0Q29kZShDbG9zdXJlVmFyV2l0aFZhckluamVjdGlvbkNo
ZWNrcyk7CisgICAgZWxzZSB7CiAgICAgICAgIEp1bXBMaXN0IHNraXBUb0VuZDsKICAgICAgICAg
aml0LmxvYWQzMihBZGRyZXNzKG1ldGFkYXRhR1BSLCBNZXRhZGF0YTo6b2Zmc2V0T2ZSZXNvbHZl
VHlwZSgpKSwgcmVnVDEpOwogCi0gICAgICAgIGF1dG8gZW1pdENhc2UgPSBbJl0gKFJlc29sdmVU
eXBlIHJlc29sdmVUeXBlKSB7CisgICAgICAgIGF1dG8gZW1pdENhc2VXaXRob3V0Q2hlY2sgPSBb
Jl0gKFJlc29sdmVUeXBlIHJlc29sdmVUeXBlKSB7CiAgICAgICAgICAgICBKdW1wIG5vdENhc2Ug
PSBqaXQuYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QxLCBUcnVzdGVkSW1tMzIocmVzb2x2ZVR5cGUp
KTsKICAgICAgICAgICAgIGVtaXRDb2RlKHJlc29sdmVUeXBlKTsKICAgICAgICAgICAgIHNraXBU
b0VuZC5hcHBlbmQoaml0Lmp1bXAoKSk7CiAgICAgICAgICAgICBub3RDYXNlLmxpbmsoJmppdCk7
CiAgICAgICAgIH07CiAKKyAgICAgICAgYXV0byBlbWl0Q2FzZSA9IFsmXSAoUmVzb2x2ZVR5cGUg
cmVzb2x2ZVR5cGUpIHsKKyAgICAgICAgICAgIGlmIChyZXNvbHZlVHlwZSAhPSBwcm9maWxlZFJl
c29sdmVUeXBlKQorICAgICAgICAgICAgICAgIGVtaXRDYXNlV2l0aG91dENoZWNrKHJlc29sdmVU
eXBlKTsKKyAgICAgICAgfTsKKworICAgICAgICAvLyBDaGVjayB0aGF0IHdlJ3JlIHRoZSBwcm9m
aWxlZCByZXNvbHZlIHR5cGUgZmlyc3QuCisgICAgICAgIHN3aXRjaCAocHJvZmlsZWRSZXNvbHZl
VHlwZSkgeworICAgICAgICBjYXNlIFJlc29sdmVkQ2xvc3VyZVZhcjoKKyAgICAgICAgY2FzZSBN
b2R1bGVWYXI6CisgICAgICAgIGNhc2UgVW5yZXNvbHZlZFByb3BlcnR5OgorICAgICAgICBjYXNl
IFVucmVzb2x2ZWRQcm9wZXJ0eVdpdGhWYXJJbmplY3Rpb25DaGVja3M6CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGVtaXRDYXNlV2l0aG91dENoZWNr
KHByb2ZpbGVkUmVzb2x2ZVR5cGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwog
ICAgICAgICBlbWl0Q2FzZShHbG9iYWxWYXIpOwogICAgICAgICBlbWl0Q2FzZShHbG9iYWxQcm9w
ZXJ0eSk7CiAgICAgICAgIGVtaXRDYXNlKEdsb2JhbExleGljYWxWYXIpOwpAQCAtMjEyNCw3ICsy
MTQ0LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBKSQogCiAgICAg
TGlua0J1ZmZlciBwYXRjaEJ1ZmZlcihqaXQsIEdMT0JBTF9USFVOS19JRCwgTGlua0J1ZmZlcjo6
UHJvZmlsZTo6VGh1bmspOwogICAgIHBhdGNoQnVmZmVyLmxpbmsoc2xvd0Nhc2UsIENvZGVMb2Nh
dGlvbkxhYmVsKHZtLmdldENUSVN0dWIoc2xvd19vcF9yZXNvbHZlX3Njb3BlR2VuZXJhdG9yKS5y
ZXRhZ2dlZENvZGU8Tm9QdHJUYWc+KCkpKTsKLSAgICByZXR1cm4gRklOQUxJWkVfQ09ERShwYXRj
aEJ1ZmZlciwgSklUVGh1bmtQdHJUYWcsIHRodW5rTmFtZSk7CisgICAgcmV0dXJuIEZJTkFMSVpF
X0NPREUocGF0Y2hCdWZmZXIsIEpJVFRodW5rUHRyVGFnLCAicmVzb2x2ZV9zY29wZSB0aHVuayIp
OwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IEpJVDo6c2xvd19v
cF9yZXNvbHZlX3Njb3BlR2VuZXJhdG9yKFZNJiB2bSkKQEAgLTIzNTQsMTggKzIzNzQsNiBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF9nZXRfZnJvbV9zY29wZShjb25zdCBJCiAgICAgQVNTRVJUKEJ5dGVj
b2RlSW5kZXgoYnl0ZWNvZGVPZmZzZXQpID09IG1fYnl0ZWNvZGVJbmRleCk7CiAgICAgQVNTRVJU
KG1fdW5saW5rZWRDb2RlQmxvY2stPmluc3RydWN0aW9uQXQobV9ieXRlY29kZUluZGV4KSA9PSBj
dXJyZW50SW5zdHJ1Y3Rpb24pOwogCi0gICAgYXV0byBjbG9zdXJlVmFyR2VuZXJhdG9yID0gW10g
KFZNJiB2bSkgewotICAgICAgICByZXR1cm4gSklUOjpnZW5lcmF0ZU9wR2V0RnJvbVNjb3BlVGh1
bmsodm0sIENsb3N1cmVWYXIsICJCYXNlbGluZTogb3BfZ2V0X2Zyb21fc2NvcGUgQ2xvc3VyZVZh
ciIpOwotICAgIH07Ci0KLSAgICBhdXRvIGNsb3N1cmVWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tz
R2VuZXJhdG9yID0gW10gKFZNJiB2bSkgewotICAgICAgICByZXR1cm4gSklUOjpnZW5lcmF0ZU9w
R2V0RnJvbVNjb3BlVGh1bmsodm0sIENsb3N1cmVWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzLCAi
QmFzZWxpbmU6IG9wX2dldF9mcm9tX3Njb3BlIENsb3N1cmVWYXIiKTsKLSAgICB9OwotCi0gICAg
YXV0byBnZW5lcmljR2V0RnJvbVNjb3BlR2VuZXJhdG9yID0gW10gKFZNJiB2bSkgewotICAgICAg
ICByZXR1cm4gSklUOjpnZW5lcmF0ZU9wR2V0RnJvbVNjb3BlVGh1bmsodm0sIHN0ZDo6bnVsbG9w
dCwgIkJhc2VsaW5lOiBvcF9nZXRfZnJvbV9zY29wZSBnZW5lcmljIik7Ci0gICAgfTsKLQogICAg
IGNvbnN0ZXhwciBHUFJSZWcgbWV0YWRhdGFHUFIgPSByZWdUNDsKICAgICBjb25zdGV4cHIgR1BS
UmVnIHNjb3BlR1BSID0gcmVnVDI7CiAgICAgY29uc3RleHByIEdQUlJlZyBieXRlY29kZU9mZnNl
dEdQUiA9IHJlZ1Q1OwpAQCAtMjM3OCwxNyArMjM4NiwyOCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9n
ZXRfZnJvbV9zY29wZShjb25zdCBJCiAKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1
bmtQdHJUYWc+IGNvZGU7CiAgICAgaWYgKHByb2ZpbGVkUmVzb2x2ZVR5cGUgPT0gQ2xvc3VyZVZh
cikKLSAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoY2xvc3VyZVZhckdlbmVyYXRvcik7Cisg
ICAgICAgIGNvZGUgPSB2bS5nZXRDVElTdHViKGdlbmVyYXRlT3BHZXRGcm9tU2NvcGVUaHVuazxD
bG9zdXJlVmFyPik7CiAgICAgZWxzZSBpZiAocHJvZmlsZWRSZXNvbHZlVHlwZSA9PSBDbG9zdXJl
VmFyV2l0aFZhckluamVjdGlvbkNoZWNrcykKLSAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIo
Y2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVja3NHZW5lcmF0b3IpOworICAgICAgICBjb2Rl
ID0gdm0uZ2V0Q1RJU3R1YihnZW5lcmF0ZU9wR2V0RnJvbVNjb3BlVGh1bms8Q2xvc3VyZVZhcldp
dGhWYXJJbmplY3Rpb25DaGVja3M+KTsKKyAgICBlbHNlIGlmIChwcm9maWxlZFJlc29sdmVUeXBl
ID09IEdsb2JhbFZhcikKKyAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoZ2VuZXJhdGVPcEdl
dEZyb21TY29wZVRodW5rPEdsb2JhbFZhcj4pOworICAgIGVsc2UgaWYgKHByb2ZpbGVkUmVzb2x2
ZVR5cGUgPT0gR2xvYmFsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcykKKyAgICAgICAgY29kZSA9
IHZtLmdldENUSVN0dWIoZ2VuZXJhdGVPcEdldEZyb21TY29wZVRodW5rPEdsb2JhbFZhcldpdGhW
YXJJbmplY3Rpb25DaGVja3M+KTsKKyAgICBlbHNlIGlmIChwcm9maWxlZFJlc29sdmVUeXBlID09
IEdsb2JhbFByb3BlcnR5KQorICAgICAgICBjb2RlID0gdm0uZ2V0Q1RJU3R1YihnZW5lcmF0ZU9w
R2V0RnJvbVNjb3BlVGh1bms8R2xvYmFsUHJvcGVydHk+KTsKKyAgICBlbHNlIGlmIChwcm9maWxl
ZFJlc29sdmVUeXBlID09IEdsb2JhbExleGljYWxWYXIpCisgICAgICAgIGNvZGUgPSB2bS5nZXRD
VElTdHViKGdlbmVyYXRlT3BHZXRGcm9tU2NvcGVUaHVuazxHbG9iYWxMZXhpY2FsVmFyPik7Cisg
ICAgZWxzZSBpZiAocHJvZmlsZWRSZXNvbHZlVHlwZSA9PSBHbG9iYWxMZXhpY2FsVmFyV2l0aFZh
ckluamVjdGlvbkNoZWNrcykKKyAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoZ2VuZXJhdGVP
cEdldEZyb21TY29wZVRodW5rPEdsb2JhbExleGljYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tz
Pik7CiAgICAgZWxzZQotICAgICAgICBjb2RlID0gdm0uZ2V0Q1RJU3R1YihnZW5lcmljR2V0RnJv
bVNjb3BlR2VuZXJhdG9yKTsKKyAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoZ2VuZXJhdGVP
cEdldEZyb21TY29wZVRodW5rPEdsb2JhbFZhcj4pOwogCiAgICAgZW1pdE5ha2VkTmVhckNhbGwo
Y29kZS5yZXRhZ2dlZENvZGU8Tm9QdHJUYWc+KCkpOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0
ZXIoZHN0KTsKIH0KIAotTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBKSVQ6
OmdlbmVyYXRlT3BHZXRGcm9tU2NvcGVUaHVuayhWTSYgdm0sIHN0ZDo6b3B0aW9uYWw8UmVzb2x2
ZVR5cGU+IHJlc29sdmVUeXBlLCBjb25zdCBjaGFyKiB0aHVua05hbWUpCit0ZW1wbGF0ZSA8UmVz
b2x2ZVR5cGUgcHJvZmlsZWRSZXNvbHZlVHlwZT4KK01hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRU
aHVua1B0clRhZz4gSklUOjpnZW5lcmF0ZU9wR2V0RnJvbVNjb3BlVGh1bmsoVk0mIHZtKQogewog
ICAgIC8vIFRoZSB0aHVuayBnZW5lcmF0ZWQgYnkgdGhpcyBmdW5jdGlvbiBjYW4gb25seSB3b3Jr
IHdpdGggdGhlIExMSW50IC8gQmFzZWxpbmUgSklUIGJlY2F1c2UKICAgICAvLyBpdCBtYWtlcyBh
c3N1bXB0aW9ucyBhYm91dCB0aGUgcmlnaHQgZ2xvYmFsT2JqZWN0IGJlaW5nIGF2YWlsYWJsZSBm
cm9tIENhbGxGcmFtZTo6Y29kZUJsb2NrKCkuCkBAIC0yNDc4LDQzICsyNDk3LDQ0IEBAIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gSkkKICAgICAgICAgfQogICAgIH07CiAK
LSAgICBpZiAocmVzb2x2ZVR5cGUpIHsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoKnJlc29sdmVU
eXBlID09IENsb3N1cmVWYXIgfHwgKnJlc29sdmVUeXBlID09IENsb3N1cmVWYXJXaXRoVmFySW5q
ZWN0aW9uQ2hlY2tzKTsKLSAgICAgICAgZW1pdENvZGUoKnJlc29sdmVUeXBlKTsKLSAgICB9IGVs
c2UgeworICAgIGlmIChwcm9maWxlZFJlc29sdmVUeXBlID09IENsb3N1cmVWYXIgfHwgcHJvZmls
ZWRSZXNvbHZlVHlwZSA9PSBDbG9zdXJlVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcykKKyAgICAg
ICAgZW1pdENvZGUocHJvZmlsZWRSZXNvbHZlVHlwZSk7CisgICAgZWxzZSB7CiAgICAgICAgIEp1
bXBMaXN0IHNraXBUb0VuZDsKICAgICAgICAgaml0LmxvYWQzMihBZGRyZXNzKG1ldGFkYXRhR1BS
LCBNZXRhZGF0YTo6b2Zmc2V0T2ZHZXRQdXRJbmZvKCkpLCByZWdUMCk7CiAgICAgICAgIGppdC5h
bmQzMihUcnVzdGVkSW1tMzIoR2V0UHV0SW5mbzo6dHlwZUJpdHMpLCByZWdUMCk7IC8vIExvYWQg
UmVzb2x2ZVR5cGUgaW50byBUMAogCi0gICAgICAgIEp1bXAgbm90R2xvYmFsVmFyID0gaml0LmJy
YW5jaDMyKE5vdEVxdWFsLCByZWdUMCwgVHJ1c3RlZEltbTMyKEdsb2JhbFZhcikpOwotICAgICAg
ICBlbWl0Q29kZShHbG9iYWxWYXIpOwotICAgICAgICBza2lwVG9FbmQuYXBwZW5kKGppdC5qdW1w
KCkpOwotICAgICAgICBub3RHbG9iYWxWYXIubGluaygmaml0KTsKLQotICAgICAgICBKdW1wIG5v
dEdsb2JhbFZhcldpdGhWYXJJbmplY3Rpb24gPSBqaXQuYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1Qw
LCBUcnVzdGVkSW1tMzIoR2xvYmFsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcykpOwotICAgICAg
ICBlbWl0Q29kZShHbG9iYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzKTsKLSAgICAgICAgc2tp
cFRvRW5kLmFwcGVuZChqaXQuanVtcCgpKTsKLSAgICAgICAgbm90R2xvYmFsVmFyV2l0aFZhcklu
amVjdGlvbi5saW5rKCZqaXQpOworICAgICAgICBhdXRvIGVtaXRDYXNlV2l0aG91dENoZWNrID0g
WyZdIChSZXNvbHZlVHlwZSByZXNvbHZlVHlwZSkgeworICAgICAgICAgICAgSnVtcCBub3RDYXNl
ID0gaml0LmJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMCwgVHJ1c3RlZEltbTMyKHJlc29sdmVUeXBl
KSk7CisgICAgICAgICAgICBlbWl0Q29kZShyZXNvbHZlVHlwZSk7CisgICAgICAgICAgICBza2lw
VG9FbmQuYXBwZW5kKGppdC5qdW1wKCkpOworICAgICAgICAgICAgbm90Q2FzZS5saW5rKCZqaXQp
OworICAgICAgICB9OwogCi0gICAgICAgIEp1bXAgaXNHbG9iYWxQcm9wZXJ0eSA9IGppdC5icmFu
Y2gzMihFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW0zMihHbG9iYWxQcm9wZXJ0eSkpOwotICAgICAg
ICBKdW1wIG5vdEdsb2JhbFByb3BlcnR5V2l0aFZhckluamVjdGlvbnMgPSBqaXQuYnJhbmNoMzIo
Tm90RXF1YWwsIHJlZ1QwLCBUcnVzdGVkSW1tMzIoR2xvYmFsUHJvcGVydHlXaXRoVmFySW5qZWN0
aW9uQ2hlY2tzKSk7Ci0gICAgICAgIGlzR2xvYmFsUHJvcGVydHkubGluaygmaml0KTsKLSAgICAg
ICAgZW1pdENvZGUoR2xvYmFsUHJvcGVydHkpOwotICAgICAgICBza2lwVG9FbmQuYXBwZW5kKGpp
dC5qdW1wKCkpOwotICAgICAgICBub3RHbG9iYWxQcm9wZXJ0eVdpdGhWYXJJbmplY3Rpb25zLmxp
bmsoJmppdCk7CisgICAgICAgIGF1dG8gZW1pdENhc2UgPSBbJl0gKFJlc29sdmVUeXBlIHJlc29s
dmVUeXBlKSB7CisgICAgICAgICAgICBpZiAocHJvZmlsZWRSZXNvbHZlVHlwZSAhPSByZXNvbHZl
VHlwZSkKKyAgICAgICAgICAgICAgICBlbWl0Q2FzZVdpdGhvdXRDaGVjayhyZXNvbHZlVHlwZSk7
CisgICAgICAgIH07CiAKLSAgICAgICAgSnVtcCBub3RHbG9iYWxMZXhpY2FsVmFyID0gaml0LmJy
YW5jaDMyKE5vdEVxdWFsLCByZWdUMCwgVHJ1c3RlZEltbTMyKEdsb2JhbExleGljYWxWYXIpKTsK
LSAgICAgICAgZW1pdENvZGUoR2xvYmFsTGV4aWNhbFZhcik7Ci0gICAgICAgIHNraXBUb0VuZC5h
cHBlbmQoaml0Lmp1bXAoKSk7Ci0gICAgICAgIG5vdEdsb2JhbExleGljYWxWYXIubGluaygmaml0
KTsKKyAgICAgICAgc3dpdGNoIChwcm9maWxlZFJlc29sdmVUeXBlKSB7CisgICAgICAgIGNhc2Ug
UmVzb2x2ZWRDbG9zdXJlVmFyOgorICAgICAgICBjYXNlIE1vZHVsZVZhcjoKKyAgICAgICAgY2Fz
ZSBVbnJlc29sdmVkUHJvcGVydHk6CisgICAgICAgIGNhc2UgVW5yZXNvbHZlZFByb3BlcnR5V2l0
aFZhckluamVjdGlvbkNoZWNrczoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgZW1pdENhc2VXaXRob3V0Q2hlY2socHJvZmlsZWRSZXNvbHZlVHlwZSk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogCi0gICAgICAgIEp1bXAgbm90R2xvYmFs
TGV4aWNhbFZhcldpdGhWYXJJbmplY3Rpb25zID0gaml0LmJyYW5jaDMyKE5vdEVxdWFsLCByZWdU
MCwgVHJ1c3RlZEltbTMyKEdsb2JhbExleGljYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzKSk7
Ci0gICAgICAgIGVtaXRDb2RlKEdsb2JhbExleGljYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tz
KTsKLSAgICAgICAgc2tpcFRvRW5kLmFwcGVuZChqaXQuanVtcCgpKTsKLSAgICAgICAgbm90R2xv
YmFsTGV4aWNhbFZhcldpdGhWYXJJbmplY3Rpb25zLmxpbmsoJmppdCk7CisgICAgICAgIGVtaXRD
YXNlKEdsb2JhbFZhcik7CisgICAgICAgIGVtaXRDYXNlKEdsb2JhbFByb3BlcnR5KTsKKyAgICAg
ICAgZW1pdENhc2UoR2xvYmFsTGV4aWNhbFZhcik7CisgICAgICAgIGVtaXRDYXNlKEdsb2JhbFZh
cldpdGhWYXJJbmplY3Rpb25DaGVja3MpOworICAgICAgICBlbWl0Q2FzZShHbG9iYWxQcm9wZXJ0
eVdpdGhWYXJJbmplY3Rpb25DaGVja3MpOworICAgICAgICBlbWl0Q2FzZShHbG9iYWxMZXhpY2Fs
VmFyV2l0aFZhckluamVjdGlvbkNoZWNrcyk7CiAKICAgICAgICAgc2xvd0Nhc2UuYXBwZW5kKGpp
dC5qdW1wKCkpOwotCiAgICAgICAgIHNraXBUb0VuZC5saW5rKCZqaXQpOwogICAgIH0KIApAQCAt
MjUyNSw3ICsyNTQ1LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBK
SQogCiAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcihqaXQsIEdMT0JBTF9USFVOS19JRCwgTGlu
a0J1ZmZlcjo6UHJvZmlsZTo6VGh1bmspOwogICAgIHBhdGNoQnVmZmVyLmxpbmsoc2xvd0Nhc2Us
IENvZGVMb2NhdGlvbkxhYmVsKHZtLmdldENUSVN0dWIoc2xvd19vcF9nZXRfZnJvbV9zY29wZUdl
bmVyYXRvcikucmV0YWdnZWRDb2RlPE5vUHRyVGFnPigpKSk7Ci0gICAgcmV0dXJuIEZJTkFMSVpF
X0NPREUocGF0Y2hCdWZmZXIsIEpJVFRodW5rUHRyVGFnLCB0aHVua05hbWUpOworICAgIHJldHVy
biBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCBKSVRUaHVua1B0clRhZywgImdldF9mcm9tX3Nj
b3BlIHRodW5rIik7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4g
SklUOjpzbG93X29wX2dldF9mcm9tX3Njb3BlR2VuZXJhdG9yKFZNJiB2bSkKQEAgLTI2OTAsMzUg
KzI3MTAsMzUgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X3RvX3Njb3BlKGNvbnN0IElucwogICAg
ICAgICBsb2FkMzJGcm9tTWV0YWRhdGEoYnl0ZWNvZGUsIE9wUHV0VG9TY29wZTo6TWV0YWRhdGE6
Om9mZnNldE9mR2V0UHV0SW5mbygpLCByZWdUMCk7CiAgICAgICAgIGFuZDMyKFRydXN0ZWRJbW0z
MihHZXRQdXRJbmZvOjp0eXBlQml0cyksIHJlZ1QwKTsgLy8gTG9hZCBSZXNvbHZlVHlwZSBpbnRv
IFQwCiAKLSAgICAgICAgSnVtcCBpc0dsb2JhbFByb3BlcnR5ID0gYnJhbmNoMzIoRXF1YWwsIHJl
Z1QwLCBUcnVzdGVkSW1tMzIoR2xvYmFsUHJvcGVydHkpKTsKLSAgICAgICAgSnVtcCBub3RHbG9i
YWxQcm9wZXJ0eVdpdGhWYXJJbmplY3Rpb25zID0gYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QwLCBU
cnVzdGVkSW1tMzIoR2xvYmFsUHJvcGVydHlXaXRoVmFySW5qZWN0aW9uQ2hlY2tzKSk7Ci0gICAg
ICAgIGlzR2xvYmFsUHJvcGVydHkubGluayh0aGlzKTsKLSAgICAgICAgZW1pdENvZGUoR2xvYmFs
UHJvcGVydHkpOwotICAgICAgICBza2lwVG9FbmQuYXBwZW5kKGp1bXAoKSk7Ci0gICAgICAgIG5v
dEdsb2JhbFByb3BlcnR5V2l0aFZhckluamVjdGlvbnMubGluayh0aGlzKTsKLQotICAgICAgICBK
dW1wIG5vdEdsb2JhbFZhciA9IGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMCwgVHJ1c3RlZEltbTMy
KEdsb2JhbFZhcikpOwotICAgICAgICBlbWl0Q29kZShHbG9iYWxWYXIpOwotICAgICAgICBza2lw
VG9FbmQuYXBwZW5kKGp1bXAoKSk7Ci0gICAgICAgIG5vdEdsb2JhbFZhci5saW5rKHRoaXMpOwor
ICAgICAgICBhdXRvIGVtaXRDYXNlV2l0aG91dENoZWNrID0gWyZdIChSZXNvbHZlVHlwZSByZXNv
bHZlVHlwZSkgeworICAgICAgICAgICAgSnVtcCBub3RDYXNlID0gYnJhbmNoMzIoTm90RXF1YWws
IHJlZ1QwLCBUcnVzdGVkSW1tMzIocmVzb2x2ZVR5cGUpKTsKKyAgICAgICAgICAgIGVtaXRDb2Rl
KHJlc29sdmVUeXBlKTsKKyAgICAgICAgICAgIHNraXBUb0VuZC5hcHBlbmQoanVtcCgpKTsKKyAg
ICAgICAgICAgIG5vdENhc2UubGluayh0aGlzKTsKKyAgICAgICAgfTsKIAotICAgICAgICBKdW1w
IG5vdEdsb2JhbFZhcldpdGhWYXJJbmplY3Rpb24gPSBicmFuY2gzMihOb3RFcXVhbCwgcmVnVDAs
IFRydXN0ZWRJbW0zMihHbG9iYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzKSk7Ci0gICAgICAg
IGVtaXRDb2RlKEdsb2JhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MpOwotICAgICAgICBza2lw
VG9FbmQuYXBwZW5kKGp1bXAoKSk7Ci0gICAgICAgIG5vdEdsb2JhbFZhcldpdGhWYXJJbmplY3Rp
b24ubGluayh0aGlzKTsKKyAgICAgICAgYXV0byBlbWl0Q2FzZSA9IFsmXSAoUmVzb2x2ZVR5cGUg
cmVzb2x2ZVR5cGUpIHsKKyAgICAgICAgICAgIGlmIChwcm9maWxlZFJlc29sdmVUeXBlICE9IHJl
c29sdmVUeXBlKQorICAgICAgICAgICAgICAgIGVtaXRDYXNlV2l0aG91dENoZWNrKHJlc29sdmVU
eXBlKTsKKyAgICAgICAgfTsKIAotICAgICAgICBKdW1wIG5vdEdsb2JhbExleGljYWxWYXIgPSBi
cmFuY2gzMihOb3RFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW0zMihHbG9iYWxMZXhpY2FsVmFyKSk7
Ci0gICAgICAgIGVtaXRDb2RlKEdsb2JhbExleGljYWxWYXIpOwotICAgICAgICBza2lwVG9FbmQu
YXBwZW5kKGp1bXAoKSk7Ci0gICAgICAgIG5vdEdsb2JhbExleGljYWxWYXIubGluayh0aGlzKTsK
KyAgICAgICAgc3dpdGNoIChwcm9maWxlZFJlc29sdmVUeXBlKSB7CisgICAgICAgIGNhc2UgVW5y
ZXNvbHZlZFByb3BlcnR5OgorICAgICAgICBjYXNlIFVucmVzb2x2ZWRQcm9wZXJ0eVdpdGhWYXJJ
bmplY3Rpb25DaGVja3M6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIGVtaXRDYXNlV2l0aG91dENoZWNrKHByb2ZpbGVkUmVzb2x2ZVR5cGUpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KIAotICAgICAgICBKdW1wIG5vdEdsb2JhbExleGlj
YWxWYXJXaXRoVmFySW5qZWN0aW9ucyA9IGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMCwgVHJ1c3Rl
ZEltbTMyKEdsb2JhbExleGljYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzKSk7Ci0gICAgICAg
IGVtaXRDb2RlKEdsb2JhbExleGljYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzKTsKLSAgICAg
ICAgc2tpcFRvRW5kLmFwcGVuZChqdW1wKCkpOwotICAgICAgICBub3RHbG9iYWxMZXhpY2FsVmFy
V2l0aFZhckluamVjdGlvbnMubGluayh0aGlzKTsKKyAgICAgICAgZW1pdENhc2UoR2xvYmFsVmFy
KTsKKyAgICAgICAgZW1pdENhc2UoR2xvYmFsUHJvcGVydHkpOworICAgICAgICBlbWl0Q2FzZShH
bG9iYWxMZXhpY2FsVmFyKTsKKyAgICAgICAgZW1pdENhc2UoR2xvYmFsVmFyV2l0aFZhckluamVj
dGlvbkNoZWNrcyk7CisgICAgICAgIGVtaXRDYXNlKEdsb2JhbFByb3BlcnR5V2l0aFZhckluamVj
dGlvbkNoZWNrcyk7CisgICAgICAgIGVtaXRDYXNlKEdsb2JhbExleGljYWxWYXJXaXRoVmFySW5q
ZWN0aW9uQ2hlY2tzKTsKIAogICAgICAgICBhZGRTbG93Q2FzZShqdW1wKCkpOwotCiAgICAgICAg
IHNraXBUb0VuZC5saW5rKHRoaXMpOwogICAgIH0KIH0K
</data>
<flag name="commit-queue"
          id="465429"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441246</attachid>
            <date>2021-10-14 11:27:21 -0700</date>
            <delta_ts>2021-10-14 11:48:50 -0700</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>16975</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjg0MTQxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDIxLTEwLTEzICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IE1ha2UgdW5saW5rZWQgQmFzZWxpbmUgSklUIHNjb3BlIG9wZXJhdGlvbnMgYmlhcyB0aGUgb3Jk
ZXIgb2YgY2hlY2tzIHRvIHRoZSBSZXNvbHZlVHlwZSB0aGF0IHByb2ZpbGluZyB0ZWxscyB1cyB3
ZSBhcmUgbGlrZWx5IHRvIGJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzE3MTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGlzIGlzIGEgc21hbGwgdGhyb3VnaG91dCB3aW4gaW4gdGhlIGNvZGUgZ2Vu
ZXJhdGVkIGJ5IHVubGlua2VkIGJhc2VsaW5lIEpJVC4KKworICAgICAgICAqIGppdC9KSVQuaDoK
KyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRfb3BfcmVzb2x2ZV9zY29wZSk6CisgICAgICAgIChKU0M6OkpJVDo6Z2VuZXJhdGVPcFJl
c29sdmVTY29wZVRodW5rKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9mcm9tX3Nj
b3BlKToKKyAgICAgICAgKEpTQzo6SklUOjpnZW5lcmF0ZU9wR2V0RnJvbVNjb3BlVGh1bmspOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X3RvX3Njb3BlKToKKwogMjAyMS0xMC0xMyAg
SmVhbi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAgIENsZWFybHkgZGlz
dGluZ3Vpc2ggc2VyaWFsIGZyb20gY29uY3VycmVudCBXb3JrUXVldWUKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuaAkocmV2aXNpb24gMjgzMTM5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuaAkod29ya2luZyBjb3B5KQpAQCAtNzU1LDggKzc1NSwxMCBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgICAgICBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRy
VGFnPiBzbG93X29wX2dldF9mcm9tX3Njb3BlR2VuZXJhdG9yKFZNJik7CiAgICAgICAgIHN0YXRp
YyBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IHNsb3dfb3BfcmVzb2x2ZV9z
Y29wZUdlbmVyYXRvcihWTSYpOwotICAgICAgICBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
PEpJVFRodW5rUHRyVGFnPiBnZW5lcmF0ZU9wR2V0RnJvbVNjb3BlVGh1bmsoVk0mLCBzdGQ6Om9w
dGlvbmFsPFJlc29sdmVUeXBlPiwgY29uc3QgY2hhciogdGh1bmtOYW1lKTsKLSAgICAgICAgc3Rh
dGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gZ2VuZXJhdGVPcFJlc29s
dmVTY29wZVRodW5rKFZNJiwgc3RkOjpvcHRpb25hbDxSZXNvbHZlVHlwZT4sIGNvbnN0IGNoYXIq
IHRodW5rTmFtZSk7CisgICAgICAgIHRlbXBsYXRlIDxSZXNvbHZlVHlwZT4KKyAgICAgICAgc3Rh
dGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gZ2VuZXJhdGVPcEdldEZy
b21TY29wZVRodW5rKFZNJik7CisgICAgICAgIHRlbXBsYXRlIDxSZXNvbHZlVHlwZT4KKyAgICAg
ICAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gZ2VuZXJhdGVP
cFJlc29sdmVTY29wZVRodW5rKFZNJik7CiAjZW5kaWYgLy8gRU5BQkxFKEVYVFJBX0NUSV9USFVO
S1MpCiAKICAgICAgICAgSnVtcCBnZXRTbG93Q2FzZShWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0
ZXJhdG9yJiBpdGVyKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0
eUFjY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2Vzcy5jcHAJKHJldmlzaW9uIDI4MzEzOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTczLDE4
ICsxOTczLDYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmVzb2x2ZV9zY29wZShjb25zdCBJbgogICAg
IGVsc2UgewogICAgICAgICBwdHJkaWZmX3QgbWV0YWRhdGFPZmZzZXQgPSBtX3VubGlua2VkQ29k
ZUJsb2NrLT5tZXRhZGF0YSgpLm9mZnNldEluTWV0YWRhdGFUYWJsZShieXRlY29kZSk7CiAKLSAg
ICAgICAgYXV0byBjbG9zdXJlVmFyR2VuZXJhdG9yID0gW10gKFZNJiB2bSkgewotICAgICAgICAg
ICAgcmV0dXJuIEpJVDo6Z2VuZXJhdGVPcFJlc29sdmVTY29wZVRodW5rKHZtLCBDbG9zdXJlVmFy
LCAiQmFzZWxpbmU6IG9wX3Jlc29sdmVfc2NvcGUgQ2xvc3VyZVZhciIpOwotICAgICAgICB9Owot
Ci0gICAgICAgIGF1dG8gY2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVja3NHZW5lcmF0b3Ig
PSBbXSAoVk0mIHZtKSB7Ci0gICAgICAgICAgICByZXR1cm4gSklUOjpnZW5lcmF0ZU9wUmVzb2x2
ZVNjb3BlVGh1bmsodm0sIENsb3N1cmVWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzLCAiQmFzZWxp
bmU6IG9wX3Jlc29sdmVfc2NvcGUgQ2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MiKTsK
LSAgICAgICAgfTsKLQotICAgICAgICBhdXRvIGdlbmVyaWNSZXNvbHZlU2NvcGVHZW5lcmF0b3Ig
PSBbXSAoVk0mIHZtKSB7Ci0gICAgICAgICAgICByZXR1cm4gSklUOjpnZW5lcmF0ZU9wUmVzb2x2
ZVNjb3BlVGh1bmsodm0sIHN0ZDo6bnVsbG9wdCwgIkJhc2VsaW5lOiBvcF9yZXNvbHZlX3Njb3Bl
IGdlbmVyaWMiKTsKLSAgICAgICAgfTsKLQogICAgICAgICBjb25zdGV4cHIgR1BSUmVnIG1ldGFk
YXRhR1BSID0gcmVnVDI7CiAgICAgICAgIGNvbnN0ZXhwciBHUFJSZWcgc2NvcGVHUFIgPSByZWdU
MDsKICAgICAgICAgY29uc3RleHByIEdQUlJlZyBieXRlY29kZU9mZnNldEdQUiA9IHJlZ1Q1OwpA
QCAtMTk5NSwxOCArMTk4MywzMiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9yZXNvbHZlX3Njb3BlKGNv
bnN0IEluCiAKICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBj
b2RlOwogICAgICAgICBpZiAocHJvZmlsZWRSZXNvbHZlVHlwZSA9PSBDbG9zdXJlVmFyKQotICAg
ICAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoY2xvc3VyZVZhckdlbmVyYXRvcik7CisgICAg
ICAgICAgICBjb2RlID0gdm0uZ2V0Q1RJU3R1YihnZW5lcmF0ZU9wUmVzb2x2ZVNjb3BlVGh1bms8
Q2xvc3VyZVZhcj4pOwogICAgICAgICBlbHNlIGlmIChwcm9maWxlZFJlc29sdmVUeXBlID09IENs
b3N1cmVWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzKQotICAgICAgICAgICAgY29kZSA9IHZtLmdl
dENUSVN0dWIoY2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVja3NHZW5lcmF0b3IpOworICAg
ICAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoZ2VuZXJhdGVPcFJlc29sdmVTY29wZVRodW5r
PENsb3N1cmVWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzPik7CisgICAgICAgIGVsc2UgaWYgKHBy
b2ZpbGVkUmVzb2x2ZVR5cGUgPT0gR2xvYmFsVmFyKQorICAgICAgICAgICAgY29kZSA9IHZtLmdl
dENUSVN0dWIoZ2VuZXJhdGVPcFJlc29sdmVTY29wZVRodW5rPEdsb2JhbFZhcj4pOworICAgICAg
ICBlbHNlIGlmIChwcm9maWxlZFJlc29sdmVUeXBlID09IEdsb2JhbFByb3BlcnR5KQorICAgICAg
ICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoZ2VuZXJhdGVPcFJlc29sdmVTY29wZVRodW5rPEds
b2JhbFByb3BlcnR5Pik7CisgICAgICAgIGVsc2UgaWYgKHByb2ZpbGVkUmVzb2x2ZVR5cGUgPT0g
R2xvYmFsTGV4aWNhbFZhcikKKyAgICAgICAgICAgIGNvZGUgPSB2bS5nZXRDVElTdHViKGdlbmVy
YXRlT3BSZXNvbHZlU2NvcGVUaHVuazxHbG9iYWxMZXhpY2FsVmFyPik7CisgICAgICAgIGVsc2Ug
aWYgKHByb2ZpbGVkUmVzb2x2ZVR5cGUgPT0gR2xvYmFsVmFyV2l0aFZhckluamVjdGlvbkNoZWNr
cykKKyAgICAgICAgICAgIGNvZGUgPSB2bS5nZXRDVElTdHViKGdlbmVyYXRlT3BSZXNvbHZlU2Nv
cGVUaHVuazxHbG9iYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzPik7CisgICAgICAgIGVsc2Ug
aWYgKHByb2ZpbGVkUmVzb2x2ZVR5cGUgPT0gR2xvYmFsUHJvcGVydHlXaXRoVmFySW5qZWN0aW9u
Q2hlY2tzKQorICAgICAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoZ2VuZXJhdGVPcFJlc29s
dmVTY29wZVRodW5rPEdsb2JhbFByb3BlcnR5V2l0aFZhckluamVjdGlvbkNoZWNrcz4pOworICAg
ICAgICBlbHNlIGlmIChwcm9maWxlZFJlc29sdmVUeXBlID09IEdsb2JhbExleGljYWxWYXJXaXRo
VmFySW5qZWN0aW9uQ2hlY2tzKQorICAgICAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoZ2Vu
ZXJhdGVPcFJlc29sdmVTY29wZVRodW5rPEdsb2JhbExleGljYWxWYXJXaXRoVmFySW5qZWN0aW9u
Q2hlY2tzPik7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvZGUgPSB2bS5nZXRDVElTdHVi
KGdlbmVyaWNSZXNvbHZlU2NvcGVHZW5lcmF0b3IpOworICAgICAgICAgICAgY29kZSA9IHZtLmdl
dENUSVN0dWIoZ2VuZXJhdGVPcFJlc29sdmVTY29wZVRodW5rPEdsb2JhbFZhcj4pOworCiAgICAg
ICAgIGVtaXROYWtlZE5lYXJDYWxsKGNvZGUucmV0YWdnZWRDb2RlPE5vUHRyVGFnPigpKTsKICAg
ICB9CiAKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiB9CiAKLU1hY3JvQXNzZW1i
bGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gSklUOjpnZW5lcmF0ZU9wUmVzb2x2ZVNjb3BlVGh1
bmsoVk0mIHZtLCBzdGQ6Om9wdGlvbmFsPFJlc29sdmVUeXBlPiByZXNvbHZlVHlwZSwgY29uc3Qg
Y2hhciogdGh1bmtOYW1lKQordGVtcGxhdGUgPFJlc29sdmVUeXBlIHByb2ZpbGVkUmVzb2x2ZVR5
cGU+CitNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IEpJVDo6Z2VuZXJhdGVP
cFJlc29sdmVTY29wZVRodW5rKFZNJiB2bSkKIHsKICAgICAvLyBUaGUgdGh1bmsgZ2VuZXJhdGVk
IGJ5IHRoaXMgZnVuY3Rpb24gY2FuIG9ubHkgd29yayB3aXRoIHRoZSBMTEludCAvIEJhc2VsaW5l
IEpJVCBiZWNhdXNlCiAgICAgLy8gaXQgbWFrZXMgYXNzdW1wdGlvbnMgYWJvdXQgdGhlIHJpZ2h0
IGdsb2JhbE9iamVjdCBiZWluZyBhdmFpbGFibGUgZnJvbSBDYWxsRnJhbWU6OmNvZGVCbG9jaygp
LgpAQCAtMjA0Myw3ICsyMDQ1LDYgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRy
VGFnPiBKSQogCiAgICAgYXV0byBlbWl0UmVzb2x2ZUNsb3N1cmUgPSBbJl0gKGJvb2wgbmVlZHNW
YXJJbmplY3Rpb25DaGVja3MpIHsKICAgICAgICAgZG9WYXJJbmplY3Rpb25DaGVjayhuZWVkc1Zh
ckluamVjdGlvbkNoZWNrcyk7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc2NvcGVHUFIgPT0gcmVn
VDApOwogICAgICAgICBqaXQubG9hZDMyKEFkZHJlc3MobWV0YWRhdGFHUFIsIE1ldGFkYXRhOjpv
ZmZzZXRPZkxvY2FsU2NvcGVEZXB0aCgpKSwgcmVnVDEpOwogCiAgICAgICAgIExhYmVsIGxvb3Ag
PSBqaXQubGFiZWwoKTsKQEAgLTIwOTUsMjAgKzIwOTYsMzggQEAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmPEpJVFRodW5rUHRyVGFnPiBKSQogICAgICAgICB9CiAgICAgfTsKIAotICAgIGlmIChyZXNv
bHZlVHlwZSkgewotICAgICAgICBSRUxFQVNFX0FTU0VSVCgqcmVzb2x2ZVR5cGUgPT0gQ2xvc3Vy
ZVZhciB8fCAqcmVzb2x2ZVR5cGUgPT0gQ2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVja3Mp
OwotICAgICAgICBlbWl0Q29kZSgqcmVzb2x2ZVR5cGUpOwotICAgIH0gZWxzZSB7CisgICAgaWYg
KHByb2ZpbGVkUmVzb2x2ZVR5cGUgPT0gQ2xvc3VyZVZhcikKKyAgICAgICAgZW1pdENvZGUoQ2xv
c3VyZVZhcik7CisgICAgZWxzZSBpZiAocHJvZmlsZWRSZXNvbHZlVHlwZSA9PSBDbG9zdXJlVmFy
V2l0aFZhckluamVjdGlvbkNoZWNrcykKKyAgICAgICAgZW1pdENvZGUoQ2xvc3VyZVZhcldpdGhW
YXJJbmplY3Rpb25DaGVja3MpOworICAgIGVsc2UgewogICAgICAgICBKdW1wTGlzdCBza2lwVG9F
bmQ7CiAgICAgICAgIGppdC5sb2FkMzIoQWRkcmVzcyhtZXRhZGF0YUdQUiwgTWV0YWRhdGE6Om9m
ZnNldE9mUmVzb2x2ZVR5cGUoKSksIHJlZ1QxKTsKIAotICAgICAgICBhdXRvIGVtaXRDYXNlID0g
WyZdIChSZXNvbHZlVHlwZSByZXNvbHZlVHlwZSkgeworICAgICAgICBhdXRvIGVtaXRDYXNlV2l0
aG91dENoZWNrID0gWyZdIChSZXNvbHZlVHlwZSByZXNvbHZlVHlwZSkgewogICAgICAgICAgICAg
SnVtcCBub3RDYXNlID0gaml0LmJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMSwgVHJ1c3RlZEltbTMy
KHJlc29sdmVUeXBlKSk7CiAgICAgICAgICAgICBlbWl0Q29kZShyZXNvbHZlVHlwZSk7CiAgICAg
ICAgICAgICBza2lwVG9FbmQuYXBwZW5kKGppdC5qdW1wKCkpOwogICAgICAgICAgICAgbm90Q2Fz
ZS5saW5rKCZqaXQpOwogICAgICAgICB9OwogCisgICAgICAgIGF1dG8gZW1pdENhc2UgPSBbJl0g
KFJlc29sdmVUeXBlIHJlc29sdmVUeXBlKSB7CisgICAgICAgICAgICBpZiAocmVzb2x2ZVR5cGUg
IT0gcHJvZmlsZWRSZXNvbHZlVHlwZSkKKyAgICAgICAgICAgICAgICBlbWl0Q2FzZVdpdGhvdXRD
aGVjayhyZXNvbHZlVHlwZSk7CisgICAgICAgIH07CisKKyAgICAgICAgLy8gQ2hlY2sgdGhhdCB3
ZSdyZSB0aGUgcHJvZmlsZWQgcmVzb2x2ZSB0eXBlIGZpcnN0LgorICAgICAgICBzd2l0Y2ggKHBy
b2ZpbGVkUmVzb2x2ZVR5cGUpIHsKKyAgICAgICAgY2FzZSBSZXNvbHZlZENsb3N1cmVWYXI6Cisg
ICAgICAgIGNhc2UgTW9kdWxlVmFyOgorICAgICAgICBjYXNlIFVucmVzb2x2ZWRQcm9wZXJ0eToK
KyAgICAgICAgY2FzZSBVbnJlc29sdmVkUHJvcGVydHlXaXRoVmFySW5qZWN0aW9uQ2hlY2tzOgor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBlbWl0Q2Fz
ZVdpdGhvdXRDaGVjayhwcm9maWxlZFJlc29sdmVUeXBlKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisKICAgICAgICAgZW1pdENhc2UoR2xvYmFsVmFyKTsKICAgICAgICAgZW1pdENh
c2UoR2xvYmFsUHJvcGVydHkpOwogICAgICAgICBlbWl0Q2FzZShHbG9iYWxMZXhpY2FsVmFyKTsK
QEAgLTIxMjQsNyArMjE0Myw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRh
Zz4gSkkKIAogICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoaml0LCBHTE9CQUxfVEhVTktfSUQs
IExpbmtCdWZmZXI6OlByb2ZpbGU6OlRodW5rKTsKICAgICBwYXRjaEJ1ZmZlci5saW5rKHNsb3dD
YXNlLCBDb2RlTG9jYXRpb25MYWJlbCh2bS5nZXRDVElTdHViKHNsb3dfb3BfcmVzb2x2ZV9zY29w
ZUdlbmVyYXRvcikucmV0YWdnZWRDb2RlPE5vUHRyVGFnPigpKSk7Ci0gICAgcmV0dXJuIEZJTkFM
SVpFX0NPREUocGF0Y2hCdWZmZXIsIEpJVFRodW5rUHRyVGFnLCB0aHVua05hbWUpOworICAgIHJl
dHVybiBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCBKSVRUaHVua1B0clRhZywgInJlc29sdmVf
c2NvcGUgdGh1bmsiKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFn
PiBKSVQ6OnNsb3dfb3BfcmVzb2x2ZV9zY29wZUdlbmVyYXRvcihWTSYgdm0pCkBAIC0yMzU0LDE4
ICsyMzczLDYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2Zyb21fc2NvcGUoY29uc3QgSQogICAg
IEFTU0VSVChCeXRlY29kZUluZGV4KGJ5dGVjb2RlT2Zmc2V0KSA9PSBtX2J5dGVjb2RlSW5kZXgp
OwogICAgIEFTU0VSVChtX3VubGlua2VkQ29kZUJsb2NrLT5pbnN0cnVjdGlvbkF0KG1fYnl0ZWNv
ZGVJbmRleCkgPT0gY3VycmVudEluc3RydWN0aW9uKTsKIAotICAgIGF1dG8gY2xvc3VyZVZhckdl
bmVyYXRvciA9IFtdIChWTSYgdm0pIHsKLSAgICAgICAgcmV0dXJuIEpJVDo6Z2VuZXJhdGVPcEdl
dEZyb21TY29wZVRodW5rKHZtLCBDbG9zdXJlVmFyLCAiQmFzZWxpbmU6IG9wX2dldF9mcm9tX3Nj
b3BlIENsb3N1cmVWYXIiKTsKLSAgICB9OwotCi0gICAgYXV0byBjbG9zdXJlVmFyV2l0aFZhcklu
amVjdGlvbkNoZWNrc0dlbmVyYXRvciA9IFtdIChWTSYgdm0pIHsKLSAgICAgICAgcmV0dXJuIEpJ
VDo6Z2VuZXJhdGVPcEdldEZyb21TY29wZVRodW5rKHZtLCBDbG9zdXJlVmFyV2l0aFZhckluamVj
dGlvbkNoZWNrcywgIkJhc2VsaW5lOiBvcF9nZXRfZnJvbV9zY29wZSBDbG9zdXJlVmFyIik7Ci0g
ICAgfTsKLQotICAgIGF1dG8gZ2VuZXJpY0dldEZyb21TY29wZUdlbmVyYXRvciA9IFtdIChWTSYg
dm0pIHsKLSAgICAgICAgcmV0dXJuIEpJVDo6Z2VuZXJhdGVPcEdldEZyb21TY29wZVRodW5rKHZt
LCBzdGQ6Om51bGxvcHQsICJCYXNlbGluZTogb3BfZ2V0X2Zyb21fc2NvcGUgZ2VuZXJpYyIpOwot
ICAgIH07Ci0KICAgICBjb25zdGV4cHIgR1BSUmVnIG1ldGFkYXRhR1BSID0gcmVnVDQ7CiAgICAg
Y29uc3RleHByIEdQUlJlZyBzY29wZUdQUiA9IHJlZ1QyOwogICAgIGNvbnN0ZXhwciBHUFJSZWcg
Ynl0ZWNvZGVPZmZzZXRHUFIgPSByZWdUNTsKQEAgLTIzNzgsMTcgKzIzODUsMjggQEAgdm9pZCBK
SVQ6OmVtaXRfb3BfZ2V0X2Zyb21fc2NvcGUoY29uc3QgSQogCiAgICAgTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmPEpJVFRodW5rUHRyVGFnPiBjb2RlOwogICAgIGlmIChwcm9maWxlZFJlc29sdmVUeXBl
ID09IENsb3N1cmVWYXIpCi0gICAgICAgIGNvZGUgPSB2bS5nZXRDVElTdHViKGNsb3N1cmVWYXJH
ZW5lcmF0b3IpOworICAgICAgICBjb2RlID0gdm0uZ2V0Q1RJU3R1YihnZW5lcmF0ZU9wR2V0RnJv
bVNjb3BlVGh1bms8Q2xvc3VyZVZhcj4pOwogICAgIGVsc2UgaWYgKHByb2ZpbGVkUmVzb2x2ZVR5
cGUgPT0gQ2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MpCi0gICAgICAgIGNvZGUgPSB2
bS5nZXRDVElTdHViKGNsb3N1cmVWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzR2VuZXJhdG9yKTsK
KyAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoZ2VuZXJhdGVPcEdldEZyb21TY29wZVRodW5r
PENsb3N1cmVWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzPik7CisgICAgZWxzZSBpZiAocHJvZmls
ZWRSZXNvbHZlVHlwZSA9PSBHbG9iYWxWYXIpCisgICAgICAgIGNvZGUgPSB2bS5nZXRDVElTdHVi
KGdlbmVyYXRlT3BHZXRGcm9tU2NvcGVUaHVuazxHbG9iYWxWYXI+KTsKKyAgICBlbHNlIGlmIChw
cm9maWxlZFJlc29sdmVUeXBlID09IEdsb2JhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MpCisg
ICAgICAgIGNvZGUgPSB2bS5nZXRDVElTdHViKGdlbmVyYXRlT3BHZXRGcm9tU2NvcGVUaHVuazxH
bG9iYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzPik7CisgICAgZWxzZSBpZiAocHJvZmlsZWRS
ZXNvbHZlVHlwZSA9PSBHbG9iYWxQcm9wZXJ0eSkKKyAgICAgICAgY29kZSA9IHZtLmdldENUSVN0
dWIoZ2VuZXJhdGVPcEdldEZyb21TY29wZVRodW5rPEdsb2JhbFByb3BlcnR5Pik7CisgICAgZWxz
ZSBpZiAocHJvZmlsZWRSZXNvbHZlVHlwZSA9PSBHbG9iYWxMZXhpY2FsVmFyKQorICAgICAgICBj
b2RlID0gdm0uZ2V0Q1RJU3R1YihnZW5lcmF0ZU9wR2V0RnJvbVNjb3BlVGh1bms8R2xvYmFsTGV4
aWNhbFZhcj4pOworICAgIGVsc2UgaWYgKHByb2ZpbGVkUmVzb2x2ZVR5cGUgPT0gR2xvYmFsTGV4
aWNhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MpCisgICAgICAgIGNvZGUgPSB2bS5nZXRDVElT
dHViKGdlbmVyYXRlT3BHZXRGcm9tU2NvcGVUaHVuazxHbG9iYWxMZXhpY2FsVmFyV2l0aFZhcklu
amVjdGlvbkNoZWNrcz4pOwogICAgIGVsc2UKLSAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIo
Z2VuZXJpY0dldEZyb21TY29wZUdlbmVyYXRvcik7CisgICAgICAgIGNvZGUgPSB2bS5nZXRDVElT
dHViKGdlbmVyYXRlT3BHZXRGcm9tU2NvcGVUaHVuazxHbG9iYWxWYXI+KTsKIAogICAgIGVtaXRO
YWtlZE5lYXJDYWxsKGNvZGUucmV0YWdnZWRDb2RlPE5vUHRyVGFnPigpKTsKICAgICBlbWl0UHV0
VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiB9CiAKLU1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVu
a1B0clRhZz4gSklUOjpnZW5lcmF0ZU9wR2V0RnJvbVNjb3BlVGh1bmsoVk0mIHZtLCBzdGQ6Om9w
dGlvbmFsPFJlc29sdmVUeXBlPiByZXNvbHZlVHlwZSwgY29uc3QgY2hhciogdGh1bmtOYW1lKQor
dGVtcGxhdGUgPFJlc29sdmVUeXBlIHByb2ZpbGVkUmVzb2x2ZVR5cGU+CitNYWNyb0Fzc2VtYmxl
ckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IEpJVDo6Z2VuZXJhdGVPcEdldEZyb21TY29wZVRodW5r
KFZNJiB2bSkKIHsKICAgICAvLyBUaGUgdGh1bmsgZ2VuZXJhdGVkIGJ5IHRoaXMgZnVuY3Rpb24g
Y2FuIG9ubHkgd29yayB3aXRoIHRoZSBMTEludCAvIEJhc2VsaW5lIEpJVCBiZWNhdXNlCiAgICAg
Ly8gaXQgbWFrZXMgYXNzdW1wdGlvbnMgYWJvdXQgdGhlIHJpZ2h0IGdsb2JhbE9iamVjdCBiZWlu
ZyBhdmFpbGFibGUgZnJvbSBDYWxsRnJhbWU6OmNvZGVCbG9jaygpLgpAQCAtMjQ3OCw0MyArMjQ5
Niw0NCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IEpJCiAgICAgICAg
IH0KICAgICB9OwogCi0gICAgaWYgKHJlc29sdmVUeXBlKSB7Ci0gICAgICAgIFJFTEVBU0VfQVNT
RVJUKCpyZXNvbHZlVHlwZSA9PSBDbG9zdXJlVmFyIHx8ICpyZXNvbHZlVHlwZSA9PSBDbG9zdXJl
VmFyV2l0aFZhckluamVjdGlvbkNoZWNrcyk7Ci0gICAgICAgIGVtaXRDb2RlKCpyZXNvbHZlVHlw
ZSk7Ci0gICAgfSBlbHNlIHsKKyAgICBpZiAocHJvZmlsZWRSZXNvbHZlVHlwZSA9PSBDbG9zdXJl
VmFyIHx8IHByb2ZpbGVkUmVzb2x2ZVR5cGUgPT0gQ2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25D
aGVja3MpCisgICAgICAgIGVtaXRDb2RlKHByb2ZpbGVkUmVzb2x2ZVR5cGUpOworICAgIGVsc2Ug
ewogICAgICAgICBKdW1wTGlzdCBza2lwVG9FbmQ7CiAgICAgICAgIGppdC5sb2FkMzIoQWRkcmVz
cyhtZXRhZGF0YUdQUiwgTWV0YWRhdGE6Om9mZnNldE9mR2V0UHV0SW5mbygpKSwgcmVnVDApOwog
ICAgICAgICBqaXQuYW5kMzIoVHJ1c3RlZEltbTMyKEdldFB1dEluZm86OnR5cGVCaXRzKSwgcmVn
VDApOyAvLyBMb2FkIFJlc29sdmVUeXBlIGludG8gVDAKIAotICAgICAgICBKdW1wIG5vdEdsb2Jh
bFZhciA9IGppdC5icmFuY2gzMihOb3RFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW0zMihHbG9iYWxW
YXIpKTsKLSAgICAgICAgZW1pdENvZGUoR2xvYmFsVmFyKTsKLSAgICAgICAgc2tpcFRvRW5kLmFw
cGVuZChqaXQuanVtcCgpKTsKLSAgICAgICAgbm90R2xvYmFsVmFyLmxpbmsoJmppdCk7Ci0KLSAg
ICAgICAgSnVtcCBub3RHbG9iYWxWYXJXaXRoVmFySW5qZWN0aW9uID0gaml0LmJyYW5jaDMyKE5v
dEVxdWFsLCByZWdUMCwgVHJ1c3RlZEltbTMyKEdsb2JhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVj
a3MpKTsKLSAgICAgICAgZW1pdENvZGUoR2xvYmFsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcyk7
Ci0gICAgICAgIHNraXBUb0VuZC5hcHBlbmQoaml0Lmp1bXAoKSk7Ci0gICAgICAgIG5vdEdsb2Jh
bFZhcldpdGhWYXJJbmplY3Rpb24ubGluaygmaml0KTsKKyAgICAgICAgYXV0byBlbWl0Q2FzZVdp
dGhvdXRDaGVjayA9IFsmXSAoUmVzb2x2ZVR5cGUgcmVzb2x2ZVR5cGUpIHsKKyAgICAgICAgICAg
IEp1bXAgbm90Q2FzZSA9IGppdC5icmFuY2gzMihOb3RFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW0z
MihyZXNvbHZlVHlwZSkpOworICAgICAgICAgICAgZW1pdENvZGUocmVzb2x2ZVR5cGUpOworICAg
ICAgICAgICAgc2tpcFRvRW5kLmFwcGVuZChqaXQuanVtcCgpKTsKKyAgICAgICAgICAgIG5vdENh
c2UubGluaygmaml0KTsKKyAgICAgICAgfTsKIAotICAgICAgICBKdW1wIGlzR2xvYmFsUHJvcGVy
dHkgPSBqaXQuYnJhbmNoMzIoRXF1YWwsIHJlZ1QwLCBUcnVzdGVkSW1tMzIoR2xvYmFsUHJvcGVy
dHkpKTsKLSAgICAgICAgSnVtcCBub3RHbG9iYWxQcm9wZXJ0eVdpdGhWYXJJbmplY3Rpb25zID0g
aml0LmJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMCwgVHJ1c3RlZEltbTMyKEdsb2JhbFByb3BlcnR5
V2l0aFZhckluamVjdGlvbkNoZWNrcykpOwotICAgICAgICBpc0dsb2JhbFByb3BlcnR5Lmxpbmso
JmppdCk7Ci0gICAgICAgIGVtaXRDb2RlKEdsb2JhbFByb3BlcnR5KTsKLSAgICAgICAgc2tpcFRv
RW5kLmFwcGVuZChqaXQuanVtcCgpKTsKLSAgICAgICAgbm90R2xvYmFsUHJvcGVydHlXaXRoVmFy
SW5qZWN0aW9ucy5saW5rKCZqaXQpOworICAgICAgICBhdXRvIGVtaXRDYXNlID0gWyZdIChSZXNv
bHZlVHlwZSByZXNvbHZlVHlwZSkgeworICAgICAgICAgICAgaWYgKHByb2ZpbGVkUmVzb2x2ZVR5
cGUgIT0gcmVzb2x2ZVR5cGUpCisgICAgICAgICAgICAgICAgZW1pdENhc2VXaXRob3V0Q2hlY2so
cmVzb2x2ZVR5cGUpOworICAgICAgICB9OwogCi0gICAgICAgIEp1bXAgbm90R2xvYmFsTGV4aWNh
bFZhciA9IGppdC5icmFuY2gzMihOb3RFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW0zMihHbG9iYWxM
ZXhpY2FsVmFyKSk7Ci0gICAgICAgIGVtaXRDb2RlKEdsb2JhbExleGljYWxWYXIpOwotICAgICAg
ICBza2lwVG9FbmQuYXBwZW5kKGppdC5qdW1wKCkpOwotICAgICAgICBub3RHbG9iYWxMZXhpY2Fs
VmFyLmxpbmsoJmppdCk7CisgICAgICAgIHN3aXRjaCAocHJvZmlsZWRSZXNvbHZlVHlwZSkgewor
ICAgICAgICBjYXNlIFJlc29sdmVkQ2xvc3VyZVZhcjoKKyAgICAgICAgY2FzZSBNb2R1bGVWYXI6
CisgICAgICAgIGNhc2UgVW5yZXNvbHZlZFByb3BlcnR5OgorICAgICAgICBjYXNlIFVucmVzb2x2
ZWRQcm9wZXJ0eVdpdGhWYXJJbmplY3Rpb25DaGVja3M6CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGVtaXRDYXNlV2l0aG91dENoZWNrKHByb2ZpbGVk
UmVzb2x2ZVR5cGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KIAotICAgICAgICBK
dW1wIG5vdEdsb2JhbExleGljYWxWYXJXaXRoVmFySW5qZWN0aW9ucyA9IGppdC5icmFuY2gzMihO
b3RFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW0zMihHbG9iYWxMZXhpY2FsVmFyV2l0aFZhckluamVj
dGlvbkNoZWNrcykpOwotICAgICAgICBlbWl0Q29kZShHbG9iYWxMZXhpY2FsVmFyV2l0aFZhcklu
amVjdGlvbkNoZWNrcyk7Ci0gICAgICAgIHNraXBUb0VuZC5hcHBlbmQoaml0Lmp1bXAoKSk7Ci0g
ICAgICAgIG5vdEdsb2JhbExleGljYWxWYXJXaXRoVmFySW5qZWN0aW9ucy5saW5rKCZqaXQpOwor
ICAgICAgICBlbWl0Q2FzZShHbG9iYWxWYXIpOworICAgICAgICBlbWl0Q2FzZShHbG9iYWxQcm9w
ZXJ0eSk7CisgICAgICAgIGVtaXRDYXNlKEdsb2JhbExleGljYWxWYXIpOworICAgICAgICBlbWl0
Q2FzZShHbG9iYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzKTsKKyAgICAgICAgZW1pdENhc2Uo
R2xvYmFsUHJvcGVydHlXaXRoVmFySW5qZWN0aW9uQ2hlY2tzKTsKKyAgICAgICAgZW1pdENhc2Uo
R2xvYmFsTGV4aWNhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MpOwogCiAgICAgICAgIHNsb3dD
YXNlLmFwcGVuZChqaXQuanVtcCgpKTsKLQogICAgICAgICBza2lwVG9FbmQubGluaygmaml0KTsK
ICAgICB9CiAKQEAgLTI1MjUsNyArMjU0NCw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRU
aHVua1B0clRhZz4gSkkKIAogICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoaml0LCBHTE9CQUxf
VEhVTktfSUQsIExpbmtCdWZmZXI6OlByb2ZpbGU6OlRodW5rKTsKICAgICBwYXRjaEJ1ZmZlci5s
aW5rKHNsb3dDYXNlLCBDb2RlTG9jYXRpb25MYWJlbCh2bS5nZXRDVElTdHViKHNsb3dfb3BfZ2V0
X2Zyb21fc2NvcGVHZW5lcmF0b3IpLnJldGFnZ2VkQ29kZTxOb1B0clRhZz4oKSkpOwotICAgIHJl
dHVybiBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCBKSVRUaHVua1B0clRhZywgdGh1bmtOYW1l
KTsKKyAgICByZXR1cm4gRklOQUxJWkVfQ09ERShwYXRjaEJ1ZmZlciwgSklUVGh1bmtQdHJUYWcs
ICJnZXRfZnJvbV9zY29wZSB0aHVuayIpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklU
VGh1bmtQdHJUYWc+IEpJVDo6c2xvd19vcF9nZXRfZnJvbV9zY29wZUdlbmVyYXRvcihWTSYgdm0p
CkBAIC0yNjkwLDM1ICsyNzA5LDM1IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF90b19zY29wZShj
b25zdCBJbnMKICAgICAgICAgbG9hZDMyRnJvbU1ldGFkYXRhKGJ5dGVjb2RlLCBPcFB1dFRvU2Nv
cGU6Ok1ldGFkYXRhOjpvZmZzZXRPZkdldFB1dEluZm8oKSwgcmVnVDApOwogICAgICAgICBhbmQz
MihUcnVzdGVkSW1tMzIoR2V0UHV0SW5mbzo6dHlwZUJpdHMpLCByZWdUMCk7IC8vIExvYWQgUmVz
b2x2ZVR5cGUgaW50byBUMAogCi0gICAgICAgIEp1bXAgaXNHbG9iYWxQcm9wZXJ0eSA9IGJyYW5j
aDMyKEVxdWFsLCByZWdUMCwgVHJ1c3RlZEltbTMyKEdsb2JhbFByb3BlcnR5KSk7Ci0gICAgICAg
IEp1bXAgbm90R2xvYmFsUHJvcGVydHlXaXRoVmFySW5qZWN0aW9ucyA9IGJyYW5jaDMyKE5vdEVx
dWFsLCByZWdUMCwgVHJ1c3RlZEltbTMyKEdsb2JhbFByb3BlcnR5V2l0aFZhckluamVjdGlvbkNo
ZWNrcykpOwotICAgICAgICBpc0dsb2JhbFByb3BlcnR5LmxpbmsodGhpcyk7Ci0gICAgICAgIGVt
aXRDb2RlKEdsb2JhbFByb3BlcnR5KTsKLSAgICAgICAgc2tpcFRvRW5kLmFwcGVuZChqdW1wKCkp
OwotICAgICAgICBub3RHbG9iYWxQcm9wZXJ0eVdpdGhWYXJJbmplY3Rpb25zLmxpbmsodGhpcyk7
Ci0KLSAgICAgICAgSnVtcCBub3RHbG9iYWxWYXIgPSBicmFuY2gzMihOb3RFcXVhbCwgcmVnVDAs
IFRydXN0ZWRJbW0zMihHbG9iYWxWYXIpKTsKLSAgICAgICAgZW1pdENvZGUoR2xvYmFsVmFyKTsK
LSAgICAgICAgc2tpcFRvRW5kLmFwcGVuZChqdW1wKCkpOwotICAgICAgICBub3RHbG9iYWxWYXIu
bGluayh0aGlzKTsKKyAgICAgICAgYXV0byBlbWl0Q2FzZVdpdGhvdXRDaGVjayA9IFsmXSAoUmVz
b2x2ZVR5cGUgcmVzb2x2ZVR5cGUpIHsKKyAgICAgICAgICAgIEp1bXAgbm90Q2FzZSA9IGJyYW5j
aDMyKE5vdEVxdWFsLCByZWdUMCwgVHJ1c3RlZEltbTMyKHJlc29sdmVUeXBlKSk7CisgICAgICAg
ICAgICBlbWl0Q29kZShyZXNvbHZlVHlwZSk7CisgICAgICAgICAgICBza2lwVG9FbmQuYXBwZW5k
KGp1bXAoKSk7CisgICAgICAgICAgICBub3RDYXNlLmxpbmsodGhpcyk7CisgICAgICAgIH07CiAK
LSAgICAgICAgSnVtcCBub3RHbG9iYWxWYXJXaXRoVmFySW5qZWN0aW9uID0gYnJhbmNoMzIoTm90
RXF1YWwsIHJlZ1QwLCBUcnVzdGVkSW1tMzIoR2xvYmFsVmFyV2l0aFZhckluamVjdGlvbkNoZWNr
cykpOwotICAgICAgICBlbWl0Q29kZShHbG9iYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzKTsK
LSAgICAgICAgc2tpcFRvRW5kLmFwcGVuZChqdW1wKCkpOwotICAgICAgICBub3RHbG9iYWxWYXJX
aXRoVmFySW5qZWN0aW9uLmxpbmsodGhpcyk7CisgICAgICAgIGF1dG8gZW1pdENhc2UgPSBbJl0g
KFJlc29sdmVUeXBlIHJlc29sdmVUeXBlKSB7CisgICAgICAgICAgICBpZiAocHJvZmlsZWRSZXNv
bHZlVHlwZSAhPSByZXNvbHZlVHlwZSkKKyAgICAgICAgICAgICAgICBlbWl0Q2FzZVdpdGhvdXRD
aGVjayhyZXNvbHZlVHlwZSk7CisgICAgICAgIH07CiAKLSAgICAgICAgSnVtcCBub3RHbG9iYWxM
ZXhpY2FsVmFyID0gYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QwLCBUcnVzdGVkSW1tMzIoR2xvYmFs
TGV4aWNhbFZhcikpOwotICAgICAgICBlbWl0Q29kZShHbG9iYWxMZXhpY2FsVmFyKTsKLSAgICAg
ICAgc2tpcFRvRW5kLmFwcGVuZChqdW1wKCkpOwotICAgICAgICBub3RHbG9iYWxMZXhpY2FsVmFy
LmxpbmsodGhpcyk7CisgICAgICAgIHN3aXRjaCAocHJvZmlsZWRSZXNvbHZlVHlwZSkgeworICAg
ICAgICBjYXNlIFVucmVzb2x2ZWRQcm9wZXJ0eToKKyAgICAgICAgY2FzZSBVbnJlc29sdmVkUHJv
cGVydHlXaXRoVmFySW5qZWN0aW9uQ2hlY2tzOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICBlbWl0Q2FzZVdpdGhvdXRDaGVjayhwcm9maWxlZFJlc29s
dmVUeXBlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAKLSAgICAgICAgSnVtcCBu
b3RHbG9iYWxMZXhpY2FsVmFyV2l0aFZhckluamVjdGlvbnMgPSBicmFuY2gzMihOb3RFcXVhbCwg
cmVnVDAsIFRydXN0ZWRJbW0zMihHbG9iYWxMZXhpY2FsVmFyV2l0aFZhckluamVjdGlvbkNoZWNr
cykpOwotICAgICAgICBlbWl0Q29kZShHbG9iYWxMZXhpY2FsVmFyV2l0aFZhckluamVjdGlvbkNo
ZWNrcyk7Ci0gICAgICAgIHNraXBUb0VuZC5hcHBlbmQoanVtcCgpKTsKLSAgICAgICAgbm90R2xv
YmFsTGV4aWNhbFZhcldpdGhWYXJJbmplY3Rpb25zLmxpbmsodGhpcyk7CisgICAgICAgIGVtaXRD
YXNlKEdsb2JhbFZhcik7CisgICAgICAgIGVtaXRDYXNlKEdsb2JhbFByb3BlcnR5KTsKKyAgICAg
ICAgZW1pdENhc2UoR2xvYmFsTGV4aWNhbFZhcik7CisgICAgICAgIGVtaXRDYXNlKEdsb2JhbFZh
cldpdGhWYXJJbmplY3Rpb25DaGVja3MpOworICAgICAgICBlbWl0Q2FzZShHbG9iYWxQcm9wZXJ0
eVdpdGhWYXJJbmplY3Rpb25DaGVja3MpOworICAgICAgICBlbWl0Q2FzZShHbG9iYWxMZXhpY2Fs
VmFyV2l0aFZhckluamVjdGlvbkNoZWNrcyk7CiAKICAgICAgICAgYWRkU2xvd0Nhc2UoanVtcCgp
KTsKLQogICAgICAgICBza2lwVG9FbmQubGluayh0aGlzKTsKICAgICB9CiB9Cg==
</data>
<flag name="commit-queue"
          id="465440"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441250</attachid>
            <date>2021-10-14 11:48:50 -0700</date>
            <delta_ts>2021-10-14 18:49:53 -0700</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>17071</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjg0MTQxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDIxLTEwLTEzICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IE1ha2UgdW5saW5rZWQgQmFzZWxpbmUgSklUIHNjb3BlIG9wZXJhdGlvbnMgYmlhcyB0aGUgb3Jk
ZXIgb2YgY2hlY2tzIHRvIHRoZSBSZXNvbHZlVHlwZSB0aGF0IHByb2ZpbGluZyB0ZWxscyB1cyB3
ZSBhcmUgbGlrZWx5IHRvIGJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzE3MTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGlzIGlzIGEgc21hbGwgdGhyb3VnaG91dCB3aW4gaW4gdGhlIGNvZGUgZ2Vu
ZXJhdGVkIGJ5IHVubGlua2VkIGJhc2VsaW5lIEpJVC4KKworICAgICAgICAqIGppdC9KSVQuaDoK
KyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRfb3BfcmVzb2x2ZV9zY29wZSk6CisgICAgICAgIChKU0M6OkpJVDo6Z2VuZXJhdGVPcFJl
c29sdmVTY29wZVRodW5rKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9mcm9tX3Nj
b3BlKToKKyAgICAgICAgKEpTQzo6SklUOjpnZW5lcmF0ZU9wR2V0RnJvbVNjb3BlVGh1bmspOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X3RvX3Njb3BlKToKKwogMjAyMS0xMC0xMyAg
SmVhbi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAgIENsZWFybHkgZGlz
dGluZ3Vpc2ggc2VyaWFsIGZyb20gY29uY3VycmVudCBXb3JrUXVldWUKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuaAkocmV2aXNpb24gMjgzMTM5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuaAkod29ya2luZyBjb3B5KQpAQCAtNzU1LDggKzc1NSwxMCBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgICAgICBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRy
VGFnPiBzbG93X29wX2dldF9mcm9tX3Njb3BlR2VuZXJhdG9yKFZNJik7CiAgICAgICAgIHN0YXRp
YyBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IHNsb3dfb3BfcmVzb2x2ZV9z
Y29wZUdlbmVyYXRvcihWTSYpOwotICAgICAgICBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
PEpJVFRodW5rUHRyVGFnPiBnZW5lcmF0ZU9wR2V0RnJvbVNjb3BlVGh1bmsoVk0mLCBzdGQ6Om9w
dGlvbmFsPFJlc29sdmVUeXBlPiwgY29uc3QgY2hhciogdGh1bmtOYW1lKTsKLSAgICAgICAgc3Rh
dGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gZ2VuZXJhdGVPcFJlc29s
dmVTY29wZVRodW5rKFZNJiwgc3RkOjpvcHRpb25hbDxSZXNvbHZlVHlwZT4sIGNvbnN0IGNoYXIq
IHRodW5rTmFtZSk7CisgICAgICAgIHRlbXBsYXRlIDxSZXNvbHZlVHlwZT4KKyAgICAgICAgc3Rh
dGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gZ2VuZXJhdGVPcEdldEZy
b21TY29wZVRodW5rKFZNJik7CisgICAgICAgIHRlbXBsYXRlIDxSZXNvbHZlVHlwZT4KKyAgICAg
ICAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gZ2VuZXJhdGVP
cFJlc29sdmVTY29wZVRodW5rKFZNJik7CiAjZW5kaWYgLy8gRU5BQkxFKEVYVFJBX0NUSV9USFVO
S1MpCiAKICAgICAgICAgSnVtcCBnZXRTbG93Q2FzZShWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0
ZXJhdG9yJiBpdGVyKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0
eUFjY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2Vzcy5jcHAJKHJldmlzaW9uIDI4MzEzOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTczLDE4
ICsxOTczLDYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmVzb2x2ZV9zY29wZShjb25zdCBJbgogICAg
IGVsc2UgewogICAgICAgICBwdHJkaWZmX3QgbWV0YWRhdGFPZmZzZXQgPSBtX3VubGlua2VkQ29k
ZUJsb2NrLT5tZXRhZGF0YSgpLm9mZnNldEluTWV0YWRhdGFUYWJsZShieXRlY29kZSk7CiAKLSAg
ICAgICAgYXV0byBjbG9zdXJlVmFyR2VuZXJhdG9yID0gW10gKFZNJiB2bSkgewotICAgICAgICAg
ICAgcmV0dXJuIEpJVDo6Z2VuZXJhdGVPcFJlc29sdmVTY29wZVRodW5rKHZtLCBDbG9zdXJlVmFy
LCAiQmFzZWxpbmU6IG9wX3Jlc29sdmVfc2NvcGUgQ2xvc3VyZVZhciIpOwotICAgICAgICB9Owot
Ci0gICAgICAgIGF1dG8gY2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVja3NHZW5lcmF0b3Ig
PSBbXSAoVk0mIHZtKSB7Ci0gICAgICAgICAgICByZXR1cm4gSklUOjpnZW5lcmF0ZU9wUmVzb2x2
ZVNjb3BlVGh1bmsodm0sIENsb3N1cmVWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzLCAiQmFzZWxp
bmU6IG9wX3Jlc29sdmVfc2NvcGUgQ2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MiKTsK
LSAgICAgICAgfTsKLQotICAgICAgICBhdXRvIGdlbmVyaWNSZXNvbHZlU2NvcGVHZW5lcmF0b3Ig
PSBbXSAoVk0mIHZtKSB7Ci0gICAgICAgICAgICByZXR1cm4gSklUOjpnZW5lcmF0ZU9wUmVzb2x2
ZVNjb3BlVGh1bmsodm0sIHN0ZDo6bnVsbG9wdCwgIkJhc2VsaW5lOiBvcF9yZXNvbHZlX3Njb3Bl
IGdlbmVyaWMiKTsKLSAgICAgICAgfTsKLQogICAgICAgICBjb25zdGV4cHIgR1BSUmVnIG1ldGFk
YXRhR1BSID0gcmVnVDI7CiAgICAgICAgIGNvbnN0ZXhwciBHUFJSZWcgc2NvcGVHUFIgPSByZWdU
MDsKICAgICAgICAgY29uc3RleHByIEdQUlJlZyBieXRlY29kZU9mZnNldEdQUiA9IHJlZ1Q1OwpA
QCAtMTk5NSwxOCArMTk4MywzMiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9yZXNvbHZlX3Njb3BlKGNv
bnN0IEluCiAKICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBj
b2RlOwogICAgICAgICBpZiAocHJvZmlsZWRSZXNvbHZlVHlwZSA9PSBDbG9zdXJlVmFyKQotICAg
ICAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoY2xvc3VyZVZhckdlbmVyYXRvcik7CisgICAg
ICAgICAgICBjb2RlID0gdm0uZ2V0Q1RJU3R1YihnZW5lcmF0ZU9wUmVzb2x2ZVNjb3BlVGh1bms8
Q2xvc3VyZVZhcj4pOwogICAgICAgICBlbHNlIGlmIChwcm9maWxlZFJlc29sdmVUeXBlID09IENs
b3N1cmVWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzKQotICAgICAgICAgICAgY29kZSA9IHZtLmdl
dENUSVN0dWIoY2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVja3NHZW5lcmF0b3IpOworICAg
ICAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoZ2VuZXJhdGVPcFJlc29sdmVTY29wZVRodW5r
PENsb3N1cmVWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzPik7CisgICAgICAgIGVsc2UgaWYgKHBy
b2ZpbGVkUmVzb2x2ZVR5cGUgPT0gR2xvYmFsVmFyKQorICAgICAgICAgICAgY29kZSA9IHZtLmdl
dENUSVN0dWIoZ2VuZXJhdGVPcFJlc29sdmVTY29wZVRodW5rPEdsb2JhbFZhcj4pOworICAgICAg
ICBlbHNlIGlmIChwcm9maWxlZFJlc29sdmVUeXBlID09IEdsb2JhbFByb3BlcnR5KQorICAgICAg
ICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoZ2VuZXJhdGVPcFJlc29sdmVTY29wZVRodW5rPEds
b2JhbFByb3BlcnR5Pik7CisgICAgICAgIGVsc2UgaWYgKHByb2ZpbGVkUmVzb2x2ZVR5cGUgPT0g
R2xvYmFsTGV4aWNhbFZhcikKKyAgICAgICAgICAgIGNvZGUgPSB2bS5nZXRDVElTdHViKGdlbmVy
YXRlT3BSZXNvbHZlU2NvcGVUaHVuazxHbG9iYWxMZXhpY2FsVmFyPik7CisgICAgICAgIGVsc2Ug
aWYgKHByb2ZpbGVkUmVzb2x2ZVR5cGUgPT0gR2xvYmFsVmFyV2l0aFZhckluamVjdGlvbkNoZWNr
cykKKyAgICAgICAgICAgIGNvZGUgPSB2bS5nZXRDVElTdHViKGdlbmVyYXRlT3BSZXNvbHZlU2Nv
cGVUaHVuazxHbG9iYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzPik7CisgICAgICAgIGVsc2Ug
aWYgKHByb2ZpbGVkUmVzb2x2ZVR5cGUgPT0gR2xvYmFsUHJvcGVydHlXaXRoVmFySW5qZWN0aW9u
Q2hlY2tzKQorICAgICAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoZ2VuZXJhdGVPcFJlc29s
dmVTY29wZVRodW5rPEdsb2JhbFByb3BlcnR5V2l0aFZhckluamVjdGlvbkNoZWNrcz4pOworICAg
ICAgICBlbHNlIGlmIChwcm9maWxlZFJlc29sdmVUeXBlID09IEdsb2JhbExleGljYWxWYXJXaXRo
VmFySW5qZWN0aW9uQ2hlY2tzKQorICAgICAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoZ2Vu
ZXJhdGVPcFJlc29sdmVTY29wZVRodW5rPEdsb2JhbExleGljYWxWYXJXaXRoVmFySW5qZWN0aW9u
Q2hlY2tzPik7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvZGUgPSB2bS5nZXRDVElTdHVi
KGdlbmVyaWNSZXNvbHZlU2NvcGVHZW5lcmF0b3IpOworICAgICAgICAgICAgY29kZSA9IHZtLmdl
dENUSVN0dWIoZ2VuZXJhdGVPcFJlc29sdmVTY29wZVRodW5rPEdsb2JhbFZhcj4pOworCiAgICAg
ICAgIGVtaXROYWtlZE5lYXJDYWxsKGNvZGUucmV0YWdnZWRDb2RlPE5vUHRyVGFnPigpKTsKICAg
ICB9CiAKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiB9CiAKLU1hY3JvQXNzZW1i
bGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gSklUOjpnZW5lcmF0ZU9wUmVzb2x2ZVNjb3BlVGh1
bmsoVk0mIHZtLCBzdGQ6Om9wdGlvbmFsPFJlc29sdmVUeXBlPiByZXNvbHZlVHlwZSwgY29uc3Qg
Y2hhciogdGh1bmtOYW1lKQordGVtcGxhdGUgPFJlc29sdmVUeXBlIHByb2ZpbGVkUmVzb2x2ZVR5
cGU+CitNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IEpJVDo6Z2VuZXJhdGVP
cFJlc29sdmVTY29wZVRodW5rKFZNJiB2bSkKIHsKICAgICAvLyBUaGUgdGh1bmsgZ2VuZXJhdGVk
IGJ5IHRoaXMgZnVuY3Rpb24gY2FuIG9ubHkgd29yayB3aXRoIHRoZSBMTEludCAvIEJhc2VsaW5l
IEpJVCBiZWNhdXNlCiAgICAgLy8gaXQgbWFrZXMgYXNzdW1wdGlvbnMgYWJvdXQgdGhlIHJpZ2h0
IGdsb2JhbE9iamVjdCBiZWluZyBhdmFpbGFibGUgZnJvbSBDYWxsRnJhbWU6OmNvZGVCbG9jaygp
LgpAQCAtMjA0Myw4ICsyMDQ1LDggQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRy
VGFnPiBKSQogCiAgICAgYXV0byBlbWl0UmVzb2x2ZUNsb3N1cmUgPSBbJl0gKGJvb2wgbmVlZHNW
YXJJbmplY3Rpb25DaGVja3MpIHsKICAgICAgICAgZG9WYXJJbmplY3Rpb25DaGVjayhuZWVkc1Zh
ckluamVjdGlvbkNoZWNrcyk7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc2NvcGVHUFIgPT0gcmVn
VDApOwogICAgICAgICBqaXQubG9hZDMyKEFkZHJlc3MobWV0YWRhdGFHUFIsIE1ldGFkYXRhOjpv
ZmZzZXRPZkxvY2FsU2NvcGVEZXB0aCgpKSwgcmVnVDEpOworICAgICAgICBSRUxFQVNFX0FTU0VS
VChzY29wZUdQUiA9PSByZWdUMCk7CiAKICAgICAgICAgTGFiZWwgbG9vcCA9IGppdC5sYWJlbCgp
OwogICAgICAgICBKdW1wIGRvbmUgPSBqaXQuYnJhbmNoVGVzdDMyKFplcm8sIHJlZ1QxKTsKQEAg
LTIwOTUsMjAgKzIwOTcsMzggQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFn
PiBKSQogICAgICAgICB9CiAgICAgfTsKIAotICAgIGlmIChyZXNvbHZlVHlwZSkgewotICAgICAg
ICBSRUxFQVNFX0FTU0VSVCgqcmVzb2x2ZVR5cGUgPT0gQ2xvc3VyZVZhciB8fCAqcmVzb2x2ZVR5
cGUgPT0gQ2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MpOwotICAgICAgICBlbWl0Q29k
ZSgqcmVzb2x2ZVR5cGUpOwotICAgIH0gZWxzZSB7CisgICAgaWYgKHByb2ZpbGVkUmVzb2x2ZVR5
cGUgPT0gQ2xvc3VyZVZhcikKKyAgICAgICAgZW1pdENvZGUoQ2xvc3VyZVZhcik7CisgICAgZWxz
ZSBpZiAocHJvZmlsZWRSZXNvbHZlVHlwZSA9PSBDbG9zdXJlVmFyV2l0aFZhckluamVjdGlvbkNo
ZWNrcykKKyAgICAgICAgZW1pdENvZGUoQ2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVja3Mp
OworICAgIGVsc2UgewogICAgICAgICBKdW1wTGlzdCBza2lwVG9FbmQ7CiAgICAgICAgIGppdC5s
b2FkMzIoQWRkcmVzcyhtZXRhZGF0YUdQUiwgTWV0YWRhdGE6Om9mZnNldE9mUmVzb2x2ZVR5cGUo
KSksIHJlZ1QxKTsKIAotICAgICAgICBhdXRvIGVtaXRDYXNlID0gWyZdIChSZXNvbHZlVHlwZSBy
ZXNvbHZlVHlwZSkgeworICAgICAgICBhdXRvIGVtaXRDYXNlV2l0aG91dENoZWNrID0gWyZdIChS
ZXNvbHZlVHlwZSByZXNvbHZlVHlwZSkgewogICAgICAgICAgICAgSnVtcCBub3RDYXNlID0gaml0
LmJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMSwgVHJ1c3RlZEltbTMyKHJlc29sdmVUeXBlKSk7CiAg
ICAgICAgICAgICBlbWl0Q29kZShyZXNvbHZlVHlwZSk7CiAgICAgICAgICAgICBza2lwVG9FbmQu
YXBwZW5kKGppdC5qdW1wKCkpOwogICAgICAgICAgICAgbm90Q2FzZS5saW5rKCZqaXQpOwogICAg
ICAgICB9OwogCisgICAgICAgIGF1dG8gZW1pdENhc2UgPSBbJl0gKFJlc29sdmVUeXBlIHJlc29s
dmVUeXBlKSB7CisgICAgICAgICAgICBpZiAocmVzb2x2ZVR5cGUgIT0gcHJvZmlsZWRSZXNvbHZl
VHlwZSkKKyAgICAgICAgICAgICAgICBlbWl0Q2FzZVdpdGhvdXRDaGVjayhyZXNvbHZlVHlwZSk7
CisgICAgICAgIH07CisKKyAgICAgICAgLy8gQ2hlY2sgdGhhdCB3ZSdyZSB0aGUgcHJvZmlsZWQg
cmVzb2x2ZSB0eXBlIGZpcnN0LgorICAgICAgICBzd2l0Y2ggKHByb2ZpbGVkUmVzb2x2ZVR5cGUp
IHsKKyAgICAgICAgY2FzZSBSZXNvbHZlZENsb3N1cmVWYXI6CisgICAgICAgIGNhc2UgTW9kdWxl
VmFyOgorICAgICAgICBjYXNlIFVucmVzb2x2ZWRQcm9wZXJ0eToKKyAgICAgICAgY2FzZSBVbnJl
c29sdmVkUHJvcGVydHlXaXRoVmFySW5qZWN0aW9uQ2hlY2tzOgorICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBlbWl0Q2FzZVdpdGhvdXRDaGVjayhwcm9m
aWxlZFJlc29sdmVUeXBlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKICAgICAg
ICAgZW1pdENhc2UoR2xvYmFsVmFyKTsKICAgICAgICAgZW1pdENhc2UoR2xvYmFsUHJvcGVydHkp
OwogICAgICAgICBlbWl0Q2FzZShHbG9iYWxMZXhpY2FsVmFyKTsKQEAgLTIxMjQsNyArMjE0NCw3
IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gSkkKIAogICAgIExpbmtC
dWZmZXIgcGF0Y2hCdWZmZXIoaml0LCBHTE9CQUxfVEhVTktfSUQsIExpbmtCdWZmZXI6OlByb2Zp
bGU6OlRodW5rKTsKICAgICBwYXRjaEJ1ZmZlci5saW5rKHNsb3dDYXNlLCBDb2RlTG9jYXRpb25M
YWJlbCh2bS5nZXRDVElTdHViKHNsb3dfb3BfcmVzb2x2ZV9zY29wZUdlbmVyYXRvcikucmV0YWdn
ZWRDb2RlPE5vUHRyVGFnPigpKSk7Ci0gICAgcmV0dXJuIEZJTkFMSVpFX0NPREUocGF0Y2hCdWZm
ZXIsIEpJVFRodW5rUHRyVGFnLCB0aHVua05hbWUpOworICAgIHJldHVybiBGSU5BTElaRV9DT0RF
KHBhdGNoQnVmZmVyLCBKSVRUaHVua1B0clRhZywgInJlc29sdmVfc2NvcGUgdGh1bmsiKTsKIH0K
IAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBKSVQ6OnNsb3dfb3BfcmVz
b2x2ZV9zY29wZUdlbmVyYXRvcihWTSYgdm0pCkBAIC0yMzU0LDE4ICsyMzc0LDYgQEAgdm9pZCBK
SVQ6OmVtaXRfb3BfZ2V0X2Zyb21fc2NvcGUoY29uc3QgSQogICAgIEFTU0VSVChCeXRlY29kZUlu
ZGV4KGJ5dGVjb2RlT2Zmc2V0KSA9PSBtX2J5dGVjb2RlSW5kZXgpOwogICAgIEFTU0VSVChtX3Vu
bGlua2VkQ29kZUJsb2NrLT5pbnN0cnVjdGlvbkF0KG1fYnl0ZWNvZGVJbmRleCkgPT0gY3VycmVu
dEluc3RydWN0aW9uKTsKIAotICAgIGF1dG8gY2xvc3VyZVZhckdlbmVyYXRvciA9IFtdIChWTSYg
dm0pIHsKLSAgICAgICAgcmV0dXJuIEpJVDo6Z2VuZXJhdGVPcEdldEZyb21TY29wZVRodW5rKHZt
LCBDbG9zdXJlVmFyLCAiQmFzZWxpbmU6IG9wX2dldF9mcm9tX3Njb3BlIENsb3N1cmVWYXIiKTsK
LSAgICB9OwotCi0gICAgYXV0byBjbG9zdXJlVmFyV2l0aFZhckluamVjdGlvbkNoZWNrc0dlbmVy
YXRvciA9IFtdIChWTSYgdm0pIHsKLSAgICAgICAgcmV0dXJuIEpJVDo6Z2VuZXJhdGVPcEdldEZy
b21TY29wZVRodW5rKHZtLCBDbG9zdXJlVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcywgIkJhc2Vs
aW5lOiBvcF9nZXRfZnJvbV9zY29wZSBDbG9zdXJlVmFyIik7Ci0gICAgfTsKLQotICAgIGF1dG8g
Z2VuZXJpY0dldEZyb21TY29wZUdlbmVyYXRvciA9IFtdIChWTSYgdm0pIHsKLSAgICAgICAgcmV0
dXJuIEpJVDo6Z2VuZXJhdGVPcEdldEZyb21TY29wZVRodW5rKHZtLCBzdGQ6Om51bGxvcHQsICJC
YXNlbGluZTogb3BfZ2V0X2Zyb21fc2NvcGUgZ2VuZXJpYyIpOwotICAgIH07Ci0KICAgICBjb25z
dGV4cHIgR1BSUmVnIG1ldGFkYXRhR1BSID0gcmVnVDQ7CiAgICAgY29uc3RleHByIEdQUlJlZyBz
Y29wZUdQUiA9IHJlZ1QyOwogICAgIGNvbnN0ZXhwciBHUFJSZWcgYnl0ZWNvZGVPZmZzZXRHUFIg
PSByZWdUNTsKQEAgLTIzNzgsMTcgKzIzODYsMjggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2Zy
b21fc2NvcGUoY29uc3QgSQogCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRy
VGFnPiBjb2RlOwogICAgIGlmIChwcm9maWxlZFJlc29sdmVUeXBlID09IENsb3N1cmVWYXIpCi0g
ICAgICAgIGNvZGUgPSB2bS5nZXRDVElTdHViKGNsb3N1cmVWYXJHZW5lcmF0b3IpOworICAgICAg
ICBjb2RlID0gdm0uZ2V0Q1RJU3R1YihnZW5lcmF0ZU9wR2V0RnJvbVNjb3BlVGh1bms8Q2xvc3Vy
ZVZhcj4pOwogICAgIGVsc2UgaWYgKHByb2ZpbGVkUmVzb2x2ZVR5cGUgPT0gQ2xvc3VyZVZhcldp
dGhWYXJJbmplY3Rpb25DaGVja3MpCi0gICAgICAgIGNvZGUgPSB2bS5nZXRDVElTdHViKGNsb3N1
cmVWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzR2VuZXJhdG9yKTsKKyAgICAgICAgY29kZSA9IHZt
LmdldENUSVN0dWIoZ2VuZXJhdGVPcEdldEZyb21TY29wZVRodW5rPENsb3N1cmVWYXJXaXRoVmFy
SW5qZWN0aW9uQ2hlY2tzPik7CisgICAgZWxzZSBpZiAocHJvZmlsZWRSZXNvbHZlVHlwZSA9PSBH
bG9iYWxWYXIpCisgICAgICAgIGNvZGUgPSB2bS5nZXRDVElTdHViKGdlbmVyYXRlT3BHZXRGcm9t
U2NvcGVUaHVuazxHbG9iYWxWYXI+KTsKKyAgICBlbHNlIGlmIChwcm9maWxlZFJlc29sdmVUeXBl
ID09IEdsb2JhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MpCisgICAgICAgIGNvZGUgPSB2bS5n
ZXRDVElTdHViKGdlbmVyYXRlT3BHZXRGcm9tU2NvcGVUaHVuazxHbG9iYWxWYXJXaXRoVmFySW5q
ZWN0aW9uQ2hlY2tzPik7CisgICAgZWxzZSBpZiAocHJvZmlsZWRSZXNvbHZlVHlwZSA9PSBHbG9i
YWxQcm9wZXJ0eSkKKyAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoZ2VuZXJhdGVPcEdldEZy
b21TY29wZVRodW5rPEdsb2JhbFByb3BlcnR5Pik7CisgICAgZWxzZSBpZiAocHJvZmlsZWRSZXNv
bHZlVHlwZSA9PSBHbG9iYWxMZXhpY2FsVmFyKQorICAgICAgICBjb2RlID0gdm0uZ2V0Q1RJU3R1
YihnZW5lcmF0ZU9wR2V0RnJvbVNjb3BlVGh1bms8R2xvYmFsTGV4aWNhbFZhcj4pOworICAgIGVs
c2UgaWYgKHByb2ZpbGVkUmVzb2x2ZVR5cGUgPT0gR2xvYmFsTGV4aWNhbFZhcldpdGhWYXJJbmpl
Y3Rpb25DaGVja3MpCisgICAgICAgIGNvZGUgPSB2bS5nZXRDVElTdHViKGdlbmVyYXRlT3BHZXRG
cm9tU2NvcGVUaHVuazxHbG9iYWxMZXhpY2FsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcz4pOwog
ICAgIGVsc2UKLSAgICAgICAgY29kZSA9IHZtLmdldENUSVN0dWIoZ2VuZXJpY0dldEZyb21TY29w
ZUdlbmVyYXRvcik7CisgICAgICAgIGNvZGUgPSB2bS5nZXRDVElTdHViKGdlbmVyYXRlT3BHZXRG
cm9tU2NvcGVUaHVuazxHbG9iYWxWYXI+KTsKIAogICAgIGVtaXROYWtlZE5lYXJDYWxsKGNvZGUu
cmV0YWdnZWRDb2RlPE5vUHRyVGFnPigpKTsKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRz
dCk7CiB9CiAKLU1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gSklUOjpnZW5l
cmF0ZU9wR2V0RnJvbVNjb3BlVGh1bmsoVk0mIHZtLCBzdGQ6Om9wdGlvbmFsPFJlc29sdmVUeXBl
PiByZXNvbHZlVHlwZSwgY29uc3QgY2hhciogdGh1bmtOYW1lKQordGVtcGxhdGUgPFJlc29sdmVU
eXBlIHByb2ZpbGVkUmVzb2x2ZVR5cGU+CitNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQ
dHJUYWc+IEpJVDo6Z2VuZXJhdGVPcEdldEZyb21TY29wZVRodW5rKFZNJiB2bSkKIHsKICAgICAv
LyBUaGUgdGh1bmsgZ2VuZXJhdGVkIGJ5IHRoaXMgZnVuY3Rpb24gY2FuIG9ubHkgd29yayB3aXRo
IHRoZSBMTEludCAvIEJhc2VsaW5lIEpJVCBiZWNhdXNlCiAgICAgLy8gaXQgbWFrZXMgYXNzdW1w
dGlvbnMgYWJvdXQgdGhlIHJpZ2h0IGdsb2JhbE9iamVjdCBiZWluZyBhdmFpbGFibGUgZnJvbSBD
YWxsRnJhbWU6OmNvZGVCbG9jaygpLgpAQCAtMjQ3OCw0MyArMjQ5Nyw0NCBAQCBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IEpJCiAgICAgICAgIH0KICAgICB9OwogCi0gICAg
aWYgKHJlc29sdmVUeXBlKSB7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKCpyZXNvbHZlVHlwZSA9
PSBDbG9zdXJlVmFyIHx8ICpyZXNvbHZlVHlwZSA9PSBDbG9zdXJlVmFyV2l0aFZhckluamVjdGlv
bkNoZWNrcyk7Ci0gICAgICAgIGVtaXRDb2RlKCpyZXNvbHZlVHlwZSk7Ci0gICAgfSBlbHNlIHsK
KyAgICBpZiAocHJvZmlsZWRSZXNvbHZlVHlwZSA9PSBDbG9zdXJlVmFyIHx8IHByb2ZpbGVkUmVz
b2x2ZVR5cGUgPT0gQ2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MpCisgICAgICAgIGVt
aXRDb2RlKHByb2ZpbGVkUmVzb2x2ZVR5cGUpOworICAgIGVsc2UgewogICAgICAgICBKdW1wTGlz
dCBza2lwVG9FbmQ7CiAgICAgICAgIGppdC5sb2FkMzIoQWRkcmVzcyhtZXRhZGF0YUdQUiwgTWV0
YWRhdGE6Om9mZnNldE9mR2V0UHV0SW5mbygpKSwgcmVnVDApOwogICAgICAgICBqaXQuYW5kMzIo
VHJ1c3RlZEltbTMyKEdldFB1dEluZm86OnR5cGVCaXRzKSwgcmVnVDApOyAvLyBMb2FkIFJlc29s
dmVUeXBlIGludG8gVDAKIAotICAgICAgICBKdW1wIG5vdEdsb2JhbFZhciA9IGppdC5icmFuY2gz
MihOb3RFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW0zMihHbG9iYWxWYXIpKTsKLSAgICAgICAgZW1p
dENvZGUoR2xvYmFsVmFyKTsKLSAgICAgICAgc2tpcFRvRW5kLmFwcGVuZChqaXQuanVtcCgpKTsK
LSAgICAgICAgbm90R2xvYmFsVmFyLmxpbmsoJmppdCk7Ci0KLSAgICAgICAgSnVtcCBub3RHbG9i
YWxWYXJXaXRoVmFySW5qZWN0aW9uID0gaml0LmJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMCwgVHJ1
c3RlZEltbTMyKEdsb2JhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MpKTsKLSAgICAgICAgZW1p
dENvZGUoR2xvYmFsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcyk7Ci0gICAgICAgIHNraXBUb0Vu
ZC5hcHBlbmQoaml0Lmp1bXAoKSk7Ci0gICAgICAgIG5vdEdsb2JhbFZhcldpdGhWYXJJbmplY3Rp
b24ubGluaygmaml0KTsKKyAgICAgICAgYXV0byBlbWl0Q2FzZVdpdGhvdXRDaGVjayA9IFsmXSAo
UmVzb2x2ZVR5cGUgcmVzb2x2ZVR5cGUpIHsKKyAgICAgICAgICAgIEp1bXAgbm90Q2FzZSA9IGpp
dC5icmFuY2gzMihOb3RFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW0zMihyZXNvbHZlVHlwZSkpOwor
ICAgICAgICAgICAgZW1pdENvZGUocmVzb2x2ZVR5cGUpOworICAgICAgICAgICAgc2tpcFRvRW5k
LmFwcGVuZChqaXQuanVtcCgpKTsKKyAgICAgICAgICAgIG5vdENhc2UubGluaygmaml0KTsKKyAg
ICAgICAgfTsKIAotICAgICAgICBKdW1wIGlzR2xvYmFsUHJvcGVydHkgPSBqaXQuYnJhbmNoMzIo
RXF1YWwsIHJlZ1QwLCBUcnVzdGVkSW1tMzIoR2xvYmFsUHJvcGVydHkpKTsKLSAgICAgICAgSnVt
cCBub3RHbG9iYWxQcm9wZXJ0eVdpdGhWYXJJbmplY3Rpb25zID0gaml0LmJyYW5jaDMyKE5vdEVx
dWFsLCByZWdUMCwgVHJ1c3RlZEltbTMyKEdsb2JhbFByb3BlcnR5V2l0aFZhckluamVjdGlvbkNo
ZWNrcykpOwotICAgICAgICBpc0dsb2JhbFByb3BlcnR5LmxpbmsoJmppdCk7Ci0gICAgICAgIGVt
aXRDb2RlKEdsb2JhbFByb3BlcnR5KTsKLSAgICAgICAgc2tpcFRvRW5kLmFwcGVuZChqaXQuanVt
cCgpKTsKLSAgICAgICAgbm90R2xvYmFsUHJvcGVydHlXaXRoVmFySW5qZWN0aW9ucy5saW5rKCZq
aXQpOworICAgICAgICBhdXRvIGVtaXRDYXNlID0gWyZdIChSZXNvbHZlVHlwZSByZXNvbHZlVHlw
ZSkgeworICAgICAgICAgICAgaWYgKHByb2ZpbGVkUmVzb2x2ZVR5cGUgIT0gcmVzb2x2ZVR5cGUp
CisgICAgICAgICAgICAgICAgZW1pdENhc2VXaXRob3V0Q2hlY2socmVzb2x2ZVR5cGUpOworICAg
ICAgICB9OwogCi0gICAgICAgIEp1bXAgbm90R2xvYmFsTGV4aWNhbFZhciA9IGppdC5icmFuY2gz
MihOb3RFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW0zMihHbG9iYWxMZXhpY2FsVmFyKSk7Ci0gICAg
ICAgIGVtaXRDb2RlKEdsb2JhbExleGljYWxWYXIpOwotICAgICAgICBza2lwVG9FbmQuYXBwZW5k
KGppdC5qdW1wKCkpOwotICAgICAgICBub3RHbG9iYWxMZXhpY2FsVmFyLmxpbmsoJmppdCk7Cisg
ICAgICAgIHN3aXRjaCAocHJvZmlsZWRSZXNvbHZlVHlwZSkgeworICAgICAgICBjYXNlIFJlc29s
dmVkQ2xvc3VyZVZhcjoKKyAgICAgICAgY2FzZSBNb2R1bGVWYXI6CisgICAgICAgIGNhc2UgVW5y
ZXNvbHZlZFByb3BlcnR5OgorICAgICAgICBjYXNlIFVucmVzb2x2ZWRQcm9wZXJ0eVdpdGhWYXJJ
bmplY3Rpb25DaGVja3M6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIGVtaXRDYXNlV2l0aG91dENoZWNrKHByb2ZpbGVkUmVzb2x2ZVR5cGUpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KIAotICAgICAgICBKdW1wIG5vdEdsb2JhbExleGlj
YWxWYXJXaXRoVmFySW5qZWN0aW9ucyA9IGppdC5icmFuY2gzMihOb3RFcXVhbCwgcmVnVDAsIFRy
dXN0ZWRJbW0zMihHbG9iYWxMZXhpY2FsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcykpOwotICAg
ICAgICBlbWl0Q29kZShHbG9iYWxMZXhpY2FsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcyk7Ci0g
ICAgICAgIHNraXBUb0VuZC5hcHBlbmQoaml0Lmp1bXAoKSk7Ci0gICAgICAgIG5vdEdsb2JhbExl
eGljYWxWYXJXaXRoVmFySW5qZWN0aW9ucy5saW5rKCZqaXQpOworICAgICAgICBlbWl0Q2FzZShH
bG9iYWxWYXIpOworICAgICAgICBlbWl0Q2FzZShHbG9iYWxQcm9wZXJ0eSk7CisgICAgICAgIGVt
aXRDYXNlKEdsb2JhbExleGljYWxWYXIpOworICAgICAgICBlbWl0Q2FzZShHbG9iYWxWYXJXaXRo
VmFySW5qZWN0aW9uQ2hlY2tzKTsKKyAgICAgICAgZW1pdENhc2UoR2xvYmFsUHJvcGVydHlXaXRo
VmFySW5qZWN0aW9uQ2hlY2tzKTsKKyAgICAgICAgZW1pdENhc2UoR2xvYmFsTGV4aWNhbFZhcldp
dGhWYXJJbmplY3Rpb25DaGVja3MpOwogCiAgICAgICAgIHNsb3dDYXNlLmFwcGVuZChqaXQuanVt
cCgpKTsKLQogICAgICAgICBza2lwVG9FbmQubGluaygmaml0KTsKICAgICB9CiAKQEAgLTI1MjUs
NyArMjU0NSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gSkkKIAog
ICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoaml0LCBHTE9CQUxfVEhVTktfSUQsIExpbmtCdWZm
ZXI6OlByb2ZpbGU6OlRodW5rKTsKICAgICBwYXRjaEJ1ZmZlci5saW5rKHNsb3dDYXNlLCBDb2Rl
TG9jYXRpb25MYWJlbCh2bS5nZXRDVElTdHViKHNsb3dfb3BfZ2V0X2Zyb21fc2NvcGVHZW5lcmF0
b3IpLnJldGFnZ2VkQ29kZTxOb1B0clRhZz4oKSkpOwotICAgIHJldHVybiBGSU5BTElaRV9DT0RF
KHBhdGNoQnVmZmVyLCBKSVRUaHVua1B0clRhZywgdGh1bmtOYW1lKTsKKyAgICByZXR1cm4gRklO
QUxJWkVfQ09ERShwYXRjaEJ1ZmZlciwgSklUVGh1bmtQdHJUYWcsICJnZXRfZnJvbV9zY29wZSB0
aHVuayIpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IEpJVDo6
c2xvd19vcF9nZXRfZnJvbV9zY29wZUdlbmVyYXRvcihWTSYgdm0pCkBAIC0yNjkwLDM1ICsyNzEw
LDM1IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF90b19zY29wZShjb25zdCBJbnMKICAgICAgICAg
bG9hZDMyRnJvbU1ldGFkYXRhKGJ5dGVjb2RlLCBPcFB1dFRvU2NvcGU6Ok1ldGFkYXRhOjpvZmZz
ZXRPZkdldFB1dEluZm8oKSwgcmVnVDApOwogICAgICAgICBhbmQzMihUcnVzdGVkSW1tMzIoR2V0
UHV0SW5mbzo6dHlwZUJpdHMpLCByZWdUMCk7IC8vIExvYWQgUmVzb2x2ZVR5cGUgaW50byBUMAog
Ci0gICAgICAgIEp1bXAgaXNHbG9iYWxQcm9wZXJ0eSA9IGJyYW5jaDMyKEVxdWFsLCByZWdUMCwg
VHJ1c3RlZEltbTMyKEdsb2JhbFByb3BlcnR5KSk7Ci0gICAgICAgIEp1bXAgbm90R2xvYmFsUHJv
cGVydHlXaXRoVmFySW5qZWN0aW9ucyA9IGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMCwgVHJ1c3Rl
ZEltbTMyKEdsb2JhbFByb3BlcnR5V2l0aFZhckluamVjdGlvbkNoZWNrcykpOwotICAgICAgICBp
c0dsb2JhbFByb3BlcnR5LmxpbmsodGhpcyk7Ci0gICAgICAgIGVtaXRDb2RlKEdsb2JhbFByb3Bl
cnR5KTsKLSAgICAgICAgc2tpcFRvRW5kLmFwcGVuZChqdW1wKCkpOwotICAgICAgICBub3RHbG9i
YWxQcm9wZXJ0eVdpdGhWYXJJbmplY3Rpb25zLmxpbmsodGhpcyk7Ci0KLSAgICAgICAgSnVtcCBu
b3RHbG9iYWxWYXIgPSBicmFuY2gzMihOb3RFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW0zMihHbG9i
YWxWYXIpKTsKLSAgICAgICAgZW1pdENvZGUoR2xvYmFsVmFyKTsKLSAgICAgICAgc2tpcFRvRW5k
LmFwcGVuZChqdW1wKCkpOwotICAgICAgICBub3RHbG9iYWxWYXIubGluayh0aGlzKTsKKyAgICAg
ICAgYXV0byBlbWl0Q2FzZVdpdGhvdXRDaGVjayA9IFsmXSAoUmVzb2x2ZVR5cGUgcmVzb2x2ZVR5
cGUpIHsKKyAgICAgICAgICAgIEp1bXAgbm90Q2FzZSA9IGJyYW5jaDMyKE5vdEVxdWFsLCByZWdU
MCwgVHJ1c3RlZEltbTMyKHJlc29sdmVUeXBlKSk7CisgICAgICAgICAgICBlbWl0Q29kZShyZXNv
bHZlVHlwZSk7CisgICAgICAgICAgICBza2lwVG9FbmQuYXBwZW5kKGp1bXAoKSk7CisgICAgICAg
ICAgICBub3RDYXNlLmxpbmsodGhpcyk7CisgICAgICAgIH07CiAKLSAgICAgICAgSnVtcCBub3RH
bG9iYWxWYXJXaXRoVmFySW5qZWN0aW9uID0gYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QwLCBUcnVz
dGVkSW1tMzIoR2xvYmFsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcykpOwotICAgICAgICBlbWl0
Q29kZShHbG9iYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzKTsKLSAgICAgICAgc2tpcFRvRW5k
LmFwcGVuZChqdW1wKCkpOwotICAgICAgICBub3RHbG9iYWxWYXJXaXRoVmFySW5qZWN0aW9uLmxp
bmsodGhpcyk7CisgICAgICAgIGF1dG8gZW1pdENhc2UgPSBbJl0gKFJlc29sdmVUeXBlIHJlc29s
dmVUeXBlKSB7CisgICAgICAgICAgICBpZiAocHJvZmlsZWRSZXNvbHZlVHlwZSAhPSByZXNvbHZl
VHlwZSkKKyAgICAgICAgICAgICAgICBlbWl0Q2FzZVdpdGhvdXRDaGVjayhyZXNvbHZlVHlwZSk7
CisgICAgICAgIH07CiAKLSAgICAgICAgSnVtcCBub3RHbG9iYWxMZXhpY2FsVmFyID0gYnJhbmNo
MzIoTm90RXF1YWwsIHJlZ1QwLCBUcnVzdGVkSW1tMzIoR2xvYmFsTGV4aWNhbFZhcikpOwotICAg
ICAgICBlbWl0Q29kZShHbG9iYWxMZXhpY2FsVmFyKTsKLSAgICAgICAgc2tpcFRvRW5kLmFwcGVu
ZChqdW1wKCkpOwotICAgICAgICBub3RHbG9iYWxMZXhpY2FsVmFyLmxpbmsodGhpcyk7CisgICAg
ICAgIHN3aXRjaCAocHJvZmlsZWRSZXNvbHZlVHlwZSkgeworICAgICAgICBjYXNlIFVucmVzb2x2
ZWRQcm9wZXJ0eToKKyAgICAgICAgY2FzZSBVbnJlc29sdmVkUHJvcGVydHlXaXRoVmFySW5qZWN0
aW9uQ2hlY2tzOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICBlbWl0Q2FzZVdpdGhvdXRDaGVjayhwcm9maWxlZFJlc29sdmVUeXBlKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CiAKLSAgICAgICAgSnVtcCBub3RHbG9iYWxMZXhpY2FsVmFy
V2l0aFZhckluamVjdGlvbnMgPSBicmFuY2gzMihOb3RFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW0z
MihHbG9iYWxMZXhpY2FsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcykpOwotICAgICAgICBlbWl0
Q29kZShHbG9iYWxMZXhpY2FsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcyk7Ci0gICAgICAgIHNr
aXBUb0VuZC5hcHBlbmQoanVtcCgpKTsKLSAgICAgICAgbm90R2xvYmFsTGV4aWNhbFZhcldpdGhW
YXJJbmplY3Rpb25zLmxpbmsodGhpcyk7CisgICAgICAgIGVtaXRDYXNlKEdsb2JhbFZhcik7Cisg
ICAgICAgIGVtaXRDYXNlKEdsb2JhbFByb3BlcnR5KTsKKyAgICAgICAgZW1pdENhc2UoR2xvYmFs
TGV4aWNhbFZhcik7CisgICAgICAgIGVtaXRDYXNlKEdsb2JhbFZhcldpdGhWYXJJbmplY3Rpb25D
aGVja3MpOworICAgICAgICBlbWl0Q2FzZShHbG9iYWxQcm9wZXJ0eVdpdGhWYXJJbmplY3Rpb25D
aGVja3MpOworICAgICAgICBlbWl0Q2FzZShHbG9iYWxMZXhpY2FsVmFyV2l0aFZhckluamVjdGlv
bkNoZWNrcyk7CiAKICAgICAgICAgYWRkU2xvd0Nhc2UoanVtcCgpKTsKLQogICAgICAgICBza2lw
VG9FbmQubGluayh0aGlzKTsKICAgICB9CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>