<?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>202565</bug_id>
          
          <creation_ts>2019-10-03 22:52:55 -0700</creation_ts>
          <short_desc>[WebAuthn] Write more tests for _WKWebAuthenticationPanel</short_desc>
          <delta_ts>2019-10-15 11:22:01 -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>WebKit Misc.</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>
          <dependson>202560</dependson>
          <blocked>182769</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>alex.gaynor</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1576734</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-03 22:52:55 -0700</bug_when>
    <thetext>Write more tests for _WKWebAuthenticationPanel. Potential test set could be:
1) a test without any panel client;
2) a test with _WKWebAuthenticationResultSucceeded;
3) a test with race condition that a new request comes in between;
4) a test with a new request cancels the other.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576735</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-03 22:53:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/55974128&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578861</commentid>
    <comment_count>2</comment_count>
      <attachid>380686</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-10 14:38:00 -0700</bug_when>
    <thetext>Created attachment 380686
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579028</commentid>
    <comment_count>3</comment_count>
      <attachid>380733</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-11 01:33:25 -0700</bug_when>
    <thetext>Created attachment 380733
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579187</commentid>
    <comment_count>4</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-11 12:05:39 -0700</bug_when>
    <thetext>I don&apos;t think the iOS-WK2 failures should blame this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580115</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-10-15 09:10:26 -0700</bug_when>
    <thetext>(In reply to Jiewen Tan from comment #4)
&gt; I don&apos;t think the iOS-WK2 failures should blame this patch.

Yes. It looks like both of the test failures are flaky crashes, according to the dashboard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580118</commentid>
    <comment_count>6</comment_count>
      <attachid>380733</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-10-15 09:12:47 -0700</bug_when>
    <thetext>Comment on attachment 380733
Patch

It&apos;s always good to see more tests! r=me (please watch the bots once this lands to make sure we don&apos;t introduce any bot issues).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580163</commentid>
    <comment_count>7</comment_count>
      <attachid>380733</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-15 10:38:24 -0700</bug_when>
    <thetext>Comment on attachment 380733
Patch

Thanks Brent for r+ this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580186</commentid>
    <comment_count>8</comment_count>
      <attachid>380733</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-15 11:21:59 -0700</bug_when>
    <thetext>Comment on attachment 380733
Patch

Clearing flags on attachment: 380733

Committed r251148: &lt;https://trac.webkit.org/changeset/251148&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580187</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-15 11:22:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380686</attachid>
            <date>2019-10-10 14:38:00 -0700</date>
            <delta_ts>2019-10-11 01:33:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202565-20191010143800.patch</filename>
            <type>text/plain</type>
            <size>20550</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwOTg4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDY1MzVlMWRiZjMzYjQ4MDhiYzJiNDkwMjhiMjY2NDk5
Y2E2Mjg0ZC4uYmM2ODgxYTMwYjk3NzE1NGU0MmYzZGYxYmM1YTU2ZjdkZGE2OTg1YiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDE5LTEwLTEwICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgW1dlYkF1dGhuXSBXcml0ZSBtb3JlIHRlc3RzIGZvciBfV0tXZWJBdXRoZW50aWNhdGlv
blBhbmVsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDI1NjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1OTc0MTI4PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAg
ICAoLVtUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlIHBhbmVsOmRpc21pc3NXZWJB
dXRoZW50aWNhdGlvblBhbmVsV2l0aFJlc3VsdDpdKToKKyAgICAgICAgKC1bVGVzdFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGluaXRdKToKKyAgICAgICAgKC1bVGVzdFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIHdlYlZpZXc6cnVuV2ViQXV0aGVudGljYXRpb25QYW5l
bDppbml0aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24t
Z2V0LWFzc2VydGlvbi1uZmMuaHRtbDogQWRkZWQuCisKIDIwMTktMTAtMTAgIEpvbmF0aGFuIEJl
ZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIHJlc3VsdHMud2Via2l0Lm9yZzog
U2VydmUgY29ycmVjdCBleGl0IGNvZGVzIHdoZW4gYWJvcnRpbmcKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggNzExOTc2NDY1ZDU2ZGJmMDk2ZTM5OTA0ZmIwM2E5ZmY4ZWJlM2E5Yi4uODgyZjE4
NGFhZTU3MmYzMDdjZThlY2ViYTU5MTc0YzVmMDFmYTljZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTMzNiw2ICszMzYsOCBAQAogCQk1NzU5OUUyODFGMDcxQUEwMDBBM0ZCOEMgLyogSW5k
ZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtc2htIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTk5
RTI2MUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENv
bXBhdGliaWxpdHkuc3FsaXRlMy1zaG0gKi87IH07CiAJCTU3NTk5RTJBMUYwNzFBQTAwMEEzRkI4
QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHlSZWFkLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTc1OTlFMjUxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3
YXJkQ29tcGF0aWJpbGl0eVJlYWQuaHRtbCAqLzsgfTsKIAkJNTc1OTlFMkIxRjA3MUFBMDAwQTNG
QjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRl
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTc1OTlFMjMxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJh
Y2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWwgKi87IH07CisJCTU3NjYzREVBMjM0RUE2NkQw
MEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzY2M0RF
OTIzNEVBNjBCMDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZj
Lmh0bWwgKi87IH07CisJCTU3NjYzREVDMjM0RjFGOTMwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGlj
YXRpb24tZ2V0LWFzc2VydGlvbi1oaWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzY2M0RFQjIzNEYxRjgwMDBFODVFMDkgLyogd2Vi
LWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLmh0bWwgKi87IH07CiAJCTU3NjlDNTBC
MUQ5QjAwMDIwMDA4NDdGQiAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NjlDNTBBMUQ5QjAwMDEwMDA4
NDdGQiAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbSAqLzsgfTsKIAkJNTc3NEFBNjgyMUZC
QkY3ODAwQUYyQTFCIC8qIFRlc3RTT0F1dGhvcml6YXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Nzc0QUE2NzIxRkJCRjc4MDBBRjJBMUIgLyog
VGVzdFNPQXV0aG9yaXphdGlvbi5tbSAqLzsgfTsKIAkJNTc3OEQwNTYyMjExMEEyNjAwODk5RTNC
IC8qIExvYWRXZWJBcmNoaXZlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTc3OEQwNTUyMjExMEEyNjAwODk5RTNCIC8qIExvYWRXZWJBcmNoaXZlLm1t
ICovOyB9OwpAQCAtMTQ0MCw2ICsxNDQyLDggQEAKIAkJCQlDREM4RTQ5NzFCQzZGMTA4MDA1OTRG
RUMgLyogdmlkZW8td2l0aG91dC1hdWRpby5tcDQgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
MkVCRDlEMEEyMTM0NzMwRDAwMkRBNzU4IC8qIHZpZGVvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJQ0Q1Nzc3OTkyMTFDRTBFNDAwMUIzNzFFIC8qIHdlYi1hdWRpby1vbmx5Lmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJNTc2NjNERUMyMzRGMUY5MzAwRTg1RTA5IC8qIHdl
Yi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAorCQkJCTU3NjYzREVBMjM0RUE2NkQwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRpb24t
Z2V0LWFzc2VydGlvbi1uZmMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1N0M2MjQ1
MDIzNDZDMjFFMDAzODNGRTcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24uaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkxQzJCODE4NjFDODkyNTlEMDBBNTUyOUYgLyog
d2ViZm9udC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUxNzE0RUI0MUNGOEM3OEMw
MDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNsZWFudXAtMS5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLApAQCAtMTg1Nyw2ICsxODYxLDggQEAKIAkJNTc1OTlFMjQxRjA3MTkyQzAwQTNGQjhD
IC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUz
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsg
cGF0aCA9IEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxp
dGUzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzU5OUUyNTFGMDcxOTJDMDBBM0ZC
OEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5UmVhZC5o
dG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmls
aXR5UmVhZC5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzU5OUUyNjFGMDcx
OTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmls
aXR5LnNxbGl0ZTMtc2htICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gZmlsZTsgcGF0aCA9ICJJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENv
bXBhdGliaWxpdHkuc3FsaXRlMy1zaG0iOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
NzY2M0RFOTIzNEVBNjBCMDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRp
b24tbmZjLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24t
bmZjLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzY2M0RFQjIzNEYxRjgw
MDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLmh0bWwiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzY5QzUwQTFEOUIwMDAxMDAwODQ3RkIgLyogU2Vy
aWFsaXplZENyeXB0b0tleVdyYXAubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTc3NEFBNjcyMUZCQkY3ODAwQUYyQTFCIC8qIFRlc3RTT0F1dGhvcml6YXRpb24u
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXN0U09BdXRob3JpemF0aW9uLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1Nzc4RDA1NTIyMTEwQTI2MDA4OTlFM0IgLyogTG9hZFdl
YkFyY2hpdmUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2FkV2ViQXJjaGl2ZS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMzODAsNiArMzM4Niw4IEBACiAJCQkJRjQ0NTFD
NzUxRUI4RkQ3QzAwMjBDNURBIC8qIHR3by1wYXJhZ3JhcGgtY29udGVudGVkaXRhYmxlLmh0bWwg
Ki8sCiAJCQkJQ0Q1Nzc3OUIyMTFDRTZDRTAwMUIzNzFFIC8qIHZpZGVvLXdpdGgtYXVkaW8tYW5k
LXdlYi1hdWRpby5odG1sICovLAogCQkJCUNENTc3Nzk4MjExQ0RFOEYwMDFCMzcxRSAvKiB3ZWIt
YXVkaW8tb25seS5odG1sICovLAorCQkJCTU3NjYzREVCMjM0RjFGODAwMEU4NUUwOSAvKiB3ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQuaHRtbCAqLywKKwkJCQk1NzY2M0RFOTIz
NEVBNjBCMDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLmh0
bWwgKi8sCiAJCQkJNTdDNjI0NEYyMzQ2QzFFQzAwMzgzRkU3IC8qIHdlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLmh0bWwgKi8sCiAJCQkJNTE3MTRFQjIxQ0Y4Qzc2MTAwNDcyM0M0IC8q
IFdlYlByb2Nlc3NLaWxsSURCQ2xlYW51cC0xLmh0bWwgKi8sCiAJCQkJNTE3MTRFQjMxQ0Y4Qzc2
MTAwNDcyM0M0IC8qIFdlYlByb2Nlc3NLaWxsSURCQ2xlYW51cC0yLmh0bWwgKi8sCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19X
S1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KaW5kZXggY2U0MTFiZWUzMGQxODAyMjliMjk3OTUw
NWYzMjNhOGU4MWFhZDAyNy4uZWM3YTM3MzA1YWU0MGRkZGU0M2U1YjA4NzZjZDA5NGFlYWQzMzFh
YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtMzAsMTMgKzMwLDE2
IEBACiAKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUZXN0V0tXZWJW
aWV3LmgiCisjaW1wb3J0ICJXS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLmgiCiAjaW1wb3J0
IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1VJRGVs
ZWdhdGVQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5o
PgogI2ltcG9ydCA8V2ViS2l0L19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaD4KKyNpbXBvcnQg
PHd0Zi9CbG9ja1B0ci5oPgogCiBzdGF0aWMgYm9vbCB3ZWJBdXRoZW50aWNhdGlvblBhbmVsUmFu
ID0gZmFsc2U7Ci1zdGF0aWMgYm9vbCB3ZWJBdXRoZW50aWNhdGlvblBhbmVsRGltaXNzZWQgPSBm
YWxzZTsKK3N0YXRpYyBib29sIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxGYWlsZWQgPSBmYWxzZTsK
K3N0YXRpYyBib29sIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxTdWNjZWRlZCA9IGZhbHNlOwogCiBA
aW50ZXJmYWNlIFRlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGUgOiBOU09iamVjdCA8
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlPgogQGVuZApAQCAtNDYsMTggKzQ5LDM0
IEBAIEBpbXBsZW1lbnRhdGlvbiBUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlCiAt
ICh2b2lkKXBhbmVsOihfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsICopcGFuZWwgZGlzbWlzc1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWxXaXRoUmVzdWx0OihfV0tXZWJBdXRoZW50aWNhdGlvblJlc3Vs
dClyZXN1bHQKIHsKICAgICBBU1NFUlRfTkUocGFuZWwsIG5pbCk7Ci0gICAgRVhQRUNUX0VRKHJl
c3VsdCwgX1dLV2ViQXV0aGVudGljYXRpb25SZXN1bHRGYWlsZWQpOwotICAgIHdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxEaW1pc3NlZCA9IHRydWU7CisgICAgaWYgKHJlc3VsdCA9PSBfV0tXZWJBdXRo
ZW50aWNhdGlvblJlc3VsdEZhaWxlZCkgeworICAgICAgICB3ZWJBdXRoZW50aWNhdGlvblBhbmVs
RmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAocmVzdWx0ID09
IF9XS1dlYkF1dGhlbnRpY2F0aW9uUmVzdWx0U3VjY2VlZGVkKSB7CisgICAgICAgIHdlYkF1dGhl
bnRpY2F0aW9uUGFuZWxTdWNjZWRlZCA9IHRydWU7CisgICAgICAgIHJldHVybjsKKyAgICB9CiB9
CiAKIEBlbmQKIAogQGludGVyZmFjZSBUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdh
dGUgOiBOU09iamVjdCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4KK0Bwcm9wZXJ0eSBib29sIGlzUmFj
eTsKKy0gKGluc3RhbmNldHlwZSlpbml0OwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gVGVzdFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIHsKICAgICBSZXRhaW5QdHI8X1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbD4gX3BhbmVsOwogICAgIFJldGFpblB0cjxUZXN0V2ViQXV0aGVudGlj
YXRpb25QYW5lbERlbGVnYXRlPiBfZGVsZWdhdGU7CisgICAgQmxvY2tQdHI8dm9pZChfV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsUmVzdWx0KT4gX2NhbGxiYWNrOworfQorCistIChpbnN0YW5jZXR5
cGUpaW5pdAoreworICAgIGlmIChzZWxmID0gW3N1cGVyIGluaXRdKQorICAgICAgICBzZWxmLmlz
UmFjeSA9IGZhbHNlOworICAgIHJldHVybiBzZWxmOwogfQogCiAtICh2b2lkKXdlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgcnVuV2ViQXV0aGVudGljYXRpb25QYW5lbDooX1dLV2ViQXV0aGVu
dGljYXRpb25QYW5lbCAqKXBhbmVsIGluaXRpYXRlZEJ5RnJhbWU6KFdLRnJhbWVJbmZvICopZnJh
bWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxS
ZXN1bHQpKWNvbXBsZXRpb25IYW5kbGVyCkBAIC03MSw2ICs5MCwxMyBAQCAtICh2b2lkKXdlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVuV2ViQXV0aGVudGljYXRpb25QYW5lbDooX1dLV2Vi
QXV0aGVudGljYQogCiAgICAgRVhQRUNUX1dLX1NUUkVRKFtfcGFuZWwgcmVseWluZ1BhcnR5SURd
LCAiIik7CiAKKyAgICBpZiAoX2lzUmFjeSkgeworICAgICAgICBpZiAoIV9jYWxsYmFjaykgewor
ICAgICAgICAgICAgX2NhbGxiYWNrID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBfY2FsbGJhY2soX1dLV2Vi
QXV0aGVudGljYXRpb25QYW5lbFJlc3VsdFVuYXZhaWxhYmxlKTsKKyAgICB9CiAgICAgY29tcGxl
dGlvbkhhbmRsZXIoX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdFByZXNlbnRlZCk7CiB9
CiAKQEAgLTc5LDcgKzEwNSw4IEBAIEBlbmQKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAog
bmFtZXNwYWNlIHsKLV9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKndlYkF1dGhlbnRpY2F0aW9uRXhw
ZXJpbWVudGFsRmVhdHVyZSgpCisKK3N0YXRpYyBfV0tFeHBlcmltZW50YWxGZWF0dXJlICp3ZWJB
dXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKQogewogICAgIHN0YXRpYyBSZXRhaW5Q
dHI8X1dLRXhwZXJpbWVudGFsRmVhdHVyZT4gdGhlRmVhdHVyZTsKICAgICBpZiAodGhlRmVhdHVy
ZSkKQEAgLTk0LDEwICsxMjEsNTcgQEAgX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqd2ViQXV0aGVu
dGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCkKICAgICB9CiAgICAgcmV0dXJuIHRoZUZlYXR1
cmUuZ2V0KCk7CiB9CisKKy8vIE9ubHkgZm9jdXNlZCBkb2N1bWVudHMgY2FuIHRyaWdnZXIgV2Vi
QXV0aG4uCitzdGF0aWMgdm9pZCBmb2N1cyhUZXN0V0tXZWJWaWV3ICp3ZWJWaWV3KQoreworI2lm
IFBMQVRGT1JNKE1BQykKKyAgICBbW3dlYlZpZXcgaG9zdFdpbmRvd10gbWFrZUZpcnN0UmVzcG9u
ZGVyOndlYlZpZXddOworI2VsaWYgUExBVEZPUk0oSU9TKQorICAgIFt3ZWJWaWV3IGJlY29tZUZp
cnN0UmVzcG9uZGVyXTsKKyNlbmRpZgorfQorCitzdGF0aWMgdm9pZCByZXNldCgpCit7CisgICAg
d2ViQXV0aGVudGljYXRpb25QYW5lbFJhbiA9IGZhbHNlOworICAgIHdlYkF1dGhlbnRpY2F0aW9u
UGFuZWxGYWlsZWQgPSBmYWxzZTsKKyAgICB3ZWJBdXRoZW50aWNhdGlvblBhbmVsU3VjY2VkZWQg
PSBmYWxzZTsKK30KKworfSAvLyBuYW1lc2FwY2U7CisKK1RFU1QoV2ViQXV0aGVudGljYXRpb25Q
YW5lbCwgTm9QYW5lbFRpbWVvdXQpCit7CisgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0g
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLW5mYyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpA
IlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25maWd1cmF0aW9uID0g
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0lu
Q2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0Zv
clRlc3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFi
bGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uXSk7CisgICAgZm9jdXMod2ViVmlldy5nZXQoKSk7CisKKyAgICBbd2ViVmlldyBsb2Fk
UmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKKyAg
ICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIk9wZXJhdGlvbiB0aW1lZCBvdXQuIl07Cit9CisK
K1RFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTm9QYW5lbEhpZFN1Y2Nlc3MpCit7CisgICAg
UmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JS
ZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZCIgd2l0aEV4dGVu
c2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisK
KyAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3Rf
Y29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldp
dGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKworICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVy
b1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CisgICAgZm9jdXMod2ViVmlldy5n
ZXQoKSk7CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIlN1
Y2NlZWRlZCEiXTsKIH0KIAotVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBCYXNpY1RpbWVv
dXQpCitURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsVGltZW91dCkKIHsKKyAgICBy
ZXNldCgpOwogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1
bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbiIg
d2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl07CiAKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwpAQCAtMTA2LDE3ICsxODAsMTAwIEBAIFRFU1QoV2Vi
QXV0aGVudGljYXRpb25QYW5lbCwgQmFzaWNUaW1lb3V0KQogICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKyAgICBmb2N1
cyh3ZWJWaWV3LmdldCgpKTsKIAotICAgIC8vIE9ubHkgZm9jdXNlZCBkb2N1bWVudHMgY2FuIHRy
aWdnZXIgV2ViQXV0aG4uCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIFtbd2ViVmlldyBob3N0V2lu
ZG93XSBtYWtlRmlyc3RSZXNwb25kZXI6d2ViVmlldy5nZXQoKV07Ci0jZWxpZiBQTEFURk9STShJ
T1MpCi0gICAgW3dlYlZpZXcgYmVjb21lRmlyc3RSZXNwb25kZXJdOwotI2VuZGlmCisgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdl
dCgpXV07CisgICAgVXRpbDo6cnVuKCZ3ZWJBdXRoZW50aWNhdGlvblBhbmVsUmFuKTsKKyAgICBV
dGlsOjpydW4oJndlYkF1dGhlbnRpY2F0aW9uUGFuZWxGYWlsZWQpOworfQorCitURVNUKFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsTmZjU3VjY2VzcykKK3sKKyAgICByZXNldCgpOworICAg
IFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9y
UmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMiIHdpdGhFeHRl
bnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwor
CisgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0
X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5X
aXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisKKyAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1pl
cm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CisgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisgICAg
Zm9jdXMod2ViVmlldy5nZXQoKSk7CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKKyAgICBVdGlsOjpydW4oJndl
YkF1dGhlbnRpY2F0aW9uUGFuZWxSYW4pOworICAgIFV0aWw6OnJ1bigmd2ViQXV0aGVudGljYXRp
b25QYW5lbFN1Y2NlZGVkKTsKK30KKworLy8gVGhpcyB0ZXN0IGFpbXMgdG8gc2VlIGlmIHRoZSBj
YWxsYmFjayBmb3IgdGhlIGZpcnN0IGNlcmVtb255IGNvdWxkIGFmZmVjdCB0aGUgc2Vjb25kIG9u
ZS4KKy8vIFRoZXJlZm9yZSwgdGhlIGZpcnN0IGNhbGxiYWNrIHdpbGwgYmUgaGVsZCB0byByZXR1
cm4gYXQgdGhlIHRpbWUgd2hlbiB0aGUgc2Vjb25kIGFycml2ZXMuCisvLyBUaGUgZmlyc3QgY2Fs
bGJhY2sgd2lsbCByZXR1cm4gX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdFVuYXZhaWxh
YmxlIHdoaWNoIGxlYWRzIHRvIHRpbWVvdXQgZm9yIE5GQy4KKy8vIFRoZSBzZWNvbmQgY2FsbGJh
Y2sgd2lsbCByZXR1cm4gX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdFByZXNlbnRlZCB3
aGljaCBsZWFkcyB0byBzdWNjZXNzLgorVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5l
bFJhY3kxKQoreworICAgIHJlc2V0KCk7CisgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0g
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLW5mYyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpA
IlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25maWd1cmF0aW9uID0g
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0lu
Q2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0Zv
clRlc3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFi
bGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGlj
YXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbZGVsZWdhdGUgc2V0SXNS
YWN5OnRydWVdOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwor
ICAgIGZvY3VzKHdlYlZpZXcuZ2V0KCkpOworCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07CisgICAgVXRpbDo6cnVu
KCZ3ZWJBdXRoZW50aWNhdGlvblBhbmVsUmFuKTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpb
TlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKKyAgICBbd2ViVmll
dyB3YWl0Rm9yTWVzc2FnZTpAIlN1Y2NlZWRlZCEiXTsKK30KKworLy8gVW5saWtlIHRoZSBwcmV2
aW91cyBvbmUsIHRoaXMgb25lIGZvY3VzZXMgb24gdGhlIG9yZGVyIG9mIHRoZSBkZWxlZ2F0ZSBj
YWxsYmFja3MuCitURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsUmFjeTIpCit7Cisg
ICAgcmVzZXQoKTsKKyAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1h
aW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRp
b24tbmZjIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQ
SS5yZXNvdXJjZXMiXTsKKworICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJX
ZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNd
OworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCld
OworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKKyAg
ICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlE
ZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFtkZWxlZ2F0ZSBzZXRJc1JhY3k6dHJ1ZV07Cisg
ICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisgICAgZm9jdXMod2Vi
Vmlldy5nZXQoKSk7CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKKyAgICBVdGlsOjpydW4oJndlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxSYW4pOworICAgIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSYW4gPSBmYWxzZTsK
KyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRl
c3RVUkwuZ2V0KCldXTsKKyAgICBVdGlsOjpydW4oJndlYkF1dGhlbnRpY2F0aW9uUGFuZWxGYWls
ZWQpOworICAgIFV0aWw6OnJ1bigmd2ViQXV0aGVudGljYXRpb25QYW5lbFJhbik7CisgICAgVXRp
bDo6cnVuKCZ3ZWJBdXRoZW50aWNhdGlvblBhbmVsU3VjY2VkZWQpOworfQorCitURVNUKFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsVHdpY2UpCit7CisgICAgcmVzZXQoKTsKKyAgICBSZXRh
aW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291
cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKworICAg
IGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25m
aWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aElu
dGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOworICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworCisgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVj
dCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRv
cHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
OworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworICAgIGZvY3Vz
KHdlYlZpZXcuZ2V0KCkpOworCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07CisgICAgVXRpbDo6cnVuKCZ3ZWJBdXRo
ZW50aWNhdGlvblBhbmVsUmFuKTsKKyAgICBVdGlsOjpydW4oJndlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxTdWNjZWRlZCk7CiAKKyAgICByZXNldCgpOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOwogICAgIFV0aWw6OnJ1
bigmd2ViQXV0aGVudGljYXRpb25QYW5lbFJhbik7Ci0gICAgVXRpbDo6cnVuKCZ3ZWJBdXRoZW50
aWNhdGlvblBhbmVsRGltaXNzZWQpOworICAgIFV0aWw6OnJ1bigmd2ViQXV0aGVudGljYXRpb25Q
YW5lbFN1Y2NlZGVkKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGlj
YXRpb24tZ2V0LWFzc2VydGlvbi1oaWQuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjFlZjVhMzZkMjhhOGFkMTQ3MTBkOGQ3ZjdmMjVkZTlhMWM2OTcwOQotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1
dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPHNj
cmlwdD4KKyAgICBjb25zdCB0ZXN0QXNzZXJ0aW9uTWVzc2FnZUJhc2U2NCA9CisgICAgICAgICJB
S01Cb21KcFpGaEFLQWl0enVqK1RzbHplbGYzL3Zad0lHdERRTmdvS2VGZDVvRWllWXpoeXpBNjVz
YWYwdEsyIiArCisgICAgICAgICJ3L21vb2E3dFF0R2dEZHdaSWpPaGpjdVowcFExYWpvRTRHUjBl
WEJsYW5CMVlteHBZeTFyWlhrQ1dDVkd6SCs1IiArCisgICAgICAgICJaNTFWc3R1UWt1SEkyZVho
MEN0MWdQQzBnU3gzQ1dMaDVJOWEyQUVBQUFCUUExaEhNRVVDSVFDU0ZUdXVCV2dCIiArCisgICAg
ICAgICI0L0YwVkI3RGxVVk0wOUlIUG14ZTFNekhVd1JvQ1JaYkNBSWdHS292NnhvQXgyTUVmNi82
cU5zOE91dHpoUDJDIiArCisgICAgICAgICJRb0oxTDdGZTY0Rzl1QmM9IjsKKyAgICBpZiAod2lu
ZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldE1vY2tXZWJBdXRoZW50aWNhdGlv
bkNvbmZpZ3VyYXRpb24oeyBoaWQ6IHsgc3RhZ2U6ICJyZXF1ZXN0Iiwgc3ViU3RhZ2U6ICJtc2ci
LCBlcnJvcjogInN1Y2Nlc3MiLCBwYXlsb2FkQmFzZTY0OiBbdGVzdEFzc2VydGlvbk1lc3NhZ2VC
YXNlNjRdIH0gfSk7CisKKyAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICBwdWJsaWNLZXk6
IHsKKyAgICAgICAgICAgIGNoYWxsZW5nZTogbmV3IFVpbnQ4QXJyYXkoMTYpLAorICAgICAgICAg
ICAgdGltZW91dDogMTAwCisgICAgICAgIH0KKyAgICB9OworCisgICAgbmF2aWdhdG9yLmNyZWRl
bnRpYWxzLmdldChvcHRpb25zKS50aGVuKGNyZWRlbnRpYWwgPT4geworICAgICAgICAvLyBjb25z
b2xlLmxvZygiU3VjY2VlZGVkISIpOworICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5k
bGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiU3VjY2VlZGVkISIpOworICAgIH0sIGVycm9y
ID0+IHsKKyAgICAgICAgLy8gY29uc29sZS5sb2coZXJyb3IubWVzc2FnZSk7CisgICAgICAgIHdp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGVycm9y
Lm1lc3NhZ2UpOworICAgIH0pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9u
LW5mYy5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0
aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MDZhNmI3ZmZi
ZWRkYTE0MzUyMDBkNWRmYTJlYjJhN2UyMDExZDIwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFz
c2VydGlvbi1uZmMuaHRtbApAQCAtMCwwICsxLDMyIEBACis8c2NyaXB0PgorICAgIGNvbnN0IHRl
c3ROZmNDdGFwVmVyc2lvbkJhc2U2NCA9ICJSa2xFVDE4eVh6Q1FBQT09IjsKKyAgICBjb25zdCB0
ZXN0R2V0SW5mb1Jlc3BvbnNlQXBkdUJhc2U2NCA9CisgICAgICAgICJBS1lCZ21aVk1rWmZWakpv
UmtsRVQxOHlYekFDZ1d0b2JXRmpMWE5sWTNKbGRBTlFiVVM2bS9ic0xrbTVNQXlQIiArCisgICAg
ICAgICI2U0RMY3dTa1luSnI5V0oxY1BWa2NHeGhkUFJwWTJ4cFpXNTBVR2x1OUFVWkJMQUdnUUdR
QUE9PSI7CisgICAgY29uc3QgdGVzdEFzc2VydGlvbk1lc3NhZ2VBcGR1QmFzZTY0ID0KKyAgICAg
ICAgIkFLTUJvbUpwWkZoQUtBaXR6dWorVHNsemVsZjMvdlp3SUd0RFFOZ29LZUZkNW9FaWVZemh5
ekE2NXNhZjB0SzIiICsKKyAgICAgICAgIncvbW9vYTd0UXRHZ0Rkd1pJak9oamN1WjBwUTFham9F
NEdSMGVYQmxhbkIxWW14cFl5MXJaWGtDV0NWR3pIKzUiICsKKyAgICAgICAgIlo1MVZzdHVRa3VI
STJlWGgwQ3QxZ1BDMGdTeDNDV0xoNUk5YTJBRUFBQUJRQTFoSE1FVUNJUUNTRlR1dUJXZ0IiICsK
KyAgICAgICAgIjQvRjBWQjdEbFVWTTA5SUhQbXhlMU16SFV3Um9DUlpiQ0FJZ0dLb3Y2eG9BeDJN
RWY2LzZxTnM4T3V0emhQMkMiICsKKyAgICAgICAgIlFvSjFMN0ZlNjRHOXVCZVFBQT09IjsKKyAg
ICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldE1vY2tXZWJBdXRo
ZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oeyBuZmM6IHsgZXJyb3I6ICJzdWNjZXNzIiwgcGF5bG9h
ZEJhc2U2NDogW3Rlc3ROZmNDdGFwVmVyc2lvbkJhc2U2NCwgdGVzdEdldEluZm9SZXNwb25zZUFw
ZHVCYXNlNjQsIHRlc3RBc3NlcnRpb25NZXNzYWdlQXBkdUJhc2U2NF0gfSB9KTsKKworICAgIGNv
bnN0IG9wdGlvbnMgPSB7CisgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgY2hhbGxl
bmdlOiBuZXcgVWludDhBcnJheSgxNiksCisgICAgICAgICAgICB0aW1lb3V0OiAxMDAsCisgICAg
ICAgICAgICBhbGxvd0NyZWRlbnRpYWxzOiBbCisgICAgICAgICAgICAgICAgeyB0eXBlOiAicHVi
bGljLWtleSIsIGlkOiBuZXcgVWludDhBcnJheSgxNiksIHRyYW5zcG9ydHM6IFsibmZjIl0gfQor
ICAgICAgICAgICAgXSwKKyAgICAgICAgfQorICAgIH07CisKKyAgICBuYXZpZ2F0b3IuY3JlZGVu
dGlhbHMuZ2V0KG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7CisgICAgICAgIC8vIGNvbnNv
bGUubG9nKCJTdWNjZWVkZWQhIik7CisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRs
ZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJTdWNjZWVkZWQhIik7CisgICAgfSwgZXJyb3Ig
PT4geworICAgICAgICAvLyBjb25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgd2lu
ZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoZXJyb3Iu
bWVzc2FnZSk7CisgICAgfSk7Cis8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380733</attachid>
            <date>2019-10-11 01:33:25 -0700</date>
            <delta_ts>2019-10-15 11:21:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202565-20191011013324.patch</filename>
            <type>text/plain</type>
            <size>20600</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwOTg4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDY1MzVlMWRiZjMzYjQ4MDhiYzJiNDkwMjhiMjY2NDk5
Y2E2Mjg0ZC4uYmM2ODgxYTMwYjk3NzE1NGU0MmYzZGYxYmM1YTU2ZjdkZGE2OTg1YiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDE5LTEwLTEwICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgW1dlYkF1dGhuXSBXcml0ZSBtb3JlIHRlc3RzIGZvciBfV0tXZWJBdXRoZW50aWNhdGlv
blBhbmVsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDI1NjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1OTc0MTI4PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAg
ICAoLVtUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlIHBhbmVsOmRpc21pc3NXZWJB
dXRoZW50aWNhdGlvblBhbmVsV2l0aFJlc3VsdDpdKToKKyAgICAgICAgKC1bVGVzdFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGluaXRdKToKKyAgICAgICAgKC1bVGVzdFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIHdlYlZpZXc6cnVuV2ViQXV0aGVudGljYXRpb25QYW5l
bDppbml0aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24t
Z2V0LWFzc2VydGlvbi1uZmMuaHRtbDogQWRkZWQuCisKIDIwMTktMTAtMTAgIEpvbmF0aGFuIEJl
ZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIHJlc3VsdHMud2Via2l0Lm9yZzog
U2VydmUgY29ycmVjdCBleGl0IGNvZGVzIHdoZW4gYWJvcnRpbmcKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggNzExOTc2NDY1ZDU2ZGJmMDk2ZTM5OTA0ZmIwM2E5ZmY4ZWJlM2E5Yi4uODgyZjE4
NGFhZTU3MmYzMDdjZThlY2ViYTU5MTc0YzVmMDFmYTljZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTMzNiw2ICszMzYsOCBAQAogCQk1NzU5OUUyODFGMDcxQUEwMDBBM0ZCOEMgLyogSW5k
ZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtc2htIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTk5
RTI2MUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENv
bXBhdGliaWxpdHkuc3FsaXRlMy1zaG0gKi87IH07CiAJCTU3NTk5RTJBMUYwNzFBQTAwMEEzRkI4
QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHlSZWFkLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTc1OTlFMjUxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3
YXJkQ29tcGF0aWJpbGl0eVJlYWQuaHRtbCAqLzsgfTsKIAkJNTc1OTlFMkIxRjA3MUFBMDAwQTNG
QjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRl
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTc1OTlFMjMxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJh
Y2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWwgKi87IH07CisJCTU3NjYzREVBMjM0RUE2NkQw
MEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzY2M0RF
OTIzNEVBNjBCMDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZj
Lmh0bWwgKi87IH07CisJCTU3NjYzREVDMjM0RjFGOTMwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGlj
YXRpb24tZ2V0LWFzc2VydGlvbi1oaWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzY2M0RFQjIzNEYxRjgwMDBFODVFMDkgLyogd2Vi
LWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLmh0bWwgKi87IH07CiAJCTU3NjlDNTBC
MUQ5QjAwMDIwMDA4NDdGQiAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NjlDNTBBMUQ5QjAwMDEwMDA4
NDdGQiAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbSAqLzsgfTsKIAkJNTc3NEFBNjgyMUZC
QkY3ODAwQUYyQTFCIC8qIFRlc3RTT0F1dGhvcml6YXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Nzc0QUE2NzIxRkJCRjc4MDBBRjJBMUIgLyog
VGVzdFNPQXV0aG9yaXphdGlvbi5tbSAqLzsgfTsKIAkJNTc3OEQwNTYyMjExMEEyNjAwODk5RTNC
IC8qIExvYWRXZWJBcmNoaXZlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTc3OEQwNTUyMjExMEEyNjAwODk5RTNCIC8qIExvYWRXZWJBcmNoaXZlLm1t
ICovOyB9OwpAQCAtMTQ0MCw2ICsxNDQyLDggQEAKIAkJCQlDREM4RTQ5NzFCQzZGMTA4MDA1OTRG
RUMgLyogdmlkZW8td2l0aG91dC1hdWRpby5tcDQgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
MkVCRDlEMEEyMTM0NzMwRDAwMkRBNzU4IC8qIHZpZGVvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJQ0Q1Nzc3OTkyMTFDRTBFNDAwMUIzNzFFIC8qIHdlYi1hdWRpby1vbmx5Lmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJNTc2NjNERUMyMzRGMUY5MzAwRTg1RTA5IC8qIHdl
Yi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAorCQkJCTU3NjYzREVBMjM0RUE2NkQwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRpb24t
Z2V0LWFzc2VydGlvbi1uZmMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1N0M2MjQ1
MDIzNDZDMjFFMDAzODNGRTcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24uaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkxQzJCODE4NjFDODkyNTlEMDBBNTUyOUYgLyog
d2ViZm9udC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUxNzE0RUI0MUNGOEM3OEMw
MDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNsZWFudXAtMS5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLApAQCAtMTg1Nyw2ICsxODYxLDggQEAKIAkJNTc1OTlFMjQxRjA3MTkyQzAwQTNGQjhD
IC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUz
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsg
cGF0aCA9IEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxp
dGUzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzU5OUUyNTFGMDcxOTJDMDBBM0ZC
OEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5UmVhZC5o
dG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmls
aXR5UmVhZC5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzU5OUUyNjFGMDcx
OTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmls
aXR5LnNxbGl0ZTMtc2htICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gZmlsZTsgcGF0aCA9ICJJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENv
bXBhdGliaWxpdHkuc3FsaXRlMy1zaG0iOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
NzY2M0RFOTIzNEVBNjBCMDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRp
b24tbmZjLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24t
bmZjLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzY2M0RFQjIzNEYxRjgw
MDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLmh0bWwiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzY5QzUwQTFEOUIwMDAxMDAwODQ3RkIgLyogU2Vy
aWFsaXplZENyeXB0b0tleVdyYXAubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTc3NEFBNjcyMUZCQkY3ODAwQUYyQTFCIC8qIFRlc3RTT0F1dGhvcml6YXRpb24u
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXN0U09BdXRob3JpemF0aW9uLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1Nzc4RDA1NTIyMTEwQTI2MDA4OTlFM0IgLyogTG9hZFdl
YkFyY2hpdmUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2FkV2ViQXJjaGl2ZS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMzODAsNiArMzM4Niw4IEBACiAJCQkJRjQ0NTFD
NzUxRUI4RkQ3QzAwMjBDNURBIC8qIHR3by1wYXJhZ3JhcGgtY29udGVudGVkaXRhYmxlLmh0bWwg
Ki8sCiAJCQkJQ0Q1Nzc3OUIyMTFDRTZDRTAwMUIzNzFFIC8qIHZpZGVvLXdpdGgtYXVkaW8tYW5k
LXdlYi1hdWRpby5odG1sICovLAogCQkJCUNENTc3Nzk4MjExQ0RFOEYwMDFCMzcxRSAvKiB3ZWIt
YXVkaW8tb25seS5odG1sICovLAorCQkJCTU3NjYzREVCMjM0RjFGODAwMEU4NUUwOSAvKiB3ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQuaHRtbCAqLywKKwkJCQk1NzY2M0RFOTIz
NEVBNjBCMDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLmh0
bWwgKi8sCiAJCQkJNTdDNjI0NEYyMzQ2QzFFQzAwMzgzRkU3IC8qIHdlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLmh0bWwgKi8sCiAJCQkJNTE3MTRFQjIxQ0Y4Qzc2MTAwNDcyM0M0IC8q
IFdlYlByb2Nlc3NLaWxsSURCQ2xlYW51cC0xLmh0bWwgKi8sCiAJCQkJNTE3MTRFQjMxQ0Y4Qzc2
MTAwNDcyM0M0IC8qIFdlYlByb2Nlc3NLaWxsSURCQ2xlYW51cC0yLmh0bWwgKi8sCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19X
S1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KaW5kZXggY2U0MTFiZWUzMGQxODAyMjliMjk3OTUw
NWYzMjNhOGU4MWFhZDAyNy4uODg0MmQ5YTVkMTAwNGJiZTc3ODlkZjk4NTA0OTQwNGFmZDgwNDk2
NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtMzAsMTMgKzMwLDE2
IEBACiAKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUZXN0V0tXZWJW
aWV3LmgiCisjaW1wb3J0ICJXS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLmgiCiAjaW1wb3J0
IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1VJRGVs
ZWdhdGVQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5o
PgogI2ltcG9ydCA8V2ViS2l0L19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaD4KKyNpbXBvcnQg
PHd0Zi9CbG9ja1B0ci5oPgogCiBzdGF0aWMgYm9vbCB3ZWJBdXRoZW50aWNhdGlvblBhbmVsUmFu
ID0gZmFsc2U7Ci1zdGF0aWMgYm9vbCB3ZWJBdXRoZW50aWNhdGlvblBhbmVsRGltaXNzZWQgPSBm
YWxzZTsKK3N0YXRpYyBib29sIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxGYWlsZWQgPSBmYWxzZTsK
K3N0YXRpYyBib29sIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxTdWNjZWRlZCA9IGZhbHNlOwogCiBA
aW50ZXJmYWNlIFRlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGUgOiBOU09iamVjdCA8
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlPgogQGVuZApAQCAtNDYsMTggKzQ5LDM0
IEBAIEBpbXBsZW1lbnRhdGlvbiBUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlCiAt
ICh2b2lkKXBhbmVsOihfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsICopcGFuZWwgZGlzbWlzc1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWxXaXRoUmVzdWx0OihfV0tXZWJBdXRoZW50aWNhdGlvblJlc3Vs
dClyZXN1bHQKIHsKICAgICBBU1NFUlRfTkUocGFuZWwsIG5pbCk7Ci0gICAgRVhQRUNUX0VRKHJl
c3VsdCwgX1dLV2ViQXV0aGVudGljYXRpb25SZXN1bHRGYWlsZWQpOwotICAgIHdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxEaW1pc3NlZCA9IHRydWU7CisgICAgaWYgKHJlc3VsdCA9PSBfV0tXZWJBdXRo
ZW50aWNhdGlvblJlc3VsdEZhaWxlZCkgeworICAgICAgICB3ZWJBdXRoZW50aWNhdGlvblBhbmVs
RmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAocmVzdWx0ID09
IF9XS1dlYkF1dGhlbnRpY2F0aW9uUmVzdWx0U3VjY2VlZGVkKSB7CisgICAgICAgIHdlYkF1dGhl
bnRpY2F0aW9uUGFuZWxTdWNjZWRlZCA9IHRydWU7CisgICAgICAgIHJldHVybjsKKyAgICB9CiB9
CiAKIEBlbmQKIAogQGludGVyZmFjZSBUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdh
dGUgOiBOU09iamVjdCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4KK0Bwcm9wZXJ0eSBib29sIGlzUmFj
eTsKKy0gKGluc3RhbmNldHlwZSlpbml0OwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gVGVzdFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIHsKICAgICBSZXRhaW5QdHI8X1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbD4gX3BhbmVsOwogICAgIFJldGFpblB0cjxUZXN0V2ViQXV0aGVudGlj
YXRpb25QYW5lbERlbGVnYXRlPiBfZGVsZWdhdGU7CisgICAgQmxvY2tQdHI8dm9pZChfV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsUmVzdWx0KT4gX2NhbGxiYWNrOworfQorCistIChpbnN0YW5jZXR5
cGUpaW5pdAoreworICAgIGlmIChzZWxmID0gW3N1cGVyIGluaXRdKQorICAgICAgICBzZWxmLmlz
UmFjeSA9IGZhbHNlOworICAgIHJldHVybiBzZWxmOwogfQogCiAtICh2b2lkKXdlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgcnVuV2ViQXV0aGVudGljYXRpb25QYW5lbDooX1dLV2ViQXV0aGVu
dGljYXRpb25QYW5lbCAqKXBhbmVsIGluaXRpYXRlZEJ5RnJhbWU6KFdLRnJhbWVJbmZvICopZnJh
bWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxS
ZXN1bHQpKWNvbXBsZXRpb25IYW5kbGVyCkBAIC03MSw2ICs5MCwxMyBAQCAtICh2b2lkKXdlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVuV2ViQXV0aGVudGljYXRpb25QYW5lbDooX1dLV2Vi
QXV0aGVudGljYQogCiAgICAgRVhQRUNUX1dLX1NUUkVRKFtfcGFuZWwgcmVseWluZ1BhcnR5SURd
LCAiIik7CiAKKyAgICBpZiAoX2lzUmFjeSkgeworICAgICAgICBpZiAoIV9jYWxsYmFjaykgewor
ICAgICAgICAgICAgX2NhbGxiYWNrID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBfY2FsbGJhY2soX1dLV2Vi
QXV0aGVudGljYXRpb25QYW5lbFJlc3VsdFVuYXZhaWxhYmxlKTsKKyAgICB9CiAgICAgY29tcGxl
dGlvbkhhbmRsZXIoX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdFByZXNlbnRlZCk7CiB9
CiAKQEAgLTc5LDcgKzEwNSw4IEBAIEBlbmQKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAog
bmFtZXNwYWNlIHsKLV9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKndlYkF1dGhlbnRpY2F0aW9uRXhw
ZXJpbWVudGFsRmVhdHVyZSgpCisKK3N0YXRpYyBfV0tFeHBlcmltZW50YWxGZWF0dXJlICp3ZWJB
dXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKQogewogICAgIHN0YXRpYyBSZXRhaW5Q
dHI8X1dLRXhwZXJpbWVudGFsRmVhdHVyZT4gdGhlRmVhdHVyZTsKICAgICBpZiAodGhlRmVhdHVy
ZSkKQEAgLTk0LDEwICsxMjEsNTcgQEAgX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqd2ViQXV0aGVu
dGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCkKICAgICB9CiAgICAgcmV0dXJuIHRoZUZlYXR1
cmUuZ2V0KCk7CiB9CisKKy8vIE9ubHkgZm9jdXNlZCBkb2N1bWVudHMgY2FuIHRyaWdnZXIgV2Vi
QXV0aG4uCitzdGF0aWMgdm9pZCBmb2N1cyhUZXN0V0tXZWJWaWV3ICp3ZWJWaWV3KQoreworI2lm
IFBMQVRGT1JNKE1BQykKKyAgICBbW3dlYlZpZXcgaG9zdFdpbmRvd10gbWFrZUZpcnN0UmVzcG9u
ZGVyOndlYlZpZXddOworI2VsaWYgUExBVEZPUk0oSU9TKQorICAgIFt3ZWJWaWV3IGJlY29tZUZp
cnN0UmVzcG9uZGVyXTsKKyNlbmRpZgorfQorCitzdGF0aWMgdm9pZCByZXNldCgpCit7CisgICAg
d2ViQXV0aGVudGljYXRpb25QYW5lbFJhbiA9IGZhbHNlOworICAgIHdlYkF1dGhlbnRpY2F0aW9u
UGFuZWxGYWlsZWQgPSBmYWxzZTsKKyAgICB3ZWJBdXRoZW50aWNhdGlvblBhbmVsU3VjY2VkZWQg
PSBmYWxzZTsKK30KKworfSAvLyBuYW1lc2FwY2U7CisKK1RFU1QoV2ViQXV0aGVudGljYXRpb25Q
YW5lbCwgTm9QYW5lbFRpbWVvdXQpCit7CisgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0g
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLW5mYyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpA
IlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25maWd1cmF0aW9uID0g
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0lu
Q2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0Zv
clRlc3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFi
bGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uXSk7CisgICAgZm9jdXMod2ViVmlldy5nZXQoKSk7CisKKyAgICBbd2ViVmlldyBsb2Fk
UmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKKyAg
ICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIk9wZXJhdGlvbiB0aW1lZCBvdXQuIl07Cit9CisK
K1RFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTm9QYW5lbEhpZFN1Y2Nlc3MpCit7CisgICAg
UmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JS
ZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZCIgd2l0aEV4dGVu
c2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisK
KyAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3Rf
Y29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldp
dGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKworICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVy
b1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CisgICAgZm9jdXMod2ViVmlldy5n
ZXQoKSk7CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIlN1
Y2NlZWRlZCEiXTsKIH0KIAotVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBCYXNpY1RpbWVv
dXQpCitURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsVGltZW91dCkKIHsKKyAgICBy
ZXNldCgpOwogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1
bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbiIg
d2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl07CiAKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwpAQCAtMTA2LDE3ICsxODAsMTAyIEBAIFRFU1QoV2Vi
QXV0aGVudGljYXRpb25QYW5lbCwgQmFzaWNUaW1lb3V0KQogICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKyAgICBmb2N1
cyh3ZWJWaWV3LmdldCgpKTsKIAotICAgIC8vIE9ubHkgZm9jdXNlZCBkb2N1bWVudHMgY2FuIHRy
aWdnZXIgV2ViQXV0aG4uCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIFtbd2ViVmlldyBob3N0V2lu
ZG93XSBtYWtlRmlyc3RSZXNwb25kZXI6d2ViVmlldy5nZXQoKV07Ci0jZWxpZiBQTEFURk9STShJ
T1MpCi0gICAgW3dlYlZpZXcgYmVjb21lRmlyc3RSZXNwb25kZXJdOwotI2VuZGlmCisgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdl
dCgpXV07CisgICAgVXRpbDo6cnVuKCZ3ZWJBdXRoZW50aWNhdGlvblBhbmVsUmFuKTsKKyAgICBV
dGlsOjpydW4oJndlYkF1dGhlbnRpY2F0aW9uUGFuZWxGYWlsZWQpOworfQorCitURVNUKFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsSGlkU3VjY2VzcykKK3sKKyAgICByZXNldCgpOworICAg
IFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9y
UmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQiIHdpdGhFeHRl
bnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwor
CisgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0
X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5X
aXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisKKyAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1pl
cm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CisgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisgICAg
Zm9jdXMod2ViVmlldy5nZXQoKSk7CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKKyAgICBVdGlsOjpydW4oJndl
YkF1dGhlbnRpY2F0aW9uUGFuZWxSYW4pOworICAgIFV0aWw6OnJ1bigmd2ViQXV0aGVudGljYXRp
b25QYW5lbFN1Y2NlZGVkKTsKK30KKworI2lmIEhBVkUoTkVBUl9GSUVMRCkKKy8vIFRoaXMgdGVz
dCBhaW1zIHRvIHNlZSBpZiB0aGUgY2FsbGJhY2sgZm9yIHRoZSBmaXJzdCBjZXJlbW9ueSBjb3Vs
ZCBhZmZlY3QgdGhlIHNlY29uZCBvbmUuCisvLyBUaGVyZWZvcmUsIHRoZSBmaXJzdCBjYWxsYmFj
ayB3aWxsIGJlIGhlbGQgdG8gcmV0dXJuIGF0IHRoZSB0aW1lIHdoZW4gdGhlIHNlY29uZCBhcnJp
dmVzLgorLy8gVGhlIGZpcnN0IGNhbGxiYWNrIHdpbGwgcmV0dXJuIF9XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWxSZXN1bHRVbmF2YWlsYWJsZSB3aGljaCBsZWFkcyB0byB0aW1lb3V0IGZvciBORkMu
CisvLyBUaGUgc2Vjb25kIGNhbGxiYWNrIHdpbGwgcmV0dXJuIF9XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWxSZXN1bHRQcmVzZW50ZWQgd2hpY2ggbGVhZHMgdG8gc3VjY2Vzcy4KK1RFU1QoV2ViQXV0
aGVudGljYXRpb25QYW5lbCwgUGFuZWxSYWN5MSkKK3sKKyAgICByZXNldCgpOworICAgIFJldGFp
blB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3Vy
Y2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMiIHdpdGhFeHRlbnNpb246
QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOworCisgICAg
YXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZp
Z3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50
ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisKKyAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9w
dE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CisgICAgW2RlbGVnYXRlIHNldElzUmFjeTp0cnVlXTsKKyAgICBbd2ViVmlldyBzZXRVSURlbGVn
YXRlOmRlbGVnYXRlLmdldCgpXTsKKyAgICBmb2N1cyh3ZWJWaWV3LmdldCgpKTsKKworICAgIFt3
ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5n
ZXQoKV1dOworICAgIFV0aWw6OnJ1bigmd2ViQXV0aGVudGljYXRpb25QYW5lbFJhbik7CisgICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJM
LmdldCgpXV07CisgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJTdWNjZWVkZWQhIl07Cit9
CisKKy8vIFVubGlrZSB0aGUgcHJldmlvdXMgb25lLCB0aGlzIG9uZSBmb2N1c2VzIG9uIHRoZSBv
cmRlciBvZiB0aGUgZGVsZWdhdGUgY2FsbGJhY2tzLgorVEVTVChXZWJBdXRoZW50aWNhdGlvblBh
bmVsLCBQYW5lbFJhY3kyKQoreworICAgIHJlc2V0KCk7CisgICAgUmV0YWluUHRyPE5TVVJMPiB0
ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRo
ZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25maWd1
cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhU
ZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZp
Z3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
IF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9u
RXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tU
ZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlv
bjpjb25maWd1cmF0aW9uXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2Vi
QXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbZGVsZWdh
dGUgc2V0SXNSYWN5OnRydWVdOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUu
Z2V0KCldOworICAgIGZvY3VzKHdlYlZpZXcuZ2V0KCkpOworCisgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07CisgICAg
VXRpbDo6cnVuKCZ3ZWJBdXRoZW50aWNhdGlvblBhbmVsUmFuKTsKKyAgICB3ZWJBdXRoZW50aWNh
dGlvblBhbmVsUmFuID0gZmFsc2U7CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07CisgICAgVXRpbDo6cnVuKCZ3ZWJB
dXRoZW50aWNhdGlvblBhbmVsRmFpbGVkKTsKKyAgICBVdGlsOjpydW4oJndlYkF1dGhlbnRpY2F0
aW9uUGFuZWxSYW4pOworICAgIFV0aWw6OnJ1bigmd2ViQXV0aGVudGljYXRpb25QYW5lbFN1Y2Nl
ZGVkKTsKK30KKyNlbmRpZiAvLyBIQVZFKE5FQVJfRklFTEQpCisKK1RFU1QoV2ViQXV0aGVudGlj
YXRpb25QYW5lbCwgUGFuZWxUd2ljZSkKK3sKKyAgICByZXNldCgpOworICAgIFJldGFpblB0cjxO
U1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3
ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQiIHdpdGhFeHRlbnNpb246QCJodG1s
IiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOworCisgICAgYXV0byAq
Y29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRp
b25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxz
IiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50
aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtb
VGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAg
W3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisgICAgZm9jdXMod2ViVmll
dy5nZXQoKSk7CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVl
c3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKKyAgICBVdGlsOjpydW4oJndlYkF1dGhlbnRpY2F0
aW9uUGFuZWxSYW4pOworICAgIFV0aWw6OnJ1bigmd2ViQXV0aGVudGljYXRpb25QYW5lbFN1Y2Nl
ZGVkKTsKIAorICAgIHJlc2V0KCk7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07CiAgICAgVXRpbDo6cnVuKCZ3ZWJB
dXRoZW50aWNhdGlvblBhbmVsUmFuKTsKLSAgICBVdGlsOjpydW4oJndlYkF1dGhlbnRpY2F0aW9u
UGFuZWxEaW1pc3NlZCk7CisgICAgVXRpbDo6cnVuKCZ3ZWJBdXRoZW50aWNhdGlvblBhbmVsU3Vj
Y2VkZWQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1n
ZXQtYXNzZXJ0aW9uLWhpZC5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iMWVmNWEzNmQyOGE4YWQxNDcxMGQ4ZDdmN2YyNWRlOWExYzY5NzA5Ci0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGlj
YXRpb24tZ2V0LWFzc2VydGlvbi1oaWQuaHRtbApAQCAtMCwwICsxLDI1IEBACis8c2NyaXB0Pgor
ICAgIGNvbnN0IHRlc3RBc3NlcnRpb25NZXNzYWdlQmFzZTY0ID0KKyAgICAgICAgIkFLTUJvbUpw
WkZoQUtBaXR6dWorVHNsemVsZjMvdlp3SUd0RFFOZ29LZUZkNW9FaWVZemh5ekE2NXNhZjB0SzIi
ICsKKyAgICAgICAgIncvbW9vYTd0UXRHZ0Rkd1pJak9oamN1WjBwUTFham9FNEdSMGVYQmxhbkIx
WW14cFl5MXJaWGtDV0NWR3pIKzUiICsKKyAgICAgICAgIlo1MVZzdHVRa3VISTJlWGgwQ3QxZ1BD
MGdTeDNDV0xoNUk5YTJBRUFBQUJRQTFoSE1FVUNJUUNTRlR1dUJXZ0IiICsKKyAgICAgICAgIjQv
RjBWQjdEbFVWTTA5SUhQbXhlMU16SFV3Um9DUlpiQ0FJZ0dLb3Y2eG9BeDJNRWY2LzZxTnM4T3V0
emhQMkMiICsKKyAgICAgICAgIlFvSjFMN0ZlNjRHOXVCYz0iOworICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmln
dXJhdGlvbih7IGhpZDogeyBzdGFnZTogInJlcXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVycm9y
OiAic3VjY2VzcyIsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0QXNzZXJ0aW9uTWVzc2FnZUJhc2U2NF0g
fSB9KTsKKworICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgIHB1YmxpY0tleTogeworICAg
ICAgICAgICAgY2hhbGxlbmdlOiBuZXcgVWludDhBcnJheSgxNiksCisgICAgICAgICAgICB0aW1l
b3V0OiAxMDAKKyAgICAgICAgfQorICAgIH07CisKKyAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMu
Z2V0KG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7CisgICAgICAgIC8vIGNvbnNvbGUubG9n
KCJTdWNjZWVkZWQhIik7CisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRl
c3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJTdWNjZWVkZWQhIik7CisgICAgfSwgZXJyb3IgPT4gewor
ICAgICAgICAvLyBjb25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgd2luZG93Lndl
YmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoZXJyb3IubWVzc2Fn
ZSk7CisgICAgfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLmh0
bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNh
dGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwNmE2YjdmZmJlZGRhMTQz
NTIwMGQ1ZGZhMmViMmE3ZTIwMTFkMjAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9u
LW5mYy5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzxzY3JpcHQ+CisgICAgY29uc3QgdGVzdE5mY0N0
YXBWZXJzaW9uQmFzZTY0ID0gIlJrbEVUMTh5WHpDUUFBPT0iOworICAgIGNvbnN0IHRlc3RHZXRJ
bmZvUmVzcG9uc2VBcGR1QmFzZTY0ID0KKyAgICAgICAgIkFLWUJnbVpWTWtaZlZqSm9Sa2xFVDE4
eVh6QUNnV3RvYldGakxYTmxZM0psZEFOUWJVUzZtL2JzTGttNU1BeVAiICsKKyAgICAgICAgIjZT
RExjd1NrWW5KcjlXSjFjUFZrY0d4aGRQUnBZMnhwWlc1MFVHbHU5QVVaQkxBR2dRR1FBQT09IjsK
KyAgICBjb25zdCB0ZXN0QXNzZXJ0aW9uTWVzc2FnZUFwZHVCYXNlNjQgPQorICAgICAgICAiQUtN
Qm9tSnBaRmhBS0FpdHp1aitUc2x6ZWxmMy92WndJR3REUU5nb0tlRmQ1b0VpZVl6aHl6QTY1c2Fm
MHRLMiIgKworICAgICAgICAidy9tb29hN3RRdEdnRGR3WklqT2hqY3VaMHBRMWFqb0U0R1IwZVhC
bGFuQjFZbXhwWXkxclpYa0NXQ1ZHekgrNSIgKworICAgICAgICAiWjUxVnN0dVFrdUhJMmVYaDBD
dDFnUEMwZ1N4M0NXTGg1STlhMkFFQUFBQlFBMWhITUVVQ0lRQ1NGVHV1QldnQiIgKworICAgICAg
ICAiNC9GMFZCN0RsVVZNMDlJSFBteGUxTXpIVXdSb0NSWmJDQUlnR0tvdjZ4b0F4Mk1FZjYvNnFO
czhPdXR6aFAyQyIgKworICAgICAgICAiUW9KMUw3RmU2NEc5dUJlUUFBPT0iOworICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0
aW9uQ29uZmlndXJhdGlvbih7IG5mYzogeyBlcnJvcjogInN1Y2Nlc3MiLCBwYXlsb2FkQmFzZTY0
OiBbdGVzdE5mY0N0YXBWZXJzaW9uQmFzZTY0LCB0ZXN0R2V0SW5mb1Jlc3BvbnNlQXBkdUJhc2U2
NCwgdGVzdEFzc2VydGlvbk1lc3NhZ2VBcGR1QmFzZTY0XSB9IH0pOworCisgICAgY29uc3Qgb3B0
aW9ucyA9IHsKKyAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICBjaGFsbGVuZ2U6IG5l
dyBVaW50OEFycmF5KDE2KSwKKyAgICAgICAgICAgIHRpbWVvdXQ6IDEwMCwKKyAgICAgICAgICAg
IGFsbG93Q3JlZGVudGlhbHM6IFsKKyAgICAgICAgICAgICAgICB7IHR5cGU6ICJwdWJsaWMta2V5
IiwgaWQ6IG5ldyBVaW50OEFycmF5KDE2KSwgdHJhbnNwb3J0czogWyJuZmMiXSB9CisgICAgICAg
ICAgICBdLAorICAgICAgICB9CisgICAgfTsKKworICAgIG5hdmlnYXRvci5jcmVkZW50aWFscy5n
ZXQob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+IHsKKyAgICAgICAgLy8gY29uc29sZS5sb2co
IlN1Y2NlZWRlZCEiKTsKKyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVz
dEhhbmRsZXIucG9zdE1lc3NhZ2UoIlN1Y2NlZWRlZCEiKTsKKyAgICB9LCBlcnJvciA9PiB7Cisg
ICAgICAgIC8vIGNvbnNvbGUubG9nKGVycm9yLm1lc3NhZ2UpOworICAgICAgICB3aW5kb3cud2Vi
a2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShlcnJvci5tZXNzYWdl
KTsKKyAgICB9KTsKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>