<?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>83839</bug_id>
          
          <creation_ts>2012-04-12 18:08:25 -0700</creation_ts>
          <short_desc>GC in the middle of JSObject::allocatePropertyStorage can cause badness</short_desc>
          <delta_ts>2012-05-16 14:20:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>barraclough</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>601691</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-04-12 18:08:25 -0700</bug_when>
    <thetext>Currently, when we&apos;re in the middle of JSObject::allocatePropertyStorage, our Structure has inconsistent information. The Structure has just had a property added to it and it thinks it is bigger in both size and capacity, but our actual property backing store is still the same size as before. This can lead the garbage collector to do bad things based on this inaccurate information. We should instead check to see if we need to allocate more space first and do so if necessary, and then add the new property to our structure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601696</commentid>
    <comment_count>1</comment_count>
      <attachid>137007</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-04-12 18:13:49 -0700</bug_when>
    <thetext>Created attachment 137007
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601729</commentid>
    <comment_count>2</comment_count>
      <attachid>137007</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-04-12 18:38:47 -0700</bug_when>
    <thetext>Comment on attachment 137007
Patch

Attachment 137007 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12391710</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601745</commentid>
    <comment_count>3</comment_count>
      <attachid>137023</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-04-12 18:54:47 -0700</bug_when>
    <thetext>Created attachment 137023
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601818</commentid>
    <comment_count>4</comment_count>
      <attachid>137023</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-04-12 21:52:56 -0700</bug_when>
    <thetext>Comment on attachment 137023
Patch

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

I think you want an interface like this:

// Add property with structure transition
newStorage = reallocPropertyStorage(m_propertyStorage.get(), ...); // Returns new storage, does not assign.
newStructure = Structure::addPropertyTransition(...); // Returns new structure, does not assign.
setPropertyStorage(newStorage, newStructure); // Assigns structure and storage &quot;atomically&quot;.

// Add property without structure transition
newStorage = reallocPropertyStorage(m_propertyStorage.get(), ...); // Returns new storage, does not assign.
setPropertyStorage(newStorage, m_structure.get()); // Assigns structure and storage &quot;atomically&quot;.

Since storage and structure need to be in sync, we should never set one without setting the other.

&gt; Source/JavaScriptCore/runtime/JSObject.h:661
&gt; +        if (structure()-&gt;shouldResizePropertyStorage())

Let&apos;s call this &quot;shouldGrowPropertyStorage&quot;. &quot;Resize&quot; is imprecise, because we don&apos;t shrink.

&gt; Source/JavaScriptCore/runtime/JSObject.h:662
&gt; +            allocatePropertyStorage(globalData, structure()-&gt;propertyStorageCapacity(), structure()-&gt;suggestedPropertyStorageResizeAmount());

Let&apos;s call this &quot;growPropertyStorage&quot; or &quot;reallocPropertyStorage&quot; to help clarify that we&apos;re allocating for a second time.

&gt; Source/JavaScriptCore/runtime/JSObject.h:727
&gt; +    Structure* structure = Structure::addPropertyTransition(globalData, this-&gt;structure(), propertyName, attributes, specificFunction, offset);

This addPropertyTransition will allocate a new structure, which can cause a GC. During that GC, our Structure&apos;s information about our backing store will be out of date (specifically, it will underestimate the size / capacity of our backing store). I&apos;m not sure if that will definitely cause a problem, but it seems not so good. We never want our information about our backing store to be out of date.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602213</commentid>
    <comment_count>5</comment_count>
      <attachid>137104</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-04-13 11:02:41 -0700</bug_when>
    <thetext>Created attachment 137104
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602262</commentid>
    <comment_count>6</comment_count>
      <attachid>137104</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-04-13 11:24:40 -0700</bug_when>
    <thetext>Comment on attachment 137104
Patch

Attachment 137104 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12400123</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602273</commentid>
    <comment_count>7</comment_count>
      <attachid>137112</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-04-13 11:32:50 -0700</bug_when>
    <thetext>Created attachment 137112
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602296</commentid>
    <comment_count>8</comment_count>
      <attachid>137112</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-04-13 11:55:57 -0700</bug_when>
    <thetext>Comment on attachment 137112
Patch

Attachment 137112 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12403044</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602300</commentid>
    <comment_count>9</comment_count>
      <attachid>137121</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-04-13 12:04:39 -0700</bug_when>
    <thetext>Created attachment 137121
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602430</commentid>
    <comment_count>10</comment_count>
      <attachid>137121</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-04-13 14:47:23 -0700</bug_when>
    <thetext>Comment on attachment 137121
Patch

r=me

Did the test cases I mentioned pan out?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603156</commentid>
    <comment_count>11</comment_count>
      <attachid>137121</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-16 08:10:26 -0700</bug_when>
    <thetext>Comment on attachment 137121
Patch

Clearing flags on attachment: 137121

Committed r114255: &lt;http://trac.webkit.org/changeset/114255&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603157</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-16 08:10:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603507</commentid>
    <comment_count>13</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-04-16 15:27:42 -0700</bug_when>
    <thetext>&lt;rdar://problem/10884040&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619155</commentid>
    <comment_count>14</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-05-08 21:45:52 -0700</bug_when>
    <thetext>Reverted in r116494, this causes many failures if COLLECT_ON_EVERY_ALLOCATION is enabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619948</commentid>
    <comment_count>15</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-05-09 15:56:30 -0700</bug_when>
    <thetext>Rolling this change back in since the underlying bug that it revealed should have been fixed in http://trac.webkit.org/changeset/116565.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625697</commentid>
    <comment_count>16</comment_count>
      <attachid>142313</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-05-16 11:48:19 -0700</bug_when>
    <thetext>Created attachment 142313
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625698</commentid>
    <comment_count>17</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-05-16 11:48:42 -0700</bug_when>
    <thetext>Resubmitting patch to make sure everything still builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625865</commentid>
    <comment_count>18</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-05-16 14:20:55 -0700</bug_when>
    <thetext>Committed r117343: &lt;http://trac.webkit.org/changeset/117343&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137007</attachid>
            <date>2012-04-12 18:13:49 -0700</date>
            <delta_ts>2012-04-12 18:54:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83839-20120412181348.patch</filename>
            <type>text/plain</type>
            <size>5956</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzOTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
YTE3YzVmYmYyMjVhNGQzOGMwM2ViYmMwZTI2NTFkNjI0ODEyODgyLi44YmQ3YmJkMmU3OTk1NWM2
Njk0NDlhMjAxOGMzOWIxZGQ4MmU3ODI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAxMi0wNC0xMiAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBw
bGUuY29tPgorCisgICAgICAgIEdDIGluIHRoZSBtaWRkbGUgb2YgSlNPYmplY3Q6OmFsbG9jYXRl
UHJvcGVydHlTdG9yYWdlIGNhbiBjYXVzZSBiYWRuZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzgzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgorICAgICAgICAo
SlNDOjpKU09iamVjdDo6cHV0RGlyZWN0SW50ZXJuYWwpOiBNb3ZlZCB0aGUgY2hlY2sgdG8gc2Vl
IGlmIHdlIHNob3VsZCAKKyAgICAgICAgYWxsb2NhdGUgbW9yZSBiYWNraW5nIHN0b3JlIGJlZm9y
ZSB0aGUgYWN0dWFsIHByb3BlcnR5IGluc2VydGlvbiBpbnRvIAorICAgICAgICB0aGUgc3RydWN0
dXJlLgorICAgICAgICAoSlNDOjpKU09iamVjdDo6cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24p
OiBEaXR0by4KKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5jcHA6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZTo6c3VnZ2VzdGVkUHJvcGVydHlTdG9yYWdlUmVzaXplQW1vdW50KTogQWRkZWQg
dG8gCisgICAgICAgIGtlZXAgdGhlIHJlc2l6ZSBwb2xpY3kgZm9yIHByb3BlcnR5IGJhY2tpbmcg
c3RvcmVzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIFN0cnVjdHVyZSBjbGFzcy4KKyAgICAgICAgKEpT
Qyk6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuaDoKKyAgICAgICAgKEpTQzo6U3RydWN0
dXJlOjpzaG91bGRSZXNpemVQcm9wZXJ0eVN0b3JhZ2UpOiBMZXRzIGNsaWVudHMga25vdyBpZiBh
bm90aGVyIGluc2VydGlvbiAKKyAgICAgICAgaW50byB0aGUgU3RydWN0dXJlIHdvdWxkIHJlcXVp
cmUgcmVzaXppbmcgdGhlIHByb3BlcnR5IGJhY2tpbmcgc3RvcmUgc28gdGhhdCB0aGV5IGNhbiAK
KyAgICAgICAgcHJlYWxsb2NhdGUgdGhlIHJlcXVpcmVkIHN0b3JhZ2UuCisgICAgICAgIChTdHJ1
Y3R1cmUpOgorCiAyMDEyLTA0LTEyICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5v
cmc+CiAKICAgICAgICAgW1F0XVtBUk1dIEJ1aWxkZml4IGFmdGVyIHIxMTM5MzQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAppbmRleCA0MTZhNmFiNWI4MzJiOGNlN2Q1
ZTVjNmNmMTZiN2M1YmU0Mzk3NjI4Li5iMGMxMzRiYjgwNmE0ZDU2NWY3MDlmOTFlYzE0M2I5NDU4
MmFiNDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTY1
OCwxMCArNjU4LDkgQEAgaW5saW5lIGJvb2wgSlNPYmplY3Q6OnB1dERpcmVjdEludGVybmFsKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmkKICAgICAgICAgaWYgKChtb2Rl
ID09IFB1dE1vZGVQdXQpICYmICFpc0V4dGVuc2libGUoKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgICAgICBzaXplX3QgY3VycmVudENhcGFjaXR5ID0gc3RydWN0dXJlKCktPnBy
b3BlcnR5U3RvcmFnZUNhcGFjaXR5KCk7CisgICAgICAgIGlmIChzdHJ1Y3R1cmUoKS0+c2hvdWxk
UmVzaXplUHJvcGVydHlTdG9yYWdlKCkpCisgICAgICAgICAgICBhbGxvY2F0ZVByb3BlcnR5U3Rv
cmFnZShnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUoKS0+cHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKSwg
c3RydWN0dXJlKCktPnN1Z2dlc3RlZFByb3BlcnR5U3RvcmFnZVJlc2l6ZUFtb3VudCgpKTsKICAg
ICAgICAgb2Zmc2V0ID0gc3RydWN0dXJlKCktPmFkZFByb3BlcnR5V2l0aG91dFRyYW5zaXRpb24o
Z2xvYmFsRGF0YSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzLCBzcGVjaWZpY0Z1bmN0aW9uKTsK
LSAgICAgICAgaWYgKGN1cnJlbnRDYXBhY2l0eSAhPSBzdHJ1Y3R1cmUoKS0+cHJvcGVydHlTdG9y
YWdlQ2FwYWNpdHkoKSkKLSAgICAgICAgICAgIGFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKGdsb2Jh
bERhdGEsIGN1cnJlbnRDYXBhY2l0eSwgc3RydWN0dXJlKCktPnByb3BlcnR5U3RvcmFnZUNhcGFj
aXR5KCkpOwogCiAgICAgICAgIEFTU0VSVChvZmZzZXQgPCBzdHJ1Y3R1cmUoKS0+cHJvcGVydHlT
dG9yYWdlQ2FwYWNpdHkoKSk7CiAgICAgICAgIHB1dERpcmVjdE9mZnNldChnbG9iYWxEYXRhLCBv
ZmZzZXQsIHZhbHVlKTsKQEAgLTcyMiwxMCArNzIxLDEwIEBAIGlubGluZSBib29sIEpTT2JqZWN0
OjpwdXREaXJlY3RJbnRlcm5hbChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IElkZW50
aWZpCiAgICAgaWYgKChtb2RlID09IFB1dE1vZGVQdXQpICYmICFpc0V4dGVuc2libGUoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBTdHJ1Y3R1
cmU6OmFkZFByb3BlcnR5VHJhbnNpdGlvbihnbG9iYWxEYXRhLCB0aGlzLT5zdHJ1Y3R1cmUoKSwg
cHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzLCBzcGVjaWZpY0Z1bmN0aW9uLCBvZmZzZXQpOworICAg
IGlmIChzdHJ1Y3R1cmUoKS0+c2hvdWxkUmVzaXplUHJvcGVydHlTdG9yYWdlKCkpCisgICAgICAg
IGFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKGdsb2JhbERhdGEsIHN0cnVjdHVyZSgpLT5wcm9wZXJ0
eVN0b3JhZ2VDYXBhY2l0eSgpLCBzdHJ1Y3R1cmUoKS0+c3VnZ2VzdGVkUHJvcGVydHlTdG9yYWdl
UmVzaXplQW1vdW50KCkpOwogCi0gICAgaWYgKGN1cnJlbnRDYXBhY2l0eSAhPSBzdHJ1Y3R1cmUt
PnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCkpCi0gICAgICAgIGFsbG9jYXRlUHJvcGVydHlTdG9y
YWdlKGdsb2JhbERhdGEsIGN1cnJlbnRDYXBhY2l0eSwgc3RydWN0dXJlLT5wcm9wZXJ0eVN0b3Jh
Z2VDYXBhY2l0eSgpKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IFN0cnVjdHVyZTo6YWRk
UHJvcGVydHlUcmFuc2l0aW9uKGdsb2JhbERhdGEsIHRoaXMtPnN0cnVjdHVyZSgpLCBwcm9wZXJ0
eU5hbWUsIGF0dHJpYnV0ZXMsIHNwZWNpZmljRnVuY3Rpb24sIG9mZnNldCk7CiAKICAgICBBU1NF
UlQob2Zmc2V0IDwgc3RydWN0dXJlLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKTsKICAgICBz
ZXRTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKQEAgLTc2MiwxMCArNzYxLDkgQEAg
aW5saW5lIHZvaWQgSlNPYmplY3Q6OnB1dERpcmVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IGNvbnN0IElkZW50aWZpZXImIHByb3AKIGlubGluZSB2b2lkIEpTT2JqZWN0OjpwdXREaXJlY3RX
aXRob3V0VHJhbnNpdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcykKIHsK
ICAgICBBU1NFUlQoIXZhbHVlLmlzR2V0dGVyU2V0dGVyKCkgJiYgIShhdHRyaWJ1dGVzICYgQWNj
ZXNzb3IpKTsKLSAgICBzaXplX3QgY3VycmVudENhcGFjaXR5ID0gc3RydWN0dXJlKCktPnByb3Bl
cnR5U3RvcmFnZUNhcGFjaXR5KCk7CisgICAgaWYgKHN0cnVjdHVyZSgpLT5zaG91bGRSZXNpemVQ
cm9wZXJ0eVN0b3JhZ2UoKSkKKyAgICAgICAgYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoZ2xvYmFs
RGF0YSwgc3RydWN0dXJlKCktPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCksIHN0cnVjdHVyZSgp
LT5zdWdnZXN0ZWRQcm9wZXJ0eVN0b3JhZ2VSZXNpemVBbW91bnQoKSk7CiAgICAgc2l6ZV90IG9m
ZnNldCA9IHN0cnVjdHVyZSgpLT5hZGRQcm9wZXJ0eVdpdGhvdXRUcmFuc2l0aW9uKGdsb2JhbERh
dGEsIHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcywgZ2V0SlNGdW5jdGlvbih2YWx1ZSkpOwotICAg
IGlmIChjdXJyZW50Q2FwYWNpdHkgIT0gc3RydWN0dXJlKCktPnByb3BlcnR5U3RvcmFnZUNhcGFj
aXR5KCkpCi0gICAgICAgIGFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKGdsb2JhbERhdGEsIGN1cnJl
bnRDYXBhY2l0eSwgc3RydWN0dXJlKCktPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCkpOwogICAg
IHB1dERpcmVjdE9mZnNldChnbG9iYWxEYXRhLCBvZmZzZXQsIHZhbHVlKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKaW5kZXggODc1YzRmMTZkZjM4
MGQ4N2ZiNzFiOGE4NWVhNzQ0ZGFjYzg1Y2ZhOS4uODYxMGUwNjhhMzJhYWZmZGFlM2I5YWUxNzlh
MGI4ZmUxYzA4YWU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1
cmUuY3BwCkBAIC0yNjcsNiArMjY3LDEzIEBAIHZvaWQgU3RydWN0dXJlOjpncm93UHJvcGVydHlT
dG9yYWdlQ2FwYWNpdHkoKQogICAgICAgICBtX3Byb3BlcnR5U3RvcmFnZUNhcGFjaXR5ICo9IDI7
CiB9CiAKK3NpemVfdCBTdHJ1Y3R1cmU6OnN1Z2dlc3RlZFByb3BlcnR5U3RvcmFnZVJlc2l6ZUFt
b3VudCgpCit7CisgICAgaWYgKGlzVXNpbmdJbmxpbmVTdG9yYWdlKCkpCisgICAgICAgIHJldHVy
biBKU09iamVjdDo6YmFzZUV4dGVybmFsU3RvcmFnZUNhcGFjaXR5OworICAgIHJldHVybiBtX3By
b3BlcnR5U3RvcmFnZUNhcGFjaXR5ICogMjsKK30KKwogdm9pZCBTdHJ1Y3R1cmU6OmRlc3BlY2lm
eURpY3Rpb25hcnlGdW5jdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKICAgICBTdHJpbmdJbXBsKiByZXAgPSBwcm9wZXJ0eU5h
bWUuaW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
dWN0dXJlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAppbmRl
eCAzNTJkYTk3NDJhNjE5NzM0NTEzNzc2ZWM2YmNjZTc0MjgwMTYxM2Y2Li5hNDQ3NTAwZjg3NzFh
MmE4MjlhZjgyNjE2Zjk3ZTc4MjcyMWNiZGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJ1Y3R1cmUuaApAQCAtMTAxLDYgKzEwMSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICBib29sIGlzRnJvemVuKEpTR2xvYmFsRGF0YSYpOwogICAgICAgICBib29sIGlzRXh0ZW5z
aWJsZSgpIGNvbnN0IHsgcmV0dXJuICFtX3ByZXZlbnRFeHRlbnNpb25zOyB9CiAgICAgICAgIGJv
b2wgZGlkVHJhbnNpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGlkVHJhbnNpdGlvbjsgfQorICAg
ICAgICBib29sIHNob3VsZFJlc2l6ZVByb3BlcnR5U3RvcmFnZSgpIHsgcmV0dXJuIHByb3BlcnR5
U3RvcmFnZUNhcGFjaXR5KCkgPT0gcHJvcGVydHlTdG9yYWdlU2l6ZSgpOyB9CisgICAgICAgIEpT
X0VYUE9SVF9QUklWQVRFIHNpemVfdCBzdWdnZXN0ZWRQcm9wZXJ0eVN0b3JhZ2VSZXNpemVBbW91
bnQoKTsgCiAKICAgICAgICAgU3RydWN0dXJlKiBmbGF0dGVuRGljdGlvbmFyeVN0cnVjdHVyZShK
U0dsb2JhbERhdGEmLCBKU09iamVjdCopOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137023</attachid>
            <date>2012-04-12 18:54:47 -0700</date>
            <delta_ts>2012-04-13 11:02:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83839-20120412185446.patch</filename>
            <type>text/plain</type>
            <size>6981</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzOTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
YTE3YzVmYmYyMjVhNGQzOGMwM2ViYmMwZTI2NTFkNjI0ODEyODgyLi41OGY4OTc1NzE2ODhlMjVj
NmRkNWIxYmU5NTNmNjQwNTRhY2QzNDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxMi0wNC0xMiAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBw
bGUuY29tPgorCisgICAgICAgIEdDIGluIHRoZSBtaWRkbGUgb2YgSlNPYmplY3Q6OmFsbG9jYXRl
UHJvcGVydHlTdG9yYWdlIGNhbiBjYXVzZSBiYWRuZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzgzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZjoKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6
CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXREaXJlY3RJbnRlcm5hbCk6IE1vdmVkIHRoZSBj
aGVjayB0byBzZWUgaWYgd2Ugc2hvdWxkIAorICAgICAgICBhbGxvY2F0ZSBtb3JlIGJhY2tpbmcg
c3RvcmUgYmVmb3JlIHRoZSBhY3R1YWwgcHJvcGVydHkgaW5zZXJ0aW9uIGludG8gCisgICAgICAg
IHRoZSBzdHJ1Y3R1cmUuCisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXREaXJlY3RXaXRob3V0
VHJhbnNpdGlvbik6IERpdHRvLgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmNwcDoKKyAg
ICAgICAgKEpTQzo6U3RydWN0dXJlOjpzdWdnZXN0ZWRQcm9wZXJ0eVN0b3JhZ2VSZXNpemVBbW91
bnQpOiBBZGRlZCB0byAKKyAgICAgICAga2VlcCB0aGUgcmVzaXplIHBvbGljeSBmb3IgcHJvcGVy
dHkgYmFja2luZyBzdG9yZXMgY29udGFpbmVkIHdpdGhpbiB0aGUgU3RydWN0dXJlIGNsYXNzLgor
ICAgICAgICAoSlNDKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5oOgorICAgICAgICAo
SlNDOjpTdHJ1Y3R1cmU6OnNob3VsZFJlc2l6ZVByb3BlcnR5U3RvcmFnZSk6IExldHMgY2xpZW50
cyBrbm93IGlmIGFub3RoZXIgaW5zZXJ0aW9uIAorICAgICAgICBpbnRvIHRoZSBTdHJ1Y3R1cmUg
d291bGQgcmVxdWlyZSByZXNpemluZyB0aGUgcHJvcGVydHkgYmFja2luZyBzdG9yZSBzbyB0aGF0
IHRoZXkgY2FuIAorICAgICAgICBwcmVhbGxvY2F0ZSB0aGUgcmVxdWlyZWQgc3RvcmFnZS4KKyAg
ICAgICAgKFN0cnVjdHVyZSk6CisKKwogMjAxMi0wNC0xMiAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8
b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF1bQVJNXSBCdWlsZGZpeCBhZnRlciByMTEz
OTM0LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
cHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LmRlZgppbmRleCA5Yjc3OTc3ZDE4Mzg4YjBkMjAzOTdiM2Q1MzE5N2UwYTRlZGRmOTk4Li4wNWY3
MWFjNWFmMjU0MjU1YzU5Njg3OGVjY2QzNzdiYzM0NjMyZTQ5IDEwMDc1NQotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLmRlZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
dmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtMzI5LDYgKzMyOSw3
IEBAIEVYUE9SVFMKICAgICA/c3RvcFByb2ZpbGluZ0BQcm9maWxlckBKU0NAQFFBRT9BVj8kUGFz
c1JlZlB0ckBWUHJvZmlsZUBKU0NAQEBXVEZAQFBBVkV4ZWNTdGF0ZUAyQEFCVlVTdHJpbmdAMkBA
WgogICAgID9zdG9wU2FtcGxpbmdASlNHbG9iYWxEYXRhQEpTQ0BAUUFFWFhaCiAgICAgP3N1YnN0
cmluZ1NoYXJpbmdJbXBsQFVTdHJpbmdASlNDQEBRQkU/QVYxMkBJSUBaCisgICAgP3N1Z2dlc3Rl
ZFByb3BlcnR5U3RvcmFnZVJlc2l6ZUFtb3VudEBTdHJ1Y3R1cmVASlNDQEBRQUVJWFoKICAgICA/
c3ltYm9sVGFibGVHZXRASlNWYXJpYWJsZU9iamVjdEBKU0NAQElBRV9OQUJWSWRlbnRpZmllckAy
QEFBVlByb3BlcnR5RGVzY3JpcHRvckAyQEBaCiAgICAgP3N5bnRoZXNpemVQcm90b3R5cGVASlNW
YWx1ZUBKU0NAQFFCRVBBVkpTT2JqZWN0QDJAUEFWRXhlY1N0YXRlQDJAQFoKICAgICA/dGhpc09i
amVjdEBEZWJ1Z2dlckNhbGxGcmFtZUBKU0NAQFFCRVBBVkpTT2JqZWN0QDJAWFoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IDQxNmE2YWI1YjgzMmI4Y2U3ZDVl
NWM2Y2YxNmI3YzViZTQzOTc2MjguLmIwYzEzNGJiODA2YTRkNTY1ZjcwOWY5MWVjMTQzYjk0NTgy
YWI0N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtNjU4
LDEwICs2NTgsOSBAQCBpbmxpbmUgYm9vbCBKU09iamVjdDo6cHV0RGlyZWN0SW50ZXJuYWwoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaQogICAgICAgICBpZiAoKG1vZGUg
PT0gUHV0TW9kZVB1dCkgJiYgIWlzRXh0ZW5zaWJsZSgpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgICAgIHNpemVfdCBjdXJyZW50Q2FwYWNpdHkgPSBzdHJ1Y3R1cmUoKS0+cHJv
cGVydHlTdG9yYWdlQ2FwYWNpdHkoKTsKKyAgICAgICAgaWYgKHN0cnVjdHVyZSgpLT5zaG91bGRS
ZXNpemVQcm9wZXJ0eVN0b3JhZ2UoKSkKKyAgICAgICAgICAgIGFsbG9jYXRlUHJvcGVydHlTdG9y
YWdlKGdsb2JhbERhdGEsIHN0cnVjdHVyZSgpLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpLCBz
dHJ1Y3R1cmUoKS0+c3VnZ2VzdGVkUHJvcGVydHlTdG9yYWdlUmVzaXplQW1vdW50KCkpOwogICAg
ICAgICBvZmZzZXQgPSBzdHJ1Y3R1cmUoKS0+YWRkUHJvcGVydHlXaXRob3V0VHJhbnNpdGlvbihn
bG9iYWxEYXRhLCBwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMsIHNwZWNpZmljRnVuY3Rpb24pOwot
ICAgICAgICBpZiAoY3VycmVudENhcGFjaXR5ICE9IHN0cnVjdHVyZSgpLT5wcm9wZXJ0eVN0b3Jh
Z2VDYXBhY2l0eSgpKQotICAgICAgICAgICAgYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoZ2xvYmFs
RGF0YSwgY3VycmVudENhcGFjaXR5LCBzdHJ1Y3R1cmUoKS0+cHJvcGVydHlTdG9yYWdlQ2FwYWNp
dHkoKSk7CiAKICAgICAgICAgQVNTRVJUKG9mZnNldCA8IHN0cnVjdHVyZSgpLT5wcm9wZXJ0eVN0
b3JhZ2VDYXBhY2l0eSgpKTsKICAgICAgICAgcHV0RGlyZWN0T2Zmc2V0KGdsb2JhbERhdGEsIG9m
ZnNldCwgdmFsdWUpOwpAQCAtNzIyLDEwICs3MjEsMTAgQEAgaW5saW5lIGJvb2wgSlNPYmplY3Q6
OnB1dERpcmVjdEludGVybmFsKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRp
ZmkKICAgICBpZiAoKG1vZGUgPT0gUHV0TW9kZVB1dCkgJiYgIWlzRXh0ZW5zaWJsZSgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IFN0cnVjdHVy
ZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uKGdsb2JhbERhdGEsIHRoaXMtPnN0cnVjdHVyZSgpLCBw
cm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMsIHNwZWNpZmljRnVuY3Rpb24sIG9mZnNldCk7CisgICAg
aWYgKHN0cnVjdHVyZSgpLT5zaG91bGRSZXNpemVQcm9wZXJ0eVN0b3JhZ2UoKSkKKyAgICAgICAg
YWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKCktPnByb3BlcnR5
U3RvcmFnZUNhcGFjaXR5KCksIHN0cnVjdHVyZSgpLT5zdWdnZXN0ZWRQcm9wZXJ0eVN0b3JhZ2VS
ZXNpemVBbW91bnQoKSk7CiAKLSAgICBpZiAoY3VycmVudENhcGFjaXR5ICE9IHN0cnVjdHVyZS0+
cHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKSkKLSAgICAgICAgYWxsb2NhdGVQcm9wZXJ0eVN0b3Jh
Z2UoZ2xvYmFsRGF0YSwgY3VycmVudENhcGFjaXR5LCBzdHJ1Y3R1cmUtPnByb3BlcnR5U3RvcmFn
ZUNhcGFjaXR5KCkpOworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gU3RydWN0dXJlOjphZGRQ
cm9wZXJ0eVRyYW5zaXRpb24oZ2xvYmFsRGF0YSwgdGhpcy0+c3RydWN0dXJlKCksIHByb3BlcnR5
TmFtZSwgYXR0cmlidXRlcywgc3BlY2lmaWNGdW5jdGlvbiwgb2Zmc2V0KTsKIAogICAgIEFTU0VS
VChvZmZzZXQgPCBzdHJ1Y3R1cmUtPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCkpOwogICAgIHNl
dFN0cnVjdHVyZShnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpOwpAQCAtNzYyLDEwICs3NjEsOSBAQCBp
bmxpbmUgdm9pZCBKU09iamVjdDo6cHV0RGlyZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcAogaW5saW5lIHZvaWQgSlNPYmplY3Q6OnB1dERpcmVjdFdp
dGhvdXRUcmFuc2l0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQogewog
ICAgIEFTU0VSVCghdmFsdWUuaXNHZXR0ZXJTZXR0ZXIoKSAmJiAhKGF0dHJpYnV0ZXMgJiBBY2Nl
c3NvcikpOwotICAgIHNpemVfdCBjdXJyZW50Q2FwYWNpdHkgPSBzdHJ1Y3R1cmUoKS0+cHJvcGVy
dHlTdG9yYWdlQ2FwYWNpdHkoKTsKKyAgICBpZiAoc3RydWN0dXJlKCktPnNob3VsZFJlc2l6ZVBy
b3BlcnR5U3RvcmFnZSgpKQorICAgICAgICBhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZShnbG9iYWxE
YXRhLCBzdHJ1Y3R1cmUoKS0+cHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKSwgc3RydWN0dXJlKCkt
PnN1Z2dlc3RlZFByb3BlcnR5U3RvcmFnZVJlc2l6ZUFtb3VudCgpKTsKICAgICBzaXplX3Qgb2Zm
c2V0ID0gc3RydWN0dXJlKCktPmFkZFByb3BlcnR5V2l0aG91dFRyYW5zaXRpb24oZ2xvYmFsRGF0
YSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzLCBnZXRKU0Z1bmN0aW9uKHZhbHVlKSk7Ci0gICAg
aWYgKGN1cnJlbnRDYXBhY2l0eSAhPSBzdHJ1Y3R1cmUoKS0+cHJvcGVydHlTdG9yYWdlQ2FwYWNp
dHkoKSkKLSAgICAgICAgYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoZ2xvYmFsRGF0YSwgY3VycmVu
dENhcGFjaXR5LCBzdHJ1Y3R1cmUoKS0+cHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKSk7CiAgICAg
cHV0RGlyZWN0T2Zmc2V0KGdsb2JhbERhdGEsIG9mZnNldCwgdmFsdWUpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAppbmRleCA4NzVjNGYxNmRmMzgw
ZDg3ZmI3MWI4YTg1ZWE3NDRkYWNjODVjZmE5Li44NjEwZTA2OGEzMmFhZmZkYWUzYjlhZTE3OWEw
YjhmZTFjMDhhZThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJ1Y3R1cmUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVy
ZS5jcHAKQEAgLTI2Nyw2ICsyNjcsMTMgQEAgdm9pZCBTdHJ1Y3R1cmU6Omdyb3dQcm9wZXJ0eVN0
b3JhZ2VDYXBhY2l0eSgpCiAgICAgICAgIG1fcHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkgKj0gMjsK
IH0KIAorc2l6ZV90IFN0cnVjdHVyZTo6c3VnZ2VzdGVkUHJvcGVydHlTdG9yYWdlUmVzaXplQW1v
dW50KCkKK3sKKyAgICBpZiAoaXNVc2luZ0lubGluZVN0b3JhZ2UoKSkKKyAgICAgICAgcmV0dXJu
IEpTT2JqZWN0OjpiYXNlRXh0ZXJuYWxTdG9yYWdlQ2FwYWNpdHk7CisgICAgcmV0dXJuIG1fcHJv
cGVydHlTdG9yYWdlQ2FwYWNpdHkgKiAyOworfQorCiB2b2lkIFN0cnVjdHVyZTo6ZGVzcGVjaWZ5
RGljdGlvbmFyeUZ1bmN0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lKQogewogICAgIFN0cmluZ0ltcGwqIHJlcCA9IHByb3BlcnR5TmFt
ZS5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1
Y3R1cmUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCmluZGV4
IDM1MmRhOTc0MmE2MTk3MzQ1MTM3NzZlYzZiY2NlNzQyODAxNjEzZjYuLmE0NDc1MDBmODc3MWEy
YTgyOWFmODI2MTZmOTdlNzgyNzIxY2JkYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cnVjdHVyZS5oCkBAIC0xMDEsNiArMTAxLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIGJvb2wgaXNGcm96ZW4oSlNHbG9iYWxEYXRhJik7CiAgICAgICAgIGJvb2wgaXNFeHRlbnNp
YmxlKCkgY29uc3QgeyByZXR1cm4gIW1fcHJldmVudEV4dGVuc2lvbnM7IH0KICAgICAgICAgYm9v
bCBkaWRUcmFuc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kaWRUcmFuc2l0aW9uOyB9CisgICAg
ICAgIGJvb2wgc2hvdWxkUmVzaXplUHJvcGVydHlTdG9yYWdlKCkgeyByZXR1cm4gcHJvcGVydHlT
dG9yYWdlQ2FwYWNpdHkoKSA9PSBwcm9wZXJ0eVN0b3JhZ2VTaXplKCk7IH0KKyAgICAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgc2l6ZV90IHN1Z2dlc3RlZFByb3BlcnR5U3RvcmFnZVJlc2l6ZUFtb3Vu
dCgpOyAKIAogICAgICAgICBTdHJ1Y3R1cmUqIGZsYXR0ZW5EaWN0aW9uYXJ5U3RydWN0dXJlKEpT
R2xvYmFsRGF0YSYsIEpTT2JqZWN0Kik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137104</attachid>
            <date>2012-04-13 11:02:41 -0700</date>
            <delta_ts>2012-04-13 11:32:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83839-20120413110240.patch</filename>
            <type>text/plain</type>
            <size>13156</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0MTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
ODc0ZmNiMTE4MzRhOThiZjkyYjE5NDRhZmEwZWU1MTA4OGI4NjFkLi40MTY5YzcwZWY3NDY2NTdl
ZDFmZTdjYzA0OWEwMjJkYThiY2NjMjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNyBAQAorMjAxMi0wNC0xMyAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBw
bGUuY29tPgorCisgICAgICAgIEdDIGluIHRoZSBtaWRkbGUgb2YgSlNPYmplY3Q6OmFsbG9jYXRl
UHJvcGVydHlTdG9yYWdlIGNhbiBjYXVzZSBiYWRuZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzgzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZjoKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOiBN
YWtpbmcgY2hhbmdlcyB0byB1c2UgdGhlIG5ldyByZXR1cm4gdmFsdWUgb2YgZ3Jvd1Byb3BlcnR5
U3RvcmFnZS4KKyAgICAgICAgKEpTQzo6REVGSU5FX1NUVUJfRlVOQ1RJT04pOgorICAgICAgICAq
IHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Z3Jvd1Byb3Bl
cnR5U3RvcmFnZSk6IFJlbmFtZWQgdG8gbW9yZSBhY2N1cmF0ZWx5IHJlZmxlY3QgdGhhdCB3ZSdy
ZSAKKyAgICAgICAgZ3Jvd2luZyBvdXIgYWxyZWFkeS1leGlzdGluZyBQcm9wZXJ0eVN0b3JhZ2Uu
CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgorICAgICAgICAoSlNPYmplY3QpOgorICAg
ICAgICAoSlNDOjpKU09iamVjdDo6c2V0UHJvcGVydHlTdG9yYWdlKTogIkF0b21pY2FsbHkiIHNl
dHMgdGhlIG5ldyBwcm9wZXJ0eSBzdG9yYWdlIAorICAgICAgICBhbmQgdGhlIG5ldyBzdHJ1Y3R1
cmUgc28gdGhhdCB3ZSBjYW4gYmUgc3VyZSBhIEdDIG5ldmVyIG9jY3VycyB3aGVuIG91ciBTdHJ1
Y3R1cmUKKyAgICAgICAgaW5mbyBpcyBvdXQgb2Ygc3luYyB3aXRoIG91ciBQcm9wZXJ0eVN0b3Jh
Z2UuCisgICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6cHV0RGlyZWN0SW50
ZXJuYWwpOiBNb3ZlZCB0aGUgY2hlY2sgdG8gc2VlIGlmIHdlIHNob3VsZCAKKyAgICAgICAgYWxs
b2NhdGUgbW9yZSBiYWNraW5nIHN0b3JlIGJlZm9yZSB0aGUgYWN0dWFsIHByb3BlcnR5IGluc2Vy
dGlvbiBpbnRvIAorICAgICAgICB0aGUgc3RydWN0dXJlLgorICAgICAgICAoSlNDOjpKU09iamVj
dDo6cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24pOiBEaXR0by4KKyAgICAgICAgKEpTQzo6SlNP
YmplY3Q6OnRyYW5zaXRpb25Ubyk6IERpdHRvLgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJl
LmNwcDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpzdWdnZXN0ZWROZXdQcm9wZXJ0eVN0b3Jh
Z2VTaXplKTogQWRkZWQgdG8ga2VlcCB0aGUgcmVzaXplIHBvbGljeSAKKyAgICAgICAgZm9yIHBy
b3BlcnR5IGJhY2tpbmcgc3RvcmVzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIFN0cnVjdHVyZSBjbGFz
cy4KKyAgICAgICAgKEpTQyk6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuaDoKKyAgICAg
ICAgKEpTQzo6U3RydWN0dXJlOjpzaG91bGRHcm93UHJvcGVydHlTdG9yYWdlKTogTGV0cyBjbGll
bnRzIGtub3cgaWYgYW5vdGhlciBpbnNlcnRpb24gCisgICAgICAgIGludG8gdGhlIFN0cnVjdHVy
ZSB3b3VsZCByZXF1aXJlIHJlc2l6aW5nIHRoZSBwcm9wZXJ0eSBiYWNraW5nIHN0b3JlIHNvIHRo
YXQgdGhleSBjYW4gCisgICAgICAgIHByZWFsbG9jYXRlIHRoZSByZXF1aXJlZCBzdG9yYWdlLgor
ICAgICAgICAoU3RydWN0dXJlKToKKwogMjAxMi0wNC0xMiAgQmVuamFtaW4gUG91bGFpbiAgPGJw
b3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXByb3ZlIHJlcGxhY2VVc2luZ1N0cmluZ1Nl
YXJjaCgpIGZvciBjYXNlIG9mIGEgc2luZ2xlIGNoYXJhY3RlciBzZWFyY2hWYWx1ZQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgppbmRleCA5
Yjc3OTc3ZDE4Mzg4YjBkMjAzOTdiM2Q1MzE5N2UwYTRlZGRmOTk4Li42OTI5ZTc4NGRiMjcyNDhl
YjNhYWUwN2ZhNWZmZjg3OGFjMDJiMjhjIDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRl
ZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtMzI5LDYgKzMyOSw3IEBAIEVYUE9SVFMK
ICAgICA/c3RvcFByb2ZpbGluZ0BQcm9maWxlckBKU0NAQFFBRT9BVj8kUGFzc1JlZlB0ckBWUHJv
ZmlsZUBKU0NAQEBXVEZAQFBBVkV4ZWNTdGF0ZUAyQEFCVlVTdHJpbmdAMkBAWgogICAgID9zdG9w
U2FtcGxpbmdASlNHbG9iYWxEYXRhQEpTQ0BAUUFFWFhaCiAgICAgP3N1YnN0cmluZ1NoYXJpbmdJ
bXBsQFVTdHJpbmdASlNDQEBRQkU/QVYxMkBJSUBaCisgICAgP3N1Z2dlc3RlZE5ld1Byb3BlcnR5
U3RvcmFnZVNpemVAU3RydWN0dXJlQEpTQ0BAUUFFSVhaCiAgICAgP3N5bWJvbFRhYmxlR2V0QEpT
VmFyaWFibGVPYmplY3RASlNDQEBJQUVfTkFCVklkZW50aWZpZXJAMkBBQVZQcm9wZXJ0eURlc2Ny
aXB0b3JAMkBAWgogICAgID9zeW50aGVzaXplUHJvdG90eXBlQEpTVmFsdWVASlNDQEBRQkVQQVZK
U09iamVjdEAyQFBBVkV4ZWNTdGF0ZUAyQEBaCiAgICAgP3RoaXNPYmplY3RARGVidWdnZXJDYWxs
RnJhbWVASlNDQEBRQkVQQVZKU09iamVjdEAyQFhaCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
U3R1YnMuY3BwCmluZGV4IDIzZWQ1Mjc4NDQ0MWEyNTNhZTkwM2IwNzE1M2U2OTUxMDZlNjkxYjku
LjM3YjIzMzE3N2JiY2NiY2NmZTFlMWI0YTU2YWI0OTlmMTcyOTZmMjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCkBAIC0xNDk4LDcgKzE0OTgsOSBAQCBERUZJTkVfU1RV
Ql9GVU5DVElPTihKU09iamVjdCosIG9wX3B1dF9ieV9pZF90cmFuc2l0aW9uX3JlYWxsb2MpCiAK
ICAgICBBU1NFUlQoYmFzZVZhbHVlLmlzT2JqZWN0KCkpOwogICAgIEpTT2JqZWN0KiBiYXNlID0g
YXNPYmplY3QoYmFzZVZhbHVlKTsKLSAgICBiYXNlLT5hbGxvY2F0ZVByb3BlcnR5U3RvcmFnZSgq
c3RhY2tGcmFtZS5nbG9iYWxEYXRhLCBvbGRTaXplLCBuZXdTaXplKTsKKyAgICBKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEgPSAqc3RhY2tGcmFtZS5nbG9iYWxEYXRhOworICAgIFByb3BlcnR5U3Rv
cmFnZSBuZXdTdG9yYWdlID0gYmFzZS0+Z3Jvd1Byb3BlcnR5U3RvcmFnZShnbG9iYWxEYXRhLCBv
bGRTaXplLCBuZXdTaXplKTsKKyAgICBiYXNlLT5zZXRQcm9wZXJ0eVN0b3JhZ2UoZ2xvYmFsRGF0
YSwgbmV3U3RvcmFnZSwgbmV3U3RydWN0dXJlKTsKIAogICAgIHJldHVybiBiYXNlOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4IDI0YTE1NTY4ZWY0
NjU4YWM5M2IyY2UxNGU0YTVmOTNmYmQ2ZmM4YzMuLjFmMTEzOGRlNTk3ZDA5ZmQ3ZDc4NjQyZGNm
ZGNhMDQ4MzZhZmUwYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dC5jcHAKQEAgLTU0Niw3ICs1NDYsNyBAQCBTdHJ1Y3R1cmUqIEpTT2JqZWN0OjpjcmVhdGVJbmhl
cml0b3JJRChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCiAgICAgcmV0dXJuIG1faW5oZXJpdG9y
SUQuZ2V0KCk7CiB9CiAKLXZvaWQgSlNPYmplY3Q6OmFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgc2l6ZV90IG9sZFNpemUsIHNpemVfdCBuZXdTaXplKQor
UHJvcGVydHlTdG9yYWdlIEpTT2JqZWN0Ojpncm93UHJvcGVydHlTdG9yYWdlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgc2l6ZV90IG9sZFNpemUsIHNpemVfdCBuZXdTaXplKQogewogICAgIEFT
U0VSVChuZXdTaXplID4gb2xkU2l6ZSk7CiAKQEAgLTU3NCw3ICs1NzQsNyBAQCB2b2lkIEpTT2Jq
ZWN0OjphbGxvY2F0ZVByb3BlcnR5U3RvcmFnZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIHNp
emVfdCBvbGRTaXplLAogICAgIH0KIAogICAgIEFTU0VSVChuZXdQcm9wZXJ0eVN0b3JhZ2UpOwot
ICAgIG1fcHJvcGVydHlTdG9yYWdlLnNldChnbG9iYWxEYXRhLCB0aGlzLCBuZXdQcm9wZXJ0eVN0
b3JhZ2UpOworICAgIHJldHVybiBuZXdQcm9wZXJ0eVN0b3JhZ2U7CiB9CiAKIGJvb2wgSlNPYmpl
Y3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9y
JiBkZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5k
ZXggNDE2YTZhYjViODMyYjhjZTdkNWU1YzZjZjE2YjdjNWJlNDM5NzYyOC4uYjVjMDI3MWEyZTYw
MzEzMjI3MWZjNzI1MDM5NzY4NmE2ZTlhZDg5ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5oCkBAIC0yMTIsOCArMjEyLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIGJvb2wgc3RhdGljRnVuY3Rpb25zUmVpZmllZCgpIHsgcmV0dXJuIHN0cnVjdHVyZSgpLT5z
dGF0aWNGdW5jdGlvbnNSZWlmaWVkKCk7IH0KICAgICAgICAgdm9pZCByZWlmeVN0YXRpY0Z1bmN0
aW9uc0ZvckRlbGV0ZShFeGVjU3RhdGUqIGV4ZWMpOwogCi0gICAgICAgIEpTX0VYUE9SVF9QUklW
QVRFIHZvaWQgYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoSlNHbG9iYWxEYXRhJiwgc2l6ZV90IG9s
ZFNpemUsIHNpemVfdCBuZXdTaXplKTsKKyAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgUHJvcGVy
dHlTdG9yYWdlIGdyb3dQcm9wZXJ0eVN0b3JhZ2UoSlNHbG9iYWxEYXRhJiwgc2l6ZV90IG9sZFNp
emUsIHNpemVfdCBuZXdTaXplKTsKICAgICAgICAgYm9vbCBpc1VzaW5nSW5saW5lU3RvcmFnZSgp
IGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IHZvaWQqPihtX3Byb3BlcnR5U3RvcmFn
ZS5nZXQoKSkgPT0gc3RhdGljX2Nhc3Q8Y29uc3Qgdm9pZCo+KHRoaXMgKyAxKTsgfQorICAgICAg
ICB2b2lkIHNldFByb3BlcnR5U3RvcmFnZShKU0dsb2JhbERhdGEmLCBQcm9wZXJ0eVN0b3JhZ2Us
IFN0cnVjdHVyZSopOwogCiAgICAgICAgIHZvaWQqIGFkZHJlc3NPZlByb3BlcnR5U3RvcmFnZSgp
CiAgICAgICAgIHsKQEAgLTQ0Nyw2ICs0NDgsMTQgQEAgaW5saW5lIGJvb2wgSlNPYmplY3Q6Omlz
R2xvYmFsVGhpcygpIGNvbnN0CiAgICAgcmV0dXJuIHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLnR5
cGUoKSA9PSBHbG9iYWxUaGlzVHlwZTsKIH0KIAoraW5saW5lIHZvaWQgSlNPYmplY3Q6OnNldFBy
b3BlcnR5U3RvcmFnZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFByb3BlcnR5U3RvcmFnZSBz
dG9yYWdlLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKK3sKKyAgICBBU1NFUlQoc3RvcmFnZSk7Cisg
ICAgQVNTRVJUKHN0cnVjdHVyZSk7CisgICAgc2V0U3RydWN0dXJlKGdsb2JhbERhdGEsIHN0cnVj
dHVyZSk7CisgICAgbV9wcm9wZXJ0eVN0b3JhZ2Uuc2V0KGdsb2JhbERhdGEsIHRoaXMsIHN0b3Jh
Z2UpOworfQorCiBpbmxpbmUgSlNPYmplY3QqIGNvbnN0cnVjdEVtcHR5T2JqZWN0KEV4ZWNTdGF0
ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiB7CiAgICAgcmV0dXJuIEpTRmluYWxPYmpl
Y3Q6OmNyZWF0ZShleGVjLCBzdHJ1Y3R1cmUpOwpAQCAtNjU4LDEwICs2NjcsMTEgQEAgaW5saW5l
IGJvb2wgSlNPYmplY3Q6OnB1dERpcmVjdEludGVybmFsKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgY29uc3QgSWRlbnRpZmkKICAgICAgICAgaWYgKChtb2RlID09IFB1dE1vZGVQdXQpICYmICFp
c0V4dGVuc2libGUoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBzaXpl
X3QgY3VycmVudENhcGFjaXR5ID0gc3RydWN0dXJlKCktPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5
KCk7CisgICAgICAgIFByb3BlcnR5U3RvcmFnZSBuZXdTdG9yYWdlID0gcHJvcGVydHlTdG9yYWdl
KCk7CisgICAgICAgIGlmIChzdHJ1Y3R1cmUoKS0+c2hvdWxkR3Jvd1Byb3BlcnR5U3RvcmFnZSgp
KQorICAgICAgICAgICAgbmV3U3RvcmFnZSA9IGdyb3dQcm9wZXJ0eVN0b3JhZ2UoZ2xvYmFsRGF0
YSwgc3RydWN0dXJlKCktPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCksIHN0cnVjdHVyZSgpLT5z
dWdnZXN0ZWROZXdQcm9wZXJ0eVN0b3JhZ2VTaXplKCkpOwogICAgICAgICBvZmZzZXQgPSBzdHJ1
Y3R1cmUoKS0+YWRkUHJvcGVydHlXaXRob3V0VHJhbnNpdGlvbihnbG9iYWxEYXRhLCBwcm9wZXJ0
eU5hbWUsIGF0dHJpYnV0ZXMsIHNwZWNpZmljRnVuY3Rpb24pOwotICAgICAgICBpZiAoY3VycmVu
dENhcGFjaXR5ICE9IHN0cnVjdHVyZSgpLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKQotICAg
ICAgICAgICAgYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoZ2xvYmFsRGF0YSwgY3VycmVudENhcGFj
aXR5LCBzdHJ1Y3R1cmUoKS0+cHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKSk7CisgICAgICAgIHNl
dFByb3BlcnR5U3RvcmFnZShnbG9iYWxEYXRhLCBuZXdTdG9yYWdlLCBzdHJ1Y3R1cmUoKSk7CiAK
ICAgICAgICAgQVNTRVJUKG9mZnNldCA8IHN0cnVjdHVyZSgpLT5wcm9wZXJ0eVN0b3JhZ2VDYXBh
Y2l0eSgpKTsKICAgICAgICAgcHV0RGlyZWN0T2Zmc2V0KGdsb2JhbERhdGEsIG9mZnNldCwgdmFs
dWUpOwpAQCAtNjczLDEyICs2ODMsMTMgQEAgaW5saW5lIGJvb2wgSlNPYmplY3Q6OnB1dERpcmVj
dEludGVybmFsKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmkKIAogICAg
IHNpemVfdCBvZmZzZXQ7CiAgICAgc2l6ZV90IGN1cnJlbnRDYXBhY2l0eSA9IHN0cnVjdHVyZSgp
LT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpOwotICAgIGlmIChTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSA9IFN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uVG9FeGlzdGluZ1N0cnVjdHVyZSh0
aGlzLT5zdHJ1Y3R1cmUoKSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzLCBzcGVjaWZpY0Z1bmN0
aW9uLCBvZmZzZXQpKSB7ICAgIAorICAgIGlmIChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IFN0cnVj
dHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uVG9FeGlzdGluZ1N0cnVjdHVyZSh0aGlzLT5zdHJ1
Y3R1cmUoKSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzLCBzcGVjaWZpY0Z1bmN0aW9uLCBvZmZz
ZXQpKSB7CisgICAgICAgIFByb3BlcnR5U3RvcmFnZSBuZXdTdG9yYWdlID0gcHJvcGVydHlTdG9y
YWdlKCk7IAogICAgICAgICBpZiAoY3VycmVudENhcGFjaXR5ICE9IHN0cnVjdHVyZS0+cHJvcGVy
dHlTdG9yYWdlQ2FwYWNpdHkoKSkKLSAgICAgICAgICAgIGFsbG9jYXRlUHJvcGVydHlTdG9yYWdl
KGdsb2JhbERhdGEsIGN1cnJlbnRDYXBhY2l0eSwgc3RydWN0dXJlLT5wcm9wZXJ0eVN0b3JhZ2VD
YXBhY2l0eSgpKTsKKyAgICAgICAgICAgIG5ld1N0b3JhZ2UgPSBncm93UHJvcGVydHlTdG9yYWdl
KGdsb2JhbERhdGEsIGN1cnJlbnRDYXBhY2l0eSwgc3RydWN0dXJlLT5wcm9wZXJ0eVN0b3JhZ2VD
YXBhY2l0eSgpKTsKIAogICAgICAgICBBU1NFUlQob2Zmc2V0IDwgc3RydWN0dXJlLT5wcm9wZXJ0
eVN0b3JhZ2VDYXBhY2l0eSgpKTsKLSAgICAgICAgc2V0U3RydWN0dXJlKGdsb2JhbERhdGEsIHN0
cnVjdHVyZSk7CisgICAgICAgIHNldFByb3BlcnR5U3RvcmFnZShnbG9iYWxEYXRhLCBuZXdTdG9y
YWdlLCBzdHJ1Y3R1cmUpOwogICAgICAgICBwdXREaXJlY3RPZmZzZXQoZ2xvYmFsRGF0YSwgb2Zm
c2V0LCB2YWx1ZSk7CiAgICAgICAgIC8vIFRoaXMgaXMgYSBuZXcgcHJvcGVydHk7IHRyYW5zaXRp
b25zIHdpdGggc3BlY2lmaWMgdmFsdWVzIGFyZSBub3QgY3VycmVudGx5IGNhY2hhYmxlLAogICAg
ICAgICAvLyBzbyBsZWF2ZSB0aGUgc2xvdCBpbiBhbiB1bmNhY2hhYmxlIHN0YXRlLgpAQCAtNzIy
LDEzICs3MzMsMTQgQEAgaW5saW5lIGJvb2wgSlNPYmplY3Q6OnB1dERpcmVjdEludGVybmFsKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmkKICAgICBpZiAoKG1vZGUgPT0g
UHV0TW9kZVB1dCkgJiYgIWlzRXh0ZW5zaWJsZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IFN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0
aW9uKGdsb2JhbERhdGEsIHRoaXMtPnN0cnVjdHVyZSgpLCBwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0
ZXMsIHNwZWNpZmljRnVuY3Rpb24sIG9mZnNldCk7CisgICAgUHJvcGVydHlTdG9yYWdlIG5ld1N0
b3JhZ2UgPSBwcm9wZXJ0eVN0b3JhZ2UoKTsKKyAgICBpZiAoc3RydWN0dXJlKCktPnNob3VsZEdy
b3dQcm9wZXJ0eVN0b3JhZ2UoKSkKKyAgICAgICAgbmV3U3RvcmFnZSA9IGdyb3dQcm9wZXJ0eVN0
b3JhZ2UoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKCktPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCks
IHN0cnVjdHVyZSgpLT5zdWdnZXN0ZWROZXdQcm9wZXJ0eVN0b3JhZ2VTaXplKCkpOwogCi0gICAg
aWYgKGN1cnJlbnRDYXBhY2l0eSAhPSBzdHJ1Y3R1cmUtPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5
KCkpCi0gICAgICAgIGFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKGdsb2JhbERhdGEsIGN1cnJlbnRD
YXBhY2l0eSwgc3RydWN0dXJlLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKTsKKyAgICBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSA9IFN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uKGdsb2Jh
bERhdGEsIHRoaXMtPnN0cnVjdHVyZSgpLCBwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMsIHNwZWNp
ZmljRnVuY3Rpb24sIG9mZnNldCk7CiAKICAgICBBU1NFUlQob2Zmc2V0IDwgc3RydWN0dXJlLT5w
cm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKTsKLSAgICBzZXRTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwg
c3RydWN0dXJlKTsKKyAgICBzZXRQcm9wZXJ0eVN0b3JhZ2UoZ2xvYmFsRGF0YSwgbmV3U3RvcmFn
ZSwgc3RydWN0dXJlKTsKICAgICBwdXREaXJlY3RPZmZzZXQoZ2xvYmFsRGF0YSwgb2Zmc2V0LCB2
YWx1ZSk7CiAgICAgLy8gVGhpcyBpcyBhIG5ldyBwcm9wZXJ0eTsgdHJhbnNpdGlvbnMgd2l0aCBz
cGVjaWZpYyB2YWx1ZXMgYXJlIG5vdCBjdXJyZW50bHkgY2FjaGFibGUsCiAgICAgLy8gc28gbGVh
dmUgdGhlIHNsb3QgaW4gYW4gdW5jYWNoYWJsZSBzdGF0ZS4KQEAgLTc2MiwxOCArNzc0LDIwIEBA
IGlubGluZSB2b2lkIEpTT2JqZWN0OjpwdXREaXJlY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wCiBpbmxpbmUgdm9pZCBKU09iamVjdDo6cHV0RGlyZWN0
V2l0aG91dFRyYW5zaXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCiB7
CiAgICAgQVNTRVJUKCF2YWx1ZS5pc0dldHRlclNldHRlcigpICYmICEoYXR0cmlidXRlcyAmIEFj
Y2Vzc29yKSk7Ci0gICAgc2l6ZV90IGN1cnJlbnRDYXBhY2l0eSA9IHN0cnVjdHVyZSgpLT5wcm9w
ZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpOworICAgIFByb3BlcnR5U3RvcmFnZSBuZXdTdG9yYWdlID0g
cHJvcGVydHlTdG9yYWdlKCk7CisgICAgaWYgKHN0cnVjdHVyZSgpLT5zaG91bGRHcm93UHJvcGVy
dHlTdG9yYWdlKCkpCisgICAgICAgIG5ld1N0b3JhZ2UgPSBncm93UHJvcGVydHlTdG9yYWdlKGds
b2JhbERhdGEsIHN0cnVjdHVyZSgpLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpLCBzdHJ1Y3R1
cmUoKS0+c3VnZ2VzdGVkTmV3UHJvcGVydHlTdG9yYWdlU2l6ZSgpKTsKICAgICBzaXplX3Qgb2Zm
c2V0ID0gc3RydWN0dXJlKCktPmFkZFByb3BlcnR5V2l0aG91dFRyYW5zaXRpb24oZ2xvYmFsRGF0
YSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzLCBnZXRKU0Z1bmN0aW9uKHZhbHVlKSk7Ci0gICAg
aWYgKGN1cnJlbnRDYXBhY2l0eSAhPSBzdHJ1Y3R1cmUoKS0+cHJvcGVydHlTdG9yYWdlQ2FwYWNp
dHkoKSkKLSAgICAgICAgYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoZ2xvYmFsRGF0YSwgY3VycmVu
dENhcGFjaXR5LCBzdHJ1Y3R1cmUoKS0+cHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKSk7CisgICAg
c2V0UHJvcGVydHlTdG9yYWdlKGdsb2JhbERhdGEsIG5ld1N0b3JhZ2UsIHN0cnVjdHVyZSgpKTsK
ICAgICBwdXREaXJlY3RPZmZzZXQoZ2xvYmFsRGF0YSwgb2Zmc2V0LCB2YWx1ZSk7CiB9CiAKIGlu
bGluZSB2b2lkIEpTT2JqZWN0Ojp0cmFuc2l0aW9uVG8oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBTdHJ1Y3R1cmUqIG5ld1N0cnVjdHVyZSkKIHsKKyAgICBQcm9wZXJ0eVN0b3JhZ2UgbmV3U3Rv
cmFnZSA9IHByb3BlcnR5U3RvcmFnZSgpOwogICAgIGlmIChzdHJ1Y3R1cmUoKS0+cHJvcGVydHlT
dG9yYWdlQ2FwYWNpdHkoKSAhPSBuZXdTdHJ1Y3R1cmUtPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5
KCkpCi0gICAgICAgIGFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKGdsb2JhbERhdGEsIHN0cnVjdHVy
ZSgpLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpLCBuZXdTdHJ1Y3R1cmUtPnByb3BlcnR5U3Rv
cmFnZUNhcGFjaXR5KCkpOwotICAgIHNldFN0cnVjdHVyZShnbG9iYWxEYXRhLCBuZXdTdHJ1Y3R1
cmUpOworICAgICAgICBuZXdTdG9yYWdlID0gZ3Jvd1Byb3BlcnR5U3RvcmFnZShnbG9iYWxEYXRh
LCBzdHJ1Y3R1cmUoKS0+cHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKSwgbmV3U3RydWN0dXJlLT5w
cm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKTsKKyAgICBzZXRQcm9wZXJ0eVN0b3JhZ2UoZ2xvYmFs
RGF0YSwgbmV3U3RvcmFnZSwgbmV3U3RydWN0dXJlKTsKIH0KIAogaW5saW5lIEpTVmFsdWUgSlNP
YmplY3Q6OnRvUHJpbWl0aXZlKEV4ZWNTdGF0ZSogZXhlYywgUHJlZmVycmVkUHJpbWl0aXZlVHlw
ZSBwcmVmZXJyZWRUeXBlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cnVjdHVyZS5jcHAKaW5kZXggODc1YzRmMTZkZjM4MGQ4N2ZiNzFiOGE4NWVhNzQ0ZGFjYzg1Y2Zh
OS4uYmZkZWNkYjUyZmY5MmIzOGNiN2Y3OWQ2MWJlYTc2NjM4MGMwNjdmZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCkBAIC0yNjcsNiArMjY3LDEzIEBA
IHZvaWQgU3RydWN0dXJlOjpncm93UHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKQogICAgICAgICBt
X3Byb3BlcnR5U3RvcmFnZUNhcGFjaXR5ICo9IDI7CiB9CiAKK3NpemVfdCBTdHJ1Y3R1cmU6OnN1
Z2dlc3RlZE5ld1Byb3BlcnR5U3RvcmFnZVNpemUoKQoreworICAgIGlmIChpc1VzaW5nSW5saW5l
U3RvcmFnZSgpKQorICAgICAgICByZXR1cm4gSlNPYmplY3Q6OmJhc2VFeHRlcm5hbFN0b3JhZ2VD
YXBhY2l0eTsKKyAgICByZXR1cm4gbV9wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSAqIDI7Cit9CisK
IHZvaWQgU3RydWN0dXJlOjpkZXNwZWNpZnlEaWN0aW9uYXJ5RnVuY3Rpb24oSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgU3Ry
aW5nSW1wbCogcmVwID0gcHJvcGVydHlOYW1lLmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlLmgKaW5kZXggMzUyZGE5NzQyYTYxOTczNDUxMzc3NmVjNmJjY2U3
NDI4MDE2MTNmNi4uNTMyNjNhMTYzMGI5ZDA4NGRjMWVjNGY4NTJjZTAyMzJhOGQwMTgyZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKQEAgLTEwMSw2ICsxMDEs
OCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBpc0Zyb3plbihKU0dsb2JhbERhdGEm
KTsKICAgICAgICAgYm9vbCBpc0V4dGVuc2libGUoKSBjb25zdCB7IHJldHVybiAhbV9wcmV2ZW50
RXh0ZW5zaW9uczsgfQogICAgICAgICBib29sIGRpZFRyYW5zaXRpb24oKSBjb25zdCB7IHJldHVy
biBtX2RpZFRyYW5zaXRpb247IH0KKyAgICAgICAgYm9vbCBzaG91bGRHcm93UHJvcGVydHlTdG9y
YWdlKCkgeyByZXR1cm4gcHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKSA9PSBwcm9wZXJ0eVN0b3Jh
Z2VTaXplKCk7IH0KKyAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc2l6ZV90IHN1Z2dlc3RlZE5l
d1Byb3BlcnR5U3RvcmFnZVNpemUoKTsgCiAKICAgICAgICAgU3RydWN0dXJlKiBmbGF0dGVuRGlj
dGlvbmFyeVN0cnVjdHVyZShKU0dsb2JhbERhdGEmLCBKU09iamVjdCopOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137112</attachid>
            <date>2012-04-13 11:32:50 -0700</date>
            <delta_ts>2012-04-13 12:04:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83839-20120413113249.patch</filename>
            <type>text/plain</type>
            <size>13690</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0MTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
ODc0ZmNiMTE4MzRhOThiZjkyYjE5NDRhZmEwZWU1MTA4OGI4NjFkLi40MTY5YzcwZWY3NDY2NTdl
ZDFmZTdjYzA0OWEwMjJkYThiY2NjMjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNyBAQAorMjAxMi0wNC0xMyAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBw
bGUuY29tPgorCisgICAgICAgIEdDIGluIHRoZSBtaWRkbGUgb2YgSlNPYmplY3Q6OmFsbG9jYXRl
UHJvcGVydHlTdG9yYWdlIGNhbiBjYXVzZSBiYWRuZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzgzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZjoKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOiBN
YWtpbmcgY2hhbmdlcyB0byB1c2UgdGhlIG5ldyByZXR1cm4gdmFsdWUgb2YgZ3Jvd1Byb3BlcnR5
U3RvcmFnZS4KKyAgICAgICAgKEpTQzo6REVGSU5FX1NUVUJfRlVOQ1RJT04pOgorICAgICAgICAq
IHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Z3Jvd1Byb3Bl
cnR5U3RvcmFnZSk6IFJlbmFtZWQgdG8gbW9yZSBhY2N1cmF0ZWx5IHJlZmxlY3QgdGhhdCB3ZSdy
ZSAKKyAgICAgICAgZ3Jvd2luZyBvdXIgYWxyZWFkeS1leGlzdGluZyBQcm9wZXJ0eVN0b3JhZ2Uu
CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgorICAgICAgICAoSlNPYmplY3QpOgorICAg
ICAgICAoSlNDOjpKU09iamVjdDo6c2V0UHJvcGVydHlTdG9yYWdlKTogIkF0b21pY2FsbHkiIHNl
dHMgdGhlIG5ldyBwcm9wZXJ0eSBzdG9yYWdlIAorICAgICAgICBhbmQgdGhlIG5ldyBzdHJ1Y3R1
cmUgc28gdGhhdCB3ZSBjYW4gYmUgc3VyZSBhIEdDIG5ldmVyIG9jY3VycyB3aGVuIG91ciBTdHJ1
Y3R1cmUKKyAgICAgICAgaW5mbyBpcyBvdXQgb2Ygc3luYyB3aXRoIG91ciBQcm9wZXJ0eVN0b3Jh
Z2UuCisgICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6cHV0RGlyZWN0SW50
ZXJuYWwpOiBNb3ZlZCB0aGUgY2hlY2sgdG8gc2VlIGlmIHdlIHNob3VsZCAKKyAgICAgICAgYWxs
b2NhdGUgbW9yZSBiYWNraW5nIHN0b3JlIGJlZm9yZSB0aGUgYWN0dWFsIHByb3BlcnR5IGluc2Vy
dGlvbiBpbnRvIAorICAgICAgICB0aGUgc3RydWN0dXJlLgorICAgICAgICAoSlNDOjpKU09iamVj
dDo6cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24pOiBEaXR0by4KKyAgICAgICAgKEpTQzo6SlNP
YmplY3Q6OnRyYW5zaXRpb25Ubyk6IERpdHRvLgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJl
LmNwcDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpzdWdnZXN0ZWROZXdQcm9wZXJ0eVN0b3Jh
Z2VTaXplKTogQWRkZWQgdG8ga2VlcCB0aGUgcmVzaXplIHBvbGljeSAKKyAgICAgICAgZm9yIHBy
b3BlcnR5IGJhY2tpbmcgc3RvcmVzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIFN0cnVjdHVyZSBjbGFz
cy4KKyAgICAgICAgKEpTQyk6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuaDoKKyAgICAg
ICAgKEpTQzo6U3RydWN0dXJlOjpzaG91bGRHcm93UHJvcGVydHlTdG9yYWdlKTogTGV0cyBjbGll
bnRzIGtub3cgaWYgYW5vdGhlciBpbnNlcnRpb24gCisgICAgICAgIGludG8gdGhlIFN0cnVjdHVy
ZSB3b3VsZCByZXF1aXJlIHJlc2l6aW5nIHRoZSBwcm9wZXJ0eSBiYWNraW5nIHN0b3JlIHNvIHRo
YXQgdGhleSBjYW4gCisgICAgICAgIHByZWFsbG9jYXRlIHRoZSByZXF1aXJlZCBzdG9yYWdlLgor
ICAgICAgICAoU3RydWN0dXJlKToKKwogMjAxMi0wNC0xMiAgQmVuamFtaW4gUG91bGFpbiAgPGJw
b3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXByb3ZlIHJlcGxhY2VVc2luZ1N0cmluZ1Nl
YXJjaCgpIGZvciBjYXNlIG9mIGEgc2luZ2xlIGNoYXJhY3RlciBzZWFyY2hWYWx1ZQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgppbmRleCA5
Yjc3OTc3ZDE4Mzg4YjBkMjAzOTdiM2Q1MzE5N2UwYTRlZGRmOTk4Li4wY2E0NDc0OTRhYjE4MTcy
YjkyOWRjYmQyYjU1MjU1NWViZGZlNDI0IDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRl
ZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtNjQsNyArNjQsNiBAQCBFWFBPUlRTCiAg
ICAgP2FkZFNsb3dDYXNlQElkZW50aWZpZXJASlNDQEBDQT9BVj8kUGFzc1JlZlB0ckBWU3RyaW5n
SW1wbEBXVEZAQEBXVEZAQFBBVkV4ZWNTdGF0ZUAyQFBBVlN0cmluZ0ltcGxANEBAWgogICAgID9h
ZGRTbG93Q2FzZUBJZGVudGlmaWVyQEpTQ0BAQ0E/QVY/JFBhc3NSZWZQdHJAVlN0cmluZ0ltcGxA
V1RGQEBAV1RGQEBQQVZKU0dsb2JhbERhdGFAMkBQQVZTdHJpbmdJbXBsQDRAQFoKICAgICA/YWRk
U3RhdGljR2xvYmFsc0BKU0dsb2JhbE9iamVjdEBKU0NAQElBRVhQQVVHbG9iYWxQcm9wZXJ0eUlu
Zm9AMTJASEBaCi0gICAgP2FsbG9jYXRlUHJvcGVydHlTdG9yYWdlQEpTT2JqZWN0QEpTQ0BAUUFF
WEFBVkpTR2xvYmFsRGF0YUAyQElJQFoKICAgICA/YWxsb2NhdGVTbG93Q2FzZUBNYXJrZWRBbGxv
Y2F0b3JASlNDQEBBQUVQQVhYWgogICAgID9hcHBlbmRAU3RyaW5nQnVpbGRlckBXVEZAQFFBRVhQ
QkVJQFoKICAgICA/YXBwZW5kQFN0cmluZ0J1aWxkZXJAV1RGQEBRQUVYUEJfV0lAWgpAQCAtMzI5
LDYgKzMyOCw3IEBAIEVYUE9SVFMKICAgICA/c3RvcFByb2ZpbGluZ0BQcm9maWxlckBKU0NAQFFB
RT9BVj8kUGFzc1JlZlB0ckBWUHJvZmlsZUBKU0NAQEBXVEZAQFBBVkV4ZWNTdGF0ZUAyQEFCVlVT
dHJpbmdAMkBAWgogICAgID9zdG9wU2FtcGxpbmdASlNHbG9iYWxEYXRhQEpTQ0BAUUFFWFhaCiAg
ICAgP3N1YnN0cmluZ1NoYXJpbmdJbXBsQFVTdHJpbmdASlNDQEBRQkU/QVYxMkBJSUBaCisgICAg
P3N1Z2dlc3RlZE5ld1Byb3BlcnR5U3RvcmFnZVNpemVAU3RydWN0dXJlQEpTQ0BAUUFFSVhaCiAg
ICAgP3N5bWJvbFRhYmxlR2V0QEpTVmFyaWFibGVPYmplY3RASlNDQEBJQUVfTkFCVklkZW50aWZp
ZXJAMkBBQVZQcm9wZXJ0eURlc2NyaXB0b3JAMkBAWgogICAgID9zeW50aGVzaXplUHJvdG90eXBl
QEpTVmFsdWVASlNDQEBRQkVQQVZKU09iamVjdEAyQFBBVkV4ZWNTdGF0ZUAyQEBaCiAgICAgP3Ro
aXNPYmplY3RARGVidWdnZXJDYWxsRnJhbWVASlNDQEBRQkVQQVZKU09iamVjdEAyQFhaCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCmluZGV4IDIzZWQ1Mjc4NDQ0MWEyNTNhZTkw
M2IwNzE1M2U2OTUxMDZlNjkxYjkuLjM3YjIzMzE3N2JiY2NiY2NmZTFlMWI0YTU2YWI0OTlmMTcy
OTZmMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCkBAIC0xNDk4LDcg
KzE0OTgsOSBAQCBERUZJTkVfU1RVQl9GVU5DVElPTihKU09iamVjdCosIG9wX3B1dF9ieV9pZF90
cmFuc2l0aW9uX3JlYWxsb2MpCiAKICAgICBBU1NFUlQoYmFzZVZhbHVlLmlzT2JqZWN0KCkpOwog
ICAgIEpTT2JqZWN0KiBiYXNlID0gYXNPYmplY3QoYmFzZVZhbHVlKTsKLSAgICBiYXNlLT5hbGxv
Y2F0ZVByb3BlcnR5U3RvcmFnZSgqc3RhY2tGcmFtZS5nbG9iYWxEYXRhLCBvbGRTaXplLCBuZXdT
aXplKTsKKyAgICBKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEgPSAqc3RhY2tGcmFtZS5nbG9iYWxE
YXRhOworICAgIFByb3BlcnR5U3RvcmFnZSBuZXdTdG9yYWdlID0gYmFzZS0+Z3Jvd1Byb3BlcnR5
U3RvcmFnZShnbG9iYWxEYXRhLCBvbGRTaXplLCBuZXdTaXplKTsKKyAgICBiYXNlLT5zZXRQcm9w
ZXJ0eVN0b3JhZ2UoZ2xvYmFsRGF0YSwgbmV3U3RvcmFnZSwgbmV3U3RydWN0dXJlKTsKIAogICAg
IHJldHVybiBiYXNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
Y3BwCmluZGV4IDI0YTE1NTY4ZWY0NjU4YWM5M2IyY2UxNGU0YTVmOTNmYmQ2ZmM4YzMuLjFmMTEz
OGRlNTk3ZDA5ZmQ3ZDc4NjQyZGNmZGNhMDQ4MzZhZmUwYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTU0Niw3ICs1NDYsNyBAQCBTdHJ1Y3R1cmUq
IEpTT2JqZWN0OjpjcmVhdGVJbmhlcml0b3JJRChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCiAg
ICAgcmV0dXJuIG1faW5oZXJpdG9ySUQuZ2V0KCk7CiB9CiAKLXZvaWQgSlNPYmplY3Q6OmFsbG9j
YXRlUHJvcGVydHlTdG9yYWdlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgc2l6ZV90IG9sZFNp
emUsIHNpemVfdCBuZXdTaXplKQorUHJvcGVydHlTdG9yYWdlIEpTT2JqZWN0Ojpncm93UHJvcGVy
dHlTdG9yYWdlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgc2l6ZV90IG9sZFNpemUsIHNpemVf
dCBuZXdTaXplKQogewogICAgIEFTU0VSVChuZXdTaXplID4gb2xkU2l6ZSk7CiAKQEAgLTU3NCw3
ICs1NzQsNyBAQCB2b2lkIEpTT2JqZWN0OjphbGxvY2F0ZVByb3BlcnR5U3RvcmFnZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIHNpemVfdCBvbGRTaXplLAogICAgIH0KIAogICAgIEFTU0VSVChu
ZXdQcm9wZXJ0eVN0b3JhZ2UpOwotICAgIG1fcHJvcGVydHlTdG9yYWdlLnNldChnbG9iYWxEYXRh
LCB0aGlzLCBuZXdQcm9wZXJ0eVN0b3JhZ2UpOworICAgIHJldHVybiBuZXdQcm9wZXJ0eVN0b3Jh
Z2U7CiB9CiAKIGJvb2wgSlNPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVj
dCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT2JqZWN0LmgKaW5kZXggNDE2YTZhYjViODMyYjhjZTdkNWU1YzZjZjE2YjdjNWJl
NDM5NzYyOC4uYjVjMDI3MWEyZTYwMzEzMjI3MWZjNzI1MDM5NzY4NmE2ZTlhZDg5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0yMTIsOCArMjEyLDkgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJvb2wgc3RhdGljRnVuY3Rpb25zUmVpZmllZCgpIHsg
cmV0dXJuIHN0cnVjdHVyZSgpLT5zdGF0aWNGdW5jdGlvbnNSZWlmaWVkKCk7IH0KICAgICAgICAg
dm9pZCByZWlmeVN0YXRpY0Z1bmN0aW9uc0ZvckRlbGV0ZShFeGVjU3RhdGUqIGV4ZWMpOwogCi0g
ICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoSlNH
bG9iYWxEYXRhJiwgc2l6ZV90IG9sZFNpemUsIHNpemVfdCBuZXdTaXplKTsKKyAgICAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgUHJvcGVydHlTdG9yYWdlIGdyb3dQcm9wZXJ0eVN0b3JhZ2UoSlNHbG9i
YWxEYXRhJiwgc2l6ZV90IG9sZFNpemUsIHNpemVfdCBuZXdTaXplKTsKICAgICAgICAgYm9vbCBp
c1VzaW5nSW5saW5lU3RvcmFnZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IHZv
aWQqPihtX3Byb3BlcnR5U3RvcmFnZS5nZXQoKSkgPT0gc3RhdGljX2Nhc3Q8Y29uc3Qgdm9pZCo+
KHRoaXMgKyAxKTsgfQorICAgICAgICB2b2lkIHNldFByb3BlcnR5U3RvcmFnZShKU0dsb2JhbERh
dGEmLCBQcm9wZXJ0eVN0b3JhZ2UsIFN0cnVjdHVyZSopOwogCiAgICAgICAgIHZvaWQqIGFkZHJl
c3NPZlByb3BlcnR5U3RvcmFnZSgpCiAgICAgICAgIHsKQEAgLTQ0Nyw2ICs0NDgsMTQgQEAgaW5s
aW5lIGJvb2wgSlNPYmplY3Q6OmlzR2xvYmFsVGhpcygpIGNvbnN0CiAgICAgcmV0dXJuIHN0cnVj
dHVyZSgpLT50eXBlSW5mbygpLnR5cGUoKSA9PSBHbG9iYWxUaGlzVHlwZTsKIH0KIAoraW5saW5l
IHZvaWQgSlNPYmplY3Q6OnNldFByb3BlcnR5U3RvcmFnZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIFByb3BlcnR5U3RvcmFnZSBzdG9yYWdlLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKK3sKKyAg
ICBBU1NFUlQoc3RvcmFnZSk7CisgICAgQVNTRVJUKHN0cnVjdHVyZSk7CisgICAgc2V0U3RydWN0
dXJlKGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7CisgICAgbV9wcm9wZXJ0eVN0b3JhZ2Uuc2V0KGds
b2JhbERhdGEsIHRoaXMsIHN0b3JhZ2UpOworfQorCiBpbmxpbmUgSlNPYmplY3QqIGNvbnN0cnVj
dEVtcHR5T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiB7CiAg
ICAgcmV0dXJuIEpTRmluYWxPYmplY3Q6OmNyZWF0ZShleGVjLCBzdHJ1Y3R1cmUpOwpAQCAtNjU4
LDEwICs2NjcsMTEgQEAgaW5saW5lIGJvb2wgSlNPYmplY3Q6OnB1dERpcmVjdEludGVybmFsKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmkKICAgICAgICAgaWYgKChtb2Rl
ID09IFB1dE1vZGVQdXQpICYmICFpc0V4dGVuc2libGUoKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgICAgICBzaXplX3QgY3VycmVudENhcGFjaXR5ID0gc3RydWN0dXJlKCktPnBy
b3BlcnR5U3RvcmFnZUNhcGFjaXR5KCk7CisgICAgICAgIFByb3BlcnR5U3RvcmFnZSBuZXdTdG9y
YWdlID0gcHJvcGVydHlTdG9yYWdlKCk7CisgICAgICAgIGlmIChzdHJ1Y3R1cmUoKS0+c2hvdWxk
R3Jvd1Byb3BlcnR5U3RvcmFnZSgpKQorICAgICAgICAgICAgbmV3U3RvcmFnZSA9IGdyb3dQcm9w
ZXJ0eVN0b3JhZ2UoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKCktPnByb3BlcnR5U3RvcmFnZUNhcGFj
aXR5KCksIHN0cnVjdHVyZSgpLT5zdWdnZXN0ZWROZXdQcm9wZXJ0eVN0b3JhZ2VTaXplKCkpOwog
ICAgICAgICBvZmZzZXQgPSBzdHJ1Y3R1cmUoKS0+YWRkUHJvcGVydHlXaXRob3V0VHJhbnNpdGlv
bihnbG9iYWxEYXRhLCBwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMsIHNwZWNpZmljRnVuY3Rpb24p
OwotICAgICAgICBpZiAoY3VycmVudENhcGFjaXR5ICE9IHN0cnVjdHVyZSgpLT5wcm9wZXJ0eVN0
b3JhZ2VDYXBhY2l0eSgpKQotICAgICAgICAgICAgYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoZ2xv
YmFsRGF0YSwgY3VycmVudENhcGFjaXR5LCBzdHJ1Y3R1cmUoKS0+cHJvcGVydHlTdG9yYWdlQ2Fw
YWNpdHkoKSk7CisgICAgICAgIHNldFByb3BlcnR5U3RvcmFnZShnbG9iYWxEYXRhLCBuZXdTdG9y
YWdlLCBzdHJ1Y3R1cmUoKSk7CiAKICAgICAgICAgQVNTRVJUKG9mZnNldCA8IHN0cnVjdHVyZSgp
LT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKTsKICAgICAgICAgcHV0RGlyZWN0T2Zmc2V0KGds
b2JhbERhdGEsIG9mZnNldCwgdmFsdWUpOwpAQCAtNjczLDEyICs2ODMsMTMgQEAgaW5saW5lIGJv
b2wgSlNPYmplY3Q6OnB1dERpcmVjdEludGVybmFsKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
Y29uc3QgSWRlbnRpZmkKIAogICAgIHNpemVfdCBvZmZzZXQ7CiAgICAgc2l6ZV90IGN1cnJlbnRD
YXBhY2l0eSA9IHN0cnVjdHVyZSgpLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpOwotICAgIGlm
IChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IFN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9u
VG9FeGlzdGluZ1N0cnVjdHVyZSh0aGlzLT5zdHJ1Y3R1cmUoKSwgcHJvcGVydHlOYW1lLCBhdHRy
aWJ1dGVzLCBzcGVjaWZpY0Z1bmN0aW9uLCBvZmZzZXQpKSB7ICAgIAorICAgIGlmIChTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSA9IFN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uVG9FeGlzdGlu
Z1N0cnVjdHVyZSh0aGlzLT5zdHJ1Y3R1cmUoKSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzLCBz
cGVjaWZpY0Z1bmN0aW9uLCBvZmZzZXQpKSB7CisgICAgICAgIFByb3BlcnR5U3RvcmFnZSBuZXdT
dG9yYWdlID0gcHJvcGVydHlTdG9yYWdlKCk7IAogICAgICAgICBpZiAoY3VycmVudENhcGFjaXR5
ICE9IHN0cnVjdHVyZS0+cHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKSkKLSAgICAgICAgICAgIGFs
bG9jYXRlUHJvcGVydHlTdG9yYWdlKGdsb2JhbERhdGEsIGN1cnJlbnRDYXBhY2l0eSwgc3RydWN0
dXJlLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKTsKKyAgICAgICAgICAgIG5ld1N0b3JhZ2Ug
PSBncm93UHJvcGVydHlTdG9yYWdlKGdsb2JhbERhdGEsIGN1cnJlbnRDYXBhY2l0eSwgc3RydWN0
dXJlLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKTsKIAogICAgICAgICBBU1NFUlQob2Zmc2V0
IDwgc3RydWN0dXJlLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKTsKLSAgICAgICAgc2V0U3Ry
dWN0dXJlKGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7CisgICAgICAgIHNldFByb3BlcnR5U3RvcmFn
ZShnbG9iYWxEYXRhLCBuZXdTdG9yYWdlLCBzdHJ1Y3R1cmUpOwogICAgICAgICBwdXREaXJlY3RP
ZmZzZXQoZ2xvYmFsRGF0YSwgb2Zmc2V0LCB2YWx1ZSk7CiAgICAgICAgIC8vIFRoaXMgaXMgYSBu
ZXcgcHJvcGVydHk7IHRyYW5zaXRpb25zIHdpdGggc3BlY2lmaWMgdmFsdWVzIGFyZSBub3QgY3Vy
cmVudGx5IGNhY2hhYmxlLAogICAgICAgICAvLyBzbyBsZWF2ZSB0aGUgc2xvdCBpbiBhbiB1bmNh
Y2hhYmxlIHN0YXRlLgpAQCAtNzIyLDEzICs3MzMsMTQgQEAgaW5saW5lIGJvb2wgSlNPYmplY3Q6
OnB1dERpcmVjdEludGVybmFsKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRp
ZmkKICAgICBpZiAoKG1vZGUgPT0gUHV0TW9kZVB1dCkgJiYgIWlzRXh0ZW5zaWJsZSgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IFN0cnVjdHVy
ZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uKGdsb2JhbERhdGEsIHRoaXMtPnN0cnVjdHVyZSgpLCBw
cm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMsIHNwZWNpZmljRnVuY3Rpb24sIG9mZnNldCk7CisgICAg
UHJvcGVydHlTdG9yYWdlIG5ld1N0b3JhZ2UgPSBwcm9wZXJ0eVN0b3JhZ2UoKTsKKyAgICBpZiAo
c3RydWN0dXJlKCktPnNob3VsZEdyb3dQcm9wZXJ0eVN0b3JhZ2UoKSkKKyAgICAgICAgbmV3U3Rv
cmFnZSA9IGdyb3dQcm9wZXJ0eVN0b3JhZ2UoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKCktPnByb3Bl
cnR5U3RvcmFnZUNhcGFjaXR5KCksIHN0cnVjdHVyZSgpLT5zdWdnZXN0ZWROZXdQcm9wZXJ0eVN0
b3JhZ2VTaXplKCkpOwogCi0gICAgaWYgKGN1cnJlbnRDYXBhY2l0eSAhPSBzdHJ1Y3R1cmUtPnBy
b3BlcnR5U3RvcmFnZUNhcGFjaXR5KCkpCi0gICAgICAgIGFsbG9jYXRlUHJvcGVydHlTdG9yYWdl
KGdsb2JhbERhdGEsIGN1cnJlbnRDYXBhY2l0eSwgc3RydWN0dXJlLT5wcm9wZXJ0eVN0b3JhZ2VD
YXBhY2l0eSgpKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IFN0cnVjdHVyZTo6YWRkUHJv
cGVydHlUcmFuc2l0aW9uKGdsb2JhbERhdGEsIHRoaXMtPnN0cnVjdHVyZSgpLCBwcm9wZXJ0eU5h
bWUsIGF0dHJpYnV0ZXMsIHNwZWNpZmljRnVuY3Rpb24sIG9mZnNldCk7CiAKICAgICBBU1NFUlQo
b2Zmc2V0IDwgc3RydWN0dXJlLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKTsKLSAgICBzZXRT
dHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKKyAgICBzZXRQcm9wZXJ0eVN0b3JhZ2Uo
Z2xvYmFsRGF0YSwgbmV3U3RvcmFnZSwgc3RydWN0dXJlKTsKICAgICBwdXREaXJlY3RPZmZzZXQo
Z2xvYmFsRGF0YSwgb2Zmc2V0LCB2YWx1ZSk7CiAgICAgLy8gVGhpcyBpcyBhIG5ldyBwcm9wZXJ0
eTsgdHJhbnNpdGlvbnMgd2l0aCBzcGVjaWZpYyB2YWx1ZXMgYXJlIG5vdCBjdXJyZW50bHkgY2Fj
aGFibGUsCiAgICAgLy8gc28gbGVhdmUgdGhlIHNsb3QgaW4gYW4gdW5jYWNoYWJsZSBzdGF0ZS4K
QEAgLTc2MiwxOCArNzc0LDIwIEBAIGlubGluZSB2b2lkIEpTT2JqZWN0OjpwdXREaXJlY3QoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wCiBpbmxpbmUgdm9p
ZCBKU09iamVjdDo6cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24oSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIHVu
c2lnbmVkIGF0dHJpYnV0ZXMpCiB7CiAgICAgQVNTRVJUKCF2YWx1ZS5pc0dldHRlclNldHRlcigp
ICYmICEoYXR0cmlidXRlcyAmIEFjY2Vzc29yKSk7Ci0gICAgc2l6ZV90IGN1cnJlbnRDYXBhY2l0
eSA9IHN0cnVjdHVyZSgpLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpOworICAgIFByb3BlcnR5
U3RvcmFnZSBuZXdTdG9yYWdlID0gcHJvcGVydHlTdG9yYWdlKCk7CisgICAgaWYgKHN0cnVjdHVy
ZSgpLT5zaG91bGRHcm93UHJvcGVydHlTdG9yYWdlKCkpCisgICAgICAgIG5ld1N0b3JhZ2UgPSBn
cm93UHJvcGVydHlTdG9yYWdlKGdsb2JhbERhdGEsIHN0cnVjdHVyZSgpLT5wcm9wZXJ0eVN0b3Jh
Z2VDYXBhY2l0eSgpLCBzdHJ1Y3R1cmUoKS0+c3VnZ2VzdGVkTmV3UHJvcGVydHlTdG9yYWdlU2l6
ZSgpKTsKICAgICBzaXplX3Qgb2Zmc2V0ID0gc3RydWN0dXJlKCktPmFkZFByb3BlcnR5V2l0aG91
dFRyYW5zaXRpb24oZ2xvYmFsRGF0YSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzLCBnZXRKU0Z1
bmN0aW9uKHZhbHVlKSk7Ci0gICAgaWYgKGN1cnJlbnRDYXBhY2l0eSAhPSBzdHJ1Y3R1cmUoKS0+
cHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKSkKLSAgICAgICAgYWxsb2NhdGVQcm9wZXJ0eVN0b3Jh
Z2UoZ2xvYmFsRGF0YSwgY3VycmVudENhcGFjaXR5LCBzdHJ1Y3R1cmUoKS0+cHJvcGVydHlTdG9y
YWdlQ2FwYWNpdHkoKSk7CisgICAgc2V0UHJvcGVydHlTdG9yYWdlKGdsb2JhbERhdGEsIG5ld1N0
b3JhZ2UsIHN0cnVjdHVyZSgpKTsKICAgICBwdXREaXJlY3RPZmZzZXQoZ2xvYmFsRGF0YSwgb2Zm
c2V0LCB2YWx1ZSk7CiB9CiAKIGlubGluZSB2b2lkIEpTT2JqZWN0Ojp0cmFuc2l0aW9uVG8oSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIG5ld1N0cnVjdHVyZSkKIHsKKyAgICBQ
cm9wZXJ0eVN0b3JhZ2UgbmV3U3RvcmFnZSA9IHByb3BlcnR5U3RvcmFnZSgpOwogICAgIGlmIChz
dHJ1Y3R1cmUoKS0+cHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKSAhPSBuZXdTdHJ1Y3R1cmUtPnBy
b3BlcnR5U3RvcmFnZUNhcGFjaXR5KCkpCi0gICAgICAgIGFsbG9jYXRlUHJvcGVydHlTdG9yYWdl
KGdsb2JhbERhdGEsIHN0cnVjdHVyZSgpLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpLCBuZXdT
dHJ1Y3R1cmUtPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCkpOwotICAgIHNldFN0cnVjdHVyZShn
bG9iYWxEYXRhLCBuZXdTdHJ1Y3R1cmUpOworICAgICAgICBuZXdTdG9yYWdlID0gZ3Jvd1Byb3Bl
cnR5U3RvcmFnZShnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUoKS0+cHJvcGVydHlTdG9yYWdlQ2FwYWNp
dHkoKSwgbmV3U3RydWN0dXJlLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKTsKKyAgICBzZXRQ
cm9wZXJ0eVN0b3JhZ2UoZ2xvYmFsRGF0YSwgbmV3U3RvcmFnZSwgbmV3U3RydWN0dXJlKTsKIH0K
IAogaW5saW5lIEpTVmFsdWUgSlNPYmplY3Q6OnRvUHJpbWl0aXZlKEV4ZWNTdGF0ZSogZXhlYywg
UHJlZmVycmVkUHJpbWl0aXZlVHlwZSBwcmVmZXJyZWRUeXBlKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKaW5kZXggODc1YzRmMTZkZjM4MGQ4N2Zi
NzFiOGE4NWVhNzQ0ZGFjYzg1Y2ZhOS4uYmZkZWNkYjUyZmY5MmIzOGNiN2Y3OWQ2MWJlYTc2NjM4
MGMwNjdmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3Bw
CkBAIC0yNjcsNiArMjY3LDEzIEBAIHZvaWQgU3RydWN0dXJlOjpncm93UHJvcGVydHlTdG9yYWdl
Q2FwYWNpdHkoKQogICAgICAgICBtX3Byb3BlcnR5U3RvcmFnZUNhcGFjaXR5ICo9IDI7CiB9CiAK
K3NpemVfdCBTdHJ1Y3R1cmU6OnN1Z2dlc3RlZE5ld1Byb3BlcnR5U3RvcmFnZVNpemUoKQorewor
ICAgIGlmIChpc1VzaW5nSW5saW5lU3RvcmFnZSgpKQorICAgICAgICByZXR1cm4gSlNPYmplY3Q6
OmJhc2VFeHRlcm5hbFN0b3JhZ2VDYXBhY2l0eTsKKyAgICByZXR1cm4gbV9wcm9wZXJ0eVN0b3Jh
Z2VDYXBhY2l0eSAqIDI7Cit9CisKIHZvaWQgU3RydWN0dXJlOjpkZXNwZWNpZnlEaWN0aW9uYXJ5
RnVuY3Rpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgU3RyaW5nSW1wbCogcmVwID0gcHJvcGVydHlOYW1lLmltcGwoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKaW5kZXggMzUyZGE5NzQy
YTYxOTczNDUxMzc3NmVjNmJjY2U3NDI4MDE2MTNmNi4uNTMyNjNhMTYzMGI5ZDA4NGRjMWVjNGY4
NTJjZTAyMzJhOGQwMTgyZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RydWN0dXJlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlLmgKQEAgLTEwMSw2ICsxMDEsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBp
c0Zyb3plbihKU0dsb2JhbERhdGEmKTsKICAgICAgICAgYm9vbCBpc0V4dGVuc2libGUoKSBjb25z
dCB7IHJldHVybiAhbV9wcmV2ZW50RXh0ZW5zaW9uczsgfQogICAgICAgICBib29sIGRpZFRyYW5z
aXRpb24oKSBjb25zdCB7IHJldHVybiBtX2RpZFRyYW5zaXRpb247IH0KKyAgICAgICAgYm9vbCBz
aG91bGRHcm93UHJvcGVydHlTdG9yYWdlKCkgeyByZXR1cm4gcHJvcGVydHlTdG9yYWdlQ2FwYWNp
dHkoKSA9PSBwcm9wZXJ0eVN0b3JhZ2VTaXplKCk7IH0KKyAgICAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgc2l6ZV90IHN1Z2dlc3RlZE5ld1Byb3BlcnR5U3RvcmFnZVNpemUoKTsgCiAKICAgICAgICAg
U3RydWN0dXJlKiBmbGF0dGVuRGljdGlvbmFyeVN0cnVjdHVyZShKU0dsb2JhbERhdGEmLCBKU09i
amVjdCopOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137121</attachid>
            <date>2012-04-13 12:04:39 -0700</date>
            <delta_ts>2012-05-16 11:48:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83839-20120413120438.patch</filename>
            <type>text/plain</type>
            <size>14155</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0MTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
ODc0ZmNiMTE4MzRhOThiZjkyYjE5NDRhZmEwZWU1MTA4OGI4NjFkLi40MTY5YzcwZWY3NDY2NTdl
ZDFmZTdjYzA0OWEwMjJkYThiY2NjMjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNyBAQAorMjAxMi0wNC0xMyAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBw
bGUuY29tPgorCisgICAgICAgIEdDIGluIHRoZSBtaWRkbGUgb2YgSlNPYmplY3Q6OmFsbG9jYXRl
UHJvcGVydHlTdG9yYWdlIGNhbiBjYXVzZSBiYWRuZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzgzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZjoKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOiBN
YWtpbmcgY2hhbmdlcyB0byB1c2UgdGhlIG5ldyByZXR1cm4gdmFsdWUgb2YgZ3Jvd1Byb3BlcnR5
U3RvcmFnZS4KKyAgICAgICAgKEpTQzo6REVGSU5FX1NUVUJfRlVOQ1RJT04pOgorICAgICAgICAq
IHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Z3Jvd1Byb3Bl
cnR5U3RvcmFnZSk6IFJlbmFtZWQgdG8gbW9yZSBhY2N1cmF0ZWx5IHJlZmxlY3QgdGhhdCB3ZSdy
ZSAKKyAgICAgICAgZ3Jvd2luZyBvdXIgYWxyZWFkeS1leGlzdGluZyBQcm9wZXJ0eVN0b3JhZ2Uu
CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgorICAgICAgICAoSlNPYmplY3QpOgorICAg
ICAgICAoSlNDOjpKU09iamVjdDo6c2V0UHJvcGVydHlTdG9yYWdlKTogIkF0b21pY2FsbHkiIHNl
dHMgdGhlIG5ldyBwcm9wZXJ0eSBzdG9yYWdlIAorICAgICAgICBhbmQgdGhlIG5ldyBzdHJ1Y3R1
cmUgc28gdGhhdCB3ZSBjYW4gYmUgc3VyZSBhIEdDIG5ldmVyIG9jY3VycyB3aGVuIG91ciBTdHJ1
Y3R1cmUKKyAgICAgICAgaW5mbyBpcyBvdXQgb2Ygc3luYyB3aXRoIG91ciBQcm9wZXJ0eVN0b3Jh
Z2UuCisgICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6cHV0RGlyZWN0SW50
ZXJuYWwpOiBNb3ZlZCB0aGUgY2hlY2sgdG8gc2VlIGlmIHdlIHNob3VsZCAKKyAgICAgICAgYWxs
b2NhdGUgbW9yZSBiYWNraW5nIHN0b3JlIGJlZm9yZSB0aGUgYWN0dWFsIHByb3BlcnR5IGluc2Vy
dGlvbiBpbnRvIAorICAgICAgICB0aGUgc3RydWN0dXJlLgorICAgICAgICAoSlNDOjpKU09iamVj
dDo6cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24pOiBEaXR0by4KKyAgICAgICAgKEpTQzo6SlNP
YmplY3Q6OnRyYW5zaXRpb25Ubyk6IERpdHRvLgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJl
LmNwcDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpzdWdnZXN0ZWROZXdQcm9wZXJ0eVN0b3Jh
Z2VTaXplKTogQWRkZWQgdG8ga2VlcCB0aGUgcmVzaXplIHBvbGljeSAKKyAgICAgICAgZm9yIHBy
b3BlcnR5IGJhY2tpbmcgc3RvcmVzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIFN0cnVjdHVyZSBjbGFz
cy4KKyAgICAgICAgKEpTQyk6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuaDoKKyAgICAg
ICAgKEpTQzo6U3RydWN0dXJlOjpzaG91bGRHcm93UHJvcGVydHlTdG9yYWdlKTogTGV0cyBjbGll
bnRzIGtub3cgaWYgYW5vdGhlciBpbnNlcnRpb24gCisgICAgICAgIGludG8gdGhlIFN0cnVjdHVy
ZSB3b3VsZCByZXF1aXJlIHJlc2l6aW5nIHRoZSBwcm9wZXJ0eSBiYWNraW5nIHN0b3JlIHNvIHRo
YXQgdGhleSBjYW4gCisgICAgICAgIHByZWFsbG9jYXRlIHRoZSByZXF1aXJlZCBzdG9yYWdlLgor
ICAgICAgICAoU3RydWN0dXJlKToKKwogMjAxMi0wNC0xMiAgQmVuamFtaW4gUG91bGFpbiAgPGJw
b3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXByb3ZlIHJlcGxhY2VVc2luZ1N0cmluZ1Nl
YXJjaCgpIGZvciBjYXNlIG9mIGEgc2luZ2xlIGNoYXJhY3RlciBzZWFyY2hWYWx1ZQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgppbmRleCA5
Yjc3OTc3ZDE4Mzg4YjBkMjAzOTdiM2Q1MzE5N2UwYTRlZGRmOTk4Li44NDgyZjNmYmU4MDViMDAx
OGFiODBmY2ViZjFmNTBlNzAzNTM4MmFhIDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRl
ZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtNjQsNyArNjQsNiBAQCBFWFBPUlRTCiAg
ICAgP2FkZFNsb3dDYXNlQElkZW50aWZpZXJASlNDQEBDQT9BVj8kUGFzc1JlZlB0ckBWU3RyaW5n
SW1wbEBXVEZAQEBXVEZAQFBBVkV4ZWNTdGF0ZUAyQFBBVlN0cmluZ0ltcGxANEBAWgogICAgID9h
ZGRTbG93Q2FzZUBJZGVudGlmaWVyQEpTQ0BAQ0E/QVY/JFBhc3NSZWZQdHJAVlN0cmluZ0ltcGxA
V1RGQEBAV1RGQEBQQVZKU0dsb2JhbERhdGFAMkBQQVZTdHJpbmdJbXBsQDRAQFoKICAgICA/YWRk
U3RhdGljR2xvYmFsc0BKU0dsb2JhbE9iamVjdEBKU0NAQElBRVhQQVVHbG9iYWxQcm9wZXJ0eUlu
Zm9AMTJASEBaCi0gICAgP2FsbG9jYXRlUHJvcGVydHlTdG9yYWdlQEpTT2JqZWN0QEpTQ0BAUUFF
WEFBVkpTR2xvYmFsRGF0YUAyQElJQFoKICAgICA/YWxsb2NhdGVTbG93Q2FzZUBNYXJrZWRBbGxv
Y2F0b3JASlNDQEBBQUVQQVhYWgogICAgID9hcHBlbmRAU3RyaW5nQnVpbGRlckBXVEZAQFFBRVhQ
QkVJQFoKICAgICA/YXBwZW5kQFN0cmluZ0J1aWxkZXJAV1RGQEBRQUVYUEJfV0lAWgpAQCAtMjIw
LDYgKzIxOSw3IEBAIEVYUE9SVFMKICAgICA/Z2xvYmFsRXhlY0BKU0dsb2JhbE9iamVjdEBKU0NA
QFFBRVBBVkV4ZWNTdGF0ZUAyQFhaCiAgICAgP2dsb2JhbE9iamVjdENvdW50QEhlYXBASlNDQEBR
QUVJWFoKICAgICA/Z3Jvd0BIYW5kbGVTZXRASlNDQEBBQUVYWFoKKyAgICA/Z3Jvd1Byb3BlcnR5
U3RvcmFnZUBKU09iamVjdEBKU0NAQFFBRVBBVj8kV3JpdGVCYXJyaWVyQmFzZUBXNFVua25vd25A
SlNDQEBAMkBBQVZKU0dsb2JhbERhdGFAMkBJSUBaCiAgICAgP2hhc0luc3RhbmNlQEpTT2JqZWN0
QEpTQ0BAU0FfTlBBVjEyQFBBVkV4ZWNTdGF0ZUAyQFZKU1ZhbHVlQDJAMkBaCiAgICAgP2hhc1By
b3BlcnR5QEpTT2JqZWN0QEpTQ0BAUUJFX05QQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJA
QFoKICAgICA/aGFzUHJvcGVydHlASlNPYmplY3RASlNDQEBRQkVfTlBBVkV4ZWNTdGF0ZUAyQElA
WgpAQCAtMzI5LDYgKzMyOSw3IEBAIEVYUE9SVFMKICAgICA/c3RvcFByb2ZpbGluZ0BQcm9maWxl
ckBKU0NAQFFBRT9BVj8kUGFzc1JlZlB0ckBWUHJvZmlsZUBKU0NAQEBXVEZAQFBBVkV4ZWNTdGF0
ZUAyQEFCVlVTdHJpbmdAMkBAWgogICAgID9zdG9wU2FtcGxpbmdASlNHbG9iYWxEYXRhQEpTQ0BA
UUFFWFhaCiAgICAgP3N1YnN0cmluZ1NoYXJpbmdJbXBsQFVTdHJpbmdASlNDQEBRQkU/QVYxMkBJ
SUBaCisgICAgP3N1Z2dlc3RlZE5ld1Byb3BlcnR5U3RvcmFnZVNpemVAU3RydWN0dXJlQEpTQ0BA
UUFFSVhaCiAgICAgP3N5bWJvbFRhYmxlR2V0QEpTVmFyaWFibGVPYmplY3RASlNDQEBJQUVfTkFC
VklkZW50aWZpZXJAMkBBQVZQcm9wZXJ0eURlc2NyaXB0b3JAMkBAWgogICAgID9zeW50aGVzaXpl
UHJvdG90eXBlQEpTVmFsdWVASlNDQEBRQkVQQVZKU09iamVjdEAyQFBBVkV4ZWNTdGF0ZUAyQEBa
CiAgICAgP3RoaXNPYmplY3RARGVidWdnZXJDYWxsRnJhbWVASlNDQEBRQkVQQVZKU09iamVjdEAy
QFhaCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCmluZGV4IDIzZWQ1Mjc4NDQ0
MWEyNTNhZTkwM2IwNzE1M2U2OTUxMDZlNjkxYjkuLjM3YjIzMzE3N2JiY2NiY2NmZTFlMWI0YTU2
YWI0OTlmMTcyOTZmMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
U3R1YnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCkBA
IC0xNDk4LDcgKzE0OTgsOSBAQCBERUZJTkVfU1RVQl9GVU5DVElPTihKU09iamVjdCosIG9wX3B1
dF9ieV9pZF90cmFuc2l0aW9uX3JlYWxsb2MpCiAKICAgICBBU1NFUlQoYmFzZVZhbHVlLmlzT2Jq
ZWN0KCkpOwogICAgIEpTT2JqZWN0KiBiYXNlID0gYXNPYmplY3QoYmFzZVZhbHVlKTsKLSAgICBi
YXNlLT5hbGxvY2F0ZVByb3BlcnR5U3RvcmFnZSgqc3RhY2tGcmFtZS5nbG9iYWxEYXRhLCBvbGRT
aXplLCBuZXdTaXplKTsKKyAgICBKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEgPSAqc3RhY2tGcmFt
ZS5nbG9iYWxEYXRhOworICAgIFByb3BlcnR5U3RvcmFnZSBuZXdTdG9yYWdlID0gYmFzZS0+Z3Jv
d1Byb3BlcnR5U3RvcmFnZShnbG9iYWxEYXRhLCBvbGRTaXplLCBuZXdTaXplKTsKKyAgICBiYXNl
LT5zZXRQcm9wZXJ0eVN0b3JhZ2UoZ2xvYmFsRGF0YSwgbmV3U3RvcmFnZSwgbmV3U3RydWN0dXJl
KTsKIAogICAgIHJldHVybiBiYXNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuY3BwCmluZGV4IDI0YTE1NTY4ZWY0NjU4YWM5M2IyY2UxNGU0YTVmOTNmYmQ2ZmM4
YzMuLjFmMTEzOGRlNTk3ZDA5ZmQ3ZDc4NjQyZGNmZGNhMDQ4MzZhZmUwYWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTU0Niw3ICs1NDYsNyBAQCBT
dHJ1Y3R1cmUqIEpTT2JqZWN0OjpjcmVhdGVJbmhlcml0b3JJRChKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEpCiAgICAgcmV0dXJuIG1faW5oZXJpdG9ySUQuZ2V0KCk7CiB9CiAKLXZvaWQgSlNPYmpl
Y3Q6OmFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgc2l6
ZV90IG9sZFNpemUsIHNpemVfdCBuZXdTaXplKQorUHJvcGVydHlTdG9yYWdlIEpTT2JqZWN0Ojpn
cm93UHJvcGVydHlTdG9yYWdlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgc2l6ZV90IG9sZFNp
emUsIHNpemVfdCBuZXdTaXplKQogewogICAgIEFTU0VSVChuZXdTaXplID4gb2xkU2l6ZSk7CiAK
QEAgLTU3NCw3ICs1NzQsNyBAQCB2b2lkIEpTT2JqZWN0OjphbGxvY2F0ZVByb3BlcnR5U3RvcmFn
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIHNpemVfdCBvbGRTaXplLAogICAgIH0KIAogICAg
IEFTU0VSVChuZXdQcm9wZXJ0eVN0b3JhZ2UpOwotICAgIG1fcHJvcGVydHlTdG9yYWdlLnNldChn
bG9iYWxEYXRhLCB0aGlzLCBuZXdQcm9wZXJ0eVN0b3JhZ2UpOworICAgIHJldHVybiBuZXdQcm9w
ZXJ0eVN0b3JhZ2U7CiB9CiAKIGJvb2wgSlNPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggNDE2YTZhYjViODMyYjhjZTdkNWU1YzZj
ZjE2YjdjNWJlNDM5NzYyOC4uYjVjMDI3MWEyZTYwMzEzMjI3MWZjNzI1MDM5NzY4NmE2ZTlhZDg5
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0yMTIsOCAr
MjEyLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJvb2wgc3RhdGljRnVuY3Rpb25zUmVp
ZmllZCgpIHsgcmV0dXJuIHN0cnVjdHVyZSgpLT5zdGF0aWNGdW5jdGlvbnNSZWlmaWVkKCk7IH0K
ICAgICAgICAgdm9pZCByZWlmeVN0YXRpY0Z1bmN0aW9uc0ZvckRlbGV0ZShFeGVjU3RhdGUqIGV4
ZWMpOwogCi0gICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgYWxsb2NhdGVQcm9wZXJ0eVN0
b3JhZ2UoSlNHbG9iYWxEYXRhJiwgc2l6ZV90IG9sZFNpemUsIHNpemVfdCBuZXdTaXplKTsKKyAg
ICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgUHJvcGVydHlTdG9yYWdlIGdyb3dQcm9wZXJ0eVN0b3Jh
Z2UoSlNHbG9iYWxEYXRhJiwgc2l6ZV90IG9sZFNpemUsIHNpemVfdCBuZXdTaXplKTsKICAgICAg
ICAgYm9vbCBpc1VzaW5nSW5saW5lU3RvcmFnZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0
PGNvbnN0IHZvaWQqPihtX3Byb3BlcnR5U3RvcmFnZS5nZXQoKSkgPT0gc3RhdGljX2Nhc3Q8Y29u
c3Qgdm9pZCo+KHRoaXMgKyAxKTsgfQorICAgICAgICB2b2lkIHNldFByb3BlcnR5U3RvcmFnZShK
U0dsb2JhbERhdGEmLCBQcm9wZXJ0eVN0b3JhZ2UsIFN0cnVjdHVyZSopOwogCiAgICAgICAgIHZv
aWQqIGFkZHJlc3NPZlByb3BlcnR5U3RvcmFnZSgpCiAgICAgICAgIHsKQEAgLTQ0Nyw2ICs0NDgs
MTQgQEAgaW5saW5lIGJvb2wgSlNPYmplY3Q6OmlzR2xvYmFsVGhpcygpIGNvbnN0CiAgICAgcmV0
dXJuIHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLnR5cGUoKSA9PSBHbG9iYWxUaGlzVHlwZTsKIH0K
IAoraW5saW5lIHZvaWQgSlNPYmplY3Q6OnNldFByb3BlcnR5U3RvcmFnZShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIFByb3BlcnR5U3RvcmFnZSBzdG9yYWdlLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKK3sKKyAgICBBU1NFUlQoc3RvcmFnZSk7CisgICAgQVNTRVJUKHN0cnVjdHVyZSk7CisgICAg
c2V0U3RydWN0dXJlKGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7CisgICAgbV9wcm9wZXJ0eVN0b3Jh
Z2Uuc2V0KGdsb2JhbERhdGEsIHRoaXMsIHN0b3JhZ2UpOworfQorCiBpbmxpbmUgSlNPYmplY3Qq
IGNvbnN0cnVjdEVtcHR5T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCiB7CiAgICAgcmV0dXJuIEpTRmluYWxPYmplY3Q6OmNyZWF0ZShleGVjLCBzdHJ1Y3R1cmUp
OwpAQCAtNjU4LDEwICs2NjcsMTEgQEAgaW5saW5lIGJvb2wgSlNPYmplY3Q6OnB1dERpcmVjdElu
dGVybmFsKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmkKICAgICAgICAg
aWYgKChtb2RlID09IFB1dE1vZGVQdXQpICYmICFpc0V4dGVuc2libGUoKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgICAgICBzaXplX3QgY3VycmVudENhcGFjaXR5ID0gc3RydWN0
dXJlKCktPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCk7CisgICAgICAgIFByb3BlcnR5U3RvcmFn
ZSBuZXdTdG9yYWdlID0gcHJvcGVydHlTdG9yYWdlKCk7CisgICAgICAgIGlmIChzdHJ1Y3R1cmUo
KS0+c2hvdWxkR3Jvd1Byb3BlcnR5U3RvcmFnZSgpKQorICAgICAgICAgICAgbmV3U3RvcmFnZSA9
IGdyb3dQcm9wZXJ0eVN0b3JhZ2UoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKCktPnByb3BlcnR5U3Rv
cmFnZUNhcGFjaXR5KCksIHN0cnVjdHVyZSgpLT5zdWdnZXN0ZWROZXdQcm9wZXJ0eVN0b3JhZ2VT
aXplKCkpOwogICAgICAgICBvZmZzZXQgPSBzdHJ1Y3R1cmUoKS0+YWRkUHJvcGVydHlXaXRob3V0
VHJhbnNpdGlvbihnbG9iYWxEYXRhLCBwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMsIHNwZWNpZmlj
RnVuY3Rpb24pOwotICAgICAgICBpZiAoY3VycmVudENhcGFjaXR5ICE9IHN0cnVjdHVyZSgpLT5w
cm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKQotICAgICAgICAgICAgYWxsb2NhdGVQcm9wZXJ0eVN0
b3JhZ2UoZ2xvYmFsRGF0YSwgY3VycmVudENhcGFjaXR5LCBzdHJ1Y3R1cmUoKS0+cHJvcGVydHlT
dG9yYWdlQ2FwYWNpdHkoKSk7CisgICAgICAgIHNldFByb3BlcnR5U3RvcmFnZShnbG9iYWxEYXRh
LCBuZXdTdG9yYWdlLCBzdHJ1Y3R1cmUoKSk7CiAKICAgICAgICAgQVNTRVJUKG9mZnNldCA8IHN0
cnVjdHVyZSgpLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKTsKICAgICAgICAgcHV0RGlyZWN0
T2Zmc2V0KGdsb2JhbERhdGEsIG9mZnNldCwgdmFsdWUpOwpAQCAtNjczLDEyICs2ODMsMTMgQEAg
aW5saW5lIGJvb2wgSlNPYmplY3Q6OnB1dERpcmVjdEludGVybmFsKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgY29uc3QgSWRlbnRpZmkKIAogICAgIHNpemVfdCBvZmZzZXQ7CiAgICAgc2l6ZV90
IGN1cnJlbnRDYXBhY2l0eSA9IHN0cnVjdHVyZSgpLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgp
OwotICAgIGlmIChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IFN0cnVjdHVyZTo6YWRkUHJvcGVydHlU
cmFuc2l0aW9uVG9FeGlzdGluZ1N0cnVjdHVyZSh0aGlzLT5zdHJ1Y3R1cmUoKSwgcHJvcGVydHlO
YW1lLCBhdHRyaWJ1dGVzLCBzcGVjaWZpY0Z1bmN0aW9uLCBvZmZzZXQpKSB7ICAgIAorICAgIGlm
IChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IFN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9u
VG9FeGlzdGluZ1N0cnVjdHVyZSh0aGlzLT5zdHJ1Y3R1cmUoKSwgcHJvcGVydHlOYW1lLCBhdHRy
aWJ1dGVzLCBzcGVjaWZpY0Z1bmN0aW9uLCBvZmZzZXQpKSB7CisgICAgICAgIFByb3BlcnR5U3Rv
cmFnZSBuZXdTdG9yYWdlID0gcHJvcGVydHlTdG9yYWdlKCk7IAogICAgICAgICBpZiAoY3VycmVu
dENhcGFjaXR5ICE9IHN0cnVjdHVyZS0+cHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKSkKLSAgICAg
ICAgICAgIGFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKGdsb2JhbERhdGEsIGN1cnJlbnRDYXBhY2l0
eSwgc3RydWN0dXJlLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKTsKKyAgICAgICAgICAgIG5l
d1N0b3JhZ2UgPSBncm93UHJvcGVydHlTdG9yYWdlKGdsb2JhbERhdGEsIGN1cnJlbnRDYXBhY2l0
eSwgc3RydWN0dXJlLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKTsKIAogICAgICAgICBBU1NF
UlQob2Zmc2V0IDwgc3RydWN0dXJlLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKTsKLSAgICAg
ICAgc2V0U3RydWN0dXJlKGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7CisgICAgICAgIHNldFByb3Bl
cnR5U3RvcmFnZShnbG9iYWxEYXRhLCBuZXdTdG9yYWdlLCBzdHJ1Y3R1cmUpOwogICAgICAgICBw
dXREaXJlY3RPZmZzZXQoZ2xvYmFsRGF0YSwgb2Zmc2V0LCB2YWx1ZSk7CiAgICAgICAgIC8vIFRo
aXMgaXMgYSBuZXcgcHJvcGVydHk7IHRyYW5zaXRpb25zIHdpdGggc3BlY2lmaWMgdmFsdWVzIGFy
ZSBub3QgY3VycmVudGx5IGNhY2hhYmxlLAogICAgICAgICAvLyBzbyBsZWF2ZSB0aGUgc2xvdCBp
biBhbiB1bmNhY2hhYmxlIHN0YXRlLgpAQCAtNzIyLDEzICs3MzMsMTQgQEAgaW5saW5lIGJvb2wg
SlNPYmplY3Q6OnB1dERpcmVjdEludGVybmFsKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29u
c3QgSWRlbnRpZmkKICAgICBpZiAoKG1vZGUgPT0gUHV0TW9kZVB1dCkgJiYgIWlzRXh0ZW5zaWJs
ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9
IFN0cnVjdHVyZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uKGdsb2JhbERhdGEsIHRoaXMtPnN0cnVj
dHVyZSgpLCBwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMsIHNwZWNpZmljRnVuY3Rpb24sIG9mZnNl
dCk7CisgICAgUHJvcGVydHlTdG9yYWdlIG5ld1N0b3JhZ2UgPSBwcm9wZXJ0eVN0b3JhZ2UoKTsK
KyAgICBpZiAoc3RydWN0dXJlKCktPnNob3VsZEdyb3dQcm9wZXJ0eVN0b3JhZ2UoKSkKKyAgICAg
ICAgbmV3U3RvcmFnZSA9IGdyb3dQcm9wZXJ0eVN0b3JhZ2UoZ2xvYmFsRGF0YSwgc3RydWN0dXJl
KCktPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCksIHN0cnVjdHVyZSgpLT5zdWdnZXN0ZWROZXdQ
cm9wZXJ0eVN0b3JhZ2VTaXplKCkpOwogCi0gICAgaWYgKGN1cnJlbnRDYXBhY2l0eSAhPSBzdHJ1
Y3R1cmUtPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCkpCi0gICAgICAgIGFsbG9jYXRlUHJvcGVy
dHlTdG9yYWdlKGdsb2JhbERhdGEsIGN1cnJlbnRDYXBhY2l0eSwgc3RydWN0dXJlLT5wcm9wZXJ0
eVN0b3JhZ2VDYXBhY2l0eSgpKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IFN0cnVjdHVy
ZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uKGdsb2JhbERhdGEsIHRoaXMtPnN0cnVjdHVyZSgpLCBw
cm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMsIHNwZWNpZmljRnVuY3Rpb24sIG9mZnNldCk7CiAKICAg
ICBBU1NFUlQob2Zmc2V0IDwgc3RydWN0dXJlLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKTsK
LSAgICBzZXRTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKKyAgICBzZXRQcm9wZXJ0
eVN0b3JhZ2UoZ2xvYmFsRGF0YSwgbmV3U3RvcmFnZSwgc3RydWN0dXJlKTsKICAgICBwdXREaXJl
Y3RPZmZzZXQoZ2xvYmFsRGF0YSwgb2Zmc2V0LCB2YWx1ZSk7CiAgICAgLy8gVGhpcyBpcyBhIG5l
dyBwcm9wZXJ0eTsgdHJhbnNpdGlvbnMgd2l0aCBzcGVjaWZpYyB2YWx1ZXMgYXJlIG5vdCBjdXJy
ZW50bHkgY2FjaGFibGUsCiAgICAgLy8gc28gbGVhdmUgdGhlIHNsb3QgaW4gYW4gdW5jYWNoYWJs
ZSBzdGF0ZS4KQEAgLTc2MiwxOCArNzc0LDIwIEBAIGlubGluZSB2b2lkIEpTT2JqZWN0OjpwdXRE
aXJlY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wCiBp
bmxpbmUgdm9pZCBKU09iamVjdDo6cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24oSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUg
dmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCiB7CiAgICAgQVNTRVJUKCF2YWx1ZS5pc0dldHRl
clNldHRlcigpICYmICEoYXR0cmlidXRlcyAmIEFjY2Vzc29yKSk7Ci0gICAgc2l6ZV90IGN1cnJl
bnRDYXBhY2l0eSA9IHN0cnVjdHVyZSgpLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpOworICAg
IFByb3BlcnR5U3RvcmFnZSBuZXdTdG9yYWdlID0gcHJvcGVydHlTdG9yYWdlKCk7CisgICAgaWYg
KHN0cnVjdHVyZSgpLT5zaG91bGRHcm93UHJvcGVydHlTdG9yYWdlKCkpCisgICAgICAgIG5ld1N0
b3JhZ2UgPSBncm93UHJvcGVydHlTdG9yYWdlKGdsb2JhbERhdGEsIHN0cnVjdHVyZSgpLT5wcm9w
ZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpLCBzdHJ1Y3R1cmUoKS0+c3VnZ2VzdGVkTmV3UHJvcGVydHlT
dG9yYWdlU2l6ZSgpKTsKICAgICBzaXplX3Qgb2Zmc2V0ID0gc3RydWN0dXJlKCktPmFkZFByb3Bl
cnR5V2l0aG91dFRyYW5zaXRpb24oZ2xvYmFsRGF0YSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVz
LCBnZXRKU0Z1bmN0aW9uKHZhbHVlKSk7Ci0gICAgaWYgKGN1cnJlbnRDYXBhY2l0eSAhPSBzdHJ1
Y3R1cmUoKS0+cHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKSkKLSAgICAgICAgYWxsb2NhdGVQcm9w
ZXJ0eVN0b3JhZ2UoZ2xvYmFsRGF0YSwgY3VycmVudENhcGFjaXR5LCBzdHJ1Y3R1cmUoKS0+cHJv
cGVydHlTdG9yYWdlQ2FwYWNpdHkoKSk7CisgICAgc2V0UHJvcGVydHlTdG9yYWdlKGdsb2JhbERh
dGEsIG5ld1N0b3JhZ2UsIHN0cnVjdHVyZSgpKTsKICAgICBwdXREaXJlY3RPZmZzZXQoZ2xvYmFs
RGF0YSwgb2Zmc2V0LCB2YWx1ZSk7CiB9CiAKIGlubGluZSB2b2lkIEpTT2JqZWN0Ojp0cmFuc2l0
aW9uVG8oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIG5ld1N0cnVjdHVyZSkK
IHsKKyAgICBQcm9wZXJ0eVN0b3JhZ2UgbmV3U3RvcmFnZSA9IHByb3BlcnR5U3RvcmFnZSgpOwog
ICAgIGlmIChzdHJ1Y3R1cmUoKS0+cHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKSAhPSBuZXdTdHJ1
Y3R1cmUtPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCkpCi0gICAgICAgIGFsbG9jYXRlUHJvcGVy
dHlTdG9yYWdlKGdsb2JhbERhdGEsIHN0cnVjdHVyZSgpLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0
eSgpLCBuZXdTdHJ1Y3R1cmUtPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCkpOwotICAgIHNldFN0
cnVjdHVyZShnbG9iYWxEYXRhLCBuZXdTdHJ1Y3R1cmUpOworICAgICAgICBuZXdTdG9yYWdlID0g
Z3Jvd1Byb3BlcnR5U3RvcmFnZShnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUoKS0+cHJvcGVydHlTdG9y
YWdlQ2FwYWNpdHkoKSwgbmV3U3RydWN0dXJlLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKTsK
KyAgICBzZXRQcm9wZXJ0eVN0b3JhZ2UoZ2xvYmFsRGF0YSwgbmV3U3RvcmFnZSwgbmV3U3RydWN0
dXJlKTsKIH0KIAogaW5saW5lIEpTVmFsdWUgSlNPYmplY3Q6OnRvUHJpbWl0aXZlKEV4ZWNTdGF0
ZSogZXhlYywgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSBwcmVmZXJyZWRUeXBlKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKaW5kZXggODc1YzRmMTZk
ZjM4MGQ4N2ZiNzFiOGE4NWVhNzQ0ZGFjYzg1Y2ZhOS4uYmZkZWNkYjUyZmY5MmIzOGNiN2Y3OWQ2
MWJlYTc2NjM4MGMwNjdmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RydWN0dXJlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1
Y3R1cmUuY3BwCkBAIC0yNjcsNiArMjY3LDEzIEBAIHZvaWQgU3RydWN0dXJlOjpncm93UHJvcGVy
dHlTdG9yYWdlQ2FwYWNpdHkoKQogICAgICAgICBtX3Byb3BlcnR5U3RvcmFnZUNhcGFjaXR5ICo9
IDI7CiB9CiAKK3NpemVfdCBTdHJ1Y3R1cmU6OnN1Z2dlc3RlZE5ld1Byb3BlcnR5U3RvcmFnZVNp
emUoKQoreworICAgIGlmIChpc1VzaW5nSW5saW5lU3RvcmFnZSgpKQorICAgICAgICByZXR1cm4g
SlNPYmplY3Q6OmJhc2VFeHRlcm5hbFN0b3JhZ2VDYXBhY2l0eTsKKyAgICByZXR1cm4gbV9wcm9w
ZXJ0eVN0b3JhZ2VDYXBhY2l0eSAqIDI7Cit9CisKIHZvaWQgU3RydWN0dXJlOjpkZXNwZWNpZnlE
aWN0aW9uYXJ5RnVuY3Rpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgU3RyaW5nSW1wbCogcmVwID0gcHJvcGVydHlOYW1l
LmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVj
dHVyZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKaW5kZXgg
MzUyZGE5NzQyYTYxOTczNDUxMzc3NmVjNmJjY2U3NDI4MDE2MTNmNi4uNTMyNjNhMTYzMGI5ZDA4
NGRjMWVjNGY4NTJjZTAyMzJhOGQwMTgyZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RydWN0dXJlLmgKQEAgLTEwMSw2ICsxMDEsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgYm9vbCBpc0Zyb3plbihKU0dsb2JhbERhdGEmKTsKICAgICAgICAgYm9vbCBpc0V4dGVuc2li
bGUoKSBjb25zdCB7IHJldHVybiAhbV9wcmV2ZW50RXh0ZW5zaW9uczsgfQogICAgICAgICBib29s
IGRpZFRyYW5zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2RpZFRyYW5zaXRpb247IH0KKyAgICAg
ICAgYm9vbCBzaG91bGRHcm93UHJvcGVydHlTdG9yYWdlKCkgeyByZXR1cm4gcHJvcGVydHlTdG9y
YWdlQ2FwYWNpdHkoKSA9PSBwcm9wZXJ0eVN0b3JhZ2VTaXplKCk7IH0KKyAgICAgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgc2l6ZV90IHN1Z2dlc3RlZE5ld1Byb3BlcnR5U3RvcmFnZVNpemUoKTsgCiAK
ICAgICAgICAgU3RydWN0dXJlKiBmbGF0dGVuRGljdGlvbmFyeVN0cnVjdHVyZShKU0dsb2JhbERh
dGEmLCBKU09iamVjdCopOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142313</attachid>
            <date>2012-05-16 11:48:19 -0700</date>
            <delta_ts>2012-05-16 14:04:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83839-20120516114817.patch</filename>
            <type>text/plain</type>
            <size>13463</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTE3MzA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBA
CisyMDEyLTA1LTE2ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgR0MgaW4gdGhlIG1pZGRsZSBvZiBKU09iamVjdDo6YWxsb2NhdGVQcm9wZXJ0eVN0
b3JhZ2UgY2FuIGNhdXNlIGJhZG5lc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTgzODM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZGVmOgorICAgICAgICAqIGppdC9KSVRTdHVicy5jcHA6IE1ha2luZyBjaGFu
Z2VzIHRvIHVzZSB0aGUgbmV3IHJldHVybiB2YWx1ZSBvZiBncm93UHJvcGVydHlTdG9yYWdlLgor
ICAgICAgICAoSlNDOjpERUZJTkVfU1RVQl9GVU5DVElPTik6CisgICAgICAgICogcnVudGltZS9K
U09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0Ojpncm93UHJvcGVydHlTdG9yYWdl
KTogUmVuYW1lZCB0byBtb3JlIGFjY3VyYXRlbHkgcmVmbGVjdCB0aGF0IHdlJ3JlIAorICAgICAg
ICBncm93aW5nIG91ciBhbHJlYWR5LWV4aXN0aW5nIFByb3BlcnR5U3RvcmFnZS4KKyAgICAgICAg
KiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChKU09iamVjdCk6CisgICAgICAgIChKU0M6
OkpTT2JqZWN0OjpzZXRQcm9wZXJ0eVN0b3JhZ2UpOiAiQXRvbWljYWxseSIgc2V0cyB0aGUgbmV3
IHByb3BlcnR5IHN0b3JhZ2UgCisgICAgICAgIGFuZCB0aGUgbmV3IHN0cnVjdHVyZSBzbyB0aGF0
IHdlIGNhbiBiZSBzdXJlIGEgR0MgbmV2ZXIgb2NjdXJzIHdoZW4gb3VyIFN0cnVjdHVyZQorICAg
ICAgICBpbmZvIGlzIG91dCBvZiBzeW5jIHdpdGggb3VyIFByb3BlcnR5U3RvcmFnZS4KKyAgICAg
ICAgKEpTQyk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXREaXJlY3RJbnRlcm5hbCk6IE1v
dmVkIHRoZSBjaGVjayB0byBzZWUgaWYgd2Ugc2hvdWxkIAorICAgICAgICBhbGxvY2F0ZSBtb3Jl
IGJhY2tpbmcgc3RvcmUgYmVmb3JlIHRoZSBhY3R1YWwgcHJvcGVydHkgaW5zZXJ0aW9uIGludG8g
CisgICAgICAgIHRoZSBzdHJ1Y3R1cmUuCisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXREaXJl
Y3RXaXRob3V0VHJhbnNpdGlvbik6IERpdHRvLgorICAgICAgICAoSlNDOjpKU09iamVjdDo6dHJh
bnNpdGlvblRvKTogRGl0dG8uCisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuY3BwOgorICAg
ICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnN1Z2dlc3RlZE5ld1Byb3BlcnR5U3RvcmFnZVNpemUpOiBB
ZGRlZCB0byBrZWVwIHRoZSByZXNpemUgcG9saWN5IAorICAgICAgICBmb3IgcHJvcGVydHkgYmFj
a2luZyBzdG9yZXMgY29udGFpbmVkIHdpdGhpbiB0aGUgU3RydWN0dXJlIGNsYXNzLgorICAgICAg
ICAoSlNDKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5oOgorICAgICAgICAoSlNDOjpT
dHJ1Y3R1cmU6OnNob3VsZEdyb3dQcm9wZXJ0eVN0b3JhZ2UpOiBMZXRzIGNsaWVudHMga25vdyBp
ZiBhbm90aGVyIGluc2VydGlvbiAKKyAgICAgICAgaW50byB0aGUgU3RydWN0dXJlIHdvdWxkIHJl
cXVpcmUgcmVzaXppbmcgdGhlIHByb3BlcnR5IGJhY2tpbmcgc3RvcmUgc28gdGhhdCB0aGV5IGNh
biAKKyAgICAgICAgcHJlYWxsb2NhdGUgdGhlIHJlcXVpcmVkIHN0b3JhZ2UuCisgICAgICAgIChT
dHJ1Y3R1cmUpOgorCiAyMDEyLTA1LTE1ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0Bh
cHBsZS5jb20+CiAKICAgICAgICAgQmxvY2sgZnJlZWluZyB0aHJlYWQgc2hvdWxkIG5vdCBmcmVl
IGJsb2NrcyB3aGVuIHdlIGFyZSBhY3RpdmVseSByZXF1ZXN0aW5nIHRoZW0KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZGVmCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCShyZXZp
c2lvbiAxMTczMDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNw
cm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgkod29ya2luZyBjb3B5KQpAQCAt
NjIsNyArNjIsNiBAQCBFWFBPUlRTCiAgICAgP2FkZFNsb3dDYXNlQElkZW50aWZpZXJASlNDQEBD
QT9BVj8kUGFzc1JlZlB0ckBWU3RyaW5nSW1wbEBXVEZAQEBXVEZAQFBBVkV4ZWNTdGF0ZUAyQFBB
VlN0cmluZ0ltcGxANEBAWgogICAgID9hZGRTbG93Q2FzZUBJZGVudGlmaWVyQEpTQ0BAQ0E/QVY/
JFBhc3NSZWZQdHJAVlN0cmluZ0ltcGxAV1RGQEBAV1RGQEBQQVZKU0dsb2JhbERhdGFAMkBQQVZT
dHJpbmdJbXBsQDRAQFoKICAgICA/YWRkU3RhdGljR2xvYmFsc0BKU0dsb2JhbE9iamVjdEBKU0NA
QElBRVhQQVVHbG9iYWxQcm9wZXJ0eUluZm9AMTJASEBaCi0gICAgP2FsbG9jYXRlUHJvcGVydHlT
dG9yYWdlQEpTT2JqZWN0QEpTQ0BAUUFFWEFBVkpTR2xvYmFsRGF0YUAyQElJQFoKICAgICA/YWxs
b2NhdGVTbG93Q2FzZUBNYXJrZWRBbGxvY2F0b3JASlNDQEBBQUVQQVhYWgogICAgID9hcHBlbmRA
U3RyaW5nQnVpbGRlckBXVEZAQFFBRVhQQkVJQFoKICAgICA/YXBwZW5kQFN0cmluZ0J1aWxkZXJA
V1RGQEBRQUVYUEJfV0lAWgpAQCAtMjA4LDYgKzIwNyw3IEBAIEVYUE9SVFMKICAgICA/Z2xvYmFs
RXhlY0BKU0dsb2JhbE9iamVjdEBKU0NAQFFBRVBBVkV4ZWNTdGF0ZUAyQFhaCiAgICAgP2dsb2Jh
bE9iamVjdENvdW50QEhlYXBASlNDQEBRQUVJWFoKICAgICA/Z3Jvd0BIYW5kbGVTZXRASlNDQEBB
QUVYWFoKKyAgICA/Z3Jvd1Byb3BlcnR5U3RvcmFnZUBKU09iamVjdEBKU0NAQFFBRVBBVj8kV3Jp
dGVCYXJyaWVyQmFzZUBXNFVua25vd25ASlNDQEBAMkBBQVZKU0dsb2JhbERhdGFAMkBJSUBaCiAg
ICAgP2hhc0luc3RhbmNlQEpTT2JqZWN0QEpTQ0BAU0FfTlBBVjEyQFBBVkV4ZWNTdGF0ZUAyQFZK
U1ZhbHVlQDJAMkBaCiAgICAgP2hhc1Byb3BlcnR5QEpTT2JqZWN0QEpTQ0BAUUJFX05QQVZFeGVj
U3RhdGVAMkBJQFoKICAgICA/aGFzUHJvcGVydHlASlNPYmplY3RASlNDQEBRQkVfTlBBVkV4ZWNT
dGF0ZUAyQFZQcm9wZXJ0eU5hbWVAMkBAWgpAQCAtMzE5LDYgKzMxOSw3IEBAIEVYUE9SVFMKICAg
ICA/c3RvcFByb2ZpbGluZ0BQcm9maWxlckBKU0NAQFFBRT9BVj8kUGFzc1JlZlB0ckBWUHJvZmls
ZUBKU0NAQEBXVEZAQFBBVkV4ZWNTdGF0ZUAyQEFCVlVTdHJpbmdAMkBAWgogICAgID9zdG9wU2Ft
cGxpbmdASlNHbG9iYWxEYXRhQEpTQ0BAUUFFWFhaCiAgICAgP3N1YnN0cmluZ1NoYXJpbmdJbXBs
QFVTdHJpbmdASlNDQEBRQkU/QVYxMkBJSUBaCisgICAgP3N1Z2dlc3RlZE5ld1Byb3BlcnR5U3Rv
cmFnZVNpemVAU3RydWN0dXJlQEpTQ0BAUUFFSVhaCiAgICAgP3N5bnRoZXNpemVQcm90b3R5cGVA
SlNWYWx1ZUBKU0NAQFFCRVBBVkpTT2JqZWN0QDJAUEFWRXhlY1N0YXRlQDJAQFoKICAgICA/dGhp
c09iamVjdEBEZWJ1Z2dlckNhbGxGcmFtZUBKU0NAQFFCRVBBVkpTT2JqZWN0QDJAWFoKICAgICA/
dGhyb3dFcnJvckBKU0NAQFlBP0FWSlNWYWx1ZUAxQFBBVkV4ZWNTdGF0ZUAxQFYyMUBAWgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHJldmlzaW9uIDExNzMwNCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNDkyLDcgKzE0OTIsOSBAQCBERUZJTkVfU1RVQl9GVU5DVElPTihKU09iamVjdCosIG9w
X3B1dF9iCiAKICAgICBBU1NFUlQoYmFzZVZhbHVlLmlzT2JqZWN0KCkpOwogICAgIEpTT2JqZWN0
KiBiYXNlID0gYXNPYmplY3QoYmFzZVZhbHVlKTsKLSAgICBiYXNlLT5hbGxvY2F0ZVByb3BlcnR5
U3RvcmFnZSgqc3RhY2tGcmFtZS5nbG9iYWxEYXRhLCBvbGRTaXplLCBuZXdTaXplKTsKKyAgICBK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEgPSAqc3RhY2tGcmFtZS5nbG9iYWxEYXRhOworICAgIFBy
b3BlcnR5U3RvcmFnZSBuZXdTdG9yYWdlID0gYmFzZS0+Z3Jvd1Byb3BlcnR5U3RvcmFnZShnbG9i
YWxEYXRhLCBvbGRTaXplLCBuZXdTaXplKTsKKyAgICBiYXNlLT5zZXRQcm9wZXJ0eVN0b3JhZ2Uo
Z2xvYmFsRGF0YSwgbmV3U3RvcmFnZSwgbmV3U3RydWN0dXJlKTsKIAogICAgIHJldHVybiBiYXNl
OwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAko
cmV2aXNpb24gMTE3MzA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmpl
Y3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NTIsNyArNTUyLDcgQEAgU3RydWN0dXJlKiBKU09i
amVjdDo6Y3JlYXRlSW5oZXJpdG9ySUQoSgogICAgIHJldHVybiBtX2luaGVyaXRvcklELmdldCgp
OwogfQogCi12b2lkIEpTT2JqZWN0OjphbGxvY2F0ZVByb3BlcnR5U3RvcmFnZShKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIHNpemVfdCBvbGRTaXplLCBzaXplX3QgbmV3U2l6ZSkKK1Byb3BlcnR5
U3RvcmFnZSBKU09iamVjdDo6Z3Jvd1Byb3BlcnR5U3RvcmFnZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIHNpemVfdCBvbGRTaXplLCBzaXplX3QgbmV3U2l6ZSkKIHsKICAgICBBU1NFUlQobmV3
U2l6ZSA+IG9sZFNpemUpOwogCkBAIC01ODAsNyArNTgwLDcgQEAgdm9pZCBKU09iamVjdDo6YWxs
b2NhdGVQcm9wZXJ0eVN0b3JhZ2UoSgogICAgIH0KIAogICAgIEFTU0VSVChuZXdQcm9wZXJ0eVN0
b3JhZ2UpOwotICAgIG1fcHJvcGVydHlTdG9yYWdlLnNldChnbG9iYWxEYXRhLCB0aGlzLCBuZXdQ
cm9wZXJ0eVN0b3JhZ2UpOworICAgIHJldHVybiBuZXdQcm9wZXJ0eVN0b3JhZ2U7CiB9CiAKIGJv
b2wgSlNPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0LCBF
eGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3Jp
cHRvciYgZGVzY3JpcHRvcikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3QuaAkocmV2aXNpb24gMTE3MzA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjEyLDggKzIxMiw5IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBib29sIHN0YXRpY0Z1bmN0aW9uc1JlaWZpZWQoKSB7IHJldHVybiBz
dHJ1Y3R1cmUoKS0+c3RhdGljRnVuY3Rpb25zUmVpZmllZCgpOyB9CiAgICAgICAgIHZvaWQgcmVp
ZnlTdGF0aWNGdW5jdGlvbnNGb3JEZWxldGUoRXhlY1N0YXRlKiBleGVjKTsKIAotICAgICAgICBK
U19FWFBPUlRfUFJJVkFURSB2b2lkIGFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKEpTR2xvYmFsRGF0
YSYsIHNpemVfdCBvbGRTaXplLCBzaXplX3QgbmV3U2l6ZSk7CisgICAgICAgIEpTX0VYUE9SVF9Q
UklWQVRFIFByb3BlcnR5U3RvcmFnZSBncm93UHJvcGVydHlTdG9yYWdlKEpTR2xvYmFsRGF0YSYs
IHNpemVfdCBvbGRTaXplLCBzaXplX3QgbmV3U2l6ZSk7CiAgICAgICAgIGJvb2wgaXNVc2luZ0lu
bGluZVN0b3JhZ2UoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCB2b2lkKj4obV9w
cm9wZXJ0eVN0b3JhZ2UuZ2V0KCkpID09IHN0YXRpY19jYXN0PGNvbnN0IHZvaWQqPih0aGlzICsg
MSk7IH0KKyAgICAgICAgdm9pZCBzZXRQcm9wZXJ0eVN0b3JhZ2UoSlNHbG9iYWxEYXRhJiwgUHJv
cGVydHlTdG9yYWdlLCBTdHJ1Y3R1cmUqKTsKIAogICAgICAgICB2b2lkKiBhZGRyZXNzT2ZQcm9w
ZXJ0eVN0b3JhZ2UoKQogICAgICAgICB7CkBAIC00NTIsNiArNDUzLDE0IEBAIGlubGluZSBib29s
IEpTT2JqZWN0Ojppc0dsb2JhbFRoaXMoKSBjb24KICAgICByZXR1cm4gc3RydWN0dXJlKCktPnR5
cGVJbmZvKCkudHlwZSgpID09IEdsb2JhbFRoaXNUeXBlOwogfQogCitpbmxpbmUgdm9pZCBKU09i
amVjdDo6c2V0UHJvcGVydHlTdG9yYWdlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgUHJvcGVy
dHlTdG9yYWdlIHN0b3JhZ2UsIFN0cnVjdHVyZSogc3RydWN0dXJlKQoreworICAgIEFTU0VSVChz
dG9yYWdlKTsKKyAgICBBU1NFUlQoc3RydWN0dXJlKTsKKyAgICBzZXRTdHJ1Y3R1cmUoZ2xvYmFs
RGF0YSwgc3RydWN0dXJlKTsKKyAgICBtX3Byb3BlcnR5U3RvcmFnZS5zZXQoZ2xvYmFsRGF0YSwg
dGhpcywgc3RvcmFnZSk7Cit9CisKIGlubGluZSBKU09iamVjdCogY29uc3RydWN0RW1wdHlPYmpl
Y3QoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsKICAgICByZXR1cm4g
SlNGaW5hbE9iamVjdDo6Y3JlYXRlKGV4ZWMsIHN0cnVjdHVyZSk7CkBAIC02NjMsMTAgKzY3Miwx
MSBAQCBpbmxpbmUgYm9vbCBKU09iamVjdDo6cHV0RGlyZWN0SW50ZXJuYWwoCiAgICAgICAgIGlm
ICgobW9kZSA9PSBQdXRNb2RlUHV0KSAmJiAhaXNFeHRlbnNpYmxlKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgc2l6ZV90IGN1cnJlbnRDYXBhY2l0eSA9IHN0cnVjdHVy
ZSgpLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpOworICAgICAgICBQcm9wZXJ0eVN0b3JhZ2Ug
bmV3U3RvcmFnZSA9IHByb3BlcnR5U3RvcmFnZSgpOworICAgICAgICBpZiAoc3RydWN0dXJlKCkt
PnNob3VsZEdyb3dQcm9wZXJ0eVN0b3JhZ2UoKSkKKyAgICAgICAgICAgIG5ld1N0b3JhZ2UgPSBn
cm93UHJvcGVydHlTdG9yYWdlKGdsb2JhbERhdGEsIHN0cnVjdHVyZSgpLT5wcm9wZXJ0eVN0b3Jh
Z2VDYXBhY2l0eSgpLCBzdHJ1Y3R1cmUoKS0+c3VnZ2VzdGVkTmV3UHJvcGVydHlTdG9yYWdlU2l6
ZSgpKTsKICAgICAgICAgb2Zmc2V0ID0gc3RydWN0dXJlKCktPmFkZFByb3BlcnR5V2l0aG91dFRy
YW5zaXRpb24oZ2xvYmFsRGF0YSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzLCBzcGVjaWZpY0Z1
bmN0aW9uKTsKLSAgICAgICAgaWYgKGN1cnJlbnRDYXBhY2l0eSAhPSBzdHJ1Y3R1cmUoKS0+cHJv
cGVydHlTdG9yYWdlQ2FwYWNpdHkoKSkKLSAgICAgICAgICAgIGFsbG9jYXRlUHJvcGVydHlTdG9y
YWdlKGdsb2JhbERhdGEsIGN1cnJlbnRDYXBhY2l0eSwgc3RydWN0dXJlKCktPnByb3BlcnR5U3Rv
cmFnZUNhcGFjaXR5KCkpOworICAgICAgICBzZXRQcm9wZXJ0eVN0b3JhZ2UoZ2xvYmFsRGF0YSwg
bmV3U3RvcmFnZSwgc3RydWN0dXJlKCkpOwogCiAgICAgICAgIEFTU0VSVChvZmZzZXQgPCBzdHJ1
Y3R1cmUoKS0+cHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKSk7CiAgICAgICAgIHB1dERpcmVjdE9m
ZnNldChnbG9iYWxEYXRhLCBvZmZzZXQsIHZhbHVlKTsKQEAgLTY3OCwxMiArNjg4LDEzIEBAIGlu
bGluZSBib29sIEpTT2JqZWN0OjpwdXREaXJlY3RJbnRlcm5hbCgKIAogICAgIHNpemVfdCBvZmZz
ZXQ7CiAgICAgc2l6ZV90IGN1cnJlbnRDYXBhY2l0eSA9IHN0cnVjdHVyZSgpLT5wcm9wZXJ0eVN0
b3JhZ2VDYXBhY2l0eSgpOwotICAgIGlmIChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IFN0cnVjdHVy
ZTo6YWRkUHJvcGVydHlUcmFuc2l0aW9uVG9FeGlzdGluZ1N0cnVjdHVyZSh0aGlzLT5zdHJ1Y3R1
cmUoKSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzLCBzcGVjaWZpY0Z1bmN0aW9uLCBvZmZzZXQp
KSB7ICAgIAorICAgIGlmIChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IFN0cnVjdHVyZTo6YWRkUHJv
cGVydHlUcmFuc2l0aW9uVG9FeGlzdGluZ1N0cnVjdHVyZSh0aGlzLT5zdHJ1Y3R1cmUoKSwgcHJv
cGVydHlOYW1lLCBhdHRyaWJ1dGVzLCBzcGVjaWZpY0Z1bmN0aW9uLCBvZmZzZXQpKSB7CisgICAg
ICAgIFByb3BlcnR5U3RvcmFnZSBuZXdTdG9yYWdlID0gcHJvcGVydHlTdG9yYWdlKCk7IAogICAg
ICAgICBpZiAoY3VycmVudENhcGFjaXR5ICE9IHN0cnVjdHVyZS0+cHJvcGVydHlTdG9yYWdlQ2Fw
YWNpdHkoKSkKLSAgICAgICAgICAgIGFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKGdsb2JhbERhdGEs
IGN1cnJlbnRDYXBhY2l0eSwgc3RydWN0dXJlLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKTsK
KyAgICAgICAgICAgIG5ld1N0b3JhZ2UgPSBncm93UHJvcGVydHlTdG9yYWdlKGdsb2JhbERhdGEs
IGN1cnJlbnRDYXBhY2l0eSwgc3RydWN0dXJlLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKTsK
IAogICAgICAgICBBU1NFUlQob2Zmc2V0IDwgc3RydWN0dXJlLT5wcm9wZXJ0eVN0b3JhZ2VDYXBh
Y2l0eSgpKTsKLSAgICAgICAgc2V0U3RydWN0dXJlKGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7Cisg
ICAgICAgIHNldFByb3BlcnR5U3RvcmFnZShnbG9iYWxEYXRhLCBuZXdTdG9yYWdlLCBzdHJ1Y3R1
cmUpOwogICAgICAgICBwdXREaXJlY3RPZmZzZXQoZ2xvYmFsRGF0YSwgb2Zmc2V0LCB2YWx1ZSk7
CiAgICAgICAgIC8vIFRoaXMgaXMgYSBuZXcgcHJvcGVydHk7IHRyYW5zaXRpb25zIHdpdGggc3Bl
Y2lmaWMgdmFsdWVzIGFyZSBub3QgY3VycmVudGx5IGNhY2hhYmxlLAogICAgICAgICAvLyBzbyBs
ZWF2ZSB0aGUgc2xvdCBpbiBhbiB1bmNhY2hhYmxlIHN0YXRlLgpAQCAtNzI3LDEzICs3MzgsMTQg
QEAgaW5saW5lIGJvb2wgSlNPYmplY3Q6OnB1dERpcmVjdEludGVybmFsKAogICAgIGlmICgobW9k
ZSA9PSBQdXRNb2RlUHV0KSAmJiAhaXNFeHRlbnNpYmxlKCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gU3RydWN0dXJlOjphZGRQcm9wZXJ0eVRy
YW5zaXRpb24oZ2xvYmFsRGF0YSwgdGhpcy0+c3RydWN0dXJlKCksIHByb3BlcnR5TmFtZSwgYXR0
cmlidXRlcywgc3BlY2lmaWNGdW5jdGlvbiwgb2Zmc2V0KTsKKyAgICBQcm9wZXJ0eVN0b3JhZ2Ug
bmV3U3RvcmFnZSA9IHByb3BlcnR5U3RvcmFnZSgpOworICAgIGlmIChzdHJ1Y3R1cmUoKS0+c2hv
dWxkR3Jvd1Byb3BlcnR5U3RvcmFnZSgpKQorICAgICAgICBuZXdTdG9yYWdlID0gZ3Jvd1Byb3Bl
cnR5U3RvcmFnZShnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUoKS0+cHJvcGVydHlTdG9yYWdlQ2FwYWNp
dHkoKSwgc3RydWN0dXJlKCktPnN1Z2dlc3RlZE5ld1Byb3BlcnR5U3RvcmFnZVNpemUoKSk7CiAK
LSAgICBpZiAoY3VycmVudENhcGFjaXR5ICE9IHN0cnVjdHVyZS0+cHJvcGVydHlTdG9yYWdlQ2Fw
YWNpdHkoKSkKLSAgICAgICAgYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoZ2xvYmFsRGF0YSwgY3Vy
cmVudENhcGFjaXR5LCBzdHJ1Y3R1cmUtPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCkpOworICAg
IFN0cnVjdHVyZSogc3RydWN0dXJlID0gU3RydWN0dXJlOjphZGRQcm9wZXJ0eVRyYW5zaXRpb24o
Z2xvYmFsRGF0YSwgdGhpcy0+c3RydWN0dXJlKCksIHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcywg
c3BlY2lmaWNGdW5jdGlvbiwgb2Zmc2V0KTsKIAogICAgIEFTU0VSVChvZmZzZXQgPCBzdHJ1Y3R1
cmUtPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCkpOwotICAgIHNldFN0cnVjdHVyZShnbG9iYWxE
YXRhLCBzdHJ1Y3R1cmUpOworICAgIHNldFByb3BlcnR5U3RvcmFnZShnbG9iYWxEYXRhLCBuZXdT
dG9yYWdlLCBzdHJ1Y3R1cmUpOwogICAgIHB1dERpcmVjdE9mZnNldChnbG9iYWxEYXRhLCBvZmZz
ZXQsIHZhbHVlKTsKICAgICAvLyBUaGlzIGlzIGEgbmV3IHByb3BlcnR5OyB0cmFuc2l0aW9ucyB3
aXRoIHNwZWNpZmljIHZhbHVlcyBhcmUgbm90IGN1cnJlbnRseSBjYWNoYWJsZSwKICAgICAvLyBz
byBsZWF2ZSB0aGUgc2xvdCBpbiBhbiB1bmNhY2hhYmxlIHN0YXRlLgpAQCAtNzY3LDE4ICs3Nzks
MjAgQEAgaW5saW5lIHZvaWQgSlNPYmplY3Q6OnB1dERpcmVjdChKU0dsb2JhbAogaW5saW5lIHZv
aWQgSlNPYmplY3Q6OnB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWdu
ZWQgYXR0cmlidXRlcykKIHsKICAgICBBU1NFUlQoIXZhbHVlLmlzR2V0dGVyU2V0dGVyKCkgJiYg
IShhdHRyaWJ1dGVzICYgQWNjZXNzb3IpKTsKLSAgICBzaXplX3QgY3VycmVudENhcGFjaXR5ID0g
c3RydWN0dXJlKCktPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCk7CisgICAgUHJvcGVydHlTdG9y
YWdlIG5ld1N0b3JhZ2UgPSBwcm9wZXJ0eVN0b3JhZ2UoKTsKKyAgICBpZiAoc3RydWN0dXJlKCkt
PnNob3VsZEdyb3dQcm9wZXJ0eVN0b3JhZ2UoKSkKKyAgICAgICAgbmV3U3RvcmFnZSA9IGdyb3dQ
cm9wZXJ0eVN0b3JhZ2UoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKCktPnByb3BlcnR5U3RvcmFnZUNh
cGFjaXR5KCksIHN0cnVjdHVyZSgpLT5zdWdnZXN0ZWROZXdQcm9wZXJ0eVN0b3JhZ2VTaXplKCkp
OwogICAgIHNpemVfdCBvZmZzZXQgPSBzdHJ1Y3R1cmUoKS0+YWRkUHJvcGVydHlXaXRob3V0VHJh
bnNpdGlvbihnbG9iYWxEYXRhLCBwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMsIGdldEpTRnVuY3Rp
b24odmFsdWUpKTsKLSAgICBpZiAoY3VycmVudENhcGFjaXR5ICE9IHN0cnVjdHVyZSgpLT5wcm9w
ZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKQotICAgICAgICBhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZShn
bG9iYWxEYXRhLCBjdXJyZW50Q2FwYWNpdHksIHN0cnVjdHVyZSgpLT5wcm9wZXJ0eVN0b3JhZ2VD
YXBhY2l0eSgpKTsKKyAgICBzZXRQcm9wZXJ0eVN0b3JhZ2UoZ2xvYmFsRGF0YSwgbmV3U3RvcmFn
ZSwgc3RydWN0dXJlKCkpOwogICAgIHB1dERpcmVjdE9mZnNldChnbG9iYWxEYXRhLCBvZmZzZXQs
IHZhbHVlKTsKIH0KIAogaW5saW5lIHZvaWQgSlNPYmplY3Q6OnRyYW5zaXRpb25UbyhKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogbmV3U3RydWN0dXJlKQogeworICAgIFByb3Bl
cnR5U3RvcmFnZSBuZXdTdG9yYWdlID0gcHJvcGVydHlTdG9yYWdlKCk7CiAgICAgaWYgKHN0cnVj
dHVyZSgpLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpICE9IG5ld1N0cnVjdHVyZS0+cHJvcGVy
dHlTdG9yYWdlQ2FwYWNpdHkoKSkKLSAgICAgICAgYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoZ2xv
YmFsRGF0YSwgc3RydWN0dXJlKCktPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCksIG5ld1N0cnVj
dHVyZS0+cHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKSk7Ci0gICAgc2V0U3RydWN0dXJlKGdsb2Jh
bERhdGEsIG5ld1N0cnVjdHVyZSk7CisgICAgICAgIG5ld1N0b3JhZ2UgPSBncm93UHJvcGVydHlT
dG9yYWdlKGdsb2JhbERhdGEsIHN0cnVjdHVyZSgpLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgp
LCBuZXdTdHJ1Y3R1cmUtPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCkpOworICAgIHNldFByb3Bl
cnR5U3RvcmFnZShnbG9iYWxEYXRhLCBuZXdTdG9yYWdlLCBuZXdTdHJ1Y3R1cmUpOwogfQogCiBp
bmxpbmUgSlNWYWx1ZSBKU09iamVjdDo6dG9QcmltaXRpdmUoRXhlY1N0YXRlKiBleGVjLCBQcmVm
ZXJyZWRQcmltaXRpdmVUeXBlIHByZWZlcnJlZFR5cGUpIGNvbnN0CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAJKHJldmlzaW9uIDExNzMwNCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI2Niw2ICsyNjYsMTMgQEAgdm9pZCBTdHJ1Y3R1cmU6Omdyb3dQcm9wZXJ0eVN0b3Jh
Z2VDYXBhYwogICAgICAgICBtX3Byb3BlcnR5U3RvcmFnZUNhcGFjaXR5ICo9IDI7CiB9CiAKK3Np
emVfdCBTdHJ1Y3R1cmU6OnN1Z2dlc3RlZE5ld1Byb3BlcnR5U3RvcmFnZVNpemUoKQoreworICAg
IGlmIChpc1VzaW5nSW5saW5lU3RvcmFnZSgpKQorICAgICAgICByZXR1cm4gSlNPYmplY3Q6OmJh
c2VFeHRlcm5hbFN0b3JhZ2VDYXBhY2l0eTsKKyAgICByZXR1cm4gbV9wcm9wZXJ0eVN0b3JhZ2VD
YXBhY2l0eSAqIDI7Cit9CisgCiB2b2lkIFN0cnVjdHVyZTo6ZGVzcGVjaWZ5RGljdGlvbmFyeUZ1
bmN0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFt
ZSkKIHsKICAgICBTdHJpbmdJbXBsKiByZXAgPSBwcm9wZXJ0eU5hbWUuaW1wbCgpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgJKHJldmlzaW9uIDExNzMw
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDIsNiArMTAyLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJvb2wg
aXNGcm96ZW4oSlNHbG9iYWxEYXRhJik7CiAgICAgICAgIGJvb2wgaXNFeHRlbnNpYmxlKCkgY29u
c3QgeyByZXR1cm4gIW1fcHJldmVudEV4dGVuc2lvbnM7IH0KICAgICAgICAgYm9vbCBkaWRUcmFu
c2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kaWRUcmFuc2l0aW9uOyB9CisgICAgICAgIGJvb2wg
c2hvdWxkR3Jvd1Byb3BlcnR5U3RvcmFnZSgpIHsgcmV0dXJuIHByb3BlcnR5U3RvcmFnZUNhcGFj
aXR5KCkgPT0gcHJvcGVydHlTdG9yYWdlU2l6ZSgpOyB9CisgICAgICAgIEpTX0VYUE9SVF9QUklW
QVRFIHNpemVfdCBzdWdnZXN0ZWROZXdQcm9wZXJ0eVN0b3JhZ2VTaXplKCk7IAogCiAgICAgICAg
IFN0cnVjdHVyZSogZmxhdHRlbkRpY3Rpb25hcnlTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiwgSlNP
YmplY3QqKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>