<?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>58471</bug_id>
          
          <creation_ts>2011-04-13 12:21:16 -0700</creation_ts>
          <short_desc>IndexedDB createObjectStore should throw if options arg is invalid</short_desc>
          <delta_ts>2012-02-06 17:39:00 -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>New Bugs</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>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>76198</blocked>
    
    <blocked>58467</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Mark Pilgrim (Google)">pilgrim</reporter>
          <assigned_to name="Eugene Girard">girard</assigned_to>
          <cc>abarth</cc>
    
    <cc>dgrogan</cc>
    
    <cc>fishd</cc>
    
    <cc>girard</cc>
    
    <cc>hans</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>jsbell</cc>
    
    <cc>pilgrim</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>385133</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2011-04-13 12:21:16 -0700</bug_when>
    <thetext>Two ways the options argument can be invalid: it&apos;s not an object, or it&apos;s an object with unknown attributes (besides keyPath and autoIncrement). Mozilla throws if the options argument is invalid in either of these ways; WebKit does not throw in either case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385137</commentid>
    <comment_count>1</comment_count>
      <attachid>89432</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2011-04-13 12:22:57 -0700</bug_when>
    <thetext>Created attachment 89432
test case #1: options arg is not an object</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385138</commentid>
    <comment_count>2</comment_count>
      <attachid>89433</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2011-04-13 12:23:13 -0700</bug_when>
    <thetext>Created attachment 89433
test case #2: options arg contains unknown attributes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484249</commentid>
    <comment_count>3</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-10-14 13:46:02 -0700</bug_when>
    <thetext>Test case #2 is no longer valid - IndexedDB spec has changed to use the (new) WebIDL dictionary type for the options object, which ignores unknown attributes - http://dev.w3.org/2006/webapi/WebIDL/#es-dictionary

Test case #1 is still valid; in Chrome 15 I can pass a string as the options argument and no exception is thrown. Per WebIDL: &quot;If Type(V) is not Object, then throw a TypeError.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542357</commentid>
    <comment_count>4</comment_count>
      <attachid>123959</attachid>
    <who name="Eugene Girard">girard</who>
    <bug_when>2012-01-25 09:29:33 -0800</bug_when>
    <thetext>Created attachment 123959
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542359</commentid>
    <comment_count>5</comment_count>
    <who name="Eugene Girard">girard</who>
    <bug_when>2012-01-25 09:32:14 -0800</bug_when>
    <thetext>Based on jsbell&apos;s comment, my patch uses (and fixes) only the first test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542383</commentid>
    <comment_count>6</comment_count>
      <attachid>123959</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-25 09:50:33 -0800</bug_when>
    <thetext>Comment on attachment 123959
Patch

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

&gt; Source/WebCore/storage/IDBDatabase.cpp:93
&gt; +        ec = IDBDatabaseException::CONSTRAINT_ERR;

The IndexedDB spec doesn&apos;t indicate what exception should be thrown here; that&apos;s actually dictated by the WebIDL spec: http://www.w3.org/TR/WebIDL/#es-dictionary &quot;If Type(V) is not Object, then throw a TypeError&quot;

So... a more correct fix would be to put this check in the v8 binding code/generator and throw a TypeError there when an OptionsObject is expected if the v8 value fails the isObject test.

&gt; LayoutTests/storage/indexeddb/createObjectStore-bad-options.html:10
&gt; +&lt;link rel=&quot;stylesheet&quot; href=&quot;../../fast/js/resources/js-test-style.css&quot;&gt;

This CSS file has been removed.

&gt; LayoutTests/storage/indexeddb/createObjectStore-bad-options.html:11
&gt; +&lt;script src=&quot;../../fast/js/resources/js-test-post-function.js&quot;&gt;&lt;/script&gt;

The js-test-post-function.js script is no longer necessary to include.

&gt; LayoutTests/storage/indexeddb/createObjectStore-bad-options.html:29
&gt; +    shouldBeTrue(&quot;&apos;webkitIndexedDB&apos; in window&quot;);

Prefer doing: &quot;indexedDB = window.indexedDB || window.webkitIndexedDB;&quot; and using the non-prefixed version in the rest of the test. Ditto for any other webkit-prefixed types.

&gt; LayoutTests/storage/indexeddb/createObjectStore-bad-options.html:34
&gt; +    request = evalAndLog(&quot;webkitIndexedDB.open(name, description)&quot;);

Since the description parameter of open() is no longer in the spec we should drop it from new tests.

&gt; LayoutTests/storage/indexeddb/createObjectStore-bad-options.html:52
&gt; +    deleteAllObjectStores(db);

This is fine, but as an FYI we&apos;re trying to follow a new pattern in tests where the DB is deleted using deleteDatabase prior to open(), so we get to a clean state and don&apos;t rely on these helper functions. The pattern is:

request = indexedDB.deleteDatabase(dbname);
request.onerror = unexpectedErrorCallback;
request.onsuccess = function () {
    request = indexedDB.open(dbname);
    ...
};

&gt; LayoutTests/storage/indexeddb/createObjectStore-bad-options.html:58
&gt; +var successfullyParsed = true;

The &quot;successfullyParsed = true;&quot; statement is no longer necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549066</commentid>
    <comment_count>7</comment_count>
      <attachid>125412</attachid>
    <who name="Eugene Girard">girard</who>
    <bug_when>2012-02-03 14:18:03 -0800</bug_when>
    <thetext>Created attachment 125412
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549128</commentid>
    <comment_count>8</comment_count>
      <attachid>125412</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-02-03 14:52:29 -0800</bug_when>
    <thetext>Comment on attachment 125412
Patch

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

The binding changes LGTM. abarth@ can you take an initial look?

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:1619
&gt; +               $parameterCheckString .= &quot;        ec = TYPE_MISMATCH_ERR; V8Proxy::setDOMException(ec); return throwError(\&quot;Not an object.\&quot;, V8Proxy::TypeError);\n&quot;;

Nit: generate these three statements on their own lines, for readability of the generator and the generated code.

&gt; LayoutTests/ChangeLog:17
&gt; +        * storage/indexeddb/transaction-basics.html:

Add a short note e.g. &quot;Corrected erroneous calls that would now throw.&quot; explaining the transaction-basics.html change.

&gt; LayoutTests/storage/indexeddb/createObjectStore-bad-options.html:50
&gt; +    evalAndExpectExceptionClass(&quot;db.createObjectStore(&apos;foo&apos;, &apos;bar&apos;);&quot;, &quot;TypeError&quot;);

Since this is the only actual line in the test, can you just add it to objectstore-basics.html instead?

Also, in addition to a test with string, I&apos;d suggest adding one with a boolean. Any other interesting types expected to throw? (null, host objects, ...?)

&gt; LayoutTests/storage/indexeddb/index-basics.html:43
&gt; +    window.indexObject3 = evalAndLog(&quot;store.createIndex(&apos;zIndex&apos;, &apos;z&apos;, {unique: true})&quot;);

While you&apos;re here:

* Add shouldBeFalse(&quot;indexObject2.unique&quot;) and shouldBeTrue(&quot;indexObject3.unique&quot;) - which would have caught these bogus calls
* Since this binding change fixes https://bugs.webkit.org/show_bug.cgi?id=58467 can you add a evalAndExpectExceptionClass() test here for bogus params to createIndex()? Then you can just dupe that bug to this one.

&gt; LayoutTests/storage/indexeddb/resources/shared.js:51
&gt; +function evalAndExpectExceptionClass(cmd, expected)

FYI, girard and I chatted about where this should live. We agree it should stay next to evalAndExpectException and remain a separate call rather than trying to handle both cases. As part of some planned IDB layout test cleanup dgrogan may move these evalAnd* calls to live with evalAndLog.

&gt; LayoutTests/storage/indexeddb/transaction-basics.html:59
&gt; +    var index = evalAndLog(&quot;index = store.createIndex(&apos;indexFail&apos;, &apos;x&apos;, {unique: false})&quot;);

Since false is the default here and it&apos;s not relevant to the test, just remove the options parameter entirely here and below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549951</commentid>
    <comment_count>9</comment_count>
    <who name="Eugene Girard">girard</who>
    <bug_when>2012-02-06 06:31:56 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 125412 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=125412&amp;action=review
&gt; 
&gt; The binding changes LGTM. abarth@ can you take an initial look?
&gt; 
&gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:1619
&gt; &gt; +               $parameterCheckString .= &quot;        ec = TYPE_MISMATCH_ERR; V8Proxy::setDOMException(ec); return throwError(\&quot;Not an object.\&quot;, V8Proxy::TypeError);\n&quot;;
&gt; 
&gt; Nit: generate these three statements on their own lines, for readability of the generator and the generated code.

Agreed.  Done.

&gt; &gt; LayoutTests/ChangeLog:17
&gt; &gt; +        * storage/indexeddb/transaction-basics.html:
&gt; 
&gt; Add a short note e.g. &quot;Corrected erroneous calls that would now throw.&quot; explaining the transaction-basics.html change.

Done.

&gt; &gt; LayoutTests/storage/indexeddb/createObjectStore-bad-options.html:50
&gt; &gt; +    evalAndExpectExceptionClass(&quot;db.createObjectStore(&apos;foo&apos;, &apos;bar&apos;);&quot;, &quot;TypeError&quot;);
&gt; 
&gt; Since this is the only actual line in the test, can you just add it to objectstore-basics.html instead?
&gt; 
&gt; Also, in addition to a test with string, I&apos;d suggest adding one with a boolean. Any other interesting types expected to throw? (null, host objects, ...?)

Agree, there is only one real line in the unit test.  Moving the logic into create-object-store-options.html.
According to the spec, any &quot;object-derived&quot; item is valid, so calling with a host object should actually work... but have the effect of using default values for options unless the passed object happened to have a property called &quot;unique&quot;.... I did add the boolean test though.

&gt; &gt; LayoutTests/storage/indexeddb/index-basics.html:43
&gt; &gt; +    window.indexObject3 = evalAndLog(&quot;store.createIndex(&apos;zIndex&apos;, &apos;z&apos;, {unique: true})&quot;);
&gt; 
&gt; While you&apos;re here:
&gt; 
&gt; * Add shouldBeFalse(&quot;indexObject2.unique&quot;) and shouldBeTrue(&quot;indexObject3.unique&quot;) - which would have caught these bogus calls
&gt; * Since this binding change fixes https://bugs.webkit.org/show_bug.cgi?id=58467 can you add a evalAndExpectExceptionClass() test here for bogus params to createIndex()? Then you can just dupe that bug to this one.

I&apos;ll do that, but it will be part of 58467&apos;s CL.

&gt; &gt; LayoutTests/storage/indexeddb/resources/shared.js:51
&gt; &gt; +function evalAndExpectExceptionClass(cmd, expected)
&gt; 
&gt; FYI, girard and I chatted about where this should live. We agree it should stay next to evalAndExpectException and remain a separate call rather than trying to handle both cases. As part of some planned IDB layout test cleanup dgrogan may move these evalAnd* calls to live with evalAndLog.
&gt; 
&gt; &gt; LayoutTests/storage/indexeddb/transaction-basics.html:59
&gt; &gt; +    var index = evalAndLog(&quot;index = store.createIndex(&apos;indexFail&apos;, &apos;x&apos;, {unique: false})&quot;);
&gt; 
&gt; Since false is the default here and it&apos;s not relevant to the test, just remove the options parameter entirely here and below.

Agreed. Done.

Thanks for the feedback, Joshua.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549955</commentid>
    <comment_count>10</comment_count>
      <attachid>125632</attachid>
    <who name="Eugene Girard">girard</who>
    <bug_when>2012-02-06 06:33:07 -0800</bug_when>
    <thetext>Created attachment 125632
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550157</commentid>
    <comment_count>11</comment_count>
      <attachid>125632</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-06 11:50:27 -0800</bug_when>
    <thetext>Comment on attachment 125632
Patch

Clearing flags on attachment: 125632

Committed r106827: &lt;http://trac.webkit.org/changeset/106827&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550158</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-06 11:50:32 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550466</commentid>
    <comment_count>13</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-06 17:39:00 -0800</bug_when>
    <thetext>I rebaselined run-bindings-tests results.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>89432</attachid>
            <date>2011-04-13 12:22:57 -0700</date>
            <delta_ts>2011-04-13 12:22:57 -0700</delta_ts>
            <desc>test case #1: options arg is not an object</desc>
            <filename>create-objectstore-bad-options.html</filename>
            <type>text/html</type>
            <size>1664</size>
            <attacher name="Mark Pilgrim (Google)">pilgrim</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjwhLS0KICBvcmlnaW5hbCB0ZXN0OiBodHRwOi8vbXhyLm1vemlsbGEu
b3JnL21vemlsbGEyLjAvc291cmNlL2RvbS9pbmRleGVkREIvdGVzdC90ZXN0X2NyZWF0ZV9vYmpl
Y3RTdG9yZS5odG1sCiAgbGljZW5zZSBvZiBvcmlnaW5hbCB0ZXN0OgogICAgIiBBbnkgY29weXJp
Z2h0IGlzIGRlZGljYXRlZCB0byB0aGUgUHVibGljIERvbWFpbi4KICAgICAgaHR0cDovL2NyZWF0
aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLyAiCi0tPgo8aHRtbD4KPGhlYWQ+
CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiPgo8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5Pgo8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CjxzY3JpcHQ+Cgpk
ZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBjcmVhdGluZyBvYmplY3Qgc3RvcmUgd2l0aCBi
YWQgb3B0aW9ucyIpOwppZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwoKZnVuY3Rpb24gdGVzdCgpCnsKICAgIHNo
b3VsZEJlVHJ1ZSgiJ3dlYmtpdEluZGV4ZWREQicgaW4gd2luZG93Iik7CiAgICBzaG91bGRCZUZh
bHNlKCJ3ZWJraXRJbmRleGVkREIgPT0gbnVsbCIpOwoKICAgIG5hbWUgPSB3aW5kb3cubG9jYXRp
b24ucGF0aG5hbWU7CiAgICBkZXNjcmlwdGlvbiA9ICJNeSBUZXN0IERhdGFiYXNlIjsKICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJ3ZWJraXRJbmRleGVkREIub3BlbihuYW1lLCBkZXNjcmlwdGlv
bikiKTsKICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7CiAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKfQoKZnVuY3Rpb24gb3BlblN1Y2Nlc3Mo
KQp7CiAgICBkZWJ1Zygib3BlblN1Y2Nlc3MoKToiKTsKICAgIGRiID0gZXZhbEFuZExvZygiZGIg
PSBldmVudC50YXJnZXQucmVzdWx0Iik7CgogICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVl
c3QgPSBkYi5zZXRWZXJzaW9uKCd2ZXJzaW9uIDEnKSIpOwogICAgcmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBjbGVhbkRhdGFiYXNlOwogICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2Fs
bGJhY2s7Cn0KCmZ1bmN0aW9uIGNsZWFuRGF0YWJhc2UoKQp7CiAgICBkZWJ1ZygiY2xlYW5EYXRh
YmFzZSgpOiIpOwogICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKCiAgICBldmFsQW5kRXhw
ZWN0RXhjZXB0aW9uKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnZm9vJywgJ2JhcicpOyIsICJ3ZWJr
aXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5DT05TVFJBSU5UX0VSUiIpOwoKICAgIGRvbmUoKTsKfQoK
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cgp0ZXN0KCk7Cgo8L3NjcmlwdD4KPC9ib2R5
Pgo8L2h0bWw+Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>89433</attachid>
            <date>2011-04-13 12:23:13 -0700</date>
            <delta_ts>2011-04-13 12:23:13 -0700</delta_ts>
            <desc>test case #2: options arg contains unknown attributes</desc>
            <filename>create-objectstore-bad-options-2.html</filename>
            <type>text/html</type>
            <size>1670</size>
            <attacher name="Mark Pilgrim (Google)">pilgrim</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjwhLS0KICBvcmlnaW5hbCB0ZXN0OiBodHRwOi8vbXhyLm1vemlsbGEu
b3JnL21vemlsbGEyLjAvc291cmNlL2RvbS9pbmRleGVkREIvdGVzdC90ZXN0X2NyZWF0ZV9vYmpl
Y3RTdG9yZS5odG1sCiAgbGljZW5zZSBvZiBvcmlnaW5hbCB0ZXN0OgogICAgIiBBbnkgY29weXJp
Z2h0IGlzIGRlZGljYXRlZCB0byB0aGUgUHVibGljIERvbWFpbi4KICAgICAgaHR0cDovL2NyZWF0
aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLyAiCi0tPgo8aHRtbD4KPGhlYWQ+
CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiPgo8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5Pgo8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CjxzY3JpcHQ+Cgpk
ZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBjcmVhdGluZyBvYmplY3Qgc3RvcmUgd2l0aCBi
YWQgb3B0aW9ucyIpOwppZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwoKZnVuY3Rpb24gdGVzdCgpCnsKICAgIHNo
b3VsZEJlVHJ1ZSgiJ3dlYmtpdEluZGV4ZWREQicgaW4gd2luZG93Iik7CiAgICBzaG91bGRCZUZh
bHNlKCJ3ZWJraXRJbmRleGVkREIgPT0gbnVsbCIpOwoKICAgIG5hbWUgPSB3aW5kb3cubG9jYXRp
b24ucGF0aG5hbWU7CiAgICBkZXNjcmlwdGlvbiA9ICJNeSBUZXN0IERhdGFiYXNlIjsKICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJ3ZWJraXRJbmRleGVkREIub3BlbihuYW1lLCBkZXNjcmlwdGlv
bikiKTsKICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7CiAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKfQoKZnVuY3Rpb24gb3BlblN1Y2Nlc3Mo
KQp7CiAgICBkZWJ1Zygib3BlblN1Y2Nlc3MoKToiKTsKICAgIGRiID0gZXZhbEFuZExvZygiZGIg
PSBldmVudC50YXJnZXQucmVzdWx0Iik7CgogICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVl
c3QgPSBkYi5zZXRWZXJzaW9uKCd2ZXJzaW9uIDEnKSIpOwogICAgcmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBjbGVhbkRhdGFiYXNlOwogICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2Fs
bGJhY2s7Cn0KCmZ1bmN0aW9uIGNsZWFuRGF0YWJhc2UoKQp7CiAgICBkZWJ1ZygiY2xlYW5EYXRh
YmFzZSgpOiIpOwogICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKCiAgICBldmFsQW5kRXhw
ZWN0RXhjZXB0aW9uKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnZm9vJywgeyBmb286ICcnIH0pOyIs
ICJ3ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5DT05TVFJBSU5UX0VSUiIpOwoKICAgIGRvbmUo
KTsKfQoKdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cgp0ZXN0KCk7Cgo8L3NjcmlwdD4K
PC9ib2R5Pgo8L2h0bWw+Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123959</attachid>
            <date>2012-01-25 09:29:33 -0800</date>
            <delta_ts>2012-02-03 14:17:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58471-20120125122931.patch</filename>
            <type>text/plain</type>
            <size>6979</size>
            <attacher name="Eugene Girard">girard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTQ3OGUzMDU3NjgxNTY2
YTQyZWYwYjQ4Nzk3ZTBiNGNmZTU1ZjgzNC4uNThhMWQ2YmI0MTI2MDY5Y2M4ZmI4NWE4ZmZhOWUy
ODhjNjE3ZjYzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTAxLTI1ICBFdWdl
bmUgR2lyYXJkICA8Z2lyYXJkQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREIgY3Jl
YXRlT2JqZWN0U3RvcmUgc2hvdWxkIHRocm93IGlmIG9wdGlvbnMgYXJnIGlzIGludmFsaWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4NDcxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY2FuIG5vdyBp
ZGVudGlmeSBPcHRpb25zT2JqZWN0cyB0aGF0IGFyZSBpbnN0YW50aWF0ZWQgd2l0aAorICAgICAg
ICBub24tb2JqZWN0cy4gIChBcyBvcHBvc2VkIHRvIE9wdGlvbnNPYmplY3RzIHRoYXQgYXJlIGlu
c3RhbnRpYXRlZAorICAgICAgICB3aXRoIG51bGwgb3IgdW5kZWZpbmVkLCB3aGljaCBjYW4gYmUg
ZGV0ZWN0ZWQgd2l0aCBpc051bGxPclVuZGVmaW5lZC4pCisKKyAgICAgICAgKENvbnNpZGVyZWQg
YWRkaW5nIHRoZSBpc09iamVjdCB0ZXN0IGludG8gaXNOdWxsT3JVbmRlZmluZWQsIHNpbmNlIHRo
ZXkKKyAgICAgICAgYXJlIGxvZ2ljYWxseSBlcXVpdmFsZW50LCBidXQgbWFueSBleGlzdGluZyBj
b2RlIHBhdGhzIGFuZCB1bml0IHRlc3RzIAorICAgICAgICBkZXBlbmQgb24gdGhlIGN1cnJlbnQg
aW1wbGVtZW50YXRpb24gb2YgaXNOdWxsT3JVbmRlZmluZWQuKQorCisgICAgICAgIFRlc3Q6IHN0
b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3JlLWJhZC1vcHRpb25zLmh0bWwKKworICAg
ICAgICAqIGJpbmRpbmdzL3Y4L09wdGlvbnNPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
T3B0aW9uc09iamVjdDo6aXNPYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L09wdGlvbnNP
YmplY3QuaDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OklEQkRhdGFiYXNlOjpjcmVhdGVPYmplY3RTdG9yZSk6CisKIDIwMTItMDEtMjMgIE5p
a29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgU1ZHIGFu
aW1hdGlvbiByZXBhaW50IGlzc3VlIHdpdGggaW1hZ2UgYW5kIGR5bmFtaWMgY2xpcFBhdGgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L09wdGlvbnNPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvT3B0aW9uc09iamVjdC5jcHAKaW5kZXggYTllNDBl
NGQ0ODM2NjA5MmZiODQxMWI4Njg0NWZlMDdlZmE2NjA5Mi4uZjhkYjk3ZTVhM2Q5MDAyYTQ0NzVh
NzY5ZTExYmFiNWU0YzA2ZWE0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvT3B0aW9uc09iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvT3B0
aW9uc09iamVjdC5jcHAKQEAgLTY0LDYgKzY0LDExIEBAIE9wdGlvbnNPYmplY3QmIE9wdGlvbnNP
YmplY3Q6Om9wZXJhdG9yPShjb25zdCBPcHRpb25zT2JqZWN0JiBvcHRpb25zT2JqZWN0KQogICAg
IHJldHVybiAqdGhpczsKIH0KIAorYm9vbCBPcHRpb25zT2JqZWN0Ojppc09iamVjdCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuICFpc1VuZGVmaW5lZE9yTnVsbCgpICYmIG1fb3B0aW9ucy0+SXNPYmpl
Y3QoKTsKK30KKwogYm9vbCBPcHRpb25zT2JqZWN0Ojppc1VuZGVmaW5lZE9yTnVsbCgpIGNvbnN0
CiB7CiAgICAgaWYgKG1fb3B0aW9ucy5Jc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9PcHRpb25zT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9PcHRpb25zT2JqZWN0LmgKaW5kZXggY2JmZDJlMzMyNWI5ZTdkNzNkYjVmMmExZDUyZTRi
ZDU4MGU2Y2FjZS4uMmM3ZTgwYTA3NTk5MzBmYzhhMzZlZTU4MDJlNzRmNGU3YzA4OWQzZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvT3B0aW9uc09iamVjdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L09wdGlvbnNPYmplY3QuaApAQCAtNDksNiArNDks
NyBAQCBwdWJsaWM6CiAKICAgICBPcHRpb25zT2JqZWN0JiBvcGVyYXRvcj0oY29uc3QgT3B0aW9u
c09iamVjdCYpOwogCisgICAgYm9vbCBpc09iamVjdCgpIGNvbnN0OwogICAgIGJvb2wgaXNVbmRl
ZmluZWRPck51bGwoKSBjb25zdDsKIAogICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmluZyYsIGJvb2wm
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZS5jcHAKaW5kZXggYzRiNzNj
ZWM1MjczMjhjNWZkYjhiZTgwMzVkNjFiZjA5Y2RhYThhMy4uZDFkOWYyNDM1MmQ5ZTQyOTFlMzQ1
MDYyODBiOTg0NDU4MjgwMzE1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9J
REJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZS5j
cHAKQEAgLTg5LDYgKzg5LDExIEBAIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmU+IElEQkRhdGFi
YXNlOjpjcmVhdGVPYmplY3RTdG9yZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvCiAgICAgICAgIHJl
dHVybiAwOwogICAgIH0KIAorICAgIGlmICghb3B0aW9ucy5pc1VuZGVmaW5lZE9yTnVsbCgpICYm
ICFvcHRpb25zLmlzT2JqZWN0KCkpIHsKKyAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlv
bjo6Q09OU1RSQUlOVF9FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKwogICAgIFN0cmlu
ZyBrZXlQYXRoOwogICAgIGJvb2wga2V5UGF0aEV4aXN0cyA9IG9wdGlvbnMuZ2V0V2l0aFVuZGVm
aW5lZE9yTnVsbENoZWNrKCJrZXlQYXRoIiwga2V5UGF0aCk7CiAgICAgaWYgKGtleVBhdGhFeGlz
dHMgJiYgIUlEQklzVmFsaWRLZXlQYXRoKGtleVBhdGgpKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYWExOWFiZWY0MWE1
ZmYyYjYwZDU5MzI2MmJiOWYxMjljNmQ1OGU0Ni4uNjVhNmZmNTk2ZmFjODc1YjkxOGQ2YzRmMDM5
MDYxNTY4YmNkOTkwNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAxLTI1ICBFdWdlbmUg
R2lyYXJkICA8Z2lyYXJkQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREIgY3JlYXRl
T2JqZWN0U3RvcmUgc2hvdWxkIHRocm93IGlmIG9wdGlvbnMgYXJnIGlzIGludmFsaWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4NDcxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9jcmVhdGVPYmplY3RTdG9yZS1iYWQtb3B0aW9ucy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3JlLWJhZC1vcHRpb25z
Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTAxLTIzICBBbnRvbiBNdWhpbiAgPGFudG9ubUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCB0d2Vha2luZyBvZiB0ZXN0IGV4cGVjdGF0aW9u
czogaXQgc2hvdWxkIGJlIElNQUdFIGluc3RlYWQgb2YgSU1BR0UrVEVYVC4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3JlLWJhZC1vcHRp
b25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9i
amVjdFN0b3JlLWJhZC1vcHRpb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMDVhNTE0ZGQ4
NzUxZjJkOTU1NmFkN2EzNmM0OWU2YTNiZTM0ODMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUtYmFkLW9wdGlvbnMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKK1Rlc3QgSW5kZXhlZERCJ3MgY3JlYXRpbmcgb2Jq
ZWN0IHN0b3JlIHdpdGggYmFkIG9wdGlvbnMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgJ3dlYmtpdEluZGV4ZWREQicgaW4gd2luZG93IGlzIHRydWUKK1BBU1Mgd2Via2l0
SW5kZXhlZERCID09IG51bGwgaXMgZmFsc2UKK3dlYmtpdEluZGV4ZWREQi5vcGVuKG5hbWUsIGRl
c2NyaXB0aW9uKQorb3BlblN1Y2Nlc3MoKToKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorcmVx
dWVzdCA9IGRiLnNldFZlcnNpb24oJ3ZlcnNpb24gMScpCitjbGVhbkRhdGFiYXNlKCk6CitEZWxl
dGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCdmb28nLCAnYmFyJyk7CitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgor
UEFTUyBjb2RlIGlzIHdlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLkNPTlNUUkFJTlRfRVJSCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUtYmFk
LW9wdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVj
dFN0b3JlLWJhZC1vcHRpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDYwODhiYzkzNmQ2NWRjYzczNjAw
YzE3NDJmMWYwM2ZhM2JkMTdjYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3JlLWJhZC1vcHRpb25zLmh0bWwKQEAgLTAsMCAr
MSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8IS0tCisgIG9yaWdpbmFsIHRlc3Q6IGh0dHA6Ly9t
eHIubW96aWxsYS5vcmcvbW96aWxsYTIuMC9zb3VyY2UvZG9tL2luZGV4ZWREQi90ZXN0L3Rlc3Rf
Y3JlYXRlX29iamVjdFN0b3JlLmh0bWwKKyAgbGljZW5zZSBvZiBvcmlnaW5hbCB0ZXN0OgorICAg
ICIgQW55IGNvcHlyaWdodCBpcyBkZWRpY2F0ZWQgdG8gdGhlIFB1YmxpYyBEb21haW4uCisgICAg
ICBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvICIKKy0t
PgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8c2NyaXB0PgorCis8IS0tIAorZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgY3Jl
YXRpbmcgb2JqZWN0IHN0b3JlIHdpdGggYmFkIG9wdGlvbnMiKTsKKy0tPgoraWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHNob3VsZEJlVHJ1ZSgiJ3dlYmtpdElu
ZGV4ZWREQicgaW4gd2luZG93Iik7CisgICAgc2hvdWxkQmVGYWxzZSgid2Via2l0SW5kZXhlZERC
ID09IG51bGwiKTsKKworICAgIG5hbWUgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7CisgICAg
ZGVzY3JpcHRpb24gPSAiTXkgVGVzdCBEYXRhYmFzZSI7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRM
b2coIndlYmtpdEluZGV4ZWREQi5vcGVuKG5hbWUsIGRlc2NyaXB0aW9uKSIpOworICAgIHJlcXVl
c3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBl
Y3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKCkKK3sKKyAgICBk
ZWJ1Zygib3BlblN1Y2Nlc3MoKToiKTsKKyAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdCIpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBk
Yi5zZXRWZXJzaW9uKCd2ZXJzaW9uIDEnKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gY2xl
YW5EYXRhYmFzZTsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKK30KKworZnVuY3Rpb24gY2xlYW5EYXRhYmFzZSgpCit7CisgICAgZGVidWcoImNsZWFuRGF0
YWJhc2UoKToiKTsKKyAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOworICAgIGV2YWxBbmRF
eHBlY3RFeGNlcHRpb24oImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdmb28nLCAnYmFyJyk7IiwgIndl
YmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLkNPTlNUUkFJTlRfRVJSIik7CisKKyAgICBkb25lKCk7
Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCit0ZXN0KCk7CisKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125412</attachid>
            <date>2012-02-03 14:18:03 -0800</date>
            <delta_ts>2012-02-06 06:33:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58471-20120203171801.patch</filename>
            <type>text/plain</type>
            <size>15277</size>
            <attacher name="Eugene Girard">girard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTQ3OGUzMDU3NjgxNTY2
YTQyZWYwYjQ4Nzk3ZTBiNGNmZTU1ZjgzNC4uZWI3NjZjMTE1ODczMTBkODM3Yjk2MDcyYTUyMGE1
OTE2NzE0Y2E5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAyLTAzICBFdWdl
bmUgR2lyYXJkICA8Z2lyYXJkQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREIgY3Jl
YXRlT2JqZWN0U3RvcmUgc2hvdWxkIHRocm93IGlmIG9wdGlvbnMgYXJnIGlzIGludmFsaWQKKyAg
ICAgICAgQWRkZWQgbG9naWMgdG8gT3B0aW9uc09iamVjdCB0byBkZXRlcm1pbmUgaWYgYW4gaW52
YWxpZCBvYmplY3Qgd2FzIGNyZWF0ZWQuCisgICAgICAgIEphdmFzY3JpcHQgYmluZGluZ3Mgbm93
IGRldGVjdCBpbnZhbGlkIE9wdGlvbnNPYmplY3QncyBhbmQgdGhyb3cgVHlwZUVycm9yIHdoZW4g
Zm91bmQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
ODQ3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3Q6IHN0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3JlLWJhZC1vcHRpb25zLmh0bWwK
KworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAg
ICAoR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L09wdGlv
bnNPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6T3B0aW9uc09iamVjdDo6aXNPYmplY3Qp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L09wdGlvbnNPYmplY3QuaDoKKwogMjAxMi0wMS0yMyAg
Tmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBTVkcg
YW5pbWF0aW9uIHJlcGFpbnQgaXNzdWUgd2l0aCBpbWFnZSBhbmQgZHluYW1pYyBjbGlwUGF0aApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
VjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bQppbmRleCBmZDFlZjJhNjQ0ODMxNGEwMzRlYmM4YTY0Y2YxNjg2MTk1NjA3YTcwLi4wNDNmZDdi
ZmIwNTU3NGNhMjYwNzg2YTdlMDk5NDY2ZDhjNzZlMDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMTYxNCw2ICsxNjE0
LDExIEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgJHBhcmFtZXRlckNoZWNrU3RyaW5nIC49ICIgICAgRVhDRVBUSU9OX0JMT0NLKCRuYXRp
dmVUeXBlLCAkcGFyYW1ldGVyTmFtZSwgIiAuCiAgICAgICAgICAgICAgICAgIEpTVmFsdWVUb05h
dGl2ZSgkcGFyYW1ldGVyLCAiTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgJHBhcmFtSW5k
ZXgsICRwYXJhbWV0ZXJNaXNzaW5nUG9saWN5KSIpIC4gIik7XG4iOworICAgICAgICAgICAgaWYg
KCRuYXRpdmVUeXBlIGVxICdPcHRpb25zT2JqZWN0JykgeworICAgICAgICAgICAgICAgJHBhcmFt
ZXRlckNoZWNrU3RyaW5nIC49ICIgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAkcGFyYW1JbmRleCAm
JiAhJHBhcmFtZXRlck5hbWUuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhJHBhcmFtZXRlck5hbWUu
aXNPYmplY3QoKSkge1xuIjsKKyAgICAgICAgICAgICAgICRwYXJhbWV0ZXJDaGVja1N0cmluZyAu
PSAiICAgICAgICBlYyA9IFRZUEVfTUlTTUFUQ0hfRVJSOyBWOFByb3h5OjpzZXRET01FeGNlcHRp
b24oZWMpOyByZXR1cm4gdGhyb3dFcnJvcihcIk5vdCBhbiBvYmplY3QuXCIsIFY4UHJveHk6OlR5
cGVFcnJvcik7XG4iOworICAgICAgICAgICAgICAgJHBhcmFtZXRlckNoZWNrU3RyaW5nIC49ICIg
ICAgfVxuIjsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIGlmICgkcGFyYW1l
dGVyLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSXNJbmRleCJ9KSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9PcHRpb25zT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L09wdGlvbnNPYmplY3QuY3BwCmluZGV4IGE5ZTQwZTRkNDgzNjYwOTJmYjg0
MTFiODY4NDVmZTA3ZWZhNjYwOTIuLmY4ZGI5N2U1YTNkOTAwMmE0NDc1YTc2OWUxMWJhYjVlNGMw
NmVhNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L09wdGlvbnNPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L09wdGlvbnNPYmplY3QuY3Bw
CkBAIC02NCw2ICs2NCwxMSBAQCBPcHRpb25zT2JqZWN0JiBPcHRpb25zT2JqZWN0OjpvcGVyYXRv
cj0oY29uc3QgT3B0aW9uc09iamVjdCYgb3B0aW9uc09iamVjdCkKICAgICByZXR1cm4gKnRoaXM7
CiB9CiAKK2Jvb2wgT3B0aW9uc09iamVjdDo6aXNPYmplY3QoKSBjb25zdAoreworICAgIHJldHVy
biAhaXNVbmRlZmluZWRPck51bGwoKSAmJiBtX29wdGlvbnMtPklzT2JqZWN0KCk7Cit9CisKIGJv
b2wgT3B0aW9uc09iamVjdDo6aXNVbmRlZmluZWRPck51bGwoKSBjb25zdAogewogICAgIGlmICht
X29wdGlvbnMuSXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvT3B0aW9uc09iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvT3B0aW9uc09i
amVjdC5oCmluZGV4IGNiZmQyZTMzMjViOWU3ZDczZGI1ZjJhMWQ1MmU0YmQ1ODBlNmNhY2UuLjJj
N2U4MGEwNzU5OTMwZmM4YTM2ZWU1ODAyZTc0ZjRlN2MwODlkM2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L09wdGlvbnNPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9PcHRpb25zT2JqZWN0LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgog
CiAgICAgT3B0aW9uc09iamVjdCYgb3BlcmF0b3I9KGNvbnN0IE9wdGlvbnNPYmplY3QmKTsKIAor
ICAgIGJvb2wgaXNPYmplY3QoKSBjb25zdDsKICAgICBib29sIGlzVW5kZWZpbmVkT3JOdWxsKCkg
Y29uc3Q7CiAKICAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCBib29sJikgY29uc3Q7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggYWExOWFiZWY0MWE1ZmYyYjYwZDU5MzI2MmJiOWYxMjljNmQ1OGU0Ni4uNjUzZGVhZWFmYjEy
ZmJlMTQ5NTc4MmZhMGU3OWVhNTUxZmI4NGU1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEy
LTAyLTAzICBFdWdlbmUgR2lyYXJkICA8Z2lyYXJkQGNocm9taXVtLm9yZz4KKworICAgICAgICBJ
bmRleGVkREIgY3JlYXRlT2JqZWN0U3RvcmUgc2hvdWxkIHRocm93IGlmIG9wdGlvbnMgYXJnIGlz
IGludmFsaWQKKyAgICAgICAgQWRkZWQgdW5pdCB0ZXN0cyB0byB0ZXN0IGludmFsaWQgYXJndW1l
bnRzLgorICAgICAgICBBZGp1c3RlZCBzZXZlcmFsIHVuaXQgdGVzdHMgdGhhdCB1c2VkIG9sZCBz
eW50YXggZm9yIE9wdGlvbnNPYmplY3QgcGFyYW1ldGVyLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTg0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVj
dFN0b3JlLWJhZC1vcHRpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUtYmFkLW9wdGlvbnMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtYmFzaWNzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1iYXNpY3MuaHRtbDoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzOgorICAgICAgICAoZXZhbEFuZEV4
cGVjdEV4Y2VwdGlvbkNsYXNzKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2Fj
dGlvbi1iYXNpY3MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Ry
YW5zYWN0aW9uLWJhc2ljcy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3R1dG9y
aWFsLmh0bWw6CisKIDIwMTItMDEtMjMgIEFudG9uIE11aGluICA8YW50b25tQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBVbnJldmlld2VkIHR3ZWFraW5nIG9mIHRlc3QgZXhwZWN0YXRpb25zOiBp
dCBzaG91bGQgYmUgSU1BR0UgaW5zdGVhZCBvZiBJTUFHRStURVhULgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUtYmFkLW9wdGlvbnMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0
U3RvcmUtYmFkLW9wdGlvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyMTVhMzNmN2NmMGE0
MDFkNzk0NDdjZGQ5YzU5MGQ1MDZkMTc5NzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGVPYmplY3RTdG9yZS1iYWQtb3B0aW9ucy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxOSBAQAorVGVzdCBJbmRleGVkREIncyBjcmVhdGluZyBvYmplY3Qg
c3RvcmUgd2l0aCBiYWQgb3B0aW9ucworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBpbmRleGVkREIgPT0gbnVsbCBpcyBmYWxzZQoraW5kZXhlZERCLm9wZW4obmFtZSkKK29w
ZW5TdWNjZXNzKCk6CitkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKK3JlcXVlc3QgPSBkYi5zZXRW
ZXJzaW9uKCd2ZXJzaW9uIDEnKQorY2xlYW5EYXRhYmFzZSgpOgorRGVsZXRlZCBhbGwgb2JqZWN0
IHN0b3Jlcy4KK0V4cGVjdGluZyBUeXBlRXJyb3IgZXhjZXB0aW9uIGZyb20gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ2ZvbycsICdiYXInKTsKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNT
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdmb28nLCAnYmFyJyk7IHRocmV3IFR5cGVFcnJvcjogTm90
IGFuIG9iamVjdC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGVP
YmplY3RTdG9yZS1iYWQtb3B0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvY3JlYXRlT2JqZWN0U3RvcmUtYmFkLW9wdGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZGQ5NTdj
N2FmYmYyOThkOGM0NGI5YzlhZmE3ZWUwMjZiMjQ1OTJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUtYmFkLW9wdGlvbnMu
aHRtbApAQCAtMCwwICsxLDYwIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0KKyAgb3JpZ2luYWwg
dGVzdDogaHR0cDovL214ci5tb3ppbGxhLm9yZy9tb3ppbGxhMi4wL3NvdXJjZS9kb20vaW5kZXhl
ZERCL3Rlc3QvdGVzdF9jcmVhdGVfb2JqZWN0U3RvcmUuaHRtbAorICBsaWNlbnNlIG9mIG9yaWdp
bmFsIHRlc3Q6CisgICAgIiBBbnkgY29weXJpZ2h0IGlzIGRlZGljYXRlZCB0byB0aGUgUHVibGlj
IERvbWFpbi4KKyAgICAgIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96
ZXJvLzEuMC8gIgorLS0+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKworPCEt
LSAKK2Rlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIGNyZWF0aW5nIG9iamVjdCBzdG9yZSB3
aXRoIGJhZCBvcHRpb25zIik7CistLT4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlvbiB0
ZXN0KCkKK3sKKwlpbmRleGVkREIgPSB3aW5kb3cuaW5kZXhlZERCIHx8IHdpbmRvdy53ZWJraXRJ
bmRleGVkREI7CisgICAgc2hvdWxkQmVGYWxzZSgiaW5kZXhlZERCID09IG51bGwiKTsKKworICAg
IG5hbWUgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRM
b2coImluZGV4ZWREQi5vcGVuKG5hbWUpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVu
U3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
K30KKworZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQoreworICAgIGRlYnVnKCJvcGVuU3VjY2Vzcygp
OiIpOworICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisK
KyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJ3ZlcnNp
b24gMScpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjbGVhbkRhdGFiYXNlOworICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBj
bGVhbkRhdGFiYXNlKCkKK3sKKyAgICBkZWJ1ZygiY2xlYW5EYXRhYmFzZSgpOiIpOworICAgIGRl
bGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbkNsYXNz
KCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnZm9vJywgJ2JhcicpOyIsICJUeXBlRXJyb3IiKTsKKwor
ICAgIGRvbmUoKTsKK30KKwordGVzdCgpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtYmFzaWNz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWJhc2lj
cy1leHBlY3RlZC50eHQKaW5kZXggMjUxOTRiZGM1MmQ4NmFmOWVhZDMyNjIwYmRhMWZhNGE0NzA5
NWYwYi4uOTg1M2EyMGVjZDIzMTc5NjQyZWQ5ZTAyYWMxMjVhMGY4ODA3ZTg0YiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtYmFzaWNzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1iYXNpY3MtZXhwZWN0
ZWQudHh0CkBAIC0xMiw4ICsxMiw4IEBAIFBBU1MgdHJhbnMgIT09IG51bGwgaXMgdHJ1ZQogRGVs
ZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUn
LCBudWxsKQogc3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4TmFtZScsICd4JykKLXN0b3JlLmNyZWF0
ZUluZGV4KCdpbmRleE5hbWUyJywgJ3knLCBmYWxzZSkKLXN0b3JlLmNyZWF0ZUluZGV4KCd6SW5k
ZXgnLCAneicsIHRydWUpCitzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhOYW1lMicsICd5Jywge3Vu
aXF1ZTogZmFsc2V9KQorc3RvcmUuY3JlYXRlSW5kZXgoJ3pJbmRleCcsICd6Jywge3VuaXF1ZTog
dHJ1ZX0pCiBQQVNTICduYW1lJyBpbiBpbmRleE9iamVjdCBpcyB0cnVlCiBQQVNTIGluZGV4T2Jq
ZWN0Lm5hbWUgaXMgImluZGV4TmFtZSIKIFBBU1MgJ29iamVjdFN0b3JlJyBpbiBpbmRleE9iamVj
dCBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRl
eC1iYXNpY3MuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWJhc2lj
cy5odG1sCmluZGV4IGZiNGMwMDQwYmQ4ZTYzMjliMzA3YzI2YTA5NTcwMTdiYjk5ZDM2MjcuLjMx
YjZkM2E2NDY0OGZlYWUzOTE4OTQyZDUzMjhkMmMzNmQ3YTFmODAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWJhc2ljcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWJhc2ljcy5odG1sCkBAIC0zOSw4ICszOSw4IEBA
IGZ1bmN0aW9uIGRlbGV0ZUV4aXN0aW5nKCkKIAogICAgIHdpbmRvdy5zdG9yZSA9IGV2YWxBbmRM
b2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnLCBudWxsKSIpOwogICAgIHdpbmRv
dy5pbmRleE9iamVjdCA9IGV2YWxBbmRMb2coInN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleE5hbWUn
LCAneCcpIik7Ci0gICAgd2luZG93LmluZGV4T2JqZWN0MiA9IGV2YWxBbmRMb2coInN0b3JlLmNy
ZWF0ZUluZGV4KCdpbmRleE5hbWUyJywgJ3knLCBmYWxzZSkiKTsKLSAgICB3aW5kb3cuaW5kZXhP
YmplY3QzID0gZXZhbEFuZExvZygic3RvcmUuY3JlYXRlSW5kZXgoJ3pJbmRleCcsICd6JywgdHJ1
ZSkiKTsKKyAgICB3aW5kb3cuaW5kZXhPYmplY3QyID0gZXZhbEFuZExvZygic3RvcmUuY3JlYXRl
SW5kZXgoJ2luZGV4TmFtZTInLCAneScsIHt1bmlxdWU6IGZhbHNlfSkiKTsKKyAgICB3aW5kb3cu
aW5kZXhPYmplY3QzID0gZXZhbEFuZExvZygic3RvcmUuY3JlYXRlSW5kZXgoJ3pJbmRleCcsICd6
Jywge3VuaXF1ZTogdHJ1ZX0pIik7CiAgICAgYWRkRGF0YSgpOwogfQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qcwppbmRleCBiYmY1YzI1
NDk5ZjBhNTFkZGY4YmY0OTc0NDIxOTQ0Njc0MTUxMjcwLi43ZTUzOGNjY2QxNGJiNWNkOTgyZmFj
MmFlOGQwZjhjMWM3ZDI2NjM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9zaGFyZWQuanMKQEAgLTQ4LDYgKzQ4LDIxIEBAIGZ1bmN0aW9uIGV2YWxB
bmRFeHBlY3RFeGNlcHRpb24oY21kLCBleHBlY3RlZCkKICAgICB9CiB9CiAKK2Z1bmN0aW9uIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb25DbGFzcyhjbWQsIGV4cGVjdGVkKQoreworICAgIGRlYnVnKCJF
eHBlY3RpbmcgIiArIGV4cGVjdGVkICsgIiBleGNlcHRpb24gZnJvbSAiICsgY21kKTsKKyAgICB0
cnkgeworICAgICAgICBldmFsKGNtZCk7CisgICAgICAgIHRlc3RGYWlsZWQoIk5vIGV4Y2VwdGlv
biB0aHJvd24hIiApOworICAgIH0gY2F0Y2ggKGUpIHsKKwkJdGVzdFBhc3NlZCgiRXhjZXB0aW9u
IHdhcyB0aHJvd24uIik7CisJCWlmIChldmFsKCJlIGluc3RhbmNlb2YgIiArIGV4cGVjdGVkKSkK
KwkJCXRlc3RQYXNzZWQoY21kICsgIiB0aHJldyAiICsgZSk7CisJCWVsc2UKKwkJCXRlc3RGYWls
ZWQoIkV4cGVjdGVkICIgKyBleHBlY3RlZCArICIgYnV0IHNhdyAiICsgZSk7CisgICAgfQorfQor
CiBmdW5jdGlvbiBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpCiB7CiAgICAgd2hpbGUgKGRiLm9i
amVjdFN0b3JlTmFtZXMubGVuZ3RoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvdHJhbnNhY3Rpb24tYmFzaWNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWJhc2ljcy1leHBlY3RlZC50eHQKaW5kZXggZjk3
YmFmZjMwZTIyZmMxZWQ4OWRlNTFlOWQ5YjE2YWVkNDc2YzhlMS4uOWY1ZTg1MjlhZmYxYzI2MTVj
MWYwYjRlMDY0YjdiZmI2YzhmNWQxMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvdHJhbnNhY3Rpb24tYmFzaWNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1iYXNpY3MtZXhwZWN0ZWQudHh0CkBAIC0y
Myw3ICsyMyw3IEBAIGFkZFJlbW92ZUlEQk9iamVjdHMoKToKIHRyYW5zID0gZXZlbnQudGFyZ2V0
LnJlc3VsdAogUEFTUyB0cmFucyAhPT0gbnVsbCBpcyB0cnVlCiBzdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdzdG9yZUZhaWwnLCBudWxsKQotaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgn
aW5kZXhGYWlsJywgJ3gnLCBmYWxzZSkKK2luZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4
RmFpbCcsICd4Jywge3VuaXF1ZTogZmFsc2V9KQogZGIuZGVsZXRlT2JqZWN0U3RvcmUoJ3N0b3Jl
RmFpbCcpCiBzdG9yZS5kZWxldGVJbmRleCgnaW5kZXhGYWlsJykKIApAQCAtMzYsMTEgKzM2LDEx
IEBAIGFkZFJlbW92ZUFkZElEQk9iamVjdHMoKToKIHRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dAogUEFTUyB0cmFucyAhPT0gbnVsbCBpcyB0cnVlCiBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCdzdG9yZUZhaWwnLCBudWxsKQotaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhG
YWlsJywgJ3gnLCBmYWxzZSkKK2luZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4RmFpbCcs
ICd4Jywge3VuaXF1ZTogZmFsc2V9KQogZGIuZGVsZXRlT2JqZWN0U3RvcmUoJ3N0b3JlRmFpbCcp
CiBzdG9yZS5kZWxldGVJbmRleCgnaW5kZXhGYWlsJykKIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoJ3N0b3JlRmFpbCcsIG51bGwpCi1pbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCdpbmRl
eEZhaWwnLCAneCcsIGZhbHNlKQoraW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhGYWls
JywgJ3gnLCB7dW5pcXVlOiBmYWxzZX0pCiAKIHRlc3RTZXRWZXJzaW9uQWJvcnQzKCk6CiBQQVNT
IGV2ZW50LmNhbmNlbGFibGUgaXMgZmFsc2UKQEAgLTUzLDcgKzUzLDcgQEAgUEFTUyBldmVudC5j
YW5jZWxhYmxlIGlzIGZhbHNlCiB0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQKIFBBU1MgdHJh
bnMgIT09IG51bGwgaXMgdHJ1ZQogc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVG
YWlsJywgbnVsbCkKLWluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4RmFpbCcsICd4Jywg
ZmFsc2UpCitpbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleEZhaWwnLCAneCcsIHt1bmlx
dWU6IGZhbHNlfSkKIAogdGVzdEluYWN0aXZlQWJvcnRlZFRyYW5zYWN0aW9uKCk6CiBFeHBlY3Rp
bmcgZXhjZXB0aW9uIGZyb20gaW5kZXgub3BlbkN1cnNvcigpCkBAIC05OSw3ICs5OSw3IEBAIGFk
ZElEQk9iamVjdHNBbmRDb21taXQoKToKIHRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogUEFT
UyB0cmFucyAhPT0gbnVsbCBpcyB0cnVlCiBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdz
dG9yZUZhaWwnLCBudWxsKQotaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhGYWlsJywg
J3gnLCBmYWxzZSkKK2luZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4RmFpbCcsICd4Jywg
e3VuaXF1ZTogZmFsc2V9KQogCiB0ZXN0SW5hY3RpdmVDb21wbGV0ZWRUcmFuc2FjdGlvbigpOgog
RXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGluZGV4Lm9wZW5DdXJzb3IoKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYmFzaWNzLmh0bWwgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1iYXNpY3MuaHRtbAppbmRl
eCA4OGU0NTdkNzg4MzNjYzZlYjg3NDk1MTA2NjQ3NDBmNTVlNzViMDEwLi40ZDBjYWQzNDUxYjlj
MWRlN2IyNTgxNjc1YjdhOGFlNDBmODYxMmRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1iYXNpY3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1iYXNpY3MuaHRtbApAQCAtNTYsNyArNTYsNyBA
QCBmdW5jdGlvbiBhZGRSZW1vdmVJREJPYmplY3RzKCkKICAgICB0cmFucy5vbmNvbXBsZXRlID0g
dW5leHBlY3RlZENvbXBsZXRlQ2FsbGJhY2s7DQogDQogICAgIHZhciBzdG9yZSA9IGV2YWxBbmRM
b2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlRmFpbCcsIG51bGwpIik7DQot
ICAgIHZhciBpbmRleCA9IGV2YWxBbmRMb2coImluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoJ2lu
ZGV4RmFpbCcsICd4JywgZmFsc2UpIik7DQorICAgIHZhciBpbmRleCA9IGV2YWxBbmRMb2coImlu
ZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4RmFpbCcsICd4Jywge3VuaXF1ZTogZmFsc2V9
KSIpOw0KIA0KICAgICBldmFsQW5kTG9nKCJkYi5kZWxldGVPYmplY3RTdG9yZSgnc3RvcmVGYWls
JykiKTsNCiAgICAgZXZhbEFuZExvZygic3RvcmUuZGVsZXRlSW5kZXgoJ2luZGV4RmFpbCcpIik7
DQpAQCAtODIsMTMgKzgyLDEzIEBAIGZ1bmN0aW9uIGFkZFJlbW92ZUFkZElEQk9iamVjdHMoKQog
ICAgIHRyYW5zLm9uY29tcGxldGUgPSB1bmV4cGVjdGVkQ29tcGxldGVDYWxsYmFjazsNCiANCiAg
ICAgdmFyIHN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgn
c3RvcmVGYWlsJywgbnVsbCkiKTsNCi0gICAgdmFyIGluZGV4ID0gZXZhbEFuZExvZygiaW5kZXgg
PSBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhGYWlsJywgJ3gnLCBmYWxzZSkiKTsNCisgICAgdmFy
IGluZGV4ID0gZXZhbEFuZExvZygiaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhGYWls
JywgJ3gnLCB7dW5pcXVlOiBmYWxzZX0pIik7DQogDQogICAgIGV2YWxBbmRMb2coImRiLmRlbGV0
ZU9iamVjdFN0b3JlKCdzdG9yZUZhaWwnKSIpOw0KICAgICBldmFsQW5kTG9nKCJzdG9yZS5kZWxl
dGVJbmRleCgnaW5kZXhGYWlsJykiKTsNCiANCiAgICAgdmFyIHN0b3JlID0gZXZhbEFuZExvZygi
c3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVGYWlsJywgbnVsbCkiKTsNCi0gICAg
dmFyIGluZGV4ID0gZXZhbEFuZExvZygiaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhG
YWlsJywgJ3gnLCBmYWxzZSkiKTsNCisgICAgdmFyIGluZGV4ID0gZXZhbEFuZExvZygiaW5kZXgg
PSBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhGYWlsJywgJ3gnLCB7dW5pcXVlOiBmYWxzZX0pIik7
DQogDQogICAgIHRyYW5zLmFib3J0KCk7DQogfQ0KQEAgLTExMyw3ICsxMTMsNyBAQCBmdW5jdGlv
biBhZGRJREJPYmplY3RzKCkKICAgICB0cmFucy5vbmNvbXBsZXRlID0gdW5leHBlY3RlZENvbXBs
ZXRlQ2FsbGJhY2s7DQogDQogICAgIHN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgnc3RvcmVGYWlsJywgbnVsbCkiKTsNCi0gICAgaW5kZXggPSBldmFsQW5k
TG9nKCJpbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleEZhaWwnLCAneCcsIGZhbHNlKSIp
Ow0KKyAgICBpbmRleCA9IGV2YWxBbmRMb2coImluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoJ2lu
ZGV4RmFpbCcsICd4Jywge3VuaXF1ZTogZmFsc2V9KSIpOw0KIA0KICAgICB0cmFucy5hYm9ydCgp
Ow0KIH0NCkBAIC0xNTUsNyArMTU1LDcgQEAgZnVuY3Rpb24gYWRkSURCT2JqZWN0c0FuZENvbW1p
dCgpCiAgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOw0KIA0KICAg
ICBzdG9yZSA9IGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3Jl
RmFpbCcsIG51bGwpIik7DQotICAgIGluZGV4ID0gZXZhbEFuZExvZygiaW5kZXggPSBzdG9yZS5j
cmVhdGVJbmRleCgnaW5kZXhGYWlsJywgJ3gnLCBmYWxzZSkiKTsNCisgICAgaW5kZXggPSBldmFs
QW5kTG9nKCJpbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleEZhaWwnLCAneCcsIHt1bmlx
dWU6IGZhbHNlfSkiKTsNCiANCiAgICAgdHJhbnMub25jb21wbGV0ZSA9IHRlc3RJbmFjdGl2ZUNv
bXBsZXRlZFRyYW5zYWN0aW9uOw0KIH0NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi90dXRvcmlhbC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
dHV0b3JpYWwuaHRtbAppbmRleCA1Y2RjZGIyZTQzMGM4ZTQ5ODVkZDk0NGNmN2ZmZTJjNmU5ZTNj
MmMzLi5hNTc0Mjc2YjAzZDc3Nzg2YjQ5NTk2MTQyZWNhMTNmZWVmMDBhNmM3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90dXRvcmlhbC5odG1sCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3R1dG9yaWFsLmh0bWwKQEAgLTE4MCw4ICsxODAsOCBA
QCBmdW5jdGlvbiBvblNldFZlcnNpb24oKQogICAgIC8vIGluZGV4ZXMgZm9yIGEgcGVyc29ucyBm
aXJzdCBhbmQgbGFzdCBuYW1lLiBJbmRleGVzIGNhbiBvcHRpb25hbGx5IGJlIHNwZWNpZmllZCB0
byBub3QgYmUKICAgICAvLyB1bmlxdWUsIHdoaWNoIGlzIGdvb2QgaW4gdGhlIGNhc2Ugb2YgbmFt
ZXMuIFRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgdGhlIG5hbWUgb2YgdGhlIGluZGV4LgogICAgIC8v
IFNlY29uZCBpcyB0aGUga2V5IHBhdGguIFRoZSB0aGlyZCBzcGVjaWZpZXMgdW5pcXVlbmVzcy4K
LSAgICB2YXIgZm5hbWUgPSBvYmplY3RTdG9yZS5jcmVhdGVJbmRleCgiZm5hbWUiLCAiZm5hbWUi
LCBmYWxzZSk7Ci0gICAgdmFyIGxuYW1lID0gb2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoImxuYW1l
IiwgImxuYW1lIiwgZmFsc2UpOworICAgIHZhciBmbmFtZSA9IG9iamVjdFN0b3JlLmNyZWF0ZUlu
ZGV4KCJmbmFtZSIsICJmbmFtZSIsIHsgdW5pcXVlOiBmYWxzZX0pOworICAgIHZhciBsbmFtZSA9
IG9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCJsbmFtZSIsICJsbmFtZSIsIHsgdW5pcXVlOiBmYWxz
ZX0pOwogCiAgICAgLy8gTm90ZSB0aGF0IGlmIHlvdSB3YW50ZWQgdG8gZGVsZXRlIHRoZXNlIGlu
ZGV4ZXMsIHlvdSBjYW4gZWl0aGVyIGNhbGwgb2JqZWN0U3RvcmUuZGVsZXRlSW5kZXgKICAgICAv
LyBvciBzaW1wbHkgZGVsZXRlIHRoZSBvYmplY3RTdG9yZXMgdGhhdCBvd24gdGhlIGluZGV4ZXMu
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125632</attachid>
            <date>2012-02-06 06:33:07 -0800</date>
            <delta_ts>2012-02-06 11:50:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58471-20120206093306.patch</filename>
            <type>text/plain</type>
            <size>14314</size>
            <attacher name="Eugene Girard">girard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTQ3OGUzMDU3NjgxNTY2
YTQyZWYwYjQ4Nzk3ZTBiNGNmZTU1ZjgzNC4uZWI3NjZjMTE1ODczMTBkODM3Yjk2MDcyYTUyMGE1
OTE2NzE0Y2E5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAyLTAzICBFdWdl
bmUgR2lyYXJkICA8Z2lyYXJkQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREIgY3Jl
YXRlT2JqZWN0U3RvcmUgc2hvdWxkIHRocm93IGlmIG9wdGlvbnMgYXJnIGlzIGludmFsaWQKKyAg
ICAgICAgQWRkZWQgbG9naWMgdG8gT3B0aW9uc09iamVjdCB0byBkZXRlcm1pbmUgaWYgYW4gaW52
YWxpZCBvYmplY3Qgd2FzIGNyZWF0ZWQuCisgICAgICAgIEphdmFzY3JpcHQgYmluZGluZ3Mgbm93
IGRldGVjdCBpbnZhbGlkIE9wdGlvbnNPYmplY3QncyBhbmQgdGhyb3cgVHlwZUVycm9yIHdoZW4g
Zm91bmQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
ODQ3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3Q6IHN0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3JlLWJhZC1vcHRpb25zLmh0bWwK
KworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAg
ICAoR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L09wdGlv
bnNPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6T3B0aW9uc09iamVjdDo6aXNPYmplY3Qp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L09wdGlvbnNPYmplY3QuaDoKKwogMjAxMi0wMS0yMyAg
Tmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBTVkcg
YW5pbWF0aW9uIHJlcGFpbnQgaXNzdWUgd2l0aCBpbWFnZSBhbmQgZHluYW1pYyBjbGlwUGF0aApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
VjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bQppbmRleCBmZDFlZjJhNjQ0ODMxNGEwMzRlYmM4YTY0Y2YxNjg2MTk1NjA3YTcwLi4wYTdjZGEz
NWRlYWVjZWRhZmYzMTJjYzAyYTk4NDJkMDI1YjE2NzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMTYxNCw2ICsxNjE0
LDEzIEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgJHBhcmFtZXRlckNoZWNrU3RyaW5nIC49ICIgICAgRVhDRVBUSU9OX0JMT0NLKCRuYXRp
dmVUeXBlLCAkcGFyYW1ldGVyTmFtZSwgIiAuCiAgICAgICAgICAgICAgICAgIEpTVmFsdWVUb05h
dGl2ZSgkcGFyYW1ldGVyLCAiTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgJHBhcmFtSW5k
ZXgsICRwYXJhbWV0ZXJNaXNzaW5nUG9saWN5KSIpIC4gIik7XG4iOworICAgICAgICAgICAgaWYg
KCRuYXRpdmVUeXBlIGVxICdPcHRpb25zT2JqZWN0JykgeworICAgICAgICAgICAgICAgJHBhcmFt
ZXRlckNoZWNrU3RyaW5nIC49ICIgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAkcGFyYW1JbmRleCAm
JiAhJHBhcmFtZXRlck5hbWUuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhJHBhcmFtZXRlck5hbWUu
aXNPYmplY3QoKSkge1xuIjsKKyAgICAgICAgICAgICAgICRwYXJhbWV0ZXJDaGVja1N0cmluZyAu
PSAiICAgICAgICBlYyA9IFRZUEVfTUlTTUFUQ0hfRVJSO1xuIjsKKyAgICAgICAgICAgICAgICRw
YXJhbWV0ZXJDaGVja1N0cmluZyAuPSAiICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24o
ZWMpO1xuIjsKKyAgICAgICAgICAgICAgICRwYXJhbWV0ZXJDaGVja1N0cmluZyAuPSAiICAgICAg
ICByZXR1cm4gdGhyb3dFcnJvcihcIk5vdCBhbiBvYmplY3QuXCIsIFY4UHJveHk6OlR5cGVFcnJv
cik7XG4iOworICAgICAgICAgICAgICAgJHBhcmFtZXRlckNoZWNrU3RyaW5nIC49ICIgICAgfVxu
IjsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIGlmICgkcGFyYW1ldGVyLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiSXNJbmRleCJ9KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9PcHRpb25zT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L09wdGlvbnNPYmplY3QuY3BwCmluZGV4IGE5ZTQwZTRkNDgzNjYwOTJmYjg0MTFiODY4
NDVmZTA3ZWZhNjYwOTIuLmY4ZGI5N2U1YTNkOTAwMmE0NDc1YTc2OWUxMWJhYjVlNGMwNmVhNDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L09wdGlvbnNPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L09wdGlvbnNPYmplY3QuY3BwCkBAIC02
NCw2ICs2NCwxMSBAQCBPcHRpb25zT2JqZWN0JiBPcHRpb25zT2JqZWN0OjpvcGVyYXRvcj0oY29u
c3QgT3B0aW9uc09iamVjdCYgb3B0aW9uc09iamVjdCkKICAgICByZXR1cm4gKnRoaXM7CiB9CiAK
K2Jvb2wgT3B0aW9uc09iamVjdDo6aXNPYmplY3QoKSBjb25zdAoreworICAgIHJldHVybiAhaXNV
bmRlZmluZWRPck51bGwoKSAmJiBtX29wdGlvbnMtPklzT2JqZWN0KCk7Cit9CisKIGJvb2wgT3B0
aW9uc09iamVjdDo6aXNVbmRlZmluZWRPck51bGwoKSBjb25zdAogewogICAgIGlmIChtX29wdGlv
bnMuSXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvT3B0
aW9uc09iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvT3B0aW9uc09iamVjdC5o
CmluZGV4IGNiZmQyZTMzMjViOWU3ZDczZGI1ZjJhMWQ1MmU0YmQ1ODBlNmNhY2UuLjJjN2U4MGEw
NzU5OTMwZmM4YTM2ZWU1ODAyZTc0ZjRlN2MwODlkM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L09wdGlvbnNPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9PcHRpb25zT2JqZWN0LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogCiAgICAg
T3B0aW9uc09iamVjdCYgb3BlcmF0b3I9KGNvbnN0IE9wdGlvbnNPYmplY3QmKTsKIAorICAgIGJv
b2wgaXNPYmplY3QoKSBjb25zdDsKICAgICBib29sIGlzVW5kZWZpbmVkT3JOdWxsKCkgY29uc3Q7
CiAKICAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCBib29sJikgY29uc3Q7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYWEx
OWFiZWY0MWE1ZmYyYjYwZDU5MzI2MmJiOWYxMjljNmQ1OGU0Ni4uMmQzYjM1MGEwNDQzYTRmODA5
OWI1NGQ2ZmM5YzQwODYyZDg5MzkyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTAyLTAz
ICBFdWdlbmUgR2lyYXJkICA8Z2lyYXJkQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVk
REIgY3JlYXRlT2JqZWN0U3RvcmUgc2hvdWxkIHRocm93IGlmIG9wdGlvbnMgYXJnIGlzIGludmFs
aWQgKG5vdCBhbiBvYmplY3QpLgorICAgICAgICBBZGRlZCB1bml0IHRlc3RzIHRvIHRlc3QgaW52
YWxpZCBhcmd1bWVudHMuCisgICAgICAgIHN0b3JhZ2UvaW5kZXhkZGIvdHJhbnNhY3Rpb24tYmFz
aWNzIHdhcyBtb2RpZmllZCBvbmx5IHRvIGNvcnJlY3QgY2FsbHMgdGhhdCB3b3VsZCAKKyAgICAg
ICAgbm93IHRocm93LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTg0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZS1vYmplY3Qtc3RvcmUtb3B0aW9ucy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlLW9iamVjdC1zdG9y
ZS1vcHRpb25zLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtYmFzaWNz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1iYXNpY3Mu
aHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzOgor
ICAgICAgICAoZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbkNsYXNzKToKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi90cmFuc2FjdGlvbi1iYXNpY3MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0
b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWJhc2ljcy5odG1sOgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL3R1dG9yaWFsLmh0bWw6CisKIDIwMTItMDEtMjMgIEFudG9uIE11aGluICA8
YW50b25tQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIHR3ZWFraW5nIG9mIHRl
c3QgZXhwZWN0YXRpb25zOiBpdCBzaG91bGQgYmUgSU1BR0UgaW5zdGVhZCBvZiBJTUFHRStURVhU
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlLW9iamVj
dC1zdG9yZS1vcHRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2NyZWF0ZS1vYmplY3Qtc3RvcmUtb3B0aW9ucy1leHBlY3RlZC50eHQKaW5kZXggMTY1Yzg5
ZmY4NjRmN2QzY2E5NGJmNjliOTY3MGE5MTVlZmQ1NWI4MC4uZWZmNWI1YzgwMzhkZmUyNjIxODUz
MTI0YTk1YTE3NzViN2RjZjk2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGUtb2JqZWN0LXN0b3JlLW9wdGlvbnMtZXhw
ZWN0ZWQudHh0CkBAIC0xNSw2ICsxNSwxMiBAQCBkYi5jcmVhdGVPYmplY3RTdG9yZSgnYycsIHth
dXRvSW5jcmVtZW50OiB0cnVlfSk7CiB0cmFucyA9IGRiLnRyYW5zYWN0aW9uKFsnYScsICdiJ10s
IHdlYmtpdElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCiBQQVNTIHRyYW5zLm1vZGUgaXMgd2Vi
a2l0SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURQogdHJhbnMub2JqZWN0U3RvcmUoJ2EnKS5wdXQo
eydhJzogMH0pCitFeHBlY3RpbmcgVHlwZUVycm9yIGV4Y2VwdGlvbiBmcm9tIGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdkJywgJ2JhcicpOworUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1Mg
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2QnLCAnYmFyJyk7IHRocmV3IFR5cGVFcnJvcjogTm90IGFu
IG9iamVjdC4KK0V4cGVjdGluZyBUeXBlRXJyb3IgZXhjZXB0aW9uIGZyb20gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ2UnLCBmYWxzZSk7CitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgnZScsIGZhbHNlKTsgdGhyZXcgVHlwZUVycm9yOiBOb3QgYW4g
b2JqZWN0LgogdHJhbnMub2JqZWN0U3RvcmUoJ2InKS5wdXQoeydhJzogMH0sIDApCiB0cmFucy5v
YmplY3RTdG9yZSgnYScpLmdldCgwKQogUEFTUyBldmVudC50YXJnZXQucmVzdWx0LmEgaXMge2E6
IDB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGUtb2Jq
ZWN0LXN0b3JlLW9wdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2Ny
ZWF0ZS1vYmplY3Qtc3RvcmUtb3B0aW9ucy5odG1sCmluZGV4IDA4MjA3MjcwOGM4MWRmMzRlYzVh
MDAyYWRmYjA5ZWJjMTY1MGNjY2EuLjdhOGFmZjRmNTUyZDcwOGU3ZTZjZjRkNDExNWJkNzljNDJj
MzQ0NDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZS1v
YmplY3Qtc3RvcmUtb3B0aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2NyZWF0ZS1vYmplY3Qtc3RvcmUtb3B0aW9ucy5odG1sCkBAIC00Nyw2ICs0Nyw5IEBAIGZ1
bmN0aW9uIGNsZWFuRGF0YWJhc2UoKQogICAgIHJlcSA9IGV2YWxBbmRMb2coInRyYW5zLm9iamVj
dFN0b3JlKCdhJykucHV0KHsnYSc6IDB9KSIpOwogICAgIHJlcS5vbnN1Y2Nlc3MgPSBwdXRCOwog
ICAgIHJlcS5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisKKyAgICBldmFsQW5k
RXhwZWN0RXhjZXB0aW9uQ2xhc3MoImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdkJywgJ2JhcicpOyIs
ICJUeXBlRXJyb3IiKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uQ2xhc3MoImRiLmNyZWF0
ZU9iamVjdFN0b3JlKCdlJywgZmFsc2UpOyIsICJUeXBlRXJyb3IiKTsKIH0KIAogZnVuY3Rpb24g
cHV0QigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1i
YXNpY3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgt
YmFzaWNzLWV4cGVjdGVkLnR4dAppbmRleCAyNTE5NGJkYzUyZDg2YWY5ZWFkMzI2MjBiZGExZmE0
YTQ3MDk1ZjBiLi45ODUzYTIwZWNkMjMxNzk2NDJlZDllMDJhYzEyNWEwZjg4MDdlODRiIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1iYXNpY3MtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWJhc2ljcy1l
eHBlY3RlZC50eHQKQEAgLTEyLDggKzEyLDggQEAgUEFTUyB0cmFucyAhPT0gbnVsbCBpcyB0cnVl
CiBEZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgogZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3Jl
TmFtZScsIG51bGwpCiBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhOYW1lJywgJ3gnKQotc3RvcmUu
Y3JlYXRlSW5kZXgoJ2luZGV4TmFtZTInLCAneScsIGZhbHNlKQotc3RvcmUuY3JlYXRlSW5kZXgo
J3pJbmRleCcsICd6JywgdHJ1ZSkKK3N0b3JlLmNyZWF0ZUluZGV4KCdpbmRleE5hbWUyJywgJ3kn
LCB7dW5pcXVlOiBmYWxzZX0pCitzdG9yZS5jcmVhdGVJbmRleCgnekluZGV4JywgJ3onLCB7dW5p
cXVlOiB0cnVlfSkKIFBBU1MgJ25hbWUnIGluIGluZGV4T2JqZWN0IGlzIHRydWUKIFBBU1MgaW5k
ZXhPYmplY3QubmFtZSBpcyAiaW5kZXhOYW1lIgogUEFTUyAnb2JqZWN0U3RvcmUnIGluIGluZGV4
T2JqZWN0IGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2luZGV4LWJhc2ljcy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgt
YmFzaWNzLmh0bWwKaW5kZXggZmI0YzAwNDBiZDhlNjMyOWIzMDdjMjZhMDk1NzAxN2JiOTlkMzYy
Ny4uMzFiNmQzYTY0NjQ4ZmVhZTM5MTg5NDJkNTMyOGQyYzM2ZDdhMWY4MCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtYmFzaWNzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtYmFzaWNzLmh0bWwKQEAgLTM5LDggKzM5
LDggQEAgZnVuY3Rpb24gZGVsZXRlRXhpc3RpbmcoKQogCiAgICAgd2luZG93LnN0b3JlID0gZXZh
bEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScsIG51bGwpIik7CiAgICAg
d2luZG93LmluZGV4T2JqZWN0ID0gZXZhbEFuZExvZygic3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4
TmFtZScsICd4JykiKTsKLSAgICB3aW5kb3cuaW5kZXhPYmplY3QyID0gZXZhbEFuZExvZygic3Rv
cmUuY3JlYXRlSW5kZXgoJ2luZGV4TmFtZTInLCAneScsIGZhbHNlKSIpOwotICAgIHdpbmRvdy5p
bmRleE9iamVjdDMgPSBldmFsQW5kTG9nKCJzdG9yZS5jcmVhdGVJbmRleCgnekluZGV4JywgJ3on
LCB0cnVlKSIpOworICAgIHdpbmRvdy5pbmRleE9iamVjdDIgPSBldmFsQW5kTG9nKCJzdG9yZS5j
cmVhdGVJbmRleCgnaW5kZXhOYW1lMicsICd5Jywge3VuaXF1ZTogZmFsc2V9KSIpOworICAgIHdp
bmRvdy5pbmRleE9iamVjdDMgPSBldmFsQW5kTG9nKCJzdG9yZS5jcmVhdGVJbmRleCgnekluZGV4
JywgJ3onLCB7dW5pcXVlOiB0cnVlfSkiKTsKICAgICBhZGREYXRhKCk7CiB9CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanMgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzCmluZGV4IGJi
ZjVjMjU0OTlmMGE1MWRkZjhiZjQ5NzQ0MjE5NDQ2NzQxNTEyNzAuLjdlNTM4Y2NjZDE0YmI1Y2Q5
ODJmYWMyYWU4ZDBmOGMxYzdkMjY2MzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qcwpAQCAtNDgsNiArNDgsMjEgQEAgZnVuY3Rpb24g
ZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbihjbWQsIGV4cGVjdGVkKQogICAgIH0KIH0KIAorZnVuY3Rp
b24gZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbkNsYXNzKGNtZCwgZXhwZWN0ZWQpCit7CisgICAgZGVi
dWcoIkV4cGVjdGluZyAiICsgZXhwZWN0ZWQgKyAiIGV4Y2VwdGlvbiBmcm9tICIgKyBjbWQpOwor
ICAgIHRyeSB7CisgICAgICAgIGV2YWwoY21kKTsKKyAgICAgICAgdGVzdEZhaWxlZCgiTm8gZXhj
ZXB0aW9uIHRocm93biEiICk7CisgICAgfSBjYXRjaCAoZSkgeworCQl0ZXN0UGFzc2VkKCJFeGNl
cHRpb24gd2FzIHRocm93bi4iKTsKKwkJaWYgKGV2YWwoImUgaW5zdGFuY2VvZiAiICsgZXhwZWN0
ZWQpKQorCQkJdGVzdFBhc3NlZChjbWQgKyAiIHRocmV3ICIgKyBlKTsKKwkJZWxzZQorCQkJdGVz
dEZhaWxlZCgiRXhwZWN0ZWQgIiArIGV4cGVjdGVkICsgIiBidXQgc2F3ICIgKyBlKTsKKyAgICB9
Cit9CisKIGZ1bmN0aW9uIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYikKIHsKICAgICB3aGlsZSAo
ZGIub2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1iYXNpY3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYmFzaWNzLWV4cGVjdGVkLnR4dAppbmRl
eCBmOTdiYWZmMzBlMjJmYzFlZDg5ZGU1MWU5ZDliMTZhZWQ0NzZjOGUxLi45YzhjNGUzYjE4ZWEy
MzkwYjJkOGVmMjIyMDIwODQyOGMwZjA2NTM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1iYXNpY3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWJhc2ljcy1leHBlY3RlZC50eHQK
QEAgLTIzLDcgKzIzLDcgQEAgYWRkUmVtb3ZlSURCT2JqZWN0cygpOgogdHJhbnMgPSBldmVudC50
YXJnZXQucmVzdWx0CiBQQVNTIHRyYW5zICE9PSBudWxsIGlzIHRydWUKIHN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ3N0b3JlRmFpbCcsIG51bGwpCi1pbmRleCA9IHN0b3JlLmNyZWF0ZUlu
ZGV4KCdpbmRleEZhaWwnLCAneCcsIGZhbHNlKQoraW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgn
aW5kZXhGYWlsJywgJ3gnKQogZGIuZGVsZXRlT2JqZWN0U3RvcmUoJ3N0b3JlRmFpbCcpCiBzdG9y
ZS5kZWxldGVJbmRleCgnaW5kZXhGYWlsJykKIApAQCAtMzYsMTEgKzM2LDExIEBAIGFkZFJlbW92
ZUFkZElEQk9iamVjdHMoKToKIHRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogUEFTUyB0cmFu
cyAhPT0gbnVsbCBpcyB0cnVlCiBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZUZh
aWwnLCBudWxsKQotaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhGYWlsJywgJ3gnLCBm
YWxzZSkKK2luZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4RmFpbCcsICd4JykKIGRiLmRl
bGV0ZU9iamVjdFN0b3JlKCdzdG9yZUZhaWwnKQogc3RvcmUuZGVsZXRlSW5kZXgoJ2luZGV4RmFp
bCcpCiBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZUZhaWwnLCBudWxsKQotaW5k
ZXggPSBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhGYWlsJywgJ3gnLCBmYWxzZSkKK2luZGV4ID0g
c3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4RmFpbCcsICd4JykKIAogdGVzdFNldFZlcnNpb25BYm9y
dDMoKToKIFBBU1MgZXZlbnQuY2FuY2VsYWJsZSBpcyBmYWxzZQpAQCAtNTMsNyArNTMsNyBAQCBQ
QVNTIGV2ZW50LmNhbmNlbGFibGUgaXMgZmFsc2UKIHRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dAogUEFTUyB0cmFucyAhPT0gbnVsbCBpcyB0cnVlCiBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCdzdG9yZUZhaWwnLCBudWxsKQotaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhG
YWlsJywgJ3gnLCBmYWxzZSkKK2luZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4RmFpbCcs
ICd4JykKIAogdGVzdEluYWN0aXZlQWJvcnRlZFRyYW5zYWN0aW9uKCk6CiBFeHBlY3RpbmcgZXhj
ZXB0aW9uIGZyb20gaW5kZXgub3BlbkN1cnNvcigpCkBAIC05OSw3ICs5OSw3IEBAIGFkZElEQk9i
amVjdHNBbmRDb21taXQoKToKIHRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAogUEFTUyB0cmFu
cyAhPT0gbnVsbCBpcyB0cnVlCiBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZUZh
aWwnLCBudWxsKQotaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhGYWlsJywgJ3gnLCBm
YWxzZSkKK2luZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4RmFpbCcsICd4JykKIAogdGVz
dEluYWN0aXZlQ29tcGxldGVkVHJhbnNhY3Rpb24oKToKIEV4cGVjdGluZyBleGNlcHRpb24gZnJv
bSBpbmRleC5vcGVuQ3Vyc29yKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3RyYW5zYWN0aW9uLWJhc2ljcy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvdHJhbnNhY3Rpb24tYmFzaWNzLmh0bWwKaW5kZXggODhlNDU3ZDc4ODMzY2M2ZWI4NzQ5
NTEwNjY0NzQwZjU1ZTc1YjAxMC4uN2M1YmI0MjEwZDY3NzgxZTAxZjIzOWJjM2NmYWI2YmRjNjI4
YmY4OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rp
b24tYmFzaWNzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNh
Y3Rpb24tYmFzaWNzLmh0bWwKQEAgLTU2LDcgKzU2LDcgQEAgZnVuY3Rpb24gYWRkUmVtb3ZlSURC
T2JqZWN0cygpCiAgICAgdHJhbnMub25jb21wbGV0ZSA9IHVuZXhwZWN0ZWRDb21wbGV0ZUNhbGxi
YWNrOw0KIA0KICAgICB2YXIgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdzdG9yZUZhaWwnLCBudWxsKSIpOw0KLSAgICB2YXIgaW5kZXggPSBldmFsQW5k
TG9nKCJpbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleEZhaWwnLCAneCcsIGZhbHNlKSIp
Ow0KKyAgICB2YXIgaW5kZXggPSBldmFsQW5kTG9nKCJpbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4
KCdpbmRleEZhaWwnLCAneCcpIik7DQogDQogICAgIGV2YWxBbmRMb2coImRiLmRlbGV0ZU9iamVj
dFN0b3JlKCdzdG9yZUZhaWwnKSIpOw0KICAgICBldmFsQW5kTG9nKCJzdG9yZS5kZWxldGVJbmRl
eCgnaW5kZXhGYWlsJykiKTsNCkBAIC04MiwxMyArODIsMTMgQEAgZnVuY3Rpb24gYWRkUmVtb3Zl
QWRkSURCT2JqZWN0cygpCiAgICAgdHJhbnMub25jb21wbGV0ZSA9IHVuZXhwZWN0ZWRDb21wbGV0
ZUNhbGxiYWNrOw0KIA0KICAgICB2YXIgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCdzdG9yZUZhaWwnLCBudWxsKSIpOw0KLSAgICB2YXIgaW5kZXggPSBl
dmFsQW5kTG9nKCJpbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleEZhaWwnLCAneCcsIGZh
bHNlKSIpOw0KKyAgICB2YXIgaW5kZXggPSBldmFsQW5kTG9nKCJpbmRleCA9IHN0b3JlLmNyZWF0
ZUluZGV4KCdpbmRleEZhaWwnLCAneCcpIik7DQogDQogICAgIGV2YWxBbmRMb2coImRiLmRlbGV0
ZU9iamVjdFN0b3JlKCdzdG9yZUZhaWwnKSIpOw0KICAgICBldmFsQW5kTG9nKCJzdG9yZS5kZWxl
dGVJbmRleCgnaW5kZXhGYWlsJykiKTsNCiANCiAgICAgdmFyIHN0b3JlID0gZXZhbEFuZExvZygi
c3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVGYWlsJywgbnVsbCkiKTsNCi0gICAg
dmFyIGluZGV4ID0gZXZhbEFuZExvZygiaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhG
YWlsJywgJ3gnLCBmYWxzZSkiKTsNCisgICAgdmFyIGluZGV4ID0gZXZhbEFuZExvZygiaW5kZXgg
PSBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhGYWlsJywgJ3gnKSIpOw0KIA0KICAgICB0cmFucy5h
Ym9ydCgpOw0KIH0NCkBAIC0xMTMsNyArMTEzLDcgQEAgZnVuY3Rpb24gYWRkSURCT2JqZWN0cygp
CiAgICAgdHJhbnMub25jb21wbGV0ZSA9IHVuZXhwZWN0ZWRDb21wbGV0ZUNhbGxiYWNrOw0KIA0K
ICAgICBzdG9yZSA9IGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0
b3JlRmFpbCcsIG51bGwpIik7DQotICAgIGluZGV4ID0gZXZhbEFuZExvZygiaW5kZXggPSBzdG9y
ZS5jcmVhdGVJbmRleCgnaW5kZXhGYWlsJywgJ3gnLCBmYWxzZSkiKTsNCisgICAgaW5kZXggPSBl
dmFsQW5kTG9nKCJpbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleEZhaWwnLCAneCcpIik7
DQogDQogICAgIHRyYW5zLmFib3J0KCk7DQogfQ0KQEAgLTE1NSw3ICsxNTUsNyBAQCBmdW5jdGlv
biBhZGRJREJPYmplY3RzQW5kQ29tbWl0KCkKICAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3Rl
ZEFib3J0Q2FsbGJhY2s7DQogDQogICAgIHN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgnc3RvcmVGYWlsJywgbnVsbCkiKTsNCi0gICAgaW5kZXggPSBldmFs
QW5kTG9nKCJpbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleEZhaWwnLCAneCcsIGZhbHNl
KSIpOw0KKyAgICBpbmRleCA9IGV2YWxBbmRMb2coImluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgo
J2luZGV4RmFpbCcsICd4JykiKTsNCiANCiAgICAgdHJhbnMub25jb21wbGV0ZSA9IHRlc3RJbmFj
dGl2ZUNvbXBsZXRlZFRyYW5zYWN0aW9uOw0KIH0NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi90dXRvcmlhbC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvdHV0b3JpYWwuaHRtbAppbmRleCA1Y2RjZGIyZTQzMGM4ZTQ5ODVkZDk0NGNmN2ZmZTJj
NmU5ZTNjMmMzLi5hNTc0Mjc2YjAzZDc3Nzg2YjQ5NTk2MTQyZWNhMTNmZWVmMDBhNmM3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90dXRvcmlhbC5odG1sCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3R1dG9yaWFsLmh0bWwKQEAgLTE4MCw4ICsx
ODAsOCBAQCBmdW5jdGlvbiBvblNldFZlcnNpb24oKQogICAgIC8vIGluZGV4ZXMgZm9yIGEgcGVy
c29ucyBmaXJzdCBhbmQgbGFzdCBuYW1lLiBJbmRleGVzIGNhbiBvcHRpb25hbGx5IGJlIHNwZWNp
ZmllZCB0byBub3QgYmUKICAgICAvLyB1bmlxdWUsIHdoaWNoIGlzIGdvb2QgaW4gdGhlIGNhc2Ug
b2YgbmFtZXMuIFRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgdGhlIG5hbWUgb2YgdGhlIGluZGV4Lgog
ICAgIC8vIFNlY29uZCBpcyB0aGUga2V5IHBhdGguIFRoZSB0aGlyZCBzcGVjaWZpZXMgdW5pcXVl
bmVzcy4KLSAgICB2YXIgZm5hbWUgPSBvYmplY3RTdG9yZS5jcmVhdGVJbmRleCgiZm5hbWUiLCAi
Zm5hbWUiLCBmYWxzZSk7Ci0gICAgdmFyIGxuYW1lID0gb2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgo
ImxuYW1lIiwgImxuYW1lIiwgZmFsc2UpOworICAgIHZhciBmbmFtZSA9IG9iamVjdFN0b3JlLmNy
ZWF0ZUluZGV4KCJmbmFtZSIsICJmbmFtZSIsIHsgdW5pcXVlOiBmYWxzZX0pOworICAgIHZhciBs
bmFtZSA9IG9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCJsbmFtZSIsICJsbmFtZSIsIHsgdW5pcXVl
OiBmYWxzZX0pOwogCiAgICAgLy8gTm90ZSB0aGF0IGlmIHlvdSB3YW50ZWQgdG8gZGVsZXRlIHRo
ZXNlIGluZGV4ZXMsIHlvdSBjYW4gZWl0aGVyIGNhbGwgb2JqZWN0U3RvcmUuZGVsZXRlSW5kZXgK
ICAgICAvLyBvciBzaW1wbHkgZGVsZXRlIHRoZSBvYmplY3RTdG9yZXMgdGhhdCBvd24gdGhlIGlu
ZGV4ZXMuCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>