<?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>158894</bug_id>
          
          <creation_ts>2016-06-17 17:37:35 -0700</creation_ts>
          <short_desc>DatabaseProcess doesn&apos;t handle WebProcesses going away uncleanly</short_desc>
          <delta_ts>2016-06-22 16:52: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>RESOLVED</bug_status>
          <resolution>FIXED</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>
          
          <blocked>149117</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>alecflett</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1203489</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-06-17 17:37:35 -0700</bug_when>
    <thetext>IDB won&apos;t open any databases</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203490</commentid>
    <comment_count>1</comment_count>
      <attachid>281599</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-06-17 17:37:58 -0700</bug_when>
    <thetext>Created attachment 281599
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203512</commentid>
    <comment_count>2</comment_count>
      <attachid>281599</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-06-17 19:31:02 -0700</bug_when>
    <thetext>Comment on attachment 281599
Patch

r- because what is this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204642</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-06-22 13:15:51 -0700</bug_when>
    <thetext>DatabaseProcess doesn&apos;t handle WebProcesses going away uncleanly

This code:
void DatabaseToWebProcessConnection::didClose(IPC::Connection&amp;)
{
#if ENABLE(INDEXED_DATABASE)
    // FIXME: (Modern IDB) The WebProcess has disconnected, close all of the connections associated with it
#endif
}

Yikes!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204643</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-06-22 13:17:08 -0700</bug_when>
    <thetext>This test case exacerbates the issue because it opens a new database connection each time through the test.

When a tab is closed in Safari, sometimes we shut down a few of those connections, but most just disappear without a trace, forever clogging the database process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204665</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-06-22 14:22:10 -0700</bug_when>
    <thetext>As is the common thread lately, I have a straightforward fix, and writing a test will take awhile.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204706</commentid>
    <comment_count>6</comment_count>
      <attachid>281880</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-06-22 16:08:06 -0700</bug_when>
    <thetext>Created attachment 281880
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204721</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-06-22 16:46:33 -0700</bug_when>
    <thetext>http://trac.webkit.org</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204727</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-06-22 16:52:26 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/202359</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281599</attachid>
            <date>2016-06-17 17:37:58 -0700</date>
            <delta_ts>2016-06-22 16:08:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158894-20160617173759.patch</filename>
            <type>text/plain</type>
            <size>5170</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIwMjE4OCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE2LTA2LTE3ICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSURCIHdvbid0IG9wZW4gYW55
IGRhdGFiYXNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU4ODk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9kZXRhY2hlZC1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RldGFjaGVkLWlmcmFtZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGV0YWNoZWQtaWZy
YW1lLmpzOiBBZGRlZC4KKyAgICAgICAgKGRvbmUpOgorICAgICAgICAocHV0SW50b0RhdGFiYXNl
Lm9wZW5SZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCk6CisgICAgICAgIChwdXRJbnRvRGF0YWJhc2Up
OgorICAgICAgICAoZ2V0TG9vcE9wZW5lZC4pOgorICAgICAgICAoZ2V0TG9vcE9wZW5lZCk6Cisg
ICAgICAgIChwcmVwYXJlRGF0YWJhc2UpOgorCiAyMDE2LTA2LTE3ICBBbnRvaW5lIFF1aW50ICA8
Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIHZpZGVvIHBsYXliYWNrIGNvbnRyb2xz
IHNob3VsZCBoYXZlIFJUTCB2b2x1bWUgc2xpZGVyCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9kZXRhY2hlZC1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9kZXRhY2hlZC1pZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RldGFjaGVkLWlmcmFtZS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvZGV0YWNoZWQtaWZyYW1lLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZXRhY2hlZC1p
ZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvZGV0YWNoZWQtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGV0YWNoZWQtaWZyYW1lLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0PgordmFy
IHBhcmVudFdpbmRvdyA9IHBhcmVudDsKK3ZhciB3ZWJTb2NrZXRDbGFzcyA9IFdlYlNvY2tldDsK
KworcGFyZW50V2luZG93LmRldGFjaElmcmFtZSgpOwordHJ5IHsKKyAgICBuZXcgd2ViU29ja2V0
Q2xhc3MoJ3dzOi8vMTI3LjAuMC4xLycpOworfSBjYXRjaCAoZSkgeworICAgIHBhcmVudFdpbmRv
dy5jb25zb2xlLmxvZyhlLm1lc3NhZ2UpOworfQorcGFyZW50V2luZG93LmRvbmUoKTsKKzwvc2Ny
aXB0PgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RldGFj
aGVkLWlmcmFtZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvZGV0YWNoZWQtaWZyYW1lLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RldGFjaGVkLWlmcmFtZS5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDk4IEBACitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSk7
CisKKy8vIGZpbGU6Ly8vVXNlcnMvYWxleGNocmlzdGVuc2VuL2NvZGUvT3BlblNvdXJjZS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZXRhY2hlZC1pZnJhbWUuaHRtbAorCisvLyBvcGVu
IGluIG9uZSB0YWIKKy8vIG9wZW4gaW4gYW5vdGhlciB0YWIgYXQgc2FtZSB0aW1lIC0gZG9lc24n
dCBsb29wIChleHBlY3RlZCkgYnV0IGJlaGF2ZXMgc2xpZ2h0bHkgZGlmZmVyZW50bHkgdGhhbiBv
dGhlciBicm93c2VycworLy8gY2xvc2UgYm90aCB0YWJzIGFuZCByZW9wZW4gaW4gYSBuZXcgdGFi
IC0gZG9lc24ndCBsb29wICh1bmV4cGVjdGVkKSBhbmQgb3RoZXIgYnJvd3NlcnMgZG8uCisvLyBz
YWZhcmkgaXMgbm93IGluIGEgc3RhdGUgd2hlcmUgbm8gbmV3IHRhYnMgY2FuIGRvIGFueXRoaW5n
IHdpdGggdGhpcyBkYXRhYmFzZSwgZXZlbiBhZnRlciBjbG9zaW5nIGFsbCB0YWJzIGFuZCByZS1v
cGVuaW5nIHRoZW0uCisKK2Z1bmN0aW9uIGRvbmUoKSB7IGZpbmlzaEpTVGVzdCgpOyB9CisKK2Z1
bmN0aW9uIHB1dEludG9EYXRhYmFzZSgpIHsKKwl2YXIgb3BlblJlcXVlc3QgPSBpbmRleGVkREIu
b3BlbigiZGV0YWNoZWQtaWZyYW1lLmh0bWwiKTsKKwlvcGVuUmVxdWVzdC5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihldmVudCkgeworCQlkZWJ1ZygiUFVUVElORyBTT01FVEhJTkcgSU4gVEhF
IERBVEFCQVNFIik7CisJICAgIHZhciBkYXRhYmFzZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisJ
ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisJCQlkZWJ1ZygiUFVUIFNPTUVUSElORyBJTiBU
SEUgREFUQUJBU0UiKTsKKwkJCWRhdGFiYXNlLnRyYW5zYWN0aW9uKFsiVGVzdE9iamVjdFN0b3Jl
Il0pLnB1dCgiYmFyIiwgImZvbyIpOworCSAgICB9LCAwKTsKKwl9CisJb3BlblJlcXVlc3QuYmxv
Y2tlZCA9IHB1dEludG9EYXRhYmFzZTsKK30KKwordmFyIGNvdW50PTA7CisKK2Z1bmN0aW9uIGdl
dExvb3BPcGVuZWQoZXZlbnQpIHsKKwlkZWJ1ZygiR0VUVElORyBTT01FVEhJTkcgRlJPTSBUSEUg
REFUQUJBU0UiKTsKKwl2YXIgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OworCXNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7CisJCWRlYnVnKCJHT1QgU09NRVRISU5HIEZST00gVEhFIERBVEFC
QVNFIik7CisJCXZhciB0cmFuc2FjdGlvbiA9IGRhdGFiYXNlLnRyYW5zYWN0aW9uKFsiVGVzdE9i
amVjdFN0b3JlIl0pOworCQlkZWJ1ZygidHJhbnNhY3Rpb24gIiArIHRyYW5zYWN0aW9uKTsKKwkJ
ZGVidWcoIk9CSkVDVCBTVE9SRSAiICsgdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoIlRlc3RPYmpl
Y3RTdG9yZSIpKTsKKwkJdmFyIGdldFJlcXVlc3QgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgi
VGVzdE9iamVjdFN0b3JlIikuZ2V0KCJmb28iKTsKKwkJZGVidWcoIk9CSkVDVCBTVE9SRSAiICsg
dHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoIlRlc3RPYmplY3RTdG9yZSIpKTsKKworCQlnZXRSZXF1
ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7CisJCWRlYnVnKCJTVUNDRVNTIik7CisK
KwkJCWlmIChldmVudC50YXJnZXQucmVzdWx0KSB7CisJCQkJZGVidWcoImdldCBzdWNjZWVkZWQg
IiArIGV2ZW50LnRhcmdldC5yZXN1bHQpOworCQkJCWRvbmUoKTsKKwkJCX0gZWxzZSB7CisJCQkJ
c2V0VGltZW91dChnZXRGcm9tRGF0YWJhc2VMb29wLCAwKTsKKwkJCQlkZWJ1ZygiZ2V0IGZhaWxl
ZCAiICsgZXZlbnQudGFyZ2V0LnJlc3VsdCk7CisJCQkJY291bnQrKzsKKwkJCQkvL2RhdGFiYXNl
LmNsb3NlKCk7CisJCQkJLy9kb25lKCk7CisJCQkJaWYgKGNvdW50ID4gNTApCisJCQkJCWRvbmUo
KTsKKwkJCQkvL2RvbmUoKTsKKwkJCX0KKworCQl9CisJCWdldFJlcXVlc3Qub25lcnJvciA9IGZ1
bmN0aW9uKGV2ZW50KSB7CisJCQlkZWJ1ZygiZ2V0IGZhaWxlZCB1bmV4cGVjdGVkbHkiKTsKKwkJ
CWRvbmUoKTsKKwkJfQorCX0sIDApOworfQorCitmdW5jdGlvbiBnZXRGcm9tRGF0YWJhc2VMb29w
KCkgeworCXZhciBvcGVuUmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKCJkZXRhY2hlZC1pZnJhbWUu
aHRtbCIpOworCWRlYnVnKCJhc2RmIiArIG9wZW5SZXF1ZXN0KTsKKwlvcGVuUmVxdWVzdC5vbnN1
Y2Nlc3MgPSBnZXRMb29wT3BlbmVkOworCW9wZW5SZXF1ZXN0Lm9uZXJyb3IgPSBnZXRMb29wT3Bl
bmVkOworCW9wZW5SZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGdldExvb3BPcGVuZWQ7CisJb3Bl
blJlcXVlc3QudmVyc2lvbmNoYW5nZSA9IGdldExvb3BPcGVuZWQ7CisJb3BlblJlcXVlc3QuYmxv
Y2tlZCA9IGdldEZyb21EYXRhYmFzZUxvb3A7Cit9CisKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFz
ZShldmVudCkKK3sKKyAgICBkZWJ1ZygiQ1JFQVRFRCBEQVRBQkFTRSIpOworICAgIGV2ZW50LnRh
cmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoIlRlc3RPYmplY3RTdG9yZSIpOworICAgIHNl
dFRpbWVvdXQoZ2V0RnJvbURhdGFiYXNlTG9vcCwgMCk7CisgICAgc2V0VGltZW91dChwdXRJbnRv
RGF0YWJhc2UsIDApOworICAgIAorfQorCisvKgorCitkZXNjcmlwdGlvbignVXNlIEluZGV4ZWRE
QiBmb3IgdGhlIGZpcnN0IHRpbWUgaW4gYW4gaWZyYW1lIGFmdGVyIGl0IGhhcyBiZWVuIGRldGFj
aGVkIGZyb20gdGhlIGRvY3VtZW50LicpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
CisKK2Z1bmN0aW9uIGRldGFjaElmcmFtZSgpCit7CisJdmFyIHRlc3RJZnJhbWUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGVzdElmcmFtZScpOworCXRlc3RJZnJhbWUucGFyZW50Tm9kZS5y
ZW1vdmUodGVzdElmcmFtZSk7Cit9CisKK2Z1bmN0aW9uIGRvbmUoKQoreworCWZpbmlzaEpTVGVz
dCgpOworfQorKi8KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281880</attachid>
            <date>2016-06-22 16:08:06 -0700</date>
            <delta_ts>2016-06-22 16:41:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158894-20160622160757.patch</filename>
            <type>text/plain</type>
            <size>19099</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyMzI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDJjZTM0ZDlmYjcwMjI0
Yjg1Y2ExYTQxYzE4YjViOWU0NmY0MTQyMy4uYzMxOWEyNmJlNThiNWFiMTVmZTViOTlhYmMyMjlj
ODhmOWE5YTkyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE2LTA2LTIyICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBEYXRhYmFzZVByb2Nlc3Mg
ZG9lc24ndCBoYW5kbGUgV2ViUHJvY2Vzc2VzIGdvaW5nIGF3YXkgdW5jbGVhbmx5LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4ODk0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChD
b3ZlcmVkIGJ5IGFkZGl0aW9ucyB0byBleGlzdGluZyBBUEkgdGVzdCkuCisKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCQ29ubmVjdGlvblRvQ2xpZW50OjpyZWdpc3RlckRh
dGFiYXNlQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQkNvbm5l
Y3Rpb25Ub0NsaWVudDo6dW5yZWdpc3RlckRhdGFiYXNlQ29ubmVjdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y29ubmVjdGlvblRvQ2xp
ZW50Q2xvc2VkKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVj
dGlvblRvQ2xpZW50Lmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2
ZXI6OnVucmVnaXN0ZXJDb25uZWN0aW9uKTogQ2FsbCBjb25uZWN0aW9uVG9DbGllbnRDbG9zZWQo
KSBvbgorICAgICAgICAgIHRoZSBjb25uZWN0aW9uLCB3aGljaCBjbGVhbnMgdXAgYWZ0ZXIgaXQg
aW4gdGhlIHNlcnZlci4KKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbjo6VW5pcXVlSURCRGF0YWJhc2VD
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJh
c2VDb25uZWN0aW9uOjp+VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uKToKKwogMjAxNi0wNi0y
MiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0dUS10gQWRkIHN1cHBvcnQgZm9yIHZhcmlhZGljIHBhcmFtZXRlcnMgdG8gR09iamVjdCBET00g
YmluZGluZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzZjEyOWQ4ZjNlYjEyN2UzMTFmMTQ2ZGFkODY2Nzc1M2Mz
YjVlZGY0Li4zYWQ5OTFlZWQ0ZmI5NWJkMWViMzcyMjY0YzliMjUzMWI4ZmRlMTcyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYtMDYtMjIgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25A
YXBwbGUuY29tPgorCisgICAgICAgIERhdGFiYXNlUHJvY2VzcyBkb2Vzbid0IGhhbmRsZSBXZWJQ
cm9jZXNzZXMgZ29pbmcgYXdheSB1bmNsZWFubHkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb246OmRpZENsb3NlKToKKyAgICAgICAgCisgICAgICAgICogRGF0YWJhc2VQcm9j
ZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpc2Nvbm5lY3RlZEZyb21XZWJQcm9jZXNz
KTogQWN0dWFsbHkgdW5yZWdpc3RlciB0aGlzIGNvbm5lY3Rpb24KKyAgICAgICAgICBmcm9tIHRo
ZSBJREJTZXJ2ZXIgc28gaXQgY2FuIGNsZWFuIHVwLgorICAgICAgICAoV2ViS2l0OjpXZWJJREJD
b25uZWN0aW9uVG9DbGllbnQ6On5XZWJJREJDb25uZWN0aW9uVG9DbGllbnQpOgorICAgICAgICAK
IDIwMTYtMDYtMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByMjAyMjk2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xp
ZW50LmNwcAppbmRleCBlYzkzMTJmOWRjOTc3ZGFjMGI0MjA4ZTgwYWVmZGY4NWFiOTJjMjdiLi45
OTE1OWIwYTM4MmEzNzVlOTZhNjk0ZTg5OWI2YmU2NWE1NjU0YzQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29u
bmVjdGlvblRvQ2xpZW50LmNwcApAQCAtMTQ4LDYgKzE0OCwyOSBAQCB2b2lkIElEQkNvbm5lY3Rp
b25Ub0NsaWVudDo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyh1aW50NjRfdCBjYWxsYmFja0lELCBj
b25zdCBWZQogICAgIG1fZGVsZWdhdGUtPmRpZEdldEFsbERhdGFiYXNlTmFtZXMoY2FsbGJhY2tJ
RCwgZGF0YWJhc2VOYW1lcyk7CiB9CiAKK3ZvaWQgSURCQ29ubmVjdGlvblRvQ2xpZW50OjpyZWdp
c3RlckRhdGFiYXNlQ29ubmVjdGlvbihVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24pCit7CisgICAgQVNTRVJUKCFtX2RhdGFiYXNlQ29ubmVjdGlvbnMuY29udGFpbnMoJmNv
bm5lY3Rpb24pKTsKKyAgICBtX2RhdGFiYXNlQ29ubmVjdGlvbnMuYWRkKCZjb25uZWN0aW9uKTsK
K30KKwordm9pZCBJREJDb25uZWN0aW9uVG9DbGllbnQ6OnVucmVnaXN0ZXJEYXRhYmFzZUNvbm5l
Y3Rpb24oVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIG1f
ZGF0YWJhc2VDb25uZWN0aW9ucy5yZW1vdmUoJmNvbm5lY3Rpb24pOworfQorCit2b2lkIElEQkNv
bm5lY3Rpb25Ub0NsaWVudDo6Y29ubmVjdGlvblRvQ2xpZW50Q2xvc2VkKCkKK3sKKyAgICBhdXRv
IGRhdGFiYXNlQ29ubmVjdGlvbnMgPSBtX2RhdGFiYXNlQ29ubmVjdGlvbnM7CisKKyAgICBmb3Ig
KGF1dG8gY29ubmVjdGlvbiA6IGRhdGFiYXNlQ29ubmVjdGlvbnMpIHsKKyAgICAgICAgaWYgKG1f
ZGF0YWJhc2VDb25uZWN0aW9ucy5jb250YWlucyhjb25uZWN0aW9uKSkKKyAgICAgICAgICAgIGNv
bm5lY3Rpb24tPmNvbm5lY3Rpb25DbG9zZWRGcm9tQ2xpZW50KCk7CisgICAgfQorCisgICAgbV9k
YXRhYmFzZUNvbm5lY3Rpb25zLmNsZWFyKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIElEQlNlcnZl
cgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmgK
aW5kZXggZjIxZjkxN2I4N2ExNDJhYTJlNTAxZmI5NTVjYWRiNTcxMTAxYmViNi4uOTdlMmE3NTRk
MjNkN2UyNTIyN2FiZjE5N2IwMmNiMmEyZjM5NzY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9D
bGllbnQuaApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQog
CiAjaW5jbHVkZSAiSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUuaCIKKyNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogCkBAIC03MiwxMCArNzMsMTUgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaWRHZXRB
bGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBkYXRhYmFzZU5hbWVzKTsKIAorICAgIHZvaWQgcmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24o
VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJik7CisgICAgdm9pZCB1bnJlZ2lzdGVyRGF0YWJh
c2VDb25uZWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYpOworICAgIHZvaWQgY29u
bmVjdGlvblRvQ2xpZW50Q2xvc2VkKCk7CisKIHByaXZhdGU6CiAgICAgSURCQ29ubmVjdGlvblRv
Q2xpZW50KElEQkNvbm5lY3Rpb25Ub0NsaWVudERlbGVnYXRlJik7CiAgICAgCiAgICAgUmVmPElE
QkNvbm5lY3Rpb25Ub0NsaWVudERlbGVnYXRlPiBtX2RlbGVnYXRlOworICAgIEhhc2hTZXQ8VW5p
cXVlSURCRGF0YWJhc2VDb25uZWN0aW9uKj4gbV9kYXRhYmFzZUNvbm5lY3Rpb25zOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgSURCU2VydmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCmluZGV4IGNjN2EzZjYwMWMxNjQ3NWI3
Nzg2ZmQ0ZTJkNTljMmY5OGQ5NGRmNTUuLmFmY2FkNGQxNzMzMWM3OGJjNzcwYzliZjEyMjM4ZmI0
NGEwYjM0YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJTZXJ2ZXIuY3BwCkBAIC04MCw2ICs4MCw4IEBAIHZvaWQgSURCU2VydmVyOjp1
bnJlZ2lzdGVyQ29ubmVjdGlvbihJREJDb25uZWN0aW9uVG9DbGllbnQmIGNvbm5lY3Rpb24pCiAg
ICAgQVNTRVJUKG1fY29ubmVjdGlvbk1hcC5jb250YWlucyhjb25uZWN0aW9uLmlkZW50aWZpZXIo
KSkpOwogICAgIEFTU0VSVChtX2Nvbm5lY3Rpb25NYXAuZ2V0KGNvbm5lY3Rpb24uaWRlbnRpZmll
cigpKSA9PSAmY29ubmVjdGlvbik7CiAKKyAgICBjb25uZWN0aW9uLmNvbm5lY3Rpb25Ub0NsaWVu
dENsb3NlZCgpOworCiAgICAgbV9jb25uZWN0aW9uTWFwLnJlbW92ZShjb25uZWN0aW9uLmlkZW50
aWZpZXIoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5j
cHAKaW5kZXggOWI4NDdhNDY3MDNlNzY4ZmE3YTU2MmMzOWE4NGFkNmYxZDFiNGI1Mi4uYTg4MmRj
NjhlNDlhMzVjZGIwYTNiNWQyYjZjYmUxYWE0YWI3MzVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1
ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5jcHAKQEAgLTU2LDExICs1NiwxMyBAQCBVbmlxdWVJREJE
YXRhYmFzZUNvbm5lY3Rpb246OlVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbihVbmlxdWVJREJE
YXRhYmFzZSYgZGF0YQogICAgICwgbV9vcGVuUmVxdWVzdElkZW50aWZpZXIocmVxdWVzdC5yZXF1
ZXN0RGF0YSgpLnJlcXVlc3RJZGVudGlmaWVyKCkpCiB7CiAgICAgbV9kYXRhYmFzZS5zZXJ2ZXIo
KS5yZWdpc3RlckRhdGFiYXNlQ29ubmVjdGlvbigqdGhpcyk7CisgICAgbV9jb25uZWN0aW9uVG9D
bGllbnQucmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24oKnRoaXMpOwogfQogCiBVbmlxdWVJREJE
YXRhYmFzZUNvbm5lY3Rpb246On5VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24oKQogewogICAg
IG1fZGF0YWJhc2Uuc2VydmVyKCkudW5yZWdpc3RlckRhdGFiYXNlQ29ubmVjdGlvbigqdGhpcyk7
CisgICAgbV9jb25uZWN0aW9uVG9DbGllbnQudW5yZWdpc3RlckRhdGFiYXNlQ29ubmVjdGlvbigq
dGhpcyk7CiB9CiAKIGJvb2wgVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uOjpoYXNOb25GaW5p
c2hlZFRyYW5zYWN0aW9ucygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
CmluZGV4IDBmNjg1NTI0Njg5ZjYxYzI3YzY1NWY1MTdkNzhkMzg5YTY4ZDI1MzIuLjM5ZjQ5ODM4
ZWUzZDlkNWIxOGRkMDk3NWYxMjUyY2VlMWVjZDE1YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCkBAIC04NSw3ICs4NSwxMSBAQCB2b2lkIERhdGFiYXNlVG9XZWJQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubgog
dm9pZCBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKElQQzo6Q29ubmVj
dGlvbiYpCiB7CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgLy8gRklYTUU6IChN
b2Rlcm4gSURCKSBUaGUgV2ViUHJvY2VzcyBoYXMgZGlzY29ubmVjdGVkLCBjbG9zZSBhbGwgb2Yg
dGhlIGNvbm5lY3Rpb25zIGFzc29jaWF0ZWQgd2l0aCBpdAorICAgIGF1dG8gY29ubmVjdGlvbnMg
PSBtX3dlYklEQkNvbm5lY3Rpb25zOworICAgIGZvciAoYXV0byYgY29ubmVjdGlvbiA6IGNvbm5l
Y3Rpb25zLnZhbHVlcygpKQorICAgICAgICBjb25uZWN0aW9uLT5kaXNjb25uZWN0ZWRGcm9tV2Vi
UHJvY2VzcygpOworCisgICAgbV93ZWJJREJDb25uZWN0aW9ucy5jbGVhcigpOwogI2VuZGlmCiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIv
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJv
Y2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAppbmRleCA3NTBlNDZm
YTY5ZTZhMGQxZDBkYjU5MjZlMDNlZGIwMmMyZGQ3YzE5Li5hYTA3YWFhYjI3MTMxNWE0ZDBkMTRm
YjA5ZjE5MjFjNGRhZmNiYjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVBy
b2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGll
bnQuY3BwCkBAIC01OCwxMSArNTgsMTEgQEAgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpXZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQoRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW8KIAogV2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50Ojp+V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50KCkKIHsKLSAg
ICBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpLmlkYlNlcnZlcigpLnVucmVnaXN0ZXJDb25u
ZWN0aW9uKCptX2Nvbm5lY3Rpb25Ub0NsaWVudCk7CiB9CiAKIHZvaWQgV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50OjpkaXNjb25uZWN0ZWRGcm9tV2ViUHJvY2VzcygpCiB7CisgICAgRGF0YWJhc2VQ
cm9jZXNzOjpzaW5nbGV0b24oKS5pZGJTZXJ2ZXIoKS51bnJlZ2lzdGVyQ29ubmVjdGlvbigqbV9j
b25uZWN0aW9uVG9DbGllbnQpOwogfQogCiBJUEM6OkNvbm5lY3Rpb24qIFdlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudDo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGY3NjRhOTc3NmY4NmIwYzcyODA4NGYy
YjM0NDM3YTk2MzYwYTBkMTMuLmQzYzRjYzc5NDI2N2RlZDZlYTJjNWM4NzE2YjdhMzhmOGQ5ZGYy
ODAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxNi0wNi0yMiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5j
b20+CisKKyAgICAgICAgRGF0YWJhc2VQcm9jZXNzIGRvZXNuJ3QgaGFuZGxlIFdlYlByb2Nlc3Nl
cyBnb2luZyBhd2F5IHVuY2xlYW5seS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1ODg5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvSW5kZXhlZERCTXVsdGlQcm9jZXNzLTIuaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJNdWx0aVByb2Nlc3MtMy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJNdWx0
aVByb2Nlc3MubW06CisKIDIwMTYtMDYtMjIgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFtXaW5dIEltcGxlbWVudCBtb2RhbCBkaWFsb2cgc3VwcG9ydCBp
biBNaW5pQnJvd3Nlci4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMGU4MmU5ZGI2ZjNjMWM1
ZjliNzMzZDZkNmU4YWE0YmM5OGIyOGZiNi4uMjM3ZGI0Nzc5ZWU2NjljNDY1YTE0YWE0MWNlZTJk
MDM0YzdkNWQ1YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTcwLDYgKzcwLDcgQEAKIAkJ
NTE3MTRFQjUxQ0Y4Qzc4QzAwNDcyM0M0IC8qIFdlYlByb2Nlc3NLaWxsSURCQ2xlYW51cC0yLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTE3MTRFQjMxQ0Y4Qzc2MTAwNDcyM0M0IC8qIFdlYlByb2Nlc3NLaWxsSURCQ2xlYW51cC0yLmh0
bWwgKi87IH07CiAJCTUxNzE0RUI4MUNGOENBMTcwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElE
QkNsZWFudXAubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTcxNEVCNjFDRjhDN0E0MDA0NzIzQzQgLyogV2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVwLm1t
ICovOyB9OwogCQk1MTdFN0UwNDE1MTExOUMxMDBEMEIwMDggLyogTWVtb3J5Q2FjaGVQcnVuZVdp
dGhpblJlc291cmNlTG9hZERlbGVnYXRlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3RTdFMDMxNTExMTg3NTAwRDBCMDA4IC8qIE1l
bW9yeUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5odG1sICovOyB9OworCQk1
MUE1ODc3RDFEMUI0OUNEMDA0QkE5QUYgLyogSW5kZXhlZERCTXVsdGlQcm9jZXNzLTMuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUE1
ODc3QzFEMUIzRDhEMDA0QkE5QUYgLyogSW5kZXhlZERCTXVsdGlQcm9jZXNzLTMuaHRtbCAqLzsg
fTsKIAkJNTFCMUVFOTYxQzgwRkFFRjAwNjRGQjk4IC8qIEluZGV4ZWREQlBlcnNpc3RlbmNlLTEu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MUIxRUU5NDFDODBGQUREMDA2NEZCOTggLyogSW5kZXhlZERCUGVyc2lzdGVuY2UtMS5odG1s
ICovOyB9OwogCQk1MUIxRUU5NzFDODBGQUVGMDA2NEZCOTggLyogSW5kZXhlZERCUGVyc2lzdGVu
Y2UtMi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxQjFFRTk1MUM4MEZBREQwMDY0RkI5OCAvKiBJbmRleGVkREJQZXJzaXN0ZW5jZS0y
Lmh0bWwgKi87IH07CiAJCTUxQkNFRTRFMUM4NEY1M0IwMDQyQzgyRSAvKiBJbmRleGVkREJNdWx0
aVByb2Nlc3MtMS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxQkNFRTRDMUM4NEY1MkMwMDQyQzgyRSAvKiBJbmRleGVkREJNdWx0aVBy
b2Nlc3MtMS5odG1sICovOyB9OwpAQCAtNDY3LDYgKzQ2OCw3IEBACiAJCQlkc3RQYXRoID0gVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXM7CiAJCQlkc3RTdWJmb2xkZXJTcGVjID0gNzsKIAkJCWZpbGVz
ID0gKAorCQkJCTUxQTU4NzdEMUQxQjQ5Q0QwMDRCQTlBRiAvKiBJbmRleGVkREJNdWx0aVByb2Nl
c3MtMy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTk5ODRGQUNFMUNGRkIwOTAwMDhE
MTk4QyAvKiBlZGl0YWJsZS1ib2R5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTE3
MTRFQjQxQ0Y4Qzc4QzAwNDcyM0M0IC8qIFdlYlByb2Nlc3NLaWxsSURCQ2xlYW51cC0xLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTE3MTRFQjUxQ0Y4Qzc4QzAwNDcyM0M0IC8qIFdl
YlByb2Nlc3NLaWxsSURCQ2xlYW51cC0yLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC02
OTUsNiArNjk3LDcgQEAKIAkJNTE3MTRFQjkxRDA4NzQxNjAwNDcyM0M0IC8qIENyb3NzVGhyZWFk
VGFzay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcm9zc1RocmVh
ZFRhc2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTdFN0RGQjE1MTEwRUE2
MDBEMEIwMDggLyogTWVtb3J5Q2FjaGVQcnVuZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVtb3J5Q2FjaGVQcnVu
ZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MTdFN0UwMzE1MTExODc1MDBEMEIwMDggLyogTWVtb3J5Q2FjaGVQcnVuZVdpdGhpblJl
c291cmNlTG9hZERlbGVnYXRlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBNZW1v
cnlDYWNoZVBydW5lV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTFBNTg3N0MxRDFCM0Q4RDAwNEJBOUFGIC8qIEluZGV4ZWREQk11
bHRpUHJvY2Vzcy0zLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiSW5kZXhlZERC
TXVsdGlQcm9jZXNzLTMuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQjFF
RThEMUM4MEY1ODgwMDY0RkI5OCAvKiBJbmRleGVkREJQZXJzaXN0ZW5jZS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEluZGV4ZWREQlBlcnNpc3RlbmNlLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUIxRUU5NDFDODBGQUREMDA2NEZCOTggLyog
SW5kZXhlZERCUGVyc2lzdGVuY2UtMS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0g
IkluZGV4ZWREQlBlcnNpc3RlbmNlLTEuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxQjFFRTk1MUM4MEZBREQwMDY0RkI5OCAvKiBJbmRleGVkREJQZXJzaXN0ZW5jZS0yLmh0
bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiSW5kZXhlZERCUGVyc2lzdGVuY2UtMi5o
dG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyNTEsNiArMTI1NCw3IEBACiAJ
CQkJNTcxNEVDQkExQ0E4QkZEMTAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJM
RnJhbWUuaHRtbCAqLywKIAkJCQk1MUJDRUU0QzFDODRGNTJDMDA0MkM4MkUgLyogSW5kZXhlZERC
TXVsdGlQcm9jZXNzLTEuaHRtbCAqLywKIAkJCQk1MUJDRUU0RDFDODRGNTJDMDA0MkM4MkUgLyog
SW5kZXhlZERCTXVsdGlQcm9jZXNzLTIuaHRtbCAqLywKKwkJCQk1MUE1ODc3QzFEMUIzRDhEMDA0
QkE5QUYgLyogSW5kZXhlZERCTXVsdGlQcm9jZXNzLTMuaHRtbCAqLywKIAkJCQk1MUIxRUU5NDFD
ODBGQUREMDA2NEZCOTggLyogSW5kZXhlZERCUGVyc2lzdGVuY2UtMS5odG1sICovLAogCQkJCTUx
QjFFRTk1MUM4MEZBREQwMDY0RkI5OCAvKiBJbmRleGVkREJQZXJzaXN0ZW5jZS0yLmh0bWwgKi8s
CiAJCQkJNTE3MTRFQjIxQ0Y4Qzc2MTAwNDcyM0M0IC8qIFdlYlByb2Nlc3NLaWxsSURCQ2xlYW51
cC0xLmh0bWwgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9JbmRleGVkREJNdWx0aVByb2Nlc3MtMi5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCTXVsdGlQcm9jZXNzLTIuaHRtbAppbmRleCAx
MGYzM2NmYTM5M2RhODQ5MTI0ZDA0Njk5NDVmODNjNDQ0ODVkZDE5Li4zMTAzNWM5OTNiYjNiODAw
YWI2NzJmYjFhMTcyOTg2NDg5ZWM3N2QxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJNdWx0aVByb2Nlc3MtMi5odG1sCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQk11bHRpUHJvY2Vz
cy0yLmh0bWwKQEAgLTksNiArOSw3IEBAIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZXZl
bnQpCiAgICAgcmVxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAg
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ1Zh
bHVlIG9mIGZvbzogJyArIHJlcS5yZXN1bHQpOworICAgICAgICBjb250aW51ZVRlc3QxKCk7CiAg
ICAgfQogCiAgICAgcmVxLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkKQEAgLTI5LDQgKzMwLDYz
IEBAIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpCiAgICAgLy8gVW5l
eHBlY3RlZCB1cGdyYWRlIG5lZWRlZAogICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJz
LnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdVbmV4cGVjdGVkIFVwZ3JhZGVOZWVkZWQnKTsKIH0K
KworZnVuY3Rpb24gY29udGludWVUZXN0MSgpCit7CisgICAgdmFyIHJlcXVlc3QgPSB3aW5kb3cu
aW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCJQcm9jZXNzQ2xvc2VJREJDbGVhbnVwIik7CisgICAg
cmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKQorICAgIHsKKyAgICAgICAgY29udGludWVU
ZXN0MigpOworICAgIH0KKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbihlKQorICAgIHsK
KyAgICAgICAgLy8gVW5leHBlY3RlZCBlcnJvcgorICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3Nh
Z2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnRXJyb3IgZGVsZXRpbmcgUHJvY2Vz
c0Nsb3NlSURCQ2xlYW51cCBkYXRhYmFzZScpOworICAgIH0KK30KKworZnVuY3Rpb24gc3RhcnRH
ZXRMb29wKCkKK3sKKyAgICB2YXIgcmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiUHJv
Y2Vzc0Nsb3NlSURCQ2xlYW51cCIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24o
ZSkKKyAgICB7CisgICAgICAgIHZhciByZXEgPSBlLnRhcmdldC5yZXN1bHQudHJhbnNhY3Rpb24o
WyJUZXN0T2JqZWN0U3RvcmUiXSkub2JqZWN0U3RvcmUoIlRlc3RPYmplY3RTdG9yZSIpLmdldCgi
Zm9vIik7CisgICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSBzdGFydEdldExvb3A7CisgICAgICAgIHJl
cS5vbmVycm9yID0gZnVuY3Rpb24oZSkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gVW5leHBl
Y3RlZCBlcnJvcgorICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVz
dEhhbmRsZXIucG9zdE1lc3NhZ2UoJ0Vycm9yIHdpdGggYSBnZXQgbG9vcCcpOworICAgICAgICB9
CisgICAgfQorCisgICAgcmVxdWVzdC5vbmVycm9yID0gZnVuY3Rpb24oZSkKKyAgICB7CisgICAg
ICAgIC8vIFVuZXhwZWN0ZWQgZXJyb3IKKyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFu
ZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ0Vycm9yIHdpdGggYSBnZXQgbG9vcCcpOwor
ICAgIH0KK30KKworZnVuY3Rpb24gY29udGludWVUZXN0MigpCit7CisgICAgdmFyIHJlcXVlc3Qg
PSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIlByb2Nlc3NDbG9zZUlEQkNsZWFudXAiKTsKKyAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpCisgICAgeworICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IDc1OyArK2kpCisgICAgICAgICAgICBzdGFydEdldExvb3AoKTsKKworICAgICAg
ICBzZXRUaW1lb3V0KCJ3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5w
b3N0TWVzc2FnZSgnR2V0IGxvb3BzIHN0YXJ0ZWQnKTsiLCAwKTsKKyAgICB9CisKKyAgICByZXF1
ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbihlKQorICAgIHsKKyAgICAgICAgLy8gVW5leHBlY3RlZCBl
cnJvcgorICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5w
b3N0TWVzc2FnZSgnRXJyb3Igb3BlbmluZyBQcm9jZXNzQ2xvc2VJREJDbGVhbnVwIGRhdGFiYXNl
Jyk7CisgICAgfQorCisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKQor
ICAgIHsKKyAgICAgICAgZS50YXJnZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJUZXN0T2Jq
ZWN0U3RvcmUiKS5wdXQoImJhciIsICJmb28iKTsKKyAgICB9Cit9CisKIDwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERC
TXVsdGlQcm9jZXNzLTMuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL0luZGV4ZWREQk11bHRpUHJvY2Vzcy0zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODcyODg1Yjc1NWNj
NGI4OGY5OWQyOTkxMzZiNDU1Yjk5ZDY2YmI3ZQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQk11bHRpUHJvY2Vzcy0zLmh0
bWwKQEAgLTAsMCArMSwyMSBAQAorPHNjcmlwdD4KKwordmFyIHJlcXVlc3QgPSB3aW5kb3cuaW5k
ZXhlZERCLmRlbGV0ZURhdGFiYXNlKCJQcm9jZXNzQ2xvc2VJREJDbGVhbnVwIik7CisKK3JlcXVl
c3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpCit7CisgICAgd2luZG93LndlYmtpdC5tZXNz
YWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ0RlbGV0ZWQhJyk7Cit9CisKK3Jl
cXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uKCkKK3sKKyAgICAvLyBVbmV4cGVjdGVkIGVycm9yCisg
ICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2Uo
J1VuZXhwZWN0ZWQgZXJyb3Igb3BlbmluZyBkYXRhYmFzZScpOworfQorCityZXF1ZXN0Lm9uYmxv
Y2tlZCA9IGZ1bmN0aW9uKGV2ZW50KQoreworICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRs
ZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdCbG9ja2VkIScpOworfQorCis8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4
ZWREQk11bHRpUHJvY2Vzcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL0luZGV4ZWREQk11bHRpUHJvY2Vzcy5tbQppbmRleCBjNDk1OWIzYmJlOTYxNDQ4OTI3ZDdl
YjNmMDM0MzczNzMyY2UwMzZiLi5jMDg1Y2M1Mjc5NWI5YzY2MDgyYjE2MTVkNWRhNDY1N2U2YzM3
ZDE2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9J
bmRleGVkREJNdWx0aVByb2Nlc3MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvSW5kZXhlZERCTXVsdGlQcm9jZXNzLm1tCkBAIC04MSw3ICs4MSw3IEBAIFRF
U1QoSW5kZXhlZERCLCBJbmRleGVkREJNdWx0aVByb2Nlc3MpCiAgICAgcmVjZWl2ZWRTY3JpcHRN
ZXNzYWdlID0gZmFsc2U7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBzdHJpbmczID0gKE5TU3Ry
aW5nICopW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldOwogCi0gICAgLy8gTWFrZSBhIG5ldyB3ZWIg
dmlldyB3aXRoIGEgbmV3IHdlYiBwcm9jZXNzIHRvIGZpbmlzaCB0aGUgdGVzdAorICAgIC8vIE1h
a2UgYSBuZXcgd2ViIHZpZXcgd2l0aCBhIG5ldyB3ZWIgcHJvY2VzcyB0byBjb250aW51ZSB0aGUg
dGVzdAogICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcyID0gYWRvcHROUyhbW1dLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKIAogICAgIHJlcXVlc3QgPSBbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3Vy
Y2U6QCJJbmRleGVkREJNdWx0aVByb2Nlc3MtMiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwpAQCAtOTUsNiArOTUsMjkgQEAg
VEVTVChJbmRleGVkREIsIEluZGV4ZWREQk11bHRpUHJvY2VzcykKICAgICBFWFBFQ1RfV0tfU1RS
RVEoQCJUcmFuc2FjdGlvbiBjb21wbGV0ZSIsIHN0cmluZzIuZ2V0KCkpOwogICAgIEVYUEVDVF9X
S19TVFJFUShAIk9wZW4gc3VjY2VzcyIsIHN0cmluZzMuZ2V0KCkpOwogICAgIEVYUEVDVF9XS19T
VFJFUShAIlZhbHVlIG9mIGZvbzogYmFyIiwgc3RyaW5nNC5nZXQoKSk7CisKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgcmVjZWl2ZWRT
Y3JpcHRNZXNzYWdlID0gZmFsc2U7CisgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBzdHJpbmc1ID0g
KE5TU3RyaW5nICopW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldOworICAgIEVYUEVDVF9XS19TVFJF
UShAIkdldCBsb29wcyBzdGFydGVkIiwgc3RyaW5nNS5nZXQoKSk7CisKKyAgICAvLyBNYWtlIGEg
bmV3IHdlYiB2aWV3IHdpdGggYSBuZXcgd2ViIHByb2Nlc3MgdG8gY29udGludWUgdGhlIHRlc3QK
KyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3MyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIklu
ZGV4ZWREQk11bHRpUHJvY2Vzcy0zIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5
OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CisgICAgW3dlYlZpZXczIGxvYWRSZXF1ZXN0
OnJlcXVlc3RdOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlw
dE1lc3NhZ2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworICAgIFJldGFp
blB0cjxOU1N0cmluZz4gc3RyaW5nNiA9IChOU1N0cmluZyAqKVtsYXN0U2NyaXB0TWVzc2FnZSBi
b2R5XTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJCbG9ja2VkISIsIHN0cmluZzYuZ2V0KCkpOwor
CisgICAgLy8gS2lsbCB0aGUgYmxvY2tpbmcgd2ViIHByb2Nlc3MKKyAgICB3ZWJWaWV3MiA9IG5p
bDsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdl
KTsKKyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBSZXRhaW5QdHI8TlNT
dHJpbmc+IHN0cmluZzcgPSAoTlNTdHJpbmcgKilbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV07Cisg
ICAgRVhQRUNUX1dLX1NUUkVRKEAiRGVsZXRlZCEiLCBzdHJpbmc3LmdldCgpKTsKIH0KIAogI2Vu
ZGlmCg==
</data>
<flag name="review"
          id="305706"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>