<?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>58288</bug_id>
          
          <creation_ts>2011-04-11 16:54:42 -0700</creation_ts>
          <short_desc>webkitpy: fix mock_filesystem abspath to handle relative paths</short_desc>
          <delta_ts>2011-04-12 13:34:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</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>58290</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>383680</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-11 16:54:42 -0700</bug_when>
    <thetext>webkitpy: fix mock_filesystem abspath to handle relative paths</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383684</commentid>
    <comment_count>1</comment_count>
      <attachid>89122</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-11 16:57:00 -0700</bug_when>
    <thetext>Created attachment 89122
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383738</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-11 18:20:24 -0700</bug_when>
    <thetext>This patch is needed to fix the way NRWT handles relative paths in --results-directory on a mock filesystem (right now MockFileSystem.abspath() is totally broken for relative paths).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383740</commentid>
    <comment_count>3</comment_count>
      <attachid>89122</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-04-11 18:22:15 -0700</bug_when>
    <thetext>Comment on attachment 89122
Patch

Just pick a fake path for getcwd().  Like /tmp/fakepath.  We shouldn&apos;t depend on cwd in the unit tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383766</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-11 19:15:34 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 89122 [details])
&gt; Just pick a fake path for getcwd().  Like /tmp/fakepath.  We shouldn&apos;t depend on cwd in the unit tests.

I agree that we shouldn&apos;t depend on the cwd in the unit tests.  If you look at the tests in bug 58272 (where this ends up getting set), we mock out os.getcwd() there, which is the only place (so far) where this functionality is needed.

I&apos;m not exactly sure what you mean by pick a fake path, but if you mean we should just use &quot;/tmp/fakepath&quot; instead of calling os.getcwd() inside this file, then I&apos;m a bit reluctant to do that because it might limit what can be tested where.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383772</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-04-11 19:23:27 -0700</bug_when>
    <thetext>We pick a fake path for Scm.checkout_root for similar reasons.  I agree it would be ugly to put /tmp/fakepath (or similar) in one place.  So maybe we should have some shared fake cwd variable.

I mean, the patch is OK.  But dependencies on os.getcwd() are going to come back and bite us.  We have slowly been removing our os.chdir() calls (which were previously needed to keep the unit tests passing).  I worry that this one could be giving us another source of such trouble.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383776</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-11 19:39:52 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; We pick a fake path for Scm.checkout_root for similar reasons.  I agree it would be ugly to put /tmp/fakepath (or similar) in one place.  So maybe we should have some shared fake cwd variable.
&gt; 
&gt; I mean, the patch is OK.  But dependencies on os.getcwd() are going to come back and bite us.  We have slowly been removing our os.chdir() calls (which were previously needed to keep the unit tests passing).  I worry that this one could be giving us another source of such trouble.

I agree with what you are saying. I thought about adding filesystem.getcwd() and filesystem.setcwd() but they felt wrong because it&apos;s a property of the running process, not the filesystem. I couldn&apos;t think of a better place to add it, but maybe filesystem is better than nothing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384225</commentid>
    <comment_count>7</comment_count>
      <attachid>89237</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-12 12:04:06 -0700</bug_when>
    <thetext>Created attachment 89237
add chdir/getcwd so we can test and mock relative paths properly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384226</commentid>
    <comment_count>8</comment_count>
      <attachid>89237</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-04-12 12:05:11 -0700</bug_when>
    <thetext>Comment on attachment 89237
add chdir/getcwd so we can test and mock relative paths properly

View in context: https://bugs.webkit.org/attachment.cgi?id=89237&amp;action=review

OK.  This seems useful.

&gt; Tools/Scripts/webkitpy/common/system/filesystem_mock.py:70
&gt; +        # FIXME: we probably need some consistent way of mocking out getcwd.

Except don&apos;t you plan to use it here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384247</commentid>
    <comment_count>9</comment_count>
      <attachid>89244</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-12 12:33:30 -0700</bug_when>
    <thetext>Created attachment 89244
fix bug in abspath, clean up handling of directories and normalized paths</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384260</commentid>
    <comment_count>10</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-12 12:42:48 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 89237 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=89237&amp;action=review
&gt; 
&gt; OK.  This seems useful.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/common/system/filesystem_mock.py:70
&gt; &gt; +        # FIXME: we probably need some consistent way of mocking out getcwd.
&gt; 
&gt; Except don&apos;t you plan to use it here?

Yeah, this is the downside of (a) breaking a single patch into three patches and (b) not having unit tests for filesystem_mock. We probably need to write the latter at some point since more and more things are depending on it and the logic is getting bigger and bigger.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384263</commentid>
    <comment_count>11</comment_count>
      <attachid>89244</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-04-12 12:43:32 -0700</bug_when>
    <thetext>Comment on attachment 89244
fix bug in abspath, clean up handling of directories and normalized paths

View in context: https://bugs.webkit.org/attachment.cgi?id=89244&amp;action=review

OK.  Seems reasonable.

&gt; Tools/Scripts/webkitpy/common/system/filesystem_mock.py:52
&gt; +        self.dirs = {}

I&quot;m unclear on exactly what this does.  I assume this is dirs for the cwd?  Or is this all dirs for the mock file system? I&apos;m unclear why its part of thsi change, but I also doubt it matters. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384291</commentid>
    <comment_count>12</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-12 13:15:59 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 89244 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=89244&amp;action=review
&gt; 
&gt; OK.  Seems reasonable.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/common/system/filesystem_mock.py:52
&gt; &gt; +        self.dirs = {}
&gt; 
&gt; I&quot;m unclear on exactly what this does.  I assume this is dirs for the cwd?  Or is this all dirs for the mock file system? I&apos;m unclear why its part of thsi change, but I also doubt it matters. :)

The previous logic for figuring out whether or not something was a directory relied on prefix matches of the file names in self.files. If you set the cwd to a value that didn&apos;t match any of the existing files, it would have failed subsequent isdir() checks. In addition, maybe_make_dir() wasn&apos;t implemented, which meant that you couldn&apos;t create a directory and then cd to it.

All of these things were needed in order for test that actually uses to pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384314</commentid>
    <comment_count>13</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-12 13:34:59 -0700</bug_when>
    <thetext>Committed r83631: &lt;http://trac.webkit.org/changeset/83631&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89122</attachid>
            <date>2011-04-11 16:57:00 -0700</date>
            <delta_ts>2011-04-12 12:04:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58288-20110411165658.patch</filename>
            <type>text/plain</type>
            <size>1581</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODM0NzcKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3OTdmZWRhNWFiOWZlODU4MjFlMGM0NzI3NjcwNTE2YjMx
ZDNjMzg1Li5jYzc5NWI1ZjE4NWU3YmJjMTU1YzFjM2JlM2UzN2FkZGM0Yzc2ZTAyIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTQg
QEAKIDIwMTEtMDQtMTEgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgd2Via2l0cHk6IGZp
eCBtb2NrX2ZpbGVzeXN0ZW0gYWJzcGF0aCB0byBoYW5kbGUgcmVsYXRpdmUgcGF0aHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4Mjg4CisKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV9tb2NrLnB5Ogor
CisyMDExLTA0LTExICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCiAgICAg
ICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCiAKICAgICAgICAgbmV3LXJ1bi13ZWJraXQtdGVz
dHM6IGZpeCBjcmFzaCB3aGVuIHJ1bm5pbmcgdW5kZXIgd2luZG93cyBjbWQuZXhlCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV9tb2Nr
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fbW9j
ay5weQppbmRleCBmYTdjNzQ1MjRlYjg2NzJiMzZhYWY4MDg4NmRhNzAzMDk3MjkzZDcxLi4zMjQw
MmE1YWQ2Njk4NmE4OWMwZWJlNzgyNTM2YTlmMjFhMGVmYzA2IDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV9tb2NrLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX21vY2sucHkKQEAg
LTYxLDkgKzYxLDEzIEBAIGNsYXNzIE1vY2tGaWxlU3lzdGVtKG9iamVjdCk6CiAgICAgICAgIHJl
dHVybiBwYXRoLnJzcGxpdChzZWxmLnNlcCwgMSkKIAogICAgIGRlZiBhYnNwYXRoKHNlbGYsIHBh
dGgpOgotICAgICAgICBpZiBwYXRoLmVuZHN3aXRoKHNlbGYuc2VwKToKLSAgICAgICAgICAgIHJl
dHVybiBwYXRoWzotMV0KLSAgICAgICAgcmV0dXJuIHBhdGgKKyAgICAgICAgaWYgcGF0aC5zdGFy
dHN3aXRoKHNlbGYuc2VwKToKKyAgICAgICAgICAgIGlmIHBhdGguZW5kc3dpdGgoc2VsZi5zZXAp
OgorICAgICAgICAgICAgICAgIHJldHVybiBwYXRoWzotMV0KKyAgICAgICAgICAgIHJldHVybiBw
YXRoCisKKyAgICAgICAgIyBGSVhNRTogd2UgcHJvYmFibHkgbmVlZCBzb21lIGNvbnNpc3RlbnQg
d2F5IG9mIG1vY2tpbmcgb3V0IGdldGN3ZC4KKyAgICAgICAgcmV0dXJuIHNlbGYuYWJzcGF0aChz
ZWxmLmpvaW4ob3MuZ2V0Y3dkKCksIHBhdGgpKQogCiAgICAgZGVmIGJhc2VuYW1lKHNlbGYsIHBh
dGgpOgogICAgICAgICByZXR1cm4gc2VsZi5fc3BsaXQocGF0aClbMV0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89237</attachid>
            <date>2011-04-12 12:04:06 -0700</date>
            <delta_ts>2011-04-12 12:33:27 -0700</delta_ts>
            <desc>add chdir/getcwd so we can test and mock relative paths properly</desc>
            <filename>bug-58288-20110412120405.patch</filename>
            <type>text/plain</type>
            <size>5461</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODM0NzcKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3OTdmZWRhNWFiOWZlODU4MjFlMGM0NzI3NjcwNTE2YjMx
ZDNjMzg1Li40ODZjZTEwYTk5OTVmYTMwZTZlN2VjYjllNjg3YTQ2ZDdlZDYxODEwIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkg
QEAKIDIwMTEtMDQtMTEgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgd2Via2l0cHk6IGZp
eCBtb2NrX2ZpbGVzeXN0ZW0gYWJzcGF0aCB0byBoYW5kbGUgcmVsYXRpdmUgcGF0aHMKKyAgICAg
ICAgYW5kIGFkZCBmaWxlc3lzdGVtLmNoZGlyKCkgYW5kIGZpbGVzeXN0ZW0uZ2V0Y3dkKCkgdG8g
YmUgYWJsZQorICAgICAgICB0byB0ZXN0IHRoaXMgYW5kIG1vY2sgaXQgb3V0LgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODI4OAorCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW0ucHk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fbW9jay5weToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV91bml0dGVz
dC5weToKKworMjAxMS0wNC0xMSAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4K
KwogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIFJvYmVuLgogCiAgICAgICAgIG5ldy1ydW4td2Vi
a2l0LXRlc3RzOiBmaXggY3Jhc2ggd2hlbiBydW5uaW5nIHVuZGVyIHdpbmRvd3MgY21kLmV4ZQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0
ZW0ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbS5w
eQppbmRleCAxOTg4NTQ2YzYxNzFjOTAzODZiMjZhNDI2M2MzYjhhNzM0YzIwNzU3Li41OGJlMDNh
OWVjNjRmMTQzM2FlYzY5YTcwY2RjYzQzNmM4YTBiZDE5IDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbS5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbS5weQpAQCAtNjEsNiArNjEsMTAg
QEAgY2xhc3MgRmlsZVN5c3RlbShvYmplY3QpOgogICAgICAgICAiIiJXcmFwcyBvcy5wYXRoLmJh
c2VuYW1lKCkuIiIiCiAgICAgICAgIHJldHVybiBvcy5wYXRoLmJhc2VuYW1lKHBhdGgpCiAKKyAg
ICBkZWYgY2hkaXIoc2VsZiwgcGF0aCk6CisgICAgICAgICIiIldyYXBzIG9zLmNoZGlyKCkuIiIi
CisgICAgICAgIHJldHVybiBvcy5jaGRpcihwYXRoKQorCiAgICAgZGVmIGNvcHlmaWxlKHNlbGYs
IHNvdXJjZSwgZGVzdGluYXRpb24pOgogICAgICAgICAiIiJDb3BpZXMgdGhlIGNvbnRlbnRzIG9m
IHRoZSBmaWxlIGF0IHRoZSBnaXZlbiBwYXRoIHRvIHRoZSBkZXN0aW5hdGlvbgogICAgICAgICBw
YXRoLiIiIgpAQCAtMTA4LDYgKzExMiwxMCBAQCBjbGFzcyBGaWxlU3lzdGVtKG9iamVjdCk6CiAg
ICAgICAgICAgICAgICAgICAgIGZpbGVzLmFwcGVuZChzZWxmLmpvaW4oZGlycGF0aCwgZmlsZW5h
bWUpKQogICAgICAgICByZXR1cm4gZmlsZXMKIAorICAgIGRlZiBnZXRjd2Qoc2VsZik6CisgICAg
ICAgICIiIldyYXBzIG9zLmdldGN3ZCgpLiIiIgorICAgICAgICByZXR1cm4gb3MuZ2V0Y3dkKCkK
KwogICAgIGRlZiBnbG9iKHNlbGYsIHBhdGgpOgogICAgICAgICAiIiJXcmFwcyBnbG9iLmdsb2Io
KS4iIiIKICAgICAgICAgcmV0dXJuIGdsb2IuZ2xvYihwYXRoKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fbW9jay5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX21vY2sucHkKaW5kZXgg
ZmE3Yzc0NTI0ZWI4NjcyYjM2YWFmODA4ODZkYTcwMzA5NzI5M2Q3MS4uZjJlZjU0Y2JkNTc0ZDI0
MTdkMmY3ZjRkYzBhMjE1ZGJkNmQ0Y2IyMCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fbW9jay5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV9tb2NrLnB5CkBAIC0zNSw3ICszNSw3
IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgb3NwYXRoCiAKIAogY2xhc3Mg
TW9ja0ZpbGVTeXN0ZW0ob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZmlsZXM9Tm9u
ZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVzPU5vbmUsIGN3ZD0nLycpOgogICAgICAg
ICAiIiJJbml0aWFsaXplcyBhICJtb2NrIiBmaWxlc3lzdGVtIHRoYXQgY2FuIGJlIHVzZWQgdG8g
Y29tcGxldGVseQogICAgICAgICBzdHViIG91dCBhIGZpbGVzeXN0ZW0uCiAKQEAgLTQ4LDYgKzQ4
LDcgQEAgY2xhc3MgTW9ja0ZpbGVTeXN0ZW0ob2JqZWN0KToKICAgICAgICAgc2VsZi53cml0dGVu
X2ZpbGVzID0ge30KICAgICAgICAgc2VsZi5fc2VwID0gJy8nCiAgICAgICAgIHNlbGYuY3VycmVu
dF90bXBubyA9IDAKKyAgICAgICAgc2VsZi5jd2QgPSBjd2QKIAogICAgIGRlZiBfZ2V0X3NlcChz
ZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX3NlcApAQCAtNjEsMTMgKzYyLDIyIEBAIGNsYXNz
IE1vY2tGaWxlU3lzdGVtKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBwYXRoLnJzcGxpdChzZWxm
LnNlcCwgMSkKIAogICAgIGRlZiBhYnNwYXRoKHNlbGYsIHBhdGgpOgotICAgICAgICBpZiBwYXRo
LmVuZHN3aXRoKHNlbGYuc2VwKToKLSAgICAgICAgICAgIHJldHVybiBwYXRoWzotMV0KLSAgICAg
ICAgcmV0dXJuIHBhdGgKKyAgICAgICAgaWYgcGF0aC5zdGFydHN3aXRoKHNlbGYuc2VwKToKKyAg
ICAgICAgICAgIGlmIHBhdGguZW5kc3dpdGgoc2VsZi5zZXApOgorICAgICAgICAgICAgICAgIHJl
dHVybiBwYXRoWzotMV0KKyAgICAgICAgICAgIHJldHVybiBwYXRoCisKKyAgICAgICAgIyBGSVhN
RTogd2UgcHJvYmFibHkgbmVlZCBzb21lIGNvbnNpc3RlbnQgd2F5IG9mIG1vY2tpbmcgb3V0IGdl
dGN3ZC4KKyAgICAgICAgcmV0dXJuIHNlbGYuYWJzcGF0aChzZWxmLmpvaW4ob3MuZ2V0Y3dkKCks
IHBhdGgpKQogCiAgICAgZGVmIGJhc2VuYW1lKHNlbGYsIHBhdGgpOgogICAgICAgICByZXR1cm4g
c2VsZi5fc3BsaXQocGF0aClbMV0KIAorICAgIGRlZiBjaGRpcihzZWxmLCBwYXRoKToKKyAgICAg
ICAgaWYgbm90IHNlbGYuaXNkaXIocGF0aCk6CisgICAgICAgICAgICByYWlzZSBPU0Vycm9yKGVy
cm5vLkVOT0VOVCwgcGF0aCwgb3Muc3RyZXJyb3IoZXJybm8uRU5PRU5UKSkKKyAgICAgICAgc2Vs
Zi5jd2QgPSBwYXRoCisKICAgICBkZWYgY29weWZpbGUoc2VsZiwgc291cmNlLCBkZXN0aW5hdGlv
bik6CiAgICAgICAgIGlmIG5vdCBzZWxmLmV4aXN0cyhzb3VyY2UpOgogICAgICAgICAgICAgc2Vs
Zi5fcmFpc2Vfbm90X2ZvdW5kKHNvdXJjZSkKQEAgLTExNyw2ICsxMjcsOSBAQCBjbGFzcyBNb2Nr
RmlsZVN5c3RlbShvYmplY3QpOgogCiAgICAgICAgIHJldHVybiBmaWxlcwogCisgICAgZGVmIGdl
dGN3ZChzZWxmLCBwYXRoKToKKyAgICAgICAgcmV0dXJuIHNlbGYuY3dkCisKICAgICBkZWYgZ2xv
YihzZWxmLCBwYXRoKToKICAgICAgICAgIyBGSVhNRTogVGhpcyBvbmx5IGhhbmRsZXMgYSB3aWxk
Y2FyZCAnKicgYXQgdGhlIGVuZCBvZiB0aGUgcGF0aC4KICAgICAgICAgIyBNYXliZSBpdCBzaG91
bGQgaGFuZGxlIG1vcmU/CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9zeXN0ZW0vZmlsZXN5c3RlbV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX3VuaXR0ZXN0LnB5CmluZGV4IDg0NTVkNzI5MDBjNDYx
YTVlOWNkYzkwMWUwN2Y5MTc0YjNlOWVmODEuLjhkNGYwY2I2MzhiZGRkNDFhOGVkZmVjOTllOGZk
NzgwMWY4YmMwMzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5
c3RlbS9maWxlc3lzdGVtX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX3VuaXR0ZXN0LnB5CkBAIC00OCw2ICs0OCwyMyBAQCBj
bGFzcyBGaWxlU3lzdGVtVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuX21p
c3NpbmdfZmlsZSA9IG9zLnBhdGguam9pbihzZWxmLl90aGlzX2RpciwgJ21pc3NpbmdfZmlsZS5w
eScpCiAgICAgICAgIHNlbGYuX3RoaXNfZmlsZSA9IG9zLnBhdGguam9pbihzZWxmLl90aGlzX2Rp
ciwgJ2ZpbGVzeXN0ZW1fdW5pdHRlc3QucHknKQogCisgICAgZGVmIHRlc3RfY2hkaXIoc2VsZik6
CisgICAgICAgIGZzID0gRmlsZVN5c3RlbSgpCisgICAgICAgIGN3ZCA9IGZzLmdldGN3ZCgpCisg
ICAgICAgIG5ld2RpciA9ICcvJworICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJzoK
KyAgICAgICAgICAgIG5ld2RpciA9ICdjOlxcJworICAgICAgICBmcy5jaGRpcihuZXdkaXIpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGZzLmdldGN3ZCgpLCBuZXdkaXIpCisgICAgICAgIGZz
LmNoZGlyKGN3ZCkKKworICAgIGRlZiB0ZXN0X2NoZGlyX19ub3RleGlzdHMoc2VsZik6CisgICAg
ICAgIGZzID0gRmlsZVN5c3RlbSgpCisgICAgICAgIG5ld2RpciA9ICcvZGlyZG9lc25vdGV4aXN0
JworICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJzoKKyAgICAgICAgICAgIG5ld2Rp
ciA9ICdjOlxcZGlyZG9lc25vdGV4aXN0JworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vy
cm9yLCBmcy5jaGRpciwgbmV3ZGlyKQorCiAgICAgZGVmIHRlc3RfZXhpc3RzX190cnVlKHNlbGYp
OgogICAgICAgICBmcyA9IEZpbGVTeXN0ZW0oKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoZnMu
ZXhpc3RzKHNlbGYuX3RoaXNfZmlsZSkpCkBAIC01Niw2ICs3MywxMCBAQCBjbGFzcyBGaWxlU3lz
dGVtVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGZzID0gRmlsZVN5c3RlbSgpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZnMuZXhpc3RzKHNlbGYuX21pc3NpbmdfZmlsZSkpCiAK
KyAgICBkZWYgdGVzdF9nZXRjd2Qoc2VsZik6CisgICAgICAgIGZzID0gRmlsZVN5c3RlbSgpCisg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmcy5leGlzdHMoZnMuZ2V0Y3dkKCkpKQorCiAgICAgZGVm
IHRlc3RfaXNkaXJfX3RydWUoc2VsZik6CiAgICAgICAgIGZzID0gRmlsZVN5c3RlbSgpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShmcy5pc2RpcihzZWxmLl90aGlzX2RpcikpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89244</attachid>
            <date>2011-04-12 12:33:30 -0700</date>
            <delta_ts>2011-04-12 12:43:32 -0700</delta_ts>
            <desc>fix bug in abspath, clean up handling of directories and normalized paths</desc>
            <filename>bug-58288-20110412123329.patch</filename>
            <type>text/plain</type>
            <size>6647</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODM0NzcKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3OTdmZWRhNWFiOWZlODU4MjFlMGM0NzI3NjcwNTE2YjMx
ZDNjMzg1Li40ODZjZTEwYTk5OTVmYTMwZTZlN2VjYjllNjg3YTQ2ZDdlZDYxODEwIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkg
QEAKIDIwMTEtMDQtMTEgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgd2Via2l0cHk6IGZp
eCBtb2NrX2ZpbGVzeXN0ZW0gYWJzcGF0aCB0byBoYW5kbGUgcmVsYXRpdmUgcGF0aHMKKyAgICAg
ICAgYW5kIGFkZCBmaWxlc3lzdGVtLmNoZGlyKCkgYW5kIGZpbGVzeXN0ZW0uZ2V0Y3dkKCkgdG8g
YmUgYWJsZQorICAgICAgICB0byB0ZXN0IHRoaXMgYW5kIG1vY2sgaXQgb3V0LgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODI4OAorCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW0ucHk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fbW9jay5weToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV91bml0dGVz
dC5weToKKworMjAxMS0wNC0xMSAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4K
KwogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIFJvYmVuLgogCiAgICAgICAgIG5ldy1ydW4td2Vi
a2l0LXRlc3RzOiBmaXggY3Jhc2ggd2hlbiBydW5uaW5nIHVuZGVyIHdpbmRvd3MgY21kLmV4ZQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0
ZW0ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbS5w
eQppbmRleCAxOTg4NTQ2YzYxNzFjOTAzODZiMjZhNDI2M2MzYjhhNzM0YzIwNzU3Li41OGJlMDNh
OWVjNjRmMTQzM2FlYzY5YTcwY2RjYzQzNmM4YTBiZDE5IDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbS5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbS5weQpAQCAtNjEsNiArNjEsMTAg
QEAgY2xhc3MgRmlsZVN5c3RlbShvYmplY3QpOgogICAgICAgICAiIiJXcmFwcyBvcy5wYXRoLmJh
c2VuYW1lKCkuIiIiCiAgICAgICAgIHJldHVybiBvcy5wYXRoLmJhc2VuYW1lKHBhdGgpCiAKKyAg
ICBkZWYgY2hkaXIoc2VsZiwgcGF0aCk6CisgICAgICAgICIiIldyYXBzIG9zLmNoZGlyKCkuIiIi
CisgICAgICAgIHJldHVybiBvcy5jaGRpcihwYXRoKQorCiAgICAgZGVmIGNvcHlmaWxlKHNlbGYs
IHNvdXJjZSwgZGVzdGluYXRpb24pOgogICAgICAgICAiIiJDb3BpZXMgdGhlIGNvbnRlbnRzIG9m
IHRoZSBmaWxlIGF0IHRoZSBnaXZlbiBwYXRoIHRvIHRoZSBkZXN0aW5hdGlvbgogICAgICAgICBw
YXRoLiIiIgpAQCAtMTA4LDYgKzExMiwxMCBAQCBjbGFzcyBGaWxlU3lzdGVtKG9iamVjdCk6CiAg
ICAgICAgICAgICAgICAgICAgIGZpbGVzLmFwcGVuZChzZWxmLmpvaW4oZGlycGF0aCwgZmlsZW5h
bWUpKQogICAgICAgICByZXR1cm4gZmlsZXMKIAorICAgIGRlZiBnZXRjd2Qoc2VsZik6CisgICAg
ICAgICIiIldyYXBzIG9zLmdldGN3ZCgpLiIiIgorICAgICAgICByZXR1cm4gb3MuZ2V0Y3dkKCkK
KwogICAgIGRlZiBnbG9iKHNlbGYsIHBhdGgpOgogICAgICAgICAiIiJXcmFwcyBnbG9iLmdsb2Io
KS4iIiIKICAgICAgICAgcmV0dXJuIGdsb2IuZ2xvYihwYXRoKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fbW9jay5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX21vY2sucHkKaW5kZXgg
ZmE3Yzc0NTI0ZWI4NjcyYjM2YWFmODA4ODZkYTcwMzA5NzI5M2Q3MS4uM2NmYTc4Nzg0MGFjMjdj
Y2NkYzUwYzVhMTU5YzgyYzc3ODI5MTM4MyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fbW9jay5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbV9tb2NrLnB5CkBAIC0zNSw3ICszNSw3
IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgb3NwYXRoCiAKIAogY2xhc3Mg
TW9ja0ZpbGVTeXN0ZW0ob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZmlsZXM9Tm9u
ZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVzPU5vbmUsIGN3ZD0nLycpOgogICAgICAg
ICAiIiJJbml0aWFsaXplcyBhICJtb2NrIiBmaWxlc3lzdGVtIHRoYXQgY2FuIGJlIHVzZWQgdG8g
Y29tcGxldGVseQogICAgICAgICBzdHViIG91dCBhIGZpbGVzeXN0ZW0uCiAKQEAgLTQ4LDYgKzQ4
LDggQEAgY2xhc3MgTW9ja0ZpbGVTeXN0ZW0ob2JqZWN0KToKICAgICAgICAgc2VsZi53cml0dGVu
X2ZpbGVzID0ge30KICAgICAgICAgc2VsZi5fc2VwID0gJy8nCiAgICAgICAgIHNlbGYuY3VycmVu
dF90bXBubyA9IDAKKyAgICAgICAgc2VsZi5jd2QgPSBjd2QKKyAgICAgICAgc2VsZi5kaXJzID0g
e30KIAogICAgIGRlZiBfZ2V0X3NlcChzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX3NlcApA
QCAtNjEsMTMgKzYzLDE5IEBAIGNsYXNzIE1vY2tGaWxlU3lzdGVtKG9iamVjdCk6CiAgICAgICAg
IHJldHVybiBwYXRoLnJzcGxpdChzZWxmLnNlcCwgMSkKIAogICAgIGRlZiBhYnNwYXRoKHNlbGYs
IHBhdGgpOgotICAgICAgICBpZiBwYXRoLmVuZHN3aXRoKHNlbGYuc2VwKToKLSAgICAgICAgICAg
IHJldHVybiBwYXRoWzotMV0KLSAgICAgICAgcmV0dXJuIHBhdGgKKyAgICAgICAgaWYgcGF0aC5z
dGFydHN3aXRoKHNlbGYuc2VwKToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLm5vcm1wYXRoKHBh
dGgpCisgICAgICAgIHJldHVybiBzZWxmLmFic3BhdGgoc2VsZi5qb2luKHNlbGYuY3dkLCBwYXRo
KSkKIAogICAgIGRlZiBiYXNlbmFtZShzZWxmLCBwYXRoKToKICAgICAgICAgcmV0dXJuIHNlbGYu
X3NwbGl0KHBhdGgpWzFdCiAKKyAgICBkZWYgY2hkaXIoc2VsZiwgcGF0aCk6CisgICAgICAgIHBh
dGggPSBzZWxmLm5vcm1wYXRoKHBhdGgpCisgICAgICAgIGlmIG5vdCBzZWxmLmlzZGlyKHBhdGgp
OgorICAgICAgICAgICAgcmFpc2UgT1NFcnJvcihlcnJuby5FTk9FTlQsIHBhdGgsIG9zLnN0cmVy
cm9yKGVycm5vLkVOT0VOVCkpCisgICAgICAgIHNlbGYuY3dkID0gcGF0aAorCiAgICAgZGVmIGNv
cHlmaWxlKHNlbGYsIHNvdXJjZSwgZGVzdGluYXRpb24pOgogICAgICAgICBpZiBub3Qgc2VsZi5l
eGlzdHMoc291cmNlKToKICAgICAgICAgICAgIHNlbGYuX3JhaXNlX25vdF9mb3VuZChzb3VyY2Up
CkBAIC0xMTcsNiArMTI1LDkgQEAgY2xhc3MgTW9ja0ZpbGVTeXN0ZW0ob2JqZWN0KToKIAogICAg
ICAgICByZXR1cm4gZmlsZXMKIAorICAgIGRlZiBnZXRjd2Qoc2VsZiwgcGF0aCk6CisgICAgICAg
IHJldHVybiBzZWxmLmN3ZAorCiAgICAgZGVmIGdsb2Ioc2VsZiwgcGF0aCk6CiAgICAgICAgICMg
RklYTUU6IFRoaXMgb25seSBoYW5kbGVzIGEgd2lsZGNhcmQgJyonIGF0IHRoZSBlbmQgb2YgdGhl
IHBhdGguCiAgICAgICAgICMgTWF5YmUgaXQgc2hvdWxkIGhhbmRsZSBtb3JlPwpAQCAtMTM0LDE0
ICsxNDUsMTggQEAgY2xhc3MgTW9ja0ZpbGVTeXN0ZW0ob2JqZWN0KToKICAgICBkZWYgaXNkaXIo
c2VsZiwgcGF0aCk6CiAgICAgICAgIGlmIHBhdGggaW4gc2VsZi5maWxlczoKICAgICAgICAgICAg
IHJldHVybiBGYWxzZQotICAgICAgICBpZiBub3QgcGF0aC5lbmRzd2l0aChzZWxmLnNlcCk6Ci0g
ICAgICAgICAgICBwYXRoICs9IHNlbGYuc2VwCisgICAgICAgIHBhdGggPSBzZWxmLm5vcm1wYXRo
KHBhdGgpCisgICAgICAgIGlmIHBhdGggaW4gc2VsZi5kaXJzOgorICAgICAgICAgICAgcmV0dXJu
IFRydWUKIAogICAgICAgICAjIFdlIG5lZWQgdG8gdXNlIGEgY29weSBvZiB0aGUga2V5cyBoZXJl
IGluIG9yZGVyIHRvIGF2b2lkIHN3aXRjaGluZwogICAgICAgICAjIHRvIGEgZGlmZmVyZW50IHRo
cmVhZCBhbmQgcG90ZW50aWFsbHkgbW9kaWZ5aW5nIHRoZSBkaWN0IGluCiAgICAgICAgICMgbWlk
LWl0ZXJhdGlvbi4KICAgICAgICAgZmlsZXMgPSBzZWxmLmZpbGVzLmtleXMoKVs6XQotICAgICAg
ICByZXR1cm4gYW55KGYuc3RhcnRzd2l0aChwYXRoKSBmb3IgZiBpbiBmaWxlcykKKyAgICAgICAg
cmVzdWx0ID0gYW55KGYuc3RhcnRzd2l0aChwYXRoKSBmb3IgZiBpbiBmaWxlcykKKyAgICAgICAg
aWYgcmVzdWx0OgorICAgICAgICAgICAgc2VsZi5kaXJzW3BhdGhdID0gVHJ1ZQorICAgICAgICBy
ZXR1cm4gcmVzdWx0CiAKICAgICBkZWYgam9pbihzZWxmLCAqY29tcHMpOgogICAgICAgICAjIEZJ
WE1FOiBtaWdodCB3YW50IHRlc3RzIGZvciB0aGlzIGFuZC9vciBhIGJldHRlciBjb21tZW50IGFi
b3V0IGhvdwpAQCAtMjA0LDggKzIxOSw5IEBAIGNsYXNzIE1vY2tGaWxlU3lzdGVtKG9iamVjdCk6
CiAgICAgICAgIHJldHVybiBUZW1wb3JhcnlEaXJlY3RvcnkoZnM9c2VsZiwgKiprd2FyZ3MpCiAK
ICAgICBkZWYgbWF5YmVfbWFrZV9kaXJlY3Rvcnkoc2VsZiwgKnBhdGgpOgotICAgICAgICAjIEZJ
WE1FOiBJbXBsZW1lbnQgc3VjaCB0aGF0IHN1YnNlcXVlbnQgY2FsbHMgdG8gaXNkaXIoKSB3b3Jr
PwotICAgICAgICBwYXNzCisgICAgICAgIG5vcm1fcGF0aCA9IHNlbGYubm9ybXBhdGgoc2VsZi5q
b2luKCpwYXRoKSkKKyAgICAgICAgaWYgbm90IHNlbGYuaXNkaXIobm9ybV9wYXRoKToKKyAgICAg
ICAgICAgIHNlbGYuZGlyc1tub3JtX3BhdGhdID0gVHJ1ZQogCiAgICAgZGVmIG1vdmUoc2VsZiwg
c291cmNlLCBkZXN0aW5hdGlvbik6CiAgICAgICAgIGlmIHNlbGYuZmlsZXNbc291cmNlXSBpcyBO
b25lOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2Zp
bGVzeXN0ZW1fdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0
ZW0vZmlsZXN5c3RlbV91bml0dGVzdC5weQppbmRleCA4NDU1ZDcyOTAwYzQ2MWE1ZTljZGM5MDFl
MDdmOTE3NGIzZTllZjgxLi44ZDRmMGNiNjM4YmRkZDQxYThlZGZlYzk5ZThmZDc4MDFmOGJjMDM1
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5
c3RlbV91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0
ZW0vZmlsZXN5c3RlbV91bml0dGVzdC5weQpAQCAtNDgsNiArNDgsMjMgQEAgY2xhc3MgRmlsZVN5
c3RlbVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLl9taXNzaW5nX2ZpbGUg
PSBvcy5wYXRoLmpvaW4oc2VsZi5fdGhpc19kaXIsICdtaXNzaW5nX2ZpbGUucHknKQogICAgICAg
ICBzZWxmLl90aGlzX2ZpbGUgPSBvcy5wYXRoLmpvaW4oc2VsZi5fdGhpc19kaXIsICdmaWxlc3lz
dGVtX3VuaXR0ZXN0LnB5JykKIAorICAgIGRlZiB0ZXN0X2NoZGlyKHNlbGYpOgorICAgICAgICBm
cyA9IEZpbGVTeXN0ZW0oKQorICAgICAgICBjd2QgPSBmcy5nZXRjd2QoKQorICAgICAgICBuZXdk
aXIgPSAnLycKKyAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMic6CisgICAgICAgICAg
ICBuZXdkaXIgPSAnYzpcXCcKKyAgICAgICAgZnMuY2hkaXIobmV3ZGlyKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhmcy5nZXRjd2QoKSwgbmV3ZGlyKQorICAgICAgICBmcy5jaGRpcihjd2Qp
CisKKyAgICBkZWYgdGVzdF9jaGRpcl9fbm90ZXhpc3RzKHNlbGYpOgorICAgICAgICBmcyA9IEZp
bGVTeXN0ZW0oKQorICAgICAgICBuZXdkaXIgPSAnL2RpcmRvZXNub3RleGlzdCcKKyAgICAgICAg
aWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMic6CisgICAgICAgICAgICBuZXdkaXIgPSAnYzpcXGRp
cmRvZXNub3RleGlzdCcKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgZnMuY2hk
aXIsIG5ld2RpcikKKwogICAgIGRlZiB0ZXN0X2V4aXN0c19fdHJ1ZShzZWxmKToKICAgICAgICAg
ZnMgPSBGaWxlU3lzdGVtKCkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZzLmV4aXN0cyhzZWxm
Ll90aGlzX2ZpbGUpKQpAQCAtNTYsNiArNzMsMTAgQEAgY2xhc3MgRmlsZVN5c3RlbVRlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgogICAgICAgICBmcyA9IEZpbGVTeXN0ZW0oKQogICAgICAgICBzZWxm
LmFzc2VydEZhbHNlKGZzLmV4aXN0cyhzZWxmLl9taXNzaW5nX2ZpbGUpKQogCisgICAgZGVmIHRl
c3RfZ2V0Y3dkKHNlbGYpOgorICAgICAgICBmcyA9IEZpbGVTeXN0ZW0oKQorICAgICAgICBzZWxm
LmFzc2VydFRydWUoZnMuZXhpc3RzKGZzLmdldGN3ZCgpKSkKKwogICAgIGRlZiB0ZXN0X2lzZGly
X190cnVlKHNlbGYpOgogICAgICAgICBmcyA9IEZpbGVTeXN0ZW0oKQogICAgICAgICBzZWxmLmFz
c2VydFRydWUoZnMuaXNkaXIoc2VsZi5fdGhpc19kaXIpKQo=
</data>
<flag name="review"
          id="81895"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>