<?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>77149</bug_id>
          
          <creation_ts>2012-01-26 15:00:08 -0800</creation_ts>
          <short_desc>WebGL conformance test misc/functions-returning-strings.html fails</short_desc>
          <delta_ts>2012-02-06 16:39:02 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="Ehsan Akhgari [:ehsan]">ehsan</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>ehsan</cc>
    
    <cc>gman</cc>
    
    <cc>kbr</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zmo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>543524</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-01-26 15:00:08 -0800</bug_when>
    <thetext>WebKit returns null instead of an empty DOMString in a few situations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545967</commentid>
    <comment_count>1</comment_count>
    <who name="Ehsan Akhgari [:ehsan]">ehsan</who>
    <bug_when>2012-01-31 05:31:12 -0800</bug_when>
    <thetext>See this bug for more information: http://www.khronos.org/bugzilla/show_bug.cgi?id=582</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546086</commentid>
    <comment_count>2</comment_count>
      <attachid>124741</attachid>
    <who name="Ehsan Akhgari [:ehsan]">ehsan</who>
    <bug_when>2012-01-31 08:33:42 -0800</bug_when>
    <thetext>Created attachment 124741
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546089</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-31 08:36:32 -0800</bug_when>
    <thetext>Attachment 124741 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
First, rewinding head to replay your work on top of it...
Applying: Fix compilation errors on build-webkit --debug --no-workers on mac.
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging LayoutTests/platform/qt/Skipped
CONFLICT (content): Merge conflict in LayoutTests/platform/qt/Skipped
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 Fix compilation errors on build-webkit --debug --no-workers on mac.

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546165</commentid>
    <comment_count>4</comment_count>
      <attachid>124741</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-31 09:34:01 -0800</bug_when>
    <thetext>Comment on attachment 124741
Patch

Attachment 124741 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11386012

New failing tests:
fast/canvas/webgl/functions-returning-strings.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546280</commentid>
    <comment_count>5</comment_count>
    <who name="Ehsan Akhgari [:ehsan]">ehsan</who>
    <bug_when>2012-01-31 11:20:12 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 124741 [details])
&gt; Attachment 124741 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/11386012
&gt; 
&gt; New failing tests:
&gt; fast/canvas/webgl/functions-returning-strings.html

Can I get a test log link for the failing test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546291</commentid>
    <comment_count>6</comment_count>
      <attachid>124741</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-01-31 11:34:31 -0800</bug_when>
    <thetext>Comment on attachment 124741
Patch

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

Looks good overall; r- for a couple of relatively minor issues. Unfortunately I don&apos;t think it&apos;s possible to get the full test logs off the EWS bots; if you haven&apos;t already, build DumpRenderTree in your Chromium workspace and use src/webkit/tools/layout_tests/run_webkit_tests.sh to check the expected results. I&apos;m doing this now and will update this bug if anything turns up.

&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:5125
&gt; +      return WTF::emptyString();

4 space indent. (Style queue should have caught this.)

&gt; Tools/ChangeLog:5
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=77149

Please split this change off into a second bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546314</commentid>
    <comment_count>7</comment_count>
    <who name="Ehsan Akhgari [:ehsan]">ehsan</who>
    <bug_when>2012-01-31 11:49:40 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 124741 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124741&amp;action=review
&gt; 
&gt; Looks good overall; r- for a couple of relatively minor issues. Unfortunately I don&apos;t think it&apos;s possible to get the full test logs off the EWS bots; if you haven&apos;t already, build DumpRenderTree in your Chromium workspace and use src/webkit/tools/layout_tests/run_webkit_tests.sh to check the expected results. I&apos;m doing this now and will update this bug if anything turns up.

I ran the tests locally with the default Mac bindings (whatever that&apos;s called, the one which runs WebCore under the Safari shell).

&gt; &gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:5125
&gt; &gt; +      return WTF::emptyString();
&gt; 
&gt; 4 space indent. (Style queue should have caught this.)

Will fix that (the style checking script didn&apos;t actually catch it).

&gt; &gt; Tools/ChangeLog:5
&gt; &gt; +        https://bugs.webkit.org/show_bug.cgi?id=77149
&gt; 
&gt; Please split this change off into a second bug.

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546333</commentid>
    <comment_count>8</comment_count>
    <who name="Ehsan Akhgari [:ehsan]">ehsan</who>
    <bug_when>2012-01-31 12:01:38 -0800</bug_when>
    <thetext>I split the second part of the patch to bug 77462.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546334</commentid>
    <comment_count>9</comment_count>
      <attachid>124791</attachid>
    <who name="Ehsan Akhgari [:ehsan]">ehsan</who>
    <bug_when>2012-01-31 12:02:06 -0800</bug_when>
    <thetext>Created attachment 124791
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546339</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-31 12:03:21 -0800</bug_when>
    <thetext>Attachment 124791 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
First, rewinding head to replay your work on top of it...
Applying: Fix compilation errors on build-webkit --debug --no-workers on mac.
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging LayoutTests/platform/qt/Skipped
CONFLICT (content): Merge conflict in LayoutTests/platform/qt/Skipped
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Auto-merging Source/WebCore/WebCore.exp.in
Auto-merging Source/WebKit/mac/ChangeLog
CONFLICT (content): Merge conflict in Source/WebKit/mac/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 Fix compilation errors on build-webkit --debug --no-workers on mac.

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546351</commentid>
    <comment_count>11</comment_count>
      <attachid>124791</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-01-31 12:14:47 -0800</bug_when>
    <thetext>Comment on attachment 124791
Patch

Looks good. Let&apos;s see what the Chromium EWS bot has to say before cq+&apos;ing it. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546395</commentid>
    <comment_count>12</comment_count>
      <attachid>124791</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-31 12:55:56 -0800</bug_when>
    <thetext>Comment on attachment 124791
Patch

Attachment 124791 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11387103

New failing tests:
fast/canvas/webgl/functions-returning-strings.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546673</commentid>
    <comment_count>13</comment_count>
      <attachid>124791</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-01-31 17:21:59 -0800</bug_when>
    <thetext>Comment on attachment 124791
Patch

The problem is in the test of getSupportedExtensions()&apos; return value; if the implementation had a different number of extensions then the output would be different. I&apos;ve updated the Khronos version of the test; please update the copy of the test in this patch and its expectations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546715</commentid>
    <comment_count>14</comment_count>
    <who name="Ehsan Akhgari [:ehsan]">ehsan</who>
    <bug_when>2012-01-31 18:34:23 -0800</bug_when>
    <thetext>Good catch!  What is the Khronos rev id which fixes this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546718</commentid>
    <comment_count>15</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-01-31 18:41:28 -0800</bug_when>
    <thetext>It&apos;s Khronos r16797.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546730</commentid>
    <comment_count>16</comment_count>
      <attachid>124869</attachid>
    <who name="Ehsan Akhgari [:ehsan]">ehsan</who>
    <bug_when>2012-01-31 19:18:25 -0800</bug_when>
    <thetext>Created attachment 124869
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546731</commentid>
    <comment_count>17</comment_count>
      <attachid>124869</attachid>
    <who name="Ehsan Akhgari [:ehsan]">ehsan</who>
    <bug_when>2012-01-31 19:19:41 -0800</bug_when>
    <thetext>Comment on attachment 124869
Patch

This new patch is based on Khronos r16797.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546737</commentid>
    <comment_count>18</comment_count>
      <attachid>124869</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-01-31 19:27:10 -0800</bug_when>
    <thetext>Comment on attachment 124869
Patch

Looks good. r=me
Let&apos;s wait for it to clear the EWS bots before cq+&apos;ing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550412</commentid>
    <comment_count>19</comment_count>
      <attachid>124869</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-06 16:38:57 -0800</bug_when>
    <thetext>Comment on attachment 124869
Patch

Clearing flags on attachment: 124869

Committed r106873: &lt;http://trac.webkit.org/changeset/106873&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550413</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-06 16:39:02 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124741</attachid>
            <date>2012-01-31 08:33:42 -0800</date>
            <delta_ts>2012-01-31 12:02:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77149-20120131113341.patch</filename>
            <type>text/plain</type>
            <size>11168</size>
            <attacher name="Ehsan Akhgari [:ehsan]">ehsan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWY4ZDY2MzViOTY5ZGEy
M2Q1YTc2NzkwZjVmZTA2NzVjMWEyZTVmMy4uYjNhNTA0MmZjNjU5MmZmNGJjNzc0YzBmODM1YzY0
YmZiMjVmN2MwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAxLTMxICBFaHNh
biBBa2hnYXJpICA8ZWhzYW4uYWtoZ2FyaUBnbWFpbC5jb20+CisKKyAgICAgICAgV2ViR0wgY29u
Zm9ybWFuY2UgdGVzdCBtaXNjL2Z1bmN0aW9ucy1yZXR1cm5pbmctc3RyaW5ncy5odG1sIGZhaWxz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzE0OQor
CisgICAgICAgIE1ha2Ugc3VyZSB0aGF0IFdlYkdMIG1ldGhvZHMgcmV0dXJuaW5nIHN0cmluZ3Mg
ZG9uJ3QgcmV0dXJuIG51bGwgd2hlbgorICAgICAgICB0aGV5IHJ1biBzdWNjZXNzZnVsbHkuCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFz
dC9jYW52YXMvd2ViZ2wvZnVuY3Rpb25zLXJldHVybmluZy1zdHJpbmdzLmh0bWwKKworICAgICAg
ICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UHJvZ3Jh
bUluZm9Mb2cpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRT
aGFkZXJJbmZvTG9nKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0U2hhZGVyU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dDo6ZW5zdXJlTm90TnVsbCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0Lmg6CisgICAgICAgIChXZWJHTFJlbmRlcmluZ0NvbnRleHQpOgorCiAyMDEyLTAxLTMw
ICBHcmVnZyBUYXZhcmVzICA8Z21hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIFBsdW1t
aW5nIHRvIGdldCBncmFwaGljcyBlcnJvciBtZXNzYWdlcyB0byBKUyBDb25zb2xlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcApp
bmRleCA5MTc2YTJkYTQ0ZmQ2ODlkMjIxYmE2MTM4NGE3NTY5ZjY0ZjQxNmJmLi41MTMwMTMwYTk3
MmQ2MGIyNjNkMGYxNDFjM2E3ZGQ2NjM3ZjhiZDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTI1MTEsNyArMjUx
MSw3IEBAIFN0cmluZyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFByb2dyYW1JbmZvTG9nKFdl
YkdMUHJvZ3JhbSogcHJvZ3JhbSwgRXhjZXB0aW9uCiAgICAgaWYgKCF2YWxpZGF0ZVdlYkdMT2Jq
ZWN0KHByb2dyYW0pKQogICAgICAgICByZXR1cm4gIiI7CiAgICAgV2ViR0xTdGF0ZVJlc3RvcmVy
KHRoaXMsIGZhbHNlKTsKLSAgICByZXR1cm4gbV9jb250ZXh0LT5nZXRQcm9ncmFtSW5mb0xvZyhv
YmplY3RPclplcm8ocHJvZ3JhbSkpOworICAgIHJldHVybiBlbnN1cmVOb3ROdWxsKG1fY29udGV4
dC0+Z2V0UHJvZ3JhbUluZm9Mb2cob2JqZWN0T3JaZXJvKHByb2dyYW0pKSk7CiB9CiAKIFdlYkdM
R2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihH
QzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTI2
MTEsNyArMjYxMSw3IEBAIFN0cmluZyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFNoYWRlcklu
Zm9Mb2coV2ViR0xTaGFkZXIqIHNoYWRlciwgRXhjZXB0aW9uQ29kCiAgICAgaWYgKCF2YWxpZGF0
ZVdlYkdMT2JqZWN0KHNoYWRlcikpCiAgICAgICAgIHJldHVybiAiIjsKICAgICBXZWJHTFN0YXRl
UmVzdG9yZXIodGhpcywgZmFsc2UpOwotICAgIHJldHVybiBtX2NvbnRleHQtPmdldFNoYWRlcklu
Zm9Mb2cob2JqZWN0T3JaZXJvKHNoYWRlcikpOworICAgIHJldHVybiBlbnN1cmVOb3ROdWxsKG1f
Y29udGV4dC0+Z2V0U2hhZGVySW5mb0xvZyhvYmplY3RPclplcm8oc2hhZGVyKSkpOwogfQogCiBT
dHJpbmcgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTaGFkZXJTb3VyY2UoV2ViR0xTaGFkZXIq
IHNoYWRlciwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0yNjIxLDcgKzI2MjEsNyBAQCBTdHJpbmcg
V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTaGFkZXJTb3VyY2UoV2ViR0xTaGFkZXIqIHNoYWRl
ciwgRXhjZXB0aW9uQ29kZQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgaWYgKCF2YWxp
ZGF0ZVdlYkdMT2JqZWN0KHNoYWRlcikpCiAgICAgICAgIHJldHVybiAiIjsKLSAgICByZXR1cm4g
c2hhZGVyLT5nZXRTb3VyY2UoKTsKKyAgICByZXR1cm4gZW5zdXJlTm90TnVsbChzaGFkZXItPmdl
dFNvdXJjZSgpKTsKIH0KIAogVmVjdG9yPFN0cmluZz4gV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCkKQEAgLTUxMTksNiArNTExOSwxMyBAQCB2b2lkIFdlYkdM
UmVuZGVyaW5nQ29udGV4dDo6bWF5YmVSZXN0b3JlQ29udGV4dChUaW1lcjxXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ+KikKICAgICBjYW52YXMoKS0+ZGlzcGF0Y2hFdmVudChXZWJHTENvbnRleHRFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJnbGNvbnRleHRyZXN0b3JlZEV2ZW50LCBmYWxzZSwg
dHJ1ZSwgIiIpKTsKIH0KIAorU3RyaW5nIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6ZW5zdXJlTm90
TnVsbChjb25zdCBTdHJpbmcmIHRleHQpIGNvbnN0Cit7CisgICAgaWYgKHRleHQuaXNOdWxsKCkp
CisgICAgICByZXR1cm4gV1RGOjplbXB0eVN0cmluZygpOworICAgIHJldHVybiB0ZXh0OworfQor
CiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OkxSVUltYWdlQnVmZmVyQ2FjaGU6OkxSVUltYWdlQnVm
ZmVyQ2FjaGUoaW50IGNhcGFjaXR5KQogICAgIDogbV9idWZmZXJzKGFkb3B0QXJyYXlQdHIobmV3
IE93blB0cjxJbWFnZUJ1ZmZlcj5bY2FwYWNpdHldKSkKICAgICAsIG1fY2FwYWNpdHkoY2FwYWNp
dHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dC5oCmluZGV4IDE4MjkxZmRkNmYyM2ZlNDM1OTMwYzliYWQyNzY2MTliOGY1NTg3NzEuLjQ0
NGM1NTBiMTY5YTZmYTQ5MTg3OWM2YTk0ZDI3YTJkOWM0YzhhYzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCkBAIC02NTQsNiAr
NjU0LDggQEAgcHVibGljOgogICAgIC8vIGEgU2FmYXJpIG9yIENocm9tZSBleHRlbnNpb24uCiAg
ICAgYm9vbCBhbGxvd1ByaXZpbGVnZWRFeHRlbnNpb25zKCkgY29uc3Q7CiAKKyAgICBTdHJpbmcg
ZW5zdXJlTm90TnVsbChjb25zdCBTdHJpbmcmKSBjb25zdDsKKwogICAgIGZyaWVuZCBjbGFzcyBX
ZWJHTFN0YXRlUmVzdG9yZXI7CiB9OwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggMjYyNGM1ZTk3NzNjYmZiMjM5MjJmNTkxZGQ1YmU4OGZjZDVh
NDAyOC4uMzZhYzE1NTk1OWM1MDZiMDExZTFjMDRmMWRiMGU0ZmMxNTdlZmU2OSAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDEyLTAxLTMxICBFaHNhbiBBa2hnYXJpICA8ZWhzYW4uYWtoZ2FyaUBnbWFpbC5jb20+CisK
KyAgICAgICAgRml4IHRoZSB1cGRhdGVfd2ViZ2xfY29uZm9ybWFuY2VfdGVzdHMucHkgc2NyaXB0
IGluIG9yZGVyIHRvIGVuYWJsZSBpdAorICAgICAgICB0byBkZXRlY3QgdGhlIFNDTSBiZWluZyB1
c2VkIGNvcnJlY3RseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc3MTQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3RvX2JlX21vdmVkL3VwZGF0ZV93ZWJnbF9jb25mb3Jt
YW5jZV90ZXN0cy5weToKKyAgICAgICAgKGRlZmF1bHRfb3V0X2Rpcik6CisKIDIwMTItMDEtMzAg
IEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJFR1JFU1NJ
T04ocjEwNTc5Nyk6IHByZXBhcmUtQ2hhbmdlTG9nIGZvciBhIC5jcHAgZmlsZSBjYW4KZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9fYmVfbW92ZWQvdXBkYXRlX3dlYmdsX2Nv
bmZvcm1hbmNlX3Rlc3RzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b19iZV9tb3ZlZC91
cGRhdGVfd2ViZ2xfY29uZm9ybWFuY2VfdGVzdHMucHkKaW5kZXggMDFmZmZkZWU5YjZhMmZkMGM0
MzNlZDU0OThiY2EwZTdkMmFmN2NhNC4uMTE5Njk4MGIyN2RjMGYzMzc1NjliZWIxOTFjNWJjOTYz
MTNkMjIyMiAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b19iZV9tb3ZlZC91
cGRhdGVfd2ViZ2xfY29uZm9ybWFuY2VfdGVzdHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b19iZV9tb3ZlZC91cGRhdGVfd2ViZ2xfY29uZm9ybWFuY2VfdGVzdHMucHkKQEAgLTMy
LDYgKzMyLDggQEAgaW1wb3J0IG9zCiBpbXBvcnQgcmUKIGltcG9ydCBzeXMKIGZyb20gd2Via2l0
cHkuY29tbW9uLmNoZWNrb3V0IGltcG9ydCBzY20KK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3Rl
bS5maWxlc3lzdGVtIGltcG9ydCBGaWxlU3lzdGVtCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0
ZW0uZXhlY3V0aXZlIGltcG9ydCBFeGVjdXRpdmUKIAogCiBfbG9nID0gbG9nZ2luZy5nZXRMb2dn
ZXIoX19uYW1lX18pCkBAIC05NCw3ICs5Niw4IEBAIGRlZiB1cGRhdGVfZGlyZWN0b3J5KGluX2Rp
ciwgb3V0X2Rpcik6CiAKIAogZGVmIGRlZmF1bHRfb3V0X2RpcigpOgotICAgIGN1cnJlbnRfc2Nt
ID0gc2NtLmRldGVjdF9zY21fc3lzdGVtKG9zLnBhdGguZGlybmFtZShzeXMuYXJndlswXSkpCisg
ICAgZGV0ZWN0b3IgPSBzY20uU0NNRGV0ZWN0b3IoRmlsZVN5c3RlbSgpLCBFeGVjdXRpdmUoKSkK
KyAgICBjdXJyZW50X3NjbSA9IGRldGVjdG9yLmRldGVjdF9zY21fc3lzdGVtKG9zLnBhdGguZGly
bmFtZShzeXMuYXJndlswXSkpCiAgICAgaWYgbm90IGN1cnJlbnRfc2NtOgogICAgICAgICByZXR1
cm4gb3MuZ2V0Y3dkKCkKICAgICByb290X2RpciA9IGN1cnJlbnRfc2NtLmNoZWNrb3V0X3Jvb3QK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3YWUzNDNlYmY3OGYxZTdiYzI4NmQzNDY1MjhiNjcxMDIzZjhlNWJjLi43N2ZkY2U0
NTBjNmVhMzUxOTYyNTRmZWE1ZDkyNzkwNTJlNmNhMTI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTItMDEtMzEgIEVoc2FuIEFraGdhcmkgIDxlaHNhbi5ha2hnYXJpQGdtYWlsLmNvbT4KKwor
ICAgICAgICBXZWJHTCBjb25mb3JtYW5jZSB0ZXN0IG1pc2MvZnVuY3Rpb25zLXJldHVybmluZy1z
dHJpbmdzLmh0bWwgZmFpbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc3MTQ5CisKKyAgICAgICAgSW1wb3J0ZWQgdGhlIFdlYkdMIGNvbmZvcm1hbmNl
IHRlc3QgcmVsYXRlZCB0byB0aGlzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvZnVuY3Rpb25zLXJldHVybmluZy1z
dHJpbmdzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wv
ZnVuY3Rpb25zLXJldHVybmluZy1zdHJpbmdzLmh0bWw6IEFkZGVkLgorCiAyMDEyLTAxLTMwICBQ
YWJsbyBGbG91cmV0ICA8cGFibG9mQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBEb24ndCBzZWxl
Y3QgdGhlIG5leHQgc2VsZWN0YWJsZSBpbmRleCB3aGVuIGRlc2VsZWN0aW5nIGFuIG9wdGlvbiBp
biBzZWxlY3QgZWxlbWVudHMgd2l0aCBzaXplIHNldCB0byBhIHZhbHVlIGdyZWF0ZXIgdGhhbiBv
bmUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9mdW5jdGlvbnMt
cmV0dXJuaW5nLXN0cmluZ3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
d2ViZ2wvZnVuY3Rpb25zLXJldHVybmluZy1zdHJpbmdzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43NDVhZmVmZWUzMmMwN2U3ZjAwYzk5NjNmMjY5MzBjZDE0MjIzOGE2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZnVuY3Rpb25zLXJldHVybmluZy1z
dHJpbmdzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACitUZXN0IHRoYXQgZnVuY3Rpb25z
IHJldHVybmluZyBzdHJpbmdzIHJlYWxseSBkbyByZXR1cm4gc3RyaW5ncyAoYW5kIG5vdCBlLmcu
IG51bGwpCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGdsLmdldFNoYWRl
clNvdXJjZSh2cykgcmV0dXJucyBhIHN0cmluZworUEFTUyBnbC5nZXRTaGFkZXJJbmZvTG9nKHZz
KSByZXR1cm5zIGEgc3RyaW5nCitQQVNTIGdsLmdldFNoYWRlclNvdXJjZSh2cykgcmV0dXJucyBh
IHN0cmluZworUEFTUyBnbC5nZXRTaGFkZXJJbmZvTG9nKHZzKSByZXR1cm5zIGEgc3RyaW5nCitQ
QVNTIGdsLmdldFNoYWRlclNvdXJjZShmcykgcmV0dXJucyBhIHN0cmluZworUEFTUyBnbC5nZXRT
aGFkZXJJbmZvTG9nKGZzKSByZXR1cm5zIGEgc3RyaW5nCitQQVNTIGdsLmdldFNoYWRlclNvdXJj
ZShmcykgcmV0dXJucyBhIHN0cmluZworUEFTUyBnbC5nZXRTaGFkZXJJbmZvTG9nKGZzKSByZXR1
cm5zIGEgc3RyaW5nCitQQVNTIGdsLmdldFByb2dyYW1JbmZvTG9nKHByb2cpIHJldHVybnMgYSBz
dHJpbmcKK1BBU1MgZ2wuZ2V0UHJvZ3JhbUluZm9Mb2cocHJvZykgcmV0dXJucyBhIHN0cmluZwor
UEFTUyBnbC5nZXRTdXBwb3J0ZWRFeHRlbnNpb25zKClbMF0gcmV0dXJucyBhIHN0cmluZworUEFT
UyBnbC5nZXRTdXBwb3J0ZWRFeHRlbnNpb25zKClbMV0gcmV0dXJucyBhIHN0cmluZworUEFTUyBn
bC5nZXRTdXBwb3J0ZWRFeHRlbnNpb25zKClbMl0gcmV0dXJucyBhIHN0cmluZworUEFTUyBnbC5n
ZXRTdXBwb3J0ZWRFeHRlbnNpb25zKClbM10gcmV0dXJucyBhIHN0cmluZworUEFTUyBnbC5nZXRT
dXBwb3J0ZWRFeHRlbnNpb25zKClbNF0gcmV0dXJucyBhIHN0cmluZworUEFTUyBnbC5nZXRQYXJh
bWV0ZXIoZ2wuVkVORE9SKSByZXR1cm5zIGEgc3RyaW5nCitQQVNTIGdsLmdldFBhcmFtZXRlcihn
bC5SRU5ERVJFUikgcmV0dXJucyBhIHN0cmluZworUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuVkVS
U0lPTikgcmV0dXJucyBhIHN0cmluZworUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuU0hBRElOR19M
QU5HVUFHRV9WRVJTSU9OKSByZXR1cm5zIGEgc3RyaW5nCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy93ZWJnbC9mdW5jdGlvbnMtcmV0dXJuaW5nLXN0cmluZ3MuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2Z1bmN0aW9ucy1yZXR1cm5pbmctc3RyaW5ncy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjNjMjY2NGVlMDdlMDZhMmE5Yzc2NTdiOTFhNzU1ODA2OWU5YTYzNGQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9mdW5jdGlvbnMt
cmV0dXJuaW5nLXN0cmluZ3MuaHRtbApAQCAtMCwwICsxLDg3IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29u
Zm9ybWFuY2UgVGVzdHM8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvZGVza3RvcC1nbC1jb25zdGFudHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIj4g
PC9jYW52YXM+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBmdW5jdGlvbnMgcmV0
dXJuaW5nIHN0cmluZ3MgcmVhbGx5IGRvIHJldHVybiBzdHJpbmdzIChhbmQgbm90IGUuZy4gbnVs
bCkiKTsKK2RlYnVnKCIiKTsKKwordmFyIHZhbGlkVmVydGV4U2hhZGVyU3RyaW5nID0KKyAgImF0
dHJpYnV0ZSB2ZWM0IGFWZXJ0ZXg7IGF0dHJpYnV0ZSB2ZWM0IGFDb2xvcjsgdmFyeWluZyB2ZWM0
IHZDb2xvcjsgdm9pZCBtYWluKCkgeyB2Q29sb3IgPSBhQ29sb3I7IGdsX1Bvc2l0aW9uID0gYVZl
cnRleDsgfSI7Cit2YXIgdmFsaWRGcmFnbWVudFNoYWRlclN0cmluZyA9CisgICJwcmVjaXNpb24g
bWVkaXVtcCBmbG9hdDsgdmFyeWluZyB2ZWM0IHZDb2xvcjsgdm9pZCBtYWluKCkgeyBnbF9GcmFn
Q29sb3IgPSB2Q29sb3I7IH0iOworCitmdW5jdGlvbiBzaG91bGRSZXR1cm5TdHJpbmcoX2EpCit7
CisgIHZhciBleGNlcHRpb247CisgIHZhciBfYXY7CisgIHRyeSB7CisgICAgIF9hdiA9IGV2YWwo
X2EpOworICB9IGNhdGNoIChlKSB7CisgICAgIGV4Y2VwdGlvbiA9IGU7CisgIH0KKworICBpZiAo
ZXhjZXB0aW9uKQorICAgIHRlc3RGYWlsZWQoX2EgKyAnIHNob3VsZCByZXR1cm4gYSBzdHJpbmcu
IFRocmV3IGV4Y2VwdGlvbiAnICsgZXhjZXB0aW9uKTsKKyAgZWxzZSBpZiAodHlwZW9mIF9hdiA9
PSAic3RyaW5nIikKKyAgICB0ZXN0UGFzc2VkKF9hICsgJyByZXR1cm5zIGEgc3RyaW5nJyk7Cisg
IGVsc2UKKyAgICB0ZXN0RmFpbGVkKF9hICsgJyBzaG91bGQgcmV0dXJuIGEgc3RyaW5nLiAgUmV0
dXJuczogIicgKyBfYXYgKyAnIicpOworfQorCit2YXIgZ2wgPSBjcmVhdGUzRENvbnRleHQoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpKTsKK2lmICghZ2wpIHsKKyAgdGVzdEZhaWxl
ZCgiY29udGV4dCBkb2VzIG5vdCBleGlzdCIpOworfSBlbHNlIHsKKyAgdmFyIHZzID0gZ2wuY3Jl
YXRlU2hhZGVyKGdsLlZFUlRFWF9TSEFERVIpOworICBzaG91bGRSZXR1cm5TdHJpbmcoImdsLmdl
dFNoYWRlclNvdXJjZSh2cykiKTsKKyAgc2hvdWxkUmV0dXJuU3RyaW5nKCJnbC5nZXRTaGFkZXJJ
bmZvTG9nKHZzKSIpOworICBnbC5zaGFkZXJTb3VyY2UodnMsIHZhbGlkVmVydGV4U2hhZGVyU3Ry
aW5nKTsKKyAgZ2wuY29tcGlsZVNoYWRlcih2cyk7CisgIHNob3VsZFJldHVyblN0cmluZygiZ2wu
Z2V0U2hhZGVyU291cmNlKHZzKSIpOworICBzaG91bGRSZXR1cm5TdHJpbmcoImdsLmdldFNoYWRl
ckluZm9Mb2codnMpIik7CisKKyAgdmFyIGZzID0gZ2wuY3JlYXRlU2hhZGVyKGdsLkZSQUdNRU5U
X1NIQURFUik7CisgIHNob3VsZFJldHVyblN0cmluZygiZ2wuZ2V0U2hhZGVyU291cmNlKGZzKSIp
OworICBzaG91bGRSZXR1cm5TdHJpbmcoImdsLmdldFNoYWRlckluZm9Mb2coZnMpIik7CisgIGds
LnNoYWRlclNvdXJjZShmcywgdmFsaWRGcmFnbWVudFNoYWRlclN0cmluZyk7CisgIGdsLmNvbXBp
bGVTaGFkZXIoZnMpOworICBzaG91bGRSZXR1cm5TdHJpbmcoImdsLmdldFNoYWRlclNvdXJjZShm
cykiKTsKKyAgc2hvdWxkUmV0dXJuU3RyaW5nKCJnbC5nZXRTaGFkZXJJbmZvTG9nKGZzKSIpOwor
CisgIHZhciBwcm9nID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOworICBzaG91bGRSZXR1cm5TdHJpbmco
ImdsLmdldFByb2dyYW1JbmZvTG9nKHByb2cpIik7CisgIGdsLmF0dGFjaFNoYWRlcihwcm9nLCB2
cyk7CisgIGdsLmF0dGFjaFNoYWRlcihwcm9nLCBmcyk7CisgIGdsLmxpbmtQcm9ncmFtKHByb2cp
OworICBzaG91bGRSZXR1cm5TdHJpbmcoImdsLmdldFByb2dyYW1JbmZvTG9nKHByb2cpIik7CisK
KyAgdmFyIGV4dHMgPSBnbC5nZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCk7CisgIGZvciAoaSBpbiBl
eHRzKSB7CisgICAgc2hvdWxkUmV0dXJuU3RyaW5nKCJnbC5nZXRTdXBwb3J0ZWRFeHRlbnNpb25z
KClbIiArIGkgKyAiXSIpOworICB9CisKKyAgc2hvdWxkUmV0dXJuU3RyaW5nKCJnbC5nZXRQYXJh
bWV0ZXIoZ2wuVkVORE9SKSIpOworICBzaG91bGRSZXR1cm5TdHJpbmcoImdsLmdldFBhcmFtZXRl
cihnbC5SRU5ERVJFUikiKTsKKyAgc2hvdWxkUmV0dXJuU3RyaW5nKCJnbC5nZXRQYXJhbWV0ZXIo
Z2wuVkVSU0lPTikiKTsKKyAgc2hvdWxkUmV0dXJuU3RyaW5nKCJnbC5nZXRQYXJhbWV0ZXIoZ2wu
U0hBRElOR19MQU5HVUFHRV9WRVJTSU9OKSIpOworfQorCitkZWJ1ZygiIik7CitzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124791</attachid>
            <date>2012-01-31 12:02:06 -0800</date>
            <delta_ts>2012-01-31 19:18:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77149-20120131150205.patch</filename>
            <type>text/plain</type>
            <size>9362</size>
            <attacher name="Ehsan Akhgari [:ehsan]">ehsan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MzczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWVkMWJiOWY3YmZmZmU1
MmFlZjcyYjBkOGY4ZGUwMzNkYmE5NjI1Zi4uNmY0MjIyMTFmZDI0ODVlMjFkZmUzNTJlMjlkNWEx
YmViNTliNzAxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAxLTMxICBFaHNh
biBBa2hnYXJpICA8ZWhzYW4uYWtoZ2FyaUBnbWFpbC5jb20+CisKKyAgICAgICAgV2ViR0wgY29u
Zm9ybWFuY2UgdGVzdCBtaXNjL2Z1bmN0aW9ucy1yZXR1cm5pbmctc3RyaW5ncy5odG1sIGZhaWxz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzE0OQor
CisgICAgICAgIE1ha2Ugc3VyZSB0aGF0IFdlYkdMIG1ldGhvZHMgcmV0dXJuaW5nIHN0cmluZ3Mg
ZG9uJ3QgcmV0dXJuIG51bGwgd2hlbgorICAgICAgICB0aGV5IHJ1biBzdWNjZXNzZnVsbHkuCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFz
dC9jYW52YXMvd2ViZ2wvZnVuY3Rpb25zLXJldHVybmluZy1zdHJpbmdzLmh0bWwKKworICAgICAg
ICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UHJvZ3Jh
bUluZm9Mb2cpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRT
aGFkZXJJbmZvTG9nKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0U2hhZGVyU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dDo6ZW5zdXJlTm90TnVsbCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0Lmg6CisgICAgICAgIChXZWJHTFJlbmRlcmluZ0NvbnRleHQpOgorCiAyMDEyLTAxLTI1
ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBIVE1MSXNJbmRleEVs
ZW1lbnQgc2hvdWxkIG5vdCBleHBvc2UgSFRNTElucHV0RWxlbWVudCBwcm9wZXJ0aWVzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNw
cAppbmRleCA5MTc2YTJkYTQ0ZmQ2ODlkMjIxYmE2MTM4NGE3NTY5ZjY0ZjQxNmJmLi4xMzAyMGZm
NDZlYjBjMzgzYmJiZjg0MTI0MmQ0NTMzOWY1MzRhZjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTI1MTEsNyAr
MjUxMSw3IEBAIFN0cmluZyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFByb2dyYW1JbmZvTG9n
KFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgRXhjZXB0aW9uCiAgICAgaWYgKCF2YWxpZGF0ZVdlYkdM
T2JqZWN0KHByb2dyYW0pKQogICAgICAgICByZXR1cm4gIiI7CiAgICAgV2ViR0xTdGF0ZVJlc3Rv
cmVyKHRoaXMsIGZhbHNlKTsKLSAgICByZXR1cm4gbV9jb250ZXh0LT5nZXRQcm9ncmFtSW5mb0xv
ZyhvYmplY3RPclplcm8ocHJvZ3JhbSkpOworICAgIHJldHVybiBlbnN1cmVOb3ROdWxsKG1fY29u
dGV4dC0+Z2V0UHJvZ3JhbUluZm9Mb2cob2JqZWN0T3JaZXJvKHByb2dyYW0pKSk7CiB9CiAKIFdl
YkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRl
cihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKQEAg
LTI2MTEsNyArMjYxMSw3IEBAIFN0cmluZyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFNoYWRl
ckluZm9Mb2coV2ViR0xTaGFkZXIqIHNoYWRlciwgRXhjZXB0aW9uQ29kCiAgICAgaWYgKCF2YWxp
ZGF0ZVdlYkdMT2JqZWN0KHNoYWRlcikpCiAgICAgICAgIHJldHVybiAiIjsKICAgICBXZWJHTFN0
YXRlUmVzdG9yZXIodGhpcywgZmFsc2UpOwotICAgIHJldHVybiBtX2NvbnRleHQtPmdldFNoYWRl
ckluZm9Mb2cob2JqZWN0T3JaZXJvKHNoYWRlcikpOworICAgIHJldHVybiBlbnN1cmVOb3ROdWxs
KG1fY29udGV4dC0+Z2V0U2hhZGVySW5mb0xvZyhvYmplY3RPclplcm8oc2hhZGVyKSkpOwogfQog
CiBTdHJpbmcgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTaGFkZXJTb3VyY2UoV2ViR0xTaGFk
ZXIqIHNoYWRlciwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0yNjIxLDcgKzI2MjEsNyBAQCBTdHJp
bmcgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTaGFkZXJTb3VyY2UoV2ViR0xTaGFkZXIqIHNo
YWRlciwgRXhjZXB0aW9uQ29kZQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgaWYgKCF2
YWxpZGF0ZVdlYkdMT2JqZWN0KHNoYWRlcikpCiAgICAgICAgIHJldHVybiAiIjsKLSAgICByZXR1
cm4gc2hhZGVyLT5nZXRTb3VyY2UoKTsKKyAgICByZXR1cm4gZW5zdXJlTm90TnVsbChzaGFkZXIt
PmdldFNvdXJjZSgpKTsKIH0KIAogVmVjdG9yPFN0cmluZz4gV2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCkKQEAgLTUxMTksNiArNTExOSwxMyBAQCB2b2lkIFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6bWF5YmVSZXN0b3JlQ29udGV4dChUaW1lcjxXZWJHTFJlbmRl
cmluZ0NvbnRleHQ+KikKICAgICBjYW52YXMoKS0+ZGlzcGF0Y2hFdmVudChXZWJHTENvbnRleHRF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJnbGNvbnRleHRyZXN0b3JlZEV2ZW50LCBmYWxz
ZSwgdHJ1ZSwgIiIpKTsKIH0KIAorU3RyaW5nIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6ZW5zdXJl
Tm90TnVsbChjb25zdCBTdHJpbmcmIHRleHQpIGNvbnN0Cit7CisgICAgaWYgKHRleHQuaXNOdWxs
KCkpCisgICAgICAgIHJldHVybiBXVEY6OmVtcHR5U3RyaW5nKCk7CisgICAgcmV0dXJuIHRleHQ7
Cit9CisKIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6TFJVSW1hZ2VCdWZmZXJDYWNoZTo6TFJVSW1h
Z2VCdWZmZXJDYWNoZShpbnQgY2FwYWNpdHkpCiAgICAgOiBtX2J1ZmZlcnMoYWRvcHRBcnJheVB0
cihuZXcgT3duUHRyPEltYWdlQnVmZmVyPltjYXBhY2l0eV0pKQogICAgICwgbV9jYXBhY2l0eShj
YXBhY2l0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0LmgKaW5kZXggMTgyOTFmZGQ2ZjIzZmU0MzU5MzBjOWJhZDI3NjYxOWI4ZjU1ODc3
MS4uNDQ0YzU1MGIxNjlhNmZhNDkxODc5YzZhOTRkMjdhMmQ5YzRjOGFjMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTY1
NCw2ICs2NTQsOCBAQCBwdWJsaWM6CiAgICAgLy8gYSBTYWZhcmkgb3IgQ2hyb21lIGV4dGVuc2lv
bi4KICAgICBib29sIGFsbG93UHJpdmlsZWdlZEV4dGVuc2lvbnMoKSBjb25zdDsKIAorICAgIFN0
cmluZyBlbnN1cmVOb3ROdWxsKGNvbnN0IFN0cmluZyYpIGNvbnN0OworCiAgICAgZnJpZW5kIGNs
YXNzIFdlYkdMU3RhdGVSZXN0b3JlcjsKIH07CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3YzJlZGQyNzg1M2NiYWFhZWU4
ZDg3MzVhZjA1ODA3N2Y1ZjZjODI1Li4xMzc1MDYxOWQyZjNkZDcyYzVlYTgzN2M2Njk1OWI5ZmQy
ZWYxODIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDEtMzEgIEVoc2FuIEFraGdhcmkg
IDxlaHNhbi5ha2hnYXJpQGdtYWlsLmNvbT4KKworICAgICAgICBXZWJHTCBjb25mb3JtYW5jZSB0
ZXN0IG1pc2MvZnVuY3Rpb25zLXJldHVybmluZy1zdHJpbmdzLmh0bWwgZmFpbHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MTQ5CisKKyAgICAgICAg
SW1wb3J0ZWQgdGhlIFdlYkdMIGNvbmZvcm1hbmNlIHRlc3QgcmVsYXRlZCB0byB0aGlzLgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9jYW52
YXMvd2ViZ2wvZnVuY3Rpb25zLXJldHVybmluZy1zdHJpbmdzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvZnVuY3Rpb25zLXJldHVybmluZy1zdHJpbmdz
Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTAxLTI1ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBIVE1MSXNJbmRleEVsZW1lbnQgc2hvdWxkIG5vdCBleHBvc2UgSFRNTElu
cHV0RWxlbWVudCBwcm9wZXJ0aWVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC9mdW5jdGlvbnMtcmV0dXJuaW5nLXN0cmluZ3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZnVuY3Rpb25zLXJldHVybmluZy1zdHJpbmdzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43NDVhZmVmZWUzMmMwN2U3ZjAwYzk5NjNmMjY5MzBjZDE0MjIz
OGE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZnVu
Y3Rpb25zLXJldHVybmluZy1zdHJpbmdzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACitU
ZXN0IHRoYXQgZnVuY3Rpb25zIHJldHVybmluZyBzdHJpbmdzIHJlYWxseSBkbyByZXR1cm4gc3Ry
aW5ncyAoYW5kIG5vdCBlLmcuIG51bGwpCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIGdsLmdldFNoYWRlclNvdXJjZSh2cykgcmV0dXJucyBhIHN0cmluZworUEFTUyBnbC5n
ZXRTaGFkZXJJbmZvTG9nKHZzKSByZXR1cm5zIGEgc3RyaW5nCitQQVNTIGdsLmdldFNoYWRlclNv
dXJjZSh2cykgcmV0dXJucyBhIHN0cmluZworUEFTUyBnbC5nZXRTaGFkZXJJbmZvTG9nKHZzKSBy
ZXR1cm5zIGEgc3RyaW5nCitQQVNTIGdsLmdldFNoYWRlclNvdXJjZShmcykgcmV0dXJucyBhIHN0
cmluZworUEFTUyBnbC5nZXRTaGFkZXJJbmZvTG9nKGZzKSByZXR1cm5zIGEgc3RyaW5nCitQQVNT
IGdsLmdldFNoYWRlclNvdXJjZShmcykgcmV0dXJucyBhIHN0cmluZworUEFTUyBnbC5nZXRTaGFk
ZXJJbmZvTG9nKGZzKSByZXR1cm5zIGEgc3RyaW5nCitQQVNTIGdsLmdldFByb2dyYW1JbmZvTG9n
KHByb2cpIHJldHVybnMgYSBzdHJpbmcKK1BBU1MgZ2wuZ2V0UHJvZ3JhbUluZm9Mb2cocHJvZykg
cmV0dXJucyBhIHN0cmluZworUEFTUyBnbC5nZXRTdXBwb3J0ZWRFeHRlbnNpb25zKClbMF0gcmV0
dXJucyBhIHN0cmluZworUEFTUyBnbC5nZXRTdXBwb3J0ZWRFeHRlbnNpb25zKClbMV0gcmV0dXJu
cyBhIHN0cmluZworUEFTUyBnbC5nZXRTdXBwb3J0ZWRFeHRlbnNpb25zKClbMl0gcmV0dXJucyBh
IHN0cmluZworUEFTUyBnbC5nZXRTdXBwb3J0ZWRFeHRlbnNpb25zKClbM10gcmV0dXJucyBhIHN0
cmluZworUEFTUyBnbC5nZXRTdXBwb3J0ZWRFeHRlbnNpb25zKClbNF0gcmV0dXJucyBhIHN0cmlu
ZworUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuVkVORE9SKSByZXR1cm5zIGEgc3RyaW5nCitQQVNT
IGdsLmdldFBhcmFtZXRlcihnbC5SRU5ERVJFUikgcmV0dXJucyBhIHN0cmluZworUEFTUyBnbC5n
ZXRQYXJhbWV0ZXIoZ2wuVkVSU0lPTikgcmV0dXJucyBhIHN0cmluZworUEFTUyBnbC5nZXRQYXJh
bWV0ZXIoZ2wuU0hBRElOR19MQU5HVUFHRV9WRVJTSU9OKSByZXR1cm5zIGEgc3RyaW5nCisKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9mdW5jdGlvbnMtcmV0dXJuaW5nLXN0
cmluZ3MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2Z1bmN0aW9ucy1yZXR1
cm5pbmctc3RyaW5ncy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjMjY2NGVlMDdlMDZhMmE5Yzc2NTdiOTFh
NzU1ODA2OWU5YTYzNGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC9mdW5jdGlvbnMtcmV0dXJuaW5nLXN0cmluZ3MuaHRtbApAQCAtMCwwICsxLDg3IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdHM8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvZGVza3RvcC1nbC1jb25zdGFudHMuanMiIHR5cGU9InRleHQv
amF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48
L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0
aD0iMiIgaGVpZ2h0PSIyIj4gPC9jYW52YXM+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3Qg
dGhhdCBmdW5jdGlvbnMgcmV0dXJuaW5nIHN0cmluZ3MgcmVhbGx5IGRvIHJldHVybiBzdHJpbmdz
IChhbmQgbm90IGUuZy4gbnVsbCkiKTsKK2RlYnVnKCIiKTsKKwordmFyIHZhbGlkVmVydGV4U2hh
ZGVyU3RyaW5nID0KKyAgImF0dHJpYnV0ZSB2ZWM0IGFWZXJ0ZXg7IGF0dHJpYnV0ZSB2ZWM0IGFD
b2xvcjsgdmFyeWluZyB2ZWM0IHZDb2xvcjsgdm9pZCBtYWluKCkgeyB2Q29sb3IgPSBhQ29sb3I7
IGdsX1Bvc2l0aW9uID0gYVZlcnRleDsgfSI7Cit2YXIgdmFsaWRGcmFnbWVudFNoYWRlclN0cmlu
ZyA9CisgICJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsgdmFyeWluZyB2ZWM0IHZDb2xvcjsgdm9p
ZCBtYWluKCkgeyBnbF9GcmFnQ29sb3IgPSB2Q29sb3I7IH0iOworCitmdW5jdGlvbiBzaG91bGRS
ZXR1cm5TdHJpbmcoX2EpCit7CisgIHZhciBleGNlcHRpb247CisgIHZhciBfYXY7CisgIHRyeSB7
CisgICAgIF9hdiA9IGV2YWwoX2EpOworICB9IGNhdGNoIChlKSB7CisgICAgIGV4Y2VwdGlvbiA9
IGU7CisgIH0KKworICBpZiAoZXhjZXB0aW9uKQorICAgIHRlc3RGYWlsZWQoX2EgKyAnIHNob3Vs
ZCByZXR1cm4gYSBzdHJpbmcuIFRocmV3IGV4Y2VwdGlvbiAnICsgZXhjZXB0aW9uKTsKKyAgZWxz
ZSBpZiAodHlwZW9mIF9hdiA9PSAic3RyaW5nIikKKyAgICB0ZXN0UGFzc2VkKF9hICsgJyByZXR1
cm5zIGEgc3RyaW5nJyk7CisgIGVsc2UKKyAgICB0ZXN0RmFpbGVkKF9hICsgJyBzaG91bGQgcmV0
dXJuIGEgc3RyaW5nLiAgUmV0dXJuczogIicgKyBfYXYgKyAnIicpOworfQorCit2YXIgZ2wgPSBj
cmVhdGUzRENvbnRleHQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpKTsKK2lmICgh
Z2wpIHsKKyAgdGVzdEZhaWxlZCgiY29udGV4dCBkb2VzIG5vdCBleGlzdCIpOworfSBlbHNlIHsK
KyAgdmFyIHZzID0gZ2wuY3JlYXRlU2hhZGVyKGdsLlZFUlRFWF9TSEFERVIpOworICBzaG91bGRS
ZXR1cm5TdHJpbmcoImdsLmdldFNoYWRlclNvdXJjZSh2cykiKTsKKyAgc2hvdWxkUmV0dXJuU3Ry
aW5nKCJnbC5nZXRTaGFkZXJJbmZvTG9nKHZzKSIpOworICBnbC5zaGFkZXJTb3VyY2UodnMsIHZh
bGlkVmVydGV4U2hhZGVyU3RyaW5nKTsKKyAgZ2wuY29tcGlsZVNoYWRlcih2cyk7CisgIHNob3Vs
ZFJldHVyblN0cmluZygiZ2wuZ2V0U2hhZGVyU291cmNlKHZzKSIpOworICBzaG91bGRSZXR1cm5T
dHJpbmcoImdsLmdldFNoYWRlckluZm9Mb2codnMpIik7CisKKyAgdmFyIGZzID0gZ2wuY3JlYXRl
U2hhZGVyKGdsLkZSQUdNRU5UX1NIQURFUik7CisgIHNob3VsZFJldHVyblN0cmluZygiZ2wuZ2V0
U2hhZGVyU291cmNlKGZzKSIpOworICBzaG91bGRSZXR1cm5TdHJpbmcoImdsLmdldFNoYWRlcklu
Zm9Mb2coZnMpIik7CisgIGdsLnNoYWRlclNvdXJjZShmcywgdmFsaWRGcmFnbWVudFNoYWRlclN0
cmluZyk7CisgIGdsLmNvbXBpbGVTaGFkZXIoZnMpOworICBzaG91bGRSZXR1cm5TdHJpbmcoImds
LmdldFNoYWRlclNvdXJjZShmcykiKTsKKyAgc2hvdWxkUmV0dXJuU3RyaW5nKCJnbC5nZXRTaGFk
ZXJJbmZvTG9nKGZzKSIpOworCisgIHZhciBwcm9nID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOworICBz
aG91bGRSZXR1cm5TdHJpbmcoImdsLmdldFByb2dyYW1JbmZvTG9nKHByb2cpIik7CisgIGdsLmF0
dGFjaFNoYWRlcihwcm9nLCB2cyk7CisgIGdsLmF0dGFjaFNoYWRlcihwcm9nLCBmcyk7CisgIGds
LmxpbmtQcm9ncmFtKHByb2cpOworICBzaG91bGRSZXR1cm5TdHJpbmcoImdsLmdldFByb2dyYW1J
bmZvTG9nKHByb2cpIik7CisKKyAgdmFyIGV4dHMgPSBnbC5nZXRTdXBwb3J0ZWRFeHRlbnNpb25z
KCk7CisgIGZvciAoaSBpbiBleHRzKSB7CisgICAgc2hvdWxkUmV0dXJuU3RyaW5nKCJnbC5nZXRT
dXBwb3J0ZWRFeHRlbnNpb25zKClbIiArIGkgKyAiXSIpOworICB9CisKKyAgc2hvdWxkUmV0dXJu
U3RyaW5nKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuVkVORE9SKSIpOworICBzaG91bGRSZXR1cm5TdHJp
bmcoImdsLmdldFBhcmFtZXRlcihnbC5SRU5ERVJFUikiKTsKKyAgc2hvdWxkUmV0dXJuU3RyaW5n
KCJnbC5nZXRQYXJhbWV0ZXIoZ2wuVkVSU0lPTikiKTsKKyAgc2hvdWxkUmV0dXJuU3RyaW5nKCJn
bC5nZXRQYXJhbWV0ZXIoZ2wuU0hBRElOR19MQU5HVUFHRV9WRVJTSU9OKSIpOworfQorCitkZWJ1
ZygiIik7CitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKworPC9i
b2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124869</attachid>
            <date>2012-01-31 19:18:25 -0800</date>
            <delta_ts>2012-02-06 16:38:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77149-20120131221824.patch</filename>
            <type>text/plain</type>
            <size>9441</size>
            <attacher name="Ehsan Akhgari [:ehsan]">ehsan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NDIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjgxMDE4ZWVhZTVlYjZi
MzI4ODI3NTQ1NTAwMDI2NWQ1NzNiYmY1OS4uNGFkMzhiY2JiY2UyNGYxNTdkYzUwYmQxZjFmZTE4
YmE5MWExYTZiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAxLTMxICBFaHNh
biBBa2hnYXJpICA8ZWhzYW4uYWtoZ2FyaUBnbWFpbC5jb20+CisKKyAgICAgICAgV2ViR0wgY29u
Zm9ybWFuY2UgdGVzdCBtaXNjL2Z1bmN0aW9ucy1yZXR1cm5pbmctc3RyaW5ncy5odG1sIGZhaWxz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzE0OQor
CisgICAgICAgIE1ha2Ugc3VyZSB0aGF0IFdlYkdMIG1ldGhvZHMgcmV0dXJuaW5nIHN0cmluZ3Mg
ZG9uJ3QgcmV0dXJuIG51bGwgd2hlbgorICAgICAgICB0aGV5IHJ1biBzdWNjZXNzZnVsbHkuCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFz
dC9jYW52YXMvd2ViZ2wvZnVuY3Rpb25zLXJldHVybmluZy1zdHJpbmdzLmh0bWwKKworICAgICAg
ICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UHJvZ3Jh
bUluZm9Mb2cpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRT
aGFkZXJJbmZvTG9nKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0U2hhZGVyU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dDo6ZW5zdXJlTm90TnVsbCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0Lmg6CisgICAgICAgIChXZWJHTFJlbmRlcmluZ0NvbnRleHQpOgorCiAyMDEyLTAxLTMx
ICBSYXltb25kIExpdSAgPHJheW1vbmQubGl1QGludGVsLmNvbT4KIAogICAgICAgICBDbGVhbiB1
cCBtX3Byb2Nlc3NMb2NrIGxvZ2ljIGluIEF1ZGlvQmFzaWNQcm9jZXNzb3JOb2RlIGFuZCBBdWRp
b0dhaW5Ob2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0LmNwcAppbmRleCA5MTc2YTJkYTQ0ZmQ2ODlkMjIxYmE2MTM4NGE3NTY5ZjY0
ZjQxNmJmLi4xMzAyMGZmNDZlYjBjMzgzYmJiZjg0MTI0MmQ0NTMzOWY1MzRhZjM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5j
cHAKQEAgLTI1MTEsNyArMjUxMSw3IEBAIFN0cmluZyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6Omdl
dFByb2dyYW1JbmZvTG9nKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgRXhjZXB0aW9uCiAgICAgaWYg
KCF2YWxpZGF0ZVdlYkdMT2JqZWN0KHByb2dyYW0pKQogICAgICAgICByZXR1cm4gIiI7CiAgICAg
V2ViR0xTdGF0ZVJlc3RvcmVyKHRoaXMsIGZhbHNlKTsKLSAgICByZXR1cm4gbV9jb250ZXh0LT5n
ZXRQcm9ncmFtSW5mb0xvZyhvYmplY3RPclplcm8ocHJvZ3JhbSkpOworICAgIHJldHVybiBlbnN1
cmVOb3ROdWxsKG1fY29udGV4dC0+Z2V0UHJvZ3JhbUluZm9Mb2cob2JqZWN0T3JaZXJvKHByb2dy
YW0pKSk7CiB9CiAKIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFJlbmRl
cmJ1ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBFeGNlcHRp
b25Db2RlJiBlYykKQEAgLTI2MTEsNyArMjYxMSw3IEBAIFN0cmluZyBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OmdldFNoYWRlckluZm9Mb2coV2ViR0xTaGFkZXIqIHNoYWRlciwgRXhjZXB0aW9uQ29k
CiAgICAgaWYgKCF2YWxpZGF0ZVdlYkdMT2JqZWN0KHNoYWRlcikpCiAgICAgICAgIHJldHVybiAi
IjsKICAgICBXZWJHTFN0YXRlUmVzdG9yZXIodGhpcywgZmFsc2UpOwotICAgIHJldHVybiBtX2Nv
bnRleHQtPmdldFNoYWRlckluZm9Mb2cob2JqZWN0T3JaZXJvKHNoYWRlcikpOworICAgIHJldHVy
biBlbnN1cmVOb3ROdWxsKG1fY29udGV4dC0+Z2V0U2hhZGVySW5mb0xvZyhvYmplY3RPclplcm8o
c2hhZGVyKSkpOwogfQogCiBTdHJpbmcgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTaGFkZXJT
b3VyY2UoV2ViR0xTaGFkZXIqIHNoYWRlciwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0yNjIxLDcg
KzI2MjEsNyBAQCBTdHJpbmcgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTaGFkZXJTb3VyY2Uo
V2ViR0xTaGFkZXIqIHNoYWRlciwgRXhjZXB0aW9uQ29kZQogICAgICAgICByZXR1cm4gU3RyaW5n
KCk7CiAgICAgaWYgKCF2YWxpZGF0ZVdlYkdMT2JqZWN0KHNoYWRlcikpCiAgICAgICAgIHJldHVy
biAiIjsKLSAgICByZXR1cm4gc2hhZGVyLT5nZXRTb3VyY2UoKTsKKyAgICByZXR1cm4gZW5zdXJl
Tm90TnVsbChzaGFkZXItPmdldFNvdXJjZSgpKTsKIH0KIAogVmVjdG9yPFN0cmluZz4gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCkKQEAgLTUxMTksNiArNTEx
OSwxMyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6bWF5YmVSZXN0b3JlQ29udGV4dChU
aW1lcjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KikKICAgICBjYW52YXMoKS0+ZGlzcGF0Y2hFdmVu
dChXZWJHTENvbnRleHRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJnbGNvbnRleHRyZXN0
b3JlZEV2ZW50LCBmYWxzZSwgdHJ1ZSwgIiIpKTsKIH0KIAorU3RyaW5nIFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6ZW5zdXJlTm90TnVsbChjb25zdCBTdHJpbmcmIHRleHQpIGNvbnN0Cit7CisgICAg
aWYgKHRleHQuaXNOdWxsKCkpCisgICAgICAgIHJldHVybiBXVEY6OmVtcHR5U3RyaW5nKCk7Cisg
ICAgcmV0dXJuIHRleHQ7Cit9CisKIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6TFJVSW1hZ2VCdWZm
ZXJDYWNoZTo6TFJVSW1hZ2VCdWZmZXJDYWNoZShpbnQgY2FwYWNpdHkpCiAgICAgOiBtX2J1ZmZl
cnMoYWRvcHRBcnJheVB0cihuZXcgT3duUHRyPEltYWdlQnVmZmVyPltjYXBhY2l0eV0pKQogICAg
ICwgbV9jYXBhY2l0eShjYXBhY2l0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggMTgyOTFmZGQ2ZjIzZmU0MzU5MzBjOWJh
ZDI3NjYxOWI4ZjU1ODc3MS4uNDQ0YzU1MGIxNjlhNmZhNDkxODc5YzZhOTRkMjdhMmQ5YzRjOGFj
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0LmgKQEAgLTY1NCw2ICs2NTQsOCBAQCBwdWJsaWM6CiAgICAgLy8gYSBTYWZhcmkgb3Ig
Q2hyb21lIGV4dGVuc2lvbi4KICAgICBib29sIGFsbG93UHJpdmlsZWdlZEV4dGVuc2lvbnMoKSBj
b25zdDsKIAorICAgIFN0cmluZyBlbnN1cmVOb3ROdWxsKGNvbnN0IFN0cmluZyYpIGNvbnN0Owor
CiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMU3RhdGVSZXN0b3JlcjsKIH07CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyNjli
NjQ2ZTYwNmQ2NmVjMDliYjk0MmRjMTMzZjlhMDU1YWRhY2JiLi43YjVlMmZmNmI4NDlmODQ0ZjZj
N2QxNmY5OTE1YmJjNWQwN2VhY2UwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDEtMzEg
IEVoc2FuIEFraGdhcmkgIDxlaHNhbi5ha2hnYXJpQGdtYWlsLmNvbT4KKworICAgICAgICBXZWJH
TCBjb25mb3JtYW5jZSB0ZXN0IG1pc2MvZnVuY3Rpb25zLXJldHVybmluZy1zdHJpbmdzLmh0bWwg
ZmFpbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3
MTQ5CisKKyAgICAgICAgSW1wb3J0ZWQgdGhlIFdlYkdMIGNvbmZvcm1hbmNlIHRlc3QgcmVsYXRl
ZCB0byB0aGlzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogZmFzdC9jYW52YXMvd2ViZ2wvZnVuY3Rpb25zLXJldHVybmluZy1zdHJpbmdzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvZnVuY3Rpb25zLXJl
dHVybmluZy1zdHJpbmdzLmh0bWw6IEFkZGVkLgorCiAyMDEyLTAxLTMxICBBZGFtIEtsZWluICA8
YWRhbWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFByb2Nlc3NpbmdJbnN0cnVjdGlvbiBzaG91
bGQgbm90IGJlIGEgQ29udGFpbmVyTm9kZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvd2ViZ2wvZnVuY3Rpb25zLXJldHVybmluZy1zdHJpbmdzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2Z1bmN0aW9ucy1yZXR1cm5pbmctc3RyaW5ncy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWRlYzI5YTJlZDdmYWE2NzA1MGJlM2JmOTA3MGMxYzI0
OWE5ZGJlMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L2Z1bmN0aW9ucy1yZXR1cm5pbmctc3RyaW5ncy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNSBA
QAorVGVzdCB0aGF0IGZ1bmN0aW9ucyByZXR1cm5pbmcgc3RyaW5ncyByZWFsbHkgZG8gcmV0dXJu
IHN0cmluZ3MgKGFuZCBub3QgZS5nLiBudWxsKQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBnbC5nZXRTaGFkZXJTb3VyY2UodnMpIHJldHVybnMgYSBzdHJpbmcKK1BBU1Mg
Z2wuZ2V0U2hhZGVySW5mb0xvZyh2cykgcmV0dXJucyBhIHN0cmluZworUEFTUyBnbC5nZXRTaGFk
ZXJTb3VyY2UodnMpIHJldHVybnMgYSBzdHJpbmcKK1BBU1MgZ2wuZ2V0U2hhZGVySW5mb0xvZyh2
cykgcmV0dXJucyBhIHN0cmluZworUEFTUyBnbC5nZXRTaGFkZXJTb3VyY2UoZnMpIHJldHVybnMg
YSBzdHJpbmcKK1BBU1MgZ2wuZ2V0U2hhZGVySW5mb0xvZyhmcykgcmV0dXJucyBhIHN0cmluZwor
UEFTUyBnbC5nZXRTaGFkZXJTb3VyY2UoZnMpIHJldHVybnMgYSBzdHJpbmcKK1BBU1MgZ2wuZ2V0
U2hhZGVySW5mb0xvZyhmcykgcmV0dXJucyBhIHN0cmluZworUEFTUyBnbC5nZXRQcm9ncmFtSW5m
b0xvZyhwcm9nKSByZXR1cm5zIGEgc3RyaW5nCitQQVNTIGdsLmdldFByb2dyYW1JbmZvTG9nKHBy
b2cpIHJldHVybnMgYSBzdHJpbmcKK1BBU1MgZ2V0U3VwcG9ydGVkRXh0ZW5zaW9ucygpIHJldHVy
bnMgYW4gYXJyYXkgb2Ygc3RyaW5ncworUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuVkVORE9SKSBy
ZXR1cm5zIGEgc3RyaW5nCitQQVNTIGdsLmdldFBhcmFtZXRlcihnbC5SRU5ERVJFUikgcmV0dXJu
cyBhIHN0cmluZworUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuVkVSU0lPTikgcmV0dXJucyBhIHN0
cmluZworUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuU0hBRElOR19MQU5HVUFHRV9WRVJTSU9OKSBy
ZXR1cm5zIGEgc3RyaW5nCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9m
dW5jdGlvbnMtcmV0dXJuaW5nLXN0cmluZ3MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L3dlYmdsL2Z1bmN0aW9ucy1yZXR1cm5pbmctc3RyaW5ncy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjczOWQ4
N2I4NTM1ZmI2OWM5MTY2ODg5YjQwZmFiNjYyNWQ1MWM1NzIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9mdW5jdGlvbnMtcmV0dXJuaW5nLXN0cmluZ3Mu
aHRtbApAQCAtMCwwICsxLDk2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+V2ViR0wgQ29uZm9ybWFuY2UgVGVzdHM8L3Rp
dGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZGVza3RvcC1nbC1jb25z
dGFudHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxk
aXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGNh
bnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIj4gPC9jYW52YXM+Cis8c2NyaXB0
PgorZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBmdW5jdGlvbnMgcmV0dXJuaW5nIHN0cmluZ3MgcmVh
bGx5IGRvIHJldHVybiBzdHJpbmdzIChhbmQgbm90IGUuZy4gbnVsbCkiKTsKK2RlYnVnKCIiKTsK
KwordmFyIHZhbGlkVmVydGV4U2hhZGVyU3RyaW5nID0KKyAgImF0dHJpYnV0ZSB2ZWM0IGFWZXJ0
ZXg7IGF0dHJpYnV0ZSB2ZWM0IGFDb2xvcjsgdmFyeWluZyB2ZWM0IHZDb2xvcjsgdm9pZCBtYWlu
KCkgeyB2Q29sb3IgPSBhQ29sb3I7IGdsX1Bvc2l0aW9uID0gYVZlcnRleDsgfSI7Cit2YXIgdmFs
aWRGcmFnbWVudFNoYWRlclN0cmluZyA9CisgICJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsgdmFy
eWluZyB2ZWM0IHZDb2xvcjsgdm9pZCBtYWluKCkgeyBnbF9GcmFnQ29sb3IgPSB2Q29sb3I7IH0i
OworCitmdW5jdGlvbiBzaG91bGRSZXR1cm5TdHJpbmcoX2EpCit7CisgIHZhciBleGNlcHRpb247
CisgIHZhciBfYXY7CisgIHRyeSB7CisgICAgIF9hdiA9IGV2YWwoX2EpOworICB9IGNhdGNoIChl
KSB7CisgICAgIGV4Y2VwdGlvbiA9IGU7CisgIH0KKworICBpZiAoZXhjZXB0aW9uKQorICAgIHRl
c3RGYWlsZWQoX2EgKyAnIHNob3VsZCByZXR1cm4gYSBzdHJpbmcuIFRocmV3IGV4Y2VwdGlvbiAn
ICsgZXhjZXB0aW9uKTsKKyAgZWxzZSBpZiAodHlwZW9mIF9hdiA9PSAic3RyaW5nIikKKyAgICB0
ZXN0UGFzc2VkKF9hICsgJyByZXR1cm5zIGEgc3RyaW5nJyk7CisgIGVsc2UKKyAgICB0ZXN0RmFp
bGVkKF9hICsgJyBzaG91bGQgcmV0dXJuIGEgc3RyaW5nLiAgUmV0dXJuczogIicgKyBfYXYgKyAn
IicpOworfQorCit2YXIgZ2wgPSBjcmVhdGUzRENvbnRleHQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImNhbnZhcyIpKTsKK2lmICghZ2wpIHsKKyAgdGVzdEZhaWxlZCgiY29udGV4dCBkb2VzIG5v
dCBleGlzdCIpOworfSBlbHNlIHsKKyAgdmFyIHZzID0gZ2wuY3JlYXRlU2hhZGVyKGdsLlZFUlRF
WF9TSEFERVIpOworICBzaG91bGRSZXR1cm5TdHJpbmcoImdsLmdldFNoYWRlclNvdXJjZSh2cyki
KTsKKyAgc2hvdWxkUmV0dXJuU3RyaW5nKCJnbC5nZXRTaGFkZXJJbmZvTG9nKHZzKSIpOworICBn
bC5zaGFkZXJTb3VyY2UodnMsIHZhbGlkVmVydGV4U2hhZGVyU3RyaW5nKTsKKyAgZ2wuY29tcGls
ZVNoYWRlcih2cyk7CisgIHNob3VsZFJldHVyblN0cmluZygiZ2wuZ2V0U2hhZGVyU291cmNlKHZz
KSIpOworICBzaG91bGRSZXR1cm5TdHJpbmcoImdsLmdldFNoYWRlckluZm9Mb2codnMpIik7CisK
KyAgdmFyIGZzID0gZ2wuY3JlYXRlU2hhZGVyKGdsLkZSQUdNRU5UX1NIQURFUik7CisgIHNob3Vs
ZFJldHVyblN0cmluZygiZ2wuZ2V0U2hhZGVyU291cmNlKGZzKSIpOworICBzaG91bGRSZXR1cm5T
dHJpbmcoImdsLmdldFNoYWRlckluZm9Mb2coZnMpIik7CisgIGdsLnNoYWRlclNvdXJjZShmcywg
dmFsaWRGcmFnbWVudFNoYWRlclN0cmluZyk7CisgIGdsLmNvbXBpbGVTaGFkZXIoZnMpOworICBz
aG91bGRSZXR1cm5TdHJpbmcoImdsLmdldFNoYWRlclNvdXJjZShmcykiKTsKKyAgc2hvdWxkUmV0
dXJuU3RyaW5nKCJnbC5nZXRTaGFkZXJJbmZvTG9nKGZzKSIpOworCisgIHZhciBwcm9nID0gZ2wu
Y3JlYXRlUHJvZ3JhbSgpOworICBzaG91bGRSZXR1cm5TdHJpbmcoImdsLmdldFByb2dyYW1JbmZv
TG9nKHByb2cpIik7CisgIGdsLmF0dGFjaFNoYWRlcihwcm9nLCB2cyk7CisgIGdsLmF0dGFjaFNo
YWRlcihwcm9nLCBmcyk7CisgIGdsLmxpbmtQcm9ncmFtKHByb2cpOworICBzaG91bGRSZXR1cm5T
dHJpbmcoImdsLmdldFByb2dyYW1JbmZvTG9nKHByb2cpIik7CisKKyAgLy8gTWFrZSBzdXJlIGRp
ZmZlcmVudCBudW1iZXJzIG9mIGV4dGVuc2lvbnMgZG9lc24ndCByZXN1bHQgaW4KKyAgLy8gZGlm
ZmVyZW50IHRlc3Qgb3V0cHV0LgorICB2YXIgZXh0cyA9IGdsLmdldFN1cHBvcnRlZEV4dGVuc2lv
bnMoKTsKKyAgdmFyIGFsbFBhc3NlZCA9IHRydWU7CisgIGZvciAoaSBpbiBleHRzKSB7CisgICAg
aWYgKHR5cGVvZiBpICE9ICJzdHJpbmciKSB7CisgICAgICBzaG91bGRSZXR1cm5TdHJpbmcoImds
LmdldFN1cHBvcnRlZEV4dGVuc2lvbnMoKVsiICsgaSArICJdIik7CisgICAgICBhbGxQYXNzZWQg
PSBmYWxzZTsKKyAgICB9CisgIH0KKyAgaWYgKGFsbFBhc3NlZCkgeworICAgIHRlc3RQYXNzZWQo
J2dldFN1cHBvcnRlZEV4dGVuc2lvbnMoKSByZXR1cm5zIGFuIGFycmF5IG9mIHN0cmluZ3MnKTsK
KyAgfQorCisgIHNob3VsZFJldHVyblN0cmluZygiZ2wuZ2V0UGFyYW1ldGVyKGdsLlZFTkRPUiki
KTsKKyAgc2hvdWxkUmV0dXJuU3RyaW5nKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuUkVOREVSRVIpIik7
CisgIHNob3VsZFJldHVyblN0cmluZygiZ2wuZ2V0UGFyYW1ldGVyKGdsLlZFUlNJT04pIik7Cisg
IHNob3VsZFJldHVyblN0cmluZygiZ2wuZ2V0UGFyYW1ldGVyKGdsLlNIQURJTkdfTEFOR1VBR0Vf
VkVSU0lPTikiKTsKK30KKworZGVidWcoIiIpOworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
KworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>