<?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>188398</bug_id>
          
          <creation_ts>2018-08-07 17:48:40 -0700</creation_ts>
          <short_desc>Use fewer Strings as URLs</short_desc>
          <delta_ts>2018-08-08 09:33:26 -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>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></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>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1448647</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-08-07 17:48:40 -0700</bug_when>
    <thetext>Use fewer Strings as URLs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448648</commentid>
    <comment_count>1</comment_count>
      <attachid>346746</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-08-07 17:49:08 -0700</bug_when>
    <thetext>Created attachment 346746
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448653</commentid>
    <comment_count>2</comment_count>
      <attachid>346749</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-08-07 18:35:42 -0700</bug_when>
    <thetext>Created attachment 346749
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448654</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-08-07 18:38:22 -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>1448772</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-08-08 09:33:26 -0700</bug_when>
    <thetext>Why?

URL objects are larger, so I’d like to understand the rationale for using them more.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346746</attachid>
            <date>2018-08-07 17:49:08 -0700</date>
            <delta_ts>2018-08-07 18:35:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188398-20180807174907.patch</filename>
            <type>text/plain</type>
            <size>19864</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzQ2ODIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE4LTA4LTA3ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIGZld2VyIFN0
cmluZ3MgYXMgVVJMcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTg4Mzk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBTaGFyZWQvTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpMb2Fk
UGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TG9hZFBhcmFtZXRl
cnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VMb2FkRGF0YSk6
CisgICAgICAgIChXS1BhZ2VMb2FkRGF0YVdpdGhVc2VyRGF0YSk6CisgICAgICAgIChXS1BhZ2VM
b2FkSFRNTFN0cmluZyk6CisgICAgICAgIChXS1BhZ2VMb2FkSFRNTFN0cmluZ1dpdGhVc2VyRGF0
YSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRy
b2xsZXIubW06CisgICAgICAgICgtW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBsb2FkSFRN
TFN0cmluZzpiYXNlVVJMOnVzZXJEYXRhOl0pOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXIgbG9hZERhdGE6TUlNRVR5cGU6dGV4dEVuY29kaW5nTmFtZTpiYXNlVVJMOnVz
ZXJEYXRhOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgor
ICAgICAgICAoLVtXS1dlYlZpZXcgbG9hZERhdGE6TUlNRVR5cGU6Y2hhcmFjdGVyRW5jb2RpbmdO
YW1lOmJhc2VVUkw6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfbG9hZERhdGE6TUlNRVR5cGU6
Y2hhcmFjdGVyRW5jb2RpbmdOYW1lOmJhc2VVUkw6dXNlckRhdGE6XSk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
bG9hZERhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRIVE1MU3RyaW5n
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkQWx0ZXJuYXRlSFRNTFN0cmlu
Zyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRE
YXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZFN0cmluZyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmxvYWRBbHRlcm5hdGVIVE1MU3RyaW5nKToKKwogMjAxOC0wOC0wNyAg
QmVuIFJpY2hhcmRzICA8YmVudG9uX3JpY2hhcmRzQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
U1BJIGZvciBsYXVuY2hpbmcgV2ViQ29udGVudCBwcm9jZXNzIHdpdGggcHJlLWxpbmtlZCBpbmpl
Y3RlZCBidW5kbGUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5jcHAJ
KHJldmlzaW9uIDIzNDY2MykKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsOSArNDQsOSBAQCB2b2lkIExvYWRQYXJhbWV0ZXJz
OjplbmNvZGUoSVBDOjpFbmNvZGVyCiAgICAgZW5jb2RlciA8PCBzdHJpbmc7CiAgICAgZW5jb2Rl
ciA8PCBNSU1FVHlwZTsKICAgICBlbmNvZGVyIDw8IGVuY29kaW5nTmFtZTsKLSAgICBlbmNvZGVy
IDw8IGJhc2VVUkxTdHJpbmc7Ci0gICAgZW5jb2RlciA8PCB1bnJlYWNoYWJsZVVSTFN0cmluZzsK
LSAgICBlbmNvZGVyIDw8IHByb3Zpc2lvbmFsTG9hZEVycm9yVVJMU3RyaW5nOworICAgIGVuY29k
ZXIgPDwgYmFzZVVSTDsKKyAgICBlbmNvZGVyIDw8IHVucmVhY2hhYmxlVVJMOworICAgIGVuY29k
ZXIgPDwgcHJvdmlzaW9uYWxMb2FkRXJyb3JVUkw7CiAgICAgZW5jb2RlciA8PCBzaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5OwogICAgIGVuY29kZXIgPDwgc2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkOwogICAgIGVuY29kZXIgPDwgdXNlckRhdGE7CkBAIC05MSwxMyArOTEsMTMgQEAgYm9v
bCBMb2FkUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlcgogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoZGF0YS5lbmNvZGluZ05hbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKGRhdGEuYmFzZVVSTFN0cmluZykpCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShkYXRhLmJhc2VVUkwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGRhdGEudW5yZWFjaGFibGVVUkxTdHJpbmcpKQorICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoZGF0YS51bnJlYWNoYWJsZVVSTCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZGF0YS5wcm92aXNpb25hbExvYWRFcnJvclVSTFN0
cmluZykpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRhLnByb3Zpc2lvbmFsTG9hZEVycm9y
VVJMKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShk
YXRhLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpKQpJbmRleDogU291cmNlL1dlYktpdC9T
aGFyZWQvTG9hZFBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Mb2FkUGFyYW1ldGVycy5oCShyZXZpc2lvbiAyMzQ2NjMpCisrKyBTb3VyY2UvV2ViS2l0L1No
YXJlZC9Mb2FkUGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4ICsyMyw3IEBACiAg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBMb2FkUGFy
YW1ldGVyc19oCi0jZGVmaW5lIExvYWRQYXJhbWV0ZXJzX2gKKyNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKQEAg
LTU3LDkgKzU2LDkgQEAgc3RydWN0IExvYWRQYXJhbWV0ZXJzIHsKICAgICBTdHJpbmcgTUlNRVR5
cGU7CiAgICAgU3RyaW5nIGVuY29kaW5nTmFtZTsKIAotICAgIFN0cmluZyBiYXNlVVJMU3RyaW5n
OwotICAgIFN0cmluZyB1bnJlYWNoYWJsZVVSTFN0cmluZzsKLSAgICBTdHJpbmcgcHJvdmlzaW9u
YWxMb2FkRXJyb3JVUkxTdHJpbmc7CisgICAgV2ViQ29yZTo6VVJMIGJhc2VVUkw7CisgICAgV2Vi
Q29yZTo6VVJMIHVucmVhY2hhYmxlVVJMOworICAgIFdlYkNvcmU6OlVSTCBwcm92aXNpb25hbExv
YWRFcnJvclVSTDsKIAogICAgIHVpbnQ2NF90IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k7
CiAgICAgYm9vbCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgeyBmYWxzZSB9OwpAQCAtNzEs
NSArNzAsMyBAQCBzdHJ1Y3QgTG9hZFBhcmFtZXRlcnMgewogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0Ci0KLSNlbmRpZiAvLyBMb2FkUGFyYW1ldGVyc19oCkluZGV4OiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDIzNDY2MykKKysrIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNDgs
NyArMTA0OCw3IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG8KICAg
ICByZXR1cm4gV1RGTW92ZShuYXZpZ2F0aW9uKTsKIH0KIAotUmVmUHRyPEFQSTo6TmF2aWdhdGlv
bj4gV2ViUGFnZVByb3h5Ojpsb2FkRGF0YShBUEk6OkRhdGEqIGRhdGEsIGNvbnN0IFN0cmluZyYg
TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwg
QVBJOjpPYmplY3QqIHVzZXJEYXRhKQorUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVBy
b3h5Ojpsb2FkRGF0YShBUEk6OkRhdGEqIGRhdGEsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNv
bnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFVSTCYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVz
ZXJEYXRhKQogewogICAgIGlmIChtX2lzQ2xvc2VkKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
QEAgLTEwNjcsNyArMTA2Nyw3IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94
eTo6bG8KICAgICBsb2FkUGFyYW1ldGVycy5kYXRhID0gZGF0YS0+ZGF0YVJlZmVyZW5jZSgpOwog
ICAgIGxvYWRQYXJhbWV0ZXJzLk1JTUVUeXBlID0gTUlNRVR5cGU7CiAgICAgbG9hZFBhcmFtZXRl
cnMuZW5jb2RpbmdOYW1lID0gZW5jb2Rpbmc7Ci0gICAgbG9hZFBhcmFtZXRlcnMuYmFzZVVSTFN0
cmluZyA9IGJhc2VVUkw7CisgICAgbG9hZFBhcmFtZXRlcnMuYmFzZVVSTCA9IGJhc2VVUkw7CiAg
ICAgbG9hZFBhcmFtZXRlcnMudXNlckRhdGEgPSBVc2VyRGF0YShwcm9jZXNzKCkudHJhbnNmb3Jt
T2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YSkuZ2V0KCkpOwogICAgIGFkZFBsYXRmb3JtTG9hZFBh
cmFtZXRlcnMobG9hZFBhcmFtZXRlcnMpOwogCkBAIC0xMDc5LDcgKzEwNzksNyBAQCBSZWZQdHI8
QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJveHk6OmxvCiB9CiAKIC8vIEZJWE1FOiBHZXQgcmlk
IG9mIGxvYWRIVE1MU3RyaW5nIGFuZCBqdXN0IHVzZSBsb2FkRGF0YSBpbnN0ZWFkLgotUmVmUHRy
PEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5Ojpsb2FkSFRNTFN0cmluZyhjb25zdCBTdHJp
bmcmIGh0bWxTdHJpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJE
YXRhKQorUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5Ojpsb2FkSFRNTFN0cmlu
Zyhjb25zdCBTdHJpbmcmIGh0bWxTdHJpbmcsIGNvbnN0IFVSTCYgYmFzZVVSTCwgQVBJOjpPYmpl
Y3QqIHVzZXJEYXRhKQogewogICAgIGlmIChtX2lzQ2xvc2VkKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKQEAgLTEwODgsNyArMTA4OCw3IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBh
Z2VQcm94eTo6bG8KIAogICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3BhZ2VMb2FkU3RhdGUudHJh
bnNhY3Rpb24oKTsKIAotICAgIG1fcGFnZUxvYWRTdGF0ZS5zZXRQZW5kaW5nQVBJUmVxdWVzdFVS
TCh0cmFuc2FjdGlvbiwgIWJhc2VVUkwuaXNFbXB0eSgpID8gYmFzZVVSTCA6IGJsYW5rVVJMKCku
c3RyaW5nKCkpOworICAgIG1fcGFnZUxvYWRTdGF0ZS5zZXRQZW5kaW5nQVBJUmVxdWVzdFVSTCh0
cmFuc2FjdGlvbiwgIWJhc2VVUkwuaXNFbXB0eSgpID8gYmFzZVVSTCA6IGJsYW5rVVJMKCkpOwog
CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJlYXR0YWNoVG9XZWJQcm9jZXNzKCk7CkBA
IC0xMDk3LDcgKzEwOTcsNyBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJveHk6
OmxvCiAgICAgbG9hZFBhcmFtZXRlcnMubmF2aWdhdGlvbklEID0gbmF2aWdhdGlvbi0+bmF2aWdh
dGlvbklEKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMuc3RyaW5nID0gaHRtbFN0cmluZzsKICAgICBs
b2FkUGFyYW1ldGVycy5NSU1FVHlwZSA9ICJ0ZXh0L2h0bWwiX3M7Ci0gICAgbG9hZFBhcmFtZXRl
cnMuYmFzZVVSTFN0cmluZyA9IGJhc2VVUkw7CisgICAgbG9hZFBhcmFtZXRlcnMuYmFzZVVSTCA9
IGJhc2VVUkw7CiAgICAgbG9hZFBhcmFtZXRlcnMudXNlckRhdGEgPSBVc2VyRGF0YShwcm9jZXNz
KCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YSkuZ2V0KCkpOwogICAgIGFkZFBs
YXRmb3JtTG9hZFBhcmFtZXRlcnMobG9hZFBhcmFtZXRlcnMpOwogCkBAIC0xMTMzLDkgKzExMzMs
OSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZEFsdGVybmF0ZUhUTUxTdHJpCiAgICAgTG9hZFBh
cmFtZXRlcnMgbG9hZFBhcmFtZXRlcnM7CiAgICAgbG9hZFBhcmFtZXRlcnMubmF2aWdhdGlvbklE
ID0gMDsKICAgICBsb2FkUGFyYW1ldGVycy5zdHJpbmcgPSBodG1sU3RyaW5nOwotICAgIGxvYWRQ
YXJhbWV0ZXJzLmJhc2VVUkxTdHJpbmcgPSBiYXNlVVJMOwotICAgIGxvYWRQYXJhbWV0ZXJzLnVu
cmVhY2hhYmxlVVJMU3RyaW5nID0gdW5yZWFjaGFibGVVUkw7Ci0gICAgbG9hZFBhcmFtZXRlcnMu
cHJvdmlzaW9uYWxMb2FkRXJyb3JVUkxTdHJpbmcgPSBtX2ZhaWxpbmdQcm92aXNpb25hbExvYWRV
Ukw7CisgICAgbG9hZFBhcmFtZXRlcnMuYmFzZVVSTCA9IGJhc2VVUkw7CisgICAgbG9hZFBhcmFt
ZXRlcnMudW5yZWFjaGFibGVVUkwgPSB1bnJlYWNoYWJsZVVSTDsKKyAgICBsb2FkUGFyYW1ldGVy
cy5wcm92aXNpb25hbExvYWRFcnJvclVSTCA9IG1fZmFpbGluZ1Byb3Zpc2lvbmFsTG9hZFVSTDsK
ICAgICBsb2FkUGFyYW1ldGVycy51c2VyRGF0YSA9IFVzZXJEYXRhKHByb2Nlc3MoKS50cmFuc2Zv
cm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhKS5nZXQoKSk7CiAgICAgYWRkUGxhdGZvcm1Mb2Fk
UGFyYW1ldGVycyhsb2FkUGFyYW1ldGVycyk7CiAKQEAgLTM1NzgsOSArMzU3OCw5IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92aXNpb25hbFUKICAgICBmcmFtZS0+ZGlkUmVjZWl2
ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKHVybCk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFJlc291cmNl
RXJyb3ImIGVycm9yLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBjb25zdCBVUkwmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBSZXNvdXJjZUVycm9yJiBl
cnJvciwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewotICAgIExPRyhMb2FkaW5nLCAiKExv
YWRpbmcpIFdlYlBhZ2VQcm94eSAlIiBQUkl1NjQgIiBpbiB3ZWIgcHJvY2VzcyBwaWQgJWkgZGlk
RmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIHRvIHByb3Zpc2lvbmFsVVJMICVzIiwgbV9wYWdl
SUQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgcHJvdmlzaW9uYWxVUkwudXRmOCgp
LmRhdGEoKSk7CisgICAgTE9HKExvYWRpbmcsICIoTG9hZGluZykgV2ViUGFnZVByb3h5ICUiIFBS
SXU2NCAiIGluIHdlYiBwcm9jZXNzIHBpZCAlaSBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUgdG8gcHJvdmlzaW9uYWxVUkwgJXMiLCBtX3BhZ2VJRCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRl
bnRpZmllcigpLCBwcm92aXNpb25hbFVSTC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAogICAg
IFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKG1fcGFnZUNsaWVudCk7CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCShyZXZpc2lvbiAyMzQ2NjMpCisrKyBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAt
NDU2LDggKzQ1Niw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRl
cnMoTG9hZFBhcmFtZXRlcnMmKTsKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBsb2FkUmVx
dWVzdChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNo
b3VsZEFsbG93RXh0ZXJuYWxTY2hlbWVzLCBBUEk6Ok9iamVjdCogdXNlckRhdGEgPSBudWxscHRy
KTsKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBsb2FkRmlsZShjb25zdCBTdHJpbmcmIGZp
bGVVUkwsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEaXJlY3RvcnlVUkwsIEFQSTo6T2JqZWN0KiB1
c2VyRGF0YSA9IG51bGxwdHIpOwotICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IGxvYWREYXRh
KEFQSTo6RGF0YSosIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2Rp
bmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhID0gbnVsbHB0
cik7Ci0gICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbG9hZEhUTUxTdHJpbmcoY29uc3QgU3Ry
aW5nJiBodG1sU3RyaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2Vy
RGF0YSA9IG51bGxwdHIpOworICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IGxvYWREYXRhKEFQ
STo6RGF0YSosIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2Rpbmcs
IGNvbnN0IFdlYkNvcmU6OlVSTCYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhID0gbnVs
bHB0cik7CisgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbG9hZEhUTUxTdHJpbmcoY29uc3Qg
U3RyaW5nJiBodG1sU3RyaW5nLCBjb25zdCBXZWJDb3JlOjpVUkwmIGJhc2VVUkwsIEFQSTo6T2Jq
ZWN0KiB1c2VyRGF0YSA9IG51bGxwdHIpOwogICAgIHZvaWQgbG9hZEFsdGVybmF0ZUhUTUxTdHJp
bmcoY29uc3QgU3RyaW5nJiBodG1sU3RyaW5nLCBjb25zdCBXZWJDb3JlOjpVUkwmIGJhc2VVUkws
IGNvbnN0IFdlYkNvcmU6OlVSTCYgdW5yZWFjaGFibGVVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0
YSA9IG51bGxwdHIpOwogICAgIHZvaWQgbG9hZFBsYWluVGV4dFN0cmluZyhjb25zdCBTdHJpbmcm
LCBBUEk6Ok9iamVjdCogdXNlckRhdGEgPSBudWxscHRyKTsKICAgICB2b2lkIGxvYWRXZWJBcmNo
aXZlRGF0YShBUEk6OkRhdGEqLCBBUEk6Ok9iamVjdCogdXNlckRhdGEgPSBudWxscHRyKTsKQEAg
LTE0MDQsNyArMTQwNCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJl
ZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJs
ZSBkZWxheSk7CiAgICAgdm9pZCBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQpOwogICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlVSTCYmKTsK
LSAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBk
aWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZGlkQ29t
bWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRl
ciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZv
JiwgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Okhh
c0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0
YSYpOwogICAgIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQg
ZGlkRmluaXNoTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgVXNlckRhdGEmKTsKQEAgLTE4NDMsNyArMTg0Myw3IEBAIHByaXZhdGU6CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYlBhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudD4gbV9pbmplY3Rl
ZEJ1bmRsZUNsaWVudDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJOYXZpZ2F0aW9uU3RhdGU+
IG1fbmF2aWdhdGlvblN0YXRlOwotICAgIFN0cmluZyBtX2ZhaWxpbmdQcm92aXNpb25hbExvYWRV
Ukw7CisgICAgV2ViQ29yZTo6VVJMIG1fZmFpbGluZ1Byb3Zpc2lvbmFsTG9hZFVSTDsKICAgICBi
b29sIG1faXNMb2FkaW5nQWx0ZXJuYXRlSFRNTFN0cmluZ0ZvckZhaWxpbmdQcm92aXNpb25hbExv
YWQgeyBmYWxzZSB9OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IG1f
ZHJhd2luZ0FyZWE7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyMzQ2NjMpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTEzMCw3
ICsxMzAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIFdpbGxQZXJmb3JtQ2xp
ZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgdXJsLCBkb3VibGUg
ZGVsYXkpCiAgICAgRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlEKQogICAgIERpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpVUkwgdXJsKQotICAgIERpZEZhaWxQ
cm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgU3RyaW5nIHByb3Zpc2lvbmFsVVJMLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9y
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZEZhaWxQcm92aXNpb25hbExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6
VVJMIHByb3Zpc2lvbmFsVVJMLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBXZWJLaXQ6
OlVzZXJEYXRhIHVzZXJEYXRhKQogICAgIERpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFN0cmluZyBtaW1lVHlwZSwgYm9vbCBoYXND
dXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGxvYWRUeXBlLCBXZWJDb3JlOjpDZXJ0aWZp
Y2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3Vy
ZUNvbnRlbnQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGlkRmFpbExvYWRGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJl
c291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGlkRmlu
aXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQpJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCShyZXZpc2lvbiAyMzQ2NjMpCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTEsMjIg
KzE5MSwyMiBAQCB2b2lkIFdLUGFnZUxvYWRGaWxlV2l0aFVzZXJEYXRhKFdLUGFnZVJlCiAKIHZv
aWQgV0tQYWdlTG9hZERhdGEoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLRGF0YVJlZiBkYXRhUmVmLCBX
S1N0cmluZ1JlZiBNSU1FVHlwZVJlZiwgV0tTdHJpbmdSZWYgZW5jb2RpbmdSZWYsIFdLVVJMUmVm
IGJhc2VVUkxSZWYpCiB7Ci0gICAgdG9JbXBsKHBhZ2VSZWYpLT5sb2FkRGF0YSh0b0ltcGwoZGF0
YVJlZiksIHRvV1RGU3RyaW5nKE1JTUVUeXBlUmVmKSwgdG9XVEZTdHJpbmcoZW5jb2RpbmdSZWYp
LCB0b1dURlN0cmluZyhiYXNlVVJMUmVmKSk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5sb2FkRGF0
YSh0b0ltcGwoZGF0YVJlZiksIHRvV1RGU3RyaW5nKE1JTUVUeXBlUmVmKSwgdG9XVEZTdHJpbmco
ZW5jb2RpbmdSZWYpLCBVUkwoVVJMKCksIHRvV1RGU3RyaW5nKGJhc2VVUkxSZWYpKSk7CiB9CiAK
IHZvaWQgV0tQYWdlTG9hZERhdGFXaXRoVXNlckRhdGEoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLRGF0
YVJlZiBkYXRhUmVmLCBXS1N0cmluZ1JlZiBNSU1FVHlwZVJlZiwgV0tTdHJpbmdSZWYgZW5jb2Rp
bmdSZWYsIFdLVVJMUmVmIGJhc2VVUkxSZWYsIFdLVHlwZVJlZiB1c2VyRGF0YVJlZikKIHsKLSAg
ICB0b0ltcGwocGFnZVJlZiktPmxvYWREYXRhKHRvSW1wbChkYXRhUmVmKSwgdG9XVEZTdHJpbmco
TUlNRVR5cGVSZWYpLCB0b1dURlN0cmluZyhlbmNvZGluZ1JlZiksIHRvV1RGU3RyaW5nKGJhc2VV
UkxSZWYpLCB0b0ltcGwodXNlckRhdGFSZWYpKTsKKyAgICB0b0ltcGwocGFnZVJlZiktPmxvYWRE
YXRhKHRvSW1wbChkYXRhUmVmKSwgdG9XVEZTdHJpbmcoTUlNRVR5cGVSZWYpLCB0b1dURlN0cmlu
ZyhlbmNvZGluZ1JlZiksIFVSTChVUkwoKSwgdG9XVEZTdHJpbmcoYmFzZVVSTFJlZikpLCB0b0lt
cGwodXNlckRhdGFSZWYpKTsKIH0KIAogdm9pZCBXS1BhZ2VMb2FkSFRNTFN0cmluZyhXS1BhZ2VS
ZWYgcGFnZVJlZiwgV0tTdHJpbmdSZWYgaHRtbFN0cmluZ1JlZiwgV0tVUkxSZWYgYmFzZVVSTFJl
ZikKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPmxvYWRIVE1MU3RyaW5nKHRvV1RGU3RyaW5nKGh0
bWxTdHJpbmdSZWYpLCB0b1dURlN0cmluZyhiYXNlVVJMUmVmKSk7CisgICAgdG9JbXBsKHBhZ2VS
ZWYpLT5sb2FkSFRNTFN0cmluZyh0b1dURlN0cmluZyhodG1sU3RyaW5nUmVmKSwgVVJMKFVSTCgp
LCB0b1dURlN0cmluZyhiYXNlVVJMUmVmKSkpOwogfQogCiB2b2lkIFdLUGFnZUxvYWRIVE1MU3Ry
aW5nV2l0aFVzZXJEYXRhKFdLUGFnZVJlZiBwYWdlUmVmLCBXS1N0cmluZ1JlZiBodG1sU3RyaW5n
UmVmLCBXS1VSTFJlZiBiYXNlVVJMUmVmLCBXS1R5cGVSZWYgdXNlckRhdGFSZWYpCiB7Ci0gICAg
dG9JbXBsKHBhZ2VSZWYpLT5sb2FkSFRNTFN0cmluZyh0b1dURlN0cmluZyhodG1sU3RyaW5nUmVm
KSwgdG9XVEZTdHJpbmcoYmFzZVVSTFJlZiksIHRvSW1wbCh1c2VyRGF0YVJlZikpOworICAgIHRv
SW1wbChwYWdlUmVmKS0+bG9hZEhUTUxTdHJpbmcodG9XVEZTdHJpbmcoaHRtbFN0cmluZ1JlZiks
IFVSTChVUkwoKSwgdG9XVEZTdHJpbmcoYmFzZVVSTFJlZikpLCB0b0ltcGwodXNlckRhdGFSZWYp
KTsKIH0KIAogdm9pZCBXS1BhZ2VMb2FkQWx0ZXJuYXRlSFRNTFN0cmluZyhXS1BhZ2VSZWYgcGFn
ZVJlZiwgV0tTdHJpbmdSZWYgaHRtbFN0cmluZ1JlZiwgV0tVUkxSZWYgYmFzZVVSTFJlZiwgV0tV
UkxSZWYgdW5yZWFjaGFibGVVUkxSZWYpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xs
ZXIubW0JKHJldmlzaW9uIDIzNDY2MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTE1
Myw3ICsxNTMsNyBAQCAtICh2b2lkKWxvYWRIVE1MU3RyaW5nOihOU1N0cmluZyAqKUhUTUxTCiAg
ICAgaWYgKHVzZXJEYXRhKQogICAgICAgICB3a1VzZXJEYXRhID0gT2JqQ09iamVjdEdyYXBoOjpj
cmVhdGUodXNlckRhdGEpOwogCi0gICAgX3BhZ2UtPmxvYWRIVE1MU3RyaW5nKEhUTUxTdHJpbmcs
IFtiYXNlVVJMIF93ZWJfb3JpZ2luYWxEYXRhQXNXVEZTdHJpbmddLCB3a1VzZXJEYXRhLmdldCgp
KTsKKyAgICBfcGFnZS0+bG9hZEhUTUxTdHJpbmcoSFRNTFN0cmluZywgYmFzZVVSTCwgd2tVc2Vy
RGF0YS5nZXQoKSk7CiB9CiAKIC0gKHZvaWQpbG9hZEFsdGVybmF0ZUhUTUxTdHJpbmc6KE5TU3Ry
aW5nICopc3RyaW5nIGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTCBmb3JVbnJlYWNoYWJsZVVSTDoo
TlNVUkwgKil1bnJlYWNoYWJsZVVSTApAQCAtMTc4LDcgKzE3OCw3IEBAIC0gKHZvaWQpbG9hZERh
dGE6KE5TRGF0YSAqKWRhdGEgTUlNRVR5cGUKICAgICBpZiAodXNlckRhdGEpCiAgICAgICAgIHdr
VXNlckRhdGEgPSBPYmpDT2JqZWN0R3JhcGg6OmNyZWF0ZSh1c2VyRGF0YSk7CiAKLSAgICBfcGFn
ZS0+bG9hZERhdGEoYXBpRGF0YS5nZXQoKSwgTUlNRVR5cGUsIGVuY29kaW5nTmFtZSwgW2Jhc2VV
UkwgX3dlYl9vcmlnaW5hbERhdGFBc1dURlN0cmluZ10sIHdrVXNlckRhdGEuZ2V0KCkpOworICAg
IF9wYWdlLT5sb2FkRGF0YShhcGlEYXRhLmdldCgpLCBNSU1FVHlwZSwgZW5jb2RpbmdOYW1lLCBi
YXNlVVJMLCB3a1VzZXJEYXRhLmdldCgpKTsKIH0KIAogLSAodm9pZClzdG9wTG9hZGluZwpJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCShy
ZXZpc2lvbiAyMzQ2NjMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC05MDMsNyArOTAzLDcgQEAgLSAoV0tOYXZpZ2F0
aW9uICopbG9hZEhUTUxTdHJpbmc6KE5TU3RyaQogCiAtIChXS05hdmlnYXRpb24gKilsb2FkRGF0
YTooTlNEYXRhICopZGF0YSBNSU1FVHlwZTooTlNTdHJpbmcgKilNSU1FVHlwZSBjaGFyYWN0ZXJF
bmNvZGluZ05hbWU6KE5TU3RyaW5nICopY2hhcmFjdGVyRW5jb2RpbmdOYW1lIGJhc2VVUkw6KE5T
VVJMICopYmFzZVVSTAogewotICAgIGF1dG8gbmF2aWdhdGlvbiA9IF9wYWdlLT5sb2FkRGF0YShB
UEk6OkRhdGE6OmNyZWF0ZVdpdGhvdXRDb3B5aW5nKGRhdGEpLnB0cigpLCBNSU1FVHlwZSwgY2hh
cmFjdGVyRW5jb2RpbmdOYW1lLCBiYXNlVVJMLmFic29sdXRlU3RyaW5nKTsKKyAgICBhdXRvIG5h
dmlnYXRpb24gPSBfcGFnZS0+bG9hZERhdGEoQVBJOjpEYXRhOjpjcmVhdGVXaXRob3V0Q29weWlu
ZyhkYXRhKS5wdHIoKSwgTUlNRVR5cGUsIGNoYXJhY3RlckVuY29kaW5nTmFtZSwgYmFzZVVSTCk7
CiAgICAgaWYgKCFuYXZpZ2F0aW9uKQogICAgICAgICByZXR1cm4gbmlsOwogCkBAIC00MjM3LDcg
KzQyMzcsNyBAQCAtICh2b2lkKV9sb2FkQWx0ZXJuYXRlSFRNTFN0cmluZzooTlNTdHJpCiAKIC0g
KFdLTmF2aWdhdGlvbiAqKV9sb2FkRGF0YTooTlNEYXRhICopZGF0YSBNSU1FVHlwZTooTlNTdHJp
bmcgKilNSU1FVHlwZSBjaGFyYWN0ZXJFbmNvZGluZ05hbWU6KE5TU3RyaW5nICopY2hhcmFjdGVy
RW5jb2RpbmdOYW1lIGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTCB1c2VyRGF0YTooaWQpdXNlckRh
dGEKIHsKLSAgICBhdXRvIG5hdmlnYXRpb24gPSBfcGFnZS0+bG9hZERhdGEoQVBJOjpEYXRhOjpj
cmVhdGVXaXRob3V0Q29weWluZyhkYXRhKS5wdHIoKSwgTUlNRVR5cGUsIGNoYXJhY3RlckVuY29k
aW5nTmFtZSwgYmFzZVVSTC5hYnNvbHV0ZVN0cmluZywgV2ViS2l0OjpPYmpDT2JqZWN0R3JhcGg6
OmNyZWF0ZSh1c2VyRGF0YSkucHRyKCkpOworICAgIGF1dG8gbmF2aWdhdGlvbiA9IF9wYWdlLT5s
b2FkRGF0YShBUEk6OkRhdGE6OmNyZWF0ZVdpdGhvdXRDb3B5aW5nKGRhdGEpLnB0cigpLCBNSU1F
VHlwZSwgY2hhcmFjdGVyRW5jb2RpbmdOYW1lLCBiYXNlVVJMLCBXZWJLaXQ6Ok9iakNPYmplY3RH
cmFwaDo6Y3JlYXRlKHVzZXJEYXRhKS5wdHIoKSk7CiAgICAgaWYgKCFuYXZpZ2F0aW9uKQogICAg
ICAgICByZXR1cm4gbmlsOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gMjM0NjYzKQorKysgU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMjMsNyArMTMy
Myw3IEBAIHZvaWQgV2ViUGFnZTo6bG9hZERhdGEoY29uc3QgTG9hZFBhcmFtZXQKICAgICBwbGF0
Zm9ybURpZFJlY2VpdmVMb2FkUGFyYW1ldGVycyhsb2FkUGFyYW1ldGVycyk7CiAKICAgICBhdXRv
IHNoYXJlZEJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgY2hhcio+KGxvYWRQYXJhbWV0ZXJzLmRhdGEuZGF0YSgpKSwgbG9hZFBhcmFtZXRlcnMuZGF0
YS5zaXplKCkpOwotICAgIFVSTCBiYXNlVVJMID0gbG9hZFBhcmFtZXRlcnMuYmFzZVVSTFN0cmlu
Zy5pc0VtcHR5KCkgPyBibGFua1VSTCgpIDogVVJMKFVSTCgpLCBsb2FkUGFyYW1ldGVycy5iYXNl
VVJMU3RyaW5nKTsKKyAgICBVUkwgYmFzZVVSTCA9IGxvYWRQYXJhbWV0ZXJzLmJhc2VVUkwuaXNF
bXB0eSgpID8gYmxhbmtVUkwoKSA6IGxvYWRQYXJhbWV0ZXJzLmJhc2VVUkw7CiAgICAgbG9hZERh
dGFJbXBsKGxvYWRQYXJhbWV0ZXJzLm5hdmlnYXRpb25JRCwgV1RGTW92ZShzaGFyZWRCdWZmZXIp
LCBsb2FkUGFyYW1ldGVycy5NSU1FVHlwZSwgbG9hZFBhcmFtZXRlcnMuZW5jb2RpbmdOYW1lLCBi
YXNlVVJMLCBVUkwoKSwgbG9hZFBhcmFtZXRlcnMudXNlckRhdGEpOwogfQogCkBAIC0xMzMxLDcg
KzEzMzEsNyBAQCB2b2lkIFdlYlBhZ2U6OmxvYWRTdHJpbmcoY29uc3QgTG9hZFBhcmFtCiB7CiAg
ICAgcGxhdGZvcm1EaWRSZWNlaXZlTG9hZFBhcmFtZXRlcnMobG9hZFBhcmFtZXRlcnMpOwogCi0g
ICAgVVJMIGJhc2VVUkwgPSBsb2FkUGFyYW1ldGVycy5iYXNlVVJMU3RyaW5nLmlzRW1wdHkoKSA/
IGJsYW5rVVJMKCkgOiBVUkwoVVJMKCksIGxvYWRQYXJhbWV0ZXJzLmJhc2VVUkxTdHJpbmcpOwor
ICAgIFVSTCBiYXNlVVJMID0gbG9hZFBhcmFtZXRlcnMuYmFzZVVSTC5pc0VtcHR5KCkgPyBibGFu
a1VSTCgpIDogIGxvYWRQYXJhbWV0ZXJzLmJhc2VVUkw7CiAgICAgbG9hZFN0cmluZ0ltcGwobG9h
ZFBhcmFtZXRlcnMubmF2aWdhdGlvbklELCBsb2FkUGFyYW1ldGVycy5zdHJpbmcsIGxvYWRQYXJh
bWV0ZXJzLk1JTUVUeXBlLCBiYXNlVVJMLCBVUkwoKSwgbG9hZFBhcmFtZXRlcnMudXNlckRhdGEp
OwogfQogCkBAIC0xMzM5LDkgKzEzMzksOSBAQCB2b2lkIFdlYlBhZ2U6OmxvYWRBbHRlcm5hdGVI
VE1MU3RyaW5nKGNvCiB7CiAgICAgcGxhdGZvcm1EaWRSZWNlaXZlTG9hZFBhcmFtZXRlcnMobG9h
ZFBhcmFtZXRlcnMpOwogCi0gICAgVVJMIGJhc2VVUkwgPSBsb2FkUGFyYW1ldGVycy5iYXNlVVJM
U3RyaW5nLmlzRW1wdHkoKSA/IGJsYW5rVVJMKCkgOiBVUkwoVVJMKCksIGxvYWRQYXJhbWV0ZXJz
LmJhc2VVUkxTdHJpbmcpOwotICAgIFVSTCB1bnJlYWNoYWJsZVVSTCA9IGxvYWRQYXJhbWV0ZXJz
LnVucmVhY2hhYmxlVVJMU3RyaW5nLmlzRW1wdHkoKSA/IFVSTCgpIDogVVJMKFVSTCgpLCBsb2Fk
UGFyYW1ldGVycy51bnJlYWNoYWJsZVVSTFN0cmluZyk7Ci0gICAgVVJMIHByb3Zpc2lvbmFsTG9h
ZEVycm9yVVJMID0gbG9hZFBhcmFtZXRlcnMucHJvdmlzaW9uYWxMb2FkRXJyb3JVUkxTdHJpbmcu
aXNFbXB0eSgpID8gVVJMKCkgOiBVUkwoVVJMKCksIGxvYWRQYXJhbWV0ZXJzLnByb3Zpc2lvbmFs
TG9hZEVycm9yVVJMU3RyaW5nKTsKKyAgICBVUkwgYmFzZVVSTCA9IGxvYWRQYXJhbWV0ZXJzLmJh
c2VVUkwuaXNFbXB0eSgpID8gYmxhbmtVUkwoKSA6IGxvYWRQYXJhbWV0ZXJzLmJhc2VVUkw7Cisg
ICAgVVJMIHVucmVhY2hhYmxlVVJMID0gbG9hZFBhcmFtZXRlcnMudW5yZWFjaGFibGVVUkwuaXNF
bXB0eSgpID8gVVJMKCkgOiBsb2FkUGFyYW1ldGVycy51bnJlYWNoYWJsZVVSTDsKKyAgICBVUkwg
cHJvdmlzaW9uYWxMb2FkRXJyb3JVUkwgPSBsb2FkUGFyYW1ldGVycy5wcm92aXNpb25hbExvYWRF
cnJvclVSTC5pc0VtcHR5KCkgPyBVUkwoKSA6IGxvYWRQYXJhbWV0ZXJzLnByb3Zpc2lvbmFsTG9h
ZEVycm9yVVJMOwogICAgIG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkuc2V0UHJv
dmlzaW9uYWxMb2FkRXJyb3JCZWluZ0hhbmRsZWRVUkwocHJvdmlzaW9uYWxMb2FkRXJyb3JVUkwp
OwogICAgIGxvYWRTdHJpbmdJbXBsKDAsIGxvYWRQYXJhbWV0ZXJzLnN0cmluZywgInRleHQvaHRt
bCJfcywgYmFzZVVSTCwgdW5yZWFjaGFibGVVUkwsIGxvYWRQYXJhbWV0ZXJzLnVzZXJEYXRhKTsK
ICAgICBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLnNldFByb3Zpc2lvbmFsTG9h
ZEVycm9yQmVpbmdIYW5kbGVkVVJMKHsgfSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346749</attachid>
            <date>2018-08-07 18:35:42 -0700</date>
            <delta_ts>2018-08-07 19:03:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188398-20180807183541.patch</filename>
            <type>text/plain</type>
            <size>21076</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzQ2ODIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE4LTA4LTA3ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIGZld2VyIFN0
cmluZ3MgYXMgVVJMcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTg4Mzk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBTaGFyZWQvTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpMb2Fk
UGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TG9hZFBhcmFtZXRl
cnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VMb2FkRGF0YSk6
CisgICAgICAgIChXS1BhZ2VMb2FkRGF0YVdpdGhVc2VyRGF0YSk6CisgICAgICAgIChXS1BhZ2VM
b2FkSFRNTFN0cmluZyk6CisgICAgICAgIChXS1BhZ2VMb2FkSFRNTFN0cmluZ1dpdGhVc2VyRGF0
YSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRy
b2xsZXIubW06CisgICAgICAgICgtW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBsb2FkSFRN
TFN0cmluZzpiYXNlVVJMOnVzZXJEYXRhOl0pOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXIgbG9hZERhdGE6TUlNRVR5cGU6dGV4dEVuY29kaW5nTmFtZTpiYXNlVVJMOnVz
ZXJEYXRhOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgor
ICAgICAgICAoLVtXS1dlYlZpZXcgbG9hZERhdGE6TUlNRVR5cGU6Y2hhcmFjdGVyRW5jb2RpbmdO
YW1lOmJhc2VVUkw6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfbG9hZERhdGE6TUlNRVR5cGU6
Y2hhcmFjdGVyRW5jb2RpbmdOYW1lOmJhc2VVUkw6dXNlckRhdGE6XSk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
bG9hZERhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRIVE1MU3RyaW5n
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkQWx0ZXJuYXRlSFRNTFN0cmlu
Zyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRE
YXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZFN0cmluZyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmxvYWRBbHRlcm5hdGVIVE1MU3RyaW5nKToKKwogMjAxOC0wOC0wNyAg
QmVuIFJpY2hhcmRzICA8YmVudG9uX3JpY2hhcmRzQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
U1BJIGZvciBsYXVuY2hpbmcgV2ViQ29udGVudCBwcm9jZXNzIHdpdGggcHJlLWxpbmtlZCBpbmpl
Y3RlZCBidW5kbGUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5jcHAJ
KHJldmlzaW9uIDIzNDY2MykKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsOSArNDQsOSBAQCB2b2lkIExvYWRQYXJhbWV0ZXJz
OjplbmNvZGUoSVBDOjpFbmNvZGVyCiAgICAgZW5jb2RlciA8PCBzdHJpbmc7CiAgICAgZW5jb2Rl
ciA8PCBNSU1FVHlwZTsKICAgICBlbmNvZGVyIDw8IGVuY29kaW5nTmFtZTsKLSAgICBlbmNvZGVy
IDw8IGJhc2VVUkxTdHJpbmc7Ci0gICAgZW5jb2RlciA8PCB1bnJlYWNoYWJsZVVSTFN0cmluZzsK
LSAgICBlbmNvZGVyIDw8IHByb3Zpc2lvbmFsTG9hZEVycm9yVVJMU3RyaW5nOworICAgIGVuY29k
ZXIgPDwgYmFzZVVSTDsKKyAgICBlbmNvZGVyIDw8IHVucmVhY2hhYmxlVVJMOworICAgIGVuY29k
ZXIgPDwgcHJvdmlzaW9uYWxMb2FkRXJyb3JVUkw7CiAgICAgZW5jb2RlciA8PCBzaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5OwogICAgIGVuY29kZXIgPDwgc2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkOwogICAgIGVuY29kZXIgPDwgdXNlckRhdGE7CkBAIC05MSwxMyArOTEsMTMgQEAgYm9v
bCBMb2FkUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlcgogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoZGF0YS5lbmNvZGluZ05hbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKGRhdGEuYmFzZVVSTFN0cmluZykpCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShkYXRhLmJhc2VVUkwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGRhdGEudW5yZWFjaGFibGVVUkxTdHJpbmcpKQorICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoZGF0YS51bnJlYWNoYWJsZVVSTCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZGF0YS5wcm92aXNpb25hbExvYWRFcnJvclVSTFN0
cmluZykpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRhLnByb3Zpc2lvbmFsTG9hZEVycm9y
VVJMKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShk
YXRhLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpKQpJbmRleDogU291cmNlL1dlYktpdC9T
aGFyZWQvTG9hZFBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Mb2FkUGFyYW1ldGVycy5oCShyZXZpc2lvbiAyMzQ2NjMpCisrKyBTb3VyY2UvV2ViS2l0L1No
YXJlZC9Mb2FkUGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4ICsyMyw3IEBACiAg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBMb2FkUGFy
YW1ldGVyc19oCi0jZGVmaW5lIExvYWRQYXJhbWV0ZXJzX2gKKyNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKQEAg
LTU3LDkgKzU2LDkgQEAgc3RydWN0IExvYWRQYXJhbWV0ZXJzIHsKICAgICBTdHJpbmcgTUlNRVR5
cGU7CiAgICAgU3RyaW5nIGVuY29kaW5nTmFtZTsKIAotICAgIFN0cmluZyBiYXNlVVJMU3RyaW5n
OwotICAgIFN0cmluZyB1bnJlYWNoYWJsZVVSTFN0cmluZzsKLSAgICBTdHJpbmcgcHJvdmlzaW9u
YWxMb2FkRXJyb3JVUkxTdHJpbmc7CisgICAgV2ViQ29yZTo6VVJMIGJhc2VVUkw7CisgICAgV2Vi
Q29yZTo6VVJMIHVucmVhY2hhYmxlVVJMOworICAgIFdlYkNvcmU6OlVSTCBwcm92aXNpb25hbExv
YWRFcnJvclVSTDsKIAogICAgIHVpbnQ2NF90IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k7
CiAgICAgYm9vbCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgeyBmYWxzZSB9OwpAQCAtNzEs
NSArNzAsMyBAQCBzdHJ1Y3QgTG9hZFBhcmFtZXRlcnMgewogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0Ci0KLSNlbmRpZiAvLyBMb2FkUGFyYW1ldGVyc19oCkluZGV4OiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDIzNDY2MykKKysrIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNDgs
NyArMTA0OCw3IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG8KICAg
ICByZXR1cm4gV1RGTW92ZShuYXZpZ2F0aW9uKTsKIH0KIAotUmVmUHRyPEFQSTo6TmF2aWdhdGlv
bj4gV2ViUGFnZVByb3h5Ojpsb2FkRGF0YShBUEk6OkRhdGEqIGRhdGEsIGNvbnN0IFN0cmluZyYg
TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwg
QVBJOjpPYmplY3QqIHVzZXJEYXRhKQorUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVBy
b3h5Ojpsb2FkRGF0YShBUEk6OkRhdGEqIGRhdGEsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNv
bnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFVSTCYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVz
ZXJEYXRhKQogewogICAgIGlmIChtX2lzQ2xvc2VkKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
QEAgLTEwNjcsNyArMTA2Nyw3IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94
eTo6bG8KICAgICBsb2FkUGFyYW1ldGVycy5kYXRhID0gZGF0YS0+ZGF0YVJlZmVyZW5jZSgpOwog
ICAgIGxvYWRQYXJhbWV0ZXJzLk1JTUVUeXBlID0gTUlNRVR5cGU7CiAgICAgbG9hZFBhcmFtZXRl
cnMuZW5jb2RpbmdOYW1lID0gZW5jb2Rpbmc7Ci0gICAgbG9hZFBhcmFtZXRlcnMuYmFzZVVSTFN0
cmluZyA9IGJhc2VVUkw7CisgICAgbG9hZFBhcmFtZXRlcnMuYmFzZVVSTCA9IGJhc2VVUkw7CiAg
ICAgbG9hZFBhcmFtZXRlcnMudXNlckRhdGEgPSBVc2VyRGF0YShwcm9jZXNzKCkudHJhbnNmb3Jt
T2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YSkuZ2V0KCkpOwogICAgIGFkZFBsYXRmb3JtTG9hZFBh
cmFtZXRlcnMobG9hZFBhcmFtZXRlcnMpOwogCkBAIC0xMDc5LDcgKzEwNzksNyBAQCBSZWZQdHI8
QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJveHk6OmxvCiB9CiAKIC8vIEZJWE1FOiBHZXQgcmlk
IG9mIGxvYWRIVE1MU3RyaW5nIGFuZCBqdXN0IHVzZSBsb2FkRGF0YSBpbnN0ZWFkLgotUmVmUHRy
PEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5Ojpsb2FkSFRNTFN0cmluZyhjb25zdCBTdHJp
bmcmIGh0bWxTdHJpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJE
YXRhKQorUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5Ojpsb2FkSFRNTFN0cmlu
Zyhjb25zdCBTdHJpbmcmIGh0bWxTdHJpbmcsIGNvbnN0IFVSTCYgYmFzZVVSTCwgQVBJOjpPYmpl
Y3QqIHVzZXJEYXRhKQogewogICAgIGlmIChtX2lzQ2xvc2VkKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKQEAgLTEwODgsNyArMTA4OCw3IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBh
Z2VQcm94eTo6bG8KIAogICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3BhZ2VMb2FkU3RhdGUudHJh
bnNhY3Rpb24oKTsKIAotICAgIG1fcGFnZUxvYWRTdGF0ZS5zZXRQZW5kaW5nQVBJUmVxdWVzdFVS
TCh0cmFuc2FjdGlvbiwgIWJhc2VVUkwuaXNFbXB0eSgpID8gYmFzZVVSTCA6IGJsYW5rVVJMKCku
c3RyaW5nKCkpOworICAgIG1fcGFnZUxvYWRTdGF0ZS5zZXRQZW5kaW5nQVBJUmVxdWVzdFVSTCh0
cmFuc2FjdGlvbiwgIWJhc2VVUkwuaXNFbXB0eSgpID8gYmFzZVVSTCA6IGJsYW5rVVJMKCkpOwog
CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJlYXR0YWNoVG9XZWJQcm9jZXNzKCk7CkBA
IC0xMDk3LDcgKzEwOTcsNyBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJveHk6
OmxvCiAgICAgbG9hZFBhcmFtZXRlcnMubmF2aWdhdGlvbklEID0gbmF2aWdhdGlvbi0+bmF2aWdh
dGlvbklEKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMuc3RyaW5nID0gaHRtbFN0cmluZzsKICAgICBs
b2FkUGFyYW1ldGVycy5NSU1FVHlwZSA9ICJ0ZXh0L2h0bWwiX3M7Ci0gICAgbG9hZFBhcmFtZXRl
cnMuYmFzZVVSTFN0cmluZyA9IGJhc2VVUkw7CisgICAgbG9hZFBhcmFtZXRlcnMuYmFzZVVSTCA9
IGJhc2VVUkw7CiAgICAgbG9hZFBhcmFtZXRlcnMudXNlckRhdGEgPSBVc2VyRGF0YShwcm9jZXNz
KCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YSkuZ2V0KCkpOwogICAgIGFkZFBs
YXRmb3JtTG9hZFBhcmFtZXRlcnMobG9hZFBhcmFtZXRlcnMpOwogCkBAIC0xMTMzLDkgKzExMzMs
OSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZEFsdGVybmF0ZUhUTUxTdHJpCiAgICAgTG9hZFBh
cmFtZXRlcnMgbG9hZFBhcmFtZXRlcnM7CiAgICAgbG9hZFBhcmFtZXRlcnMubmF2aWdhdGlvbklE
ID0gMDsKICAgICBsb2FkUGFyYW1ldGVycy5zdHJpbmcgPSBodG1sU3RyaW5nOwotICAgIGxvYWRQ
YXJhbWV0ZXJzLmJhc2VVUkxTdHJpbmcgPSBiYXNlVVJMOwotICAgIGxvYWRQYXJhbWV0ZXJzLnVu
cmVhY2hhYmxlVVJMU3RyaW5nID0gdW5yZWFjaGFibGVVUkw7Ci0gICAgbG9hZFBhcmFtZXRlcnMu
cHJvdmlzaW9uYWxMb2FkRXJyb3JVUkxTdHJpbmcgPSBtX2ZhaWxpbmdQcm92aXNpb25hbExvYWRV
Ukw7CisgICAgbG9hZFBhcmFtZXRlcnMuYmFzZVVSTCA9IGJhc2VVUkw7CisgICAgbG9hZFBhcmFt
ZXRlcnMudW5yZWFjaGFibGVVUkwgPSB1bnJlYWNoYWJsZVVSTDsKKyAgICBsb2FkUGFyYW1ldGVy
cy5wcm92aXNpb25hbExvYWRFcnJvclVSTCA9IG1fZmFpbGluZ1Byb3Zpc2lvbmFsTG9hZFVSTDsK
ICAgICBsb2FkUGFyYW1ldGVycy51c2VyRGF0YSA9IFVzZXJEYXRhKHByb2Nlc3MoKS50cmFuc2Zv
cm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhKS5nZXQoKSk7CiAgICAgYWRkUGxhdGZvcm1Mb2Fk
UGFyYW1ldGVycyhsb2FkUGFyYW1ldGVycyk7CiAKQEAgLTM1NzgsOSArMzU3OCw5IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92aXNpb25hbFUKICAgICBmcmFtZS0+ZGlkUmVjZWl2
ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKHVybCk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFJlc291cmNl
RXJyb3ImIGVycm9yLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBjb25zdCBVUkwmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBSZXNvdXJjZUVycm9yJiBl
cnJvciwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewotICAgIExPRyhMb2FkaW5nLCAiKExv
YWRpbmcpIFdlYlBhZ2VQcm94eSAlIiBQUkl1NjQgIiBpbiB3ZWIgcHJvY2VzcyBwaWQgJWkgZGlk
RmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIHRvIHByb3Zpc2lvbmFsVVJMICVzIiwgbV9wYWdl
SUQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgcHJvdmlzaW9uYWxVUkwudXRmOCgp
LmRhdGEoKSk7CisgICAgTE9HKExvYWRpbmcsICIoTG9hZGluZykgV2ViUGFnZVByb3h5ICUiIFBS
SXU2NCAiIGluIHdlYiBwcm9jZXNzIHBpZCAlaSBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUgdG8gcHJvdmlzaW9uYWxVUkwgJXMiLCBtX3BhZ2VJRCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRl
bnRpZmllcigpLCBwcm92aXNpb25hbFVSTC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAogICAg
IFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKG1fcGFnZUNsaWVudCk7CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCShyZXZpc2lvbiAyMzQ2NjMpCisrKyBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAt
NDU2LDggKzQ1Niw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRl
cnMoTG9hZFBhcmFtZXRlcnMmKTsKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBsb2FkUmVx
dWVzdChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNo
b3VsZEFsbG93RXh0ZXJuYWxTY2hlbWVzLCBBUEk6Ok9iamVjdCogdXNlckRhdGEgPSBudWxscHRy
KTsKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBsb2FkRmlsZShjb25zdCBTdHJpbmcmIGZp
bGVVUkwsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEaXJlY3RvcnlVUkwsIEFQSTo6T2JqZWN0KiB1
c2VyRGF0YSA9IG51bGxwdHIpOwotICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IGxvYWREYXRh
KEFQSTo6RGF0YSosIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2Rp
bmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhID0gbnVsbHB0
cik7Ci0gICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbG9hZEhUTUxTdHJpbmcoY29uc3QgU3Ry
aW5nJiBodG1sU3RyaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2Vy
RGF0YSA9IG51bGxwdHIpOworICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IGxvYWREYXRhKEFQ
STo6RGF0YSosIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2Rpbmcs
IGNvbnN0IFdlYkNvcmU6OlVSTCYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhID0gbnVs
bHB0cik7CisgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbG9hZEhUTUxTdHJpbmcoY29uc3Qg
U3RyaW5nJiBodG1sU3RyaW5nLCBjb25zdCBXZWJDb3JlOjpVUkwmIGJhc2VVUkwsIEFQSTo6T2Jq
ZWN0KiB1c2VyRGF0YSA9IG51bGxwdHIpOwogICAgIHZvaWQgbG9hZEFsdGVybmF0ZUhUTUxTdHJp
bmcoY29uc3QgU3RyaW5nJiBodG1sU3RyaW5nLCBjb25zdCBXZWJDb3JlOjpVUkwmIGJhc2VVUkws
IGNvbnN0IFdlYkNvcmU6OlVSTCYgdW5yZWFjaGFibGVVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0
YSA9IG51bGxwdHIpOwogICAgIHZvaWQgbG9hZFBsYWluVGV4dFN0cmluZyhjb25zdCBTdHJpbmcm
LCBBUEk6Ok9iamVjdCogdXNlckRhdGEgPSBudWxscHRyKTsKICAgICB2b2lkIGxvYWRXZWJBcmNo
aXZlRGF0YShBUEk6OkRhdGEqLCBBUEk6Ok9iamVjdCogdXNlckRhdGEgPSBudWxscHRyKTsKQEAg
LTE0MDQsNyArMTQwNCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJl
ZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJs
ZSBkZWxheSk7CiAgICAgdm9pZCBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQpOwogICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlVSTCYmKTsK
LSAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBk
aWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZGlkQ29t
bWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRl
ciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZv
JiwgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Okhh
c0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0
YSYpOwogICAgIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQg
ZGlkRmluaXNoTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgVXNlckRhdGEmKTsKQEAgLTE4NDMsNyArMTg0Myw3IEBAIHByaXZhdGU6CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYlBhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudD4gbV9pbmplY3Rl
ZEJ1bmRsZUNsaWVudDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJOYXZpZ2F0aW9uU3RhdGU+
IG1fbmF2aWdhdGlvblN0YXRlOwotICAgIFN0cmluZyBtX2ZhaWxpbmdQcm92aXNpb25hbExvYWRV
Ukw7CisgICAgV2ViQ29yZTo6VVJMIG1fZmFpbGluZ1Byb3Zpc2lvbmFsTG9hZFVSTDsKICAgICBi
b29sIG1faXNMb2FkaW5nQWx0ZXJuYXRlSFRNTFN0cmluZ0ZvckZhaWxpbmdQcm92aXNpb25hbExv
YWQgeyBmYWxzZSB9OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IG1f
ZHJhd2luZ0FyZWE7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyMzQ2NjMpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTEzMCw3
ICsxMzAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIFdpbGxQZXJmb3JtQ2xp
ZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgdXJsLCBkb3VibGUg
ZGVsYXkpCiAgICAgRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlEKQogICAgIERpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpVUkwgdXJsKQotICAgIERpZEZhaWxQ
cm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgU3RyaW5nIHByb3Zpc2lvbmFsVVJMLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9y
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZEZhaWxQcm92aXNpb25hbExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6
VVJMIHByb3Zpc2lvbmFsVVJMLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBXZWJLaXQ6
OlVzZXJEYXRhIHVzZXJEYXRhKQogICAgIERpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFN0cmluZyBtaW1lVHlwZSwgYm9vbCBoYXND
dXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGxvYWRUeXBlLCBXZWJDb3JlOjpDZXJ0aWZp
Y2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3Vy
ZUNvbnRlbnQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGlkRmFpbExvYWRGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJl
c291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGlkRmlu
aXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQpJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCShyZXZpc2lvbiAyMzQ2NjMpCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTEsMjIg
KzE5MSwyMiBAQCB2b2lkIFdLUGFnZUxvYWRGaWxlV2l0aFVzZXJEYXRhKFdLUGFnZVJlCiAKIHZv
aWQgV0tQYWdlTG9hZERhdGEoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLRGF0YVJlZiBkYXRhUmVmLCBX
S1N0cmluZ1JlZiBNSU1FVHlwZVJlZiwgV0tTdHJpbmdSZWYgZW5jb2RpbmdSZWYsIFdLVVJMUmVm
IGJhc2VVUkxSZWYpCiB7Ci0gICAgdG9JbXBsKHBhZ2VSZWYpLT5sb2FkRGF0YSh0b0ltcGwoZGF0
YVJlZiksIHRvV1RGU3RyaW5nKE1JTUVUeXBlUmVmKSwgdG9XVEZTdHJpbmcoZW5jb2RpbmdSZWYp
LCB0b1dURlN0cmluZyhiYXNlVVJMUmVmKSk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5sb2FkRGF0
YSh0b0ltcGwoZGF0YVJlZiksIHRvV1RGU3RyaW5nKE1JTUVUeXBlUmVmKSwgdG9XVEZTdHJpbmco
ZW5jb2RpbmdSZWYpLCBVUkwoVVJMKCksIHRvV1RGU3RyaW5nKGJhc2VVUkxSZWYpKSk7CiB9CiAK
IHZvaWQgV0tQYWdlTG9hZERhdGFXaXRoVXNlckRhdGEoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLRGF0
YVJlZiBkYXRhUmVmLCBXS1N0cmluZ1JlZiBNSU1FVHlwZVJlZiwgV0tTdHJpbmdSZWYgZW5jb2Rp
bmdSZWYsIFdLVVJMUmVmIGJhc2VVUkxSZWYsIFdLVHlwZVJlZiB1c2VyRGF0YVJlZikKIHsKLSAg
ICB0b0ltcGwocGFnZVJlZiktPmxvYWREYXRhKHRvSW1wbChkYXRhUmVmKSwgdG9XVEZTdHJpbmco
TUlNRVR5cGVSZWYpLCB0b1dURlN0cmluZyhlbmNvZGluZ1JlZiksIHRvV1RGU3RyaW5nKGJhc2VV
UkxSZWYpLCB0b0ltcGwodXNlckRhdGFSZWYpKTsKKyAgICB0b0ltcGwocGFnZVJlZiktPmxvYWRE
YXRhKHRvSW1wbChkYXRhUmVmKSwgdG9XVEZTdHJpbmcoTUlNRVR5cGVSZWYpLCB0b1dURlN0cmlu
ZyhlbmNvZGluZ1JlZiksIFVSTChVUkwoKSwgdG9XVEZTdHJpbmcoYmFzZVVSTFJlZikpLCB0b0lt
cGwodXNlckRhdGFSZWYpKTsKIH0KIAogdm9pZCBXS1BhZ2VMb2FkSFRNTFN0cmluZyhXS1BhZ2VS
ZWYgcGFnZVJlZiwgV0tTdHJpbmdSZWYgaHRtbFN0cmluZ1JlZiwgV0tVUkxSZWYgYmFzZVVSTFJl
ZikKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPmxvYWRIVE1MU3RyaW5nKHRvV1RGU3RyaW5nKGh0
bWxTdHJpbmdSZWYpLCB0b1dURlN0cmluZyhiYXNlVVJMUmVmKSk7CisgICAgdG9JbXBsKHBhZ2VS
ZWYpLT5sb2FkSFRNTFN0cmluZyh0b1dURlN0cmluZyhodG1sU3RyaW5nUmVmKSwgVVJMKFVSTCgp
LCB0b1dURlN0cmluZyhiYXNlVVJMUmVmKSkpOwogfQogCiB2b2lkIFdLUGFnZUxvYWRIVE1MU3Ry
aW5nV2l0aFVzZXJEYXRhKFdLUGFnZVJlZiBwYWdlUmVmLCBXS1N0cmluZ1JlZiBodG1sU3RyaW5n
UmVmLCBXS1VSTFJlZiBiYXNlVVJMUmVmLCBXS1R5cGVSZWYgdXNlckRhdGFSZWYpCiB7Ci0gICAg
dG9JbXBsKHBhZ2VSZWYpLT5sb2FkSFRNTFN0cmluZyh0b1dURlN0cmluZyhodG1sU3RyaW5nUmVm
KSwgdG9XVEZTdHJpbmcoYmFzZVVSTFJlZiksIHRvSW1wbCh1c2VyRGF0YVJlZikpOworICAgIHRv
SW1wbChwYWdlUmVmKS0+bG9hZEhUTUxTdHJpbmcodG9XVEZTdHJpbmcoaHRtbFN0cmluZ1JlZiks
IFVSTChVUkwoKSwgdG9XVEZTdHJpbmcoYmFzZVVSTFJlZikpLCB0b0ltcGwodXNlckRhdGFSZWYp
KTsKIH0KIAogdm9pZCBXS1BhZ2VMb2FkQWx0ZXJuYXRlSFRNTFN0cmluZyhXS1BhZ2VSZWYgcGFn
ZVJlZiwgV0tTdHJpbmdSZWYgaHRtbFN0cmluZ1JlZiwgV0tVUkxSZWYgYmFzZVVSTFJlZiwgV0tV
UkxSZWYgdW5yZWFjaGFibGVVUkxSZWYpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xs
ZXIubW0JKHJldmlzaW9uIDIzNDY2MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTE1
Myw3ICsxNTMsNyBAQCAtICh2b2lkKWxvYWRIVE1MU3RyaW5nOihOU1N0cmluZyAqKUhUTUxTCiAg
ICAgaWYgKHVzZXJEYXRhKQogICAgICAgICB3a1VzZXJEYXRhID0gT2JqQ09iamVjdEdyYXBoOjpj
cmVhdGUodXNlckRhdGEpOwogCi0gICAgX3BhZ2UtPmxvYWRIVE1MU3RyaW5nKEhUTUxTdHJpbmcs
IFtiYXNlVVJMIF93ZWJfb3JpZ2luYWxEYXRhQXNXVEZTdHJpbmddLCB3a1VzZXJEYXRhLmdldCgp
KTsKKyAgICBfcGFnZS0+bG9hZEhUTUxTdHJpbmcoSFRNTFN0cmluZywgYmFzZVVSTCwgd2tVc2Vy
RGF0YS5nZXQoKSk7CiB9CiAKIC0gKHZvaWQpbG9hZEFsdGVybmF0ZUhUTUxTdHJpbmc6KE5TU3Ry
aW5nICopc3RyaW5nIGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTCBmb3JVbnJlYWNoYWJsZVVSTDoo
TlNVUkwgKil1bnJlYWNoYWJsZVVSTApAQCAtMTc4LDcgKzE3OCw3IEBAIC0gKHZvaWQpbG9hZERh
dGE6KE5TRGF0YSAqKWRhdGEgTUlNRVR5cGUKICAgICBpZiAodXNlckRhdGEpCiAgICAgICAgIHdr
VXNlckRhdGEgPSBPYmpDT2JqZWN0R3JhcGg6OmNyZWF0ZSh1c2VyRGF0YSk7CiAKLSAgICBfcGFn
ZS0+bG9hZERhdGEoYXBpRGF0YS5nZXQoKSwgTUlNRVR5cGUsIGVuY29kaW5nTmFtZSwgW2Jhc2VV
UkwgX3dlYl9vcmlnaW5hbERhdGFBc1dURlN0cmluZ10sIHdrVXNlckRhdGEuZ2V0KCkpOworICAg
IF9wYWdlLT5sb2FkRGF0YShhcGlEYXRhLmdldCgpLCBNSU1FVHlwZSwgZW5jb2RpbmdOYW1lLCBi
YXNlVVJMLCB3a1VzZXJEYXRhLmdldCgpKTsKIH0KIAogLSAodm9pZClzdG9wTG9hZGluZwpJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCShy
ZXZpc2lvbiAyMzQ2NjMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC05MDMsNyArOTAzLDcgQEAgLSAoV0tOYXZpZ2F0
aW9uICopbG9hZEhUTUxTdHJpbmc6KE5TU3RyaQogCiAtIChXS05hdmlnYXRpb24gKilsb2FkRGF0
YTooTlNEYXRhICopZGF0YSBNSU1FVHlwZTooTlNTdHJpbmcgKilNSU1FVHlwZSBjaGFyYWN0ZXJF
bmNvZGluZ05hbWU6KE5TU3RyaW5nICopY2hhcmFjdGVyRW5jb2RpbmdOYW1lIGJhc2VVUkw6KE5T
VVJMICopYmFzZVVSTAogewotICAgIGF1dG8gbmF2aWdhdGlvbiA9IF9wYWdlLT5sb2FkRGF0YShB
UEk6OkRhdGE6OmNyZWF0ZVdpdGhvdXRDb3B5aW5nKGRhdGEpLnB0cigpLCBNSU1FVHlwZSwgY2hh
cmFjdGVyRW5jb2RpbmdOYW1lLCBiYXNlVVJMLmFic29sdXRlU3RyaW5nKTsKKyAgICBhdXRvIG5h
dmlnYXRpb24gPSBfcGFnZS0+bG9hZERhdGEoQVBJOjpEYXRhOjpjcmVhdGVXaXRob3V0Q29weWlu
ZyhkYXRhKS5wdHIoKSwgTUlNRVR5cGUsIGNoYXJhY3RlckVuY29kaW5nTmFtZSwgYmFzZVVSTCk7
CiAgICAgaWYgKCFuYXZpZ2F0aW9uKQogICAgICAgICByZXR1cm4gbmlsOwogCkBAIC00MjM3LDcg
KzQyMzcsNyBAQCAtICh2b2lkKV9sb2FkQWx0ZXJuYXRlSFRNTFN0cmluZzooTlNTdHJpCiAKIC0g
KFdLTmF2aWdhdGlvbiAqKV9sb2FkRGF0YTooTlNEYXRhICopZGF0YSBNSU1FVHlwZTooTlNTdHJp
bmcgKilNSU1FVHlwZSBjaGFyYWN0ZXJFbmNvZGluZ05hbWU6KE5TU3RyaW5nICopY2hhcmFjdGVy
RW5jb2RpbmdOYW1lIGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTCB1c2VyRGF0YTooaWQpdXNlckRh
dGEKIHsKLSAgICBhdXRvIG5hdmlnYXRpb24gPSBfcGFnZS0+bG9hZERhdGEoQVBJOjpEYXRhOjpj
cmVhdGVXaXRob3V0Q29weWluZyhkYXRhKS5wdHIoKSwgTUlNRVR5cGUsIGNoYXJhY3RlckVuY29k
aW5nTmFtZSwgYmFzZVVSTC5hYnNvbHV0ZVN0cmluZywgV2ViS2l0OjpPYmpDT2JqZWN0R3JhcGg6
OmNyZWF0ZSh1c2VyRGF0YSkucHRyKCkpOworICAgIGF1dG8gbmF2aWdhdGlvbiA9IF9wYWdlLT5s
b2FkRGF0YShBUEk6OkRhdGE6OmNyZWF0ZVdpdGhvdXRDb3B5aW5nKGRhdGEpLnB0cigpLCBNSU1F
VHlwZSwgY2hhcmFjdGVyRW5jb2RpbmdOYW1lLCBiYXNlVVJMLCBXZWJLaXQ6Ok9iakNPYmplY3RH
cmFwaDo6Y3JlYXRlKHVzZXJEYXRhKS5wdHIoKSk7CiAgICAgaWYgKCFuYXZpZ2F0aW9uKQogICAg
ICAgICByZXR1cm4gbmlsOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRXZWJWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAkocmV2aXNpb24gMjM0NjYzKQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI1ODMsNyArMjU4Myw3IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X2xvYWRfaHRtbChX
ZWJLaXRXZWIKICAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3
KSk7CiAgICAgZ19yZXR1cm5faWZfZmFpbChjb250ZW50KTsKIAotICAgIGdldFBhZ2Uod2ViVmll
dykubG9hZEhUTUxTdHJpbmcoU3RyaW5nOjpmcm9tVVRGOChjb250ZW50KSwgU3RyaW5nOjpmcm9t
VVRGOChiYXNlVVJJKSk7CisgICAgZ2V0UGFnZSh3ZWJWaWV3KS5sb2FkSFRNTFN0cmluZyhTdHJp
bmc6OmZyb21VVEY4KGNvbnRlbnQpLCBXZWJDb3JlOjpVUkwoV2ViQ29yZTo6VVJMKCksIFN0cmlu
Zzo6ZnJvbVVURjgoYmFzZVVSSSkpKTsKIH0KIAogLyoqCkBAIC0yNjYxLDcgKzI2NjEsNyBAQCB2
b2lkIHdlYmtpdF93ZWJfdmlld19sb2FkX2J5dGVzKFdlYktpdFdlCiAKICAgICBSZWY8QVBJOjpE
YXRhPiBkYXRhID0gQVBJOjpEYXRhOjpjcmVhdGVXaXRob3V0Q29weWluZyhzdGF0aWNfY2FzdDxj
b25zdCB1bnNpZ25lZCBjaGFyKj4oYnl0ZXNEYXRhKSwgYnl0ZXNEYXRhU2l6ZSwgcmVsZWFzZUdC
eXRlcywgYnl0ZXMpOwogICAgIGdldFBhZ2Uod2ViVmlldykubG9hZERhdGEoZGF0YS5wdHIoKSwg
bWltZVR5cGUgPyBTdHJpbmc6OmZyb21VVEY4KG1pbWVUeXBlKSA6IFN0cmluZzo6ZnJvbVVURjgo
InRleHQvaHRtbCIpLAotICAgICAgICBlbmNvZGluZyA/IFN0cmluZzo6ZnJvbVVURjgoZW5jb2Rp
bmcpIDogU3RyaW5nOjpmcm9tVVRGOCgiVVRGLTgiKSwgU3RyaW5nOjpmcm9tVVRGOChiYXNlVVJJ
KSk7CisgICAgICAgIGVuY29kaW5nID8gU3RyaW5nOjpmcm9tVVRGOChlbmNvZGluZykgOiBTdHJp
bmc6OmZyb21VVEY4KCJVVEYtOCIpLCBXZWJDb3JlOjpVUkwoV2ViQ29yZTo6VVJMKCksIFN0cmlu
Zzo6ZnJvbVVURjgoYmFzZVVSSSkpKTsKIH0KIAogLyoqCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gMjM0NjYzKQorKysgU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEzMjMsNyArMTMyMyw3IEBAIHZvaWQgV2ViUGFnZTo6bG9hZERhdGEoY29uc3QgTG9hZFBh
cmFtZXQKICAgICBwbGF0Zm9ybURpZFJlY2VpdmVMb2FkUGFyYW1ldGVycyhsb2FkUGFyYW1ldGVy
cyk7CiAKICAgICBhdXRvIHNoYXJlZEJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGxvYWRQYXJhbWV0ZXJzLmRhdGEuZGF0YSgpKSwgbG9h
ZFBhcmFtZXRlcnMuZGF0YS5zaXplKCkpOwotICAgIFVSTCBiYXNlVVJMID0gbG9hZFBhcmFtZXRl
cnMuYmFzZVVSTFN0cmluZy5pc0VtcHR5KCkgPyBibGFua1VSTCgpIDogVVJMKFVSTCgpLCBsb2Fk
UGFyYW1ldGVycy5iYXNlVVJMU3RyaW5nKTsKKyAgICBVUkwgYmFzZVVSTCA9IGxvYWRQYXJhbWV0
ZXJzLmJhc2VVUkwuaXNFbXB0eSgpID8gYmxhbmtVUkwoKSA6IGxvYWRQYXJhbWV0ZXJzLmJhc2VV
Ukw7CiAgICAgbG9hZERhdGFJbXBsKGxvYWRQYXJhbWV0ZXJzLm5hdmlnYXRpb25JRCwgV1RGTW92
ZShzaGFyZWRCdWZmZXIpLCBsb2FkUGFyYW1ldGVycy5NSU1FVHlwZSwgbG9hZFBhcmFtZXRlcnMu
ZW5jb2RpbmdOYW1lLCBiYXNlVVJMLCBVUkwoKSwgbG9hZFBhcmFtZXRlcnMudXNlckRhdGEpOwog
fQogCkBAIC0xMzMxLDcgKzEzMzEsNyBAQCB2b2lkIFdlYlBhZ2U6OmxvYWRTdHJpbmcoY29uc3Qg
TG9hZFBhcmFtCiB7CiAgICAgcGxhdGZvcm1EaWRSZWNlaXZlTG9hZFBhcmFtZXRlcnMobG9hZFBh
cmFtZXRlcnMpOwogCi0gICAgVVJMIGJhc2VVUkwgPSBsb2FkUGFyYW1ldGVycy5iYXNlVVJMU3Ry
aW5nLmlzRW1wdHkoKSA/IGJsYW5rVVJMKCkgOiBVUkwoVVJMKCksIGxvYWRQYXJhbWV0ZXJzLmJh
c2VVUkxTdHJpbmcpOworICAgIFVSTCBiYXNlVVJMID0gbG9hZFBhcmFtZXRlcnMuYmFzZVVSTC5p
c0VtcHR5KCkgPyBibGFua1VSTCgpIDogIGxvYWRQYXJhbWV0ZXJzLmJhc2VVUkw7CiAgICAgbG9h
ZFN0cmluZ0ltcGwobG9hZFBhcmFtZXRlcnMubmF2aWdhdGlvbklELCBsb2FkUGFyYW1ldGVycy5z
dHJpbmcsIGxvYWRQYXJhbWV0ZXJzLk1JTUVUeXBlLCBiYXNlVVJMLCBVUkwoKSwgbG9hZFBhcmFt
ZXRlcnMudXNlckRhdGEpOwogfQogCkBAIC0xMzM5LDkgKzEzMzksOSBAQCB2b2lkIFdlYlBhZ2U6
OmxvYWRBbHRlcm5hdGVIVE1MU3RyaW5nKGNvCiB7CiAgICAgcGxhdGZvcm1EaWRSZWNlaXZlTG9h
ZFBhcmFtZXRlcnMobG9hZFBhcmFtZXRlcnMpOwogCi0gICAgVVJMIGJhc2VVUkwgPSBsb2FkUGFy
YW1ldGVycy5iYXNlVVJMU3RyaW5nLmlzRW1wdHkoKSA/IGJsYW5rVVJMKCkgOiBVUkwoVVJMKCks
IGxvYWRQYXJhbWV0ZXJzLmJhc2VVUkxTdHJpbmcpOwotICAgIFVSTCB1bnJlYWNoYWJsZVVSTCA9
IGxvYWRQYXJhbWV0ZXJzLnVucmVhY2hhYmxlVVJMU3RyaW5nLmlzRW1wdHkoKSA/IFVSTCgpIDog
VVJMKFVSTCgpLCBsb2FkUGFyYW1ldGVycy51bnJlYWNoYWJsZVVSTFN0cmluZyk7Ci0gICAgVVJM
IHByb3Zpc2lvbmFsTG9hZEVycm9yVVJMID0gbG9hZFBhcmFtZXRlcnMucHJvdmlzaW9uYWxMb2Fk
RXJyb3JVUkxTdHJpbmcuaXNFbXB0eSgpID8gVVJMKCkgOiBVUkwoVVJMKCksIGxvYWRQYXJhbWV0
ZXJzLnByb3Zpc2lvbmFsTG9hZEVycm9yVVJMU3RyaW5nKTsKKyAgICBVUkwgYmFzZVVSTCA9IGxv
YWRQYXJhbWV0ZXJzLmJhc2VVUkwuaXNFbXB0eSgpID8gYmxhbmtVUkwoKSA6IGxvYWRQYXJhbWV0
ZXJzLmJhc2VVUkw7CisgICAgVVJMIHVucmVhY2hhYmxlVVJMID0gbG9hZFBhcmFtZXRlcnMudW5y
ZWFjaGFibGVVUkwuaXNFbXB0eSgpID8gVVJMKCkgOiBsb2FkUGFyYW1ldGVycy51bnJlYWNoYWJs
ZVVSTDsKKyAgICBVUkwgcHJvdmlzaW9uYWxMb2FkRXJyb3JVUkwgPSBsb2FkUGFyYW1ldGVycy5w
cm92aXNpb25hbExvYWRFcnJvclVSTC5pc0VtcHR5KCkgPyBVUkwoKSA6IGxvYWRQYXJhbWV0ZXJz
LnByb3Zpc2lvbmFsTG9hZEVycm9yVVJMOwogICAgIG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+
bG9hZGVyKCkuc2V0UHJvdmlzaW9uYWxMb2FkRXJyb3JCZWluZ0hhbmRsZWRVUkwocHJvdmlzaW9u
YWxMb2FkRXJyb3JVUkwpOwogICAgIGxvYWRTdHJpbmdJbXBsKDAsIGxvYWRQYXJhbWV0ZXJzLnN0
cmluZywgInRleHQvaHRtbCJfcywgYmFzZVVSTCwgdW5yZWFjaGFibGVVUkwsIGxvYWRQYXJhbWV0
ZXJzLnVzZXJEYXRhKTsKICAgICBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLnNl
dFByb3Zpc2lvbmFsTG9hZEVycm9yQmVpbmdIYW5kbGVkVVJMKHsgfSk7Cg==
</data>
<flag name="review"
          id="364585"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>