<?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>26927</bug_id>
          
          <creation_ts>2009-07-02 11:13:46 -0700</creation_ts>
          <short_desc>webkit-patch or pre-commit hook should validate reviewer lines before committing</short_desc>
          <delta_ts>2010-03-24 20:45: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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</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>32343</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>kenneth</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>129534</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-02 11:13:46 -0700</bug_when>
    <thetext>bugzilla-tool or pre-commit hook should validate reviewer lines before committing

This will avoid bad commit lines like:
http://trac.webkit.org/changeset/45463

We already have a list of authorized reviewers in svn (bugzilla.py for now, but eventually in reviewers.py) so validating a parsed out reviewer name against it is easy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194759</commentid>
    <comment_count>1</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-03-01 12:17:54 -0800</bug_when>
    <thetext>If I land a patch through the commit-queue that has been reviewed, it could fail if the ChangeLog says &quot;Reviewed by NOBODY&quot;.

&quot;Reviewed by NOBODY&quot; is a valid line, but probably not the intention if the patch was actually reviewed.

Personally I always write &quot;Unreviewed&quot; and then some kind of explanation, like &quot;Unreviewed Qt buildbot fix&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203676</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-24 16:25:11 -0700</bug_when>
    <thetext>Another bad commit:
http://trac.webkit.org/changeset/56454</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203717</commentid>
    <comment_count>3</comment_count>
      <attachid>51572</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-24 18:18:35 -0700</bug_when>
    <thetext>Created attachment 51572
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203734</commentid>
    <comment_count>4</comment_count>
      <attachid>51572</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-24 19:24:14 -0700</bug_when>
    <thetext>Comment on attachment 51572
Patch

You are a better man than I.  However, this is sub-optimal (and will break the case of the ChangeLog posted already having a valid reviewer).

Better would be to look at reviewer() on all the ChangeLogEntries right before we assemble the commit message.  We could even validate that that reviewer() matches the one we pulled off the bug, if the bug had one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203756</commentid>
    <comment_count>5</comment_count>
      <attachid>51585</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-24 20:21:57 -0700</bug_when>
    <thetext>Created attachment 51585
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203758</commentid>
    <comment_count>6</comment_count>
      <attachid>51586</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-24 20:28:45 -0700</bug_when>
    <thetext>Created attachment 51586
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203760</commentid>
    <comment_count>7</comment_count>
      <attachid>51586</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-24 20:35:50 -0700</bug_when>
    <thetext>Comment on attachment 51586
Patch

+        os.chdir(self._tool.scm().checkout_root)

That needs a FIXME.

Can we say regexp?
+            if changelog_entry.contents().lower().find(&quot;unreviewed&quot;):

re.match(&quot;unreviewed&quot;, changelog_entry.contents(), re.IGNORECASE)

You could/should even just compile the regexp as a class variable on ValidateReviewer.

+            error(&apos;%s neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot;.&apos;)
should note that the search is case insensitive.

I am saddened by the lack of the testzors.

Otherwise this looks great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203762</commentid>
    <comment_count>8</comment_count>
      <attachid>51588</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-24 20:42:18 -0700</bug_when>
    <thetext>Created attachment 51588
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203763</commentid>
    <comment_count>9</comment_count>
      <attachid>51588</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-24 20:44:38 -0700</bug_when>
    <thetext>Comment on attachment 51588
Patch

I really dislike the lack of testing.  If you get this wrong, then &quot;webkit-patch land&quot; will be broken for people. :(

r+, assuming that you&apos;ve tested this somehow or will...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203764</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-24 20:45:22 -0700</bug_when>
    <thetext>Committed r56478: &lt;http://trac.webkit.org/changeset/56478&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51572</attachid>
            <date>2010-03-24 18:18:35 -0700</date>
            <delta_ts>2010-03-24 20:21:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26927-20100324181833.patch</filename>
            <type>text/plain</type>
            <size>2481</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAyMzQ2YTBmLi43Y2YyN2ZjIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDMt
MjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3ZWJraXQtcGF0Y2ggb3IgcHJlLWNvbW1pdCBo
b29rIHNob3VsZCB2YWxpZGF0ZSByZXZpZXdlciBsaW5lcyBiZWZvcmUgY29tbWl0dGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY5MjcKKworICAg
ICAgICBXaGVuIHdlJ3ZlIGdvdCBhIHJldmlld2VyIHRvIHB1dCBpbiB0aGUgQ2hhbmdlTG9nLCB3
ZSBzaG91bGQgbWFrZSBzdXJlCisgICAgICAgIHdlIGFjdHVhbGx5IHB1dCBpdCBpbiBldmVyeSBD
aGFuZ2VMb2cgaW4gdGhlIHBhdGNoIGJlZm9yZSBsYW5kaW5nLgorCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9jaGFuZ2Vsb2dzLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3Rl
cHMvdXBkYXRlY2hhbmdlbG9nc3dpdGhyZXZpZXdlci5weToKKwogMjAxMC0wMy0yMiAgQ3NhYmEg
T3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFk
YW0gQmFydGguCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NoYW5n
ZWxvZ3MucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NoYW5nZWxvZ3MucHkKaW5k
ZXggNTgxM2U0YS4uMjA0ZDFhNiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jaGFuZ2Vsb2dzLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY2hh
bmdlbG9ncy5weQpAQCAtMTY2LDcgKzE2NiwxMSBAQCBjbGFzcyBDaGFuZ2VMb2cob2JqZWN0KToK
ICAgICAgICAgICAgICAgICBwcmludCBsaW5lLAogCiAgICAgZGVmIHNldF9yZXZpZXdlcihzZWxm
LCByZXZpZXdlcik6CisgICAgICAgIHJldmlld2VkX2J5X3BsYWNlaG9sZGVyID0gIk5PQk9EWSAo
T09QUyEpIgorICAgICAgICBmb3VuZF9yZXZpZXdlcl9wbGFjZWhvbGRlciA9IEZhbHNlCiAgICAg
ICAgICMgaW5wbGFjZT0xIGNyZWF0ZXMgYSBiYWNrdXAgZmlsZSBhbmQgcmUtZGlyZWN0cyBzdGRv
dXQgdG8gdGhlIGZpbGUKICAgICAgICAgZm9yIGxpbmUgaW4gZmlsZWlucHV0LkZpbGVJbnB1dChz
ZWxmLnBhdGgsIGlucGxhY2U9MSk6CisgICAgICAgICAgICBmb3VuZF9yZXZpZXdlcl9wbGFjZWhv
bGRlciA9IGZvdW5kX3Jldmlld2VyX3BsYWNlaG9sZGVyIG9yIGxpbmUuZmluZChyZXZpZXdlZF9i
eV9wbGFjZWhvbGRlcikKICAgICAgICAgICAgICMgVHJhaWxpbmcgY29tbWEgc3VwcHJlc3NlcyBw
cmludGluZyBuZXdsaW5lCi0gICAgICAgICAgICBwcmludCBsaW5lLnJlcGxhY2UoIk5PQk9EWSAo
T09QUyEpIiwgcmV2aWV3ZXIuZW5jb2RlKCJ1dGYtOCIpKSwKKyAgICAgICAgICAgIHByaW50IGxp
bmUucmVwbGFjZShyZXZpZXdlZF9ieV9wbGFjZWhvbGRlciwgcmV2aWV3ZXIuZW5jb2RlKCJ1dGYt
OCIpKSwKKyAgICAgICAgcmV0dXJuIGZvdW5kX3Jldmlld2VyX3BsYWNlaG9sZGVyClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdGVwcy91cGRhdGVjaGFuZ2Vsb2dzd2l0aHJldmlld2VyLnB5IGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdGVwcy91cGRhdGVjaGFuZ2Vsb2dzd2l0aHJldmlld2VyLnB5Cmlu
ZGV4IDkwZmRjMzUuLjM5YWZlMjYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3RlcHMvdXBkYXRlY2hhbmdlbG9nc3dpdGhyZXZpZXdlci5weQorKysgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3N0ZXBzL3VwZGF0ZWNoYW5nZWxvZ3N3aXRocmV2aWV3ZXIu
cHkKQEAgLTY4LDQgKzY4LDUgQEAgY2xhc3MgVXBkYXRlQ2hhbmdlTG9nc1dpdGhSZXZpZXdlcihB
YnN0cmFjdFN0ZXApOgogCiAgICAgICAgIG9zLmNoZGlyKHNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tv
dXRfcm9vdCkKICAgICAgICAgZm9yIGNoYW5nZWxvZ19wYXRoIGluIHNlbGYuX3Rvb2wuc2NtKCku
bW9kaWZpZWRfY2hhbmdlbG9ncygpOgotICAgICAgICAgICAgQ2hhbmdlTG9nKGNoYW5nZWxvZ19w
YXRoKS5zZXRfcmV2aWV3ZXIocmV2aWV3ZXIpCisgICAgICAgICAgICBpZiBub3QgQ2hhbmdlTG9n
KGNoYW5nZWxvZ19wYXRoKS5zZXRfcmV2aWV3ZXIocmV2aWV3ZXIpOgorICAgICAgICAgICAgICAg
IGVycm9yKCJVbmFibGUgdG8gdXBkYXRlIENoYW5nZUxvZyAlcyB3aXRoIHJldmlld2VyICVzLiIg
JSAoY2hhbmdlbG9nX3BhdGgsIHJldmlld2VyKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51585</attachid>
            <date>2010-03-24 20:21:57 -0700</date>
            <delta_ts>2010-03-24 20:28:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26927-20100324202155.patch</filename>
            <type>text/plain</type>
            <size>8622</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBjOTM0OGEyLi45YzA1YjA3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMDMt
MjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3ZWJraXQtcGF0Y2ggb3IgcHJlLWNvbW1pdCBo
b29rIHNob3VsZCB2YWxpZGF0ZSByZXZpZXdlciBsaW5lcyBiZWZvcmUgY29tbWl0dGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY5MjcKKworICAg
ICAgICBWYWxpZGF0ZSB0aGF0IHBhdGNoZXMgaGF2ZSB2YWxpZCByZWl2ZXdlcnMgbGlzdGVkIGlu
IHRoZWlyIENoYW5nZUxvZ3MKKyAgICAgICAgYmVmb3JlIGxhbmRpbmcuICBGb3IgcGF0Y2hlcyB3
aXRob3V0IHJldmlld2VycyBjYW4gYmUgbGFuZGVkIGlmIHRoZWlyCisgICAgICAgIENoYW5nZUxv
Z3Mgc3RhdGUgdGhhdCB0aGV5IGFyZSB1bnJldmlld2VkLgorCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9jaGFuZ2Vsb2dzLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbWFu
ZHMvZG93bmxvYWQucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21taXRpbmZvLnB5
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbWl0aW5mb191bml0dGVzdC5weToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L21vY2tfYnVnemlsbGF0b29sLnB5OgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvc3RlcHMvX19pbml0X18ucHk6CisKIDIwMTAtMDMtMTkgIEhvbGdl
ciBIYW5zIFBldGVyIEZyZXl0aGVyICA8emVja2VAc2VsZmlzaC5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2NoYW5nZWxvZ3MucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NoYW5n
ZWxvZ3MucHkKaW5kZXggYzJmNzJkNS4uN2U1YWExOCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jaGFuZ2Vsb2dzLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY2hhbmdlbG9ncy5weQpAQCAtMzQsNiArMzQsNyBAQCBpbXBvcnQgcmUKIGltcG9y
dCB0ZXh0d3JhcAogCiBmcm9tIHdlYmtpdHB5LndlYmtpdF9sb2dnaW5nIGltcG9ydCBsb2cKK2Zy
b20gd2Via2l0cHkuY29tbWl0dGVycyBpbXBvcnQgQ29tbWl0dGVyTGlzdAogCiBkZWYgdmlld19z
b3VyY2VfdXJsKHJldmlzaW9uX251bWJlcik6CiAgICAgIyBGSU1YRTogVGhpcyBkb2Vzbid0IHJl
YWxseSBiZWxvbmcgaW4gdGhpcyBmaWxlLCBidXQgd2UgZG9uJ3QgaGF2ZSBhCkBAIC01MCw4ICs1
MSw5IEBAIGNsYXNzIENoYW5nZUxvZ0VudHJ5KG9iamVjdCk6CiAgICAgIyBlLmcuIDIwMDktMDYt
MDMgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogICAgIGRhdGVfbGluZV9yZWdleHAg
PSByJ14oP1A8ZGF0ZT5cZHs0fS1cZHsyfS1cZHsyfSlccysoP1A8bmFtZT4uKz8pXHMrPCg/UDxl
bWFpbD5bXjw+XSspPiQnCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgY29udGVudHMpOgorICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBjb250ZW50cywgY29tbWl0dGVyX2xpc3Q9Q29tbWl0dGVyTGlz
dCgpKToKICAgICAgICAgc2VsZi5fY29udGVudHMgPSBjb250ZW50cworICAgICAgICBzZWxmLl9j
b21taXR0ZXJfbGlzdCA9IGNvbW1pdHRlcl9saXN0CiAgICAgICAgIHNlbGYuX3BhcnNlX2VudHJ5
KCkKIAogICAgIGRlZiBfcGFyc2VfZW50cnkoc2VsZik6CkBAIC02NiwxNyArNjgsMjYgQEAgY2xh
c3MgQ2hhbmdlTG9nRW50cnkob2JqZWN0KToKICAgICAgICAgbWF0Y2ggPSByZS5zZWFyY2goIl5c
cytSZXZpZXdlZCBieSAoP1A8cmV2aWV3ZXI+Lio/KVtcLixdP1xzKiQiLCBzZWxmLl9jb250ZW50
cywgcmUuTVVMVElMSU5FKSAjIERpc2NhcmQgZXZlcnl0aGluZyBhZnRlciB0aGUgZmlyc3QgcGVy
aW9kCiAgICAgICAgIHNlbGYuX3Jldmlld2VyX3RleHQgPSBtYXRjaC5ncm91cCgicmV2aWV3ZXIi
KSBpZiBtYXRjaCBlbHNlIE5vbmUKIAorICAgICAgICBzZWxmLl9yZXZpZXdlciA9IHNlbGYuX2Nv
bW1pdHRlcl9saXN0LmNvbW1pdHRlcl9ieV9uYW1lKHNlbGYuX3Jldmlld2VyX3RleHQpCisgICAg
ICAgIHNlbGYuX2F1dGhvciA9IHNlbGYuX2NvbW1pdHRlcl9saXN0LmNvbW1pdHRlcl9ieV9lbWFp
bChzZWxmLl9hdXRob3JfZW1haWwpIG9yIHNlbGYuX2NvbW1pdHRlcl9saXN0LmNvbW1pdHRlcl9i
eV9uYW1lKHNlbGYuX2F1dGhvcl9uYW1lKQorCiAgICAgZGVmIGF1dGhvcl9uYW1lKHNlbGYpOgog
ICAgICAgICByZXR1cm4gc2VsZi5fYXV0aG9yX25hbWUKIAogICAgIGRlZiBhdXRob3JfZW1haWwo
c2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl9hdXRob3JfZW1haWwKIAorICAgIGRlZiBhdXRo
b3Ioc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9hdXRob3IgIyBNaWdodCBiZSBOb25lCisK
ICAgICAjIEZJWE1FOiBFdmVudHVhbGx5IHdlIHdvdWxkIGxpa2UgdG8gbWFwIHJldml3ZXIgbmFt
ZXMgdG8gcmV2aWV3ZXIgb2JqZWN0cy4KICAgICAjIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjY1MzMKICAgICBkZWYgcmV2aWV3ZXJfdGV4dChzZWxmKToKICAg
ICAgICAgcmV0dXJuIHNlbGYuX3Jldmlld2VyX3RleHQKIAorICAgIGRlZiByZXZpZXdlcihzZWxm
KToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Jldmlld2VyICMgTWlnaHQgYmUgTm9uZQorCiAgICAg
ZGVmIGNvbnRlbnRzKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fY29udGVudHMKIApkaWZm
IC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9kb3dubG9hZC5w
eSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvZG93bmxvYWQucHkKaW5k
ZXggZWE2ODJkNS4uMmJjYzlkMCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tYW5kcy9kb3dubG9hZC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1hbmRzL2Rvd25sb2FkLnB5CkBAIC03NCw2ICs3NCw3IEBAIGNsYXNzIExhbmQoQWJz
dHJhY3RTZXF1ZW5jZWRDb21tYW5kKToKICAgICBzdGVwcyA9IFsKICAgICAgICAgc3RlcHMuRW5z
dXJlQnVpbGRlcnNBcmVHcmVlbiwKICAgICAgICAgc3RlcHMuVXBkYXRlQ2hhbmdlTG9nc1dpdGhS
ZXZpZXdlciwKKyAgICAgICAgc3RlcHMuVmFsaWRhdGVSZXZpZXdlciwKICAgICAgICAgc3RlcHMu
RW5zdXJlQnVpbGRlcnNBcmVHcmVlbiwKICAgICAgICAgc3RlcHMuQnVpbGQsCiAgICAgICAgIHN0
ZXBzLlJ1blRlc3RzLApAQCAtMjA5LDYgKzIxMCw3IEBAIGNsYXNzIEFic3RyYWN0UGF0Y2hMYW5k
aW5nQ29tbWFuZChBYnN0cmFjdFBhdGNoU2VxdWVuY2luZ0NvbW1hbmQpOgogICAgICAgICBzdGVw
cy5DbGVhbldvcmtpbmdEaXJlY3RvcnksCiAgICAgICAgIHN0ZXBzLlVwZGF0ZSwKICAgICAgICAg
c3RlcHMuQXBwbHlQYXRjaCwKKyAgICAgICAgc3RlcHMuVmFsaWRhdGVSZXZpZXdlciwKICAgICAg
ICAgc3RlcHMuRW5zdXJlQnVpbGRlcnNBcmVHcmVlbiwKICAgICAgICAgc3RlcHMuQnVpbGQsCiAg
ICAgICAgIHN0ZXBzLlJ1blRlc3RzLApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21taXRpbmZvLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
aXRpbmZvLnB5CmluZGV4IDE0OWE4OWEuLjMxOTkyOGQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbWl0aW5mby5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1pdGluZm8ucHkKQEAgLTUzLDEwICs1MywxMiBAQCBjbGFzcyBDb21taXRJ
bmZvKG9iamVjdCk6CiAgICAgICAgICMgQXNzdW1lIGZvciBub3cgdGhhdCB0aGUgZmlyc3QgZW50
cnkgaGFzIGV2ZXJ5dGhpbmcgd2UgbmVlZDoKICAgICAgICAgY2hhbmdlbG9nX2VudHJ5ID0gY2hh
bmdlbG9nX2VudHJpZXNbMF0KICAgICAgICAgY2hhbmdlbG9nX2RhdGEgPSB7Ci0gICAgICAgICAg
ICAiYnVnX2lkIiA6IHBhcnNlX2J1Z19pZChjaGFuZ2Vsb2dfZW50cnkuY29udGVudHMoKSksCi0g
ICAgICAgICAgICAiYXV0aG9yX25hbWUiIDogY2hhbmdlbG9nX2VudHJ5LmF1dGhvcl9uYW1lKCks
Ci0gICAgICAgICAgICAiYXV0aG9yX2VtYWlsIiA6IGNoYW5nZWxvZ19lbnRyeS5hdXRob3JfZW1h
aWwoKSwKLSAgICAgICAgICAgICJyZXZpZXdlcl90ZXh0IiA6IGNoYW5nZWxvZ19lbnRyeS5yZXZp
ZXdlcl90ZXh0KCksCisgICAgICAgICAgICAiYnVnX2lkIjogcGFyc2VfYnVnX2lkKGNoYW5nZWxv
Z19lbnRyeS5jb250ZW50cygpKSwKKyAgICAgICAgICAgICJhdXRob3JfbmFtZSI6IGNoYW5nZWxv
Z19lbnRyeS5hdXRob3JfbmFtZSgpLAorICAgICAgICAgICAgImF1dGhvcl9lbWFpbCI6IGNoYW5n
ZWxvZ19lbnRyeS5hdXRob3JfZW1haWwoKSwKKyAgICAgICAgICAgICJhdXRob3IiOiBjaGFuZ2Vs
b2dfZW50cnkuYXV0aG9yKCksCisgICAgICAgICAgICAicmV2aWV3ZXJfdGV4dCI6IGNoYW5nZWxv
Z19lbnRyeS5yZXZpZXdlcl90ZXh0KCksCisgICAgICAgICAgICAicmV2aWV3ZXIiOiBjaGFuZ2Vs
b2dfZW50cnkucmV2aWV3ZXIoKSwKICAgICAgICAgfQogICAgICAgICAjIFdlIGNvdWxkIHBhc3Mg
dGhlIGNoYW5nZWxvZ19lbnRyeSBpbnN0ZWFkIG9mIGEgZGljdGlvbmFyeSBoZXJlLCBidXQgdGhh
dCBtYWtlcwogICAgICAgICAjIG1vY2tpbmcgc2xpZ2h0bHkgbW9yZSBpbnZvbHZlZCwgYW5kIHdv
dWxkIG1ha2UgYWdncmVnYXRpbmcgZGF0YSBmcm9tIG11bHRpcGxlCkBAIC02OSwxMSArNzEsMTEg
QEAgY2xhc3MgQ29tbWl0SW5mbyhvYmplY3QpOgogICAgICAgICBzZWxmLl9idWdfaWQgPSBjaGFu
Z2Vsb2dfZGF0YVsiYnVnX2lkIl0KICAgICAgICAgc2VsZi5fYXV0aG9yX25hbWUgPSBjaGFuZ2Vs
b2dfZGF0YVsiYXV0aG9yX25hbWUiXQogICAgICAgICBzZWxmLl9hdXRob3JfZW1haWwgPSBjaGFu
Z2Vsb2dfZGF0YVsiYXV0aG9yX2VtYWlsIl0KKyAgICAgICAgc2VsZi5fYXV0aG9yID0gY2hhbmdl
bG9nX2RhdGFbImF1dGhvciJdCiAgICAgICAgIHNlbGYuX3Jldmlld2VyX3RleHQgPSBjaGFuZ2Vs
b2dfZGF0YVsicmV2aWV3ZXJfdGV4dCJdCisgICAgICAgIHNlbGYuX3Jldmlld2VyID0gY2hhbmdl
bG9nX2RhdGFbInJldmlld2VyIl0KIAogICAgICAgICAjIERlcml2ZWQgdmFsdWVzOgotICAgICAg
ICBzZWxmLl9yZXZpZXdlciA9IGNvbW1pdHRlcl9saXN0LmNvbW1pdHRlcl9ieV9uYW1lKHNlbGYu
X3Jldmlld2VyX3RleHQpCi0gICAgICAgIHNlbGYuX2F1dGhvciA9IGNvbW1pdHRlcl9saXN0LmNv
bW1pdHRlcl9ieV9lbWFpbChzZWxmLl9hdXRob3JfZW1haWwpIG9yIGNvbW1pdHRlcl9saXN0LmNv
bW1pdHRlcl9ieV9uYW1lKHNlbGYuX2F1dGhvcl9uYW1lKQogICAgICAgICBzZWxmLl9jb21taXR0
ZXIgPSBjb21taXR0ZXJfbGlzdC5jb21taXR0ZXJfYnlfZW1haWwoY29tbWl0dGVyX2VtYWlsKQog
CiAgICAgZGVmIHJldmlzaW9uKHNlbGYpOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21taXRpbmZvX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21taXRpbmZvX3VuaXR0ZXN0LnB5CmluZGV4IDcyZTYxYzYuLjFhYzc0ZmQgMTAw
NjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWl0aW5mb191bml0dGVz
dC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1pdGluZm9fdW5pdHRl
c3QucHkKQEAgLTMyLDcgKzMyLDcgQEAgZnJvbSBjb21taXR0ZXJzIGltcG9ydCBDb21taXR0ZXJM
aXN0LCBDb21taXR0ZXIsIFJldmlld2VyCiBmcm9tIGNvbW1pdGluZm8gaW1wb3J0IENvbW1pdElu
Zm8KIAogY2xhc3MgQ29tbWl0SW5mb1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgIAorCiAg
ICAgZGVmIHRlc3RfY29tbWl0X2luZm9fY3JlYXRpb24oc2VsZik6CiAgICAgICAgIGF1dGhvciA9
IENvbW1pdHRlcigiQXV0aG9yIiwgImF1dGhvckBleGFtcGxlLmNvbSIpCiAgICAgICAgIGNvbW1p
dHRlciA9IENvbW1pdHRlcigiQ29tbWl0dGVyIiwgImNvbW1pdHRlckBleGFtcGxlLmNvbSIpCkBA
IC00MCwxMyArNDAsMTUgQEAgY2xhc3MgQ29tbWl0SW5mb1Rlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgogICAgICAgICBjb21taXR0ZXJfbGlzdCA9IENvbW1pdHRlckxpc3QoY29tbWl0dGVycz1bYXV0
aG9yLCBjb21taXR0ZXJdLCByZXZpZXdlcnM9W3Jldmlld2VyXSkKIAogICAgICAgICBjaGFuZ2Vs
b2dfZGF0YSA9IHsKLSAgICAgICAgICAgICJidWdfaWQiIDogMTIzNCwKLSAgICAgICAgICAgICJh
dXRob3JfbmFtZSIgOiAiQ29tbWl0dGVyIiwKLSAgICAgICAgICAgICJhdXRob3JfZW1haWwiIDog
ImF1dGhvckBleGFtcGxlLmNvbSIsCi0gICAgICAgICAgICAicmV2aWV3ZXJfdGV4dCIgOiAiUmV2
aWV3ZXIiLAorICAgICAgICAgICAgImJ1Z19pZCI6IDEyMzQsCisgICAgICAgICAgICAiYXV0aG9y
X25hbWUiOiAiQ29tbWl0dGVyIiwKKyAgICAgICAgICAgICJhdXRob3JfZW1haWwiOiAiYXV0aG9y
QGV4YW1wbGUuY29tIiwKKyAgICAgICAgICAgICJhdXRob3IiOiBhdXRob3IsCisgICAgICAgICAg
ICAicmV2aWV3ZXJfdGV4dCI6ICJSZXZpZXdlciIsCisgICAgICAgICAgICAicmV2aWV3ZXIiOiBy
ZXZpZXdlciwKICAgICAgICAgfQogICAgICAgICBjb21taXQgPSBDb21taXRJbmZvKDEyMywgImNv
bW1pdHRlckBleGFtcGxlLmNvbSIsIGNoYW5nZWxvZ19kYXRhLCBjb21taXR0ZXJfbGlzdCkKLSAg
ICAgICAgCisKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXQucmV2aXNpb24oKSwgMTIz
KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdC5idWdfaWQoKSwgMTIzNCkKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXQuYXV0aG9yX25hbWUoKSwgIkNvbW1pdHRlciIpCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L21vY2tfYnVnemlsbGF0b29s
LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9tb2NrX2J1Z3ppbGxhdG9vbC5weQpp
bmRleCA2NTRlMTNjLi44N2JlMmIwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L21vY2tfYnVnemlsbGF0b29sLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbW9ja19idWd6aWxsYXRvb2wucHkKQEAgLTM2NiwxMiArMzY2LDE2IEBAIGNsYXNzIE1v
Y2tTQ00oTW9jayk6CiAKIGNsYXNzIE1vY2tXZWJLaXRDaGVja291dChvYmplY3QpOgogCisgICAg
X2NvbW1pdHRlcl9saXN0ID0gQ29tbWl0dGVyTGlzdCgpCisKICAgICBkZWYgY29tbWl0X2luZm9f
Zm9yX3JldmlzaW9uKHNlbGYsIHN2bl9yZXZpc2lvbik6CiAgICAgICAgIHJldHVybiBDb21taXRJ
bmZvKHN2bl9yZXZpc2lvbiwgImVyaWNAd2Via2l0Lm9yZyIsIHsKICAgICAgICAgICAgICJidWdf
aWQiOiA0MiwKICAgICAgICAgICAgICJhdXRob3JfbmFtZSI6ICJBZGFtIEJhcnRoIiwKICAgICAg
ICAgICAgICJhdXRob3JfZW1haWwiOiAiYWJhcnRoQHdlYmtpdC5vcmciLAotICAgICAgICAgICAg
InJldmlld2VyX3RleHQiOiAiRGFyaW4gQWRsZXIiCisgICAgICAgICAgICAiYXV0aG9yIjogc2Vs
Zi5fY29tbWl0dGVyX2xpc3QuY29tbWl0dGVyX2J5X2VtYWlsKCJhYmFydGhAd2Via2l0Lm9yZyIp
LAorICAgICAgICAgICAgInJldmlld2VyX3RleHQiOiAiRGFyaW4gQWRsZXIiLAorICAgICAgICAg
ICAgInJldmlld2VyIjogc2VsZi5fY29tbWl0dGVyX2xpc3QuY29tbWl0dGVyX2J5X25hbWUoIkRh
cmluIEFkbGVyIiksCiAgICAgICAgIH0pCiAKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdGVwcy9fX2luaXRfXy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3RlcHMvX19pbml0X18ucHkKaW5kZXggYmRiMjUyMC4uZWRkZDBhZCAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdGVwcy9fX2luaXRfXy5weQorKysgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0ZXBzL19faW5pdF9fLnB5CkBAIC01NSwzICs1
NSw0IEBAIGZyb20gd2Via2l0cHkuc3RlcHMucmV2ZXJ0cmV2aXNpb24gaW1wb3J0IFJldmVydFJl
dmlzaW9uCiBmcm9tIHdlYmtpdHB5LnN0ZXBzLnJ1bnRlc3RzIGltcG9ydCBSdW5UZXN0cwogZnJv
bSB3ZWJraXRweS5zdGVwcy51cGRhdGVjaGFuZ2Vsb2dzd2l0aHJldmlld2VyIGltcG9ydCBVcGRh
dGVDaGFuZ2VMb2dzV2l0aFJldmlld2VyCiBmcm9tIHdlYmtpdHB5LnN0ZXBzLnVwZGF0ZSBpbXBv
cnQgVXBkYXRlCitmcm9tIHdlYmtpdHB5LnN0ZXBzLnZhbGlkYXRlcmV2aWV3ZXIgaW1wb3J0IFZh
bGlkYXRlUmV2aWV3ZXIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51586</attachid>
            <date>2010-03-24 20:28:45 -0700</date>
            <delta_ts>2010-03-24 20:42:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26927-20100324202844.patch</filename>
            <type>text/plain</type>
            <size>11140</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBjOTM0OGEyLi5hZWNlZTU2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTAtMDMt
MjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3ZWJraXQtcGF0Y2ggb3IgcHJlLWNvbW1pdCBo
b29rIHNob3VsZCB2YWxpZGF0ZSByZXZpZXdlciBsaW5lcyBiZWZvcmUgY29tbWl0dGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY5MjcKKworICAg
ICAgICBWYWxpZGF0ZSB0aGF0IHBhdGNoZXMgaGF2ZSB2YWxpZCByZWl2ZXdlcnMgbGlzdGVkIGlu
IHRoZWlyIENoYW5nZUxvZ3MKKyAgICAgICAgYmVmb3JlIGxhbmRpbmcuICBGb3IgcGF0Y2hlcyB3
aXRob3V0IHJldmlld2VycyBjYW4gYmUgbGFuZGVkIGlmIHRoZWlyCisgICAgICAgIENoYW5nZUxv
Z3Mgc3RhdGUgdGhhdCB0aGV5IGFyZSB1bnJldmlld2VkLgorCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9jaGFuZ2Vsb2dzLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbWFu
ZHMvZG93bmxvYWQucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21taXRpbmZvLnB5
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbWl0aW5mb191bml0dGVzdC5weToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L21vY2tfYnVnemlsbGF0b29sLnB5OgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvc3RlcHMvX19pbml0X18ucHk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9zdGVwcy92YWxpZGF0ZXJldmlld2VyLnB5OiBBZGRlZC4KKwogMjAxMC0wMy0xOSAg
SG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIgIDx6ZWNrZUBzZWxmaXNoLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY2hhbmdlbG9ncy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y2hhbmdlbG9ncy5weQppbmRleCBjMmY3MmQ1Li43ZTVhYTE4IDEwMDY0NAotLS0gYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NoYW5nZWxvZ3MucHkKKysrIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jaGFuZ2Vsb2dzLnB5CkBAIC0zNCw2ICszNCw3IEBAIGltcG9ydCByZQog
aW1wb3J0IHRleHR3cmFwCiAKIGZyb20gd2Via2l0cHkud2Via2l0X2xvZ2dpbmcgaW1wb3J0IGxv
ZworZnJvbSB3ZWJraXRweS5jb21taXR0ZXJzIGltcG9ydCBDb21taXR0ZXJMaXN0CiAKIGRlZiB2
aWV3X3NvdXJjZV91cmwocmV2aXNpb25fbnVtYmVyKToKICAgICAjIEZJTVhFOiBUaGlzIGRvZXNu
J3QgcmVhbGx5IGJlbG9uZyBpbiB0aGlzIGZpbGUsIGJ1dCB3ZSBkb24ndCBoYXZlIGEKQEAgLTUw
LDggKzUxLDkgQEAgY2xhc3MgQ2hhbmdlTG9nRW50cnkob2JqZWN0KToKICAgICAjIGUuZy4gMjAw
OS0wNi0wMyAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAgICAgZGF0ZV9saW5lX3Jl
Z2V4cCA9IHInXig/UDxkYXRlPlxkezR9LVxkezJ9LVxkezJ9KVxzKyg/UDxuYW1lPi4rPylccys8
KD9QPGVtYWlsPltePD5dKyk+JCcKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb250ZW50cyk6
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbnRlbnRzLCBjb21taXR0ZXJfbGlzdD1Db21taXR0
ZXJMaXN0KCkpOgogICAgICAgICBzZWxmLl9jb250ZW50cyA9IGNvbnRlbnRzCisgICAgICAgIHNl
bGYuX2NvbW1pdHRlcl9saXN0ID0gY29tbWl0dGVyX2xpc3QKICAgICAgICAgc2VsZi5fcGFyc2Vf
ZW50cnkoKQogCiAgICAgZGVmIF9wYXJzZV9lbnRyeShzZWxmKToKQEAgLTY2LDE3ICs2OCwyNiBA
QCBjbGFzcyBDaGFuZ2VMb2dFbnRyeShvYmplY3QpOgogICAgICAgICBtYXRjaCA9IHJlLnNlYXJj
aCgiXlxzK1Jldmlld2VkIGJ5ICg/UDxyZXZpZXdlcj4uKj8pW1wuLF0/XHMqJCIsIHNlbGYuX2Nv
bnRlbnRzLCByZS5NVUxUSUxJTkUpICMgRGlzY2FyZCBldmVyeXRoaW5nIGFmdGVyIHRoZSBmaXJz
dCBwZXJpb2QKICAgICAgICAgc2VsZi5fcmV2aWV3ZXJfdGV4dCA9IG1hdGNoLmdyb3VwKCJyZXZp
ZXdlciIpIGlmIG1hdGNoIGVsc2UgTm9uZQogCisgICAgICAgIHNlbGYuX3Jldmlld2VyID0gc2Vs
Zi5fY29tbWl0dGVyX2xpc3QuY29tbWl0dGVyX2J5X25hbWUoc2VsZi5fcmV2aWV3ZXJfdGV4dCkK
KyAgICAgICAgc2VsZi5fYXV0aG9yID0gc2VsZi5fY29tbWl0dGVyX2xpc3QuY29tbWl0dGVyX2J5
X2VtYWlsKHNlbGYuX2F1dGhvcl9lbWFpbCkgb3Igc2VsZi5fY29tbWl0dGVyX2xpc3QuY29tbWl0
dGVyX2J5X25hbWUoc2VsZi5fYXV0aG9yX25hbWUpCisKICAgICBkZWYgYXV0aG9yX25hbWUoc2Vs
Zik6CiAgICAgICAgIHJldHVybiBzZWxmLl9hdXRob3JfbmFtZQogCiAgICAgZGVmIGF1dGhvcl9l
bWFpbChzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2F1dGhvcl9lbWFpbAogCisgICAgZGVm
IGF1dGhvcihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2F1dGhvciAjIE1pZ2h0IGJlIE5v
bmUKKwogICAgICMgRklYTUU6IEV2ZW50dWFsbHkgd2Ugd291bGQgbGlrZSB0byBtYXAgcmV2aXdl
ciBuYW1lcyB0byByZXZpZXdlciBvYmplY3RzLgogICAgICMgU2VlIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjUzMwogICAgIGRlZiByZXZpZXdlcl90ZXh0KHNlbGYp
OgogICAgICAgICByZXR1cm4gc2VsZi5fcmV2aWV3ZXJfdGV4dAogCisgICAgZGVmIHJldmlld2Vy
KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fcmV2aWV3ZXIgIyBNaWdodCBiZSBOb25lCisK
ICAgICBkZWYgY29udGVudHMoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl9jb250ZW50cwog
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL2Rvd25s
b2FkLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9kb3dubG9hZC5w
eQppbmRleCBlYTY4MmQ1Li4yYmNjOWQwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1hbmRzL2Rvd25sb2FkLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbWFuZHMvZG93bmxvYWQucHkKQEAgLTc0LDYgKzc0LDcgQEAgY2xhc3MgTGFu
ZChBYnN0cmFjdFNlcXVlbmNlZENvbW1hbmQpOgogICAgIHN0ZXBzID0gWwogICAgICAgICBzdGVw
cy5FbnN1cmVCdWlsZGVyc0FyZUdyZWVuLAogICAgICAgICBzdGVwcy5VcGRhdGVDaGFuZ2VMb2dz
V2l0aFJldmlld2VyLAorICAgICAgICBzdGVwcy5WYWxpZGF0ZVJldmlld2VyLAogICAgICAgICBz
dGVwcy5FbnN1cmVCdWlsZGVyc0FyZUdyZWVuLAogICAgICAgICBzdGVwcy5CdWlsZCwKICAgICAg
ICAgc3RlcHMuUnVuVGVzdHMsCkBAIC0yMDksNiArMjEwLDcgQEAgY2xhc3MgQWJzdHJhY3RQYXRj
aExhbmRpbmdDb21tYW5kKEFic3RyYWN0UGF0Y2hTZXF1ZW5jaW5nQ29tbWFuZCk6CiAgICAgICAg
IHN0ZXBzLkNsZWFuV29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgc3RlcHMuVXBkYXRlLAogICAg
ICAgICBzdGVwcy5BcHBseVBhdGNoLAorICAgICAgICBzdGVwcy5WYWxpZGF0ZVJldmlld2VyLAog
ICAgICAgICBzdGVwcy5FbnN1cmVCdWlsZGVyc0FyZUdyZWVuLAogICAgICAgICBzdGVwcy5CdWls
ZCwKICAgICAgICAgc3RlcHMuUnVuVGVzdHMsCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1pdGluZm8ucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1pdGluZm8ucHkKaW5kZXggMTQ5YTg5YS4uMzE5OTI4ZCAxMDA2NDQKLS0tIGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21taXRpbmZvLnB5CisrKyBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbWl0aW5mby5weQpAQCAtNTMsMTAgKzUzLDEyIEBAIGNsYXNzIENv
bW1pdEluZm8ob2JqZWN0KToKICAgICAgICAgIyBBc3N1bWUgZm9yIG5vdyB0aGF0IHRoZSBmaXJz
dCBlbnRyeSBoYXMgZXZlcnl0aGluZyB3ZSBuZWVkOgogICAgICAgICBjaGFuZ2Vsb2dfZW50cnkg
PSBjaGFuZ2Vsb2dfZW50cmllc1swXQogICAgICAgICBjaGFuZ2Vsb2dfZGF0YSA9IHsKLSAgICAg
ICAgICAgICJidWdfaWQiIDogcGFyc2VfYnVnX2lkKGNoYW5nZWxvZ19lbnRyeS5jb250ZW50cygp
KSwKLSAgICAgICAgICAgICJhdXRob3JfbmFtZSIgOiBjaGFuZ2Vsb2dfZW50cnkuYXV0aG9yX25h
bWUoKSwKLSAgICAgICAgICAgICJhdXRob3JfZW1haWwiIDogY2hhbmdlbG9nX2VudHJ5LmF1dGhv
cl9lbWFpbCgpLAotICAgICAgICAgICAgInJldmlld2VyX3RleHQiIDogY2hhbmdlbG9nX2VudHJ5
LnJldmlld2VyX3RleHQoKSwKKyAgICAgICAgICAgICJidWdfaWQiOiBwYXJzZV9idWdfaWQoY2hh
bmdlbG9nX2VudHJ5LmNvbnRlbnRzKCkpLAorICAgICAgICAgICAgImF1dGhvcl9uYW1lIjogY2hh
bmdlbG9nX2VudHJ5LmF1dGhvcl9uYW1lKCksCisgICAgICAgICAgICAiYXV0aG9yX2VtYWlsIjog
Y2hhbmdlbG9nX2VudHJ5LmF1dGhvcl9lbWFpbCgpLAorICAgICAgICAgICAgImF1dGhvciI6IGNo
YW5nZWxvZ19lbnRyeS5hdXRob3IoKSwKKyAgICAgICAgICAgICJyZXZpZXdlcl90ZXh0IjogY2hh
bmdlbG9nX2VudHJ5LnJldmlld2VyX3RleHQoKSwKKyAgICAgICAgICAgICJyZXZpZXdlciI6IGNo
YW5nZWxvZ19lbnRyeS5yZXZpZXdlcigpLAogICAgICAgICB9CiAgICAgICAgICMgV2UgY291bGQg
cGFzcyB0aGUgY2hhbmdlbG9nX2VudHJ5IGluc3RlYWQgb2YgYSBkaWN0aW9uYXJ5IGhlcmUsIGJ1
dCB0aGF0IG1ha2VzCiAgICAgICAgICMgbW9ja2luZyBzbGlnaHRseSBtb3JlIGludm9sdmVkLCBh
bmQgd291bGQgbWFrZSBhZ2dyZWdhdGluZyBkYXRhIGZyb20gbXVsdGlwbGUKQEAgLTY5LDExICs3
MSwxMSBAQCBjbGFzcyBDb21taXRJbmZvKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX2J1Z19pZCA9
IGNoYW5nZWxvZ19kYXRhWyJidWdfaWQiXQogICAgICAgICBzZWxmLl9hdXRob3JfbmFtZSA9IGNo
YW5nZWxvZ19kYXRhWyJhdXRob3JfbmFtZSJdCiAgICAgICAgIHNlbGYuX2F1dGhvcl9lbWFpbCA9
IGNoYW5nZWxvZ19kYXRhWyJhdXRob3JfZW1haWwiXQorICAgICAgICBzZWxmLl9hdXRob3IgPSBj
aGFuZ2Vsb2dfZGF0YVsiYXV0aG9yIl0KICAgICAgICAgc2VsZi5fcmV2aWV3ZXJfdGV4dCA9IGNo
YW5nZWxvZ19kYXRhWyJyZXZpZXdlcl90ZXh0Il0KKyAgICAgICAgc2VsZi5fcmV2aWV3ZXIgPSBj
aGFuZ2Vsb2dfZGF0YVsicmV2aWV3ZXIiXQogCiAgICAgICAgICMgRGVyaXZlZCB2YWx1ZXM6Ci0g
ICAgICAgIHNlbGYuX3Jldmlld2VyID0gY29tbWl0dGVyX2xpc3QuY29tbWl0dGVyX2J5X25hbWUo
c2VsZi5fcmV2aWV3ZXJfdGV4dCkKLSAgICAgICAgc2VsZi5fYXV0aG9yID0gY29tbWl0dGVyX2xp
c3QuY29tbWl0dGVyX2J5X2VtYWlsKHNlbGYuX2F1dGhvcl9lbWFpbCkgb3IgY29tbWl0dGVyX2xp
c3QuY29tbWl0dGVyX2J5X25hbWUoc2VsZi5fYXV0aG9yX25hbWUpCiAgICAgICAgIHNlbGYuX2Nv
bW1pdHRlciA9IGNvbW1pdHRlcl9saXN0LmNvbW1pdHRlcl9ieV9lbWFpbChjb21taXR0ZXJfZW1h
aWwpCiAKICAgICBkZWYgcmV2aXNpb24oc2VsZik6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1pdGluZm9fdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1pdGluZm9fdW5pdHRlc3QucHkKaW5kZXggNzJlNjFjNi4uMWFjNzRm
ZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21taXRpbmZvX3Vu
aXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWl0aW5mb191
bml0dGVzdC5weQpAQCAtMzIsNyArMzIsNyBAQCBmcm9tIGNvbW1pdHRlcnMgaW1wb3J0IENvbW1p
dHRlckxpc3QsIENvbW1pdHRlciwgUmV2aWV3ZXIKIGZyb20gY29tbWl0aW5mbyBpbXBvcnQgQ29t
bWl0SW5mbwogCiBjbGFzcyBDb21taXRJbmZvVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAg
CisKICAgICBkZWYgdGVzdF9jb21taXRfaW5mb19jcmVhdGlvbihzZWxmKToKICAgICAgICAgYXV0
aG9yID0gQ29tbWl0dGVyKCJBdXRob3IiLCAiYXV0aG9yQGV4YW1wbGUuY29tIikKICAgICAgICAg
Y29tbWl0dGVyID0gQ29tbWl0dGVyKCJDb21taXR0ZXIiLCAiY29tbWl0dGVyQGV4YW1wbGUuY29t
IikKQEAgLTQwLDEzICs0MCwxNSBAQCBjbGFzcyBDb21taXRJbmZvVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6CiAgICAgICAgIGNvbW1pdHRlcl9saXN0ID0gQ29tbWl0dGVyTGlzdChjb21taXR0ZXJz
PVthdXRob3IsIGNvbW1pdHRlcl0sIHJldmlld2Vycz1bcmV2aWV3ZXJdKQogCiAgICAgICAgIGNo
YW5nZWxvZ19kYXRhID0gewotICAgICAgICAgICAgImJ1Z19pZCIgOiAxMjM0LAotICAgICAgICAg
ICAgImF1dGhvcl9uYW1lIiA6ICJDb21taXR0ZXIiLAotICAgICAgICAgICAgImF1dGhvcl9lbWFp
bCIgOiAiYXV0aG9yQGV4YW1wbGUuY29tIiwKLSAgICAgICAgICAgICJyZXZpZXdlcl90ZXh0IiA6
ICJSZXZpZXdlciIsCisgICAgICAgICAgICAiYnVnX2lkIjogMTIzNCwKKyAgICAgICAgICAgICJh
dXRob3JfbmFtZSI6ICJDb21taXR0ZXIiLAorICAgICAgICAgICAgImF1dGhvcl9lbWFpbCI6ICJh
dXRob3JAZXhhbXBsZS5jb20iLAorICAgICAgICAgICAgImF1dGhvciI6IGF1dGhvciwKKyAgICAg
ICAgICAgICJyZXZpZXdlcl90ZXh0IjogIlJldmlld2VyIiwKKyAgICAgICAgICAgICJyZXZpZXdl
ciI6IHJldmlld2VyLAogICAgICAgICB9CiAgICAgICAgIGNvbW1pdCA9IENvbW1pdEluZm8oMTIz
LCAiY29tbWl0dGVyQGV4YW1wbGUuY29tIiwgY2hhbmdlbG9nX2RhdGEsIGNvbW1pdHRlcl9saXN0
KQotICAgICAgICAKKwogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdC5yZXZpc2lvbigp
LCAxMjMpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0LmJ1Z19pZCgpLCAxMjM0KQog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdC5hdXRob3JfbmFtZSgpLCAiQ29tbWl0dGVy
IikKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbW9ja19idWd6aWxs
YXRvb2wucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L21vY2tfYnVnemlsbGF0b29s
LnB5CmluZGV4IDY1NGUxM2MuLjg3YmUyYjAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbW9ja19idWd6aWxsYXRvb2wucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9tb2NrX2J1Z3ppbGxhdG9vbC5weQpAQCAtMzY2LDEyICszNjYsMTYgQEAgY2xh
c3MgTW9ja1NDTShNb2NrKToKIAogY2xhc3MgTW9ja1dlYktpdENoZWNrb3V0KG9iamVjdCk6CiAK
KyAgICBfY29tbWl0dGVyX2xpc3QgPSBDb21taXR0ZXJMaXN0KCkKKwogICAgIGRlZiBjb21taXRf
aW5mb19mb3JfcmV2aXNpb24oc2VsZiwgc3ZuX3JldmlzaW9uKToKICAgICAgICAgcmV0dXJuIENv
bW1pdEluZm8oc3ZuX3JldmlzaW9uLCAiZXJpY0B3ZWJraXQub3JnIiwgewogICAgICAgICAgICAg
ImJ1Z19pZCI6IDQyLAogICAgICAgICAgICAgImF1dGhvcl9uYW1lIjogIkFkYW0gQmFydGgiLAog
ICAgICAgICAgICAgImF1dGhvcl9lbWFpbCI6ICJhYmFydGhAd2Via2l0Lm9yZyIsCi0gICAgICAg
ICAgICAicmV2aWV3ZXJfdGV4dCI6ICJEYXJpbiBBZGxlciIKKyAgICAgICAgICAgICJhdXRob3Ii
OiBzZWxmLl9jb21taXR0ZXJfbGlzdC5jb21taXR0ZXJfYnlfZW1haWwoImFiYXJ0aEB3ZWJraXQu
b3JnIiksCisgICAgICAgICAgICAicmV2aWV3ZXJfdGV4dCI6ICJEYXJpbiBBZGxlciIsCisgICAg
ICAgICAgICAicmV2aWV3ZXIiOiBzZWxmLl9jb21taXR0ZXJfbGlzdC5jb21taXR0ZXJfYnlfbmFt
ZSgiRGFyaW4gQWRsZXIiKSwKICAgICAgICAgfSkKIAogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0ZXBzL19faW5pdF9fLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9zdGVwcy9fX2luaXRfXy5weQppbmRleCBiZGIyNTIwLi5lZGRkMGFkIDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0ZXBzL19faW5pdF9fLnB5Cisr
KyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3RlcHMvX19pbml0X18ucHkKQEAgLTU1
LDMgKzU1LDQgQEAgZnJvbSB3ZWJraXRweS5zdGVwcy5yZXZlcnRyZXZpc2lvbiBpbXBvcnQgUmV2
ZXJ0UmV2aXNpb24KIGZyb20gd2Via2l0cHkuc3RlcHMucnVudGVzdHMgaW1wb3J0IFJ1blRlc3Rz
CiBmcm9tIHdlYmtpdHB5LnN0ZXBzLnVwZGF0ZWNoYW5nZWxvZ3N3aXRocmV2aWV3ZXIgaW1wb3J0
IFVwZGF0ZUNoYW5nZUxvZ3NXaXRoUmV2aWV3ZXIKIGZyb20gd2Via2l0cHkuc3RlcHMudXBkYXRl
IGltcG9ydCBVcGRhdGUKK2Zyb20gd2Via2l0cHkuc3RlcHMudmFsaWRhdGVyZXZpZXdlciBpbXBv
cnQgVmFsaWRhdGVSZXZpZXdlcgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdGVwcy92YWxpZGF0ZXJldmlld2VyLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdGVwcy92YWxpZGF0ZXJldmlld2VyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmVjMGM0Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3N0ZXBzL3ZhbGlkYXRlcmV2aWV3ZXIucHkKQEAgLTAsMCArMSw0NCBAQAorIyBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMgCisjICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgor
IyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisjIAorIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBvcworCitmcm9tIHdlYmtpdHB5LnN0ZXBzLmFic3Ry
YWN0c3RlcCBpbXBvcnQgQWJzdHJhY3RTdGVwCitmcm9tIHdlYmtpdHB5LndlYmtpdF9sb2dnaW5n
IGltcG9ydCBlcnJvcgorCisKK2NsYXNzIFZhbGlkYXRlUmV2aWV3ZXIoQWJzdHJhY3RTdGVwKToK
KyAgICBkZWYgcnVuKHNlbGYsIHN0YXRlKToKKyAgICAgICAgb3MuY2hkaXIoc2VsZi5fdG9vbC5z
Y20oKS5jaGVja291dF9yb290KQorICAgICAgICBmb3IgY2hhbmdlbG9nX3BhdGggaW4gc2VsZi5f
dG9vbC5zY20oKS5tb2RpZmllZF9jaGFuZ2Vsb2dzKCk6CisgICAgICAgICAgICBjaGFuZ2Vsb2df
ZW50cnkgPSBDaGFuZ2VMb2coY2hhbmdlbG9nX3BhdGgpLmxhdGVzdF9lbnRyeSgpCisgICAgICAg
ICAgICBpZiBjaGFuZ2Vsb2dfZW50cnkucmV2aWV3ZXIoKToKKyAgICAgICAgICAgICAgICBjb250
aW51ZQorICAgICAgICAgICAgaWYgY2hhbmdlbG9nX2VudHJ5LmNvbnRlbnRzKCkubG93ZXIoKS5m
aW5kKCJ1bnJldmlld2VkIik6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAg
IGVycm9yKCclcyBuZWl0aGVyIGxpc3RzIGEgdmFsaWQgcmV2aWV3ZXIgbm9yIGNvbnRhaW5zIHRo
ZSBzdHJpbmcgIlVucmV2aWV3ZWQiLicpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51588</attachid>
            <date>2010-03-24 20:42:18 -0700</date>
            <delta_ts>2010-03-24 20:44:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26927-20100324204216.patch</filename>
            <type>text/plain</type>
            <size>11304</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBjOTM0OGEyLi5hZWNlZTU2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTAtMDMt
MjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3ZWJraXQtcGF0Y2ggb3IgcHJlLWNvbW1pdCBo
b29rIHNob3VsZCB2YWxpZGF0ZSByZXZpZXdlciBsaW5lcyBiZWZvcmUgY29tbWl0dGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY5MjcKKworICAg
ICAgICBWYWxpZGF0ZSB0aGF0IHBhdGNoZXMgaGF2ZSB2YWxpZCByZWl2ZXdlcnMgbGlzdGVkIGlu
IHRoZWlyIENoYW5nZUxvZ3MKKyAgICAgICAgYmVmb3JlIGxhbmRpbmcuICBGb3IgcGF0Y2hlcyB3
aXRob3V0IHJldmlld2VycyBjYW4gYmUgbGFuZGVkIGlmIHRoZWlyCisgICAgICAgIENoYW5nZUxv
Z3Mgc3RhdGUgdGhhdCB0aGV5IGFyZSB1bnJldmlld2VkLgorCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9jaGFuZ2Vsb2dzLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbWFu
ZHMvZG93bmxvYWQucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21taXRpbmZvLnB5
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbWl0aW5mb191bml0dGVzdC5weToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L21vY2tfYnVnemlsbGF0b29sLnB5OgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvc3RlcHMvX19pbml0X18ucHk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9zdGVwcy92YWxpZGF0ZXJldmlld2VyLnB5OiBBZGRlZC4KKwogMjAxMC0wMy0xOSAg
SG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIgIDx6ZWNrZUBzZWxmaXNoLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY2hhbmdlbG9ncy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y2hhbmdlbG9ncy5weQppbmRleCBjMmY3MmQ1Li43ZTVhYTE4IDEwMDY0NAotLS0gYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NoYW5nZWxvZ3MucHkKKysrIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jaGFuZ2Vsb2dzLnB5CkBAIC0zNCw2ICszNCw3IEBAIGltcG9ydCByZQog
aW1wb3J0IHRleHR3cmFwCiAKIGZyb20gd2Via2l0cHkud2Via2l0X2xvZ2dpbmcgaW1wb3J0IGxv
ZworZnJvbSB3ZWJraXRweS5jb21taXR0ZXJzIGltcG9ydCBDb21taXR0ZXJMaXN0CiAKIGRlZiB2
aWV3X3NvdXJjZV91cmwocmV2aXNpb25fbnVtYmVyKToKICAgICAjIEZJTVhFOiBUaGlzIGRvZXNu
J3QgcmVhbGx5IGJlbG9uZyBpbiB0aGlzIGZpbGUsIGJ1dCB3ZSBkb24ndCBoYXZlIGEKQEAgLTUw
LDggKzUxLDkgQEAgY2xhc3MgQ2hhbmdlTG9nRW50cnkob2JqZWN0KToKICAgICAjIGUuZy4gMjAw
OS0wNi0wMyAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAgICAgZGF0ZV9saW5lX3Jl
Z2V4cCA9IHInXig/UDxkYXRlPlxkezR9LVxkezJ9LVxkezJ9KVxzKyg/UDxuYW1lPi4rPylccys8
KD9QPGVtYWlsPltePD5dKyk+JCcKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb250ZW50cyk6
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbnRlbnRzLCBjb21taXR0ZXJfbGlzdD1Db21taXR0
ZXJMaXN0KCkpOgogICAgICAgICBzZWxmLl9jb250ZW50cyA9IGNvbnRlbnRzCisgICAgICAgIHNl
bGYuX2NvbW1pdHRlcl9saXN0ID0gY29tbWl0dGVyX2xpc3QKICAgICAgICAgc2VsZi5fcGFyc2Vf
ZW50cnkoKQogCiAgICAgZGVmIF9wYXJzZV9lbnRyeShzZWxmKToKQEAgLTY2LDE3ICs2OCwyNiBA
QCBjbGFzcyBDaGFuZ2VMb2dFbnRyeShvYmplY3QpOgogICAgICAgICBtYXRjaCA9IHJlLnNlYXJj
aCgiXlxzK1Jldmlld2VkIGJ5ICg/UDxyZXZpZXdlcj4uKj8pW1wuLF0/XHMqJCIsIHNlbGYuX2Nv
bnRlbnRzLCByZS5NVUxUSUxJTkUpICMgRGlzY2FyZCBldmVyeXRoaW5nIGFmdGVyIHRoZSBmaXJz
dCBwZXJpb2QKICAgICAgICAgc2VsZi5fcmV2aWV3ZXJfdGV4dCA9IG1hdGNoLmdyb3VwKCJyZXZp
ZXdlciIpIGlmIG1hdGNoIGVsc2UgTm9uZQogCisgICAgICAgIHNlbGYuX3Jldmlld2VyID0gc2Vs
Zi5fY29tbWl0dGVyX2xpc3QuY29tbWl0dGVyX2J5X25hbWUoc2VsZi5fcmV2aWV3ZXJfdGV4dCkK
KyAgICAgICAgc2VsZi5fYXV0aG9yID0gc2VsZi5fY29tbWl0dGVyX2xpc3QuY29tbWl0dGVyX2J5
X2VtYWlsKHNlbGYuX2F1dGhvcl9lbWFpbCkgb3Igc2VsZi5fY29tbWl0dGVyX2xpc3QuY29tbWl0
dGVyX2J5X25hbWUoc2VsZi5fYXV0aG9yX25hbWUpCisKICAgICBkZWYgYXV0aG9yX25hbWUoc2Vs
Zik6CiAgICAgICAgIHJldHVybiBzZWxmLl9hdXRob3JfbmFtZQogCiAgICAgZGVmIGF1dGhvcl9l
bWFpbChzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2F1dGhvcl9lbWFpbAogCisgICAgZGVm
IGF1dGhvcihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2F1dGhvciAjIE1pZ2h0IGJlIE5v
bmUKKwogICAgICMgRklYTUU6IEV2ZW50dWFsbHkgd2Ugd291bGQgbGlrZSB0byBtYXAgcmV2aXdl
ciBuYW1lcyB0byByZXZpZXdlciBvYmplY3RzLgogICAgICMgU2VlIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjUzMwogICAgIGRlZiByZXZpZXdlcl90ZXh0KHNlbGYp
OgogICAgICAgICByZXR1cm4gc2VsZi5fcmV2aWV3ZXJfdGV4dAogCisgICAgZGVmIHJldmlld2Vy
KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fcmV2aWV3ZXIgIyBNaWdodCBiZSBOb25lCisK
ICAgICBkZWYgY29udGVudHMoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl9jb250ZW50cwog
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL2Rvd25s
b2FkLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9kb3dubG9hZC5w
eQppbmRleCBlYTY4MmQ1Li4yYmNjOWQwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1hbmRzL2Rvd25sb2FkLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbWFuZHMvZG93bmxvYWQucHkKQEAgLTc0LDYgKzc0LDcgQEAgY2xhc3MgTGFu
ZChBYnN0cmFjdFNlcXVlbmNlZENvbW1hbmQpOgogICAgIHN0ZXBzID0gWwogICAgICAgICBzdGVw
cy5FbnN1cmVCdWlsZGVyc0FyZUdyZWVuLAogICAgICAgICBzdGVwcy5VcGRhdGVDaGFuZ2VMb2dz
V2l0aFJldmlld2VyLAorICAgICAgICBzdGVwcy5WYWxpZGF0ZVJldmlld2VyLAogICAgICAgICBz
dGVwcy5FbnN1cmVCdWlsZGVyc0FyZUdyZWVuLAogICAgICAgICBzdGVwcy5CdWlsZCwKICAgICAg
ICAgc3RlcHMuUnVuVGVzdHMsCkBAIC0yMDksNiArMjEwLDcgQEAgY2xhc3MgQWJzdHJhY3RQYXRj
aExhbmRpbmdDb21tYW5kKEFic3RyYWN0UGF0Y2hTZXF1ZW5jaW5nQ29tbWFuZCk6CiAgICAgICAg
IHN0ZXBzLkNsZWFuV29ya2luZ0RpcmVjdG9yeSwKICAgICAgICAgc3RlcHMuVXBkYXRlLAogICAg
ICAgICBzdGVwcy5BcHBseVBhdGNoLAorICAgICAgICBzdGVwcy5WYWxpZGF0ZVJldmlld2VyLAog
ICAgICAgICBzdGVwcy5FbnN1cmVCdWlsZGVyc0FyZUdyZWVuLAogICAgICAgICBzdGVwcy5CdWls
ZCwKICAgICAgICAgc3RlcHMuUnVuVGVzdHMsCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1pdGluZm8ucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1pdGluZm8ucHkKaW5kZXggMTQ5YTg5YS4uMzE5OTI4ZCAxMDA2NDQKLS0tIGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21taXRpbmZvLnB5CisrKyBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbWl0aW5mby5weQpAQCAtNTMsMTAgKzUzLDEyIEBAIGNsYXNzIENv
bW1pdEluZm8ob2JqZWN0KToKICAgICAgICAgIyBBc3N1bWUgZm9yIG5vdyB0aGF0IHRoZSBmaXJz
dCBlbnRyeSBoYXMgZXZlcnl0aGluZyB3ZSBuZWVkOgogICAgICAgICBjaGFuZ2Vsb2dfZW50cnkg
PSBjaGFuZ2Vsb2dfZW50cmllc1swXQogICAgICAgICBjaGFuZ2Vsb2dfZGF0YSA9IHsKLSAgICAg
ICAgICAgICJidWdfaWQiIDogcGFyc2VfYnVnX2lkKGNoYW5nZWxvZ19lbnRyeS5jb250ZW50cygp
KSwKLSAgICAgICAgICAgICJhdXRob3JfbmFtZSIgOiBjaGFuZ2Vsb2dfZW50cnkuYXV0aG9yX25h
bWUoKSwKLSAgICAgICAgICAgICJhdXRob3JfZW1haWwiIDogY2hhbmdlbG9nX2VudHJ5LmF1dGhv
cl9lbWFpbCgpLAotICAgICAgICAgICAgInJldmlld2VyX3RleHQiIDogY2hhbmdlbG9nX2VudHJ5
LnJldmlld2VyX3RleHQoKSwKKyAgICAgICAgICAgICJidWdfaWQiOiBwYXJzZV9idWdfaWQoY2hh
bmdlbG9nX2VudHJ5LmNvbnRlbnRzKCkpLAorICAgICAgICAgICAgImF1dGhvcl9uYW1lIjogY2hh
bmdlbG9nX2VudHJ5LmF1dGhvcl9uYW1lKCksCisgICAgICAgICAgICAiYXV0aG9yX2VtYWlsIjog
Y2hhbmdlbG9nX2VudHJ5LmF1dGhvcl9lbWFpbCgpLAorICAgICAgICAgICAgImF1dGhvciI6IGNo
YW5nZWxvZ19lbnRyeS5hdXRob3IoKSwKKyAgICAgICAgICAgICJyZXZpZXdlcl90ZXh0IjogY2hh
bmdlbG9nX2VudHJ5LnJldmlld2VyX3RleHQoKSwKKyAgICAgICAgICAgICJyZXZpZXdlciI6IGNo
YW5nZWxvZ19lbnRyeS5yZXZpZXdlcigpLAogICAgICAgICB9CiAgICAgICAgICMgV2UgY291bGQg
cGFzcyB0aGUgY2hhbmdlbG9nX2VudHJ5IGluc3RlYWQgb2YgYSBkaWN0aW9uYXJ5IGhlcmUsIGJ1
dCB0aGF0IG1ha2VzCiAgICAgICAgICMgbW9ja2luZyBzbGlnaHRseSBtb3JlIGludm9sdmVkLCBh
bmQgd291bGQgbWFrZSBhZ2dyZWdhdGluZyBkYXRhIGZyb20gbXVsdGlwbGUKQEAgLTY5LDExICs3
MSwxMSBAQCBjbGFzcyBDb21taXRJbmZvKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX2J1Z19pZCA9
IGNoYW5nZWxvZ19kYXRhWyJidWdfaWQiXQogICAgICAgICBzZWxmLl9hdXRob3JfbmFtZSA9IGNo
YW5nZWxvZ19kYXRhWyJhdXRob3JfbmFtZSJdCiAgICAgICAgIHNlbGYuX2F1dGhvcl9lbWFpbCA9
IGNoYW5nZWxvZ19kYXRhWyJhdXRob3JfZW1haWwiXQorICAgICAgICBzZWxmLl9hdXRob3IgPSBj
aGFuZ2Vsb2dfZGF0YVsiYXV0aG9yIl0KICAgICAgICAgc2VsZi5fcmV2aWV3ZXJfdGV4dCA9IGNo
YW5nZWxvZ19kYXRhWyJyZXZpZXdlcl90ZXh0Il0KKyAgICAgICAgc2VsZi5fcmV2aWV3ZXIgPSBj
aGFuZ2Vsb2dfZGF0YVsicmV2aWV3ZXIiXQogCiAgICAgICAgICMgRGVyaXZlZCB2YWx1ZXM6Ci0g
ICAgICAgIHNlbGYuX3Jldmlld2VyID0gY29tbWl0dGVyX2xpc3QuY29tbWl0dGVyX2J5X25hbWUo
c2VsZi5fcmV2aWV3ZXJfdGV4dCkKLSAgICAgICAgc2VsZi5fYXV0aG9yID0gY29tbWl0dGVyX2xp
c3QuY29tbWl0dGVyX2J5X2VtYWlsKHNlbGYuX2F1dGhvcl9lbWFpbCkgb3IgY29tbWl0dGVyX2xp
c3QuY29tbWl0dGVyX2J5X25hbWUoc2VsZi5fYXV0aG9yX25hbWUpCiAgICAgICAgIHNlbGYuX2Nv
bW1pdHRlciA9IGNvbW1pdHRlcl9saXN0LmNvbW1pdHRlcl9ieV9lbWFpbChjb21taXR0ZXJfZW1h
aWwpCiAKICAgICBkZWYgcmV2aXNpb24oc2VsZik6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1pdGluZm9fdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1pdGluZm9fdW5pdHRlc3QucHkKaW5kZXggNzJlNjFjNi4uMWFjNzRm
ZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21taXRpbmZvX3Vu
aXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWl0aW5mb191
bml0dGVzdC5weQpAQCAtMzIsNyArMzIsNyBAQCBmcm9tIGNvbW1pdHRlcnMgaW1wb3J0IENvbW1p
dHRlckxpc3QsIENvbW1pdHRlciwgUmV2aWV3ZXIKIGZyb20gY29tbWl0aW5mbyBpbXBvcnQgQ29t
bWl0SW5mbwogCiBjbGFzcyBDb21taXRJbmZvVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAg
CisKICAgICBkZWYgdGVzdF9jb21taXRfaW5mb19jcmVhdGlvbihzZWxmKToKICAgICAgICAgYXV0
aG9yID0gQ29tbWl0dGVyKCJBdXRob3IiLCAiYXV0aG9yQGV4YW1wbGUuY29tIikKICAgICAgICAg
Y29tbWl0dGVyID0gQ29tbWl0dGVyKCJDb21taXR0ZXIiLCAiY29tbWl0dGVyQGV4YW1wbGUuY29t
IikKQEAgLTQwLDEzICs0MCwxNSBAQCBjbGFzcyBDb21taXRJbmZvVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6CiAgICAgICAgIGNvbW1pdHRlcl9saXN0ID0gQ29tbWl0dGVyTGlzdChjb21taXR0ZXJz
PVthdXRob3IsIGNvbW1pdHRlcl0sIHJldmlld2Vycz1bcmV2aWV3ZXJdKQogCiAgICAgICAgIGNo
YW5nZWxvZ19kYXRhID0gewotICAgICAgICAgICAgImJ1Z19pZCIgOiAxMjM0LAotICAgICAgICAg
ICAgImF1dGhvcl9uYW1lIiA6ICJDb21taXR0ZXIiLAotICAgICAgICAgICAgImF1dGhvcl9lbWFp
bCIgOiAiYXV0aG9yQGV4YW1wbGUuY29tIiwKLSAgICAgICAgICAgICJyZXZpZXdlcl90ZXh0IiA6
ICJSZXZpZXdlciIsCisgICAgICAgICAgICAiYnVnX2lkIjogMTIzNCwKKyAgICAgICAgICAgICJh
dXRob3JfbmFtZSI6ICJDb21taXR0ZXIiLAorICAgICAgICAgICAgImF1dGhvcl9lbWFpbCI6ICJh
dXRob3JAZXhhbXBsZS5jb20iLAorICAgICAgICAgICAgImF1dGhvciI6IGF1dGhvciwKKyAgICAg
ICAgICAgICJyZXZpZXdlcl90ZXh0IjogIlJldmlld2VyIiwKKyAgICAgICAgICAgICJyZXZpZXdl
ciI6IHJldmlld2VyLAogICAgICAgICB9CiAgICAgICAgIGNvbW1pdCA9IENvbW1pdEluZm8oMTIz
LCAiY29tbWl0dGVyQGV4YW1wbGUuY29tIiwgY2hhbmdlbG9nX2RhdGEsIGNvbW1pdHRlcl9saXN0
KQotICAgICAgICAKKwogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdC5yZXZpc2lvbigp
LCAxMjMpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0LmJ1Z19pZCgpLCAxMjM0KQog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdC5hdXRob3JfbmFtZSgpLCAiQ29tbWl0dGVy
IikKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbW9ja19idWd6aWxs
YXRvb2wucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L21vY2tfYnVnemlsbGF0b29s
LnB5CmluZGV4IDY1NGUxM2MuLjg3YmUyYjAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbW9ja19idWd6aWxsYXRvb2wucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9tb2NrX2J1Z3ppbGxhdG9vbC5weQpAQCAtMzY2LDEyICszNjYsMTYgQEAgY2xh
c3MgTW9ja1NDTShNb2NrKToKIAogY2xhc3MgTW9ja1dlYktpdENoZWNrb3V0KG9iamVjdCk6CiAK
KyAgICBfY29tbWl0dGVyX2xpc3QgPSBDb21taXR0ZXJMaXN0KCkKKwogICAgIGRlZiBjb21taXRf
aW5mb19mb3JfcmV2aXNpb24oc2VsZiwgc3ZuX3JldmlzaW9uKToKICAgICAgICAgcmV0dXJuIENv
bW1pdEluZm8oc3ZuX3JldmlzaW9uLCAiZXJpY0B3ZWJraXQub3JnIiwgewogICAgICAgICAgICAg
ImJ1Z19pZCI6IDQyLAogICAgICAgICAgICAgImF1dGhvcl9uYW1lIjogIkFkYW0gQmFydGgiLAog
ICAgICAgICAgICAgImF1dGhvcl9lbWFpbCI6ICJhYmFydGhAd2Via2l0Lm9yZyIsCi0gICAgICAg
ICAgICAicmV2aWV3ZXJfdGV4dCI6ICJEYXJpbiBBZGxlciIKKyAgICAgICAgICAgICJhdXRob3Ii
OiBzZWxmLl9jb21taXR0ZXJfbGlzdC5jb21taXR0ZXJfYnlfZW1haWwoImFiYXJ0aEB3ZWJraXQu
b3JnIiksCisgICAgICAgICAgICAicmV2aWV3ZXJfdGV4dCI6ICJEYXJpbiBBZGxlciIsCisgICAg
ICAgICAgICAicmV2aWV3ZXIiOiBzZWxmLl9jb21taXR0ZXJfbGlzdC5jb21taXR0ZXJfYnlfbmFt
ZSgiRGFyaW4gQWRsZXIiKSwKICAgICAgICAgfSkKIAogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0ZXBzL19faW5pdF9fLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9zdGVwcy9fX2luaXRfXy5weQppbmRleCBiZGIyNTIwLi5lZGRkMGFkIDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0ZXBzL19faW5pdF9fLnB5Cisr
KyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3RlcHMvX19pbml0X18ucHkKQEAgLTU1
LDMgKzU1LDQgQEAgZnJvbSB3ZWJraXRweS5zdGVwcy5yZXZlcnRyZXZpc2lvbiBpbXBvcnQgUmV2
ZXJ0UmV2aXNpb24KIGZyb20gd2Via2l0cHkuc3RlcHMucnVudGVzdHMgaW1wb3J0IFJ1blRlc3Rz
CiBmcm9tIHdlYmtpdHB5LnN0ZXBzLnVwZGF0ZWNoYW5nZWxvZ3N3aXRocmV2aWV3ZXIgaW1wb3J0
IFVwZGF0ZUNoYW5nZUxvZ3NXaXRoUmV2aWV3ZXIKIGZyb20gd2Via2l0cHkuc3RlcHMudXBkYXRl
IGltcG9ydCBVcGRhdGUKK2Zyb20gd2Via2l0cHkuc3RlcHMudmFsaWRhdGVyZXZpZXdlciBpbXBv
cnQgVmFsaWRhdGVSZXZpZXdlcgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdGVwcy92YWxpZGF0ZXJldmlld2VyLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdGVwcy92YWxpZGF0ZXJldmlld2VyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjhiYjgyZmQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3N0ZXBzL3ZhbGlkYXRlcmV2aWV3ZXIucHkKQEAgLTAsMCArMSw0NyBAQAorIyBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMgCisjICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgor
IyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisjIAorIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBvcworaW1wb3J0IHJlCisKK2Zyb20gd2Via2l0cHku
c3RlcHMuYWJzdHJhY3RzdGVwIGltcG9ydCBBYnN0cmFjdFN0ZXAKK2Zyb20gd2Via2l0cHkud2Vi
a2l0X2xvZ2dpbmcgaW1wb3J0IGVycm9yCisKKworY2xhc3MgVmFsaWRhdGVSZXZpZXdlcihBYnN0
cmFjdFN0ZXApOgorICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgorICAgICAgICAjIEZJWE1FOiBX
ZSBzaG91bGQgZmlndXJlIG91dCBob3cgdG8gaGFuZGxlIHRoZSBjdXJyZW50IHdvcmtpbmcKKyAg
ICAgICAgIyAgICAgICAgZGlyZWN0b3J5IGlzc3VlIG1vcmUgZ2xvYmFsbHkuCisgICAgICAgIG9z
LmNoZGlyKHNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkKKyAgICAgICAgZm9yIGNoYW5n
ZWxvZ19wYXRoIGluIHNlbGYuX3Rvb2wuc2NtKCkubW9kaWZpZWRfY2hhbmdlbG9ncygpOgorICAg
ICAgICAgICAgY2hhbmdlbG9nX2VudHJ5ID0gQ2hhbmdlTG9nKGNoYW5nZWxvZ19wYXRoKS5sYXRl
c3RfZW50cnkoKQorICAgICAgICAgICAgaWYgY2hhbmdlbG9nX2VudHJ5LnJldmlld2VyKCk6Cisg
ICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIHJlLm1hdGNoKCJ1bnJldmll
d2VkIiwgY2hhbmdlbG9nX2VudHJ5LmNvbnRlbnRzKCksIHJlLklHTk9SRUNBU0UpOgorICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBlcnJvcignJXMgbmVpdGhlciBsaXN0cyBh
IHZhbGlkIHJldmlld2VyIG5vciBjb250YWlucyB0aGUgc3RyaW5nICJVbnJldmlld2VkIiAoY2Fz
ZSBpbnNlbnNpdGl2ZSkuJykK
</data>
<flag name="review"
          id="34865"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>