<?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>209705</bug_id>
          
          <creation_ts>2020-03-28 12:29:11 -0700</creation_ts>
          <short_desc>REGRESSION(r257963) UI process crashes when setting navigation delegate inside navigation delegate callbacks</short_desc>
          <delta_ts>2020-03-28 20:00:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>berto</cc>
    
    <cc>cgarcia</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1635229</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-28 12:29:11 -0700</bug_when>
    <thetext>REGRESSION(r257963) UI process crashes when setting navigation delegate inside navigation delegate callbacks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635232</commentid>
    <comment_count>1</comment_count>
      <attachid>394838</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-28 12:34:20 -0700</bug_when>
    <thetext>Created attachment 394838
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635233</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-03-28 12:35:23 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635234</commentid>
    <comment_count>3</comment_count>
      <attachid>394839</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-28 12:51:37 -0700</bug_when>
    <thetext>Created attachment 394839
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635291</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-28 19:59:02 -0700</bug_when>
    <thetext>Committed r259171: &lt;https://trac.webkit.org/changeset/259171&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 394839.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635294</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-28 20:00:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/61019027&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394838</attachid>
            <date>2020-03-28 12:34:20 -0700</date>
            <delta_ts>2020-03-28 12:51:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209705-20200328123419.patch</filename>
            <type>text/plain</type>
            <size>35606</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTkxNDMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDIwLTAzLTI4ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihy
MjU3OTYzKSBVSSBwcm9jZXNzIGNyYXNoZXMgd2hlbiBzZXR0aW5nIG5hdmlnYXRpb24gZGVsZWdh
dGUgaW5zaWRlIG5hdmlnYXRpb24gZGVsZWdhdGUgY2FsbGJhY2tzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk3MDUKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzYwODE0NzY1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEkgaW50cm9kdWNlZCBhIHBhdHRlcm4gb2YgbWFraW5nIG11bHRpcGxlIGRlbGVn
YXRlIGNhbGxzIHNlcXVlbnRpYWxseS4gIFRoaXMgaXMgYmFkIGJlY2F1c2UgdGhlIGRlbGVnYXRl
IGNhbiBjaGFuZ2UuCisgICAgICAgIFdlIG5lZWQgdG8gZ28gYmFjayB0byB0aGUgV2ViUGFnZVBy
b3h5IGFuZCBnZXQgdGhlIG5hdmlnYXRpb24gY2xpZW50IGFnYWluIGJldHdlZW4gY2FsbHMuCisg
ICAgICAgIEkgbWFudWFsbHkgdmVyaWZpZWQgdGhpcyBmaXhlcyB0aGUgY3Jhc2ggaW4gdGhlIHJh
ZGFyLgorICAgICAgICBDb3ZlcmVkIGJ5IG1vZGlmeWluZyBhbiBleGlzdGluZyBBUEkgdGVzdCB0
byBtb2RpZnkgdGhlIG5hdmlnYXRpb24gZGVsZWdhdGUgaW4gYSBjYWxsYmFjay4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oOgorICAgICAgICAoQVBJOjpO
YXZpZ2F0aW9uQ2xpZW50OjpkaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbik6CisgICAgICAg
IChBUEk6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUp
OgorICAgICAgICAoQVBJOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRGYWlsUHJvdmlzaW9uYWxOYXZp
Z2F0aW9uV2l0aEVycm9yKToKKyAgICAgICAgKEFQSTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkRmFp
bFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKToKKyAgICAgICAgKEFQSTo6TmF2aWdh
dGlvbkNsaWVudDo6ZGlkQ29tbWl0TmF2aWdhdGlvbik6CisgICAgICAgIChBUEk6Ok5hdmlnYXRp
b25DbGllbnQ6OmRpZENvbW1pdExvYWRGb3JGcmFtZSk6CisgICAgICAgIChBUEk6Ok5hdmlnYXRp
b25DbGllbnQ6OmRpZEZpbmlzaE5hdmlnYXRpb24pOgorICAgICAgICAoQVBJOjpOYXZpZ2F0aW9u
Q2xpZW50OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUpOgorICAgICAgICAoQVBJOjpOYXZpZ2F0aW9u
Q2xpZW50OjpkaWRGYWlsTmF2aWdhdGlvbldpdGhFcnJvcik6CisgICAgICAgIChBUEk6Ok5hdmln
YXRpb25DbGllbnQ6OmRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlU2V0UGFnZU5hdmlnYXRp
b25DbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9u
Q2xpZW50LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbToKKyAgICAgICAg
KFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjp+TmF2aWdhdGlvblN0YXRlKToKKyAgICAgICAgKFdl
YktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRTdGFydFByb3Zpc2lv
bmFsTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdh
dGlvbkNsaWVudDo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkRmFpbFByb3Zpc2lv
bmFsTmF2aWdhdGlvbldpdGhFcnJvcik6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0
ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50
OjpkaWRDb21taXROYXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRl
OjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZEZpbmlzaE5hdmlnYXRp
b24pOgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6
OmRpZEZpbmlzaExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0
ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkRmFpbE5hdmlnYXRpb25XaXRoRXJyb3IpOgorICAgICAg
ICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZEZhaWxMb2Fk
V2l0aEVycm9yRm9yRnJhbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWVTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZhaWxQ
cm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRpZEZhaWxMb2FkRm9yRnJhbWUpOgorCiAyMDIwLTAzLTI3ICBEYXZpZCBLaWx6ZXIgIDxk
ZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OnJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkIHNob3VsZCB2YWxpZGF0ZSBp
dHMgcGFyYW1ldGVycwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCShyZXZpc2lvbiAyNTkxNDMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Mzc5LDggKzQzNzksMTEgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMbwogICAgIG1fcGFnZUxvYWRTdGF0ZS5jb21t
aXRDaGFuZ2VzKCk7CiAgICAgaWYgKG1fbG9hZGVyQ2xpZW50KQogICAgICAgICBtX2xvYWRlckNs
aWVudC0+ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSgqdGhpcywgKmZyYW1lLCBuYXZp
Z2F0aW9uLmdldCgpLCBwcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRh
Lm9iamVjdCgpKS5nZXQoKSk7Ci0gICAgZWxzZQotICAgICAgICBtX25hdmlnYXRpb25DbGllbnQt
PmRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKCp0aGlzLCBXVEZNb3ZlKGZyYW1lSW5mbyks
IFdURk1vdmUocmVxdWVzdCksIG5hdmlnYXRpb24uZ2V0KCksIHByb2Nlc3MtPnRyYW5zZm9ybUhh
bmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKKyAgICBlbHNlIHsKKyAg
ICAgICAgaWYgKGZyYW1lSW5mby5pc01haW5GcmFtZSkKKyAgICAgICAgICAgIG1fbmF2aWdhdGlv
bkNsaWVudC0+ZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24oKnRoaXMsIHJlcXVlc3QsIG5h
dmlnYXRpb24uZ2V0KCksIHByb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRh
dGEub2JqZWN0KCkpLmdldCgpKTsKKyAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKCp0aGlzLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3Zl
KGZyYW1lSW5mbykpOworICAgIH0KIAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAgICAgbV93ZWJz
aXRlRGF0YVN0b3JlLT5hdXRoZW50aWNhdG9yTWFuYWdlcigpLmNhbmNlbFJlcXVlc3QobV93ZWJQ
YWdlSUQsIGZyYW1lSUQpOwpAQCAtNDU0NCw4ICs0NTQ3LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2EKIAogICAgIGlmIChtX2xvYWRlckNsaWVudCkKICAgICAg
ICAgbV9sb2FkZXJDbGllbnQtPmRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFt
ZSgqdGhpcywgKmZyYW1lLCBuYXZpZ2F0aW9uLmdldCgpLCBlcnJvciwgcHJvY2Vzcy0+dHJhbnNm
b3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwotICAgIGVsc2UK
LSAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9u
V2l0aEVycm9yKCp0aGlzLCBXVEZNb3ZlKGZyYW1lSW5mbyksIFdURk1vdmUocmVxdWVzdCksIG5h
dmlnYXRpb24uZ2V0KCksIGVycm9yLCBwcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3Rz
KHVzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7CisgICAgZWxzZSB7CisgICAgICAgIG1fbmF2aWdh
dGlvbkNsaWVudC0+ZGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlvbldpdGhFcnJvcigqdGhpcywg
RnJhbWVJbmZvRGF0YSB7IGZyYW1lSW5mbyB9LCBuYXZpZ2F0aW9uLmdldCgpLCBlcnJvciwgcHJv
Y2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkp
OworICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRo
RXJyb3JGb3JGcmFtZSgqdGhpcywgV1RGTW92ZShyZXF1ZXN0KSwgZXJyb3IsIFdURk1vdmUoZnJh
bWVJbmZvKSk7CisgICAgfQogCiAgICAgbV9mYWlsaW5nUHJvdmlzaW9uYWxMb2FkVVJMID0geyB9
OwogCkBAIC00NjgyLDkgKzQ2ODcsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExv
YWRGb3JGcmFtZQogICAgIG1fcGFnZUxvYWRTdGF0ZS5jb21taXRDaGFuZ2VzKCk7CiAgICAgaWYg
KG1fbG9hZGVyQ2xpZW50KQogICAgICAgICBtX2xvYWRlckNsaWVudC0+ZGlkQ29tbWl0TG9hZEZv
ckZyYW1lKCp0aGlzLCAqZnJhbWUsIG5hdmlnYXRpb24uZ2V0KCksIG1fcHJvY2Vzcy0+dHJhbnNm
b3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwotICAgIGVsc2UK
LSAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRDb21taXROYXZpZ2F0aW9uKCp0aGlzLCBX
VEZNb3ZlKGZyYW1lSW5mbyksIFdURk1vdmUocmVxdWVzdCksIG5hdmlnYXRpb24uZ2V0KCksIG1f
cHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0
KCkpOwotCisgICAgZWxzZSB7CisgICAgICAgIGlmIChmcmFtZUluZm8uaXNNYWluRnJhbWUpCisg
ICAgICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZENvbW1pdE5hdmlnYXRpb24oKnRoaXMs
IG5hdmlnYXRpb24uZ2V0KCksIG1fcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1
c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOworICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRp
ZENvbW1pdExvYWRGb3JGcmFtZSgqdGhpcywgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmcmFt
ZUluZm8pKTsKKyAgICB9CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBpZiAo
ZnJhbWUtPmlzTWFpbkZyYW1lKCkpCiAgICAgICAgIGludmFsaWRhdGVBbGxBdHRhY2htZW50cygp
OwpAQCAtNDc1NCw4ICs0NzYxLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2Fk
Rm9yRnJhbWUKICAgICBtX3BhZ2VMb2FkU3RhdGUuY29tbWl0Q2hhbmdlcygpOwogICAgIGlmICht
X2xvYWRlckNsaWVudCkKICAgICAgICAgbV9sb2FkZXJDbGllbnQtPmRpZEZpbmlzaExvYWRGb3JG
cmFtZSgqdGhpcywgKmZyYW1lLCBuYXZpZ2F0aW9uLmdldCgpLCBtX3Byb2Nlc3MtPnRyYW5zZm9y
bUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKLSAgICBlbHNlCi0g
ICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkRmluaXNoTmF2aWdhdGlvbigqdGhpcywgV1RG
TW92ZShmcmFtZUluZm8pLCBXVEZNb3ZlKHJlcXVlc3QpLCBuYXZpZ2F0aW9uLmdldCgpLCBtX3By
b2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgp
KTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKGZyYW1lSW5mby5pc01haW5GcmFtZSkKKyAgICAg
ICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkRmluaXNoTmF2aWdhdGlvbigqdGhpcywgbmF2
aWdhdGlvbi5nZXQoKSwgbV9wcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJE
YXRhLm9iamVjdCgpKS5nZXQoKSk7CisgICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkRmlu
aXNoTG9hZEZvckZyYW1lKCp0aGlzLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZyYW1lSW5m
bykpOworICAgIH0KIAogICAgIGlmIChpc01haW5GcmFtZSkgewogICAgICAgICByZXBvcnRQYWdl
TG9hZFJlc3VsdCgpOwpAQCAtNDgwNSw4ICs0ODE1LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRGYWlsTG9hZEZvckZyYW1lKEYKICAgICBtX3BhZ2VMb2FkU3RhdGUuY29tbWl0Q2hhbmdlcygp
OwogICAgIGlmIChtX2xvYWRlckNsaWVudCkKICAgICAgICAgbV9sb2FkZXJDbGllbnQtPmRpZEZh
aWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoKnRoaXMsICpmcmFtZSwgbmF2aWdhdGlvbi5nZXQoKSwg
ZXJyb3IsIG1fcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmpl
Y3QoKSkuZ2V0KCkpOwotICAgIGVsc2UKLSAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRG
YWlsTmF2aWdhdGlvbldpdGhFcnJvcigqdGhpcywgV1RGTW92ZShmcmFtZUluZm8pLCBXVEZNb3Zl
KHJlcXVlc3QpLCBuYXZpZ2F0aW9uLmdldCgpLCBlcnJvciwgbV9wcm9jZXNzLT50cmFuc2Zvcm1I
YW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7CisgICAgZWxzZSB7Cisg
ICAgICAgIGlmIChmcmFtZUluZm8uaXNNYWluRnJhbWUpCisgICAgICAgICAgICBtX25hdmlnYXRp
b25DbGllbnQtPmRpZEZhaWxOYXZpZ2F0aW9uV2l0aEVycm9yKCp0aGlzLCBmcmFtZUluZm8sIG5h
dmlnYXRpb24uZ2V0KCksIGVycm9yLCBtX3Byb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVj
dHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKKyAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50
LT5kaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKCp0aGlzLCBXVEZNb3ZlKHJlcXVlc3QpLCBl
cnJvciwgV1RGTW92ZShmcmFtZUluZm8pKTsKKyAgICB9CiAKICAgICBpZiAoaXNNYWluRnJhbWUp
IHsKICAgICAgICAgcmVwb3J0UGFnZUxvYWRSZXN1bHQoZXJyb3IpOwpJbmRleDogU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oCShyZXZpc2lv
biAyNTkxNDMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNs
aWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC03OCwxNiArNzgsMjEgQEAgY2xhc3MgTmF2aWdhdGlv
bkNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+TmF2aWdhdGlvbkNsaWVudCgpIHsgfQog
Ci0gICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKFdlYktpdDo6
V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmLCBOYXZpZ2F0aW9uKiwgT2JqZWN0KikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRp
ZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgTmF2aWdhdGlvbiosIE9iamVjdCopIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYktpdDo6V2Vi
UGFnZVByb3h5JiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYktpdDo6RnJhbWVJbmZv
RGF0YSYmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9y
UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgTmF2aWdhdGlvbios
IE9iamVjdCopIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0
KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgY29uc3QgV1RGOjpTdHJpbmcmIGRlc3RpbmF0aW9uVVJM
LCBkb3VibGUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3Qo
V2ViS2l0OjpXZWJQYWdlUHJveHkmLCBjb25zdCBXVEY6OlN0cmluZyYgc291cmNlVVJMLCBjb25z
dCBXVEY6OlN0cmluZyYgZGVzdGluYXRpb25VUkwpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRD
YW5jZWxDbGllbnRSZWRpcmVjdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQotICAgIHZpcnR1
YWwgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uV2l0aEVycm9yKFdlYktpdDo6V2Vi
UGFnZVByb3h5JiwgV2ViS2l0OjpGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmLCBOYXZpZ2F0aW9uKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIE9iamVj
dCopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXROYXZpZ2F0aW9uKFdlYktpdDo6V2Vi
UGFnZVByb3h5JiwgV2ViS2l0OjpGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmLCBOYXZpZ2F0aW9uKiwgT2JqZWN0KikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEZh
aWxQcm92aXNpb25hbE5hdmlnYXRpb25XaXRoRXJyb3IoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBX
ZWJLaXQ6OkZyYW1lSW5mb0RhdGEmJiwgTmF2aWdhdGlvbiosIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlRXJyb3ImLCBPYmplY3QqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbFByb3Zpc2lv
bmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJLaXQ6
OkZyYW1lSW5mb0RhdGEmJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdE5hdmlnYXRp
b24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBOYXZpZ2F0aW9uKiwgT2JqZWN0KikgeyB9CisgICAg
dmlydHVhbCB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEmJikgeyB9
CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaERvY3VtZW50TG9hZChXZWJLaXQ6OldlYlBhZ2VQ
cm94eSYsIE5hdmlnYXRpb24qLCBPYmplY3QqKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmlu
aXNoTmF2aWdhdGlvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6RnJhbWVJbmZvRGF0
YSYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgTmF2aWdhdGlvbiosIE9iamVjdCopIHsg
fQotICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsTmF2aWdhdGlvbldpdGhFcnJvcihXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYsIFdlYktpdDo6RnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiwgTmF2aWdhdGlvbiosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBPYmpl
Y3QqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTmF2aWdhdGlvbihXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYsIE5hdmlnYXRpb24qLCBPYmplY3QqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmluaXNoTG9hZEZvckZyYW1lKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYsIFdlYktpdDo6RnJhbWVJbmZvRGF0YSYmKSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgZGlkRmFpbE5hdmlnYXRpb25XaXRoRXJyb3IoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBj
b25zdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEmLCBOYXZpZ2F0aW9uKiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYsIE9iamVjdCopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsTG9h
ZFdpdGhFcnJvckZvckZyYW1lKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJLaXQ6OkZyYW1l
SW5mb0RhdGEmJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRp
b24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBOYXZpZ2F0aW9uKiwgV2ViS2l0OjpTYW1lRG9jdW1l
bnROYXZpZ2F0aW9uVHlwZSwgT2JqZWN0KikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkRGlz
cGxheUluc2VjdXJlQ29udGVudChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIEFQSTo6T2JqZWN0Kikg
eyB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAJKHJldmlz
aW9uIDI1OTE0MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIxNDgsMTMgKzIxNDgsMTAgQEAgdm9pZCBXS1BhZ2VTZXRQYWdl
TmF2aWdhdGlvbkNsaWVudChXS1BhZwogICAgICAgICAgICAgbV9jbGllbnQuZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvblJlc3BvbnNlKHRvQVBJKCZwYWdlKSwgdG9BUEkobmF2aWdhdGlvblJlc3Bv
bnNlLnB0cigpKSwgdG9BUEkobGlzdGVuZXIucHRyKCkpLCB0b0FQSSh1c2VyRGF0YSksIG1fY2xp
ZW50LmJhc2UuY2xpZW50SW5mbyk7CiAgICAgICAgIH0KIAotICAgICAgICB2b2lkIGRpZFN0YXJ0
UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwgRnJhbWVJbmZvRGF0YSYm
IGZyYW1lSW5mbywgUmVzb3VyY2VSZXF1ZXN0JiYsIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlv
biwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSBvdmVycmlkZQorICAgICAgICB2b2lkIGRpZFN0YXJ0
UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBBUEk6Ok9iamVjdCogdXNlckRh
dGEpIG92ZXJyaWRlCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmICghZnJhbWVJbmZvLmlzTWFp
bkZyYW1lKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmICghbV9jbGll
bnQuZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICAgICAgbV9jbGllbnQuZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24odG9B
UEkoJnBhZ2UpLCB0b0FQSShuYXZpZ2F0aW9uKSwgdG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5i
YXNlLmNsaWVudEluZm8pOworICAgICAgICAgICAgaWYgKG1fY2xpZW50LmRpZFN0YXJ0UHJvdmlz
aW9uYWxOYXZpZ2F0aW9uKQorICAgICAgICAgICAgICAgIG1fY2xpZW50LmRpZFN0YXJ0UHJvdmlz
aW9uYWxOYXZpZ2F0aW9uKHRvQVBJKCZwYWdlKSwgdG9BUEkobmF2aWdhdGlvbiksIHRvQVBJKHVz
ZXJEYXRhKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCiAgICAgICAg
IHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxOYXZpZ2F0aW9uKFdl
YlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBBUEk6Ok9iamVj
dCogdXNlckRhdGEpIG92ZXJyaWRlCkBAIC0yMTY0LDcgKzIxNjEsNyBAQCB2b2lkIFdLUGFnZVNl
dFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KFdLUGFnCiAgICAgICAgICAgICBtX2NsaWVudC5kaWRSZWNl
aXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbE5hdmlnYXRpb24odG9BUEkoJnBhZ2UpLCB0
b0FQSShuYXZpZ2F0aW9uKSwgdG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5iYXNlLmNsaWVudElu
Zm8pOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0
aW9uV2l0aEVycm9yKFdlYlBhZ2VQcm94eSYgcGFnZSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5m
bywgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlv
biwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IsIEFQSTo6T2JqZWN0KiB1c2Vy
RGF0YSkgb3ZlcnJpZGUKKyAgICAgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9u
V2l0aEVycm9yKFdlYlBhZ2VQcm94eSYgcGFnZSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywg
QVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
JiBlcnJvciwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSBvdmVycmlkZQogICAgICAgICB7CiAgICAg
ICAgICAgICBpZiAoZnJhbWVJbmZvLmlzTWFpbkZyYW1lKSB7CiAgICAgICAgICAgICAgICAgaWYg
KG1fY2xpZW50LmRpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb24pCkBAIC0yMTc1LDMyICsyMTcy
LDIyIEBAIHZvaWQgV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQoV0tQYWcKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgZGlkQ29tbWl0TmF2aWdhdGlvbihXZWJQ
YWdlUHJveHkmIHBhZ2UsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFJlc291cmNlUmVxdWVz
dCYmLCBBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24sIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkg
b3ZlcnJpZGUKKyAgICAgICAgdm9pZCBkaWRDb21taXROYXZpZ2F0aW9uKFdlYlBhZ2VQcm94eSYg
cGFnZSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBBUEk6Ok9iamVjdCogdXNlckRhdGEp
IG92ZXJyaWRlCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmICghZnJhbWVJbmZvLmlzTWFpbkZy
YW1lKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYgKCFtX2NsaWVu
dC5kaWRDb21taXROYXZpZ2F0aW9uKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
ICAgIG1fY2xpZW50LmRpZENvbW1pdE5hdmlnYXRpb24odG9BUEkoJnBhZ2UpLCB0b0FQSShuYXZp
Z2F0aW9uKSwgdG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAg
ICAgICAgICAgaWYgKG1fY2xpZW50LmRpZENvbW1pdE5hdmlnYXRpb24pCisgICAgICAgICAgICAg
ICAgbV9jbGllbnQuZGlkQ29tbWl0TmF2aWdhdGlvbih0b0FQSSgmcGFnZSksIHRvQVBJKG5hdmln
YXRpb24pLCB0b0FQSSh1c2VyRGF0YSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAgICAg
ICAgIH0KIAotICAgICAgICB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oV2ViUGFnZVByb3h5JiBw
YWdlLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBSZXNvdXJjZVJlcXVlc3QmJiwgQVBJOjpO
YXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpIG92ZXJyaWRlCisg
ICAgICAgIHZvaWQgZGlkRmluaXNoTmF2aWdhdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6
TmF2aWdhdGlvbiogbmF2aWdhdGlvbiwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSBvdmVycmlkZQog
ICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIWZyYW1lSW5mby5pc01haW5GcmFtZSkKLSAgICAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZEZpbmlzaE5h
dmlnYXRpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgbV9jbGllbnQu
ZGlkRmluaXNoTmF2aWdhdGlvbih0b0FQSSgmcGFnZSksIHRvQVBJKG5hdmlnYXRpb24pLCB0b0FQ
SSh1c2VyRGF0YSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgICAgICBpZiAo
bV9jbGllbnQuZGlkRmluaXNoTmF2aWdhdGlvbikKKyAgICAgICAgICAgICAgICBtX2NsaWVudC5k
aWRGaW5pc2hOYXZpZ2F0aW9uKHRvQVBJKCZwYWdlKSwgdG9BUEkobmF2aWdhdGlvbiksIHRvQVBJ
KHVzZXJEYXRhKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCi0gICAg
ICAgIHZvaWQgZGlkRmFpbE5hdmlnYXRpb25XaXRoRXJyb3IoV2ViUGFnZVByb3h5JiBwYWdlLCBG
cmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgQVBJ
OjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBl
cnJvciwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSBvdmVycmlkZQorICAgICAgICB2b2lkIGRpZEZh
aWxOYXZpZ2F0aW9uV2l0aEVycm9yKFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgRnJhbWVJbmZv
RGF0YSYsIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYgZXJyb3IsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkgb3ZlcnJpZGUKICAgICAgICAg
ewotICAgICAgICAgICAgaWYgKCFmcmFtZUluZm8uaXNNYWluRnJhbWUpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kaWRGYWlsTmF2aWdhdGlvbikK
LSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBtX2NsaWVudC5kaWRGYWlsTmF2
aWdhdGlvbih0b0FQSSgmcGFnZSksIHRvQVBJKG5hdmlnYXRpb24pLCB0b0FQSShlcnJvciksIHRv
QVBJKHVzZXJEYXRhKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgICAgIGlm
IChtX2NsaWVudC5kaWRGYWlsTmF2aWdhdGlvbikKKyAgICAgICAgICAgICAgICBtX2NsaWVudC5k
aWRGYWlsTmF2aWdhdGlvbih0b0FQSSgmcGFnZSksIHRvQVBJKG5hdmlnYXRpb24pLCB0b0FQSShl
cnJvciksIHRvQVBJKHVzZXJEYXRhKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAg
ICAgfQogCiAgICAgICAgIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkKFdlYlBhZ2VQcm94eSYg
cGFnZSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBBUEk6Ok9iamVjdCogdXNlckRhdGEp
IG92ZXJyaWRlCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRO
YXZpZ2F0aW9uQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcAkocmV2aXNpb24gMjU5MTQzKQor
KysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2aWdhdGlvbkNsaWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDEwICs0Myw4IEBAIHB1YmxpYzoKICAgICB9CiAK
IHByaXZhdGU6Ci0gICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbihXZWJQYWdl
UHJveHkmLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBSZXNvdXJjZVJlcXVlc3QmJiwgQVBJ
OjpOYXZpZ2F0aW9uKiwgQVBJOjpPYmplY3QqIC8qIHVzZXJEYXRhICovKSBvdmVycmlkZQorICAg
IHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24oV2ViUGFnZVByb3h5JiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgQVBJOjpOYXZpZ2F0aW9uKiwgQVBJOjpPYmplY3QqIC8qIHVzZXJE
YXRhICovKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAgaWYgKCFmcmFtZUluZm8uaXNNYWluRnJh
bWUpCi0gICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHdlYmtpdFdlYlZpZXdMb2FkQ2hhbmdl
ZChtX3dlYlZpZXcsIFdFQktJVF9MT0FEX1NUQVJURUQpOwogICAgIH0KIApAQCAtNTUsNyArNTMs
NyBAQCBwcml2YXRlOgogICAgICAgICB3ZWJraXRXZWJWaWV3TG9hZENoYW5nZWQobV93ZWJWaWV3
LCBXRUJLSVRfTE9BRF9SRURJUkVDVEVEKTsKICAgICB9CiAKLSAgICB2b2lkIGRpZEZhaWxQcm92
aXNpb25hbE5hdmlnYXRpb25XaXRoRXJyb3IoV2ViUGFnZVByb3h5JiwgRnJhbWVJbmZvRGF0YSYm
IGZyYW1lSW5mbywgUmVzb3VyY2VSZXF1ZXN0JiYsIEFQSTo6TmF2aWdhdGlvbiosIGNvbnN0IFJl
c291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IsIEFQSTo6T2JqZWN0KiAvKiB1c2VyRGF0YSAqLykg
b3ZlcnJpZGUKKyAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb25XaXRoRXJyb3Io
V2ViUGFnZVByb3h5JiwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgQVBJOjpOYXZpZ2F0aW9u
KiwgY29uc3QgUmVzb3VyY2VFcnJvciYgcmVzb3VyY2VFcnJvciwgQVBJOjpPYmplY3QqIC8qIHVz
ZXJEYXRhICovKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKCFmcmFtZUluZm8uaXNNYWlu
RnJhbWUpCiAgICAgICAgICAgICByZXR1cm47CkBAIC02OCwyNCArNjYsMTggQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIHdlYmtpdFdlYlZpZXdMb2FkRmFpbGVkKG1fd2ViVmlldywgV0VCS0lUX0xP
QURfU1RBUlRFRCwgcmVzb3VyY2VFcnJvci5mYWlsaW5nVVJMKCkuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSwgZXJyb3IuZ2V0KCkpOwogICAgIH0KIAotICAgIHZvaWQgZGlkQ29tbWl0TmF2aWdhdGlv
bihXZWJQYWdlUHJveHkmLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBSZXNvdXJjZVJlcXVl
c3QmJiwgQVBJOjpOYXZpZ2F0aW9uKiwgQVBJOjpPYmplY3QqIC8qIHVzZXJEYXRhICovKSBvdmVy
cmlkZQorICAgIHZvaWQgZGlkQ29tbWl0TmF2aWdhdGlvbihXZWJQYWdlUHJveHkmLCBBUEk6Ok5h
dmlnYXRpb24qLCBBUEk6Ok9iamVjdCogLyogdXNlckRhdGEgKi8pIG92ZXJyaWRlCiAgICAgewot
ICAgICAgICBpZiAoIWZyYW1lSW5mby5pc01haW5GcmFtZSkKLSAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgd2Via2l0V2ViVmlld0xvYWRDaGFuZ2VkKG1fd2ViVmlldywgV0VCS0lUX0xPQURf
Q09NTUlUVEVEKTsKICAgICB9CiAKLSAgICB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oV2ViUGFn
ZVByb3h5JiwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUmVzb3VyY2VSZXF1ZXN0JiYsIEFQ
STo6TmF2aWdhdGlvbiosIEFQSTo6T2JqZWN0KiAvKiB1c2VyRGF0YSAqLykgb3ZlcnJpZGUKKyAg
ICB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oV2ViUGFnZVByb3h5JiwgQVBJOjpOYXZpZ2F0aW9u
KiwgQVBJOjpPYmplY3QqIC8qIHVzZXJEYXRhICovKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAg
aWYgKCFmcmFtZUluZm8uaXNNYWluRnJhbWUpCi0gICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IHdlYmtpdFdlYlZpZXdMb2FkQ2hhbmdlZChtX3dlYlZpZXcsIFdFQktJVF9MT0FEX0ZJTklTSEVE
KTsKICAgICB9CiAKLSAgICB2b2lkIGRpZEZhaWxOYXZpZ2F0aW9uV2l0aEVycm9yKFdlYlBhZ2VQ
cm94eSYsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFJlc291cmNlUmVxdWVzdCYmLCBBUEk6
Ok5hdmlnYXRpb24qLCBjb25zdCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yLCBBUEk6Ok9i
amVjdCogLyogdXNlckRhdGEgKi8pIG92ZXJyaWRlCisgICAgdm9pZCBkaWRGYWlsTmF2aWdhdGlv
bldpdGhFcnJvcihXZWJQYWdlUHJveHkmLCBBUEk6Ok5hdmlnYXRpb24qLCBjb25zdCBSZXNvdXJj
ZUVycm9yJiByZXNvdXJjZUVycm9yLCBBUEk6Ok9iamVjdCogLyogdXNlckRhdGEgKi8pIG92ZXJy
aWRlCiAgICAgewotICAgICAgICBpZiAoIWZyYW1lSW5mby5pc01haW5GcmFtZSkKLSAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgR1VuaXF1ZVB0cjxHRXJyb3I+IGVycm9yKGdfZXJyb3JfbmV3
X2xpdGVyYWwoZ19xdWFya19mcm9tX3N0cmluZyhyZXNvdXJjZUVycm9yLmRvbWFpbigpLnV0Zjgo
KS5kYXRhKCkpLAogICAgICAgICAgICAgdG9XZWJLaXRFcnJvcihyZXNvdXJjZUVycm9yLmVycm9y
Q29kZSgpKSwgcmVzb3VyY2VFcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRh
KCkpKTsKICAgICAgICAgd2Via2l0V2ViVmlld0xvYWRGYWlsZWQobV93ZWJWaWV3LCBXRUJLSVRf
TE9BRF9DT01NSVRURUQsIHJlc291cmNlRXJyb3IuZmFpbGluZ1VSTCgpLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCksIGVycm9yLmdldCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL05hdmlnYXRpb25TdGF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCShyZXZpc2lvbiAyNTkxNDMpCisrKyBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAkod29ya2luZyBjb3B5KQpA
QCAtOTQsMTYgKzk0LDIxIEBAIHByaXZhdGU6CiAgICAgICAgIH5OYXZpZ2F0aW9uQ2xpZW50KCk7
CiAKICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0
aW9uKFdlYlBhZ2VQcm94eSYsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYsIEFQSTo6TmF2aWdhdGlvbiosIEFQSTo6T2JqZWN0Kikgb3ZlcnJpZGU7CisgICAgICAg
IHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24oV2ViUGFnZVByb3h5JiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgQVBJOjpOYXZpZ2F0aW9uKiwgQVBJOjpPYmplY3Qq
KSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
KFdlYlBhZ2VQcm94eSYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBGcmFtZUluZm9EYXRh
JiYpIG92ZXJyaWRlOwogICAgICAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclBy
b3Zpc2lvbmFsTmF2aWdhdGlvbihXZWJQYWdlUHJveHkmLCBBUEk6Ok5hdmlnYXRpb24qLCBBUEk6
Ok9iamVjdCopIG92ZXJyaWRlOwogICAgICAgICB2b2lkIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJl
Y3QoV2ViUGFnZVByb3h5JiwgY29uc3QgV1RGOjpTdHJpbmcmLCBkb3VibGUpIG92ZXJyaWRlOwog
ICAgICAgICB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChXZWJQYWdlUHJveHkmLCBjb25z
dCBXVEY6OlN0cmluZyYsIGNvbnN0IFdURjo6U3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgICAgIHZv
aWQgZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QoV2ViUGFnZVByb3h5Jikgb3ZlcnJpZGU7Ci0gICAg
ICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlvbldpdGhFcnJvcihXZWJQYWdlUHJv
eHkmLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBBUEk6Ok5h
dmlnYXRpb24qLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgQVBJOjpPYmplY3QqKSBv
dmVycmlkZTsKLSAgICAgICAgdm9pZCBkaWRDb21taXROYXZpZ2F0aW9uKFdlYlBhZ2VQcm94eSYs
IEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIEFQSTo6TmF2aWdh
dGlvbiosIEFQSTo6T2JqZWN0Kikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZGlkRmFpbFByb3Zp
c2lvbmFsTmF2aWdhdGlvbldpdGhFcnJvcihXZWJQYWdlUHJveHkmLCBGcmFtZUluZm9EYXRhJiYs
IEFQSTo6TmF2aWdhdGlvbiosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBBUEk6Ok9i
amVjdCopIG92ZXJyaWRlOworICAgICAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRo
RXJyb3JGb3JGcmFtZShXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIEZyYW1lSW5mb0RhdGEmJikgb3ZlcnJpZGU7
CisgICAgICAgIHZvaWQgZGlkQ29tbWl0TmF2aWdhdGlvbihXZWJQYWdlUHJveHkmLCBBUEk6Ok5h
dmlnYXRpb24qLCBBUEk6Ok9iamVjdCopIG92ZXJyaWRlOworICAgICAgICB2b2lkIGRpZENvbW1p
dExvYWRGb3JGcmFtZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmLCBGcmFtZUluZm9EYXRhJiYpIG92ZXJyaWRlOwogICAgICAgICB2b2lkIGRpZEZpbmlz
aERvY3VtZW50TG9hZChXZWJQYWdlUHJveHkmLCBBUEk6Ok5hdmlnYXRpb24qLCBBUEk6Ok9iamVj
dCopIG92ZXJyaWRlOwotICAgICAgICB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oV2ViUGFnZVBy
b3h5JiwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgQVBJOjpO
YXZpZ2F0aW9uKiwgQVBJOjpPYmplY3QqKSBvdmVycmlkZTsKLSAgICAgICAgdm9pZCBkaWRGYWls
TmF2aWdhdGlvbldpdGhFcnJvcihXZWJQYWdlUHJveHkmLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLCBBUEk6Ok5hdmlnYXRpb24qLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiwgQVBJOjpPYmplY3QqKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBkaWRG
aW5pc2hOYXZpZ2F0aW9uKFdlYlBhZ2VQcm94eSYsIEFQSTo6TmF2aWdhdGlvbiosIEFQSTo6T2Jq
ZWN0Kikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdlYlBh
Z2VQcm94eSYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBGcmFtZUluZm9EYXRhJiYpIG92
ZXJyaWRlOworICAgICAgICB2b2lkIGRpZEZhaWxOYXZpZ2F0aW9uV2l0aEVycm9yKFdlYlBhZ2VQ
cm94eSYsIGNvbnN0IEZyYW1lSW5mb0RhdGEmLCBBUEk6Ok5hdmlnYXRpb24qLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJiwgQVBJOjpPYmplY3QqKSBvdmVycmlkZTsKKyAgICAgICAgdm9p
ZCBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdlYlBhZ2VQcm94eSYsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgRnJhbWVJbmZv
RGF0YSYmKSBvdmVycmlkZTsKICAgICAgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9u
KFdlYlBhZ2VQcm94eSYsIEFQSTo6TmF2aWdhdGlvbiosIFNhbWVEb2N1bWVudE5hdmlnYXRpb25U
eXBlLCBBUEk6Ok9iamVjdCopIG92ZXJyaWRlOwogCiAgICAgICAgIHZvaWQgcmVuZGVyaW5nUHJv
Z3Jlc3NEaWRDaGFuZ2UoV2ViUGFnZVByb3h5JiwgT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1p
bGVzdG9uZT4pIG92ZXJyaWRlOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
TmF2aWdhdGlvblN0YXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQkocmV2aXNpb24gMjU5MTQzKQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC03NTMsMTkgKzc1MywyNSBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVu
dDo6CiAgICAgfSkuZ2V0KCldOwogfQogCi12b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlv
bkNsaWVudDo6ZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24oV2ViUGFnZVByb3h5JiBwYWdl
LCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0LCBBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24sIEFQSTo6T2JqZWN0KiB1c2VySW5m
bykKK3ZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRTdGFydFByb3Zp
c2lvbmFsTmF2aWdhdGlvbihXZWJQYWdlUHJveHkmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbiwgQVBJOjpPYmplY3Qq
IHVzZXJJbmZvKQoreworICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gbV9uYXZpZ2F0aW9u
U3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFuYXZpZ2F0aW9uRGVs
ZWdhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0
IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVs
bCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCisg
ICAgaWYgKG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3RGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb25Vc2VySW5mbykKKyAgICAgICAgWyhpZCA8
V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPiluYXZpZ2F0aW9uRGVsZWdhdGUgX3dlYlZpZXc6
bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9u
OndyYXBwZXIobmF2aWdhdGlvbikgdXNlckluZm86dXNlckluZm8gPyBzdGF0aWNfY2FzdDxpZCA8
TlNTZWN1cmVDb2Rpbmc+Pih1c2VySW5mby0+d3JhcHBlcigpKSA6IG5pbF07CisgICAgZWxzZSBp
ZiAobV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdE
aWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbikKKyAgICAgICAgW25hdmlnYXRpb25EZWxlZ2F0
ZSB3ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkaWRTdGFydFByb3Zpc2lvbmFs
TmF2aWdhdGlvbjp3cmFwcGVyKG5hdmlnYXRpb24pXTsKK30KKwordm9pZCBOYXZpZ2F0aW9uU3Rh
dGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2Vi
UGFnZVByb3h5JiBwYWdlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGcmFt
ZUluZm9EYXRhJiYgZnJhbWVJbmZvKQogewogICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0g
bV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCk7CiAgICAgaWYgKCFu
YXZpZ2F0aW9uRGVsZWdhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChmcmFtZUluZm8u
aXNNYWluRnJhbWUpIHsKLSAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBu
YXZpZ2F0aW9uIGlzIG5vdCBudWxsIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBz
b21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KLSAgICAgICAg
aWYgKG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
RGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb25Vc2VySW5mbykKLSAgICAgICAgICAgIFsoaWQg
PFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3
Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlv
bjp3cmFwcGVyKG5hdmlnYXRpb24pIHVzZXJJbmZvOnVzZXJJbmZvID8gc3RhdGljX2Nhc3Q8aWQg
PE5TU2VjdXJlQ29kaW5nPj4odXNlckluZm8tPndyYXBwZXIoKSkgOiBuaWxdOwotICAgICAgICBl
bHNlIGlmIChtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld0RpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKQotICAgICAgICAgICAgW25hdmlnYXRp
b25EZWxlZ2F0ZSB3ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkaWRTdGFydFBy
b3Zpc2lvbmFsTmF2aWdhdGlvbjp3cmFwcGVyKG5hdmlnYXRpb24pXTsKLSAgICB9CiAgICAgaWYg
KG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlk
U3RhcnRQcm92aXNpb25hbExvYWRXaXRoUmVxdWVzdEluRnJhbWUpCiAgICAgICAgIFsoaWQgPFdL
TmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpIF93ZWJW
aWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZFdp
dGhSZXF1ZXN0OnJlcXVlc3QubnNVUkxSZXF1ZXN0KEhUVFBCb2R5VXBkYXRlUG9saWN5OjpEb05v
dFVwZGF0ZUhUVFBCb2R5KSBpbkZyYW1lOndyYXBwZXIoQVBJOjpGcmFtZUluZm86OmNyZWF0ZShX
VEZNb3ZlKGZyYW1lSW5mbyksICZwYWdlKSldOwogfQpAQCAtODM5LDcgKzg0NSw3IEBAIHN0YXRp
YyBSZXRhaW5QdHI8TlNFcnJvcj4gY3JlYXRlRXJyb3JXaXQKICAgICByZXR1cm4gYWRvcHROUyhb
W05TRXJyb3IgYWxsb2NdIGluaXRXaXRoRG9tYWluOm9yaWdpbmFsRXJyb3IuZG9tYWluIGNvZGU6
b3JpZ2luYWxFcnJvci5jb2RlIHVzZXJJbmZvOnVzZXJJbmZvLmdldCgpXSk7CiB9CiAKLXZvaWQg
TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRGYWlsUHJvdmlzaW9uYWxOYXZp
Z2F0aW9uV2l0aEVycm9yKFdlYlBhZ2VQcm94eSYgcGFnZSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1l
SW5mbywgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgQVBJOjpOYXZpZ2F0aW9u
KiBuYXZpZ2F0aW9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgQVBJOjpP
YmplY3QqKQordm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZEZhaWxQ
cm92aXNpb25hbE5hdmlnYXRpb25XaXRoRXJyb3IoV2ViUGFnZVByb3h5JiBwYWdlLCBGcmFtZUlu
Zm9EYXRhJiYgZnJhbWVJbmZvLCBBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24sIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yLCBBUEk6Ok9iamVjdCopCiB7CiAgICAgYXV0byBu
YXZpZ2F0aW9uRGVsZWdhdGUgPSBtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0
ZS5nZXQoKTsKICAgICBpZiAoIW5hdmlnYXRpb25EZWxlZ2F0ZSkKQEAgLTg1NSwyMSArODYxLDM3
IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjoKICAgICAgICAgaWYg
KG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3TmF2
aWdhdGlvbkRpZEZhaWxQcm92aXNpb25hbExvYWRJblN1YmZyYW1lV2l0aEVycm9yKQogICAgICAg
ICAgICAgWyhpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPiluYXZpZ2F0aW9uRGVsZWdh
dGUgX3dlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IG5hdmlnYXRpb246bmlsIGRp
ZEZhaWxQcm92aXNpb25hbExvYWRJblN1YmZyYW1lOndyYXBwZXIoQVBJOjpGcmFtZUluZm86OmNy
ZWF0ZShXVEZNb3ZlKGZyYW1lSW5mbyksICZwYWdlKSkgd2l0aEVycm9yOmVycm9yV2l0aFJlY292
ZXJ5QXR0ZW1wdGVyLmdldCgpXTsKICAgICB9Cit9CisKK3ZvaWQgTmF2aWdhdGlvblN0YXRlOjpO
YXZpZ2F0aW9uQ2xpZW50OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUo
V2ViUGFnZVByb3h5JiBwYWdlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgRnJhbWVJbmZvRGF0YSYmIGZyYW1l
SW5mbykKK3sKKyAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IG1fbmF2aWdhdGlvblN0YXRl
Lm1fbmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpOworICAgIGlmICghbmF2aWdhdGlvbkRlbGVnYXRl
KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGVycm9yV2l0aFJlY292ZXJ5QXR0ZW1wdGVy
ID0gY3JlYXRlRXJyb3JXaXRoUmVjb3ZlcnlBdHRlbXB0ZXIobV9uYXZpZ2F0aW9uU3RhdGUubV93
ZWJWaWV3LCBmcmFtZUluZm8sIGVycm9yKTsKKwogICAgIGlmIChtX25hdmlnYXRpb25TdGF0ZS5t
X25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEZhaWxQcm92aXNpb25hbExvYWRX
aXRoUmVxdWVzdEluRnJhbWVXaXRoRXJyb3IpCiAgICAgICAgIFsoaWQgPFdLTmF2aWdhdGlvbkRl
bGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0
YXRlLm1fd2ViVmlldyBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aFJlcXVlc3Q6cmVxdWVzdC5u
c1VSTFJlcXVlc3QoSFRUUEJvZHlVcGRhdGVQb2xpY3k6OkRvTm90VXBkYXRlSFRUUEJvZHkpIGlu
RnJhbWU6d3JhcHBlcihBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKFdURk1vdmUoZnJhbWVJbmZvKSwg
JnBhZ2UpKSB3aXRoRXJyb3I6ZXJyb3JXaXRoUmVjb3ZlcnlBdHRlbXB0ZXIuZ2V0KCldOwogfQog
Ci12b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkQ29tbWl0TmF2aWdh
dGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbiwgQVBJOjpP
YmplY3QqKQordm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZENvbW1p
dE5hdmlnYXRpb24oV2ViUGFnZVByb3h5JiBwYWdlLCBBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRp
b24sIEFQSTo6T2JqZWN0KikKK3sKKyAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IG1fbmF2
aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpOworICAgIGlmICghbmF2aWdh
dGlvbkRlbGVnYXRlKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxk
IGFzc2VydCB0aGF0IG5hdmlnYXRpb24gaXMgbm90IG51bGwgaGVyZSwgYnV0IGl0J3MgY3VycmVu
dGx5IG51bGwgZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgYmFjay9mb3J3YXJkIGNh
Y2hlLgorICAgIGlmIChtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhv
ZHMud2ViVmlld0RpZENvbW1pdE5hdmlnYXRpb24pCisgICAgICAgIFtuYXZpZ2F0aW9uRGVsZWdh
dGUgd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgZGlkQ29tbWl0TmF2aWdhdGlv
bjp3cmFwcGVyKG5hdmlnYXRpb24pXTsKK30KKwordm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmln
YXRpb25DbGllbnQ6OmRpZENvbW1pdExvYWRGb3JGcmFtZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYg
cGFnZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRnJhbWVJbmZvRGF0YSYm
IGZyYW1lSW5mbykKIHsKICAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IG1fbmF2aWdhdGlv
blN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpOwogICAgIGlmICghbmF2aWdhdGlvbkRl
bGVnYXRlKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoZnJhbWVJbmZvLmlzTWFpbkZyYW1l
KSB7Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBp
cyBub3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0
aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCi0gICAgICAgIGlmIChtX25hdmln
YXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZENvbW1pdE5h
dmlnYXRpb24pCi0gICAgICAgICAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6bV9uYXZp
Z2F0aW9uU3RhdGUubV93ZWJWaWV3IGRpZENvbW1pdE5hdmlnYXRpb246d3JhcHBlcihuYXZpZ2F0
aW9uKV07Ci0gICAgfQogICAgIGlmIChtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxl
Z2F0ZU1ldGhvZHMud2ViVmlld0RpZENvbW1pdExvYWRXaXRoUmVxdWVzdEluRnJhbWUpCiAgICAg
ICAgIFtzdGF0aWNfY2FzdDxpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPj4obmF2aWdh
dGlvbkRlbGVnYXRlLmdldCgpKSBfd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcg
ZGlkQ29tbWl0TG9hZFdpdGhSZXF1ZXN0OnJlcXVlc3QubnNVUkxSZXF1ZXN0KEhUVFBCb2R5VXBk
YXRlUG9saWN5OjpEb05vdFVwZGF0ZUhUVFBCb2R5KSBpbkZyYW1lOndyYXBwZXIoQVBJOjpGcmFt
ZUluZm86OmNyZWF0ZShXVEZNb3ZlKGZyYW1lSW5mbyksICZwYWdlKSldOwogfQpAQCAtODg4LDIy
ICs5MTAsNDMgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OgogICAg
IFtzdGF0aWNfY2FzdDxpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPj4obmF2aWdhdGlv
bkRlbGVnYXRlLmdldCgpKSBfd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgbmF2
aWdhdGlvbkRpZEZpbmlzaERvY3VtZW50TG9hZDp3cmFwcGVyKG5hdmlnYXRpb24pXTsKIH0KIAot
dm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZEZpbmlzaE5hdmlnYXRp
b24oV2ViUGFnZVByb3h5JiBwYWdlLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0LCBBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24sIEFQSTo6T2Jq
ZWN0KikKK3ZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRGaW5pc2hO
YXZpZ2F0aW9uKFdlYlBhZ2VQcm94eSYsIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbiwgQVBJ
OjpPYmplY3QqKQoreworICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gbV9uYXZpZ2F0aW9u
U3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFuYXZpZ2F0aW9uRGVs
ZWdhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0
IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVs
bCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCisg
ICAgaWYgKG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3RGlkRmluaXNoTmF2aWdhdGlvbikKKyAgICAgICAgW25hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJW
aWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkaWRGaW5pc2hOYXZpZ2F0aW9uOndyYXBw
ZXIobmF2aWdhdGlvbildOworfQorCit2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNs
aWVudDo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbykKIHsK
ICAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdh
dGlvbkRlbGVnYXRlLmdldCgpOwogICAgIGlmICghbmF2aWdhdGlvbkRlbGVnYXRlKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAoZnJhbWVJbmZvLmlzTWFpbkZyYW1lKSB7Ci0gICAgICAgIC8v
IEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJl
LCBidXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRo
ZSBiYWNrL2ZvcndhcmQgY2FjaGUuCi0gICAgICAgIGlmIChtX25hdmlnYXRpb25TdGF0ZS5tX25h
dmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEZpbmlzaE5hdmlnYXRpb24pCi0gICAg
ICAgICAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93
ZWJWaWV3IGRpZEZpbmlzaE5hdmlnYXRpb246d3JhcHBlcihuYXZpZ2F0aW9uKV07Ci0gICAgfQog
ICAgIGlmIChtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld0RpZEZpbmlzaExvYWRXaXRoUmVxdWVzdEluRnJhbWUpCiAgICAgICAgIFsoaWQgPFdLTmF2
aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2
aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkaWRGaW5pc2hMb2FkV2l0aFJlcXVlc3Q6cmVxdWVzdC5u
c1VSTFJlcXVlc3QoSFRUUEJvZHlVcGRhdGVQb2xpY3k6OkRvTm90VXBkYXRlSFRUUEJvZHkpIGlu
RnJhbWU6d3JhcHBlcihBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKFdURk1vdmUoZnJhbWVJbmZvKSwg
JnBhZ2UpKV07CiB9CiAKLXZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50Ojpk
aWRGYWlsTmF2aWdhdGlvbldpdGhFcnJvcihXZWJQYWdlUHJveHkmIHBhZ2UsIEZyYW1lSW5mb0Rh
dGEmJiBmcmFtZUluZm8sIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEFQSTo6TmF2aWdhdGlv
biogbmF2aWdhdGlvbiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IsIEFQSTo6
T2JqZWN0KiB1c2VySW5mbykKK3ZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50
OjpkaWRGYWlsTmF2aWdhdGlvbldpdGhFcnJvcihXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IEZy
YW1lSW5mb0RhdGEmIGZyYW1lSW5mbywgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgQVBJOjpPYmplY3QqIHVzZXJJbmZvKQor
eworICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZp
Z2F0aW9uRGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFuYXZpZ2F0aW9uRGVsZWdhdGUpCisgICAg
ICAgIHJldHVybjsKKworICAgIGF1dG8gZXJyb3JXaXRoUmVjb3ZlcnlBdHRlbXB0ZXIgPSBjcmVh
dGVFcnJvcldpdGhSZWNvdmVyeUF0dGVtcHRlcihtX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcs
IGZyYW1lSW5mbywgZXJyb3IpOworCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhh
dCBuYXZpZ2F0aW9uIGlzIG5vdCBudWxsIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBudWxsIGZv
ciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KKyAgICBp
ZiAobV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdE
aWRGYWlsTmF2aWdhdGlvbldpdGhFcnJvclVzZXJJbmZvKQorICAgICAgICBbKGlkIDxXS05hdmln
YXRpb25EZWxlZ2F0ZVByaXZhdGU+KW5hdmlnYXRpb25EZWxlZ2F0ZSBfd2ViVmlldzptX25hdmln
YXRpb25TdGF0ZS5tX3dlYlZpZXcgZGlkRmFpbE5hdmlnYXRpb246d3JhcHBlcihuYXZpZ2F0aW9u
KSB3aXRoRXJyb3I6ZXJyb3JXaXRoUmVjb3ZlcnlBdHRlbXB0ZXIuZ2V0KCkgdXNlckluZm86dXNl
ckluZm8gPyBzdGF0aWNfY2FzdDxpZCA8TlNTZWN1cmVDb2Rpbmc+Pih1c2VySW5mby0+d3JhcHBl
cigpKSA6IG5pbF07CisgICAgZWxzZSBpZiAobV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9u
RGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRGYWlsTmF2aWdhdGlvbldpdGhFcnJvcikKKyAgICAg
ICAgW25hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmll
dyBkaWRGYWlsTmF2aWdhdGlvbjp3cmFwcGVyKG5hdmlnYXRpb24pIHdpdGhFcnJvcjplcnJvcldp
dGhSZWNvdmVyeUF0dGVtcHRlci5nZXQoKV07Cit9CisKK3ZvaWQgTmF2aWdhdGlvblN0YXRlOjpO
YXZpZ2F0aW9uQ2xpZW50OjpkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdlYlBhZ2VQcm94
eSYgcGFnZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8pCiB7CiAg
ICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRp
b25EZWxlZ2F0ZS5nZXQoKTsKICAgICBpZiAoIW5hdmlnYXRpb25EZWxlZ2F0ZSkKQEAgLTkxMSwx
MyArOTU0LDYgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OgogCiAg
ICAgYXV0byBlcnJvcldpdGhSZWNvdmVyeUF0dGVtcHRlciA9IGNyZWF0ZUVycm9yV2l0aFJlY292
ZXJ5QXR0ZW1wdGVyKG1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldywgZnJhbWVJbmZvLCBlcnJv
cik7CiAKLSAgICBpZiAoZnJhbWVJbmZvLmlzTWFpbkZyYW1lKSB7Ci0gICAgICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBidXQg
aXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNr
L2ZvcndhcmQgY2FjaGUuCi0gICAgICAgIGlmIChtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRp
b25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEZhaWxOYXZpZ2F0aW9uV2l0aEVycm9yVXNlcklu
Zm8pCi0gICAgICAgICAgICBbKGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+KW5hdmln
YXRpb25EZWxlZ2F0ZSBfd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgZGlkRmFp
bE5hdmlnYXRpb246d3JhcHBlcihuYXZpZ2F0aW9uKSB3aXRoRXJyb3I6ZXJyb3JXaXRoUmVjb3Zl
cnlBdHRlbXB0ZXIuZ2V0KCkgdXNlckluZm86dXNlckluZm8gPyBzdGF0aWNfY2FzdDxpZCA8TlNT
ZWN1cmVDb2Rpbmc+Pih1c2VySW5mby0+d3JhcHBlcigpKSA6IG5pbF07Ci0gICAgICAgIGVsc2Ug
aWYgKG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
RGlkRmFpbE5hdmlnYXRpb25XaXRoRXJyb3IpCi0gICAgICAgICAgICBbbmF2aWdhdGlvbkRlbGVn
YXRlIHdlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRpZEZhaWxOYXZpZ2F0aW9u
OndyYXBwZXIobmF2aWdhdGlvbikgd2l0aEVycm9yOmVycm9yV2l0aFJlY292ZXJ5QXR0ZW1wdGVy
LmdldCgpXTsKLSAgICB9CiAgICAgaWYgKG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRl
bGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRmFpbExvYWRXaXRoUmVxdWVzdEluRnJhbWVXaXRoRXJy
b3IpCiAgICAgICAgIFsoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlv
bkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkaWRGYWlsTG9h
ZFdpdGhSZXF1ZXN0OnJlcXVlc3QubnNVUkxSZXF1ZXN0KEhUVFBCb2R5VXBkYXRlUG9saWN5OjpE
b05vdFVwZGF0ZUhUVFBCb2R5KSBpbkZyYW1lOndyYXBwZXIoQVBJOjpGcmFtZUluZm86OmNyZWF0
ZShXVEZNb3ZlKGZyYW1lSW5mbyksICZwYWdlKSkgd2l0aEVycm9yOmVycm9yV2l0aFJlY292ZXJ5
QXR0ZW1wdGVyLmdldCgpXTsKIH0KSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTE2MykKKysrIFRvb2xzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAzLTI4ICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjU3
OTYzKSBVSSBwcm9jZXNzIGNyYXNoZXMgd2hlbiBzZXR0aW5nIG5hdmlnYXRpb24gZGVsZWdhdGUg
aW5zaWRlIG5hdmlnYXRpb24gZGVsZWdhdGUgY2FsbGJhY2tzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk3MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzYwODE0NzY1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Bc3luY1BvbGljeUZvck5h
dmlnYXRpb25SZXNwb25zZS5tbToKKyAgICAgICAgKC1bVGVzdEFzeW5jTmF2aWdhdGlvbkRlbGVn
YXRlIHdlYlZpZXc6ZGlkRmFpbE5hdmlnYXRpb246d2l0aEVycm9yOl0pOgorICAgICAgICAoLVtU
ZXN0QXN5bmNOYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzpkaWRGYWlsUHJvdmlzaW9uYWxOYXZp
Z2F0aW9uOndpdGhFcnJvcjpdKToKKwogMjAyMC0wMy0yOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFj
aHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIERlcHJlY2F0ZSBpbmplY3RlZCBidW5k
bGUgcGFnZSBncm91cCBTUEkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvQXN5bmNQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2UubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Bc3luY1BvbGljeUZvck5hdmln
YXRpb25SZXNwb25zZS5tbQkocmV2aXNpb24gMjU5MTQzKQorKysgVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Bc3luY1BvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZS5tbQko
d29ya2luZyBjb3B5KQpAQCAtNDgsMTIgKzQ4LDE0IEBAIC0gKHZvaWQpd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBkaWQKIHsKICAgICBuYXZpZ2F0aW9uRmFpbGVkID0gdHJ1ZTsKICAgICBu
YXZpZ2F0aW9uQ29tcGxldGUgPSB0cnVlOworICAgIHdlYlZpZXcubmF2aWdhdGlvbkRlbGVnYXRl
ID0gbmlsOwogfQogCiAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRmFp
bFByb3Zpc2lvbmFsTmF2aWdhdGlvbjoobnVsbF91bnNwZWNpZmllZCBXS05hdmlnYXRpb24gKilu
YXZpZ2F0aW9uIHdpdGhFcnJvcjooTlNFcnJvciAqKWVycm9yCiB7CiAgICAgbmF2aWdhdGlvbkZh
aWxlZCA9IHRydWU7CiAgICAgbmF2aWdhdGlvbkNvbXBsZXRlID0gdHJ1ZTsKKyAgICB3ZWJWaWV3
Lm5hdmlnYXRpb25EZWxlZ2F0ZSA9IG5pbDsKIH0KIAogLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlv
bkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShXS05h
dmlnYXRpb25BY3Rpb25Qb2xpY3kpKWRlY2lzaW9uSGFuZGxlcgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394839</attachid>
            <date>2020-03-28 12:51:37 -0700</date>
            <delta_ts>2020-03-28 19:59:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209705-20200328125136.patch</filename>
            <type>text/plain</type>
            <size>35284</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTkxNDMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDIwLTAzLTI4ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihy
MjU3OTYzKSBVSSBwcm9jZXNzIGNyYXNoZXMgd2hlbiBzZXR0aW5nIG5hdmlnYXRpb24gZGVsZWdh
dGUgaW5zaWRlIG5hdmlnYXRpb24gZGVsZWdhdGUgY2FsbGJhY2tzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk3MDUKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzYwODE0NzY1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEkgaW50cm9kdWNlZCBhIHBhdHRlcm4gb2YgbWFraW5nIG11bHRpcGxlIGRlbGVn
YXRlIGNhbGxzIHNlcXVlbnRpYWxseS4gIFRoaXMgaXMgYmFkIGJlY2F1c2UgdGhlIGRlbGVnYXRl
IGNhbiBjaGFuZ2UuCisgICAgICAgIFdlIG5lZWQgdG8gZ28gYmFjayB0byB0aGUgV2ViUGFnZVBy
b3h5IGFuZCBnZXQgdGhlIG5hdmlnYXRpb24gY2xpZW50IGFnYWluIGJldHdlZW4gY2FsbHMuCisg
ICAgICAgIEkgbWFudWFsbHkgdmVyaWZpZWQgdGhpcyBmaXhlcyB0aGUgY3Jhc2ggaW4gdGhlIHJh
ZGFyLgorICAgICAgICBDb3ZlcmVkIGJ5IG1vZGlmeWluZyBhbiBleGlzdGluZyBBUEkgdGVzdCB0
byBtb2RpZnkgdGhlIG5hdmlnYXRpb24gZGVsZWdhdGUgaW4gYSBjYWxsYmFjay4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oOgorICAgICAgICAoQVBJOjpO
YXZpZ2F0aW9uQ2xpZW50OjpkaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbik6CisgICAgICAg
IChBUEk6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUp
OgorICAgICAgICAoQVBJOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRGYWlsUHJvdmlzaW9uYWxOYXZp
Z2F0aW9uV2l0aEVycm9yKToKKyAgICAgICAgKEFQSTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkRmFp
bFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKToKKyAgICAgICAgKEFQSTo6TmF2aWdh
dGlvbkNsaWVudDo6ZGlkQ29tbWl0TmF2aWdhdGlvbik6CisgICAgICAgIChBUEk6Ok5hdmlnYXRp
b25DbGllbnQ6OmRpZENvbW1pdExvYWRGb3JGcmFtZSk6CisgICAgICAgIChBUEk6Ok5hdmlnYXRp
b25DbGllbnQ6OmRpZEZpbmlzaE5hdmlnYXRpb24pOgorICAgICAgICAoQVBJOjpOYXZpZ2F0aW9u
Q2xpZW50OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUpOgorICAgICAgICAoQVBJOjpOYXZpZ2F0aW9u
Q2xpZW50OjpkaWRGYWlsTmF2aWdhdGlvbldpdGhFcnJvcik6CisgICAgICAgIChBUEk6Ok5hdmln
YXRpb25DbGllbnQ6OmRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlU2V0UGFnZU5hdmlnYXRp
b25DbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9u
Q2xpZW50LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbToKKyAgICAgICAg
KFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjp+TmF2aWdhdGlvblN0YXRlKToKKyAgICAgICAgKFdl
YktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRTdGFydFByb3Zpc2lv
bmFsTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdh
dGlvbkNsaWVudDo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkRmFpbFByb3Zpc2lv
bmFsTmF2aWdhdGlvbldpdGhFcnJvcik6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0
ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50
OjpkaWRDb21taXROYXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRl
OjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZEZpbmlzaE5hdmlnYXRp
b24pOgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6
OmRpZEZpbmlzaExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0
ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkRmFpbE5hdmlnYXRpb25XaXRoRXJyb3IpOgorICAgICAg
ICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZEZhaWxMb2Fk
V2l0aEVycm9yRm9yRnJhbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWVTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZhaWxQ
cm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRpZEZhaWxMb2FkRm9yRnJhbWUpOgorCiAyMDIwLTAzLTI3ICBEYXZpZCBLaWx6ZXIgIDxk
ZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OnJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkIHNob3VsZCB2YWxpZGF0ZSBp
dHMgcGFyYW1ldGVycwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCShyZXZpc2lvbiAyNTkxNDMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Mzc5LDggKzQzNzksMTEgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMbwogICAgIG1fcGFnZUxvYWRTdGF0ZS5jb21t
aXRDaGFuZ2VzKCk7CiAgICAgaWYgKG1fbG9hZGVyQ2xpZW50KQogICAgICAgICBtX2xvYWRlckNs
aWVudC0+ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSgqdGhpcywgKmZyYW1lLCBuYXZp
Z2F0aW9uLmdldCgpLCBwcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRh
Lm9iamVjdCgpKS5nZXQoKSk7Ci0gICAgZWxzZQotICAgICAgICBtX25hdmlnYXRpb25DbGllbnQt
PmRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKCp0aGlzLCBXVEZNb3ZlKGZyYW1lSW5mbyks
IFdURk1vdmUocmVxdWVzdCksIG5hdmlnYXRpb24uZ2V0KCksIHByb2Nlc3MtPnRyYW5zZm9ybUhh
bmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKKyAgICBlbHNlIHsKKyAg
ICAgICAgaWYgKGZyYW1lSW5mby5pc01haW5GcmFtZSkKKyAgICAgICAgICAgIG1fbmF2aWdhdGlv
bkNsaWVudC0+ZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24oKnRoaXMsIHJlcXVlc3QsIG5h
dmlnYXRpb24uZ2V0KCksIHByb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRh
dGEub2JqZWN0KCkpLmdldCgpKTsKKyAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKCp0aGlzLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3Zl
KGZyYW1lSW5mbykpOworICAgIH0KIAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAgICAgbV93ZWJz
aXRlRGF0YVN0b3JlLT5hdXRoZW50aWNhdG9yTWFuYWdlcigpLmNhbmNlbFJlcXVlc3QobV93ZWJQ
YWdlSUQsIGZyYW1lSUQpOwpAQCAtNDU0NCw4ICs0NTQ3LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2EKIAogICAgIGlmIChtX2xvYWRlckNsaWVudCkKICAgICAg
ICAgbV9sb2FkZXJDbGllbnQtPmRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFt
ZSgqdGhpcywgKmZyYW1lLCBuYXZpZ2F0aW9uLmdldCgpLCBlcnJvciwgcHJvY2Vzcy0+dHJhbnNm
b3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwotICAgIGVsc2UK
LSAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9u
V2l0aEVycm9yKCp0aGlzLCBXVEZNb3ZlKGZyYW1lSW5mbyksIFdURk1vdmUocmVxdWVzdCksIG5h
dmlnYXRpb24uZ2V0KCksIGVycm9yLCBwcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3Rz
KHVzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7CisgICAgZWxzZSB7CisgICAgICAgIG1fbmF2aWdh
dGlvbkNsaWVudC0+ZGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlvbldpdGhFcnJvcigqdGhpcywg
RnJhbWVJbmZvRGF0YSB7IGZyYW1lSW5mbyB9LCBuYXZpZ2F0aW9uLmdldCgpLCBlcnJvciwgcHJv
Y2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkp
OworICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRo
RXJyb3JGb3JGcmFtZSgqdGhpcywgV1RGTW92ZShyZXF1ZXN0KSwgZXJyb3IsIFdURk1vdmUoZnJh
bWVJbmZvKSk7CisgICAgfQogCiAgICAgbV9mYWlsaW5nUHJvdmlzaW9uYWxMb2FkVVJMID0geyB9
OwogCkBAIC00NjgyLDkgKzQ2ODcsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExv
YWRGb3JGcmFtZQogICAgIG1fcGFnZUxvYWRTdGF0ZS5jb21taXRDaGFuZ2VzKCk7CiAgICAgaWYg
KG1fbG9hZGVyQ2xpZW50KQogICAgICAgICBtX2xvYWRlckNsaWVudC0+ZGlkQ29tbWl0TG9hZEZv
ckZyYW1lKCp0aGlzLCAqZnJhbWUsIG5hdmlnYXRpb24uZ2V0KCksIG1fcHJvY2Vzcy0+dHJhbnNm
b3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwotICAgIGVsc2UK
LSAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRDb21taXROYXZpZ2F0aW9uKCp0aGlzLCBX
VEZNb3ZlKGZyYW1lSW5mbyksIFdURk1vdmUocmVxdWVzdCksIG5hdmlnYXRpb24uZ2V0KCksIG1f
cHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0
KCkpOwotCisgICAgZWxzZSB7CisgICAgICAgIGlmIChmcmFtZUluZm8uaXNNYWluRnJhbWUpCisg
ICAgICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZENvbW1pdE5hdmlnYXRpb24oKnRoaXMs
IG5hdmlnYXRpb24uZ2V0KCksIG1fcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1
c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOworICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRp
ZENvbW1pdExvYWRGb3JGcmFtZSgqdGhpcywgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmcmFt
ZUluZm8pKTsKKyAgICB9CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBpZiAo
ZnJhbWUtPmlzTWFpbkZyYW1lKCkpCiAgICAgICAgIGludmFsaWRhdGVBbGxBdHRhY2htZW50cygp
OwpAQCAtNDc1NCw4ICs0NzYxLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2Fk
Rm9yRnJhbWUKICAgICBtX3BhZ2VMb2FkU3RhdGUuY29tbWl0Q2hhbmdlcygpOwogICAgIGlmICht
X2xvYWRlckNsaWVudCkKICAgICAgICAgbV9sb2FkZXJDbGllbnQtPmRpZEZpbmlzaExvYWRGb3JG
cmFtZSgqdGhpcywgKmZyYW1lLCBuYXZpZ2F0aW9uLmdldCgpLCBtX3Byb2Nlc3MtPnRyYW5zZm9y
bUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKLSAgICBlbHNlCi0g
ICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkRmluaXNoTmF2aWdhdGlvbigqdGhpcywgV1RG
TW92ZShmcmFtZUluZm8pLCBXVEZNb3ZlKHJlcXVlc3QpLCBuYXZpZ2F0aW9uLmdldCgpLCBtX3By
b2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgp
KTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKGZyYW1lSW5mby5pc01haW5GcmFtZSkKKyAgICAg
ICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkRmluaXNoTmF2aWdhdGlvbigqdGhpcywgbmF2
aWdhdGlvbi5nZXQoKSwgbV9wcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJE
YXRhLm9iamVjdCgpKS5nZXQoKSk7CisgICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkRmlu
aXNoTG9hZEZvckZyYW1lKCp0aGlzLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZyYW1lSW5m
bykpOworICAgIH0KIAogICAgIGlmIChpc01haW5GcmFtZSkgewogICAgICAgICByZXBvcnRQYWdl
TG9hZFJlc3VsdCgpOwpAQCAtNDgwNSw4ICs0ODE1LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRGYWlsTG9hZEZvckZyYW1lKEYKICAgICBtX3BhZ2VMb2FkU3RhdGUuY29tbWl0Q2hhbmdlcygp
OwogICAgIGlmIChtX2xvYWRlckNsaWVudCkKICAgICAgICAgbV9sb2FkZXJDbGllbnQtPmRpZEZh
aWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoKnRoaXMsICpmcmFtZSwgbmF2aWdhdGlvbi5nZXQoKSwg
ZXJyb3IsIG1fcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmpl
Y3QoKSkuZ2V0KCkpOwotICAgIGVsc2UKLSAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRG
YWlsTmF2aWdhdGlvbldpdGhFcnJvcigqdGhpcywgV1RGTW92ZShmcmFtZUluZm8pLCBXVEZNb3Zl
KHJlcXVlc3QpLCBuYXZpZ2F0aW9uLmdldCgpLCBlcnJvciwgbV9wcm9jZXNzLT50cmFuc2Zvcm1I
YW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7CisgICAgZWxzZSB7Cisg
ICAgICAgIGlmIChmcmFtZUluZm8uaXNNYWluRnJhbWUpCisgICAgICAgICAgICBtX25hdmlnYXRp
b25DbGllbnQtPmRpZEZhaWxOYXZpZ2F0aW9uV2l0aEVycm9yKCp0aGlzLCBmcmFtZUluZm8sIG5h
dmlnYXRpb24uZ2V0KCksIGVycm9yLCBtX3Byb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVj
dHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKKyAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50
LT5kaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKCp0aGlzLCBXVEZNb3ZlKHJlcXVlc3QpLCBl
cnJvciwgV1RGTW92ZShmcmFtZUluZm8pKTsKKyAgICB9CiAKICAgICBpZiAoaXNNYWluRnJhbWUp
IHsKICAgICAgICAgcmVwb3J0UGFnZUxvYWRSZXN1bHQoZXJyb3IpOwpJbmRleDogU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oCShyZXZpc2lv
biAyNTkxNDMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNs
aWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC03OCwxNiArNzgsMjEgQEAgY2xhc3MgTmF2aWdhdGlv
bkNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+TmF2aWdhdGlvbkNsaWVudCgpIHsgfQog
Ci0gICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKFdlYktpdDo6
V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmLCBOYXZpZ2F0aW9uKiwgT2JqZWN0KikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRp
ZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgTmF2aWdhdGlvbiosIE9iamVjdCopIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYktpdDo6V2Vi
UGFnZVByb3h5JiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYktpdDo6RnJhbWVJbmZv
RGF0YSYmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9y
UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgTmF2aWdhdGlvbios
IE9iamVjdCopIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0
KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgY29uc3QgV1RGOjpTdHJpbmcmIGRlc3RpbmF0aW9uVVJM
LCBkb3VibGUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3Qo
V2ViS2l0OjpXZWJQYWdlUHJveHkmLCBjb25zdCBXVEY6OlN0cmluZyYgc291cmNlVVJMLCBjb25z
dCBXVEY6OlN0cmluZyYgZGVzdGluYXRpb25VUkwpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRD
YW5jZWxDbGllbnRSZWRpcmVjdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQotICAgIHZpcnR1
YWwgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uV2l0aEVycm9yKFdlYktpdDo6V2Vi
UGFnZVByb3h5JiwgV2ViS2l0OjpGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmLCBOYXZpZ2F0aW9uKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIE9iamVj
dCopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXROYXZpZ2F0aW9uKFdlYktpdDo6V2Vi
UGFnZVByb3h5JiwgV2ViS2l0OjpGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmLCBOYXZpZ2F0aW9uKiwgT2JqZWN0KikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEZh
aWxQcm92aXNpb25hbE5hdmlnYXRpb25XaXRoRXJyb3IoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBX
ZWJLaXQ6OkZyYW1lSW5mb0RhdGEmJiwgTmF2aWdhdGlvbiosIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlRXJyb3ImLCBPYmplY3QqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbFByb3Zpc2lv
bmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJLaXQ6
OkZyYW1lSW5mb0RhdGEmJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdE5hdmlnYXRp
b24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBOYXZpZ2F0aW9uKiwgT2JqZWN0KikgeyB9CisgICAg
dmlydHVhbCB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEmJikgeyB9
CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaERvY3VtZW50TG9hZChXZWJLaXQ6OldlYlBhZ2VQ
cm94eSYsIE5hdmlnYXRpb24qLCBPYmplY3QqKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmlu
aXNoTmF2aWdhdGlvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6RnJhbWVJbmZvRGF0
YSYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgTmF2aWdhdGlvbiosIE9iamVjdCopIHsg
fQotICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsTmF2aWdhdGlvbldpdGhFcnJvcihXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYsIFdlYktpdDo6RnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiwgTmF2aWdhdGlvbiosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBPYmpl
Y3QqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTmF2aWdhdGlvbihXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYsIE5hdmlnYXRpb24qLCBPYmplY3QqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmluaXNoTG9hZEZvckZyYW1lKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYsIFdlYktpdDo6RnJhbWVJbmZvRGF0YSYmKSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgZGlkRmFpbE5hdmlnYXRpb25XaXRoRXJyb3IoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBj
b25zdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEmLCBOYXZpZ2F0aW9uKiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYsIE9iamVjdCopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsTG9h
ZFdpdGhFcnJvckZvckZyYW1lKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJLaXQ6OkZyYW1l
SW5mb0RhdGEmJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRp
b24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBOYXZpZ2F0aW9uKiwgV2ViS2l0OjpTYW1lRG9jdW1l
bnROYXZpZ2F0aW9uVHlwZSwgT2JqZWN0KikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkRGlz
cGxheUluc2VjdXJlQ29udGVudChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIEFQSTo6T2JqZWN0Kikg
eyB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAJKHJldmlz
aW9uIDI1OTE0MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIxNDgsMTMgKzIxNDgsMTAgQEAgdm9pZCBXS1BhZ2VTZXRQYWdl
TmF2aWdhdGlvbkNsaWVudChXS1BhZwogICAgICAgICAgICAgbV9jbGllbnQuZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvblJlc3BvbnNlKHRvQVBJKCZwYWdlKSwgdG9BUEkobmF2aWdhdGlvblJlc3Bv
bnNlLnB0cigpKSwgdG9BUEkobGlzdGVuZXIucHRyKCkpLCB0b0FQSSh1c2VyRGF0YSksIG1fY2xp
ZW50LmJhc2UuY2xpZW50SW5mbyk7CiAgICAgICAgIH0KIAotICAgICAgICB2b2lkIGRpZFN0YXJ0
UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwgRnJhbWVJbmZvRGF0YSYm
IGZyYW1lSW5mbywgUmVzb3VyY2VSZXF1ZXN0JiYsIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlv
biwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSBvdmVycmlkZQorICAgICAgICB2b2lkIGRpZFN0YXJ0
UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBBUEk6Ok9iamVjdCogdXNlckRh
dGEpIG92ZXJyaWRlCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmICghZnJhbWVJbmZvLmlzTWFp
bkZyYW1lKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmICghbV9jbGll
bnQuZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICAgICAgbV9jbGllbnQuZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24odG9B
UEkoJnBhZ2UpLCB0b0FQSShuYXZpZ2F0aW9uKSwgdG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5i
YXNlLmNsaWVudEluZm8pOworICAgICAgICAgICAgaWYgKG1fY2xpZW50LmRpZFN0YXJ0UHJvdmlz
aW9uYWxOYXZpZ2F0aW9uKQorICAgICAgICAgICAgICAgIG1fY2xpZW50LmRpZFN0YXJ0UHJvdmlz
aW9uYWxOYXZpZ2F0aW9uKHRvQVBJKCZwYWdlKSwgdG9BUEkobmF2aWdhdGlvbiksIHRvQVBJKHVz
ZXJEYXRhKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCiAgICAgICAg
IHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxOYXZpZ2F0aW9uKFdl
YlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBBUEk6Ok9iamVj
dCogdXNlckRhdGEpIG92ZXJyaWRlCkBAIC0yMTY0LDcgKzIxNjEsNyBAQCB2b2lkIFdLUGFnZVNl
dFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KFdLUGFnCiAgICAgICAgICAgICBtX2NsaWVudC5kaWRSZWNl
aXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbE5hdmlnYXRpb24odG9BUEkoJnBhZ2UpLCB0
b0FQSShuYXZpZ2F0aW9uKSwgdG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5iYXNlLmNsaWVudElu
Zm8pOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0
aW9uV2l0aEVycm9yKFdlYlBhZ2VQcm94eSYgcGFnZSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5m
bywgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlv
biwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IsIEFQSTo6T2JqZWN0KiB1c2Vy
RGF0YSkgb3ZlcnJpZGUKKyAgICAgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9u
V2l0aEVycm9yKFdlYlBhZ2VQcm94eSYgcGFnZSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywg
QVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
JiBlcnJvciwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSBvdmVycmlkZQogICAgICAgICB7CiAgICAg
ICAgICAgICBpZiAoZnJhbWVJbmZvLmlzTWFpbkZyYW1lKSB7CiAgICAgICAgICAgICAgICAgaWYg
KG1fY2xpZW50LmRpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb24pCkBAIC0yMTc1LDMyICsyMTcy
LDIyIEBAIHZvaWQgV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQoV0tQYWcKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgZGlkQ29tbWl0TmF2aWdhdGlvbihXZWJQ
YWdlUHJveHkmIHBhZ2UsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFJlc291cmNlUmVxdWVz
dCYmLCBBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24sIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkg
b3ZlcnJpZGUKKyAgICAgICAgdm9pZCBkaWRDb21taXROYXZpZ2F0aW9uKFdlYlBhZ2VQcm94eSYg
cGFnZSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBBUEk6Ok9iamVjdCogdXNlckRhdGEp
IG92ZXJyaWRlCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmICghZnJhbWVJbmZvLmlzTWFpbkZy
YW1lKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYgKCFtX2NsaWVu
dC5kaWRDb21taXROYXZpZ2F0aW9uKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
ICAgIG1fY2xpZW50LmRpZENvbW1pdE5hdmlnYXRpb24odG9BUEkoJnBhZ2UpLCB0b0FQSShuYXZp
Z2F0aW9uKSwgdG9BUEkodXNlckRhdGEpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAg
ICAgICAgICAgaWYgKG1fY2xpZW50LmRpZENvbW1pdE5hdmlnYXRpb24pCisgICAgICAgICAgICAg
ICAgbV9jbGllbnQuZGlkQ29tbWl0TmF2aWdhdGlvbih0b0FQSSgmcGFnZSksIHRvQVBJKG5hdmln
YXRpb24pLCB0b0FQSSh1c2VyRGF0YSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAgICAg
ICAgIH0KIAotICAgICAgICB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oV2ViUGFnZVByb3h5JiBw
YWdlLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBSZXNvdXJjZVJlcXVlc3QmJiwgQVBJOjpO
YXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpIG92ZXJyaWRlCisg
ICAgICAgIHZvaWQgZGlkRmluaXNoTmF2aWdhdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6
TmF2aWdhdGlvbiogbmF2aWdhdGlvbiwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSBvdmVycmlkZQog
ICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIWZyYW1lSW5mby5pc01haW5GcmFtZSkKLSAgICAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRpZEZpbmlzaE5h
dmlnYXRpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgbV9jbGllbnQu
ZGlkRmluaXNoTmF2aWdhdGlvbih0b0FQSSgmcGFnZSksIHRvQVBJKG5hdmlnYXRpb24pLCB0b0FQ
SSh1c2VyRGF0YSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgICAgICBpZiAo
bV9jbGllbnQuZGlkRmluaXNoTmF2aWdhdGlvbikKKyAgICAgICAgICAgICAgICBtX2NsaWVudC5k
aWRGaW5pc2hOYXZpZ2F0aW9uKHRvQVBJKCZwYWdlKSwgdG9BUEkobmF2aWdhdGlvbiksIHRvQVBJ
KHVzZXJEYXRhKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCi0gICAg
ICAgIHZvaWQgZGlkRmFpbE5hdmlnYXRpb25XaXRoRXJyb3IoV2ViUGFnZVByb3h5JiBwYWdlLCBG
cmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgQVBJ
OjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBl
cnJvciwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSBvdmVycmlkZQorICAgICAgICB2b2lkIGRpZEZh
aWxOYXZpZ2F0aW9uV2l0aEVycm9yKFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgRnJhbWVJbmZv
RGF0YSYsIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYgZXJyb3IsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkgb3ZlcnJpZGUKICAgICAgICAg
ewotICAgICAgICAgICAgaWYgKCFmcmFtZUluZm8uaXNNYWluRnJhbWUpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kaWRGYWlsTmF2aWdhdGlvbikK
LSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBtX2NsaWVudC5kaWRGYWlsTmF2
aWdhdGlvbih0b0FQSSgmcGFnZSksIHRvQVBJKG5hdmlnYXRpb24pLCB0b0FQSShlcnJvciksIHRv
QVBJKHVzZXJEYXRhKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgICAgIGlm
IChtX2NsaWVudC5kaWRGYWlsTmF2aWdhdGlvbikKKyAgICAgICAgICAgICAgICBtX2NsaWVudC5k
aWRGYWlsTmF2aWdhdGlvbih0b0FQSSgmcGFnZSksIHRvQVBJKG5hdmlnYXRpb24pLCB0b0FQSShl
cnJvciksIHRvQVBJKHVzZXJEYXRhKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAg
ICAgfQogCiAgICAgICAgIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkKFdlYlBhZ2VQcm94eSYg
cGFnZSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBBUEk6Ok9iamVjdCogdXNlckRhdGEp
IG92ZXJyaWRlCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRO
YXZpZ2F0aW9uQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcAkocmV2aXNpb24gMjU5MTQzKQor
KysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2aWdhdGlvbkNsaWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDEwICs0Myw4IEBAIHB1YmxpYzoKICAgICB9CiAK
IHByaXZhdGU6Ci0gICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbihXZWJQYWdl
UHJveHkmLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBSZXNvdXJjZVJlcXVlc3QmJiwgQVBJ
OjpOYXZpZ2F0aW9uKiwgQVBJOjpPYmplY3QqIC8qIHVzZXJEYXRhICovKSBvdmVycmlkZQorICAg
IHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24oV2ViUGFnZVByb3h5JiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgQVBJOjpOYXZpZ2F0aW9uKiwgQVBJOjpPYmplY3QqIC8qIHVzZXJE
YXRhICovKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAgaWYgKCFmcmFtZUluZm8uaXNNYWluRnJh
bWUpCi0gICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHdlYmtpdFdlYlZpZXdMb2FkQ2hhbmdl
ZChtX3dlYlZpZXcsIFdFQktJVF9MT0FEX1NUQVJURUQpOwogICAgIH0KIApAQCAtNTUsNyArNTMs
NyBAQCBwcml2YXRlOgogICAgICAgICB3ZWJraXRXZWJWaWV3TG9hZENoYW5nZWQobV93ZWJWaWV3
LCBXRUJLSVRfTE9BRF9SRURJUkVDVEVEKTsKICAgICB9CiAKLSAgICB2b2lkIGRpZEZhaWxQcm92
aXNpb25hbE5hdmlnYXRpb25XaXRoRXJyb3IoV2ViUGFnZVByb3h5JiwgRnJhbWVJbmZvRGF0YSYm
IGZyYW1lSW5mbywgUmVzb3VyY2VSZXF1ZXN0JiYsIEFQSTo6TmF2aWdhdGlvbiosIGNvbnN0IFJl
c291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IsIEFQSTo6T2JqZWN0KiAvKiB1c2VyRGF0YSAqLykg
b3ZlcnJpZGUKKyAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb25XaXRoRXJyb3Io
V2ViUGFnZVByb3h5JiwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgQVBJOjpOYXZpZ2F0aW9u
KiwgY29uc3QgUmVzb3VyY2VFcnJvciYgcmVzb3VyY2VFcnJvciwgQVBJOjpPYmplY3QqIC8qIHVz
ZXJEYXRhICovKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKCFmcmFtZUluZm8uaXNNYWlu
RnJhbWUpCiAgICAgICAgICAgICByZXR1cm47CkBAIC02OCwyMSArNjYsMTcgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIHdlYmtpdFdlYlZpZXdMb2FkRmFpbGVkKG1fd2ViVmlldywgV0VCS0lUX0xP
QURfU1RBUlRFRCwgcmVzb3VyY2VFcnJvci5mYWlsaW5nVVJMKCkuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSwgZXJyb3IuZ2V0KCkpOwogICAgIH0KIAotICAgIHZvaWQgZGlkQ29tbWl0TmF2aWdhdGlv
bihXZWJQYWdlUHJveHkmLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBSZXNvdXJjZVJlcXVl
c3QmJiwgQVBJOjpOYXZpZ2F0aW9uKiwgQVBJOjpPYmplY3QqIC8qIHVzZXJEYXRhICovKSBvdmVy
cmlkZQorICAgIHZvaWQgZGlkQ29tbWl0TmF2aWdhdGlvbihXZWJQYWdlUHJveHkmLCBBUEk6Ok5h
dmlnYXRpb24qLCBBUEk6Ok9iamVjdCogLyogdXNlckRhdGEgKi8pIG92ZXJyaWRlCiAgICAgewot
ICAgICAgICBpZiAoIWZyYW1lSW5mby5pc01haW5GcmFtZSkKLSAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgd2Via2l0V2ViVmlld0xvYWRDaGFuZ2VkKG1fd2ViVmlldywgV0VCS0lUX0xPQURf
Q09NTUlUVEVEKTsKICAgICB9CiAKLSAgICB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oV2ViUGFn
ZVByb3h5JiwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUmVzb3VyY2VSZXF1ZXN0JiYsIEFQ
STo6TmF2aWdhdGlvbiosIEFQSTo6T2JqZWN0KiAvKiB1c2VyRGF0YSAqLykgb3ZlcnJpZGUKKyAg
ICB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oV2ViUGFnZVByb3h5JiwgQVBJOjpOYXZpZ2F0aW9u
KiwgQVBJOjpPYmplY3QqIC8qIHVzZXJEYXRhICovKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAg
aWYgKCFmcmFtZUluZm8uaXNNYWluRnJhbWUpCi0gICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IHdlYmtpdFdlYlZpZXdMb2FkQ2hhbmdlZChtX3dlYlZpZXcsIFdFQktJVF9MT0FEX0ZJTklTSEVE
KTsKICAgICB9CiAKLSAgICB2b2lkIGRpZEZhaWxOYXZpZ2F0aW9uV2l0aEVycm9yKFdlYlBhZ2VQ
cm94eSYsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFJlc291cmNlUmVxdWVzdCYmLCBBUEk6
Ok5hdmlnYXRpb24qLCBjb25zdCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yLCBBUEk6Ok9i
amVjdCogLyogdXNlckRhdGEgKi8pIG92ZXJyaWRlCisgICAgdm9pZCBkaWRGYWlsTmF2aWdhdGlv
bldpdGhFcnJvcihXZWJQYWdlUHJveHkmLCBjb25zdCBGcmFtZUluZm9EYXRhJiBmcmFtZUluZm8s
IEFQSTo6TmF2aWdhdGlvbiosIGNvbnN0IFJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IsIEFQ
STo6T2JqZWN0KiAvKiB1c2VyRGF0YSAqLykgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmICgh
ZnJhbWVJbmZvLmlzTWFpbkZyYW1lKQogICAgICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmgJKHJldmlzaW9u
IDI1OTE0MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC05NCwxNiArOTQsMjEgQEAgcHJpdmF0ZToKICAgICAgICAg
fk5hdmlnYXRpb25DbGllbnQoKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgZGlkU3Rh
cnRQcm92aXNpb25hbE5hdmlnYXRpb24oV2ViUGFnZVByb3h5JiwgRnJhbWVJbmZvRGF0YSYmLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgQVBJOjpOYXZpZ2F0aW9uKiwgQVBJOjpPYmplY3Qq
KSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbihX
ZWJQYWdlUHJveHkmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBBUEk6Ok5hdmln
YXRpb24qLCBBUEk6Ok9iamVjdCopIG92ZXJyaWRlOworICAgICAgICB2b2lkIGRpZFN0YXJ0UHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYsIEZyYW1lSW5mb0RhdGEmJikgb3ZlcnJpZGU7CiAgICAgICAgIHZvaWQgZGlkUmVjZWl2
ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxOYXZpZ2F0aW9uKFdlYlBhZ2VQcm94eSYsIEFQ
STo6TmF2aWdhdGlvbiosIEFQSTo6T2JqZWN0Kikgb3ZlcnJpZGU7CiAgICAgICAgIHZvaWQgd2ls
bFBlcmZvcm1DbGllbnRSZWRpcmVjdChXZWJQYWdlUHJveHkmLCBjb25zdCBXVEY6OlN0cmluZyYs
IGRvdWJsZSkgb3ZlcnJpZGU7CiAgICAgICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0
KFdlYlBhZ2VQcm94eSYsIGNvbnN0IFdURjo6U3RyaW5nJiwgY29uc3QgV1RGOjpTdHJpbmcmKSBv
dmVycmlkZTsKICAgICAgICAgdm9pZCBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdChXZWJQYWdlUHJv
eHkmKSBvdmVycmlkZTsKLSAgICAgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9u
V2l0aEVycm9yKFdlYlBhZ2VQcm94eSYsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYsIEFQSTo6TmF2aWdhdGlvbiosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImLCBBUEk6Ok9iamVjdCopIG92ZXJyaWRlOwotICAgICAgICB2b2lkIGRpZENvbW1pdE5hdmln
YXRpb24oV2ViUGFnZVByb3h5JiwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiwgQVBJOjpOYXZpZ2F0aW9uKiwgQVBJOjpPYmplY3QqKSBvdmVycmlkZTsKKyAgICAg
ICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uV2l0aEVycm9yKFdlYlBhZ2VQcm94
eSYsIEZyYW1lSW5mb0RhdGEmJiwgQVBJOjpOYXZpZ2F0aW9uKiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciYsIEFQSTo6T2JqZWN0Kikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZGlkRmFp
bFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdlYlBhZ2VQcm94eSYsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgRnJhbWVJ
bmZvRGF0YSYmKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBkaWRDb21taXROYXZpZ2F0aW9uKFdl
YlBhZ2VQcm94eSYsIEFQSTo6TmF2aWdhdGlvbiosIEFQSTo6T2JqZWN0Kikgb3ZlcnJpZGU7Cisg
ICAgICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1lKFdlYktpdDo6V2ViUGFnZVByb3h5Jiwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIEZyYW1lSW5mb0RhdGEmJikgb3ZlcnJpZGU7CiAg
ICAgICAgIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkKFdlYlBhZ2VQcm94eSYsIEFQSTo6TmF2
aWdhdGlvbiosIEFQSTo6T2JqZWN0Kikgb3ZlcnJpZGU7Ci0gICAgICAgIHZvaWQgZGlkRmluaXNo
TmF2aWdhdGlvbihXZWJQYWdlUHJveHkmLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmLCBBUEk6Ok5hdmlnYXRpb24qLCBBUEk6Ok9iamVjdCopIG92ZXJyaWRlOwot
ICAgICAgICB2b2lkIGRpZEZhaWxOYXZpZ2F0aW9uV2l0aEVycm9yKFdlYlBhZ2VQcm94eSYsIEZy
YW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIEFQSTo6TmF2aWdhdGlv
biosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBBUEk6Ok9iamVjdCopIG92ZXJyaWRl
OworICAgICAgICB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oV2ViUGFnZVByb3h5JiwgQVBJOjpO
YXZpZ2F0aW9uKiwgQVBJOjpPYmplY3QqKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBkaWRGaW5p
c2hMb2FkRm9yRnJhbWUoV2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYs
IEZyYW1lSW5mb0RhdGEmJikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZGlkRmFpbE5hdmlnYXRp
b25XaXRoRXJyb3IoV2ViUGFnZVByb3h5JiwgY29uc3QgRnJhbWVJbmZvRGF0YSYsIEFQSTo6TmF2
aWdhdGlvbiosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBBUEk6Ok9iamVjdCopIG92
ZXJyaWRlOworICAgICAgICB2b2lkIGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV2ViUGFn
ZVByb3h5JiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlRXJyb3ImLCBGcmFtZUluZm9EYXRhJiYpIG92ZXJyaWRlOwogICAgICAgICB2b2lkIGRpZFNh
bWVEb2N1bWVudE5hdmlnYXRpb24oV2ViUGFnZVByb3h5JiwgQVBJOjpOYXZpZ2F0aW9uKiwgU2Ft
ZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIEFQSTo6T2JqZWN0Kikgb3ZlcnJpZGU7CiAKICAgICAg
ICAgdm9pZCByZW5kZXJpbmdQcm9ncmVzc0RpZENoYW5nZShXZWJQYWdlUHJveHkmLCBPcHRpb25T
ZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPikgb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCShyZXZpc2lvbiAy
NTkxNDMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTc1MywxOSArNzUzLDI1IEBAIHZvaWQgTmF2aWdhdGlvblN0
YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjoKICAgICB9KS5nZXQoKV07CiB9CiAKLXZvaWQgTmF2aWdh
dGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlv
bihXZWJQYWdlUHJveHkmIHBhZ2UsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbiwg
QVBJOjpPYmplY3QqIHVzZXJJbmZvKQordm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25D
bGllbnQ6OmRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKFdlYlBhZ2VQcm94eSYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZp
Z2F0aW9uLCBBUEk6Ok9iamVjdCogdXNlckluZm8pCit7CisgICAgYXV0byBuYXZpZ2F0aW9uRGVs
ZWdhdGUgPSBtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKTsKKyAg
ICBpZiAoIW5hdmlnYXRpb25EZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBuYXZpZ2F0aW9uIGlzIG5vdCBudWxsIGhlcmUsIGJ1
dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIGJh
Y2svZm9yd2FyZCBjYWNoZS4KKyAgICBpZiAobV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9u
RGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvblVzZXJJ
bmZvKQorICAgICAgICBbKGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+KW5hdmlnYXRp
b25EZWxlZ2F0ZSBfd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgZGlkU3RhcnRQ
cm92aXNpb25hbE5hdmlnYXRpb246d3JhcHBlcihuYXZpZ2F0aW9uKSB1c2VySW5mbzp1c2VySW5m
byA/IHN0YXRpY19jYXN0PGlkIDxOU1NlY3VyZUNvZGluZz4+KHVzZXJJbmZvLT53cmFwcGVyKCkp
IDogbmlsXTsKKyAgICBlbHNlIGlmIChtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxl
Z2F0ZU1ldGhvZHMud2ViVmlld0RpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKQorICAgICAg
ICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3
IGRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uOndyYXBwZXIobmF2aWdhdGlvbildOworfQor
Cit2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkU3RhcnRQcm92aXNp
b25hbExvYWRGb3JGcmFtZShXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmIHJlcXVlc3QsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8pCiB7CiAgICAgYXV0byBu
YXZpZ2F0aW9uRGVsZWdhdGUgPSBtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0
ZS5nZXQoKTsKICAgICBpZiAoIW5hdmlnYXRpb25EZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgaWYgKGZyYW1lSW5mby5pc01haW5GcmFtZSkgewotICAgICAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIGFzc2VydCB0aGF0IG5hdmlnYXRpb24gaXMgbm90IG51bGwgaGVyZSwgYnV0IGl0J3Mg
Y3VycmVudGx5IG51bGwgZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgYmFjay9mb3J3
YXJkIGNhY2hlLgotICAgICAgICBpZiAobV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVs
ZWdhdGVNZXRob2RzLndlYlZpZXdEaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvblVzZXJJbmZv
KQotICAgICAgICAgICAgWyhpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPiluYXZpZ2F0
aW9uRGVsZWdhdGUgX3dlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRpZFN0YXJ0
UHJvdmlzaW9uYWxOYXZpZ2F0aW9uOndyYXBwZXIobmF2aWdhdGlvbikgdXNlckluZm86dXNlcklu
Zm8gPyBzdGF0aWNfY2FzdDxpZCA8TlNTZWN1cmVDb2Rpbmc+Pih1c2VySW5mby0+d3JhcHBlcigp
KSA6IG5pbF07Ci0gICAgICAgIGVsc2UgaWYgKG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlv
bkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24pCi0g
ICAgICAgICAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUu
bV93ZWJWaWV3IGRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uOndyYXBwZXIobmF2aWdhdGlv
bildOwotICAgIH0KICAgICBpZiAobV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdh
dGVNZXRob2RzLndlYlZpZXdEaWRTdGFydFByb3Zpc2lvbmFsTG9hZFdpdGhSZXF1ZXN0SW5GcmFt
ZSkKICAgICAgICAgWyhpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPiluYXZpZ2F0aW9u
RGVsZWdhdGUuZ2V0KCkgX3dlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkV2l0aFJlcXVlc3Q6cmVxdWVzdC5uc1VSTFJlcXVlc3QoSFRUUEJv
ZHlVcGRhdGVQb2xpY3k6OkRvTm90VXBkYXRlSFRUUEJvZHkpIGluRnJhbWU6d3JhcHBlcihBUEk6
OkZyYW1lSW5mbzo6Y3JlYXRlKFdURk1vdmUoZnJhbWVJbmZvKSwgJnBhZ2UpKV07CiB9CkBAIC04
MzksNyArODQ1LDcgQEAgc3RhdGljIFJldGFpblB0cjxOU0Vycm9yPiBjcmVhdGVFcnJvcldpdAog
ICAgIHJldHVybiBhZG9wdE5TKFtbTlNFcnJvciBhbGxvY10gaW5pdFdpdGhEb21haW46b3JpZ2lu
YWxFcnJvci5kb21haW4gY29kZTpvcmlnaW5hbEVycm9yLmNvZGUgdXNlckluZm86dXNlckluZm8u
Z2V0KCldKTsKIH0KIAotdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRp
ZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb25XaXRoRXJyb3IoV2ViUGFnZVByb3h5JiBwYWdlLCBG
cmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1
ZXN0LCBBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24sIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
RXJyb3ImIGVycm9yLCBBUEk6Ok9iamVjdCopCit2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdh
dGlvbkNsaWVudDo6ZGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlvbldpdGhFcnJvcihXZWJQYWdl
UHJveHkmIHBhZ2UsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIEFQSTo6TmF2aWdhdGlvbiog
bmF2aWdhdGlvbiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IsIEFQSTo6T2Jq
ZWN0KikKIHsKICAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IG1fbmF2aWdhdGlvblN0YXRl
Lm1fbmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpOwogICAgIGlmICghbmF2aWdhdGlvbkRlbGVnYXRl
KQpAQCAtODU1LDIxICs4NjEsMzcgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25D
bGllbnQ6OgogICAgICAgICBpZiAobV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdh
dGVNZXRob2RzLndlYlZpZXdOYXZpZ2F0aW9uRGlkRmFpbFByb3Zpc2lvbmFsTG9hZEluU3ViZnJh
bWVXaXRoRXJyb3IpCiAgICAgICAgICAgICBbKGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZh
dGU+KW5hdmlnYXRpb25EZWxlZ2F0ZSBfd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZp
ZXcgbmF2aWdhdGlvbjpuaWwgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEluU3ViZnJhbWU6d3JhcHBl
cihBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKFdURk1vdmUoZnJhbWVJbmZvKSwgJnBhZ2UpKSB3aXRo
RXJyb3I6ZXJyb3JXaXRoUmVjb3ZlcnlBdHRlbXB0ZXIuZ2V0KCldOwogICAgIH0KK30KKwordm9p
ZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZEZhaWxQcm92aXNpb25hbExv
YWRXaXRoRXJyb3JGb3JGcmFtZShXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yLCBG
cmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvKQoreworICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRl
ID0gbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCk7CisgICAgaWYg
KCFuYXZpZ2F0aW9uRGVsZWdhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gZXJyb3JX
aXRoUmVjb3ZlcnlBdHRlbXB0ZXIgPSBjcmVhdGVFcnJvcldpdGhSZWNvdmVyeUF0dGVtcHRlciht
X25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcsIGZyYW1lSW5mbywgZXJyb3IpOworCiAgICAgaWYg
KG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlk
RmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhSZXF1ZXN0SW5GcmFtZVdpdGhFcnJvcikKICAgICAgICAg
WyhpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPiluYXZpZ2F0aW9uRGVsZWdhdGUgX3dl
YlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRpZEZhaWxQcm92aXNpb25hbExvYWRX
aXRoUmVxdWVzdDpyZXF1ZXN0Lm5zVVJMUmVxdWVzdChIVFRQQm9keVVwZGF0ZVBvbGljeTo6RG9O
b3RVcGRhdGVIVFRQQm9keSkgaW5GcmFtZTp3cmFwcGVyKEFQSTo6RnJhbWVJbmZvOjpjcmVhdGUo
V1RGTW92ZShmcmFtZUluZm8pLCAmcGFnZSkpIHdpdGhFcnJvcjplcnJvcldpdGhSZWNvdmVyeUF0
dGVtcHRlci5nZXQoKV07CiB9CiAKLXZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xp
ZW50OjpkaWRDb21taXROYXZpZ2F0aW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwgRnJhbWVJbmZvRGF0
YSYmIGZyYW1lSW5mbywgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgQVBJOjpOYXZpZ2F0aW9u
KiBuYXZpZ2F0aW9uLCBBUEk6Ok9iamVjdCopCit2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdh
dGlvbkNsaWVudDo6ZGlkQ29tbWl0TmF2aWdhdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6
TmF2aWdhdGlvbiogbmF2aWdhdGlvbiwgQVBJOjpPYmplY3QqKQoreworICAgIGF1dG8gbmF2aWdh
dGlvbkRlbGVnYXRlID0gbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0
KCk7CisgICAgaWYgKCFuYXZpZ2F0aW9uRGVsZWdhdGUpCisgICAgICAgIHJldHVybjsKKworICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBo
ZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdo
IHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCisgICAgaWYgKG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2
aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkQ29tbWl0TmF2aWdhdGlvbikKKyAgICAg
ICAgW25hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmll
dyBkaWRDb21taXROYXZpZ2F0aW9uOndyYXBwZXIobmF2aWdhdGlvbildOworfQorCit2b2lkIE5h
dmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKFdl
YktpdDo6V2ViUGFnZVByb3h5JiBwYWdlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1
ZXN0LCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvKQogewogICAgIGF1dG8gbmF2aWdhdGlvbkRl
bGVnYXRlID0gbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCk7CiAg
ICAgaWYgKCFuYXZpZ2F0aW9uRGVsZWdhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChm
cmFtZUluZm8uaXNNYWluRnJhbWUpIHsKLSAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3Nl
cnQgdGhhdCBuYXZpZ2F0aW9uIGlzIG5vdCBudWxsIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBu
dWxsIGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4K
LSAgICAgICAgaWYgKG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9k
cy53ZWJWaWV3RGlkQ29tbWl0TmF2aWdhdGlvbikKLSAgICAgICAgICAgIFtuYXZpZ2F0aW9uRGVs
ZWdhdGUgd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgZGlkQ29tbWl0TmF2aWdh
dGlvbjp3cmFwcGVyKG5hdmlnYXRpb24pXTsKLSAgICB9CiAgICAgaWYgKG1fbmF2aWdhdGlvblN0
YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkQ29tbWl0TG9hZFdpdGhS
ZXF1ZXN0SW5GcmFtZSkKICAgICAgICAgW3N0YXRpY19jYXN0PGlkIDxXS05hdmlnYXRpb25EZWxl
Z2F0ZVByaXZhdGU+PihuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCkpIF93ZWJWaWV3Om1fbmF2aWdh
dGlvblN0YXRlLm1fd2ViVmlldyBkaWRDb21taXRMb2FkV2l0aFJlcXVlc3Q6cmVxdWVzdC5uc1VS
TFJlcXVlc3QoSFRUUEJvZHlVcGRhdGVQb2xpY3k6OkRvTm90VXBkYXRlSFRUUEJvZHkpIGluRnJh
bWU6d3JhcHBlcihBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKFdURk1vdmUoZnJhbWVJbmZvKSwgJnBh
Z2UpKV07CiB9CkBAIC04ODgsMjIgKzkxMCw0MyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2
aWdhdGlvbkNsaWVudDo6CiAgICAgW3N0YXRpY19jYXN0PGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0
ZVByaXZhdGU+PihuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCkpIF93ZWJWaWV3Om1fbmF2aWdhdGlv
blN0YXRlLm1fd2ViVmlldyBuYXZpZ2F0aW9uRGlkRmluaXNoRG9jdW1lbnRMb2FkOndyYXBwZXIo
bmF2aWdhdGlvbildOwogfQogCi12b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVu
dDo6ZGlkRmluaXNoTmF2aWdhdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsIEZyYW1lSW5mb0RhdGEm
JiBmcmFtZUluZm8sIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEFQSTo6TmF2aWdhdGlvbiog
bmF2aWdhdGlvbiwgQVBJOjpPYmplY3QqKQordm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRp
b25DbGllbnQ6OmRpZEZpbmlzaE5hdmlnYXRpb24oV2ViUGFnZVByb3h5JiwgQVBJOjpOYXZpZ2F0
aW9uKiBuYXZpZ2F0aW9uLCBBUEk6Ok9iamVjdCopCit7CisgICAgYXV0byBuYXZpZ2F0aW9uRGVs
ZWdhdGUgPSBtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKTsKKyAg
ICBpZiAoIW5hdmlnYXRpb25EZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBuYXZpZ2F0aW9uIGlzIG5vdCBudWxsIGhlcmUsIGJ1
dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIGJh
Y2svZm9yd2FyZCBjYWNoZS4KKyAgICBpZiAobV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9u
RGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRGaW5pc2hOYXZpZ2F0aW9uKQorICAgICAgICBbbmF2
aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRpZEZp
bmlzaE5hdmlnYXRpb246d3JhcHBlcihuYXZpZ2F0aW9uKV07Cit9CisKK3ZvaWQgTmF2aWdhdGlv
blN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV2ViUGFnZVBy
b3h5JiBwYWdlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGcmFtZUluZm9E
YXRhJiYgZnJhbWVJbmZvKQogewogICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gbV9uYXZp
Z2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCk7CiAgICAgaWYgKCFuYXZpZ2F0
aW9uRGVsZWdhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChmcmFtZUluZm8uaXNNYWlu
RnJhbWUpIHsKLSAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBuYXZpZ2F0
aW9uIGlzIG5vdCBudWxsIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBzb21lIG5h
dmlnYXRpb25zIHRocm91Z2ggdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KLSAgICAgICAgaWYgKG1f
bmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRmlu
aXNoTmF2aWdhdGlvbikKLSAgICAgICAgICAgIFtuYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzpt
X25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgZGlkRmluaXNoTmF2aWdhdGlvbjp3cmFwcGVyKG5h
dmlnYXRpb24pXTsKLSAgICB9CiAgICAgaWYgKG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlv
bkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRmluaXNoTG9hZFdpdGhSZXF1ZXN0SW5GcmFtZSkK
ICAgICAgICAgWyhpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPiluYXZpZ2F0aW9uRGVs
ZWdhdGUgX3dlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRpZEZpbmlzaExvYWRX
aXRoUmVxdWVzdDpyZXF1ZXN0Lm5zVVJMUmVxdWVzdChIVFRQQm9keVVwZGF0ZVBvbGljeTo6RG9O
b3RVcGRhdGVIVFRQQm9keSkgaW5GcmFtZTp3cmFwcGVyKEFQSTo6RnJhbWVJbmZvOjpjcmVhdGUo
V1RGTW92ZShmcmFtZUluZm8pLCAmcGFnZSkpXTsKIH0KIAotdm9pZCBOYXZpZ2F0aW9uU3RhdGU6
Ok5hdmlnYXRpb25DbGllbnQ6OmRpZEZhaWxOYXZpZ2F0aW9uV2l0aEVycm9yKFdlYlBhZ2VQcm94
eSYgcGFnZSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJiBlcnJvciwgQVBJOjpPYmplY3QqIHVzZXJJbmZvKQordm9pZCBOYXZpZ2F0aW9uU3Rh
dGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZEZhaWxOYXZpZ2F0aW9uV2l0aEVycm9yKFdlYlBhZ2VQ
cm94eSYgcGFnZSwgY29uc3QgRnJhbWVJbmZvRGF0YSYgZnJhbWVJbmZvLCBBUEk6Ok5hdmlnYXRp
b24qIG5hdmlnYXRpb24sIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yLCBBUEk6
Ok9iamVjdCogdXNlckluZm8pCit7CisgICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBtX25h
dmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoIW5hdmln
YXRpb25EZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBlcnJvcldpdGhSZWNv
dmVyeUF0dGVtcHRlciA9IGNyZWF0ZUVycm9yV2l0aFJlY292ZXJ5QXR0ZW1wdGVyKG1fbmF2aWdh
dGlvblN0YXRlLm1fd2ViVmlldywgZnJhbWVJbmZvLCBlcnJvcik7CisKKyAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkIGFzc2VydCB0aGF0IG5hdmlnYXRpb24gaXMgbm90IG51bGwgaGVyZSwgYnV0IGl0
J3MgY3VycmVudGx5IG51bGwgZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgYmFjay9m
b3J3YXJkIGNhY2hlLgorICAgIGlmIChtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxl
Z2F0ZU1ldGhvZHMud2ViVmlld0RpZEZhaWxOYXZpZ2F0aW9uV2l0aEVycm9yVXNlckluZm8pCisg
ICAgICAgIFsoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlvbkRlbGVn
YXRlIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkaWRGYWlsTmF2aWdhdGlv
bjp3cmFwcGVyKG5hdmlnYXRpb24pIHdpdGhFcnJvcjplcnJvcldpdGhSZWNvdmVyeUF0dGVtcHRl
ci5nZXQoKSB1c2VySW5mbzp1c2VySW5mbyA/IHN0YXRpY19jYXN0PGlkIDxOU1NlY3VyZUNvZGlu
Zz4+KHVzZXJJbmZvLT53cmFwcGVyKCkpIDogbmlsXTsKKyAgICBlbHNlIGlmIChtX25hdmlnYXRp
b25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEZhaWxOYXZpZ2F0
aW9uV2l0aEVycm9yKQorICAgICAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6bV9uYXZp
Z2F0aW9uU3RhdGUubV93ZWJWaWV3IGRpZEZhaWxOYXZpZ2F0aW9uOndyYXBwZXIobmF2aWdhdGlv
bikgd2l0aEVycm9yOmVycm9yV2l0aFJlY292ZXJ5QXR0ZW1wdGVyLmdldCgpXTsKK30KKwordm9p
ZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZEZhaWxMb2FkV2l0aEVycm9y
Rm9yRnJhbWUoV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgRnJhbWVJbmZvRGF0
YSYmIGZyYW1lSW5mbykKIHsKICAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IG1fbmF2aWdh
dGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpOwogICAgIGlmICghbmF2aWdhdGlv
bkRlbGVnYXRlKQpAQCAtOTExLDEzICs5NTQsNiBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2
aWdhdGlvbkNsaWVudDo6CiAKICAgICBhdXRvIGVycm9yV2l0aFJlY292ZXJ5QXR0ZW1wdGVyID0g
Y3JlYXRlRXJyb3JXaXRoUmVjb3ZlcnlBdHRlbXB0ZXIobV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJW
aWV3LCBmcmFtZUluZm8sIGVycm9yKTsKIAotICAgIGlmIChmcmFtZUluZm8uaXNNYWluRnJhbWUp
IHsKLSAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBuYXZpZ2F0aW9uIGlz
IG5vdCBudWxsIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBzb21lIG5hdmlnYXRp
b25zIHRocm91Z2ggdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KLSAgICAgICAgaWYgKG1fbmF2aWdh
dGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRmFpbE5hdmln
YXRpb25XaXRoRXJyb3JVc2VySW5mbykKLSAgICAgICAgICAgIFsoaWQgPFdLTmF2aWdhdGlvbkRl
bGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0
YXRlLm1fd2ViVmlldyBkaWRGYWlsTmF2aWdhdGlvbjp3cmFwcGVyKG5hdmlnYXRpb24pIHdpdGhF
cnJvcjplcnJvcldpdGhSZWNvdmVyeUF0dGVtcHRlci5nZXQoKSB1c2VySW5mbzp1c2VySW5mbyA/
IHN0YXRpY19jYXN0PGlkIDxOU1NlY3VyZUNvZGluZz4+KHVzZXJJbmZvLT53cmFwcGVyKCkpIDog
bmlsXTsKLSAgICAgICAgZWxzZSBpZiAobV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVs
ZWdhdGVNZXRob2RzLndlYlZpZXdEaWRGYWlsTmF2aWdhdGlvbldpdGhFcnJvcikKLSAgICAgICAg
ICAgIFtuYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZp
ZXcgZGlkRmFpbE5hdmlnYXRpb246d3JhcHBlcihuYXZpZ2F0aW9uKSB3aXRoRXJyb3I6ZXJyb3JX
aXRoUmVjb3ZlcnlBdHRlbXB0ZXIuZ2V0KCldOwotICAgIH0KICAgICBpZiAobV9uYXZpZ2F0aW9u
U3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRGYWlsTG9hZFdpdGhS
ZXF1ZXN0SW5GcmFtZVdpdGhFcnJvcikKICAgICAgICAgWyhpZCA8V0tOYXZpZ2F0aW9uRGVsZWdh
dGVQcml2YXRlPiluYXZpZ2F0aW9uRGVsZWdhdGUgX3dlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUu
bV93ZWJWaWV3IGRpZEZhaWxMb2FkV2l0aFJlcXVlc3Q6cmVxdWVzdC5uc1VSTFJlcXVlc3QoSFRU
UEJvZHlVcGRhdGVQb2xpY3k6OkRvTm90VXBkYXRlSFRUUEJvZHkpIGluRnJhbWU6d3JhcHBlcihB
UEk6OkZyYW1lSW5mbzo6Y3JlYXRlKFdURk1vdmUoZnJhbWVJbmZvKSwgJnBhZ2UpKSB3aXRoRXJy
b3I6ZXJyb3JXaXRoUmVjb3ZlcnlBdHRlbXB0ZXIuZ2V0KCldOwogfQpJbmRleDogVG9vbHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjU5MTYzKQor
KysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAt
MDMtMjggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAg
ICAgICBSRUdSRVNTSU9OKHIyNTc5NjMpIFVJIHByb2Nlc3MgY3Jhc2hlcyB3aGVuIHNldHRpbmcg
bmF2aWdhdGlvbiBkZWxlZ2F0ZSBpbnNpZGUgbmF2aWdhdGlvbiBkZWxlZ2F0ZSBjYWxsYmFja3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTcwNQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjA4MTQ3NjU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0FzeW5jUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlLm1tOgorICAgICAgICAoLVtUZXN0
QXN5bmNOYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzpkaWRGYWlsTmF2aWdhdGlvbjp3aXRoRXJy
b3I6XSk6CisgICAgICAgICgtW1Rlc3RBc3luY05hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3OmRp
ZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb246d2l0aEVycm9yOl0pOgorCiAyMDIwLTAzLTI4ICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRGVw
cmVjYXRlIGluamVjdGVkIGJ1bmRsZSBwYWdlIGdyb3VwIFNQSQpJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Bc3luY1BvbGljeUZvck5hdmlnYXRpb25SZXNwb25z
ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0FzeW5jUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlLm1tCShyZXZpc2lvbiAyNTkxNDMpCisr
KyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FzeW5jUG9saWN5Rm9yTmF2
aWdhdGlvblJlc3BvbnNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00OCwxMiArNDgsMTQgQEAgLSAo
dm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZAogewogICAgIG5hdmlnYXRpb25G
YWlsZWQgPSB0cnVlOwogICAgIG5hdmlnYXRpb25Db21wbGV0ZSA9IHRydWU7CisgICAgd2ViVmll
dy5uYXZpZ2F0aW9uRGVsZWdhdGUgPSBuaWw7CiB9CiAKIC0gKHZvaWQpd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBkaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uOihudWxsX3Vuc3BlY2lm
aWVkIFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb24gd2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IK
IHsKICAgICBuYXZpZ2F0aW9uRmFpbGVkID0gdHJ1ZTsKICAgICBuYXZpZ2F0aW9uQ29tcGxldGUg
PSB0cnVlOworICAgIHdlYlZpZXcubmF2aWdhdGlvbkRlbGVnYXRlID0gbmlsOwogfQogCiAtICh2
b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiBkZWNpc2lvbkhh
bmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkpZGVjaXNpb25IYW5kbGVy
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>