<?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>58700</bug_id>
          
          <creation_ts>2011-04-15 15:13:21 -0700</creation_ts>
          <short_desc>With PAN_SCROLLING, mousedown events for a mouse button aren&apos;t dispatched while pressing-and-holding another mouse button</short_desc>
          <delta_ts>2011-04-18 20:21:22 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</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>14845</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>aroben</cc>
    
    <cc>fishd</cc>
    
    <cc>pkasting</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>386972</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-04-15 15:13:21 -0700</bug_when>
    <thetext>On platforms that build with PAN_SCROLLING enabled (this includes all Windows ports), mousedown events aren&apos;t fired while pressing and holding another mouse button. For example, suppose you press and hold on an DOM element with the left mouse button and then press the right mouse button. Disregarding mousemove events, the following events are fired (in order): mousedown (left mouse button). But, we should have fired the following events (in order): mousedown (left mouse button), mousedown (right mouse button).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386997</commentid>
    <comment_count>1</comment_count>
      <attachid>89867</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-04-15 15:53:29 -0700</bug_when>
    <thetext>Created attachment 89867
Patch and layout test

While working on this patch I noticed that we could increase our test coverage for pan scrolling. I filed bug #58702 for one such layout test we could add.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387001</commentid>
    <comment_count>2</comment_count>
      <attachid>89868</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-04-15 16:01:10 -0700</bug_when>
    <thetext>Created attachment 89868
Self-contained Layout Test

For convenience, a self-contained version of the layout test included in the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388258</commentid>
    <comment_count>3</comment_count>
      <attachid>89867</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-04-18 20:21:16 -0700</bug_when>
    <thetext>Comment on attachment 89867
Patch and layout test

Clearing flags on attachment: 89867

Committed r84217: &lt;http://trac.webkit.org/changeset/84217&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388259</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-04-18 20:21:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89867</attachid>
            <date>2011-04-15 15:53:29 -0700</date>
            <delta_ts>2011-04-18 20:21:16 -0700</delta_ts>
            <desc>Patch and layout test</desc>
            <filename>Bug58700.patch</filename>
            <type>text/plain</type>
            <size>14024</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg0MDM5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDQtMTUgIERhbmllbCBC
YXRlcyAgPGRiYXRlc0ByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdpdGggUEFOX1NDUk9MTElORywgbW91c2Vkb3duIGV2ZW50cyBmb3Ig
YSBtb3VzZSBidXR0b24gYXJlbid0IGRpc3BhdGNoZWQgd2hpbGUKKyAgICAgICAgcHJlc3Npbmct
YW5kLWhvbGRpbmcgYW5vdGhlciBtb3VzZSBidXR0b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4NzAwCisKKyAgICAgICAgRml4ZXMgYW4gaXNzdWUg
d2hlcmUgbW91c2Vkb3duIGV2ZW50cyB3ZXJlbid0IGRpc3BhdGNoZWQgd2hlbiBwcmVzc2luZyBh
IG1vdXNlIGJ1dHRvbiBBCisgICAgICAgIHdoaWxlIHByZXNzaW5nIGFuZCBob2xkaW5nIGEgbW91
c2UgYnV0dG9uIEIsIHdoZXJlIEEgIT0gQi4gVGhpcyBpc3N1ZSBvbmx5IGFmZmVjdHMgYnVpbGRz
CisgICAgICAgIHRoYXQgZW5hYmxlIFBBTl9TQ1JPTExJTkcuCisKKyAgICAgICAgT24gbW91c2Ug
cHJlc3Mgd2l0aCBhdXRvc2Nyb2xsIGluIHByb2dyZXNzIChtX2F1dG9zY3JvbGxJblByb2dyZXNz
ID09IHRydWUpIHdlIHN0b3BwZWQKKyAgICAgICAgdGhlIGF1dG9zY3JvbGwgdGltZXIsIGludmFs
aWRhdGVkIHRoZSBjbGljaywgYW5kIHN3YWxsb3dlZCB0aGUgbW91c2UgcHJlc3MuIEluc3RlYWQs
IHdlCisgICAgICAgIHNob3VsZCBvbmx5IHN0b3AgdGhlIGF1dG9zY3JvbGwgdGltZXIuCisKKyAg
ICAgICAgVGVzdDogZmFzdC9ldmVudHMvZmlyZS1tb3VzZWRvd24td2hpbGUtcHJlc3NpbmctbW91
c2UtYnV0dG9uLmh0bWwKKworICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50KToKKwogMjAx
MS0wNC0xNSAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwCShyZXZpc2lvbiA4MzkxNikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM3NSw5ICsxMzc1LDE0IEBAIGJvb2wgRXZl
bnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQKICAgICB9CiAKICNpZiBFTkFCTEUoUEFO
X1NDUk9MTElORykKLSAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOwotICAgIGlmICgo
cGFnZSAmJiBwYWdlLT5tYWluRnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPnBhblNjcm9sbEluUHJv
Z3Jlc3MoKSkgfHwgbV9hdXRvc2Nyb2xsSW5Qcm9ncmVzcykgeworICAgIC8vIFdlIHN0b3JlIHdo
ZXRoZXIgcGFuIHNjcm9sbGluZyBpcyBpbiBwcm9ncmVzcyBiZWZvcmUgY2FsbGluZyBzdG9wQXV0
b3Njcm9sbFRpbWVyKCkKKyAgICAvLyBiZWNhdXNlIGl0IHdpbGwgc2V0IG1fcGFuU2Nyb2xsSW5Q
cm9ncmVzcyB0byBmYWxzZSBvbiByZXR1cm4uCisgICAgYm9vbCBpc1BhblNjcm9sbEluUHJvZ3Jl
c3MgPSBtX2ZyYW1lLT5wYWdlKCkgJiYgbV9mcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKS0+ZXZl
bnRIYW5kbGVyKCktPnBhblNjcm9sbEluUHJvZ3Jlc3MoKTsKKyAgICBpZiAoaXNQYW5TY3JvbGxJ
blByb2dyZXNzIHx8IG1fYXV0b3Njcm9sbEluUHJvZ3Jlc3MpCiAgICAgICAgIHN0b3BBdXRvc2Ny
b2xsVGltZXIoKTsKKyAgICBpZiAoaXNQYW5TY3JvbGxJblByb2dyZXNzKSB7CisgICAgICAgIC8v
IFdlIGludmFsaWRhdGUgdGhlIGNsaWNrIHdoZW4gZXhpdGluZyBwYW4gc2Nyb2xsaW5nIHNvIHRo
YXQgd2UgZG9uJ3QgaW5hZHZlcnRlbnRseSBuYXZpZ2F0ZQorICAgICAgICAvLyBhd2F5IGZyb20g
dGhlIGN1cnJlbnQgcGFnZSAoZS5nLiB0aGUgY2xpY2sgd2FzIG9uIGEgaHlwZXJsaW5rKS4gU2Vl
IDxyZGFyOi8vcHJvYmxlbS82MDk1MDIzPi4KICAgICAgICAgaW52YWxpZGF0ZUNsaWNrKCk7CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDg0MDM5KQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTEtMDQtMTUgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdpdGggUEFOX1NDUk9MTElORywgbW91
c2Vkb3duIGV2ZW50cyBmb3IgYSBtb3VzZSBidXR0b24gYXJlbid0IGRpc3BhdGNoZWQgd2hpbGUK
KyAgICAgICAgcHJlc3NpbmctYW5kLWhvbGRpbmcgYW5vdGhlciBtb3VzZSBidXR0b24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4NzAwCisKKyAgICAg
ICAgVGVzdCB0byBlbnN1cmUgdGhhdCBhIG1vdXNlZG93biBldmVudCBpcyBmaXJlZCB3aGVuIHBy
ZXNzaW5nIGEgbW91c2UgYnV0dG9uIEEKKyAgICAgICAgd2hpbGUgcHJlc3NpbmcgYW5kIGhvbGRp
bmcgYSBtb3VzZSBidXR0b24gQiwgd2hlcmUgQSAhPSBCLgorCisgICAgICAgICogZmFzdC9ldmVu
dHMvZmlyZS1tb3VzZWRvd24td2hpbGUtcHJlc3NpbmctbW91c2UtYnV0dG9uLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvZmlyZS1tb3VzZWRvd24td2hpbGUtcHJl
c3NpbmctbW91c2UtYnV0dG9uLmh0bWw6IEFkZGVkLgorCiAyMDExLTA0LTE1ICBNT1JJVEEgSGFq
aW1lICA8bW9ycml0YUBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkg
R2xhemtvdi4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ZpcmUtbW91c2Vkb3duLXdo
aWxlLXByZXNzaW5nLW1vdXNlLWJ1dHRvbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvZmlyZS1tb3VzZWRvd24td2hpbGUtcHJlc3NpbmctbW91c2Ut
YnV0dG9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL2ZpcmUtbW91c2Vkb3duLXdoaWxlLXByZXNzaW5nLW1vdXNlLWJ1dHRvbi1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjEgQEAKK1RoaXMgdGVzdCB2ZXJpZmllcyB0aGF0
IHdlIGZpcmUgYSBtb3VzZWRvd24gZXZlbnQgd2hlbmV2ZXIgcHJlc3NpbmcgYW5kIGhvbGRpbmcg
YSBtb3VzZSBidXR0b24gQSB3aGlsZSBzaW11bHRhbmVvdXNseSBjbGlja2luZyB3aXRoIG1vdXNl
IGJ1dHRvbiBCLCB3aGVyZSBBICE9IEIuCitGb3IgZWFjaCBtb3VzZSBidXR0b24gdGhhdCBpcyBw
cmVzc2VkIGFuZCBoZWxkLCBpdGVyYXRlcyB0aHJvdWdoIHRoZSBwb3NzaWJsZSBzZWNvbmQgbW91
c2UgYnV0dG9ucyB0aGF0IGNhbiBiZSBjbGlja2VkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyByZWNlaXZlZCBtb3VzZWRvd24gZm9yIHRoZSBtaWRkbGUgbW91c2UgYnV0
dG9uIHdoaWxlIHByZXNzaW5nIHRoZSBsZWZ0IG1vdXNlIGJ1dHRvbi4KK1BBU1MgcmVjZWl2ZWQg
bW91c2Vkb3duIGZvciB0aGUgcmlnaHQgbW91c2UgYnV0dG9uIHdoaWxlIHByZXNzaW5nIHRoZSBs
ZWZ0IG1vdXNlIGJ1dHRvbi4KKworV2hlbiBwcmVzc2luZyBhbmQgaG9sZGluZyB0aGUgIm1pZGRs
ZSBtb3VzZSBidXR0b24iCisKK1BBU1MgcmVjZWl2ZWQgbW91c2Vkb3duIGZvciB0aGUgbGVmdCBt
b3VzZSBidXR0b24gd2hpbGUgcHJlc3NpbmcgdGhlIG1pZGRsZSBtb3VzZSBidXR0b24uCitQQVNT
IHJlY2VpdmVkIG1vdXNlZG93biBmb3IgdGhlIHJpZ2h0IG1vdXNlIGJ1dHRvbiB3aGlsZSBwcmVz
c2luZyB0aGUgbWlkZGxlIG1vdXNlIGJ1dHRvbi4KKworV2hlbiBwcmVzc2luZyBhbmQgaG9sZGlu
ZyB0aGUgInJpZ2h0IG1vdXNlIGJ1dHRvbiIKKworUEFTUyByZWNlaXZlZCBtb3VzZWRvd24gZm9y
IHRoZSBsZWZ0IG1vdXNlIGJ1dHRvbiB3aGlsZSBwcmVzc2luZyB0aGUgcmlnaHQgbW91c2UgYnV0
dG9uLgorUEFTUyByZWNlaXZlZCBtb3VzZWRvd24gZm9yIHRoZSBtaWRkbGUgbW91c2UgYnV0dG9u
IHdoaWxlIHByZXNzaW5nIHRoZSByaWdodCBtb3VzZSBidXR0b24uCisKK1RFU1QgQ09NUExFVEUK
KwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZmlyZS1tb3VzZWRvd24td2hpbGUtcHJl
c3NpbmctbW91c2UtYnV0dG9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvZmlyZS1tb3VzZWRvd24td2hpbGUtcHJlc3NpbmctbW91c2UtYnV0dG9uLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9maXJlLW1vdXNlZG93bi13aGls
ZS1wcmVzc2luZy1tb3VzZS1idXR0b24uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMTQg
QEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyNzcXVhcmUgeworICAgIGRpc3Bs
YXk6IHRhYmxlLWNlbGw7CisgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKKyAgICBiYWNrZ3Jv
dW5kOiBibHVlOworICAgIHdpZHRoOiAxMjhweDsKKyAgICBoZWlnaHQ6IDEyOHB4OworICAgIGNv
bG9yOiB3aGl0ZTsKKyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAgcGFkZGluZzogMTBweDsK
KyAgICBjdXJzb3I6IGRlZmF1bHQ7CisgICAgLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7CisgICAg
LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgordmFyIGRp
ZEZpcmVNb3VzZWRvd25Gb3JGaXJzdE1vdXNlQnV0dG9uOwordmFyIGRpZEZpcmVNb3VzZWRvd25G
b3JTZWNvbmRNb3VzZUJ1dHRvbjsKK3ZhciBmaXJzdE1vdXNlQnV0dG9uRWxlbTsKK3ZhciBwcmV2
aW91c2x5Q2hvc2VuRmlyc3RNb3VzZUJ1dHRvbiA9IDA7Cit2YXIgc2Vjb25kTW91c2VCdXR0b25F
bGVtOwordmFyIHNxdWFyZTsKKworLy8gRXh0cmFjdGVkIGZyb20gdGhlIERPTSBMZXZlbCAzIEV2
ZW50cyBNb3VzZSBFdmVudCBUeXBlcyBzZWN0aW9uIDxodHRwOi8vd3d3LnczLm9yZy9UUi9ET00t
TGV2ZWwtMy1FdmVudHMvI2V2ZW50cy1Nb3VzZUV2ZW50LWJ1dHRvbj4uCit2YXIgTGVmdE1vdXNl
QnV0dG9uID0gMDsKK3ZhciBNaWRkbGVNb3VzZUJ1dHRvbiA9IDE7Cit2YXIgUmlnaHRNb3VzZUJ1
dHRvbiA9IDI7CisKK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpCit7CisgICAgZmlyc3RNb3Vz
ZUJ1dHRvbkVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlyc3RNb3VzZUJ1dHRvbiIp
OworICAgIHNlY29uZE1vdXNlQnV0dG9uRWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJz
ZWNvbmRNb3VzZUJ1dHRvbiIpOworICAgIGZpcnN0TW91c2VCdXR0b25FbGVtLm9uY2hhbmdlID0g
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBkaXNhYmxlSWxsb2dpY2FsU2Vjb25kTW91c2VCdXR0
b25PcHRpb25zKCk7IAorICAgICAgICAgICAgcmVzZXRUZXN0KCk7CisgICAgfQorICAgIHNlY29u
ZE1vdXNlQnV0dG9uRWxlbS5vbmNoYW5nZSA9IHJlc2V0VGVzdDsKKworICAgIHNxdWFyZSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcXVhcmUiKTsKKyAgICBzcXVhcmUub25tb3VzZWRvd24g
PSBjaGVja0lmRG9uZU9uTW91c2VEb3duOworICAgIHNxdWFyZS5vbm1vdXNldXAgPSBjaGVja0lm
RG9uZU9uTW91c2VVcDsKKyAgICBzcXVhcmUub25jb250ZXh0bWVudSA9IGNhbmNlbENvbnRleHRN
ZW51OworICAgIHJlc2V0VGVzdCgpOworICAgIHJ1blRlc3QoKTsKK30KKworZnVuY3Rpb24gdG9J
RU1vdXNlQnV0dG9uKHczY0J1dHRvbikKK3sKKyAgICBzd2l0Y2ggKHczY0J1dHRvbikgeworICAg
IGNhc2UgTGVmdE1vdXNlQnV0dG9uOgorICAgICAgICByZXR1cm4gMTsKKyAgICBjYXNlIE1pZGRs
ZU1vdXNlQnV0dG9uOgorICAgICAgICByZXR1cm4gNDsKKyAgICBjYXNlIFJpZ2h0TW91c2VCdXR0
b246CisgICAgICAgIHJldHVybiAyOworICAgIH0KKyAgICByZXR1cm47IC8vIFdlIHNob3VsZG4n
dCBnZXQgaGVyZS4KK30KKworZnVuY3Rpb24gc2hvcnRNb3VzZUJ1dHRvbk5hbWUodzNjQnV0dG9u
KQoreworICAgIHN3aXRjaCAodzNjQnV0dG9uKSB7CisgICAgY2FzZSBMZWZ0TW91c2VCdXR0b246
CisgICAgICAgIHJldHVybiAibGVmdCI7CisgICAgY2FzZSBNaWRkbGVNb3VzZUJ1dHRvbjoKKyAg
ICAgICAgcmV0dXJuICJtaWRkbGUiOworICAgIGNhc2UgUmlnaHRNb3VzZUJ1dHRvbjoKKyAgICAg
ICAgcmV0dXJuICJyaWdodCI7CisgICAgfQorICAgIHJldHVybjsgLy8gV2Ugc2hvdWxkbid0IGdl
dCBoZXJlLgorfQorCitmdW5jdGlvbiBtb3VzZUJ1dHRvbk5hbWUodzNjQnV0dG9uKQoreworICAg
IHJldHVybiBzaG9ydE1vdXNlQnV0dG9uTmFtZSh3M2NCdXR0b24pICsgIiBtb3VzZSBidXR0b24i
OworfQorCitmdW5jdGlvbiBjYW5jZWxDb250ZXh0TWVudShldmVudCkKK3sKKyAgICBldmVudCA9
IGV2ZW50IHx8IHdpbmRvdy5ldmVudDsKKyAgICBpZiAoZXZlbnQucHJldmVudERlZmF1bHQpCisg
ICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgZWxzZSB7CisgICAgICAgIC8vIEFz
c3VtZSB0aGlzIHNjcmlwdCBpcyBleGVjdXRpbmcgd2l0aGluIEludGVybmV0IEV4cGxvcmVyLgor
ICAgICAgICBldmVudC5yZXR1cm5WYWx1ZSA9IGZhbHNlOworICAgIH0KK30KKworZnVuY3Rpb24g
Y2hlY2tJZkRvbmVPbk1vdXNlRG93bihldmVudCkKK3sKKyAgICB2YXIgcHJlc3NlZEJ1dHRvbnM7
IC8vIEEgYml0bWFzayB0aGF0IHJlcHJlc2VudHMgdGhlIGNvbWJpbmF0aW9uIG9mIGJ1dHRvbnMg
dGhhdCBhcmUgY3VycmVudGx5IGJlaW5nIHByZXNzZWQuCisgICAgaWYgKGV2ZW50ICYmIGV2ZW50
LmJ1dHRvbnMpCisgICAgICAgIHByZXNzZWRCdXR0b25zID0gZXZlbnQuYnV0dG9uczsgLy8gRE9N
IExldmVsIDMgRXZlbnRzIChXb3JraW5nIERyYWZ0IDA3IFNlcHRlbWJlciAyMDEwKS4KKyAgICBl
bHNlIGlmIChldmVudCkgeworICAgICAgICAvLyBGb3IgYnJvd3NlcnMgdGhhbiBkb24ndCBzdXBw
b3J0IGV2ZW50LmJ1dHRvbnMgKG9yIElFJ3Mgd2luZG93LmV2ZW50LmJ1dHRvbikgd2UgY29udmVy
dCBldmVudC5idXR0b24gdG8KKyAgICAgICAgLy8gdGhlIGNvcnJlc3BvbmRpbmcgYml0bWFzayB0
byBzaW1wbGlmeSB0aGUgbG9naWMgYmVsb3cuCisgICAgICAgIHByZXNzZWRCdXR0b25zID0gdG9J
RU1vdXNlQnV0dG9uKGV2ZW50LmJ1dHRvbik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gQXNz
dW1lIHRoaXMgc2NyaXB0IGlzIHJ1bm5pbmcgd2l0aGluIEludGVybmV0IEV4cGxvcmVyLgorICAg
ICAgICBwcmVzc2VkQnV0dG9ucyA9IHdpbmRvdy5ldmVudC5idXR0b247CisgICAgfQorCisgICAg
dmFyIGNob3NlbkZpcnN0TW91c2VCdXR0b24gPSBmaXJzdE1vdXNlQnV0dG9uRWxlbS5zZWxlY3Rl
ZEluZGV4OworICAgIHZhciBjaG9zZW5TZWNvbmRNb3VzZUJ1dHRvbiA9IHNlY29uZE1vdXNlQnV0
dG9uRWxlbS5zZWxlY3RlZEluZGV4OworICAgIGlmICghZGlkRmlyZU1vdXNlZG93bkZvckZpcnN0
TW91c2VCdXR0b24gJiYgKHByZXNzZWRCdXR0b25zICYgdG9JRU1vdXNlQnV0dG9uKGNob3NlbkZp
cnN0TW91c2VCdXR0b24pKSA9PSB0b0lFTW91c2VCdXR0b24oY2hvc2VuRmlyc3RNb3VzZUJ1dHRv
bikpIHsKKyAgICAgICAgZGlkRmlyZU1vdXNlZG93bkZvckZpcnN0TW91c2VCdXR0b24gPSB0cnVl
OworICAgICAgICBzcXVhcmUuaW5uZXJIVE1MID0gIk5vdywgIiArIHNob3J0TW91c2VCdXR0b25O
YW1lKGNob3NlblNlY29uZE1vdXNlQnV0dG9uKSArICIgY2xpY2siOworICAgIH0gZWxzZSBpZiAo
ZGlkRmlyZU1vdXNlZG93bkZvckZpcnN0TW91c2VCdXR0b24gJiYgKHByZXNzZWRCdXR0b25zICYg
dG9JRU1vdXNlQnV0dG9uKGNob3NlblNlY29uZE1vdXNlQnV0dG9uKSkgPT0gdG9JRU1vdXNlQnV0
dG9uKGNob3NlblNlY29uZE1vdXNlQnV0dG9uKSkKKyAgICAgICAgZGlkRmlyZU1vdXNlZG93bkZv
clNlY29uZE1vdXNlQnV0dG9uID0gdHJ1ZTsKKyAgICBpZiAoZGlkRmlyZU1vdXNlZG93bkZvckZp
cnN0TW91c2VCdXR0b24gJiYgZGlkRmlyZU1vdXNlZG93bkZvclNlY29uZE1vdXNlQnV0dG9uKSB7
CisgICAgICAgIHRlc3RQYXNzZWQoInJlY2VpdmVkIG1vdXNlZG93biBmb3IgdGhlICIgKyBtb3Vz
ZUJ1dHRvbk5hbWUoY2hvc2VuU2Vjb25kTW91c2VCdXR0b24pICsgIiB3aGlsZSBwcmVzc2luZyB0
aGUgIiArIG1vdXNlQnV0dG9uTmFtZShjaG9zZW5GaXJzdE1vdXNlQnV0dG9uKSArICIuIik7Cisg
ICAgICAgIHJlc2V0VGVzdCgpOworICAgIH0KK30KKworZnVuY3Rpb24gY2hlY2tJZkRvbmVPbk1v
dXNlVXAoKQoreworICAgIGlmIChkaWRGaXJlTW91c2Vkb3duRm9yRmlyc3RNb3VzZUJ1dHRvbiAm
JiAhZGlkRmlyZU1vdXNlZG93bkZvclNlY29uZE1vdXNlQnV0dG9uKSB7CisgICAgICAgIC8vIFdp
dGhvdXQgbG9zcyBvZiBnZW5lcmFsaXR5LCBlaXRoZXIgdGhlIG1vdXNlZG93biBmb3IgdGhlIHJp
Z2h0IGJ1dHRvbiBidXR0b24gd2Fzbid0CisgICAgICAgIC8vIGRpc3BhdGNoZWQgb3IgdGhlIHVz
ZXIgZGlkbid0IHByZXNzIHRoZSByaWdodCBtb3VzZSBidXR0b24gd2hpbGUgcHJlc3NpbmcgbGVm
dCBtb3VzZSBidXR0b24uCisgICAgICAgIHZhciBjaG9zZW5GaXJzdE1vdXNlQnV0dG9uID0gZmly
c3RNb3VzZUJ1dHRvbkVsZW0uc2VsZWN0ZWRJbmRleDsKKyAgICAgICAgdmFyIGNob3NlblNlY29u
ZE1vdXNlQnV0dG9uID0gc2Vjb25kTW91c2VCdXR0b25FbGVtLnNlbGVjdGVkSW5kZXg7CisgICAg
ICAgIHRlc3RGYWlsZWQoImRpZG4ndCByZWNlaXZlIG1vdXNlZG93biBmb3IgdGhlICIgKyBtb3Vz
ZUJ1dHRvbk5hbWUoY2hvc2VuU2Vjb25kTW91c2VCdXR0b24pICsgIiB3aGlsZSBwcmVzc2luZyB0
aGUgIiArIG1vdXNlQnV0dG9uTmFtZShjaG9zZW5GaXJzdE1vdXNlQnV0dG9uKSArICIuIik7Cisg
ICAgICAgIHJlc2V0VGVzdCgpOworICAgIH0KK30KKworZnVuY3Rpb24gcmVzZXRUZXN0KCkKK3sK
KyAgICBkaWRGaXJlTW91c2Vkb3duRm9yRmlyc3RNb3VzZUJ1dHRvbiA9IGZhbHNlOworICAgIGRp
ZEZpcmVNb3VzZWRvd25Gb3JTZWNvbmRNb3VzZUJ1dHRvbiA9IGZhbHNlOworICAgIHNxdWFyZS5p
bm5lckhUTUwgPSAiUHJlc3MgYW5kIGhvbGQgdGhlICIgKyBtb3VzZUJ1dHRvbk5hbWUoZmlyc3RN
b3VzZUJ1dHRvbkVsZW0uc2VsZWN0ZWRJbmRleCkgKyAiIG9uIG1lIjsKK30KKworZnVuY3Rpb24g
ZGlzYWJsZUlsbG9naWNhbFNlY29uZE1vdXNlQnV0dG9uT3B0aW9ucygpCit7CisgICAgc2Vjb25k
TW91c2VCdXR0b25FbGVtLm9wdGlvbnNbcHJldmlvdXNseUNob3NlbkZpcnN0TW91c2VCdXR0b25d
LmRpc2FibGVkID0gZmFsc2U7CisgICAgaWYgKGZpcnN0TW91c2VCdXR0b25FbGVtLnNlbGVjdGVk
SW5kZXggPT09IHNlY29uZE1vdXNlQnV0dG9uRWxlbS5zZWxlY3RlZEluZGV4KQorICAgICAgICBz
ZWNvbmRNb3VzZUJ1dHRvbkVsZW0ub3B0aW9uc1soc2Vjb25kTW91c2VCdXR0b25FbGVtLnNlbGVj
dGVkSW5kZXggKyAxKSAlIHNlY29uZE1vdXNlQnV0dG9uRWxlbS5sZW5ndGhdLnNlbGVjdGVkID0g
dHJ1ZTsKKyAgICBzZWNvbmRNb3VzZUJ1dHRvbkVsZW0ub3B0aW9uc1tmaXJzdE1vdXNlQnV0dG9u
RWxlbS5zZWxlY3RlZEluZGV4XS5kaXNhYmxlZCA9IHRydWU7CisgICAgcHJldmlvdXNseUNob3Nl
bkZpcnN0TW91c2VCdXR0b24gPSBmaXJzdE1vdXNlQnV0dG9uRWxlbS5zZWxlY3RlZEluZGV4Owor
fQorCitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikK
KyAgICAgICAgcmV0dXJuOworCisgICAgdmFyIG51bUZpcnN0TW91c2VCdXR0b25PcHRpb25zID0g
Zmlyc3RNb3VzZUJ1dHRvbkVsZW0ub3B0aW9ucy5sZW5ndGg7CisgICAgdmFyIG51bVNlY29uZE1v
dXNlQnV0dG9uT3B0aW9ucyA9IHNlY29uZE1vdXNlQnV0dG9uRWxlbS5vcHRpb25zLmxlbmd0aDsK
KyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzcXVhcmUub2Zmc2V0TGVmdCArIDEwLCBzcXVh
cmUub2Zmc2V0VG9wICsgMTApOworICAgIHZhciBmaXJzdE1vdXNlQnV0dG9uID0gMDsKKyAgICB2
YXIgc2Vjb25kTW91c2VCdXR0b24gPSAwOworICAgIHdoaWxlIChmaXJzdE1vdXNlQnV0dG9uIDwg
bnVtRmlyc3RNb3VzZUJ1dHRvbk9wdGlvbnMpIHsKKyAgICAgICAgaWYgKGZpcnN0TW91c2VCdXR0
b24gPT09IHNlY29uZE1vdXNlQnV0dG9uKQorICAgICAgICAgICAgKytzZWNvbmRNb3VzZUJ1dHRv
bjsKKyAgICAgICAgaWYgKHNlY29uZE1vdXNlQnV0dG9uID49IG51bVNlY29uZE1vdXNlQnV0dG9u
T3B0aW9ucykgeworICAgICAgICAgICAgKytmaXJzdE1vdXNlQnV0dG9uOworICAgICAgICAgICAg
c2Vjb25kTW91c2VCdXR0b24gPSAwOworICAgICAgICB9CisgICAgICAgIGlmIChmaXJzdE1vdXNl
QnV0dG9uID49IG51bUZpcnN0TW91c2VCdXR0b25PcHRpb25zKQorICAgICAgICAgICAgYnJlYWs7
CisKKyAgICAgICAgZmlyc3RNb3VzZUJ1dHRvbkVsZW0ub3B0aW9uc1tmaXJzdE1vdXNlQnV0dG9u
XS5zZWxlY3RlZCA9IHRydWU7CisgICAgICAgIHNlY29uZE1vdXNlQnV0dG9uRWxlbS5vcHRpb25z
W3NlY29uZE1vdXNlQnV0dG9uXS5zZWxlY3RlZCA9IHRydWU7CisgICAgICAgIGlmIChzZWNvbmRN
b3VzZUJ1dHRvbiAlIG51bVNlY29uZE1vdXNlQnV0dG9uT3B0aW9ucyA9PT0gMCkKKyAgICAgICAg
ICAgIGRlYnVnKCc8YnIgLz5XaGVuIHByZXNzaW5nIGFuZCBob2xkaW5nIHRoZSAiJyArIG1vdXNl
QnV0dG9uTmFtZShmaXJzdE1vdXNlQnV0dG9uKSArICciPGJyIC8+Jyk7CisgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlRG93bihmaXJzdE1vdXNlQnV0dG9uKTsKKyAgICAgICAgZXZlbnRTZW5kZXIu
bGVhcEZvcndhcmQoMTAwKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKHNlY29uZE1v
dXNlQnV0dG9uKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcChzZWNvbmRNb3VzZUJ1dHRv
bik7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoZmlyc3RNb3VzZUJ1dHRvbik7CisgICAg
ICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDEwMCk7CisgICAgICAgICsrc2Vjb25kTW91c2VC
dXR0b247CisgICAgICAgIHJlc2V0VGVzdCgpOyAvLyBXZSByZXNldCB0aGUgdGVzdCBoZXJlIGlu
IGNhc2UgbmVpdGhlciBhIG1vdXNlZG93biBub3IgbW91c2V1cCBldmVudCB3YXMgZmlyZWQuCisg
ICAgfQorICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRlc3QtY29udGFpbmVyIikpOworICAgIGRlYnVnKCc8YnIgLz48c3BhbiBjbGFzcz0icGFz
cyI+VEVTVCBDT01QTEVURTwvc3Bhbj4nKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9InRlc3QtY29udGFpbmVyIj4KKyAg
ICA8cD5Ob3RlOiBFbnN1cmUgbW91c2UgZ2VzdHVyZXMgYXJlIGRpc2FibGVkIHdoZW4gcnVubmlu
ZyB0aGlzIHRlc3QgaW4gT3BlcmEuIEluIE9wZXJhIDExLjEwIHlvdSBjYW4gZGlzYWJsZSBnZXN0
dXJlcyBieSBzZWxlY3RpbmcgT3BlcmEgPiBQcmVmZXJlbmNlcyA+IEFkdmFuY2VkID4gU2hvcnRj
dXRzLiBUaGVuIHVuY2hlY2sgRW5hYmxlIG1vdXNlIGdlc3R1cmVzLiBBbHNvLCB0byB0ZXN0ICZx
dW90O3ByZXNzaW5nLWFuZC1ob2xkaW5nIHRoZSByaWdodCBtb3VzZSBidXR0b24gdGhlbiBjbGlj
a2luZyB0aGUgbGVmdCBtb3VzZSZxdW90OyAoKikgZW5zdXJlIHRoYXQgRW5hYmxlIE1vdXNlIEZs
aXBzIGlzIGRpc2FibGVkLiBUbyBkaXNhYmxlIGl0IG9wZW4gPGEgaHJlZj0ib3BlcmE6Y29uZmln
IiB0YXJnZXQ9Il9ibGFuayI+b3BlcmE6Y29uZmlnPC9hPiB0aGVuIHNlYXJjaCBmb3IgJnF1b3Q7
RW5hYmxlIE1vdXNlIEZsaXBzJnF1b3Q7IGFuZCB1bmNoZWNrIGl0LiBBcyBvZiAwNC8xNS8yMDEx
LCBmb3Igc29tZSByZWFzb24gKCopIG5laXRoZXIgPHNwYW4gY2xhc3M9InBhc3MiPlBBU1M8L3Nw
YW4+ZXMgbm9yIDxzcGFuIGNsYXNzPSJmYWlsIj5GQUlMPC9zcGFuPnMuPC9wPgorICAgIDwhLS0g
VGhlIDxvcHRpb24+cyBpbiB0aGVzZSA8c2VsZWN0PnMgYXJlIGV4cGxpY2l0bHkgb3JkZXJlZCB0
byBtYXRjaCB0aGUgRE9NIExldmVsIDMgRXZlbnRzIG1vdXNlIGJ1dHRvbiB2YWx1ZXMgZm9yIExl
ZnQsIE1pZGRsZSwgYW5kIFJpZ2h0IG1vdXNlIGJ1dHRvbnMuIC0tPgorICAgIDxsYWJlbCBmb3I9
ImZpcnN0TW91c2VCdXR0b24iPldpbGwgcHJlc3MgYW5kIGhvbGQ8L2xhYmVsPiA8c2VsZWN0IGlk
PSJmaXJzdE1vdXNlQnV0dG9uIj4KKyAgICAgICAgPG9wdGlvbj5MZWZ0IG1vdXNlIGJ1dHRvbjwv
b3B0aW9uPgorICAgICAgICA8b3B0aW9uPk1pZGRsZSBtb3VzZSBidXR0b248L29wdGlvbj4KKyAg
ICAgICAgPG9wdGlvbj5SaWdodCBtb3VzZSBidXR0b248L29wdGlvbj4KKyAgICA8L3NlbGVjdD4K
KyAgICA8c3Bhbj5vbiBibHVlIHNxdWFyZSB0aGVuPC9zcGFuPgorICAgIDxsYWJlbCBmb3I9InNl
Y29uZE1vdXNlQnV0dG9uIj5jbGljazwvbGFiZWw+IDxzZWxlY3QgaWQ9InNlY29uZE1vdXNlQnV0
dG9uIj4KKyAgICAgICAgPG9wdGlvbiBkaXNhYmxlZD5MZWZ0IG1vdXNlIGJ1dHRvbjwvb3B0aW9u
PgorICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPk1pZGRsZSBtb3VzZSBidXR0b248L29wdGlvbj4K
KyAgICAgICAgPG9wdGlvbj5SaWdodCBtb3VzZSBidXR0b248L29wdGlvbj4KKyAgICA8L3NlbGVj
dD4KKyAgICA8YnIvPjxici8+CisgICAgPGRpdiBpZD0ic3F1YXJlIj48L2Rpdj4KKzwvZGl2Pgor
PGhyLz4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlv
bigiVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgd2UgZmlyZSBhIG1vdXNlZG93biBldmVudCB3aGVu
ZXZlciBwcmVzc2luZyBhbmQgaG9sZGluZyBhIG1vdXNlIGJ1dHRvbiBBIHdoaWxlIHNpbXVsdGFu
ZW91c2x5ICIgKworICAgICAgICAgICAgICAgICJjbGlja2luZyB3aXRoIG1vdXNlIGJ1dHRvbiBC
LCB3aGVyZSBBICE9IEIuPGJyLz4iICsKKyAgICAgICAgICAgICAgICAiRm9yIGVhY2ggbW91c2Ug
YnV0dG9uIHRoYXQgaXMgcHJlc3NlZCBhbmQgaGVsZCwgaXRlcmF0ZXMgdGhyb3VnaCB0aGUgcG9z
c2libGUgc2Vjb25kIG1vdXNlIGJ1dHRvbnMgdGhhdCBjYW4gYmUgY2xpY2tlZC4iKTsKKyAgICB2
YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>89868</attachid>
            <date>2011-04-15 16:01:10 -0700</date>
            <delta_ts>2011-04-15 16:01:10 -0700</delta_ts>
            <desc>Self-contained Layout Test</desc>
            <filename>fire-mousedown-while-pressing-mouse-button-self-contained.html</filename>
            <type>text/html</type>
            <size>17546</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8c3R5bGU+Ci5wYXNzIHsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAg
Y29sb3I6IGdyZWVuOwp9Ci5mYWlsIHsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgY29sb3I6
IHJlZDsKfQojY29uc29sZSB7CiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgICBmb250LWZh
bWlseTogbW9ub3NwYWNlOwp9Cjwvc3R5bGU+CjxzY3JpcHQ+Ci8vIHN2Zy9keW5hbWljLXVwZGF0
ZXMgdGVzdHMgc2V0IGVuYWJsZVBpeGVsVGVzdGluZz10cnVlLCBhcyB3ZSB3YW50IHRvIGR1bXAg
dGV4dCArIHBpeGVsIHJlc3VsdHMKaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQod2luZG93LmVuYWJsZVBpeGVsVGVzdGlu
Zyk7CgpmdW5jdGlvbiBkZXNjcmlwdGlvbihtc2cpCnsKICAgIC8vIEZvciBNU0lFIDYgY29tcGF0
aWJpbGl0eQogICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiAg
ICBzcGFuLmlubmVySFRNTCA9ICc8cD4nICsgbXNnICsgJzwvcD48cD5PbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIjxzcGFuIGNsYXNzPSJwYXNzIj5QQVNTPC9zcGFuPiIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICI8c3BhbiBjbGFzcz0icGFzcyI+VEVTVCBDT01QTEVURTwvc3Bh
bj4iLjwvcD4nOwogICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImRlc2NyaXB0aW9uIik7CiAgICBpZiAoZGVzY3JpcHRpb24uZmlyc3RDaGlsZCkKICAgICAgICBk
ZXNjcmlwdGlvbi5yZXBsYWNlQ2hpbGQoc3BhbiwgZGVzY3JpcHRpb24uZmlyc3RDaGlsZCk7CiAg
ICBlbHNlCiAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQoc3Bhbik7Cn0KCmZ1bmN0aW9u
IGRlYnVnKG1zZykKewogICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFu
Iik7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHNw
YW4pOyAvLyBpbnNlcnQgaXQgZmlyc3Qgc28gWEhUTUwga25vd3MgdGhlIG5hbWVzcGFjZQogICAg
c3Bhbi5pbm5lckhUTUwgPSBtc2cgKyAnPGJyIC8+JzsKfQoKZnVuY3Rpb24gZXNjYXBlSFRNTCh0
ZXh0KQp7CiAgICByZXR1cm4gdGV4dC5yZXBsYWNlKC8mL2csICImYW1wOyIpLnJlcGxhY2UoLzwv
ZywgIiZsdDsiKS5yZXBsYWNlKC9cMC9nLCAiXFwwIik7Cn0KCmZ1bmN0aW9uIHRlc3RQYXNzZWQo
bXNnKQp7CiAgICBkZWJ1ZygnPHNwYW4+PHNwYW4gY2xhc3M9InBhc3MiPlBBU1M8L3NwYW4+ICcg
KyBlc2NhcGVIVE1MKG1zZykgKyAnPC9zcGFuPicpOwp9CgpmdW5jdGlvbiB0ZXN0RmFpbGVkKG1z
ZykKewogICAgZGVidWcoJzxzcGFuPjxzcGFuIGNsYXNzPSJmYWlsIj5GQUlMPC9zcGFuPiAnICsg
ZXNjYXBlSFRNTChtc2cpICsgJzwvc3Bhbj4nKTsKfQoKZnVuY3Rpb24gYXJlQXJyYXlzRXF1YWwo
X2EsIF9iKQp7CiAgICB0cnkgewogICAgICAgIGlmIChfYS5sZW5ndGggIT09IF9iLmxlbmd0aCkK
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgX2Eu
bGVuZ3RoOyBpKyspCiAgICAgICAgICAgIGlmIChfYVtpXSAhPT0gX2JbaV0pCiAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICB9IGNhdGNoIChleCkgewogICAgICAgIHJldHVybiBmYWxz
ZTsKICAgIH0KICAgIHJldHVybiB0cnVlOwp9CgpmdW5jdGlvbiBpc01pbnVzWmVybyhuKQp7CiAg
ICAvLyB0aGUgb25seSB3YXkgdG8gdGVsbCAwIGZyb20gLTAgaW4gSlMgaXMgdGhlIGZhY3QgdGhh
dCAxLy0wIGlzCiAgICAvLyAtSW5maW5pdHkgaW5zdGVhZCBvZiBJbmZpbml0eQogICAgcmV0dXJu
IG4gPT09IDAgJiYgMS9uIDwgMDsKfQoKZnVuY3Rpb24gaXNSZXN1bHRDb3JyZWN0KF9hY3R1YWws
IF9leHBlY3RlZCkKewogICAgaWYgKF9leHBlY3RlZCA9PT0gMCkKICAgICAgICByZXR1cm4gX2Fj
dHVhbCA9PT0gX2V4cGVjdGVkICYmICgxL19hY3R1YWwpID09PSAoMS9fZXhwZWN0ZWQpOwogICAg
aWYgKF9hY3R1YWwgPT09IF9leHBlY3RlZCkKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIGlmICh0
eXBlb2YoX2V4cGVjdGVkKSA9PSAibnVtYmVyIiAmJiBpc05hTihfZXhwZWN0ZWQpKQogICAgICAg
IHJldHVybiB0eXBlb2YoX2FjdHVhbCkgPT0gIm51bWJlciIgJiYgaXNOYU4oX2FjdHVhbCk7CiAg
ICBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKF9leHBlY3RlZCkgPT0gT2JqZWN0
LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFtdKSkKICAgICAgICByZXR1cm4gYXJlQXJyYXlzRXF1
YWwoX2FjdHVhbCwgX2V4cGVjdGVkKTsKICAgIHJldHVybiBmYWxzZTsKfQoKZnVuY3Rpb24gc3Ry
aW5naWZ5KHYpCnsKICAgIGlmICh2ID09PSAwICYmIDEvdiA8IDApCiAgICAgICAgcmV0dXJuICIt
MCI7CiAgICBlbHNlIHJldHVybiAiIiArIHY7Cn0KCmZ1bmN0aW9uIGV2YWxBbmRMb2coX2EpCnsK
ICBpZiAodHlwZW9mIF9hICE9ICJzdHJpbmciKQogICAgZGVidWcoIldBUk46IHRyeUFuZExvZygp
IGV4cGVjdHMgYSBzdHJpbmcgYXJndW1lbnQiKTsKCiAgLy8gTG9nIGZpcnN0IGluIGNhc2UgdGhp
bmdzIGdvIGhvcnJpYmx5IHdyb25nIG9yIHRoaXMgY2F1c2VzIGEgc3luYyBldmVudC4KICBkZWJ1
ZyhfYSk7CgogIHZhciBfYXY7CiAgdHJ5IHsKICAgICBfYXYgPSBldmFsKF9hKTsKICB9IGNhdGNo
IChlKSB7CiAgICB0ZXN0RmFpbGVkKF9hICsgIiB0aHJldyBleGNlcHRpb24gIiArIGUpOwogIH0K
ICByZXR1cm4gX2F2Owp9CgpmdW5jdGlvbiBzaG91bGRCZShfYSwgX2IpCnsKICBpZiAodHlwZW9m
IF9hICE9ICJzdHJpbmciIHx8IHR5cGVvZiBfYiAhPSAic3RyaW5nIikKICAgIGRlYnVnKCJXQVJO
OiBzaG91bGRCZSgpIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOwogIHZhciBleGNlcHRpb247
CiAgdmFyIF9hdjsKICB0cnkgewogICAgIF9hdiA9IGV2YWwoX2EpOwogIH0gY2F0Y2ggKGUpIHsK
ICAgICBleGNlcHRpb24gPSBlOwogIH0KICB2YXIgX2J2ID0gZXZhbChfYik7CgogIGlmIChleGNl
cHRpb24pCiAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgIiArIF9idiArICIuIFRocmV3
IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKICBlbHNlIGlmIChpc1Jlc3VsdENvcnJlY3QoX2F2
LCBfYnYpKQogICAgdGVzdFBhc3NlZChfYSArICIgaXMgIiArIF9iKTsKICBlbHNlIGlmICh0eXBl
b2YoX2F2KSA9PSB0eXBlb2YoX2J2KSkKICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSAi
ICsgX2J2ICsgIi4gV2FzICIgKyBzdHJpbmdpZnkoX2F2KSArICIuIik7CiAgZWxzZQogICAgdGVz
dEZhaWxlZChfYSArICIgc2hvdWxkIGJlICIgKyBfYnYgKyAiIChvZiB0eXBlICIgKyB0eXBlb2Yg
X2J2ICsgIikuIFdhcyAiICsgX2F2ICsgIiAob2YgdHlwZSAiICsgdHlwZW9mIF9hdiArICIpLiIp
Owp9CgpmdW5jdGlvbiBzaG91bGRCZVRydWUoX2EpIHsgc2hvdWxkQmUoX2EsICJ0cnVlIik7IH0K
ZnVuY3Rpb24gc2hvdWxkQmVGYWxzZShfYSkgeyBzaG91bGRCZShfYSwgImZhbHNlIik7IH0KZnVu
Y3Rpb24gc2hvdWxkQmVOYU4oX2EpIHsgc2hvdWxkQmUoX2EsICJOYU4iKTsgfQpmdW5jdGlvbiBz
aG91bGRCZU51bGwoX2EpIHsgc2hvdWxkQmUoX2EsICJudWxsIik7IH0KCmZ1bmN0aW9uIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZyhhLCBiKQp7CiAgdmFyIHVuZXZhbGVkU3RyaW5nID0gJyInICsgYi5y
ZXBsYWNlKC9cXC9nLCAiXFxcXCIpLnJlcGxhY2UoLyIvZywgIlwiIikucmVwbGFjZSgvXG4vZywg
IlxcbiIpLnJlcGxhY2UoL1xyL2csICJcXHIiKSArICciJzsKICBzaG91bGRCZShhLCB1bmV2YWxl
ZFN0cmluZyk7Cn0KCmZ1bmN0aW9uIHNob3VsZEV2YWx1YXRlVG8oYWN0dWFsLCBleHBlY3RlZCkg
ewogIC8vIEEgZ2VuZXJhbC1wdXJwb3NlIGNvbXBhcmF0b3IuICAnYWN0dWFsJyBzaG91bGQgYmUg
YSBzdHJpbmcgdG8gYmUKICAvLyBldmFsdWF0ZWQsIGFzIGZvciBzaG91bGRCZSgpLiAnZXhwZWN0
ZWQnIG1heSBiZSBhbnkgdHlwZSBhbmQgd2lsbCBiZQogIC8vIHVzZWQgd2l0aG91dCBiZWluZyBl
dmFsJ2VkLgogIGlmIChleHBlY3RlZCA9PSBudWxsKSB7CiAgICAvLyBEbyB0aGlzIGJlZm9yZSB0
aGUgb2JqZWN0IHRlc3QsIHNpbmNlIG51bGwgaXMgb2YgdHlwZSAnb2JqZWN0Jy4KICAgIHNob3Vs
ZEJlTnVsbChhY3R1YWwpOwogIH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkID09ICJ1bmRlZmlu
ZWQiKSB7CiAgICBzaG91bGRCZVVuZGVmaW5lZChhY3R1YWwpOwogIH0gZWxzZSBpZiAodHlwZW9m
IGV4cGVjdGVkID09ICJmdW5jdGlvbiIpIHsKICAgIC8vIEFsbCB0aGlzIGZ1c3MgaXMgdG8gYXZv
aWQgdGhlIHN0cmluZy1hcmcgd2FybmluZyBmcm9tIHNob3VsZEJlKCkuCiAgICB0cnkgewogICAg
ICBhY3R1YWxWYWx1ZSA9IGV2YWwoYWN0dWFsKTsKICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgdGVz
dEZhaWxlZCgiRXZhbHVhdGluZyAiICsgYWN0dWFsICsgIjogVGhyZXcgZXhjZXB0aW9uICIgKyBl
KTsKICAgICAgcmV0dXJuOwogICAgfQogICAgc2hvdWxkQmUoIiciICsgYWN0dWFsVmFsdWUudG9T
dHJpbmcoKS5yZXBsYWNlKC9cbi9nLCAiIikgKyAiJyIsCiAgICAgICAgICAgICAiJyIgKyBleHBl
Y3RlZC50b1N0cmluZygpLnJlcGxhY2UoL1xuL2csICIiKSArICInIik7CiAgfSBlbHNlIGlmICh0
eXBlb2YgZXhwZWN0ZWQgPT0gIm9iamVjdCIpIHsKICAgIHNob3VsZEJlVHJ1ZShhY3R1YWwgKyAi
ID09ICciICsgZXhwZWN0ZWQgKyAiJyIpOwogIH0gZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkID09
ICJzdHJpbmciKSB7CiAgICBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKTsKICB9IGVsc2UgaWYg
KHR5cGVvZiBleHBlY3RlZCA9PSAiYm9vbGVhbiIpIHsKICAgIHNob3VsZEJlKCJ0eXBlb2YgIiAr
IGFjdHVhbCwgIidib29sZWFuJyIpOwogICAgaWYgKGV4cGVjdGVkKQogICAgICBzaG91bGRCZVRy
dWUoYWN0dWFsKTsKICAgIGVsc2UKICAgICAgc2hvdWxkQmVGYWxzZShhY3R1YWwpOwogIH0gZWxz
ZSBpZiAodHlwZW9mIGV4cGVjdGVkID09ICJudW1iZXIiKSB7CiAgICBzaG91bGRCZShhY3R1YWws
IHN0cmluZ2lmeShleHBlY3RlZCkpOwogIH0gZWxzZSB7CiAgICBkZWJ1ZyhleHBlY3RlZCArICIg
aXMgdW5rbm93biB0eXBlICIgKyB0eXBlb2YgZXhwZWN0ZWQpOwogICAgc2hvdWxkQmVUcnVlKGFj
dHVhbCwgIiciICArZXhwZWN0ZWQudG9TdHJpbmcoKSArICInIik7CiAgfQp9CgpmdW5jdGlvbiBz
aG91bGRCZU5vblplcm8oX2EpCnsKICB2YXIgZXhjZXB0aW9uOwogIHZhciBfYXY7CiAgdHJ5IHsK
ICAgICBfYXYgPSBldmFsKF9hKTsKICB9IGNhdGNoIChlKSB7CiAgICAgZXhjZXB0aW9uID0gZTsK
ICB9CgogIGlmIChleGNlcHRpb24pCiAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgbm9u
LXplcm8uIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKICBlbHNlIGlmIChfYXYgIT0g
MCkKICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIG5vbi16ZXJvLiIpOwogIGVsc2UKICAgIHRlc3RG
YWlsZWQoX2EgKyAiIHNob3VsZCBiZSBub24temVyby4gV2FzICIgKyBfYXYpOwp9CgpmdW5jdGlv
biBzaG91bGRCZU5vbk51bGwoX2EpCnsKICB2YXIgZXhjZXB0aW9uOwogIHZhciBfYXY7CiAgdHJ5
IHsKICAgICBfYXYgPSBldmFsKF9hKTsKICB9IGNhdGNoIChlKSB7CiAgICAgZXhjZXB0aW9uID0g
ZTsKICB9CgogIGlmIChleGNlcHRpb24pCiAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUg
bm9uLW51bGwuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKICBlbHNlIGlmIChfYXYg
IT0gbnVsbCkKICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzIG5vbi1udWxsLiIpOwogIGVsc2UKICAg
IHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSBub24tbnVsbC4gV2FzICIgKyBfYXYpOwp9Cgpm
dW5jdGlvbiBzaG91bGRCZVVuZGVmaW5lZChfYSkKewogIHZhciBleGNlcHRpb247CiAgdmFyIF9h
djsKICB0cnkgewogICAgIF9hdiA9IGV2YWwoX2EpOwogIH0gY2F0Y2ggKGUpIHsKICAgICBleGNl
cHRpb24gPSBlOwogIH0KCiAgaWYgKGV4Y2VwdGlvbikKICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNo
b3VsZCBiZSB1bmRlZmluZWQuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKICBlbHNl
IGlmICh0eXBlb2YgX2F2ID09ICJ1bmRlZmluZWQiKQogICAgdGVzdFBhc3NlZChfYSArICIgaXMg
dW5kZWZpbmVkLiIpOwogIGVsc2UKICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSB1bmRl
ZmluZWQuIFdhcyAiICsgX2F2KTsKfQoKZnVuY3Rpb24gc2hvdWxkQmVEZWZpbmVkKF9hKQp7CiAg
dmFyIGV4Y2VwdGlvbjsKICB2YXIgX2F2OwogIHRyeSB7CiAgICAgX2F2ID0gZXZhbChfYSk7CiAg
fSBjYXRjaCAoZSkgewogICAgIGV4Y2VwdGlvbiA9IGU7CiAgfQoKICBpZiAoZXhjZXB0aW9uKQog
ICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlIGRlZmluZWQuIFRocmV3IGV4Y2VwdGlvbiAi
ICsgZXhjZXB0aW9uKTsKICBlbHNlIGlmIChfYXYgIT09IHVuZGVmaW5lZCkKICAgIHRlc3RQYXNz
ZWQoX2EgKyAiIGlzIGRlZmluZWQuIik7CiAgZWxzZQogICAgdGVzdEZhaWxlZChfYSArICIgc2hv
dWxkIGJlIGRlZmluZWQuIFdhcyAiICsgX2F2KTsKfQoKZnVuY3Rpb24gc2hvdWxkQmVHcmVhdGVy
VGhhbk9yRXF1YWwoX2EsIF9iKSB7CiAgICBpZiAodHlwZW9mIF9hICE9ICJzdHJpbmciIHx8IHR5
cGVvZiBfYiAhPSAic3RyaW5nIikKICAgICAgICBkZWJ1ZygiV0FSTjogc2hvdWxkQmVHcmVhdGVy
VGhhbk9yRXF1YWwgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7CgogICAgdmFyIGV4Y2VwdGlv
bjsKICAgIHZhciBfYXY7CiAgICB0cnkgewogICAgICAgIF9hdiA9IGV2YWwoX2EpOwogICAgfSBj
YXRjaCAoZSkgewogICAgICAgIGV4Y2VwdGlvbiA9IGU7CiAgICB9CiAgICB2YXIgX2J2ID0gZXZh
bChfYik7CgogICAgaWYgKGV4Y2VwdGlvbikKICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91
bGQgYmUgPj0gIiArIF9iICsgIi4gVGhyZXcgZXhjZXB0aW9uICIgKyBleGNlcHRpb24pOwogICAg
ZWxzZSBpZiAodHlwZW9mIF9hdiA9PSAidW5kZWZpbmVkIiB8fCBfYXYgPCBfYnYpCiAgICAgICAg
dGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlID49ICIgKyBfYiArICIuIFdhcyAiICsgX2F2ICsg
IiAob2YgdHlwZSAiICsgdHlwZW9mIF9hdiArICIpLiIpOwogICAgZWxzZQogICAgICAgIHRlc3RQ
YXNzZWQoX2EgKyAiIGlzID49ICIgKyBfYik7Cn0KCmZ1bmN0aW9uIHNob3VsZFRocm93KF9hLCBf
ZSkKewogIHZhciBleGNlcHRpb247CiAgdmFyIF9hdjsKICB0cnkgewogICAgIF9hdiA9IGV2YWwo
X2EpOwogIH0gY2F0Y2ggKGUpIHsKICAgICBleGNlcHRpb24gPSBlOwogIH0KCiAgdmFyIF9ldjsK
ICBpZiAoX2UpCiAgICAgIF9ldiA9ICBldmFsKF9lKTsKCiAgaWYgKGV4Y2VwdGlvbikgewogICAg
aWYgKHR5cGVvZiBfZSA9PSAidW5kZWZpbmVkIiB8fCBleGNlcHRpb24gPT0gX2V2KQogICAgICB0
ZXN0UGFzc2VkKF9hICsgIiB0aHJldyBleGNlcHRpb24gIiArIGV4Y2VwdGlvbiArICIuIik7CiAg
ICBlbHNlCiAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCB0aHJvdyAiICsgKHR5cGVvZiBf
ZSA9PSAidW5kZWZpbmVkIiA/ICJhbiBleGNlcHRpb24iIDogX2V2KSArICIuIFRocmV3IGV4Y2Vw
dGlvbiAiICsgZXhjZXB0aW9uICsgIi4iKTsKICB9IGVsc2UgaWYgKHR5cGVvZiBfYXYgPT0gInVu
ZGVmaW5lZCIpCiAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgdGhyb3cgIiArICh0eXBlb2Yg
X2UgPT0gInVuZGVmaW5lZCIgPyAiYW4gZXhjZXB0aW9uIiA6IF9ldikgKyAiLiBXYXMgdW5kZWZp
bmVkLiIpOwogIGVsc2UKICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCB0aHJvdyAiICsgKHR5
cGVvZiBfZSA9PSAidW5kZWZpbmVkIiA/ICJhbiBleGNlcHRpb24iIDogX2V2KSArICIuIFdhcyAi
ICsgX2F2ICsgIi4iKTsKfQoKZnVuY3Rpb24gZ2MoKSB7CiAgICBpZiAodHlwZW9mIEdDQ29udHJv
bGxlciAhPT0gInVuZGVmaW5lZCIpCiAgICAgICAgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKICAg
IGVsc2UgewogICAgICAgIGZ1bmN0aW9uIGdjUmVjKG4pIHsKICAgICAgICAgICAgaWYgKG4gPCAx
KQogICAgICAgICAgICAgICAgcmV0dXJuIHt9OwogICAgICAgICAgICB2YXIgdGVtcCA9IHtpOiAi
YWIiICsgaSArIChpIC8gMTAwMDAwKX07CiAgICAgICAgICAgIHRlbXAgKz0gImZvbyI7CiAgICAg
ICAgICAgIGdjUmVjKG4tMSk7CiAgICAgICAgfQogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDsgaSsrKQogICAgICAgICAgICBnY1JlYygxMCkKICAgIH0KfQoKLy8gSXQncyBwb3NzaWJs
ZSBmb3IgYW4gYXN5bmMgdGVzdCB0byBjYWxsIGZpbmlzaEpTVGVzdCgpIGJlZm9yZSBqcy10ZXN0
LXBvc3QuanMKLy8gaGFzIGJlZW4gcGFyc2VkLgpmdW5jdGlvbiBmaW5pc2hKU1Rlc3QoKQp7CiAg
ICB3YXNGaW5pc2hKU1Rlc3RDYWxsZWQgPSB0cnVlOwogICAgaWYgKCF3aW5kb3cud2FzUG9zdFRl
c3RTY3JpcHRQYXJzZWQpCiAgICAgICAgcmV0dXJuOwogICAgc2hvdWxkQmVUcnVlKCJzdWNjZXNz
ZnVsbHlQYXJzZWQiKTsKICAgIGRlYnVnKCc8YnIgLz48c3BhbiBjbGFzcz0icGFzcyI+VEVTVCBD
T01QTEVURTwvc3Bhbj4nKTsKICAgIGlmICh3aW5kb3cuanNUZXN0SXNBc3luYyAmJiB3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOwp9Cjwvc2NyaXB0Pgo8IS0tIEFjdHVhbCB0ZXN0IGNhc2UgY29udGVudCAtLT4KPHN0
eWxlPgojc3F1YXJlIHsKICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7CiAgICB2ZXJ0aWNhbC1hbGln
bjogbWlkZGxlOwogICAgYmFja2dyb3VuZDogYmx1ZTsKICAgIHdpZHRoOiAxMjhweDsKICAgIGhl
aWdodDogMTI4cHg7CiAgICBjb2xvcjogd2hpdGU7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAg
ICBwYWRkaW5nOiAxMHB4OwogICAgY3Vyc29yOiBkZWZhdWx0OwogICAgLXdlYmtpdC11c2VyLWRy
YWc6IG5vbmU7CiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwp9Cjwvc3R5bGU+CjxzY3Jp
cHQ+CnZhciBkaWRGaXJlTW91c2Vkb3duRm9yRmlyc3RNb3VzZUJ1dHRvbjsKdmFyIGRpZEZpcmVN
b3VzZWRvd25Gb3JTZWNvbmRNb3VzZUJ1dHRvbjsKdmFyIGZpcnN0TW91c2VCdXR0b25FbGVtOwp2
YXIgcHJldmlvdXNseUNob3NlbkZpcnN0TW91c2VCdXR0b24gPSAwOwp2YXIgc2Vjb25kTW91c2VC
dXR0b25FbGVtOwp2YXIgc3F1YXJlOwoKLy8gRXh0cmFjdGVkIGZyb20gdGhlIERPTSBMZXZlbCAz
IEV2ZW50cyBNb3VzZSBFdmVudCBUeXBlcyBzZWN0aW9uIDxodHRwOi8vd3d3LnczLm9yZy9UUi9E
T00tTGV2ZWwtMy1FdmVudHMvI2V2ZW50cy1Nb3VzZUV2ZW50LWJ1dHRvbj4uCnZhciBMZWZ0TW91
c2VCdXR0b24gPSAwOwp2YXIgTWlkZGxlTW91c2VCdXR0b24gPSAxOwp2YXIgUmlnaHRNb3VzZUJ1
dHRvbiA9IDI7Cgp3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKQp7CiAgICBmaXJzdE1vdXNlQnV0
dG9uRWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaXJzdE1vdXNlQnV0dG9uIik7CiAg
ICBzZWNvbmRNb3VzZUJ1dHRvbkVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vjb25k
TW91c2VCdXR0b24iKTsKICAgIGZpcnN0TW91c2VCdXR0b25FbGVtLm9uY2hhbmdlID0gZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgIGRpc2FibGVJbGxvZ2ljYWxTZWNvbmRNb3VzZUJ1dHRvbk9wdGlv
bnMoKTsgCiAgICAgICAgICAgIHJlc2V0VGVzdCgpOwogICAgfQogICAgc2Vjb25kTW91c2VCdXR0
b25FbGVtLm9uY2hhbmdlID0gcmVzZXRUZXN0OwoKICAgIHNxdWFyZSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJzcXVhcmUiKTsKICAgIHNxdWFyZS5vbm1vdXNlZG93biA9IGNoZWNrSWZEb25l
T25Nb3VzZURvd247CiAgICBzcXVhcmUub25tb3VzZXVwID0gY2hlY2tJZkRvbmVPbk1vdXNlVXA7
CiAgICBzcXVhcmUub25jb250ZXh0bWVudSA9IGNhbmNlbENvbnRleHRNZW51OwogICAgcmVzZXRU
ZXN0KCk7CiAgICBydW5UZXN0KCk7Cn0KCmZ1bmN0aW9uIHRvSUVNb3VzZUJ1dHRvbih3M2NCdXR0
b24pCnsKICAgIHN3aXRjaCAodzNjQnV0dG9uKSB7CiAgICBjYXNlIExlZnRNb3VzZUJ1dHRvbjoK
ICAgICAgICByZXR1cm4gMTsKICAgIGNhc2UgTWlkZGxlTW91c2VCdXR0b246CiAgICAgICAgcmV0
dXJuIDQ7CiAgICBjYXNlIFJpZ2h0TW91c2VCdXR0b246CiAgICAgICAgcmV0dXJuIDI7CiAgICB9
CiAgICByZXR1cm47IC8vIFdlIHNob3VsZG4ndCBnZXQgaGVyZS4KfQoKZnVuY3Rpb24gc2hvcnRN
b3VzZUJ1dHRvbk5hbWUodzNjQnV0dG9uKQp7CiAgICBzd2l0Y2ggKHczY0J1dHRvbikgewogICAg
Y2FzZSBMZWZ0TW91c2VCdXR0b246CiAgICAgICAgcmV0dXJuICJsZWZ0IjsKICAgIGNhc2UgTWlk
ZGxlTW91c2VCdXR0b246CiAgICAgICAgcmV0dXJuICJtaWRkbGUiOwogICAgY2FzZSBSaWdodE1v
dXNlQnV0dG9uOgogICAgICAgIHJldHVybiAicmlnaHQiOwogICAgfQogICAgcmV0dXJuOyAvLyBX
ZSBzaG91bGRuJ3QgZ2V0IGhlcmUuCn0KCmZ1bmN0aW9uIG1vdXNlQnV0dG9uTmFtZSh3M2NCdXR0
b24pCnsKICAgIHJldHVybiBzaG9ydE1vdXNlQnV0dG9uTmFtZSh3M2NCdXR0b24pICsgIiBtb3Vz
ZSBidXR0b24iOwp9CgpmdW5jdGlvbiBjYW5jZWxDb250ZXh0TWVudShldmVudCkKewogICAgZXZl
bnQgPSBldmVudCB8fCB3aW5kb3cuZXZlbnQ7CiAgICBpZiAoZXZlbnQucHJldmVudERlZmF1bHQp
CiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgIGVsc2UgewogICAgICAgIC8vIEFz
c3VtZSB0aGlzIHNjcmlwdCBpcyBleGVjdXRpbmcgd2l0aGluIEludGVybmV0IEV4cGxvcmVyLgog
ICAgICAgIGV2ZW50LnJldHVyblZhbHVlID0gZmFsc2U7CiAgICB9Cn0KCmZ1bmN0aW9uIGNoZWNr
SWZEb25lT25Nb3VzZURvd24oZXZlbnQpCnsKICAgIHZhciBwcmVzc2VkQnV0dG9uczsgLy8gQSBi
aXRtYXNrIHRoYXQgcmVwcmVzZW50cyB0aGUgY29tYmluYXRpb24gb2YgYnV0dG9ucyB0aGF0IGFy
ZSBjdXJyZW50bHkgYmVpbmcgcHJlc3NlZC4KICAgIGlmIChldmVudCAmJiBldmVudC5idXR0b25z
KQogICAgICAgIHByZXNzZWRCdXR0b25zID0gZXZlbnQuYnV0dG9uczsgLy8gRE9NIExldmVsIDMg
RXZlbnRzIChXb3JraW5nIERyYWZ0IDA3IFNlcHRlbWJlciAyMDEwKS4KICAgIGVsc2UgaWYgKGV2
ZW50KSB7CiAgICAgICAgLy8gRm9yIGJyb3dzZXJzIHRoYW4gZG9uJ3Qgc3VwcG9ydCBldmVudC5i
dXR0b25zIChvciBJRSdzIHdpbmRvdy5ldmVudC5idXR0b24pIHdlIGNvbnZlcnQgZXZlbnQuYnV0
dG9uIHRvCiAgICAgICAgLy8gdGhlIGNvcnJlc3BvbmRpbmcgYml0bWFzayB0byBzaW1wbGlmeSB0
aGUgbG9naWMgYmVsb3cuCiAgICAgICAgcHJlc3NlZEJ1dHRvbnMgPSB0b0lFTW91c2VCdXR0b24o
ZXZlbnQuYnV0dG9uKTsKICAgIH0gZWxzZSB7CiAgICAgICAgLy8gQXNzdW1lIHRoaXMgc2NyaXB0
IGlzIHJ1bm5pbmcgd2l0aGluIEludGVybmV0IEV4cGxvcmVyLgogICAgICAgIHByZXNzZWRCdXR0
b25zID0gd2luZG93LmV2ZW50LmJ1dHRvbjsKICAgIH0KCiAgICB2YXIgY2hvc2VuRmlyc3RNb3Vz
ZUJ1dHRvbiA9IGZpcnN0TW91c2VCdXR0b25FbGVtLnNlbGVjdGVkSW5kZXg7CiAgICB2YXIgY2hv
c2VuU2Vjb25kTW91c2VCdXR0b24gPSBzZWNvbmRNb3VzZUJ1dHRvbkVsZW0uc2VsZWN0ZWRJbmRl
eDsKICAgIGlmICghZGlkRmlyZU1vdXNlZG93bkZvckZpcnN0TW91c2VCdXR0b24gJiYgKHByZXNz
ZWRCdXR0b25zICYgdG9JRU1vdXNlQnV0dG9uKGNob3NlbkZpcnN0TW91c2VCdXR0b24pKSA9PSB0
b0lFTW91c2VCdXR0b24oY2hvc2VuRmlyc3RNb3VzZUJ1dHRvbikpIHsKICAgICAgICBkaWRGaXJl
TW91c2Vkb3duRm9yRmlyc3RNb3VzZUJ1dHRvbiA9IHRydWU7CiAgICAgICAgc3F1YXJlLmlubmVy
SFRNTCA9ICJOb3csICIgKyBzaG9ydE1vdXNlQnV0dG9uTmFtZShjaG9zZW5TZWNvbmRNb3VzZUJ1
dHRvbikgKyAiIGNsaWNrIjsKICAgIH0gZWxzZSBpZiAoZGlkRmlyZU1vdXNlZG93bkZvckZpcnN0
TW91c2VCdXR0b24gJiYgKHByZXNzZWRCdXR0b25zICYgdG9JRU1vdXNlQnV0dG9uKGNob3NlblNl
Y29uZE1vdXNlQnV0dG9uKSkgPT0gdG9JRU1vdXNlQnV0dG9uKGNob3NlblNlY29uZE1vdXNlQnV0
dG9uKSkKICAgICAgICBkaWRGaXJlTW91c2Vkb3duRm9yU2Vjb25kTW91c2VCdXR0b24gPSB0cnVl
OwogICAgaWYgKGRpZEZpcmVNb3VzZWRvd25Gb3JGaXJzdE1vdXNlQnV0dG9uICYmIGRpZEZpcmVN
b3VzZWRvd25Gb3JTZWNvbmRNb3VzZUJ1dHRvbikgewogICAgICAgIHRlc3RQYXNzZWQoInJlY2Vp
dmVkIG1vdXNlZG93biBmb3IgdGhlICIgKyBtb3VzZUJ1dHRvbk5hbWUoY2hvc2VuU2Vjb25kTW91
c2VCdXR0b24pICsgIiB3aGlsZSBwcmVzc2luZyB0aGUgIiArIG1vdXNlQnV0dG9uTmFtZShjaG9z
ZW5GaXJzdE1vdXNlQnV0dG9uKSArICIuIik7CiAgICAgICAgcmVzZXRUZXN0KCk7CiAgICB9Cn0K
CmZ1bmN0aW9uIGNoZWNrSWZEb25lT25Nb3VzZVVwKCkKewogICAgaWYgKGRpZEZpcmVNb3VzZWRv
d25Gb3JGaXJzdE1vdXNlQnV0dG9uICYmICFkaWRGaXJlTW91c2Vkb3duRm9yU2Vjb25kTW91c2VC
dXR0b24pIHsKICAgICAgICAvLyBXaXRob3V0IGxvc3Mgb2YgZ2VuZXJhbGl0eSwgZWl0aGVyIHRo
ZSBtb3VzZWRvd24gZm9yIHRoZSByaWdodCBidXR0b24gYnV0dG9uIHdhc24ndAogICAgICAgIC8v
IGRpc3BhdGNoZWQgb3IgdGhlIHVzZXIgZGlkbid0IHByZXNzIHRoZSByaWdodCBtb3VzZSBidXR0
b24gd2hpbGUgcHJlc3NpbmcgbGVmdCBtb3VzZSBidXR0b24uCiAgICAgICAgdmFyIGNob3NlbkZp
cnN0TW91c2VCdXR0b24gPSBmaXJzdE1vdXNlQnV0dG9uRWxlbS5zZWxlY3RlZEluZGV4OwogICAg
ICAgIHZhciBjaG9zZW5TZWNvbmRNb3VzZUJ1dHRvbiA9IHNlY29uZE1vdXNlQnV0dG9uRWxlbS5z
ZWxlY3RlZEluZGV4OwogICAgICAgIHRlc3RGYWlsZWQoImRpZG4ndCByZWNlaXZlIG1vdXNlZG93
biBmb3IgdGhlICIgKyBtb3VzZUJ1dHRvbk5hbWUoY2hvc2VuU2Vjb25kTW91c2VCdXR0b24pICsg
IiB3aGlsZSBwcmVzc2luZyB0aGUgIiArIG1vdXNlQnV0dG9uTmFtZShjaG9zZW5GaXJzdE1vdXNl
QnV0dG9uKSArICIuIik7CiAgICAgICAgcmVzZXRUZXN0KCk7CiAgICB9Cn0KCmZ1bmN0aW9uIHJl
c2V0VGVzdCgpCnsKICAgIGRpZEZpcmVNb3VzZWRvd25Gb3JGaXJzdE1vdXNlQnV0dG9uID0gZmFs
c2U7CiAgICBkaWRGaXJlTW91c2Vkb3duRm9yU2Vjb25kTW91c2VCdXR0b24gPSBmYWxzZTsKICAg
IHNxdWFyZS5pbm5lckhUTUwgPSAiUHJlc3MgYW5kIGhvbGQgdGhlICIgKyBtb3VzZUJ1dHRvbk5h
bWUoZmlyc3RNb3VzZUJ1dHRvbkVsZW0uc2VsZWN0ZWRJbmRleCkgKyAiIG9uIG1lIjsKfQoKZnVu
Y3Rpb24gZGlzYWJsZUlsbG9naWNhbFNlY29uZE1vdXNlQnV0dG9uT3B0aW9ucygpCnsKICAgIHNl
Y29uZE1vdXNlQnV0dG9uRWxlbS5vcHRpb25zW3ByZXZpb3VzbHlDaG9zZW5GaXJzdE1vdXNlQnV0
dG9uXS5kaXNhYmxlZCA9IGZhbHNlOwogICAgaWYgKGZpcnN0TW91c2VCdXR0b25FbGVtLnNlbGVj
dGVkSW5kZXggPT09IHNlY29uZE1vdXNlQnV0dG9uRWxlbS5zZWxlY3RlZEluZGV4KQogICAgICAg
IHNlY29uZE1vdXNlQnV0dG9uRWxlbS5vcHRpb25zWyhzZWNvbmRNb3VzZUJ1dHRvbkVsZW0uc2Vs
ZWN0ZWRJbmRleCArIDEpICUgc2Vjb25kTW91c2VCdXR0b25FbGVtLmxlbmd0aF0uc2VsZWN0ZWQg
PSB0cnVlOwogICAgc2Vjb25kTW91c2VCdXR0b25FbGVtLm9wdGlvbnNbZmlyc3RNb3VzZUJ1dHRv
bkVsZW0uc2VsZWN0ZWRJbmRleF0uZGlzYWJsZWQgPSB0cnVlOwogICAgcHJldmlvdXNseUNob3Nl
bkZpcnN0TW91c2VCdXR0b24gPSBmaXJzdE1vdXNlQnV0dG9uRWxlbS5zZWxlY3RlZEluZGV4Owp9
CgpmdW5jdGlvbiBydW5UZXN0KCkKewogICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpCiAgICAg
ICAgcmV0dXJuOwoKICAgIHZhciBudW1GaXJzdE1vdXNlQnV0dG9uT3B0aW9ucyA9IGZpcnN0TW91
c2VCdXR0b25FbGVtLm9wdGlvbnMubGVuZ3RoOwogICAgdmFyIG51bVNlY29uZE1vdXNlQnV0dG9u
T3B0aW9ucyA9IHNlY29uZE1vdXNlQnV0dG9uRWxlbS5vcHRpb25zLmxlbmd0aDsKICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKHNxdWFyZS5vZmZzZXRMZWZ0ICsgMTAsIHNxdWFyZS5vZmZzZXRU
b3AgKyAxMCk7CiAgICB2YXIgZmlyc3RNb3VzZUJ1dHRvbiA9IDA7CiAgICB2YXIgc2Vjb25kTW91
c2VCdXR0b24gPSAwOwogICAgd2hpbGUgKGZpcnN0TW91c2VCdXR0b24gPCBudW1GaXJzdE1vdXNl
QnV0dG9uT3B0aW9ucykgewogICAgICAgIGlmIChmaXJzdE1vdXNlQnV0dG9uID09PSBzZWNvbmRN
b3VzZUJ1dHRvbikKICAgICAgICAgICAgKytzZWNvbmRNb3VzZUJ1dHRvbjsKICAgICAgICBpZiAo
c2Vjb25kTW91c2VCdXR0b24gPj0gbnVtU2Vjb25kTW91c2VCdXR0b25PcHRpb25zKSB7CiAgICAg
ICAgICAgICsrZmlyc3RNb3VzZUJ1dHRvbjsKICAgICAgICAgICAgc2Vjb25kTW91c2VCdXR0b24g
PSAwOwogICAgICAgIH0KICAgICAgICBpZiAoZmlyc3RNb3VzZUJ1dHRvbiA+PSBudW1GaXJzdE1v
dXNlQnV0dG9uT3B0aW9ucykKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGZpcnN0TW91c2VC
dXR0b25FbGVtLm9wdGlvbnNbZmlyc3RNb3VzZUJ1dHRvbl0uc2VsZWN0ZWQgPSB0cnVlOwogICAg
ICAgIHNlY29uZE1vdXNlQnV0dG9uRWxlbS5vcHRpb25zW3NlY29uZE1vdXNlQnV0dG9uXS5zZWxl
Y3RlZCA9IHRydWU7CiAgICAgICAgaWYgKHNlY29uZE1vdXNlQnV0dG9uICUgbnVtU2Vjb25kTW91
c2VCdXR0b25PcHRpb25zID09PSAwKQogICAgICAgICAgICBkZWJ1ZygnPGJyIC8+V2hlbiBwcmVz
c2luZyBhbmQgaG9sZGluZyB0aGUgIicgKyBtb3VzZUJ1dHRvbk5hbWUoZmlyc3RNb3VzZUJ1dHRv
bikgKyAnIjxiciAvPicpOwogICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bihmaXJzdE1vdXNl
QnV0dG9uKTsKICAgICAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCgxMDApOwogICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlRG93bihzZWNvbmRNb3VzZUJ1dHRvbik7CiAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VVcChzZWNvbmRNb3VzZUJ1dHRvbik7CiAgICAgICAgZXZlbnRTZW5kZXIubW91c2VV
cChmaXJzdE1vdXNlQnV0dG9uKTsKICAgICAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCgxMDAp
OwogICAgICAgICsrc2Vjb25kTW91c2VCdXR0b247CiAgICAgICAgcmVzZXRUZXN0KCk7IC8vIFdl
IHJlc2V0IHRoZSB0ZXN0IGhlcmUgaW4gY2FzZSBuZWl0aGVyIGEgbW91c2Vkb3duIG5vciBtb3Vz
ZXVwIGV2ZW50IHdhcyBmaXJlZC4KICAgIH0KICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QtY29udGFpbmVyIikpOwogICAgZGVidWcoJzxi
ciAvPjxzcGFuIGNsYXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9zcGFuPicpOwp9Cjwvc2NyaXB0
Pgo8L2hlYWQ+Cjxib2R5Pgo8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KPGRpdiBpZD0idGVzdC1j
b250YWluZXIiPgogICAgPHA+Tm90ZTogRW5zdXJlIG1vdXNlIGdlc3R1cmVzIGFyZSBkaXNhYmxl
ZCB3aGVuIHJ1bm5pbmcgdGhpcyB0ZXN0IGluIE9wZXJhLiBJbiBPcGVyYSAxMS4xMCB5b3UgY2Fu
IGRpc2FibGUgZ2VzdHVyZXMgYnkgc2VsZWN0aW5nIE9wZXJhID4gUHJlZmVyZW5jZXMgPiBBZHZh
bmNlZCA+IFNob3J0Y3V0cy4gVGhlbiB1bmNoZWNrIEVuYWJsZSBtb3VzZSBnZXN0dXJlcy4gQWxz
bywgdG8gdGVzdCAmcXVvdDtwcmVzc2luZy1hbmQtaG9sZGluZyB0aGUgcmlnaHQgbW91c2UgYnV0
dG9uIHRoZW4gY2xpY2tpbmcgdGhlIGxlZnQgbW91c2UmcXVvdDsgKCopIGVuc3VyZSB0aGF0IEVu
YWJsZSBNb3VzZSBGbGlwcyBpcyBkaXNhYmxlZC4gVG8gZGlzYWJsZSBpdCBvcGVuIDxhIGhyZWY9
Im9wZXJhOmNvbmZpZyIgdGFyZ2V0PSJfYmxhbmsiPm9wZXJhOmNvbmZpZzwvYT4gdGhlbiBzZWFy
Y2ggZm9yICZxdW90O0VuYWJsZSBNb3VzZSBGbGlwcyZxdW90OyBhbmQgdW5jaGVjayBpdC4gQXMg
b2YgMDQvMTUvMjAxMSwgZm9yIHNvbWUgcmVhc29uICgqKSBuZWl0aGVyIDxzcGFuIGNsYXNzPSJw
YXNzIj5QQVNTPC9zcGFuPmVzIG5vciA8c3BhbiBjbGFzcz0iZmFpbCI+RkFJTDwvc3Bhbj5zLjwv
cD4KICAgIDwhLS0gVGhlIDxvcHRpb24+cyBpbiB0aGVzZSA8c2VsZWN0PnMgYXJlIGV4cGxpY2l0
bHkgb3JkZXJlZCB0byBtYXRjaCB0aGUgRE9NIExldmVsIDMgRXZlbnRzIG1vdXNlIGJ1dHRvbiB2
YWx1ZXMgZm9yIExlZnQsIE1pZGRsZSwgYW5kIFJpZ2h0IG1vdXNlIGJ1dHRvbnMuIC0tPgogICAg
PGxhYmVsIGZvcj0iZmlyc3RNb3VzZUJ1dHRvbiI+V2lsbCBwcmVzcyBhbmQgaG9sZDwvbGFiZWw+
IDxzZWxlY3QgaWQ9ImZpcnN0TW91c2VCdXR0b24iPgogICAgICAgIDxvcHRpb24+TGVmdCBtb3Vz
ZSBidXR0b248L29wdGlvbj4KICAgICAgICA8b3B0aW9uPk1pZGRsZSBtb3VzZSBidXR0b248L29w
dGlvbj4KICAgICAgICA8b3B0aW9uPlJpZ2h0IG1vdXNlIGJ1dHRvbjwvb3B0aW9uPgogICAgPC9z
ZWxlY3Q+CiAgICA8c3Bhbj5vbiBibHVlIHNxdWFyZSB0aGVuPC9zcGFuPgogICAgPGxhYmVsIGZv
cj0ic2Vjb25kTW91c2VCdXR0b24iPmNsaWNrPC9sYWJlbD4gPHNlbGVjdCBpZD0ic2Vjb25kTW91
c2VCdXR0b24iPgogICAgICAgIDxvcHRpb24gZGlzYWJsZWQ+TGVmdCBtb3VzZSBidXR0b248L29w
dGlvbj4KICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPk1pZGRsZSBtb3VzZSBidXR0b248L29wdGlv
bj4KICAgICAgICA8b3B0aW9uPlJpZ2h0IG1vdXNlIGJ1dHRvbjwvb3B0aW9uPgogICAgPC9zZWxl
Y3Q+CiAgICA8YnIvPjxici8+CiAgICA8ZGl2IGlkPSJzcXVhcmUiPjwvZGl2Pgo8L2Rpdj4KPGhy
Lz4KPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CjxzY3JpcHQ+CiAgICBkZXNjcmlwdGlvbigiVGhp
cyB0ZXN0IHZlcmlmaWVzIHRoYXQgd2UgZmlyZSBhIG1vdXNlZG93biBldmVudCB3aGVuZXZlciBw
cmVzc2luZyBhbmQgaG9sZGluZyBhIG1vdXNlIGJ1dHRvbiBBIHdoaWxlIHNpbXVsdGFuZW91c2x5
ICIgKwogICAgICAgICAgICAgICAgImNsaWNraW5nIHdpdGggbW91c2UgYnV0dG9uIEIsIHdoZXJl
IEEgIT0gQi48YnIvPiIgKwogICAgICAgICAgICAgICAgIkZvciBlYWNoIG1vdXNlIGJ1dHRvbiB0
aGF0IGlzIHByZXNzZWQgYW5kIGhlbGQsIGl0ZXJhdGVzIHRocm91Z2ggdGhlIHBvc3NpYmxlIHNl
Y29uZCBtb3VzZSBidXR0b25zIHRoYXQgY2FuIGJlIGNsaWNrZWQuIik7CiAgICB2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>