<?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>91010</bug_id>
          
          <creation_ts>2012-07-11 13:42:50 -0700</creation_ts>
          <short_desc>IndexedDB: Expose mechanism for database to force a connection to close</short_desc>
          <delta_ts>2012-08-23 17:41:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Joshua Bell">jsbell</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>abarth</cc>
    
    <cc>alecflett</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dgrogan</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>michaeln</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>667020</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-11 13:42:50 -0700</bug_when>
    <thetext>IndexedDB: Expose mechanism for database to force a connection to close</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667025</commentid>
    <comment_count>1</comment_count>
      <attachid>151765</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-11 13:50:58 -0700</bug_when>
    <thetext>Created attachment 151765
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667028</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-11 13:53:22 -0700</bug_when>
    <thetext>WebKit side of a fix for http://crbug.com/64050 - can&apos;t delete browsing data in Chromium port when a connection is open. Chromium side is: https://chromiumcodereview.appspot.com/10695158

This patch exposes a &quot;forceClose&quot; API that the back end can call on each connection to force it to close. In the Chromium port this is done in the browser itself which keeps track of these connections.

I&apos;m not sure where - if anywhere - to put WebKit side tests for this. I&apos;m also not a fan of the name, so suggestions welcome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671317</commentid>
    <comment_count>3</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-17 09:22:35 -0700</bug_when>
    <thetext>dgrogan@, alecflett@ - any comments? I should probably get this puppy landing.

I&apos;m still not happy with forceClose as a name. Maybe terminateConnection?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671339</commentid>
    <comment_count>4</comment_count>
      <attachid>151765</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-07-17 10:00:38 -0700</bug_when>
    <thetext>Comment on attachment 151765
Patch

LGTM - I like &quot;forceClose&quot; more..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671510</commentid>
    <comment_count>5</comment_count>
      <attachid>151765</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-07-17 12:55:42 -0700</bug_when>
    <thetext>Comment on attachment 151765
Patch

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

LGTM.

I haven&apos;t looked through the chrome patch yet.

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp:51
&gt; +    if (m_database)

It&apos;s legitimate for m_database to be NULL here, this can&apos;t be an assert?

&gt; Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp:104
&gt; +    if (!m_databaseCallbacks)

Does this only happen if forceClose is called twice?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671511</commentid>
    <comment_count>6</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-07-17 12:56:45 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 151765 [details])
&gt; LGTM - I like &quot;forceClose&quot; more..

Oh, and agreed.  forceClose ftw.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671529</commentid>
    <comment_count>7</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-07-17 13:23:25 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I&apos;m not sure where - if anywhere - to put WebKit side tests for this.

We could add a method to window.internals/layouttestcontroller that simulates a forceClose, or just unit test it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678486</commentid>
    <comment_count>8</comment_count>
      <attachid>151765</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-25 14:37:38 -0700</bug_when>
    <thetext>Comment on attachment 151765
Patch

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

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp:51
&gt;&gt; +    if (m_database)
&gt; 
&gt; It&apos;s legitimate for m_database to be NULL here, this can&apos;t be an assert?

Not sure what you mean...

m_database can be NULL if the front-end has destructed, which can happen during script GC. Script may be the only thing holding an IDBDatabase alive; when script GC occurs the refcount drops to 0, and the destructor runs which closes the connection (an async call to the backend) and nulls out m_database in the CallbacksImpl. If there&apos;s a forceClose in flight from the backend to the frontend these could collide.

So... it&apos;s legitimate for m_database to be NULL, so we can&apos;t assert.

&gt;&gt; Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp:104
&gt;&gt; +    if (!m_databaseCallbacks)
&gt; 
&gt; Does this only happen if forceClose is called twice?

Or a close followed by a forceClose, e.g. a close() is in-flight already from script when the UI triggers a forceClose(). On the Chromium side it looks like this class is retained in the dispatcher&apos;s map until the database backend is actually destroyed, so nothing earlier prevents that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696427</commentid>
    <comment_count>9</comment_count>
      <attachid>158650</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-15 15:24:39 -0700</bug_when>
    <thetext>Created attachment 158650
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696431</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-15 15:27:48 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702535</commentid>
    <comment_count>11</comment_count>
      <attachid>160039</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-22 17:17:33 -0700</bug_when>
    <thetext>Created attachment 160039
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702536</commentid>
    <comment_count>12</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-22 17:18:50 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Created an attachment (id=160039) [details]
&gt; Patch

Rebase on top of the upgradeneeded changes.

dglazkov@, abarth@ - review of the Chromium WebKit public API changes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702567</commentid>
    <comment_count>13</comment_count>
      <attachid>160039</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-22 17:46:27 -0700</bug_when>
    <thetext>Comment on attachment 160039
Patch

API change LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>703109</commentid>
    <comment_count>14</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-23 10:15:59 -0700</bug_when>
    <thetext>tony@ - r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>703509</commentid>
    <comment_count>15</comment_count>
      <attachid>160273</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-23 16:13:54 -0700</bug_when>
    <thetext>Created attachment 160273
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>703593</commentid>
    <comment_count>16</comment_count>
      <attachid>160273</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-23 17:41:18 -0700</bug_when>
    <thetext>Comment on attachment 160273
Patch for landing

Clearing flags on attachment: 160273

Committed r126516: &lt;http://trac.webkit.org/changeset/126516&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>703594</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-23 17:41:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151765</attachid>
            <date>2012-07-11 13:50:58 -0700</date>
            <delta_ts>2012-08-15 15:24:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91010-20120711135057.patch</filename>
            <type>text/plain</type>
            <size>11967</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTFjMmYxMjk1NTE2ZDNi
ZjZmMmEyMjk3NzczNThlZjMxMGEyZGNhMi4uYjg4NjE0NTM0MThkMzg5NGQzMzcxNzcxYzNkYmRi
MzM3YjMwYmQ5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA3LTExICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBFeHBv
c2UgbWVjaGFuaXNtIGZvciBkYXRhYmFzZSB0byBmb3JjZSBhIGNvbm5lY3Rpb24gdG8gY2xvc2UK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMDEwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaXRpb25h
bCBpbmZvcm1hdGlvbiBvZiB0aGUgY2hhbmdlIHN1Y2ggYXMgYXBwcm9hY2gsIHJhdGlvbmFsZS4g
UGxlYXNlIGFkZCBwZXItZnVuY3Rpb24gZGVzY3JpcHRpb25zIGJlbG93IChPT1BTISkuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6Zm9yY2VD
bG9zZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZS5oOgorICAgICAgICAoSURCRGF0YWJhc2UpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmg6CisgICAgICAgIChJREJEYXRhYmFzZUNh
bGxiYWNrcyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFj
a3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6
b25Gb3JjZWRDbG9zZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaDoKKyAgICAgICAgKElEQkRhdGFiYXNl
Q2FsbGJhY2tzSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEyLTA3LTExICBLZW5uZXRoIFJ1c3Nl
bGwgIDxrYnJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBjb21wb3NpdGluZy93ZWJnbC93ZWJnbC1u
b25wcmVtdWx0aXBsaWVkLWJsZW5kLmh0bWwgaXMgZmxha3kgb24gTGlvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCBjZWNhZDA4MTc4ZjY2Yjg0YjZlN2IzODRjOGU3Yzc2MzgzMjU3NjQ4
Li4xNDAxNmI4ZWY1ZmE4YjA3Yjc1ZGM5ZjFkYmJlNGRjNTAwMmJiY2M2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA3LTExICBKb3NodWEgQmVsbCAg
PGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBFeHBvc2UgbWVjaGFu
aXNtIGZvciBkYXRhYmFzZSB0byBmb3JjZSBhIGNvbm5lY3Rpb24gdG8gY2xvc2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMDEwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaXRpb25hbCBpbmZvcm1h
dGlvbiBvZiB0aGUgY2hhbmdlIHN1Y2ggYXMgYXBwcm9hY2gsIHJhdGlvbmFsZS4gUGxlYXNlIGFk
ZCBwZXItZnVuY3Rpb24gZGVzY3JpcHRpb25zIGJlbG93IChPT1BTISkuCisKKyAgICAgICAgKiBw
dWJsaWMvV2ViSURCRGF0YWJhc2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2U6
OmZvcmNlQ2xvc2UpOgorICAgICAgICAqIHB1YmxpYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrcy5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUNhbGxiYWNrczo6b25Gb3JjZWRDbG9z
ZSk6CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5OjpvbkZvcmNlZENsb3NlKToKKyAg
ICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHku
aDoKKyAgICAgICAgKElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkpOgorICAgICAgICAqIHNyYy9X
ZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJE
YXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uRm9yY2VkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmg6CisgICAgICAgIChX
ZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFz
ZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUltcGw6OmZvcmNlQ2xv
c2UpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VJbXBs
Lmg6CisgICAgICAgIChXZWJJREJEYXRhYmFzZUltcGwpOgorCiAyMDEyLTA3LTEwICBIYXlhdG8g
SXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGdhcmRlbmlu
Zy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNw
cAppbmRleCAzNWI1Y2ExZjA1OWFiNzg3OTNiYTM0ZDlhZjRmZDAyY2YwY2VjMTY4Li44ZDNlYmQw
ZGRmNTczNDYwNjFjMjczNzIxYjk1OWVlZWM0NGMxOGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCkBAIC0yNjEsNiArMjYxLDEzIEBA
IFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IElEQkRhdGFiYXNlOjp0cmFuc2FjdGlvbihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250CiAgICAgcmV0dXJuIHRyYW5zYWN0aW9uKGNvbnRleHQs
IHBycFN0b3JlTmFtZXMsIG1vZGVTdHJpbmcsIGVjKTsKIH0KIAordm9pZCBJREJEYXRhYmFzZTo6
Zm9yY2VDbG9zZSgpCit7CisgICAgZm9yIChIYXNoU2V0PElEQlRyYW5zYWN0aW9uKj46Oml0ZXJh
dG9yIGl0ID0gbV90cmFuc2FjdGlvbnMuYmVnaW4oKTsgaXQgIT0gbV90cmFuc2FjdGlvbnMuZW5k
KCk7ICsraXQpCisgICAgICAgICgqaXQpLT5hYm9ydCgpOworICAgIHRoaXMtPmNsb3NlKCk7Cit9
CisKIHZvaWQgSURCRGF0YWJhc2U6OmNsb3NlKCkKIHsKICAgICBpZiAobV9jbG9zZVBlbmRpbmcp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaAppbmRl
eCBhMjQ4Y2Q4MGRlYjgzN2EzYjE1YmRhYTM4ZDFkZjEzMGVkM2EzMWFhLi4zM2U4ZGZkMjU0ZDE3
ZTEzMWMzNzYwNzQyN2U0NjA4Y2I5OWM1NjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKQEAgLTg3LDYgKzg3LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnRlcmZhY2VOYW1lKCkgY29uc3Q7CiAgICAg
dmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkg
Y29uc3Q7CiAKKyAgICB2b2lkIGZvcmNlQ2xvc2UoKTsKICAgICB2b2lkIHJlZ2lzdGVyRnJvbnRl
bmRDYWxsYmFja3MoKTsKICAgICBjb25zdCBJREJEYXRhYmFzZU1ldGFkYXRhIG1ldGFkYXRhKCkg
Y29uc3QgeyByZXR1cm4gbV9tZXRhZGF0YTsgfQogICAgIHZvaWQgZW5xdWV1ZUV2ZW50KFBhc3NS
ZWZQdHI8RXZlbnQ+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrcy5oCmluZGV4IGIzZjI0NGY1MTZiNjk4N2VhMTE5Y2Jm
NzAxOWI3YjU0Mzc1ZjEyYmYuLjc3N2JlZWMwMzkzNWFlZjAyNjBmODExNDg5YjQzZjNlZTYxYjZh
MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlQ2FsbGJhY2tzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VDYWxsYmFja3MuaApAQCAtMzcsNiArMzcsNyBAQCBjbGFzcyBJREJEYXRhYmFzZUNh
bGxiYWNrcyA6IHB1YmxpYyBSZWZDb3VudGVkPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiB7CiBwdWJs
aWM6CiAgICAgdmlydHVhbCB+SURCRGF0YWJhc2VDYWxsYmFja3MoKSB7IH0KIAorICAgIHZpcnR1
YWwgdm9pZCBvbkZvcmNlZENsb3NlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25D
aGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uKSA9IDA7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJ
bXBsLmNwcAppbmRleCAxOTQxMmZjYmU1MGFiNDRiZjUzZGMwMWUwM2Q4ODUzZTI4ZjdjNWZmLi42
NjQwOTQ3ZDhhNjZkZTRiYWZhYTIxY2QzZGI5ZTNhNmU4Y2U0NjM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJh
Y2tzSW1wbC5jcHAKQEAgLTQ2LDYgKzQ2LDEyIEBAIElEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6
fklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbCgpCiB7CiB9CiAKK3ZvaWQgSURCRGF0YWJhc2VDYWxs
YmFja3NJbXBsOjpvbkZvcmNlZENsb3NlKCkKK3sKKyAgICBpZiAobV9kYXRhYmFzZSkKKyAgICAg
ICAgbV9kYXRhYmFzZS0+Zm9yY2VDbG9zZSgpOworfQorCiB2b2lkIElEQkRhdGFiYXNlQ2FsbGJh
Y2tzSW1wbDo6b25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgdmVyc2lvbikKIHsKICAgICBp
ZiAobV9kYXRhYmFzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmgKaW5kZXggZThiMWY5OWI4MzhhZjdi
OTM3ZDk0YjdhZjhmN2Y3ZGZiODJiZTdmYi4uNjFkZThhNDdlNWI1MmNjYTRiYTUxNDljMzUxMjgw
NjEyYzQyNzE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmgKQEAgLTQxLDYgKzQxLDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbD4gY3Jl
YXRlKElEQkRhdGFiYXNlKik7CiAgICAgdmlydHVhbCB+SURCRGF0YWJhc2VDYWxsYmFja3NJbXBs
KCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgb25Gb3JjZWRDbG9zZSgpOwogICAgIHZpcnR1YWwgdm9p
ZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uKTsKICAgICB2b2lkIHVucmVn
aXN0ZXJEYXRhYmFzZShJREJEYXRhYmFzZSopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAppbmRleCA2MTA3ZWI5ODJlMDFj
NjA2ZGZjYWY0YjJlYjMxZDJiODJkZmExYWY4Li4zNjZjNDg3OTQwMTU5YjQ5ZWQwYWM5YzU2MWU2
ODIwYmI5M2EwMmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5kZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKQEAgLTEyOCw2ICsxMjgsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB+SW5zcGVjdG9ySURCRGF0YWJhc2VDYWxsYmFja3MoKSB7IH0KIAogICAgIHZpcnR1
YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgb25Gb3JjZWRDbG9zZSgpIHsgfQogcHJpdmF0ZToKICAgICBJbnNwZWN0b3JJ
REJEYXRhYmFzZUNhbGxiYWNrcygpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJJREJEYXRhYmFzZS5oCmluZGV4IDNlYjFlY2I3NDMzMTU1YzlhYWQxYWI5Nzcy
ZDNkZTFlNDY0YjhmMzEuLmE4YjAzNWM3MjdmODhkZGJmMGNlMTcwZWFkNzQxODVjNjhiZTJhZDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNl
LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaApA
QCAtNjQsNiArNjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KICAgICB2
aXJ0dWFsIHZvaWQgY2xvc2UoKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAg
IHZpcnR1YWwgdm9pZCBmb3JjZUNsb3NlKCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7
IH0KIAogICAgIHZpcnR1YWwgdm9pZCBvcGVuKFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzKikgeyBX
RUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3MuaCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzLmgKaW5kZXggODM4YTcx
ZmY5MTRmZTNjM2Y1ZTU0ZmM4NDRlNzgyMDhjOWM3ODczMC4uNGNiYjlmYjczYTZiNTJlOTE3YmMw
ZDZjNzUxMDFmYWYzMjNkNTAyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrcy5oCkBAIC0zNSw2ICszNSw3IEBAIGNs
YXNzIFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJJ
REJEYXRhYmFzZUNhbGxiYWNrcygpIHsgfQogCisgICAgdmlydHVhbCB2b2lkIG9uRm9yY2VkQ2xv
c2UoKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBv
blZlcnNpb25DaGFuZ2UoY29uc3QgV2ViU3RyaW5nJiByZXF1ZXN0ZWRWZXJzaW9uKSB7IFdFQktJ
VF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcAppbmRleCA4MTZm
YWY2YzRkZTcwYWU2OTI2OTMwZDBkZTUwZTBlZTJkMTE3ODViLi4wYWE5NzUxOTJlOWI2MWVjNTc3
NjI1NzVmOTM5NGM5MjhkOWExN2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcApAQCAtNDgsNiArNDgsMTEg
QEAgSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eTo6fklEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHko
KQogewogfQogCit2b2lkIElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk6Om9uRm9yY2VkQ2xvc2Uo
KQoreworICAgIG1fY2FsbGJhY2tzLT5vbkZvcmNlZENsb3NlKCk7Cit9CisKIHZvaWQgSURCRGF0
YWJhc2VDYWxsYmFja3NQcm94eTo6b25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgcmVxdWVz
dGVkVmVyc2lvbikKIHsKICAgICBtX2NhbGxiYWNrcy0+b25WZXJzaW9uQ2hhbmdlKHJlcXVlc3Rl
ZFZlcnNpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0
YWJhc2VDYWxsYmFja3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0
YWJhc2VDYWxsYmFja3NQcm94eS5oCmluZGV4IGFmZmRjZTc3ZDVkOTU4ZGMwMGUwZjZmODBhY2Zm
YjgwMTI5NThiM2IuLjc2NzBiNTRiMTAwOTc5NGYxM2Q5MjBlZTA2ZWU5MzdiOWJkODhlYWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tz
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNhbGxi
YWNrc1Byb3h5LmgKQEAgLTQwLDYgKzQwLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk+IGNyZWF0ZShQYXNzT3duUHRyPFdlYklEQkRh
dGFiYXNlQ2FsbGJhY2tzPik7CiAgICAgdmlydHVhbCB+SURCRGF0YWJhc2VDYWxsYmFja3NQcm94
eSgpOwogCisgICAgdmlydHVhbCB2b2lkIG9uRm9yY2VkQ2xvc2UoKTsKICAgICB2aXJ0dWFsIHZv
aWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgcmVxdWVzdGVkVmVyc2lvbik7CiAKIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRh
YmFzZUNhbGxiYWNrc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
RGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcAppbmRleCBmZjBlODk4NjRiMjFhNjQ2ODliMDMxMjZj
YWFmM2ZlNTY1OWZhZjMxLi5jMWEyMDI4ODc5MGZiMDY1MzQ4NTUxODA0MDU3Mjc3ZjViN2JhNTQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNh
bGxiYWNrc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRh
dGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAKQEAgLTQ0LDYgKzQ0LDExIEBAIFdlYklEQkRhdGFiYXNl
Q2FsbGJhY2tzSW1wbDo6fldlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbCgpCiB7CiB9CiAKK3Zv
aWQgV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpvbkZvcmNlZENsb3NlKCkKK3sKKyAgICBt
X2NhbGxiYWNrcy0+b25Gb3JjZWRDbG9zZSgpOworfQorCiB2b2lkIFdlYklEQkRhdGFiYXNlQ2Fs
bGJhY2tzSW1wbDo6b25WZXJzaW9uQ2hhbmdlKGNvbnN0IFdlYlN0cmluZyYgdmVyc2lvbikKIHsK
ICAgICBtX2NhbGxiYWNrcy0+b25WZXJzaW9uQ2hhbmdlKHZlcnNpb24pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwu
aAppbmRleCAyMWMzZGM3YzVhYzRhZDBiZWE4ZGYyOTE2ZWJiM2Y4OGM2N2ZmMDVmLi5iODJmMDNm
OTM1ZTQ3MmU5Yjc2Y2UxMTYzM2ViMTM5OTNhYzcwZDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaApAQCAt
NDMsNiArNDMsNyBAQCBwdWJsaWM6CiAgICAgV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsKFBh
c3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VDYWxsYmFja3M+KTsKICAgICB2aXJ0dWFsIH5X
ZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwoKTsKIAorICAgIHZpcnR1YWwgdm9pZCBvbkZvcmNl
ZENsb3NlKCk7CiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShjb25zdCBXZWJTdHJp
bmcmIHZlcnNpb24pOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKaW5kZXggMTg1NzNjYWNmZTE4MDFiOThiOWUzOWJh
M2YxZWU4ZDZjNjRkMGQ5Mi4uODI0YjEwYTRhZmQ4MjQyNTUyZjk0NDE2NjdiYzQwOGQ0NzczNDFj
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUlt
cGwuY3BwCkBAIC05OSw2ICs5OSwxNSBAQCB2b2lkIFdlYklEQkRhdGFiYXNlSW1wbDo6Y2xvc2Uo
KQogICAgIG1fZGF0YWJhc2VDYWxsYmFja3MgPSAwOwogfQogCit2b2lkIFdlYklEQkRhdGFiYXNl
SW1wbDo6Zm9yY2VDbG9zZSgpCit7CisgICAgaWYgKCFtX2RhdGFiYXNlQ2FsbGJhY2tzKQorICAg
ICAgICByZXR1cm47CisgICAgbV9kYXRhYmFzZUJhY2tlbmQtPmNsb3NlKG1fZGF0YWJhc2VDYWxs
YmFja3MpOworICAgIG1fZGF0YWJhc2VDYWxsYmFja3MtPm9uRm9yY2VkQ2xvc2UoKTsKKyAgICBt
X2RhdGFiYXNlQ2FsbGJhY2tzID0gMDsKK30KKwogdm9pZCBXZWJJREJEYXRhYmFzZUltcGw6Om9w
ZW4oV2ViSURCRGF0YWJhc2VDYWxsYmFja3MqIGNhbGxiYWNrcykKIHsKICAgICBBU1NFUlQoIW1f
ZGF0YWJhc2VDYWxsYmFja3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViSURCRGF0YWJhc2VJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
REJEYXRhYmFzZUltcGwuaAppbmRleCA0ZjgyNTE4MjBhNDliYmRmZGU1MmZhYjkxZWZmYTVhZWMw
OGJhNDZkLi40ZmQ4YTE4MTVkMjVmZjc5YmRhOGNiZTNhMzVkZjY0ZjMzYTcyNzc0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaApAQCAtNTYs
NiArNTYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGNv
bnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRp
b25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lkIHNldFZlcnNpb24oY29uc3QgV2ViU3RyaW5nJiB2
ZXJzaW9uLCBXZWJJREJDYWxsYmFja3MqLCBXZWJFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVh
bCBXZWJJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24oY29uc3QgV2ViRE9NU3RyaW5nTGlzdCYg
bmFtZXMsIHVuc2lnbmVkIHNob3J0IG1vZGUsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZm9yY2VDbG9zZSgpOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpOwogCiAgICAg
Ly8gRklYTUU6IFJlbmFtZSAib3BlbiIgdG8gcmVnaXN0ZXJGcm9udGVuZENhbGxiYWNrcy4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158650</attachid>
            <date>2012-08-15 15:24:39 -0700</date>
            <delta_ts>2012-08-22 17:17:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91010-20120815152405.patch</filename>
            <type>text/plain</type>
            <size>17759</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGFlNTk5NWU2Y2Y0ODU5
Y2Y0MTVkZjljY2NhMmUzMDQ1MzhhMzM2Yi4uNDAwNTM0ZDc5MDhhNThiYzE5ZjVkZmExNDFkMDBm
MzJkYzU0OTkwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA4LTE1ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBFeHBv
c2UgbWVjaGFuaXNtIGZvciBkYXRhYmFzZSB0byBmb3JjZSBhIGNvbm5lY3Rpb24gdG8gY2xvc2UK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMDEwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gcmVzcG9u
c2UgdG8gdXNlciBhY3Rpb24gKGUuZy4gImRlbGV0ZSBteSBicm93c2luZyBkYXRhIikgYSBjb25u
ZWN0aW9uIG1heQorICAgICAgICBuZWVkIHRvIGJlIGZvcmNpYmx5IHRlcm1pbmF0ZWQuIFRoaXMg
YWxsb3dzIGFuIGV2ZW50IHRvIGJlIHNlbnQgdG8gYSBjb25uZWN0aW9uCisgICAgICAgIGZyb20g
dGhlIGJhY2sgZW5kIHZpYSBJREJEYXRhYmFzZUNhbGxiYWNrcyB0byBpbml0aWF0ZSBjbG9zaW5n
IHRoZSBjb25uZWN0aW9uLgorCisgICAgICAgIFRlc3Q6IFtjaHJvbWl1bV0gd2Via2l0X3VuaXRf
dGVzdCAtLWd0ZXN0X2ZpbHRlcj0nSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5Gb3JjZWRDbG9zZScK
KworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OklEQkRhdGFiYXNlOjpmb3JjZUNsb3NlKTogQWJvcnQgYWxsIHRyYW5zYWN0aW9u
cyBhbmQgY2xvc2UuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZS5oOgorICAgICAgICAoSURCRGF0YWJhc2UpOiBFbnRyeSBwb2ludC4K
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrcy5oOgorICAg
ICAgICAoSURCRGF0YWJhc2VDYWxsYmFja3MpOiBFdmVudCBwbHVtYmluZyBmcm9tIGJhY2sgZW5k
LgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uRm9yY2Vk
Q2xvc2UpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oOgorICAgICAgICAoSURCRGF0YWJhc2VD
YWxsYmFja3NJbXBsKTogRGl0dG8uCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckluZGV4
ZWREQkFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOiBNZXRob2Qgc3R1Yi4KKwogMjAxMi0w
OC0xNSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFtDaHJvbWl1
bV0gZmFzdC9kb20vV2luZG93L2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdpbmRvdy5odG1sIGlz
IGZsYWt5IG9uIExpbnV4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDdmNzhkZGVkYmRm
NWQ5ZGJmZWExZmZlOTc2MjIyNjdkYzUyZDI3NzIuLmNkNmFjZGU2MTFkMjJmYjYxM2EyYWM5MDEz
MmE4YTZiY2RhMTJiMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcg
QEAKKzIwMTItMDgtMTUgIEpvc2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBJbmRleGVkREI6IEV4cG9zZSBtZWNoYW5pc20gZm9yIGRhdGFiYXNlIHRvIGZvcmNlIGEg
Y29ubmVjdGlvbiB0byBjbG9zZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTEwMTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbiBDaHJvbWl1bSwgdGhlIGJyb3dzaW5nIGRhdGEgZGVsZXRlciBoYXMgYSBX
ZWJJREJEYXRhYmFzZSBoYW5kbGUgd2hpY2gKKyAgICAgICAgaXQgY2FuIHVzZSB0byB0ZXJtaW5h
dGUgYSBjb25uZWN0aW9uLiBUaGlzIGhhbmRsZXMgZm9yY2VmdWxseSBjbG9zaW5nCisgICAgICAg
IHRoZSBmcm9udCBlbmQgY29ubmVjdGlvbnMgYW5kIHRoZSBiYWNrIGVuZCwgdG8gdW5ibG9jayBk
aXNrIGNsZWFudXAuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViSURCRGF0YWJhc2UuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2U6OmZvcmNlQ2xvc2UpOiBFbnRyeSBwb2ludC4KKyAg
ICAgICAgKiBwdWJsaWMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3MuaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCRGF0YWJhc2VDYWxsYmFja3M6Om9uRm9yY2VkQ2xvc2UpOiBQbHVtYmluZyBiYWNr
IHRvIGZyb250LgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eTo6b25Gb3JjZWRDbG9z
ZSk6IFBsdW1iaW5nIGJhY2sgdG8gZnJvbnQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAq
IHNyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5Lmg6CisgICAgICAgIChJREJEYXRhYmFzZUNh
bGxiYWNrc1Byb3h5KTogUGx1bWJpbmcuCisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlQ2Fs
bGJhY2tzSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRhdGFiYXNlQ2FsbGJhY2tz
SW1wbDo6b25Gb3JjZWRDbG9zZSk6IFBsdW1iaW5nIGJhY2sgdG8gZnJvbnQuCisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaDoKKyAg
ICAgICAgKFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbCk6IFBsdW1iaW5nIGJhY2sgdG8gZnJv
bnQuCisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQkRhdGFiYXNlSW1wbDo6Y2xvc2UpOiBUaWR5IHVwIGRyb3BwaW5nIHRoZSBjYWxs
YmFjayByZWZlcmVuY2UuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJ
REJEYXRhYmFzZUltcGw6OmZvcmNlQ2xvc2UpOiBUZXJtaW5hdGUgdGhlIGNvbm5lY3Rpb24gYnkg
bm90aWZ5aW5nCisgICAgICAgIHRoZSBiYWNrIGVuZCBhbmQgdGhlIGZyb250IGVuZCwgd2hpbGUg
YXZvaWQgcmUtZW50cmFudCBiYWRuZXNzLgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFzZUlt
cGwuaDogSGVhZGVyIHR3ZWFrIGZvciB1bml0IHRlc3QuCisgICAgICAgIChXZWJJREJEYXRhYmFz
ZUltcGwpOgorICAgICAgICAqIHRlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwOiBBZGRl
ZCB1bml0IHRlc3QgdG8gZXhlcmNpc2UgY29ubmVjdGlvbnMuCisKIDIwMTItMDgtMTQgIEtlaXNo
aSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CiAKICAgICAgICAgU2hhcmUgY29tbW9uIGNv
ZGUgYmV0d2VlbiBjYWxlbmRhciBwaWNrZXIgYW5kIGNvbG9yIHN1Z2dlc3Rpb24gcGlja2VyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKaW5k
ZXggNWMzZGZjYjZiNTQyYzFiZTA2YjI0MWI0N2NlOWJhY2I5YjY2MjliNC4uOGIzMWM4ODRlY2Jm
NmQ4ZjcyYzViYjQ5ZDAzNGZlNzlhYTIyOGU0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcApAQCAtMjY5LDYgKzI2OSwxNCBAQCBQYXNz
UmVmUHRyPElEQlRyYW5zYWN0aW9uPiBJREJEYXRhYmFzZTo6dHJhbnNhY3Rpb24oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udAogICAgIHJldHVybiB0cmFuc2FjdGlvbihjb250ZXh0LCBwcnBT
dG9yZU5hbWVzLCBtb2RlU3RyaW5nLCBlYyk7CiB9CiAKK3ZvaWQgSURCRGF0YWJhc2U6OmZvcmNl
Q2xvc2UoKQoreworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIGZvciAoSGFzaFNldDxJ
REJUcmFuc2FjdGlvbio+OjppdGVyYXRvciBpdCA9IG1fdHJhbnNhY3Rpb25zLmJlZ2luKCk7IGl0
ICE9IG1fdHJhbnNhY3Rpb25zLmVuZCgpOyArK2l0KQorICAgICAgICAoKml0KS0+YWJvcnQoZWMp
OworICAgIHRoaXMtPmNsb3NlKCk7Cit9CisKIHZvaWQgSURCRGF0YWJhc2U6OmNsb3NlKCkKIHsK
ICAgICBpZiAobV9jbG9zZVBlbmRpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2UuaAppbmRleCA2NGNiYjMyNmE1ODgzZGNmMzk0NzNjYWExMDk3Mjkw
NWYzZmU2NzVlLi4yNzZlYTYzMWUyNTkyOTFiMjYzYWQ0OGIyNjg3MzY3NGQ2Y2FlOGQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKQEAgLTg3
LDYgKzg3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnRl
cmZhY2VOYW1lKCkgY29uc3Q7CiAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Q7CiAKKyAgICB2b2lkIGZvcmNlQ2xvc2UoKTsK
ICAgICB2b2lkIHJlZ2lzdGVyRnJvbnRlbmRDYWxsYmFja3MoKTsKICAgICBjb25zdCBJREJEYXRh
YmFzZU1ldGFkYXRhIG1ldGFkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9tZXRhZGF0YTsgfQogICAg
IHZvaWQgZW5xdWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrcy5oCmluZGV4
IDE2YTllYTZjNTA4YjBkOTJiNjFlNDk5N2M1NDMwMTMyYTZkMmFjYWEuLmM0ZDJlZDE5NGFjOWU1
M2VlOWM4MzYwMjE2Njg0YTcxYjJkMWU3MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3MuaApAQCAtMzcsNiArMzcs
NyBAQCBjbGFzcyBJREJEYXRhYmFzZUNhbGxiYWNrcyA6IHB1YmxpYyBSZWZDb3VudGVkPElEQkRh
dGFiYXNlQ2FsbGJhY2tzPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCRGF0YWJhc2VDYWxs
YmFja3MoKSB7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBvbkZvcmNlZENsb3NlKCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShpbnQ2NF90IGN1cnJlbnRWZXJzaW9u
LCBpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUNhbGxiYWNrc0ltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcAppbmRleCAxOTQxMmZjYmU1MGFiNDRiZjUzZGMwMWUw
M2Q4ODUzZTI4ZjdjNWZmLi42NjQwOTQ3ZDhhNjZkZTRiYWZhYTIxY2QzZGI5ZTNhNmU4Y2U0NjM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUNhbGxiYWNrc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAKQEAgLTQ2LDYgKzQ2LDEyIEBAIElEQkRhdGFi
YXNlQ2FsbGJhY2tzSW1wbDo6fklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbCgpCiB7CiB9CiAKK3Zv
aWQgSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpvbkZvcmNlZENsb3NlKCkKK3sKKyAgICBpZiAo
bV9kYXRhYmFzZSkKKyAgICAgICAgbV9kYXRhYmFzZS0+Zm9yY2VDbG9zZSgpOworfQorCiB2b2lk
IElEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYg
dmVyc2lvbikKIHsKICAgICBpZiAobV9kYXRhYmFzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmgKaW5k
ZXggZThiMWY5OWI4MzhhZjdiOTM3ZDk0YjdhZjhmN2Y3ZGZiODJiZTdmYi4uNjFkZThhNDdlNWI1
MmNjYTRiYTUxNDljMzUxMjgwNjEyYzQyNzE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmgKQEAg
LTQxLDYgKzQxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkRhdGFiYXNl
Q2FsbGJhY2tzSW1wbD4gY3JlYXRlKElEQkRhdGFiYXNlKik7CiAgICAgdmlydHVhbCB+SURCRGF0
YWJhc2VDYWxsYmFja3NJbXBsKCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgb25Gb3JjZWRDbG9zZSgp
OwogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9u
KTsKICAgICB2b2lkIHVucmVnaXN0ZXJEYXRhYmFzZShJREJEYXRhYmFzZSopOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApp
bmRleCAzMmIyOWI1NjNkNmE1NzIxYzEzNTJiZmQ1YTY0MzM4ZjFhYjc1MjE1Li4yNTU4OGY5NWFh
Y2RkMGJiYzhjNTZhOWMxODIyMDlmZTcxNGUwY2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKQEAgLTEyOSw2ICsxMjks
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SW5zcGVjdG9ySURCRGF0YWJhc2VDYWxsYmFja3Mo
KSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2
ZXJzaW9uKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25Gb3JjZWRDbG9zZSgpIHsgfQogcHJpdmF0
ZToKICAgICBJbnNwZWN0b3JJREJEYXRhYmFzZUNhbGxiYWNrcygpIHsgfQogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZS5oCmluZGV4IDNlYjFlY2I3
NDMzMTU1YzlhYWQxYWI5NzcyZDNkZTFlNDY0YjhmMzEuLmE4YjAzNWM3MjdmODhkZGJmMGNlMTcw
ZWFkNzQxODVjNjhiZTJhZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYklEQkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViSURCRGF0YWJhc2UuaApAQCAtNjQsNiArNjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biAwOwogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKSB7IFdFQktJVF9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBmb3JjZUNsb3NlKCkgeyBXRUJLSVRfQVNT
RVJUX05PVF9SRUFDSEVEKCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBvcGVuKFdlYklEQkRhdGFi
YXNlQ2FsbGJhY2tzKikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2VDYWxsYmFj
a3MuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlQ2FsbGJh
Y2tzLmgKaW5kZXggMDkwN2I4YmYwOGMyNGM1Yzk1ZWE1MTJkOTFhYmU5OTY5MGI4MzhhMy4uMTJk
YTdlMGI0NzZiMTE0NWRkNjkzMTQwZTMxZGE4YWM1ZTE4OTc1MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrcy5oCkBA
IC0zNSw2ICszNSw3IEBAIGNsYXNzIFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzIHsKIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5XZWJJREJEYXRhYmFzZUNhbGxiYWNrcygpIHsgfQogCisgICAgdmlydHVh
bCB2b2lkIG9uRm9yY2VkQ2xvc2UoKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQog
ICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UobG9uZyBsb25nIG9sZFZlcnNpb24sIGxv
bmcgbG9uZyBuZXdWZXJzaW9uKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAg
IHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgV2ViU3RyaW5nJiByZXF1ZXN0ZWRW
ZXJzaW9uKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5j
cHAKaW5kZXggODE2ZmFmNmM0ZGU3MGFlNjkyNjkzMGQwZGU1MGUwZWUyZDExNzg1Yi4uMGFhOTc1
MTkyZTliNjFlYzU3NzYyNTc1ZjkzOTRjOTI4ZDlhMTdlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5jcHAKQEAg
LTQ4LDYgKzQ4LDExIEBAIElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk6On5JREJEYXRhYmFzZUNh
bGxiYWNrc1Byb3h5KCkKIHsKIH0KIAordm9pZCBJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5Ojpv
bkZvcmNlZENsb3NlKCkKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25Gb3JjZWRDbG9zZSgpOworfQor
CiB2b2lkIElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk6Om9uVmVyc2lvbkNoYW5nZShjb25zdCBT
dHJpbmcmIHJlcXVlc3RlZFZlcnNpb24pCiB7CiAgICAgbV9jYWxsYmFja3MtPm9uVmVyc2lvbkNo
YW5nZShyZXF1ZXN0ZWRWZXJzaW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaAppbmRleCBhZmZkY2U3N2Q1ZDk1OGRj
MDBlMGY2ZjgwYWNmZmI4MDEyOTU4YjNiLi43NjcwYjU0YjEwMDk3OTRmMTNkOTIwZWUwNmVlOTM3
YjliZDg4ZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRh
YmFzZUNhbGxiYWNrc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
RGF0YWJhc2VDYWxsYmFja3NQcm94eS5oCkBAIC00MCw2ICs0MCw3IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5PiBjcmVhdGUoUGFzc093
blB0cjxXZWJJREJEYXRhYmFzZUNhbGxiYWNrcz4pOwogICAgIHZpcnR1YWwgfklEQkRhdGFiYXNl
Q2FsbGJhY2tzUHJveHkoKTsKIAorICAgIHZpcnR1YWwgdm9pZCBvbkZvcmNlZENsb3NlKCk7CiAg
ICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShjb25zdCBTdHJpbmcmIHJlcXVlc3RlZFZl
cnNpb24pOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAKaW5kZXggZmYwZTg5ODY0YjIx
YTY0Njg5YjAzMTI2Y2FhZjNmZTU2NTlmYWYzMS4uYzFhMjAyODg3OTBmYjA2NTM0ODU1MTgwNDA1
NzI3N2Y1YjdiYTU0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwCkBAIC00NCw2ICs0NCwxMSBAQCBX
ZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6On5XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwo
KQogewogfQogCit2b2lkIFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25Gb3JjZWRDbG9z
ZSgpCit7CisgICAgbV9jYWxsYmFja3MtPm9uRm9yY2VkQ2xvc2UoKTsKK30KKwogdm9pZCBXZWJJ
REJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uVmVyc2lvbkNoYW5nZShjb25zdCBXZWJTdHJpbmcm
IHZlcnNpb24pCiB7CiAgICAgbV9jYWxsYmFja3MtPm9uVmVyc2lvbkNoYW5nZSh2ZXJzaW9uKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2Fs
bGJhY2tzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VD
YWxsYmFja3NJbXBsLmgKaW5kZXggMjFjM2RjN2M1YWM0YWQwYmVhOGRmMjkxNmViYjNmODhjNjdm
ZjA1Zi4uYjgyZjAzZjkzNWU0NzJlOWI3NmNlMTE2MzNlYjEzOTkzYWM3MGQwOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBs
LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFj
a3NJbXBsLmgKQEAgLTQzLDYgKzQzLDcgQEAgcHVibGljOgogICAgIFdlYklEQkRhdGFiYXNlQ2Fs
bGJhY2tzSW1wbChQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzPik7CiAg
ICAgdmlydHVhbCB+V2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsKCk7CiAKKyAgICB2aXJ0dWFs
IHZvaWQgb25Gb3JjZWRDbG9zZSgpOwogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2Uo
Y29uc3QgV2ViU3RyaW5nJiB2ZXJzaW9uKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCmluZGV4IGJjNmQwOWZhMWZi
OTcwYzI5N2UxNzdhMjE1NGVlNzEwMThmYWZmZjcuLmZiZDVjNmZmOWQ5NjBhNDQ2YzA2YjE1ZTY1
M2NlMmE1NGMzZDI3OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkRhdGFiYXNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCRGF0YWJhc2VJbXBsLmNwcApAQCAtOTYsOCArOTYsMTYgQEAgdm9pZCBXZWJJREJEYXRhYmFz
ZUltcGw6OmNsb3NlKCkKICAgICAvLyBtdWx0aS1wcm9jZXNzIGNocm9taXVtIGtub3dzIHdoaWNo
IGRhdGFiYXNlIGNvbm5lY3Rpb24gaXMgY2xvc2luZy4KICAgICBpZiAoIW1fZGF0YWJhc2VDYWxs
YmFja3MpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2RhdGFiYXNlQmFja2VuZC0+Y2xvc2UobV9k
YXRhYmFzZUNhbGxiYWNrcyk7Ci0gICAgbV9kYXRhYmFzZUNhbGxiYWNrcyA9IDA7CisgICAgbV9k
YXRhYmFzZUJhY2tlbmQtPmNsb3NlKG1fZGF0YWJhc2VDYWxsYmFja3MucmVsZWFzZSgpKTsKK30K
Kwordm9pZCBXZWJJREJEYXRhYmFzZUltcGw6OmZvcmNlQ2xvc2UoKQoreworICAgIGlmICghbV9k
YXRhYmFzZUNhbGxiYWNrcykKKyAgICAgICAgcmV0dXJuOworICAgIFJlZlB0cjxJREJEYXRhYmFz
ZUNhbGxiYWNrc1Byb3h5PiBjYWxsYmFja3MgPSBtX2RhdGFiYXNlQ2FsbGJhY2tzLnJlbGVhc2Uo
KTsKKyAgICBtX2RhdGFiYXNlQmFja2VuZC0+Y2xvc2UoY2FsbGJhY2tzKTsKKyAgICBjYWxsYmFj
a3MtPm9uRm9yY2VkQ2xvc2UoKTsKIH0KIAogdm9pZCBXZWJJREJEYXRhYmFzZUltcGw6Om9wZW4o
V2ViSURCRGF0YWJhc2VDYWxsYmFja3MqIGNhbGxiYWNrcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgKaW5kZXggNGY4MjUxODIwYTQ5YmJkZmRl
NTJmYWI5MWVmZmE1YWVjMDhiYTQ2ZC4uMWRjNWZjNGFkY2NiZDI1NjUzZDU4MGJiNmZjZDI2NmI5
MDE5ZGNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0
YWJhc2VJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJh
c2VJbXBsLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQogCisjaW5jbHVkZSAiSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5oIgogI2luY2x1ZGUgInBs
YXRmb3JtL1dlYkNvbW1vbi5oIgogI2luY2x1ZGUgIldlYkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNs
dWRlICJXZWJJREJEYXRhYmFzZS5oIgpAQCAtMzgsNyArMzksNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7IGNsYXNzIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTsgfQogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAotY2xhc3MgSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eTsKIGNsYXNzIFdlYklEQkRh
dGFiYXNlQ2FsbGJhY2tzOwogY2xhc3MgV2ViSURCRGF0YWJhc2VNZXRhZGF0YTsKIGNsYXNzIFdl
YklEQk9iamVjdFN0b3JlOwpAQCAtNTYsNiArNTYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViSURC
VHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lkIHNldFZl
cnNpb24oY29uc3QgV2ViU3RyaW5nJiB2ZXJzaW9uLCBXZWJJREJDYWxsYmFja3MqLCBXZWJFeGNl
cHRpb25Db2RlJik7CiAgICAgdmlydHVhbCBXZWJJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24o
Y29uc3QgV2ViRE9NU3RyaW5nTGlzdCYgbmFtZXMsIHVuc2lnbmVkIHNob3J0IG1vZGUsIFdlYkV4
Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZm9yY2VDbG9zZSgpOwogICAgIHZpcnR1
YWwgdm9pZCBjbG9zZSgpOwogCiAgICAgLy8gRklYTUU6IFJlbmFtZSAib3BlbiIgdG8gcmVnaXN0
ZXJGcm9udGVuZENhbGxiYWNrcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCmluZGV4IDIyNzc4ODc1ZmE5MzQwMjA3
ODczMDEzOGUxM2EzNDYxNmY0MzU5MTIuLmVhZGVhYTgxYTQyZWJhNzBiOTNmOWFkNGQzYTNmZTFm
ZGJkOGJhOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0
YWJhc2VCYWNrZW5kVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9J
REJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcApAQCAtMzIsMTIgKzMyLDE3IEBACiAjaW5jbHVkZSAi
SURCSW5kZXhCYWNrZW5kSW1wbC5oIgogI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlQmFja2VuZElt
cGwuaCIKICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmgiCisjaW5jbHVkZSAi
V2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmgiCisjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VJ
bXBsLmgiCiAKICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgogCiAjaWYgRU5BQkxFKElOREVYRURf
REFUQUJBU0UpCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwordXNpbmcgV2ViS2l0OjpXZWJJ
REJEYXRhYmFzZTsKK3VzaW5nIFdlYktpdDo6V2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOwor
dXNpbmcgV2ViS2l0OjpXZWJJREJEYXRhYmFzZUltcGw7CiAKIG5hbWVzcGFjZSB7CiAKQEAgLTEw
MCw2ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RmFrZUlEQkRhdGFi
YXNlQ2FsbGJhY2tzPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgRmFrZUlEQkRhdGFi
YXNlQ2FsbGJhY2tzKCkpOyB9CiAgICAgdmlydHVhbCB+RmFrZUlEQkRhdGFiYXNlQ2FsbGJhY2tz
KCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShjb25zdCBTdHJpbmcmIHZl
cnNpb24pIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBvbkZvcmNlZENsb3NlKCkgT1ZF
UlJJREUgeyB9CiBwcml2YXRlOgogICAgIEZha2VJREJEYXRhYmFzZUNhbGxiYWNrcygpIHsgfQog
fTsKQEAgLTEzMyw2ICsxMzksNzIgQEAgVEVTVChJREJEYXRhYmFzZUJhY2tlbmRUZXN0LCBDb25u
ZWN0aW9uTGlmZWN5Y2xlKQogICAgIEVYUEVDVF9UUlVFKGJhY2tpbmdTdG9yZS0+aGFzT25lUmVm
KCkpOwogfQogCitjbGFzcyBNb2NrSURCRGF0YWJhc2VCYWNrZW5kUHJveHkgOiBwdWJsaWMgSURC
RGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxNb2NrSURCRGF0YWJhc2VCYWNrZW5kUHJveHk+IGNyZWF0ZShXZWJJREJEYXRhYmFzZUltcGwm
IGRhdGFiYXNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNb2NrSURCRGF0
YWJhc2VCYWNrZW5kUHJveHkoZGF0YWJhc2UpKTsKKyAgICB9CisKKyAgICB+TW9ja0lEQkRhdGFi
YXNlQmFja2VuZFByb3h5KCkKKyAgICB7CisgICAgICAgIEVYUEVDVF9UUlVFKG1fd2FzUmVnaXN0
ZXJGcm9udGVuZENhbGxiYWNrc0NhbGxlZCk7CisgICAgfQorCisgICAgdmlydHVhbCBJREJEYXRh
YmFzZU1ldGFkYXRhIG1ldGFkYXRhKCkgY29uc3QgeyByZXR1cm4gSURCRGF0YWJhc2VNZXRhZGF0
YSgpOyB9CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEludGVy
ZmFjZT4gY3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQ
YXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2Uq
LCBFeGNlcHRpb25Db2RlJikgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgdm9pZCBkZWxldGVP
YmplY3RTdG9yZShjb25zdCBTdHJpbmcmIG5hbWUsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmVyc2lvbihj
b25zdCBTdHJpbmcmIHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIEV4Y2VwdGlvbkNvZGUmKSB7IH0KKyAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlvbihE
T01TdHJpbmdMaXN0KiBzdG9yZU5hbWVzLCB1bnNpZ25lZCBzaG9ydCBtb2RlLCBFeGNlcHRpb25D
b2RlJikgeyByZXR1cm4gMDsgfQorCisgICAgdmlydHVhbCB2b2lkIGNsb3NlKFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VDYWxsYmFja3M+KQorICAgIHsKKyAgICAgICAgbV93YXNDbG9zZUNhbGxlZCA9
IHRydWU7CisgICAgICAgIG1fd2ViRGF0YWJhc2UuY2xvc2UoKTsKKyAgICB9CisgICAgdmlydHVh
bCB2b2lkIHJlZ2lzdGVyRnJvbnRlbmRDYWxsYmFja3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNh
bGxiYWNrcz4gY29ubmVjdGlvbikKKyAgICB7CisgICAgICAgIG1fd2FzUmVnaXN0ZXJGcm9udGVu
ZENhbGxiYWNrc0NhbGxlZCA9IHRydWU7CisgICAgICAgIG1fd2ViRGF0YWJhc2Uub3BlbihuZXcg
V2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsKGNvbm5lY3Rpb24pKTsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgTW9ja0lEQkRhdGFiYXNlQmFja2VuZFByb3h5KFdlYklEQkRhdGFiYXNlSW1wbCYg
d2ViRGF0YWJhc2UpCisgICAgICAgIDogbV93YXNSZWdpc3RlckZyb250ZW5kQ2FsbGJhY2tzQ2Fs
bGVkKGZhbHNlKQorICAgICAgICAsIG1fd2FzQ2xvc2VDYWxsZWQoZmFsc2UpCisgICAgICAgICwg
bV93ZWJEYXRhYmFzZSh3ZWJEYXRhYmFzZSkgeyB9CisKKyAgICBib29sIG1fd2FzUmVnaXN0ZXJG
cm9udGVuZENhbGxiYWNrc0NhbGxlZDsKKyAgICBib29sIG1fd2FzQ2xvc2VDYWxsZWQ7CisKKyAg
ICBXZWJJREJEYXRhYmFzZUltcGwmIG1fd2ViRGF0YWJhc2U7Cit9OworCitURVNUKElEQkRhdGFi
YXNlQmFja2VuZFRlc3QsIEZvcmNlZENsb3NlKQoreworICAgIFJlZlB0cjxJREJGYWtlQmFja2lu
Z1N0b3JlPiBiYWNraW5nU3RvcmUgPSBhZG9wdFJlZihuZXcgSURCRmFrZUJhY2tpbmdTdG9yZSgp
KTsKKyAgICBFWFBFQ1RfVFJVRShiYWNraW5nU3RvcmUtPmhhc09uZVJlZigpKTsKKworICAgIElE
QlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IqIGNvb3JkaW5hdG9yID0gMDsKKyAgICBJREJGYWN0b3J5
QmFja2VuZEltcGwqIGZhY3RvcnkgPSAwOworICAgIFJlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJ
bXBsPiBiYWNrZW5kID0gSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Y3JlYXRlKCJkYiIsIGJhY2tp
bmdTdG9yZS5nZXQoKSwgY29vcmRpbmF0b3IsIGZhY3RvcnksICJ1bmlxdWVpZCIpOworICAgIEVY
UEVDVF9HVChiYWNraW5nU3RvcmUtPnJlZkNvdW50KCksIDEpOworCisgICAgV2ViSURCRGF0YWJh
c2VJbXBsIHdlYkRhdGFiYXNlKGJhY2tlbmQpOworCisgICAgUmVmUHRyPE1vY2tJREJDYWxsYmFj
a3M+IHJlcXVlc3QxID0gTW9ja0lEQkNhbGxiYWNrczo6Y3JlYXRlKCk7CisgICAgYmFja2VuZC0+
b3BlbkNvbm5lY3Rpb24ocmVxdWVzdDEpOworCisgICAgUmVmUHRyPE1vY2tJREJEYXRhYmFzZUJh
Y2tlbmRQcm94eT4gcHJveHkgPSBNb2NrSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmNyZWF0ZSh3
ZWJEYXRhYmFzZSk7CisKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gMDsK
KyAgICBSZWZQdHI8SURCRGF0YWJhc2U+IGlkYkRhdGFiYXNlID0gSURCRGF0YWJhc2U6OmNyZWF0
ZShjb250ZXh0LCBwcm94eSk7CisgICAgaWRiRGF0YWJhc2UtPnJlZ2lzdGVyRnJvbnRlbmRDYWxs
YmFja3MoKTsKKworICAgIHdlYkRhdGFiYXNlLmZvcmNlQ2xvc2UoKTsKKyAgICBFWFBFQ1RfVFJV
RShiYWNraW5nU3RvcmUtPmhhc09uZVJlZigpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UKIAogI2Vu
ZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160039</attachid>
            <date>2012-08-22 17:17:33 -0700</date>
            <delta_ts>2012-08-23 16:13:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91010-20120822171731.patch</filename>
            <type>text/plain</type>
            <size>17925</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2MjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2MzZDY3MTAzYzJhZDkx
ZWMxMTQ1M2IxOWRiM2QyOGJhYWFiMWZiZi4uNzU0OTkxYTQyNTU0NzY4Njk5YTYxMGI3ODZlODM5
Mzg4ZGUyNmE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA4LTE1ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBFeHBv
c2UgbWVjaGFuaXNtIGZvciBkYXRhYmFzZSB0byBmb3JjZSBhIGNvbm5lY3Rpb24gdG8gY2xvc2UK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMDEwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gcmVzcG9u
c2UgdG8gdXNlciBhY3Rpb24gKGUuZy4gImRlbGV0ZSBteSBicm93c2luZyBkYXRhIikgYSBjb25u
ZWN0aW9uIG1heQorICAgICAgICBuZWVkIHRvIGJlIGZvcmNpYmx5IHRlcm1pbmF0ZWQuIFRoaXMg
YWxsb3dzIGFuIGV2ZW50IHRvIGJlIHNlbnQgdG8gYSBjb25uZWN0aW9uCisgICAgICAgIGZyb20g
dGhlIGJhY2sgZW5kIHZpYSBJREJEYXRhYmFzZUNhbGxiYWNrcyB0byBpbml0aWF0ZSBjbG9zaW5n
IHRoZSBjb25uZWN0aW9uLgorCisgICAgICAgIFRlc3Q6IFtjaHJvbWl1bV0gd2Via2l0X3VuaXRf
dGVzdCAtLWd0ZXN0X2ZpbHRlcj0nSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5Gb3JjZWRDbG9zZScK
KworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OklEQkRhdGFiYXNlOjpmb3JjZUNsb3NlKTogQWJvcnQgYWxsIHRyYW5zYWN0aW9u
cyBhbmQgY2xvc2UuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZS5oOgorICAgICAgICAoSURCRGF0YWJhc2UpOiBFbnRyeSBwb2ludC4K
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrcy5oOgorICAg
ICAgICAoSURCRGF0YWJhc2VDYWxsYmFja3MpOiBFdmVudCBwbHVtYmluZyBmcm9tIGJhY2sgZW5k
LgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uRm9yY2Vk
Q2xvc2UpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oOgorICAgICAgICAoSURCRGF0YWJhc2VD
YWxsYmFja3NJbXBsKTogRGl0dG8uCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckluZGV4
ZWREQkFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOiBNZXRob2Qgc3R1Yi4KKwogMjAxMi0w
OC0yMiAgQW5kcmV5IEFkYWlraW4gIDxhYW5kcmV5QGNocm9taXVtLm9yZz4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBbV2ViR0xdIEdlbmVyaWMgZnJhbWV3b3JrIGRyYWZ0IGZvciB0cmFja2lu
ZyBXZWJHTCByZXNvdXJjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNzgwNGVjZDk3
ZjE0OWJmMDgzNDkwMzIzMGU3N2IwMDE3Mjk0MTIyZi4uNmI2MmFlYzk5YzIzZmYxZDBjNWQyNjk2
MmU1ZDdjODA2MjJiZTQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
NyBAQAorMjAxMi0wOC0xNSAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIEluZGV4ZWREQjogRXhwb3NlIG1lY2hhbmlzbSBmb3IgZGF0YWJhc2UgdG8gZm9yY2Ug
YSBjb25uZWN0aW9uIHRvIGNsb3NlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05MTAxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEluIENocm9taXVtLCB0aGUgYnJvd3NpbmcgZGF0YSBkZWxldGVyIGhhcyBh
IFdlYklEQkRhdGFiYXNlIGhhbmRsZSB3aGljaAorICAgICAgICBpdCBjYW4gdXNlIHRvIHRlcm1p
bmF0ZSBhIGNvbm5lY3Rpb24uIFRoaXMgaGFuZGxlcyBmb3JjZWZ1bGx5IGNsb3NpbmcKKyAgICAg
ICAgdGhlIGZyb250IGVuZCBjb25uZWN0aW9ucyBhbmQgdGhlIGJhY2sgZW5kLCB0byB1bmJsb2Nr
IGRpc2sgY2xlYW51cC4KKworICAgICAgICAqIHB1YmxpYy9XZWJJREJEYXRhYmFzZS5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZTo6Zm9yY2VDbG9zZSk6IEVudHJ5IHBvaW50Lgor
ICAgICAgICAqIHB1YmxpYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrcy5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJJREJEYXRhYmFzZUNhbGxiYWNrczo6b25Gb3JjZWRDbG9zZSk6IFBsdW1iaW5nIGJh
Y2sgdG8gZnJvbnQuCisgICAgICAgICogc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5OjpvbkZvcmNlZENs
b3NlKTogUGx1bWJpbmcgYmFjayB0byBmcm9udC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
ICogc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaDoKKyAgICAgICAgKElEQkRhdGFiYXNl
Q2FsbGJhY2tzUHJveHkpOiBQbHVtYmluZy4KKyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VD
YWxsYmFja3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2VDYWxsYmFj
a3NJbXBsOjpvbkZvcmNlZENsb3NlKTogUGx1bWJpbmcgYmFjayB0byBmcm9udC4KKyAgICAgICAg
KFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oOgor
ICAgICAgICAoV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsKTogUGx1bWJpbmcgYmFjayB0byBm
cm9udC4KKyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCRGF0YWJhc2VJbXBsOjpjbG9zZSk6IFRpZHkgdXAgZHJvcHBpbmcgdGhlIGNh
bGxiYWNrIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YklEQkRhdGFiYXNlSW1wbDo6Zm9yY2VDbG9zZSk6IFRlcm1pbmF0ZSB0aGUgY29ubmVjdGlvbiBi
eSBub3RpZnlpbmcKKyAgICAgICAgdGhlIGJhY2sgZW5kIGFuZCB0aGUgZnJvbnQgZW5kLCB3aGls
ZSBhdm9pZCByZS1lbnRyYW50IGJhZG5lc3MuCisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNl
SW1wbC5oOiBIZWFkZXIgdHdlYWsgZm9yIHVuaXQgdGVzdC4KKyAgICAgICAgKFdlYklEQkRhdGFi
YXNlSW1wbCk6CisgICAgICAgICogdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHA6IEFk
ZGVkIHVuaXQgdGVzdCB0byBleGVyY2lzZSBjb25uZWN0aW9ucy4KKwogMjAxMi0wOC0yMiAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZC4gIFJvbGxlZCBERVBTLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRGF0YWJhc2UuY3BwCmluZGV4IGRhYjc0ZWQwZThiNGUzZGMwYzE2ODY2MWFhYWFhODFj
MDZlYjc1OGUuLmFhOTNlNmE4MmM3NTQ4Yzk4YjE5OTQyNWFhMDBiMmNlYzM5ZTg4OTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKQEAg
LTI3Miw2ICsyNzIsMTQgQEAgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbj4gSURCRGF0YWJhc2U6
OnRyYW5zYWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnQKICAgICByZXR1cm4gdHJh
bnNhY3Rpb24oY29udGV4dCwgcHJwU3RvcmVOYW1lcywgbW9kZVN0cmluZywgZWMpOwogfQogCit2
b2lkIElEQkRhdGFiYXNlOjpmb3JjZUNsb3NlKCkKK3sKKyAgICBFeGNlcHRpb25Db2RlIGVjID0g
MDsKKyAgICBmb3IgKEhhc2hTZXQ8SURCVHJhbnNhY3Rpb24qPjo6aXRlcmF0b3IgaXQgPSBtX3Ry
YW5zYWN0aW9ucy5iZWdpbigpOyBpdCAhPSBtX3RyYW5zYWN0aW9ucy5lbmQoKTsgKytpdCkKKyAg
ICAgICAgKCppdCktPmFib3J0KGVjKTsKKyAgICB0aGlzLT5jbG9zZSgpOworfQorCiB2b2lkIElE
QkRhdGFiYXNlOjpjbG9zZSgpCiB7CiAgICAgaWYgKG1fY2xvc2VQZW5kaW5nKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKaW5kZXggYTdkNzJjZTE5
OGYzZTBmZGFhZDBjYTNmMzBmODZjNGVmMzdhNzJiMy4uMjdmMDNiNmUzNTQ4YTgwMGY0MWEzZmFl
NTg2MDE3OWM4N2ZkNzJjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZS5oCkBAIC04OCw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgaW50ZXJmYWNlTmFtZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0OwogCisg
ICAgdm9pZCBmb3JjZUNsb3NlKCk7CiAgICAgdm9pZCByZWdpc3RlckZyb250ZW5kQ2FsbGJhY2tz
KCk7CiAgICAgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSBtZXRhZGF0YSgpIGNvbnN0IHsgcmV0
dXJuIG1fbWV0YWRhdGE7IH0KICAgICB2b2lkIGVucXVldWVFdmVudChQYXNzUmVmUHRyPEV2ZW50
Pik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUNhbGxiYWNrcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VDYWxsYmFja3MuaAppbmRleCBmYWExNjZmN2Y1MTFmZjY2NjZmMzk3M2RiYjg0MDRiN2Y5
YjUyM2ZkLi5lODNkZTUxMjhmYjkyNWVhZDc2MjE4YWMwNDMxODU2ZTljZGY2NDU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNr
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2Fs
bGJhY2tzLmgKQEAgLTM3LDYgKzM3LDcgQEAgY2xhc3MgSURCRGF0YWJhc2VDYWxsYmFja3MgOiBw
dWJsaWMgUmVmQ291bnRlZDxJREJEYXRhYmFzZUNhbGxiYWNrcz4gewogcHVibGljOgogICAgIHZp
cnR1YWwgfklEQkRhdGFiYXNlQ2FsbGJhY2tzKCkgeyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgb25G
b3JjZWRDbG9zZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0
IFN0cmluZyYgdmVyc2lvbikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2Uo
aW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pID0gMDsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNr
c0ltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VD
YWxsYmFja3NJbXBsLmNwcAppbmRleCBjZWI3YWYzMWYzZTIyNDg2MWUwNTA3NjIxMGZhZmM1YTA1
OGRmMjEyLi5mNjU2NWRjYTFiZDgyMmZlNmRjMTM1OTY4YzNiMGVkYjk5OTVhM2I4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNr
c0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlQ2FsbGJhY2tzSW1wbC5jcHAKQEAgLTQ2LDYgKzQ2LDEyIEBAIElEQkRhdGFiYXNlQ2FsbGJh
Y2tzSW1wbDo6fklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbCgpCiB7CiB9CiAKK3ZvaWQgSURCRGF0
YWJhc2VDYWxsYmFja3NJbXBsOjpvbkZvcmNlZENsb3NlKCkKK3sKKyAgICBpZiAobV9kYXRhYmFz
ZSkKKyAgICAgICAgbV9kYXRhYmFzZS0+Zm9yY2VDbG9zZSgpOworfQorCiB2b2lkIElEQkRhdGFi
YXNlQ2FsbGJhY2tzSW1wbDo6b25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgdmVyc2lvbikK
IHsKICAgICBpZiAobV9kYXRhYmFzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmgKaW5kZXggMDJjOGRl
MGRmZTlmNmVmZGVkNjgwNWI3YmFjOTIxNzhmYjgwODhkOS4uNzkyYmUzYWQ3NmY1NGYwMzU5ZDZh
ZjE2MDNlNWRkOTNiOTFkNmJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmgKQEAgLTQxLDYgKzQx
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tz
SW1wbD4gY3JlYXRlKElEQkRhdGFiYXNlKik7CiAgICAgdmlydHVhbCB+SURCRGF0YWJhc2VDYWxs
YmFja3NJbXBsKCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgb25Gb3JjZWRDbG9zZSgpOwogICAgIHZp
cnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uKTsKICAgICB2
aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGludDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBu
ZXdWZXJzaW9uKTsKICAgICB2b2lkIHVucmVnaXN0ZXJEYXRhYmFzZShJREJEYXRhYmFzZSopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2Vu
dC5jcHAKaW5kZXggNzBjMmI1OTk3NDEwZjZhNmY3OTExMDAwN2JhNzg4MDgzYjEwZDc0ZS4uMzNi
MjFiNGZkZDEyYzE5OTI1ZjQ1YzMzM2FlYTcwNDczN2VjNmY4MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCkBAIC0xMzAs
NiArMTMwLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShj
b25zdCBTdHJpbmcmIHZlcnNpb24pIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFu
Z2UoaW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pIHsgfQorICAgIHZpcnR1
YWwgdm9pZCBvbkZvcmNlZENsb3NlKCkgeyB9CiBwcml2YXRlOgogICAgIEluc3BlY3RvcklEQkRh
dGFiYXNlQ2FsbGJhY2tzKCkgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYklEQkRhdGFiYXNlLmgKaW5kZXggM2ViMWVjYjc0MzMxNTVjOWFhZDFhYjk3NzJkM2Rl
MWU0NjRiOGYzMS4uYThiMDM1YzcyN2Y4OGRkYmYwY2UxNzBlYWQ3NDE4NWM2OGJlMmFkNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZS5oCkBAIC02
NCw2ICs2NCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogICAgIHZpcnR1
YWwgdm9pZCBjbG9zZSgpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmly
dHVhbCB2b2lkIGZvcmNlQ2xvc2UoKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQog
CiAgICAgdmlydHVhbCB2b2lkIG9wZW4oV2ViSURCRGF0YWJhc2VDYWxsYmFja3MqKSB7IFdFQktJ
VF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrcy5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3MuaAppbmRleCAwOTA3YjhiZjA4
YzI0YzVjOTVlYTUxMmQ5MWFiZTk5NjkwYjgzOGEzLi4xMmRhN2UwYjQ3NmIxMTQ1ZGQ2OTMxNDBl
MzFkYThhYzVlMTg5NzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzLmgKQEAgLTM1LDYgKzM1LDcgQEAgY2xhc3Mg
V2ViSURCRGF0YWJhc2VDYWxsYmFja3MgewogcHVibGljOgogICAgIHZpcnR1YWwgfldlYklEQkRh
dGFiYXNlQ2FsbGJhY2tzKCkgeyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgb25Gb3JjZWRDbG9zZSgp
IHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9uVmVy
c2lvbkNoYW5nZShsb25nIGxvbmcgb2xkVmVyc2lvbiwgbG9uZyBsb25nIG5ld1ZlcnNpb24pIHsg
V0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lv
bkNoYW5nZShjb25zdCBXZWJTdHJpbmcmIHJlcXVlc3RlZFZlcnNpb24pIHsgV0VCS0lUX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcAppbmRleCAwMTllNTliYTA2MWYw
ZmI4NGUzYTkzYWI4OTVmYmE5YmVkNWQxYzAxLi4zMTg5N2RhOWU4Y2U5MTg4OWQ1MTcyNWNlOTk5
ZTgyNzM4ZDE1NTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJE
YXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmNwcApAQCAtNDgsNiArNDgsMTEgQEAgSURCRGF0
YWJhc2VDYWxsYmFja3NQcm94eTo6fklEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkoKQogewogfQog
Cit2b2lkIElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk6Om9uRm9yY2VkQ2xvc2UoKQoreworICAg
IG1fY2FsbGJhY2tzLT5vbkZvcmNlZENsb3NlKCk7Cit9CisKIHZvaWQgSURCRGF0YWJhc2VDYWxs
YmFja3NQcm94eTo6b25WZXJzaW9uQ2hhbmdlKGludDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBu
ZXdWZXJzaW9uKQogewogICAgIG1fY2FsbGJhY2tzLT5vblZlcnNpb25DaGFuZ2Uob2xkVmVyc2lv
biwgbmV3VmVyc2lvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmgKaW5kZXggOTk5NWFiZDJiNmFkOWQwMjRlMTUyZjEw
ZDBlZTYwMzFjODVjM2M1NC4uY2IxZGRiMzQ2NmI5ZmJiMWUzMzFkZmJjOTJkNmI0OTY0ZTI1MGRj
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxs
YmFja3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNl
Q2FsbGJhY2tzUHJveHkuaApAQCAtNDAsNiArNDAsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eT4gY3JlYXRlKFBhc3NPd25QdHI8V2Vi
SURCRGF0YWJhc2VDYWxsYmFja3M+KTsKICAgICB2aXJ0dWFsIH5JREJEYXRhYmFzZUNhbGxiYWNr
c1Byb3h5KCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgb25Gb3JjZWRDbG9zZSgpOwogICAgIHZpcnR1
YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiByZXF1ZXN0ZWRWZXJzaW9uKTsK
ICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGludDY0X3Qgb2xkVmVyc2lvbiwgaW50
NjRfdCBuZXdWZXJzaW9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAKaW5kZXggMTQ3NTdiYWM2NzBk
OWRlNGZhZmE0OWVhYTY4OWVkOWM0ZGFiYmU0OS4uNWFlODZhNjc5NmExOTg2Y2UzZjdmODJjM2Jm
ZDE4N2FjMGYyNGM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwCkBAIC00NCw2ICs0NCwxMSBAQCBX
ZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6On5XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwo
KQogewogfQogCit2b2lkIFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25Gb3JjZWRDbG9z
ZSgpCit7CisgICAgbV9jYWxsYmFja3MtPm9uRm9yY2VkQ2xvc2UoKTsKK30KKwogdm9pZCBXZWJJ
REJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uVmVyc2lvbkNoYW5nZShsb25nIGxvbmcgb2xkVmVy
c2lvbiwgbG9uZyBsb25nIG5ld1ZlcnNpb24pCiB7CiAgICAgbV9jYWxsYmFja3MtPm9uVmVyc2lv
bkNoYW5nZShvbGRWZXJzaW9uLCBuZXdWZXJzaW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmgKaW5kZXggMTg1
N2NhNjU4ZDMwZmMyNjAwNTIxYTZkYWQxOTMxMzEzODU3Y2Y5Yy4uYjA3MzdlZWIyYTliNjBiNGU0
MzU1YTg0NDBhYzQ1MDkzOGE0YjgzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmgKQEAgLTQzLDYgKzQzLDcg
QEAgcHVibGljOgogICAgIFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbChQYXNzUmVmUHRyPFdl
YkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzPik7CiAgICAgdmlydHVhbCB+V2ViSURCRGF0YWJh
c2VDYWxsYmFja3NJbXBsKCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgb25Gb3JjZWRDbG9zZSgpOwog
ICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UobG9uZyBsb25nIG9sZFZlcnNpb24sIGxv
bmcgbG9uZyBuZXdWZXJzaW9uKTsKICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGNv
bnN0IFdlYlN0cmluZyYgdmVyc2lvbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCmluZGV4IDkzNDMyODFjZjRkMGFmMTdjYjZjMzIy
NTA4MWRmNDA3MWRhZTg3M2YuLjBkMTQyYmMwMjkzYWExM2Y1YjE5MmMzZmRiYzU2MzM3Y2RhYzc1
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNl
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJ
bXBsLmNwcApAQCAtOTksOCArOTksMTggQEAgdm9pZCBXZWJJREJEYXRhYmFzZUltcGw6OmNsb3Nl
KCkKICAgICAgICAgbV9jbG9zZVBlbmRpbmcgPSB0cnVlOwogICAgICAgICByZXR1cm47CiAgICAg
fQotICAgIG1fZGF0YWJhc2VCYWNrZW5kLT5jbG9zZShtX2RhdGFiYXNlQ2FsbGJhY2tzKTsKLSAg
ICBtX2RhdGFiYXNlQ2FsbGJhY2tzID0gMDsKKyAgICBtX2RhdGFiYXNlQmFja2VuZC0+Y2xvc2Uo
bV9kYXRhYmFzZUNhbGxiYWNrcy5yZWxlYXNlKCkpOworfQorCit2b2lkIFdlYklEQkRhdGFiYXNl
SW1wbDo6Zm9yY2VDbG9zZSgpCit7CisgICAgaWYgKCFtX2RhdGFiYXNlQ2FsbGJhY2tzKSB7Cisg
ICAgICAgIG1fY2xvc2VQZW5kaW5nID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICBSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eT4gY2FsbGJhY2tzID0gbV9kYXRhYmFz
ZUNhbGxiYWNrcy5yZWxlYXNlKCk7CisgICAgbV9kYXRhYmFzZUJhY2tlbmQtPmNsb3NlKGNhbGxi
YWNrcyk7CisgICAgY2FsbGJhY2tzLT5vbkZvcmNlZENsb3NlKCk7CiB9CiAKIHZvaWQgV2ViSURC
RGF0YWJhc2VJbXBsOjpvcGVuKFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzKiBjYWxsYmFja3MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwu
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oCmluZGV4
IDE0MDljYjY1ZjA2NWZiMzVkNDAwNzAzZjZjN2JlNzIyNGRkMDAwMzUuLjRhODI4NGNlNTlhZDFl
NjM2Y2M0ZmJjOTcyN2JjYjc3YTQyMmMzMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKIAorI2luY2x1ZGUgIklEQkRhdGFiYXNlQ2FsbGJhY2tzUHJv
eHkuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJDb21tb24uaCIKICNpbmNsdWRlICJXZWJFeGNl
cHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2UuaCIKQEAgLTM4LDcgKzM5LDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgeyBjbGFzcyBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U7
IH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJv
eHk7CiBjbGFzcyBXZWJJREJEYXRhYmFzZUNhbGxiYWNrczsKIGNsYXNzIFdlYklEQkRhdGFiYXNl
TWV0YWRhdGE7CiBjbGFzcyBXZWJJREJPYmplY3RTdG9yZTsKQEAgLTU2LDYgKzU2LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9yZShjb25zdCBXZWJTdHJpbmcm
IG5hbWUsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRWZXJzaW9uKGNvbnN0IFdlYlN0cmluZyYgdmVyc2lvbiwgV2ViSURC
Q2FsbGJhY2tzKiwgV2ViRXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgV2ViSURCVHJhbnNh
Y3Rpb24qIHRyYW5zYWN0aW9uKGNvbnN0IFdlYkRPTVN0cmluZ0xpc3QmIG5hbWVzLCB1bnNpZ25l
ZCBzaG9ydCBtb2RlLCBXZWJFeGNlcHRpb25Db2RlJik7CisgICAgdmlydHVhbCB2b2lkIGZvcmNl
Q2xvc2UoKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKTsKIAogICAgIC8vIEZJWE1FOiBSZW5h
bWUgIm9wZW4iIHRvIHJlZ2lzdGVyRnJvbnRlbmRDYWxsYmFja3MuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcAppbmRl
eCA4NjA1YzBmMWFjNjI4N2ZmZGM4MjgxOGU1YTNlMDU2MzRhOGIyYzgxLi5lYWQ3ZjliYjk2MjE2
OTgyMWZkZWY3MDJmODE5NjJjMjRkYTQ1MDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKQEAgLTMyLDEyICsz
MiwxNyBAQAogI2luY2x1ZGUgIklEQkluZGV4QmFja2VuZEltcGwuaCIKICNpbmNsdWRlICJJREJP
YmplY3RTdG9yZUJhY2tlbmRJbXBsLmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25Db29yZGlu
YXRvci5oIgorI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oIgorI2luY2x1
ZGUgIldlYklEQkRhdGFiYXNlSW1wbC5oIgogCiAjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KIAog
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
K3VzaW5nIFdlYktpdDo6V2ViSURCRGF0YWJhc2U7Cit1c2luZyBXZWJLaXQ6OldlYklEQkRhdGFi
YXNlQ2FsbGJhY2tzSW1wbDsKK3VzaW5nIFdlYktpdDo6V2ViSURCRGF0YWJhc2VJbXBsOwogCiBu
YW1lc3BhY2UgewogCkBAIC0xMDEsNiArMTA2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkZh
a2VJREJEYXRhYmFzZUNhbGxiYWNrcygpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25D
aGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgb25WZXJzaW9uQ2hhbmdlKGludDY0X3Qgb2xkVmVyc2lvbiwgaW50NjRfdCBuZXdWZXJzaW9u
KSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25Gb3JjZWRDbG9zZSgpIE9WRVJSSURF
IHsgfQogcHJpdmF0ZToKICAgICBGYWtlSURCRGF0YWJhc2VDYWxsYmFja3MoKSB7IH0KIH07CkBA
IC0xMzQsNiArMTQwLDcyIEBAIFRFU1QoSURCRGF0YWJhc2VCYWNrZW5kVGVzdCwgQ29ubmVjdGlv
bkxpZmVjeWNsZSkKICAgICBFWFBFQ1RfVFJVRShiYWNraW5nU3RvcmUtPmhhc09uZVJlZigpKTsK
IH0KIAorY2xhc3MgTW9ja0lEQkRhdGFiYXNlQmFja2VuZFByb3h5IDogcHVibGljIElEQkRhdGFi
YXNlQmFja2VuZEludGVyZmFjZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TW9j
a0lEQkRhdGFiYXNlQmFja2VuZFByb3h5PiBjcmVhdGUoV2ViSURCRGF0YWJhc2VJbXBsJiBkYXRh
YmFzZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgTW9ja0lEQkRhdGFiYXNl
QmFja2VuZFByb3h5KGRhdGFiYXNlKSk7CisgICAgfQorCisgICAgfk1vY2tJREJEYXRhYmFzZUJh
Y2tlbmRQcm94eSgpCisgICAgeworICAgICAgICBFWFBFQ1RfVFJVRShtX3dhc1JlZ2lzdGVyRnJv
bnRlbmRDYWxsYmFja3NDYWxsZWQpOworICAgIH0KKworICAgIHZpcnR1YWwgSURCRGF0YWJhc2VN
ZXRhZGF0YSBtZXRhZGF0YSgpIGNvbnN0IHsgcmV0dXJuIElEQkRhdGFiYXNlTWV0YWRhdGEoKTsg
fQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+
IGNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYs
IGJvb2wgYXV0b0luY3JlbWVudCwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhj
ZXB0aW9uQ29kZSYpIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0
U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2Uq
LCBFeGNlcHRpb25Db2RlJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHNldFZlcnNpb24oY29uc3Qg
U3RyaW5nJiB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VDYWxsYmFja3M+LCBFeGNlcHRpb25Db2RlJikgeyB9CisgICAgdmlydHVhbCBQYXNz
UmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNhY3Rpb24oRE9NU3Ry
aW5nTGlzdCogc3RvcmVOYW1lcywgdW5zaWduZWQgc2hvcnQgbW9kZSwgRXhjZXB0aW9uQ29kZSYp
IHsgcmV0dXJuIDA7IH0KKworICAgIHZpcnR1YWwgdm9pZCBjbG9zZShQYXNzUmVmUHRyPElEQkRh
dGFiYXNlQ2FsbGJhY2tzPikKKyAgICB7CisgICAgICAgIG1fd2FzQ2xvc2VDYWxsZWQgPSB0cnVl
OworICAgICAgICBtX3dlYkRhdGFiYXNlLmNsb3NlKCk7CisgICAgfQorICAgIHZpcnR1YWwgdm9p
ZCByZWdpc3RlckZyb250ZW5kQ2FsbGJhY2tzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFj
a3M+IGNvbm5lY3Rpb24pCisgICAgeworICAgICAgICBtX3dhc1JlZ2lzdGVyRnJvbnRlbmRDYWxs
YmFja3NDYWxsZWQgPSB0cnVlOworICAgICAgICBtX3dlYkRhdGFiYXNlLm9wZW4obmV3IFdlYklE
QkRhdGFiYXNlQ2FsbGJhY2tzSW1wbChjb25uZWN0aW9uKSk7CisgICAgfQorCitwcml2YXRlOgor
ICAgIE1vY2tJREJEYXRhYmFzZUJhY2tlbmRQcm94eShXZWJJREJEYXRhYmFzZUltcGwmIHdlYkRh
dGFiYXNlKQorICAgICAgICA6IG1fd2FzUmVnaXN0ZXJGcm9udGVuZENhbGxiYWNrc0NhbGxlZChm
YWxzZSkKKyAgICAgICAgLCBtX3dhc0Nsb3NlQ2FsbGVkKGZhbHNlKQorICAgICAgICAsIG1fd2Vi
RGF0YWJhc2Uod2ViRGF0YWJhc2UpIHsgfQorCisgICAgYm9vbCBtX3dhc1JlZ2lzdGVyRnJvbnRl
bmRDYWxsYmFja3NDYWxsZWQ7CisgICAgYm9vbCBtX3dhc0Nsb3NlQ2FsbGVkOworCisgICAgV2Vi
SURCRGF0YWJhc2VJbXBsJiBtX3dlYkRhdGFiYXNlOworfTsKKworVEVTVChJREJEYXRhYmFzZUJh
Y2tlbmRUZXN0LCBGb3JjZWRDbG9zZSkKK3sKKyAgICBSZWZQdHI8SURCRmFrZUJhY2tpbmdTdG9y
ZT4gYmFja2luZ1N0b3JlID0gYWRvcHRSZWYobmV3IElEQkZha2VCYWNraW5nU3RvcmUoKSk7Cisg
ICAgRVhQRUNUX1RSVUUoYmFja2luZ1N0b3JlLT5oYXNPbmVSZWYoKSk7CisKKyAgICBJREJUcmFu
c2FjdGlvbkNvb3JkaW5hdG9yKiBjb29yZGluYXRvciA9IDA7CisgICAgSURCRmFjdG9yeUJhY2tl
bmRJbXBsKiBmYWN0b3J5ID0gMDsKKyAgICBSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW1wbD4g
YmFja2VuZCA9IElEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNyZWF0ZSgiZGIiLCBiYWNraW5nU3Rv
cmUuZ2V0KCksIGNvb3JkaW5hdG9yLCBmYWN0b3J5LCAidW5pcXVlaWQiKTsKKyAgICBFWFBFQ1Rf
R1QoYmFja2luZ1N0b3JlLT5yZWZDb3VudCgpLCAxKTsKKworICAgIFdlYklEQkRhdGFiYXNlSW1w
bCB3ZWJEYXRhYmFzZShiYWNrZW5kKTsKKworICAgIFJlZlB0cjxNb2NrSURCQ2FsbGJhY2tzPiBy
ZXF1ZXN0MSA9IE1vY2tJREJDYWxsYmFja3M6OmNyZWF0ZSgpOworICAgIGJhY2tlbmQtPm9wZW5D
b25uZWN0aW9uKHJlcXVlc3QxKTsKKworICAgIFJlZlB0cjxNb2NrSURCRGF0YWJhc2VCYWNrZW5k
UHJveHk+IHByb3h5ID0gTW9ja0lEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpjcmVhdGUod2ViRGF0
YWJhc2UpOworCisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IDA7CisgICAg
UmVmUHRyPElEQkRhdGFiYXNlPiBpZGJEYXRhYmFzZSA9IElEQkRhdGFiYXNlOjpjcmVhdGUoY29u
dGV4dCwgcHJveHkpOworICAgIGlkYkRhdGFiYXNlLT5yZWdpc3RlckZyb250ZW5kQ2FsbGJhY2tz
KCk7CisKKyAgICB3ZWJEYXRhYmFzZS5mb3JjZUNsb3NlKCk7CisgICAgRVhQRUNUX1RSVUUoYmFj
a2luZ1N0b3JlLT5oYXNPbmVSZWYoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZiAv
LyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160273</attachid>
            <date>2012-08-23 16:13:54 -0700</date>
            <delta_ts>2012-08-23 17:41:18 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-91010-20120823161350.patch</filename>
            <type>text/plain</type>
            <size>17894</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2MzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFmOGEyOGVkYTM3ZGNj
ODc5NjQ1MDg2ZWUzM2Y5YTVmYzI1MGMxYS4uMTMzM2YwNjVkOTE4MTU4OWNiNDMwYjExMjZhZjgx
MTNhNmQ2NzU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA4LTE1ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBFeHBv
c2UgbWVjaGFuaXNtIGZvciBkYXRhYmFzZSB0byBmb3JjZSBhIGNvbm5lY3Rpb24gdG8gY2xvc2UK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMDEwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KKworICAgICAgICBJbiByZXNwb25zZSB0
byB1c2VyIGFjdGlvbiAoZS5nLiAiZGVsZXRlIG15IGJyb3dzaW5nIGRhdGEiKSBhIGNvbm5lY3Rp
b24gbWF5CisgICAgICAgIG5lZWQgdG8gYmUgZm9yY2libHkgdGVybWluYXRlZC4gVGhpcyBhbGxv
d3MgYW4gZXZlbnQgdG8gYmUgc2VudCB0byBhIGNvbm5lY3Rpb24KKyAgICAgICAgZnJvbSB0aGUg
YmFjayBlbmQgdmlhIElEQkRhdGFiYXNlQ2FsbGJhY2tzIHRvIGluaXRpYXRlIGNsb3NpbmcgdGhl
IGNvbm5lY3Rpb24uCisKKyAgICAgICAgVGVzdDogW2Nocm9taXVtXSB3ZWJraXRfdW5pdF90ZXN0
IC0tZ3Rlc3RfZmlsdGVyPSdJREJEYXRhYmFzZUJhY2tlbmRUZXN0LkZvcmNlZENsb3NlJworCisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SURCRGF0YWJhc2U6OmZvcmNlQ2xvc2UpOiBBYm9ydCBhbGwgdHJhbnNhY3Rpb25zIGFu
ZCBjbG9zZS4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlLmg6CisgICAgICAgIChJREJEYXRhYmFzZSk6IEVudHJ5IHBvaW50LgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmg6CisgICAgICAg
IChJREJEYXRhYmFzZUNhbGxiYWNrcyk6IEV2ZW50IHBsdW1iaW5nIGZyb20gYmFjayBlbmQuCisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25Gb3JjZWRDbG9z
ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmg6CisgICAgICAgIChJREJEYXRhYmFzZUNhbGxi
YWNrc0ltcGwpOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERC
QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZSk6IE1ldGhvZCBzdHViLgorCiAyMDEyLTA4LTIy
ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTI2MzgzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA0
MWIyYmI5MzZmY2UzN2IyYjMwMmM0OWNkYjA3NDY2NzE0MDM1ZmZhLi41YjQ0NjVlNGMxMDU4NDgw
ZTYxYjU5MTE2MWJhODVmY2QzZWMwODc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM3IEBACisyMDEyLTA4LTE1ICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBFeHBvc2UgbWVjaGFuaXNtIGZvciBkYXRhYmFzZSB0
byBmb3JjZSBhIGNvbm5lY3Rpb24gdG8gY2xvc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMDEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBD
aGFuZy4KKworICAgICAgICBJbiBDaHJvbWl1bSwgdGhlIGJyb3dzaW5nIGRhdGEgZGVsZXRlciBo
YXMgYSBXZWJJREJEYXRhYmFzZSBoYW5kbGUgd2hpY2gKKyAgICAgICAgaXQgY2FuIHVzZSB0byB0
ZXJtaW5hdGUgYSBjb25uZWN0aW9uLiBUaGlzIGhhbmRsZXMgZm9yY2VmdWxseSBjbG9zaW5nCisg
ICAgICAgIHRoZSBmcm9udCBlbmQgY29ubmVjdGlvbnMgYW5kIHRoZSBiYWNrIGVuZCwgdG8gdW5i
bG9jayBkaXNrIGNsZWFudXAuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViSURCRGF0YWJhc2UuaDoK
KyAgICAgICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2U6OmZvcmNlQ2xvc2UpOiBFbnRyeSBwb2lu
dC4KKyAgICAgICAgKiBwdWJsaWMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3MuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViSURCRGF0YWJhc2VDYWxsYmFja3M6Om9uRm9yY2VkQ2xvc2UpOiBQbHVtYmlu
ZyBiYWNrIHRvIGZyb250LgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eTo6b25Gb3Jj
ZWRDbG9zZSk6IFBsdW1iaW5nIGJhY2sgdG8gZnJvbnQuCisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAqIHNyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5Lmg6CisgICAgICAgIChJREJEYXRh
YmFzZUNhbGxiYWNrc1Byb3h5KTogUGx1bWJpbmcuCisgICAgICAgICogc3JjL1dlYklEQkRhdGFi
YXNlQ2FsbGJhY2tzSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRhdGFiYXNlQ2Fs
bGJhY2tzSW1wbDo6b25Gb3JjZWRDbG9zZSk6IFBsdW1iaW5nIGJhY2sgdG8gZnJvbnQuCisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwu
aDoKKyAgICAgICAgKFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbCk6IFBsdW1iaW5nIGJhY2sg
dG8gZnJvbnQuCisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYklEQkRhdGFiYXNlSW1wbDo6Y2xvc2UpOiBUaWR5IHVwIGRyb3BwaW5nIHRo
ZSBjYWxsYmFjayByZWZlcmVuY2UuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJJREJEYXRhYmFzZUltcGw6OmZvcmNlQ2xvc2UpOiBUZXJtaW5hdGUgdGhlIGNvbm5lY3Rp
b24gYnkgbm90aWZ5aW5nCisgICAgICAgIHRoZSBiYWNrIGVuZCBhbmQgdGhlIGZyb250IGVuZCwg
d2hpbGUgYXZvaWQgcmUtZW50cmFudCBiYWRuZXNzLgorICAgICAgICAqIHNyYy9XZWJJREJEYXRh
YmFzZUltcGwuaDogSGVhZGVyIHR3ZWFrIGZvciB1bml0IHRlc3QuCisgICAgICAgIChXZWJJREJE
YXRhYmFzZUltcGwpOgorICAgICAgICAqIHRlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3Bw
OiBBZGRlZCB1bml0IHRlc3QgdG8gZXhlcmNpc2UgY29ubmVjdGlvbnMuCisKIDIwMTItMDgtMjIg
IEFsZWMgRmxldHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEluZGV4ZWRE
QjogdGVzdHMgZm9yIGluamVjdGlvbi9leHRyYWN0aW9uIG9mIGlkYiBrZXlzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKaW5kZXggZGFiNzRl
ZDBlOGI0ZTNkYzBjMTY4NjYxYWFhYWE4MWMwNmViNzU4ZS4uYWE5M2U2YTgyYzc1NDhjOThiMTk5
NDI1YWEwMGIyY2VjMzllODg5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlLmNwcApAQCAtMjcyLDYgKzI3MiwxNCBAQCBQYXNzUmVmUHRyPElE
QlRyYW5zYWN0aW9uPiBJREJEYXRhYmFzZTo6dHJhbnNhY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udAogICAgIHJldHVybiB0cmFuc2FjdGlvbihjb250ZXh0LCBwcnBTdG9yZU5hbWVz
LCBtb2RlU3RyaW5nLCBlYyk7CiB9CiAKK3ZvaWQgSURCRGF0YWJhc2U6OmZvcmNlQ2xvc2UoKQor
eworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIGZvciAoSGFzaFNldDxJREJUcmFuc2Fj
dGlvbio+OjppdGVyYXRvciBpdCA9IG1fdHJhbnNhY3Rpb25zLmJlZ2luKCk7IGl0ICE9IG1fdHJh
bnNhY3Rpb25zLmVuZCgpOyArK2l0KQorICAgICAgICAoKml0KS0+YWJvcnQoZWMpOworICAgIHRo
aXMtPmNsb3NlKCk7Cit9CisKIHZvaWQgSURCRGF0YWJhc2U6OmNsb3NlKCkKIHsKICAgICBpZiAo
bV9jbG9zZVBlbmRpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2UuaAppbmRleCBhN2Q3MmNlMTk4ZjNlMGZkYWFkMGNhM2YzMGY4NmM0ZWYzN2E3MmIz
Li4yN2YwM2I2ZTM1NDhhODAwZjQxYTNmYWU1ODYwMTc5Yzg3ZmQ3MmNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKQEAgLTg4LDYgKzg4LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnRlcmZhY2VOYW1l
KCkgY29uc3Q7CiAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkgY29uc3Q7CiAKKyAgICB2b2lkIGZvcmNlQ2xvc2UoKTsKICAgICB2b2lk
IHJlZ2lzdGVyRnJvbnRlbmRDYWxsYmFja3MoKTsKICAgICBjb25zdCBJREJEYXRhYmFzZU1ldGFk
YXRhIG1ldGFkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9tZXRhZGF0YTsgfQogICAgIHZvaWQgZW5x
dWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrcy5oCmluZGV4IGZhYTE2NmY3
ZjUxMWZmNjY2NmYzOTczZGJiODQwNGI3ZjliNTIzZmQuLmU4M2RlNTEyOGZiOTI1ZWFkNzYyMThh
YzA0MzE4NTZlOWNkZjY0NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3MuaApAQCAtMzcsNiArMzcsNyBAQCBjbGFz
cyBJREJEYXRhYmFzZUNhbGxiYWNrcyA6IHB1YmxpYyBSZWZDb3VudGVkPElEQkRhdGFiYXNlQ2Fs
bGJhY2tzPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCRGF0YWJhc2VDYWxsYmFja3MoKSB7
IH0KIAorICAgIHZpcnR1YWwgdm9pZCBvbkZvcmNlZENsb3NlKCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShpbnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3QgbmV3
VmVyc2lvbikgPSAwOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwCmluZGV4IGNlYjdhZjMx
ZjNlMjI0ODYxZTA1MDc2MjEwZmFmYzVhMDU4ZGYyMTIuLmY2NTY1ZGNhMWJkODIyZmU2ZGMxMzU5
NjhjM2IwZWRiOTk5NWEzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcApAQCAtNDYsNiAr
NDYsMTIgQEAgSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjp+SURCRGF0YWJhc2VDYWxsYmFja3NJ
bXBsKCkKIHsKIH0KIAordm9pZCBJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9uRm9yY2VkQ2xv
c2UoKQoreworICAgIGlmIChtX2RhdGFiYXNlKQorICAgICAgICBtX2RhdGFiYXNlLT5mb3JjZUNs
b3NlKCk7Cit9CisKIHZvaWQgSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpvblZlcnNpb25DaGFu
Z2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uKQogewogICAgIGlmIChtX2RhdGFiYXNlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFj
a3NJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNh
bGxiYWNrc0ltcGwuaAppbmRleCAwMmM4ZGUwZGZlOWY2ZWZkZWQ2ODA1YjdiYWM5MjE3OGZiODA4
OGQ5Li43OTJiZTNhZDc2ZjU0ZjAzNTlkNmFmMTYwM2U1ZGQ5M2I5MWQ2YmExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0lt
cGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNh
bGxiYWNrc0ltcGwuaApAQCAtNDEsNiArNDEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3NJbXBsPiBjcmVhdGUoSURCRGF0YWJhc2UqKTsKICAg
ICB2aXJ0dWFsIH5JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwoKTsKIAorICAgIHZpcnR1YWwgdm9p
ZCBvbkZvcmNlZENsb3NlKCk7CiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShjb25z
dCBTdHJpbmcmIHZlcnNpb24pOwogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoaW50
NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pOwogICAgIHZvaWQgdW5yZWdpc3Rl
ckRhdGFiYXNlKElEQkRhdGFiYXNlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAppbmRleCA3MGMyYjU5OTc0MTBmNmE2Zjc5
MTEwMDA3YmE3ODgwODNiMTBkNzRlLi4zM2IyMWI0ZmRkMTJjMTk5MjVmNDVjMzMzYWVhNzA0NzM3
ZWM2ZjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5k
ZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bmRleGVkREJBZ2VudC5jcHAKQEAgLTEzMCw2ICsxMzAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYgdmVyc2lvbikgeyB9CiAgICAg
dmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShpbnQ2NF90IG9sZFZlcnNpb24sIGludDY0X3Qg
bmV3VmVyc2lvbikgeyB9CisgICAgdmlydHVhbCB2b2lkIG9uRm9yY2VkQ2xvc2UoKSB7IH0KIHBy
aXZhdGU6CiAgICAgSW5zcGVjdG9ySURCRGF0YWJhc2VDYWxsYmFja3MoKSB7IH0KIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZS5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaAppbmRleCAzZWIx
ZWNiNzQzMzE1NWM5YWFkMWFiOTc3MmQzZGUxZTQ2NGI4ZjMxLi5hOGIwMzVjNzI3Zjg4ZGRiZjBj
ZTE3MGVhZDc0MTg1YzY4YmUyYWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJJREJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYklEQkRhdGFiYXNlLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gMDsKICAgICB9CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKCkgeyBXRUJLSVRfQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZm9yY2VDbG9zZSgpIHsgV0VCS0lU
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgb3BlbihXZWJJREJE
YXRhYmFzZUNhbGxiYWNrcyopIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlQ2Fs
bGJhY2tzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZUNh
bGxiYWNrcy5oCmluZGV4IDA5MDdiOGJmMDhjMjRjNWM5NWVhNTEyZDkxYWJlOTk2OTBiODM4YTMu
LjEyZGE3ZTBiNDc2YjExNDVkZDY5MzE0MGUzMWRhOGFjNWUxODk3NTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzLmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3Mu
aApAQCAtMzUsNiArMzUsNyBAQCBjbGFzcyBXZWJJREJEYXRhYmFzZUNhbGxiYWNrcyB7CiBwdWJs
aWM6CiAgICAgdmlydHVhbCB+V2ViSURCRGF0YWJhc2VDYWxsYmFja3MoKSB7IH0KIAorICAgIHZp
cnR1YWwgdm9pZCBvbkZvcmNlZENsb3NlKCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7
IH0KICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGxvbmcgbG9uZyBvbGRWZXJzaW9u
LCBsb25nIGxvbmcgbmV3VmVyc2lvbikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgb25WZXJzaW9uQ2hhbmdlKGNvbnN0IFdlYlN0cmluZyYgcmVxdWVz
dGVkVmVyc2lvbikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJv
eHkuY3BwCmluZGV4IDAxOWU1OWJhMDYxZjBmYjg0ZTNhOTNhYjg5NWZiYTliZWQ1ZDFjMDEuLjMx
ODk3ZGE5ZThjZTkxODg5ZDUxNzI1Y2U5OTllODI3MzhkMTU1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuY3Bw
CkBAIC00OCw2ICs0OCwxMSBAQCBJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5Ojp+SURCRGF0YWJh
c2VDYWxsYmFja3NQcm94eSgpCiB7CiB9CiAKK3ZvaWQgSURCRGF0YWJhc2VDYWxsYmFja3NQcm94
eTo6b25Gb3JjZWRDbG9zZSgpCit7CisgICAgbV9jYWxsYmFja3MtPm9uRm9yY2VkQ2xvc2UoKTsK
K30KKwogdm9pZCBJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5OjpvblZlcnNpb25DaGFuZ2UoaW50
NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pCiB7CiAgICAgbV9jYWxsYmFja3Mt
Pm9uVmVyc2lvbkNoYW5nZShvbGRWZXJzaW9uLCBuZXdWZXJzaW9uKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaAppbmRl
eCA5OTk1YWJkMmI2YWQ5ZDAyNGUxNTJmMTBkMGVlNjAzMWM4NWMzYzU0Li5jYjFkZGIzNDY2Yjlm
YmIxZTMzMWRmYmM5MmQ2YjQ5NjRlMjUwZGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9JREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5oCkBAIC00MCw2ICs0MCw3
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrc1By
b3h5PiBjcmVhdGUoUGFzc093blB0cjxXZWJJREJEYXRhYmFzZUNhbGxiYWNrcz4pOwogICAgIHZp
cnR1YWwgfklEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkoKTsKIAorICAgIHZpcnR1YWwgdm9pZCBv
bkZvcmNlZENsb3NlKCk7CiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShjb25zdCBT
dHJpbmcmIHJlcXVlc3RlZFZlcnNpb24pOwogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFu
Z2UoaW50NjRfdCBvbGRWZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJ
bXBsLmNwcAppbmRleCAxNDc1N2JhYzY3MGQ5ZGU0ZmFmYTQ5ZWFhNjg5ZWQ5YzRkYWJiZTQ5Li41
YWU4NmE2Nzk2YTE5ODZjZTNmN2Y4MmMzYmZkMTg3YWMwZjI0YzUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1w
bC5jcHAKQEAgLTQ0LDYgKzQ0LDExIEBAIFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6fldl
YklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbCgpCiB7CiB9CiAKK3ZvaWQgV2ViSURCRGF0YWJhc2VD
YWxsYmFja3NJbXBsOjpvbkZvcmNlZENsb3NlKCkKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25Gb3Jj
ZWRDbG9zZSgpOworfQorCiB2b2lkIFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25WZXJz
aW9uQ2hhbmdlKGxvbmcgbG9uZyBvbGRWZXJzaW9uLCBsb25nIGxvbmcgbmV3VmVyc2lvbikKIHsK
ICAgICBtX2NhbGxiYWNrcy0+b25WZXJzaW9uQ2hhbmdlKG9sZFZlcnNpb24sIG5ld1ZlcnNpb24p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VD
YWxsYmFja3NJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFz
ZUNhbGxiYWNrc0ltcGwuaAppbmRleCAxODU3Y2E2NThkMzBmYzI2MDA1MjFhNmRhZDE5MzEzMTM4
NTdjZjljLi5iMDczN2VlYjJhOWI2MGI0ZTQzNTVhODQ0MGFjNDUwOTM4YTRiODM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0lt
cGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUNhbGxi
YWNrc0ltcGwuaApAQCAtNDMsNiArNDMsNyBAQCBwdWJsaWM6CiAgICAgV2ViSURCRGF0YWJhc2VD
YWxsYmFja3NJbXBsKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VDYWxsYmFja3M+KTsK
ICAgICB2aXJ0dWFsIH5XZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwoKTsKIAorICAgIHZpcnR1
YWwgdm9pZCBvbkZvcmNlZENsb3NlKCk7CiAgICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5n
ZShsb25nIGxvbmcgb2xkVmVyc2lvbiwgbG9uZyBsb25nIG5ld1ZlcnNpb24pOwogICAgIHZpcnR1
YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoY29uc3QgV2ViU3RyaW5nJiB2ZXJzaW9uKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKaW5k
ZXggOTM0MzI4MWNmNGQwYWYxN2NiNmMzMjI1MDgxZGY0MDcxZGFlODczZi4uMGQxNDJiYzAyOTNh
YTEzZjViMTkyYzNmZGJjNTYzMzdjZGFjNzU3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCkBAIC05OSw4ICs5OSwxOCBAQCB2b2lk
IFdlYklEQkRhdGFiYXNlSW1wbDo6Y2xvc2UoKQogICAgICAgICBtX2Nsb3NlUGVuZGluZyA9IHRy
dWU7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgbV9kYXRhYmFzZUJhY2tlbmQtPmNsb3Nl
KG1fZGF0YWJhc2VDYWxsYmFja3MpOwotICAgIG1fZGF0YWJhc2VDYWxsYmFja3MgPSAwOworICAg
IG1fZGF0YWJhc2VCYWNrZW5kLT5jbG9zZShtX2RhdGFiYXNlQ2FsbGJhY2tzLnJlbGVhc2UoKSk7
Cit9CisKK3ZvaWQgV2ViSURCRGF0YWJhc2VJbXBsOjpmb3JjZUNsb3NlKCkKK3sKKyAgICBpZiAo
IW1fZGF0YWJhc2VDYWxsYmFja3MpIHsKKyAgICAgICAgbV9jbG9zZVBlbmRpbmcgPSB0cnVlOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIFJlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrc1By
b3h5PiBjYWxsYmFja3MgPSBtX2RhdGFiYXNlQ2FsbGJhY2tzLnJlbGVhc2UoKTsKKyAgICBtX2Rh
dGFiYXNlQmFja2VuZC0+Y2xvc2UoY2FsbGJhY2tzKTsKKyAgICBjYWxsYmFja3MtPm9uRm9yY2Vk
Q2xvc2UoKTsKIH0KIAogdm9pZCBXZWJJREJEYXRhYmFzZUltcGw6Om9wZW4oV2ViSURCRGF0YWJh
c2VDYWxsYmFja3MqIGNhbGxiYWNrcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSURCRGF0YWJhc2VJbXBsLmgKaW5kZXggMTQwOWNiNjVmMDY1ZmIzNWQ0MDA3MDNmNmM3YmU3
MjI0ZGQwMDAzNS4uNGE4Mjg0Y2U1OWFkMWU2MzZjYzRmYmM5NzI3YmNiNzdhNDIyYzMwZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCisjaW5jbHVk
ZSAiSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYkNv
bW1vbi5oIgogI2luY2x1ZGUgIldlYkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJXZWJJREJE
YXRhYmFzZS5oIgpAQCAtMzgsNyArMzksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7IGNsYXNzIElE
QkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTsgfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xh
c3MgSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eTsKIGNsYXNzIFdlYklEQkRhdGFiYXNlQ2FsbGJh
Y2tzOwogY2xhc3MgV2ViSURCRGF0YWJhc2VNZXRhZGF0YTsKIGNsYXNzIFdlYklEQk9iamVjdFN0
b3JlOwpAQCAtNTYsNiArNTYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9i
amVjdFN0b3JlKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24m
LCBXZWJFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lkIHNldFZlcnNpb24oY29uc3Qg
V2ViU3RyaW5nJiB2ZXJzaW9uLCBXZWJJREJDYWxsYmFja3MqLCBXZWJFeGNlcHRpb25Db2RlJik7
CiAgICAgdmlydHVhbCBXZWJJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24oY29uc3QgV2ViRE9N
U3RyaW5nTGlzdCYgbmFtZXMsIHVuc2lnbmVkIHNob3J0IG1vZGUsIFdlYkV4Y2VwdGlvbkNvZGUm
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZm9yY2VDbG9zZSgpOwogICAgIHZpcnR1YWwgdm9pZCBjbG9z
ZSgpOwogCiAgICAgLy8gRklYTUU6IFJlbmFtZSAib3BlbiIgdG8gcmVnaXN0ZXJGcm9udGVuZENh
bGxiYWNrcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0
YWJhc2VCYWNrZW5kVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRh
dGFiYXNlQmFja2VuZFRlc3QuY3BwCmluZGV4IDg2MDVjMGYxYWM2Mjg3ZmZkYzgyODE4ZTVhM2Uw
NTYzNGE4YjJjODEuLmVhZDdmOWJiOTYyMTY5ODIxZmRlZjcwMmY4MTk2MmMyNGRhNDUwNTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5k
VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJh
Y2tlbmRUZXN0LmNwcApAQCAtMzIsMTIgKzMyLDE3IEBACiAjaW5jbHVkZSAiSURCSW5kZXhCYWNr
ZW5kSW1wbC5oIgogI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaCIKICNpbmNs
dWRlICJJREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmgiCisjaW5jbHVkZSAiV2ViSURCRGF0YWJh
c2VDYWxsYmFja3NJbXBsLmgiCisjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VJbXBsLmgiCiAKICNp
bmNsdWRlIDxndGVzdC9ndGVzdC5oPgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwordXNpbmcgV2ViS2l0OjpXZWJJREJEYXRhYmFzZTsK
K3VzaW5nIFdlYktpdDo6V2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOwordXNpbmcgV2ViS2l0
OjpXZWJJREJEYXRhYmFzZUltcGw7CiAKIG5hbWVzcGFjZSB7CiAKQEAgLTEwMSw2ICsxMDYsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB+RmFrZUlEQkRhdGFiYXNlQ2FsbGJhY2tzKCkgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZShjb25zdCBTdHJpbmcmIHZlcnNpb24pIE9W
RVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblZlcnNpb25DaGFuZ2UoaW50NjRfdCBvbGRW
ZXJzaW9uLCBpbnQ2NF90IG5ld1ZlcnNpb24pIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBvbkZvcmNlZENsb3NlKCkgT1ZFUlJJREUgeyB9CiBwcml2YXRlOgogICAgIEZha2VJREJEYXRh
YmFzZUNhbGxiYWNrcygpIHsgfQogfTsKQEAgLTEzNCw2ICsxNDAsNzIgQEAgVEVTVChJREJEYXRh
YmFzZUJhY2tlbmRUZXN0LCBDb25uZWN0aW9uTGlmZWN5Y2xlKQogICAgIEVYUEVDVF9UUlVFKGJh
Y2tpbmdTdG9yZS0+aGFzT25lUmVmKCkpOwogfQogCitjbGFzcyBNb2NrSURCRGF0YWJhc2VCYWNr
ZW5kUHJveHkgOiBwdWJsaWMgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNb2NrSURCRGF0YWJhc2VCYWNrZW5kUHJveHk+IGNyZWF0
ZShXZWJJREJEYXRhYmFzZUltcGwmIGRhdGFiYXNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBNb2NrSURCRGF0YWJhc2VCYWNrZW5kUHJveHkoZGF0YWJhc2UpKTsKKyAgICB9
CisKKyAgICB+TW9ja0lEQkRhdGFiYXNlQmFja2VuZFByb3h5KCkKKyAgICB7CisgICAgICAgIEVY
UEVDVF9UUlVFKG1fd2FzUmVnaXN0ZXJGcm9udGVuZENhbGxiYWNrc0NhbGxlZCk7CisgICAgfQor
CisgICAgdmlydHVhbCBJREJEYXRhYmFzZU1ldGFkYXRhIG1ldGFkYXRhKCkgY29uc3QgeyByZXR1
cm4gSURCRGF0YWJhc2VNZXRhZGF0YSgpOyB9CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQk9i
amVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gY3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50LCBJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgeyByZXR1cm4gMDsgfQorICAg
IHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9yZShjb25zdCBTdHJpbmcmIG5hbWUsIElEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgc2V0VmVyc2lvbihjb25zdCBTdHJpbmcmIHZlcnNpb24sIFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIEV4Y2VwdGlvbkNv
ZGUmKSB7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlPiB0cmFuc2FjdGlvbihET01TdHJpbmdMaXN0KiBzdG9yZU5hbWVzLCB1bnNpZ25lZCBz
aG9ydCBtb2RlLCBFeGNlcHRpb25Db2RlJikgeyByZXR1cm4gMDsgfQorCisgICAgdmlydHVhbCB2
b2lkIGNsb3NlKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+KQorICAgIHsKKyAgICAg
ICAgbV93YXNDbG9zZUNhbGxlZCA9IHRydWU7CisgICAgICAgIG1fd2ViRGF0YWJhc2UuY2xvc2Uo
KTsKKyAgICB9CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRnJvbnRlbmRDYWxsYmFja3MoUGFz
c1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gY29ubmVjdGlvbikKKyAgICB7CisgICAgICAg
IG1fd2FzUmVnaXN0ZXJGcm9udGVuZENhbGxiYWNrc0NhbGxlZCA9IHRydWU7CisgICAgICAgIG1f
d2ViRGF0YWJhc2Uub3BlbihuZXcgV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsKGNvbm5lY3Rp
b24pKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgTW9ja0lEQkRhdGFiYXNlQmFja2VuZFByb3h5
KFdlYklEQkRhdGFiYXNlSW1wbCYgd2ViRGF0YWJhc2UpCisgICAgICAgIDogbV93YXNSZWdpc3Rl
ckZyb250ZW5kQ2FsbGJhY2tzQ2FsbGVkKGZhbHNlKQorICAgICAgICAsIG1fd2FzQ2xvc2VDYWxs
ZWQoZmFsc2UpCisgICAgICAgICwgbV93ZWJEYXRhYmFzZSh3ZWJEYXRhYmFzZSkgeyB9CisKKyAg
ICBib29sIG1fd2FzUmVnaXN0ZXJGcm9udGVuZENhbGxiYWNrc0NhbGxlZDsKKyAgICBib29sIG1f
d2FzQ2xvc2VDYWxsZWQ7CisKKyAgICBXZWJJREJEYXRhYmFzZUltcGwmIG1fd2ViRGF0YWJhc2U7
Cit9OworCitURVNUKElEQkRhdGFiYXNlQmFja2VuZFRlc3QsIEZvcmNlZENsb3NlKQoreworICAg
IFJlZlB0cjxJREJGYWtlQmFja2luZ1N0b3JlPiBiYWNraW5nU3RvcmUgPSBhZG9wdFJlZihuZXcg
SURCRmFrZUJhY2tpbmdTdG9yZSgpKTsKKyAgICBFWFBFQ1RfVFJVRShiYWNraW5nU3RvcmUtPmhh
c09uZVJlZigpKTsKKworICAgIElEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IqIGNvb3JkaW5hdG9y
ID0gMDsKKyAgICBJREJGYWN0b3J5QmFja2VuZEltcGwqIGZhY3RvcnkgPSAwOworICAgIFJlZlB0
cjxJREJEYXRhYmFzZUJhY2tlbmRJbXBsPiBiYWNrZW5kID0gSURCRGF0YWJhc2VCYWNrZW5kSW1w
bDo6Y3JlYXRlKCJkYiIsIGJhY2tpbmdTdG9yZS5nZXQoKSwgY29vcmRpbmF0b3IsIGZhY3Rvcnks
ICJ1bmlxdWVpZCIpOworICAgIEVYUEVDVF9HVChiYWNraW5nU3RvcmUtPnJlZkNvdW50KCksIDEp
OworCisgICAgV2ViSURCRGF0YWJhc2VJbXBsIHdlYkRhdGFiYXNlKGJhY2tlbmQpOworCisgICAg
UmVmUHRyPE1vY2tJREJDYWxsYmFja3M+IHJlcXVlc3QxID0gTW9ja0lEQkNhbGxiYWNrczo6Y3Jl
YXRlKCk7CisgICAgYmFja2VuZC0+b3BlbkNvbm5lY3Rpb24ocmVxdWVzdDEpOworCisgICAgUmVm
UHRyPE1vY2tJREJEYXRhYmFzZUJhY2tlbmRQcm94eT4gcHJveHkgPSBNb2NrSURCRGF0YWJhc2VC
YWNrZW5kUHJveHk6OmNyZWF0ZSh3ZWJEYXRhYmFzZSk7CisKKyAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0ID0gMDsKKyAgICBSZWZQdHI8SURCRGF0YWJhc2U+IGlkYkRhdGFiYXNl
ID0gSURCRGF0YWJhc2U6OmNyZWF0ZShjb250ZXh0LCBwcm94eSk7CisgICAgaWRiRGF0YWJhc2Ut
PnJlZ2lzdGVyRnJvbnRlbmRDYWxsYmFja3MoKTsKKworICAgIHdlYkRhdGFiYXNlLmZvcmNlQ2xv
c2UoKTsKKyAgICBFWFBFQ1RfVFJVRShiYWNraW5nU3RvcmUtPmhhc09uZVJlZigpKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>