<?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>105572</bug_id>
          
          <creation_ts>2012-12-20 13:35:41 -0800</creation_ts>
          <short_desc>IndexedDB: Use non-const buffers in put() to avoid copies</short_desc>
          <delta_ts>2013-01-02 15:50:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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="Alec Flett">alecflett</reporter>
          <assigned_to name="Alec Flett">alecflett</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dgrogan</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>jsbell</cc>
    
    <cc>peter+ews</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>795741</commentid>
    <comment_count>0</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-12-20 13:35:41 -0800</bug_when>
    <thetext>IndexedDB: Use non-const buffers in put() to avoid copies</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795744</commentid>
    <comment_count>1</comment_count>
      <attachid>180401</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-12-20 13:38:29 -0800</bug_when>
    <thetext>Created attachment 180401
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795750</commentid>
    <comment_count>2</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-12-20 13:40:06 -0800</bug_when>
    <thetext>jsbell@ - quick lgtm - this is the const-ness issue we talked about this morning. This will allow async operations to hold onto the buffer while letting the caller return.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795755</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-20 13:42:32 -0800</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>795757</commentid>
    <comment_count>4</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-12-20 13:44:00 -0800</bug_when>
    <thetext>Does LGTM and I don&apos;t have any better suggestions. (Perhaps others will.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795783</commentid>
    <comment_count>5</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-12-20 14:10:07 -0800</bug_when>
    <thetext>dglazgov@ - r? 

The issue here is that the implementation of put() on the other side of these interfaces wants to hold onto the value for use at a later time. i.e. the buffer inside of &apos;value&apos; needs to outlive the call to put() in the first place. So we need the incoming &apos;value&apos; to be non-const so that the implementation can adopt value&apos;s buffer rather than copying it.

(Also welcome to other suggestions here...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795784</commentid>
    <comment_count>6</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-12-20 14:10:32 -0800</bug_when>
    <thetext>ugh my fingers can&apos;t spell - make that dglazkov@ - r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795856</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-12-20 15:12:48 -0800</bug_when>
    <thetext>This may just be a personal thing, but when giving someone a reference to memory to hold on to for some time, I find pointers to be helpful from a readability point of view.  In WebKit, I&apos;m only really accustomed to seeing non-const references used for in/out or out parameters.  It may also be helpful to document the lifetime expectations somehow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798768</commentid>
    <comment_count>8</comment_count>
      <attachid>181043</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-01-02 12:00:48 -0800</bug_when>
    <thetext>Created attachment 181043
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798772</commentid>
    <comment_count>9</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-01-02 12:04:03 -0800</bug_when>
    <thetext>fishd@ - good point. Switched to Vector&lt;uint8_t&gt;*

abarth@ - r? (fishd and dglazkov are unavailable but this is pretty straightforward)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798781</commentid>
    <comment_count>10</comment_count>
      <attachid>181043</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-02 12:14:32 -0800</bug_when>
    <thetext>Comment on attachment 181043
Patch

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

&gt; Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp:169
&gt; +    Vector&lt;uint8_t&gt; valueBuffer(value-&gt;size());
&gt; +    valueBuffer.append(value-&gt;data(), value-&gt;size());
&gt; +    m_databaseBackend-&gt;put(transactionId, objectStoreId, &amp;valueBuffer, key, static_cast&lt;IDBDatabaseBackendInterface::PutMode&gt;(putMode), IDBCallbacksProxy::create(adoptPtr(callbacks)), indexIds, indexKeys);

OK.  Obviously the backend can&apos;t hold on to it for too long given that it&apos;s allocated on the stack here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798799</commentid>
    <comment_count>11</comment_count>
      <attachid>181043</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-01-02 12:24:13 -0800</bug_when>
    <thetext>Comment on attachment 181043
Patch

Attachment 181043 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/15635519</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798979</commentid>
    <comment_count>12</comment_count>
      <attachid>181083</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-01-02 15:28:07 -0800</bug_when>
    <thetext>Created attachment 181083
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799016</commentid>
    <comment_count>13</comment_count>
      <attachid>181083</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-02 15:50:16 -0800</bug_when>
    <thetext>Comment on attachment 181083
Patch for landing

Clearing flags on attachment: 181083

Committed r138666: &lt;http://trac.webkit.org/changeset/138666&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799017</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-02 15:50:20 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180401</attachid>
            <date>2012-12-20 13:38:29 -0800</date>
            <delta_ts>2013-01-02 12:00:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105572-20121220133545.patch</filename>
            <type>text/plain</type>
            <size>15857</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4MjQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWE5Y2U3ZDdhZjFlNDUz
MWM4NDZkM2Y5YjY2YzA1MTVmZWUwYjFmYy4uZGUwM2NhNzRmNTUxNTBhMjc0Y2ZlNjhiMzA5YjNh
NmZlOGYwZmUzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTEyLTIwICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IFVz
ZSBub24tY29uc3QgYnVmZmVycyBpbiBwdXQoKSB0byBhdm9pZCBjb3BpZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTU3MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSB0aGUgbmV3IHB1dCgp
IG1ldGhvZCB0byBhbGxvdyB0aGUgaW1wbGVtZW50YXRpb24gdG8gY29uc3VtZQorICAgICAgICBv
ciBhZG9wdCB0aGUgdmVjdG9yLCB0byBhdm9pZCBjb3B5aW5nLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cyBhcyB0aGlzIGlzIGFuIGludGVyZmFjZSBjaGFuZ2UgdGhhdCB3aWxsIGJlIGltcGxlbWVu
dGVkIGxhdGVyLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNr
ZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpw
dXQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwu
aDoKKyAgICAgICAgKElEQkRhdGFiYXNlQmFja2VuZEltcGwpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oOgorCiAyMDEyLTEyLTE5ICBB
bGVjIEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbmRleGVkREI6
IEN1cnNvciBhbmQgSW5kZXhXcml0ZXIgY2xlYW51cCBmb3IgcmVmYWN0b3IKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggOTUwZGE2N2JmMTQzMTkwNjdiNGVmZGI2ZGJhYTExNTBjMzE2YWUw
Zi4uNTk2MjU5NDZhMDA0YTlkNWUzZWExY2JhNWEyNWNkOWMyNDYwMDRlZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0xMi0yMCAgQWxlYyBGbGV0dCAg
PGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBVc2Ugbm9uLWNv
bnN0IGJ1ZmZlcnMgaW4gcHV0KCkgdG8gYXZvaWQgY29waWVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU1NzIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXNzIG9uIG5vbi1jb25zdCBWZWN0b3JzIHRv
IGFsbG93IGJ1ZmZlciBhZG9wdGlvbiByYXRoZXIgdGhhbiBjb3BpZXMuCisKKyAgICAgICAgKiBw
dWJsaWMvV2ViSURCRGF0YWJhc2UuaDoKKyAgICAgICAgKFdlYklEQkRhdGFiYXNlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2U6OnB1dCk6CisgICAgICAgICogc3JjL0lEQkRhdGFi
YXNlQmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SURCRGF0YWJhc2VCYWNrZW5k
UHJveHk6OnB1dCk6CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5Lmg6Cisg
ICAgICAgIChJREJEYXRhYmFzZUJhY2tlbmRQcm94eSk6CisgICAgICAgICogc3JjL1dlYklEQkRh
dGFiYXNlSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRhdGFiYXNlSW1wbDo6cHV0
KToKKyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VJbXBsLmg6CisgICAgICAgIChXZWJJREJE
YXRhYmFzZUltcGwpOgorICAgICAgICAqIHRlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3Bw
OgorCiAyMDEyLTEyLTE5ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGludHJvZHVjZSBQYWdlLmNhcHR1cmVTY3JlZW5zaG90
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlQmFja2VuZEltcGwuY3BwCmluZGV4IDllY2MzZmNkOTQ0ODVjNzU5OTFjMDcwYjBiNWRi
YjRhMzMyYTEzYjUuLmFhMmQwYzU0NmM2ZDk0ZDZhNmQzM2JjMDlmZDU2NGRjODZhYTgxNzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlQmFja2VuZEltcGwuY3BwCkBAIC0zNDQsNyArMzQ0LDcgQEAgdm9pZCBJREJEYXRhYmFz
ZUJhY2tlbmRJbXBsOjpnZXQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0
b3JlSWQsIGkKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBJREJEYXRhYmFz
ZUJhY2tlbmRJbXBsOjpwdXQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0
b3JlSWQsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYsIFBhc3NSZWZQdHI8SURCS2V5PiwgUHV0TW9k
ZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4
SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYpCit2b2lkIElEQkRhdGFiYXNlQmFja2VuZElt
cGw6OnB1dChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgVmVj
dG9yPHVpbnQ4X3Q+JiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJLZXk+LCBQdXRNb2RlLCBQYXNzUmVm
UHRyPElEQkNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0
IFZlY3RvcjxJbmRleEtleXM+JikKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
QmFja2VuZEltcGwuaAppbmRleCA4MmJkYmM3NTQyMjkxMjcyZDFkZjVmZjM0Y2M3ZjVlM2RmZjA1
OThlLi4wOGQ0N2Q1NDMzZmNiYmM5OWM4ODA2OTk0MDIxYjFlN2U4MWIyNjkwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBs
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNr
ZW5kSW1wbC5oCkBAIC03OSw3ICs3OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHRyYW5zYWN0aW9u
RmluaXNoZWRBbmRBYm9ydEZpcmVkKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1w
bD4pOwogCiAgICAgdmlydHVhbCB2b2lkIGdldChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElEQktleVJhbmdl
PiwgYm9vbCBrZXlPbmx5LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBwdXQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0
b3JlSWQsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYsIFBhc3NSZWZQdHI8SURCS2V5PiwgUHV0TW9k
ZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4
SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBwdXQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFZlY3Rv
cjx1aW50OF90PiYgdmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiwgUHV0TW9kZSwgUGFzc1JlZlB0
cjxJREJDYWxsYmFja3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBW
ZWN0b3I8SW5kZXhLZXlzPiYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbmRleEtl
eXMoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFBhc3NSZWZQ
dHI8SURCS2V5PiBwcnBQcmltYXJ5S2V5LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRz
LCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRJbmRleGVzUmVhZHkoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgdm9pZCBvcGVuQ3Vyc29yKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCB1bnNpZ25l
ZCBzaG9ydCBkaXJlY3Rpb24sIGJvb2wga2V5T25seSwgVGFza1R5cGUsIFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oCmluZGV4IGRj
MjkwNDZhMzlkNjY2MmI4NTIyODIwZTQ1MjIzZjY3MTVhOGFhNzguLjg0NTZlNmM2N2E0MTZhZGUw
YWY3MTE0NzAwYzdjYTIyOThkMjY1ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oCkBA
IC04MCw3ICs4MCw4IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8SURCS2V5
PiA+IEluZGV4S2V5czsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXQoaW50NjRfdCB0cmFuc2FjdGlv
bklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgUGFzc1JlZlB0cjxJ
REJLZXlSYW5nZT4sIGJvb2wga2V5T25seSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIHB1dChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQ
dXRNb2RlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYg
aW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJbmRleEtleXM+JikgPSAwOworICAgIC8vIE5vdGUgdGhh
dCAndmFsdWUnIG1heSBiZSBjb25zdW1lZC9hZG9wdGVkIGJ5IHRoaXMgY2FsbC4KKyAgICB2aXJ0
dWFsIHZvaWQgcHV0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
LCBWZWN0b3I8dWludDhfdD4mIHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4sIFB1dE1vZGUsIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywg
Y29uc3QgVmVjdG9yPEluZGV4S2V5cz4mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEluZGV4
S2V5cyhpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgUGFzc1Jl
ZlB0cjxJREJLZXk+IHBycFByaW1hcnlLZXksIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJ
ZHMsIGNvbnN0IFZlY3RvcjxJbmRleEtleXM+JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJ
bmRleGVzUmVhZHkoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQs
IGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
b3BlbkN1cnNvcihpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwg
aW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgdW5zaWduZWQgc2hvcnQg
ZGlyZWN0aW9uLCBib29sIGtleU9ubHksIFRhc2tUeXBlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4pID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklE
QkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFz
ZS5oCmluZGV4IDA0ODMyZGJiMDdlNzMzZTgwYmJiNjk4Y2IxZjA4ZjQ3NGMzNWMyM2IuLjE5ODA5
MzFkODMxYjM4MTE3YTdhYTI2M2Q0YmRiYjk3ZTI3ODNjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaApAQCAtODIsNyArODIsOCBAQCBwdWJs
aWM6CiAgICAgdHlwZWRlZiBXZWJWZWN0b3I8V2ViSURCS2V5PiBXZWJJbmRleEtleXM7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZ2V0KGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBsb25nIGxvbmcgb2Jq
ZWN0U3RvcmVJZCwgbG9uZyBsb25nIGluZGV4SWQsIGNvbnN0IFdlYklEQktleVJhbmdlJiwgYm9v
bCBrZXlPbmx5LCBXZWJJREJDYWxsYmFja3MqKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQotICAgIHZpcnR1YWwgdm9pZCBwdXQobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcg
bG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJWZWN0b3I8dW5zaWduZWQgY2hhcj4mIHZhbHVl
LCBjb25zdCBXZWJJREJLZXkmLCBQdXRNb2RlLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJW
ZWN0b3I8bG9uZyBsb25nPiYgaW5kZXhJZHMsIGNvbnN0IFdlYlZlY3RvcjxXZWJJbmRleEtleXM+
JikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICAvLyBOb3RlIHRoYXQgJ3Zh
bHVlJyBtYXkgYmUgY29uc3VtZWQvYWRvcHRlZCBieSB0aGlzIGNhbGwuCisgICAgdmlydHVhbCB2
b2lkIHB1dChsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCwgbG9uZyBsb25nIG9iamVjdFN0b3JlSWQs
IFdlYlZlY3Rvcjx1bnNpZ25lZCBjaGFyPiYgdmFsdWUsIGNvbnN0IFdlYklEQktleSYsIFB1dE1v
ZGUsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiBpbmRleElk
cywgY29uc3QgV2ViVmVjdG9yPFdlYkluZGV4S2V5cz4mKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRJbmRleEtleXMobG9uZyBsb25nIHRyYW5z
YWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJJREJLZXkmLCBjb25z
dCBXZWJWZWN0b3I8bG9uZyBsb25nPiYgaW5kZXhJZHMsIGNvbnN0IFdlYlZlY3RvcjxXZWJJbmRl
eEtleXM+JikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZv
aWQgc2V0SW5kZXhlc1JlYWR5KGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBsb25nIGxvbmcgb2Jq
ZWN0U3RvcmVJZCwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIGluZGV4SWRzKSB7IFdFQktJ
VF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKGxv
bmcgbG9uZyB0cmFuc2FjdGlvbklkLCBsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgbG9uZyBsb25n
IGluZGV4SWQsIGNvbnN0IFdlYklEQktleVJhbmdlJiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9u
LCBib29sIGtleU9ubHksIFRhc2tUeXBlLCBXZWJJREJDYWxsYmFja3MqKSB7IFdFQktJVF9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwCmluZGV4IDc0OTc0N2E3MjUzZjcyNzE2ZTE3
OWIyZGY4OWM4NWFmMTZmMTE0OTUuLjIyMjRhYzM3MGFmYmJlNjlmZmM1ZDZkODhhZjU2NzE2OTZj
OGY0NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNl
QmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRh
YmFzZUJhY2tlbmRQcm94eS5jcHAKQEAgLTEyOCwxMCArMTI4LDEyIEBAIHZvaWQgSURCRGF0YWJh
c2VCYWNrZW5kUHJveHk6OmdldChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCwKICAgICAgICAgbV93ZWJJREJEYXRhYmFzZS0+Z2V0KHRyYW5zYWN0aW9uSWQsIG9i
amVjdFN0b3JlSWQsIGluZGV4SWQsIGtleVJhbmdlLCBrZXlPbmx5LCBuZXcgV2ViSURCQ2FsbGJh
Y2tzSW1wbChjYWxsYmFja3MpKTsKIH0KIAotdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6
cHV0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBW
ZWN0b3I8dWludDhfdD4mIGJ1ZmZlciwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUHV0TW9kZSBw
dXRNb2RlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBWZWN0b3I8
aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYgaW5kZXhLZXlzKQor
dm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6cHV0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBWZWN0b3I8dWludDhfdD4mIGJ1ZmZlciwgUGFzc1JlZlB0
cjxJREJLZXk+IGtleSwgUHV0TW9kZSBwdXRNb2RlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4g
Y2FsbGJhY2tzLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8
SW5kZXhLZXlzPiYgaW5kZXhLZXlzKQogewotICAgIGlmIChtX3dlYklEQkRhdGFiYXNlKQotICAg
ICAgICBtX3dlYklEQkRhdGFiYXNlLT5wdXQodHJhbnNhY3Rpb25JZCwgb2JqZWN0U3RvcmVJZCwg
YnVmZmVyLCBrZXksIHN0YXRpY19jYXN0PFdlYklEQkRhdGFiYXNlOjpQdXRNb2RlPihwdXRNb2Rl
KSwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgaW5kZXhJZHMsIGluZGV4S2V5
cyk7CisgICAgaWYgKG1fd2ViSURCRGF0YWJhc2UpIHsKKyAgICAgICAgV2ViVmVjdG9yPHVuc2ln
bmVkIGNoYXI+IHdlYkJ1ZmZlcihidWZmZXIpOworICAgICAgICBtX3dlYklEQkRhdGFiYXNlLT5w
dXQodHJhbnNhY3Rpb25JZCwgb2JqZWN0U3RvcmVJZCwgd2ViQnVmZmVyLCBrZXksIHN0YXRpY19j
YXN0PFdlYklEQkRhdGFiYXNlOjpQdXRNb2RlPihwdXRNb2RlKSwgbmV3IFdlYklEQkNhbGxiYWNr
c0ltcGwoY2FsbGJhY2tzKSwgaW5kZXhJZHMsIGluZGV4S2V5cyk7CisgICAgfQogfQogCiB2b2lk
IElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpzZXRJbmRleEtleXMoaW50NjRfdCB0cmFuc2FjdGlv
bklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5
LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlz
PiYgaW5kZXhLZXlzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
RGF0YWJhc2VCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRh
dGFiYXNlQmFja2VuZFByb3h5LmgKaW5kZXggNTVkMDQ3NTM0NGM1ZjhhMTA5YzQwMWY0YjU5YTg2
ZjdlNjQ1ZWUxMy4uYTBiZDE2Yjc4NTNkMTMzNmExMTZhMjQ2M2Q4YjFiNWM1MDYyZDhiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQ
cm94eS5oCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWJvcnQo
aW50NjRfdCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6SURCS2V5UmFuZ2U+LCBib29sIGtleU9ubHksIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2Fs
bGJhY2tzPikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHB1dChpbnQ2NF90IHRyYW5zYWN0
aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB2YWx1
ZSwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+LCBQdXRNb2RlLCBQYXNzUmVmUHRyPFdlYkNv
cmU6OklEQkNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0
IFZlY3RvcjxJbmRleEtleXM+JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHB1dChpbnQ2
NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgVmVjdG9yPHVpbnQ4X3Q+
JiB2YWx1ZSwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+LCBQdXRNb2RlLCBQYXNzUmVmUHRy
PFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMs
IGNvbnN0IFZlY3RvcjxJbmRleEtleXM+JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNl
dEluZGV4S2V5cyhpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+IHBycFByaW1hcnlLZXksIGNvbnN0IFZlY3Rvcjxp
bnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJbmRleEtleXM+JikgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIHNldEluZGV4ZXNSZWFkeShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcykgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIG9wZW5DdXJzb3IoaW50NjRfdCB0cmFuc2FjdGlvbklk
LCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpJREJLZXlSYW5nZT4sIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgYm9vbCBrZXlPbmx5
LCBUYXNrVHlwZSwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+KSBPVkVSUklERTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3Bw
CmluZGV4IGNhNjE2MmE2YjM4ODI3MGU1MmE0ODFmNjE0YWUwN2ExNGQ4MzFjYWEuLmFmYzZhODIx
OWFmMzBmMTEyMGJhMjFiOWJjYTVlZTc1ZDg0OTk3YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcApAQCAtMTQ3LDcgKzE0Nyw3IEBA
IHZvaWQgV2ViSURCRGF0YWJhc2VJbXBsOjpnZXQobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxv
bmcgbG9uZyBvYmplY3RTdG9yZUlkLCBsCiAgICAgICAgIG1fZGF0YWJhc2VCYWNrZW5kLT5nZXQo
dHJhbnNhY3Rpb25JZCwgb2JqZWN0U3RvcmVJZCwgaW5kZXhJZCwga2V5UmFuZ2UsIGtleU9ubHks
IElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSkpOwogfQogCi12
b2lkIFdlYklEQkRhdGFiYXNlSW1wbDo6cHV0KGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBsb25n
IGxvbmcgb2JqZWN0U3RvcmVJZCwgY29uc3QgV2ViVmVjdG9yPHVuc2lnbmVkIGNoYXI+JiB2YWx1
ZSwgY29uc3QgV2ViSURCS2V5JiBrZXksIFB1dE1vZGUgcHV0TW9kZSwgV2ViSURCQ2FsbGJhY2tz
KiBjYWxsYmFja3MsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiB3ZWJJbmRleElkcywgY29u
c3QgV2ViVmVjdG9yPFdlYkluZGV4S2V5cz4mIHdlYkluZGV4S2V5cykKK3ZvaWQgV2ViSURCRGF0
YWJhc2VJbXBsOjpwdXQobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RT
dG9yZUlkLCBXZWJWZWN0b3I8dW5zaWduZWQgY2hhcj4mIHZhbHVlLCBjb25zdCBXZWJJREJLZXkm
IGtleSwgUHV0TW9kZSBwdXRNb2RlLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3Qg
V2ViVmVjdG9yPGxvbmcgbG9uZz4mIHdlYkluZGV4SWRzLCBjb25zdCBXZWJWZWN0b3I8V2ViSW5k
ZXhLZXlzPiYgd2ViSW5kZXhLZXlzKQogewogICAgIGlmICghbV9kYXRhYmFzZUJhY2tlbmQpCiAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkRhdGFiYXNlSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0
YWJhc2VJbXBsLmgKaW5kZXggYWVlNzZkM2UyNzNiNGUwZTkwOTMxOTc3MjIxMjk3ZmMyM2Q1MGFk
Ny4uZGE4OWVjZmM3MGUwZDFlMGU5MWM0ZTg3OTExZjI2Y2U4Njc1NDYyNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgKQEAgLTY0LDcgKzY0
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjb21taXQobG9uZyBsb25nIHRyYW5zYWN0
aW9uSWQpOwogCiAgICAgdmlydHVhbCB2b2lkIGdldChsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCwg
bG9uZyBsb25nIG9iamVjdFN0b3JlSWQsIGxvbmcgbG9uZyBpbmRleElkLCBjb25zdCBXZWJJREJL
ZXlSYW5nZSYsIGJvb2wga2V5T25seSwgV2ViSURCQ2FsbGJhY2tzKikgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIHB1dChsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCwgbG9uZyBsb25nIG9iamVj
dFN0b3JlSWQsIGNvbnN0IFdlYlZlY3Rvcjx1bnNpZ25lZCBjaGFyPiYgdmFsdWUsIGNvbnN0IFdl
YklEQktleSYsIFB1dE1vZGUsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlZlY3Rvcjxsb25n
IGxvbmc+JiBpbmRleElkcywgY29uc3QgV2ViVmVjdG9yPFdlYkluZGV4S2V5cz4mKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgcHV0KGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBsb25nIGxv
bmcgb2JqZWN0U3RvcmVJZCwgV2ViVmVjdG9yPHVuc2lnbmVkIGNoYXI+JiB2YWx1ZSwgY29uc3Qg
V2ViSURCS2V5JiwgUHV0TW9kZSwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViVmVjdG9yPGxv
bmcgbG9uZz4mIGluZGV4SWRzLCBjb25zdCBXZWJWZWN0b3I8V2ViSW5kZXhLZXlzPiYpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbmRleEtleXMobG9uZyBsb25nIHRyYW5zYWN0aW9u
SWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJJREJLZXkmLCBjb25zdCBXZWJW
ZWN0b3I8bG9uZyBsb25nPiYgaW5kZXhJZHMsIGNvbnN0IFdlYlZlY3RvcjxXZWJJbmRleEtleXM+
JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldEluZGV4ZXNSZWFkeShsb25nIGxvbmcg
dHJhbnNhY3Rpb25JZCwgbG9uZyBsb25nIG9iamVjdFN0b3JlSWQsIGNvbnN0IFdlYlZlY3Rvcjxs
b25nIGxvbmc+JiBpbmRleElkcykgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIG9wZW5DdXJz
b3IobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBsb25n
IGxvbmcgaW5kZXhJZCwgY29uc3QgV2ViSURCS2V5UmFuZ2UmLCB1bnNpZ25lZCBzaG9ydCBkaXJl
Y3Rpb24sIGJvb2wga2V5T25seSwgVGFza1R5cGUsIFdlYklEQkNhbGxiYWNrcyopIE9WRVJSSURF
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJh
Y2tlbmRUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VC
YWNrZW5kVGVzdC5jcHAKaW5kZXggMTE3MmVhYjBiMzc1MmI0YzQ2NzQwZWQxYzVhMDNiMjYzY2Zk
NmM0Zi4uM2FlODM5YzQ5NDQwNzU0ZTk3M2U0MzM0YTY5ZTFjMmVhODFiZTM5NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRl
c3QuY3BwCkBAIC0xNzAsNyArMTcwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvcGVu
Q3Vyc29yKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2
NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJl
Y3Rpb24sIGJvb2wga2V5T25seSwgVGFza1R5cGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPikg
T1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNvdW50KGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgaW50NjRfdCBpbmRleElkLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURC
S2V5UmFuZ2U+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pIE9WRVJSSURFIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBnZXQoaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGlu
dDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIGJvb2wga2V5T25s
eSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgcHV0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25z
dCBWZWN0b3I8dWludDhfdD4mLCBQYXNzUmVmUHRyPElEQktleT4sIFB1dE1vZGUsIFBhc3NSZWZQ
dHI8SURCQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3Qg
VmVjdG9yPEluZGV4S2V5cz4mKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcHV0KGlu
dDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBWZWN0b3I8dWludDhf
dD4mLCBQYXNzUmVmUHRyPElEQktleT4sIFB1dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5
cz4mKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5kZXhLZXlzKGludDY0X3Qg
dHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNzUmVmUHRyPElEQktleT4g
cHJwUHJpbWFyeUtleSwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVj
dG9yPEluZGV4S2V5cz4mKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5kZXhl
c1JlYWR5KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25z
dCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgZGVsZXRlUmFuZ2UoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pIE9W
RVJSSURFIHsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181043</attachid>
            <date>2013-01-02 12:00:48 -0800</date>
            <delta_ts>2013-01-02 15:28:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105572-20130102115756.patch</filename>
            <type>text/plain</type>
            <size>16865</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzBkOTk5YzYxN2YxYWIx
MDIyNTViNzI2MTdlYWVkMmVjMDQ0NWEwOS4uYTQzMmQ1MDM2YWYxYmUyNjQwZjgxOGEzNWE2OGQx
ZDJlNzlmMjY3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTEyLTIwICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IFVz
ZSBub24tY29uc3QgYnVmZmVycyBpbiBwdXQoKSB0byBhdm9pZCBjb3BpZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTU3MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSB0aGUgbmV3IHB1dCgp
IG1ldGhvZCB0byBhbGxvdyB0aGUgaW1wbGVtZW50YXRpb24gdG8gY29uc3VtZQorICAgICAgICBv
ciBhZG9wdCB0aGUgdmVjdG9yLCB0byBhdm9pZCBjb3B5aW5nLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cyBhcyB0aGlzIGlzIGFuIGludGVyZmFjZSBjaGFuZ2UgdGhhdCB3aWxsIGJlIGltcGxlbWVu
dGVkIGxhdGVyLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNr
ZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpw
dXQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwu
aDoKKyAgICAgICAgKElEQkRhdGFiYXNlQmFja2VuZEltcGwpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oOgorCiAyMDEyLTEyLTI4ICBS
YWZhZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1RlbXBs
YXRlc106IEZpeCBhc3NlcnQgaW4gY29sZ3JvdXAgcGFyc2UgaGFuZGxpbmcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggOTU0MzU1YWM1ZjdmYzkxYmU3MGUzM2FiYzJhYTk0N2MyMTAxNjM3
Yy4uODc1NTc2NTg3YjE3YzA2OWVjMWFlYmFkZDQ4MGE5Y2ViM2Y0ZTZkOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0xMi0yMCAgQWxlYyBGbGV0dCAg
PGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBVc2Ugbm9uLWNv
bnN0IGJ1ZmZlcnMgaW4gcHV0KCkgdG8gYXZvaWQgY29waWVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU1NzIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXNzIG9uIG5vbi1jb25zdCBWZWN0b3JzIHRv
IGFsbG93IGJ1ZmZlciBhZG9wdGlvbiByYXRoZXIgdGhhbiBjb3BpZXMuCisKKyAgICAgICAgKiBw
dWJsaWMvV2ViSURCRGF0YWJhc2UuaDoKKyAgICAgICAgKFdlYklEQkRhdGFiYXNlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2U6OnB1dCk6CisgICAgICAgICogc3JjL0lEQkRhdGFi
YXNlQmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SURCRGF0YWJhc2VCYWNrZW5k
UHJveHk6OnB1dCk6CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5Lmg6Cisg
ICAgICAgIChJREJEYXRhYmFzZUJhY2tlbmRQcm94eSk6CisgICAgICAgICogc3JjL1dlYklEQkRh
dGFiYXNlSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRhdGFiYXNlSW1wbDo6cHV0
KToKKyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VJbXBsLmg6CisgICAgICAgIChXZWJJREJE
YXRhYmFzZUltcGwpOgorICAgICAgICAqIHRlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3Bw
OgorCiAyMDEyLTEyLTI4ICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJvbGwgQ2hyb21pdW0gREVQUyB0byByMTc0NzM5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3Bw
CmluZGV4IDI4NmM3OWVlZTJiYWZhYTI1YmE0OTk4YjUyZWY1OGYwMmU1YmFlOWMuLmNkOGFlNzc4
NzMwNzY0Mjk4YWNiZWU5ZWNjOWZmM2RmNGNjZjk3M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3Bw
CkBAIC0zMjEsNyArMzIxLDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpnZXQoaW50
NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGkKICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpwdXQoaW50
NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFZlY3Rvcjx1
aW50OF90PiYsIFBhc3NSZWZQdHI8SURCS2V5PiwgUHV0TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxs
YmFja3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5k
ZXhLZXlzPiYpCit2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnB1dChpbnQ2NF90IHRyYW5z
YWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgVmVjdG9yPHVpbnQ4X3Q+KiB2YWx1ZSwg
UGFzc1JlZlB0cjxJREJLZXk+LCBQdXRNb2RlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIGNv
bnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJbmRleEtleXM+JikK
IHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaAppbmRleCAw
NDQ4OTdiZTM4ZjlhYjU3NTU5YjM1MDRkZTFhMTBlM2FmOThkODMzLi4xMDk1MTM1NDNkZmFkYzhj
Y2NjNzI4NWNhZWQ1NDRjZGFhMjZiZWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCkBAIC03OCw3ICs3
OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHRyYW5zYWN0aW9uRmluaXNoZWRBbmRBYm9ydEZpcmVk
KFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4pOwogCiAgICAgdmlydHVhbCB2
b2lkIGdldChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50
NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgYm9vbCBrZXlPbmx5LCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBwdXQoaW50
NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFZlY3Rvcjx1
aW50OF90PiYsIFBhc3NSZWZQdHI8SURCS2V5PiwgUHV0TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxs
YmFja3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5k
ZXhLZXlzPiYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwdXQoaW50NjRfdCB0cmFuc2Fj
dGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFZlY3Rvcjx1aW50OF90PiogdmFsdWUsIFBh
c3NSZWZQdHI8SURCS2V5PiwgUHV0TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBjb25z
dCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbmRleEtleXMoaW50NjRfdCB0cmFuc2FjdGlv
bklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFBhc3NSZWZQdHI8SURCS2V5PiBwcnBQcmltYXJ5
S2V5LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhL
ZXlzPiYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbmRleGVzUmVhZHkoaW50NjRf
dCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFZlY3RvcjxpbnQ2
NF90PiYgaW5kZXhJZHMpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKGlu
dDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4
SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIGJv
b2wga2V5T25seSwgVGFza1R5cGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPikgT1ZFUlJJREU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUJhY2tlbmRJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oCmluZGV4IGRjMjkwNDZhMzlkNjY2MmI4NTIyODIw
ZTQ1MjIzZjY3MTVhOGFhNzguLmQ1MWI1NTFlNGJiY2I5NDg5ODQxMzVlMTdjNzg3NzEzOTAxNGUz
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlQmFja2VuZEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oCkBAIC04MCw3ICs4MCw4IEBAIHB1Ymxp
YzoKICAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+IEluZGV4S2V5czsKIAogICAg
IHZpcnR1YWwgdm9pZCBnZXQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0
b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIGJvb2wga2V5
T25seSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHB1
dChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgVmVj
dG9yPHVpbnQ4X3Q+JiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQdXRNb2RlLCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3Rv
cjxJbmRleEtleXM+JikgPSAwOworICAgIC8vIE5vdGUgdGhhdCAndmFsdWUnIG1heSBiZSBjb25z
dW1lZC9hZG9wdGVkIGJ5IHRoaXMgY2FsbC4KKyAgICB2aXJ0dWFsIHZvaWQgcHV0KGludDY0X3Qg
dHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBWZWN0b3I8dWludDhfdD4qIHZh
bHVlLCBQYXNzUmVmUHRyPElEQktleT4sIFB1dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5
cz4mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEluZGV4S2V5cyhpbnQ2NF90IHRyYW5zYWN0
aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgUGFzc1JlZlB0cjxJREJLZXk+IHBycFByaW1h
cnlLZXksIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJbmRl
eEtleXM+JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbmRleGVzUmVhZHkoaW50NjRfdCB0
cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90
PiYgaW5kZXhJZHMpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb3BlbkN1cnNvcihpbnQ2NF90IHRy
YW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNz
UmVmUHRyPElEQktleVJhbmdlPiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBib29sIGtleU9u
bHksIFRhc2tUeXBlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZS5oCmluZGV4IDA0ODMyZGJiMDdl
NzMzZTgwYmJiNjk4Y2IxZjA4ZjQ3NGMzNWMyM2IuLmU2MjRmZTU4ZDgxNGNjMjNjMjZjNzUzZjE2
Nzc4YTgwNzViNzU4NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYklEQkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
SURCRGF0YWJhc2UuaApAQCAtODIsNyArODIsOCBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBXZWJW
ZWN0b3I8V2ViSURCS2V5PiBXZWJJbmRleEtleXM7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0KGxv
bmcgbG9uZyB0cmFuc2FjdGlvbklkLCBsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgbG9uZyBsb25n
IGluZGV4SWQsIGNvbnN0IFdlYklEQktleVJhbmdlJiwgYm9vbCBrZXlPbmx5LCBXZWJJREJDYWxs
YmFja3MqKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZpcnR1YWwgdm9p
ZCBwdXQobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBj
b25zdCBXZWJWZWN0b3I8dW5zaWduZWQgY2hhcj4mIHZhbHVlLCBjb25zdCBXZWJJREJLZXkmLCBQ
dXRNb2RlLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYgaW5k
ZXhJZHMsIGNvbnN0IFdlYlZlY3RvcjxXZWJJbmRleEtleXM+JikgeyBXRUJLSVRfQVNTRVJUX05P
VF9SRUFDSEVEKCk7IH0KKyAgICAvLyBOb3RlIHRoYXQgJ3ZhbHVlJyBtYXkgYmUgY29uc3VtZWQv
YWRvcHRlZCBieSB0aGlzIGNhbGwuCisgICAgdmlydHVhbCB2b2lkIHB1dChsb25nIGxvbmcgdHJh
bnNhY3Rpb25JZCwgbG9uZyBsb25nIG9iamVjdFN0b3JlSWQsIFdlYlZlY3Rvcjx1bnNpZ25lZCBj
aGFyPiogdmFsdWUsIGNvbnN0IFdlYklEQktleSYsIFB1dE1vZGUsIFdlYklEQkNhbGxiYWNrcyos
IGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiBpbmRleElkcywgY29uc3QgV2ViVmVjdG9yPFdl
YkluZGV4S2V5cz4mKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1
YWwgdm9pZCBzZXRJbmRleEtleXMobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBv
YmplY3RTdG9yZUlkLCBjb25zdCBXZWJJREJLZXkmLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25n
PiYgaW5kZXhJZHMsIGNvbnN0IFdlYlZlY3RvcjxXZWJJbmRleEtleXM+JikgeyBXRUJLSVRfQVNT
RVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5kZXhlc1JlYWR5KGxv
bmcgbG9uZyB0cmFuc2FjdGlvbklkLCBsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgY29uc3QgV2Vi
VmVjdG9yPGxvbmcgbG9uZz4mIGluZGV4SWRzKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQogICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKGxvbmcgbG9uZyB0cmFuc2FjdGlvbklk
LCBsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgbG9uZyBsb25nIGluZGV4SWQsIGNvbnN0IFdlYklE
QktleVJhbmdlJiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBib29sIGtleU9ubHksIFRhc2tU
eXBlLCBXZWJJREJDYWxsYmFja3MqKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5k
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5k
UHJveHkuY3BwCmluZGV4IDc0OTc0N2E3MjUzZjcyNzE2ZTE3OWIyZGY4OWM4NWFmMTZmMTE0OTUu
LjgyMDUxNDQ3OTg4YTJkN2Y0YThiMjk0YWM5MjIzYTA0ODE3MjVmYTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHAK
QEAgLTEyOCwxMCArMTI4LDEzIEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmdldChp
bnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwKICAgICAgICAgbV93
ZWJJREJEYXRhYmFzZS0+Z2V0KHRyYW5zYWN0aW9uSWQsIG9iamVjdFN0b3JlSWQsIGluZGV4SWQs
IGtleVJhbmdlLCBrZXlPbmx5LCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpKTsK
IH0KIAotdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6cHV0KGludDY0X3QgdHJhbnNhY3Rp
b25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGJ1ZmZl
ciwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUHV0TW9kZSBwdXRNb2RlLCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBj
b25zdCBWZWN0b3I8SW5kZXhLZXlzPiYgaW5kZXhLZXlzKQordm9pZCBJREJEYXRhYmFzZUJhY2tl
bmRQcm94eTo6cHV0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
LCBWZWN0b3I8dWludDhfdD4qIGJ1ZmZlciwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUHV0TW9k
ZSBwdXRNb2RlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBWZWN0
b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYgaW5kZXhLZXlz
KQogewotICAgIGlmIChtX3dlYklEQkRhdGFiYXNlKQotICAgICAgICBtX3dlYklEQkRhdGFiYXNl
LT5wdXQodHJhbnNhY3Rpb25JZCwgb2JqZWN0U3RvcmVJZCwgYnVmZmVyLCBrZXksIHN0YXRpY19j
YXN0PFdlYklEQkRhdGFiYXNlOjpQdXRNb2RlPihwdXRNb2RlKSwgbmV3IFdlYklEQkNhbGxiYWNr
c0ltcGwoY2FsbGJhY2tzKSwgaW5kZXhJZHMsIGluZGV4S2V5cyk7CisgICAgaWYgKG1fd2ViSURC
RGF0YWJhc2UpIHsKKyAgICAgICAgV2ViVmVjdG9yPHVuc2lnbmVkIGNoYXI+IHdlYkJ1ZmZlcihi
dWZmZXItPnNpemUoKSk7CisgICAgICAgIHdlYkJ1ZmZlci5hc3NpZ24oYnVmZmVyLT5kYXRhKCks
IGJ1ZmZlci0+c2l6ZSgpKTsKKyAgICAgICAgbV93ZWJJREJEYXRhYmFzZS0+cHV0KHRyYW5zYWN0
aW9uSWQsIG9iamVjdFN0b3JlSWQsICZ3ZWJCdWZmZXIsIGtleSwgc3RhdGljX2Nhc3Q8V2ViSURC
RGF0YWJhc2U6OlB1dE1vZGU+KHB1dE1vZGUpLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxs
YmFja3MpLCBpbmRleElkcywgaW5kZXhLZXlzKTsKKyAgICB9CiB9CiAKIHZvaWQgSURCRGF0YWJh
c2VCYWNrZW5kUHJveHk6OnNldEluZGV4S2V5cyhpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIGNvbnN0IFZl
Y3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJbmRleEtleXM+JiBpbmRleEtl
eXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJh
Y2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNr
ZW5kUHJveHkuaAppbmRleCA1NWQwNDc1MzQ0YzVmOGExMDljNDAxZjRiNTlhODZmN2U2NDVlZTEz
Li5mZDdiYTMxOGU3YzI0NjM2N2I3ZDFlYzk0NWUyNGJjNjkzMmMyZmIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmgKQEAg
LTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhYm9ydChpbnQ2NF90KTsK
IAogICAgIHZpcnR1YWwgdm9pZCBnZXQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXlS
YW5nZT4sIGJvb2wga2V5T25seSwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+KSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcHV0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50
NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHZhbHVlLCBQYXNzUmVm
UHRyPFdlYkNvcmU6OklEQktleT4sIFB1dE1vZGUsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2Fs
bGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPElu
ZGV4S2V5cz4mKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcHV0KGludDY0X3QgdHJhbnNh
Y3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBWZWN0b3I8dWludDhfdD4qIHZhbHVlLCBQ
YXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4sIFB1dE1vZGUsIFBhc3NSZWZQdHI8V2ViQ29yZTo6
SURCQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVj
dG9yPEluZGV4S2V5cz4mKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5kZXhLZXlz
KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNzUmVmUHRy
PFdlYkNvcmU6OklEQktleT4gcHJwUHJpbWFyeUtleSwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBp
bmRleElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0SW5kZXhlc1JlYWR5KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgb3BlbkN1cnNvcihpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qg
b2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktl
eVJhbmdlPiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBib29sIGtleU9ubHksIFRhc2tUeXBl
LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4pIE9WRVJSSURFOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKaW5kZXggY2E2
MTYyYTZiMzg4MjcwZTUyYTQ4MWY2MTRhZTA3YTE0ZDgzMWNhYS4uYjA1YzUxN2M0MzE4YTE5NzEz
ZGI5NWZjYzA3ZTYxM2Q5ZTU2YmI0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBXZWJJ
REJEYXRhYmFzZUltcGw6OmdldChsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCwgbG9uZyBsb25nIG9i
amVjdFN0b3JlSWQsIGwKICAgICAgICAgbV9kYXRhYmFzZUJhY2tlbmQtPmdldCh0cmFuc2FjdGlv
bklkLCBvYmplY3RTdG9yZUlkLCBpbmRleElkLCBrZXlSYW5nZSwga2V5T25seSwgSURCQ2FsbGJh
Y2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKSk7CiB9CiAKLXZvaWQgV2ViSURC
RGF0YWJhc2VJbXBsOjpwdXQobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmpl
Y3RTdG9yZUlkLCBjb25zdCBXZWJWZWN0b3I8dW5zaWduZWQgY2hhcj4mIHZhbHVlLCBjb25zdCBX
ZWJJREJLZXkmIGtleSwgUHV0TW9kZSBwdXRNb2RlLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNr
cywgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIHdlYkluZGV4SWRzLCBjb25zdCBXZWJWZWN0
b3I8V2ViSW5kZXhLZXlzPiYgd2ViSW5kZXhLZXlzKQordm9pZCBXZWJJREJEYXRhYmFzZUltcGw6
OnB1dChsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCwgbG9uZyBsb25nIG9iamVjdFN0b3JlSWQsIFdl
YlZlY3Rvcjx1bnNpZ25lZCBjaGFyPiogdmFsdWUsIGNvbnN0IFdlYklEQktleSYga2V5LCBQdXRN
b2RlIHB1dE1vZGUsIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJWZWN0b3I8
bG9uZyBsb25nPiYgd2ViSW5kZXhJZHMsIGNvbnN0IFdlYlZlY3RvcjxXZWJJbmRleEtleXM+JiB3
ZWJJbmRleEtleXMpCiB7CiAgICAgaWYgKCFtX2RhdGFiYXNlQmFja2VuZCkKICAgICAgICAgcmV0
dXJuOwpAQCAtMTY0LDkgKzE2NCw5IEBAIHZvaWQgV2ViSURCRGF0YWJhc2VJbXBsOjpwdXQobG9u
ZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjCiAgICAgICAg
IGluZGV4S2V5c1tpXSA9IGluZGV4S2V5TGlzdDsKICAgICB9CiAKLSAgICBWZWN0b3I8dWludDhf
dD4gdmFsdWVCdWZmZXI7Ci0gICAgdmFsdWVCdWZmZXIuYXBwZW5kKHZhbHVlLmRhdGEoKSwgdmFs
dWUuc2l6ZSgpKTsKLSAgICBtX2RhdGFiYXNlQmFja2VuZC0+cHV0KHRyYW5zYWN0aW9uSWQsIG9i
amVjdFN0b3JlSWQsIHZhbHVlQnVmZmVyLCBrZXksIHN0YXRpY19jYXN0PElEQkRhdGFiYXNlQmFj
a2VuZEludGVyZmFjZTo6UHV0TW9kZT4ocHV0TW9kZSksIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVh
dGUoYWRvcHRQdHIoY2FsbGJhY2tzKSksIGluZGV4SWRzLCBpbmRleEtleXMpOworICAgIFZlY3Rv
cjx1aW50OF90PiB2YWx1ZUJ1ZmZlcih2YWx1ZS0+c2l6ZSgpKTsKKyAgICB2YWx1ZUJ1ZmZlci5h
cHBlbmQodmFsdWUtPmRhdGEoKSwgdmFsdWUtPnNpemUoKSk7CisgICAgbV9kYXRhYmFzZUJhY2tl
bmQtPnB1dCh0cmFuc2FjdGlvbklkLCBvYmplY3RTdG9yZUlkLCAmdmFsdWVCdWZmZXIsIGtleSwg
c3RhdGljX2Nhc3Q8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpQdXRNb2RlPihwdXRNb2Rl
KSwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKSwgaW5kZXhJ
ZHMsIGluZGV4S2V5cyk7CiB9CiAKIHZvaWQgV2ViSURCRGF0YWJhc2VJbXBsOjpzZXRJbmRleEtl
eXMobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25z
dCBXZWJJREJLZXkmIHByaW1hcnlLZXksIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiB3ZWJJ
bmRleElkcywgY29uc3QgV2ViVmVjdG9yPFdlYkluZGV4S2V5cz4mIHdlYkluZGV4S2V5cykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgKaW5kZXgg
YWVlNzZkM2UyNzNiNGUwZTkwOTMxOTc3MjIxMjk3ZmMyM2Q1MGFkNy4uZGQ3YWIzYTU3Y2M3ODNi
MDE2MDlhZDkzNGQyZWY1NTQ2Y2NiZWI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBjb21taXQobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQpOwogCiAgICAgdmly
dHVhbCB2b2lkIGdldChsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCwgbG9uZyBsb25nIG9iamVjdFN0
b3JlSWQsIGxvbmcgbG9uZyBpbmRleElkLCBjb25zdCBXZWJJREJLZXlSYW5nZSYsIGJvb2wga2V5
T25seSwgV2ViSURCQ2FsbGJhY2tzKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHB1dChs
b25nIGxvbmcgdHJhbnNhY3Rpb25JZCwgbG9uZyBsb25nIG9iamVjdFN0b3JlSWQsIGNvbnN0IFdl
YlZlY3Rvcjx1bnNpZ25lZCBjaGFyPiYgdmFsdWUsIGNvbnN0IFdlYklEQktleSYsIFB1dE1vZGUs
IFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiBpbmRleElkcywg
Y29uc3QgV2ViVmVjdG9yPFdlYkluZGV4S2V5cz4mKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgcHV0KGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwg
V2ViVmVjdG9yPHVuc2lnbmVkIGNoYXI+KiB2YWx1ZSwgY29uc3QgV2ViSURCS2V5JiwgUHV0TW9k
ZSwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIGluZGV4SWRz
LCBjb25zdCBXZWJWZWN0b3I8V2ViSW5kZXhLZXlzPiYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRJbmRleEtleXMobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmpl
Y3RTdG9yZUlkLCBjb25zdCBXZWJJREJLZXkmLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYg
aW5kZXhJZHMsIGNvbnN0IFdlYlZlY3RvcjxXZWJJbmRleEtleXM+JikgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIHNldEluZGV4ZXNSZWFkeShsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCwgbG9u
ZyBsb25nIG9iamVjdFN0b3JlSWQsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiBpbmRleElk
cykgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIG9wZW5DdXJzb3IobG9uZyBsb25nIHRyYW5z
YWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBsb25nIGxvbmcgaW5kZXhJZCwgY29u
c3QgV2ViSURCS2V5UmFuZ2UmLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIGJvb2wga2V5T25s
eSwgVGFza1R5cGUsIFdlYklEQkNhbGxiYWNrcyopIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKaW5k
ZXggN2ZiNTAzNDI4N2Y2YTg5OTM2ZTc1OGFmNGQ5M2YzY2UwY2EyOTkzNy4uMTg4YzYzZGYxOWY0
Zjk2M2M4ZTRjODE1YTIwNDJjYzYwMWI4ODYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCkBAIC0xNzAsNyAr
MTcwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKGludDY0X3QgdHJh
bnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIFBhc3NS
ZWZQdHI8SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIGJvb2wga2V5T25s
eSwgVGFza1R5cGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPikgT1ZFUlJJREUgeyB9CiAgICAg
dmlydHVhbCB2b2lkIGNvdW50KGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElk
LCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBQYXNzUmVm
UHRyPElEQkNhbGxiYWNrcz4pIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBnZXQoaW50
NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGludDY0X3QgdHJhbnNhY3Rpb25J
ZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIGJvb2wga2V5T25seSwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+KSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcHV0KGludDY0X3QgdHJh
bnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBWZWN0b3I8dWludDhfdD4m
LCBQYXNzUmVmUHRyPElEQktleT4sIFB1dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwg
Y29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4m
KSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcHV0KGludDY0X3QgdHJhbnNhY3Rpb25J
ZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBWZWN0b3I8dWludDhfdD4mLCBQYXNzUmVmUHRyPElE
QktleT4sIFB1dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGlu
dDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mKSBPVkVSUklERSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5kZXhLZXlzKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50
NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNzUmVmUHRyPElEQktleT4gcHJwUHJpbWFyeUtleSwgY29u
c3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mKSBP
VkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5kZXhlc1JlYWR5KGludDY0X3QgdHJh
bnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4m
IGluZGV4SWRzKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlUmFuZ2UoaW50
NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFBhc3NSZWZQdHI8SURC
S2V5UmFuZ2U+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pIE9WRVJSSURFIHsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181083</attachid>
            <date>2013-01-02 15:28:07 -0800</date>
            <delta_ts>2013-01-02 15:50:16 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-105572-20130102152515.patch</filename>
            <type>text/plain</type>
            <size>16841</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODAwZGM0NjU5NzkxNGFl
YzgwMTJlZTkyNGFmMTEyNGEwYzM1M2Y4OC4uZmU1NmIzZjZjYmI3ODg1MDE5NzFlNzM3NzFkN2Ri
ZmUzODQ3YjBjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTEyLTIwICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IFVz
ZSBub24tY29uc3QgYnVmZmVycyBpbiBwdXQoKSB0byBhdm9pZCBjb3BpZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTU3MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgQ2hhbmdlIHRoZSBuZXcgcHV0KCkgbWV0
aG9kIHRvIGFsbG93IHRoZSBpbXBsZW1lbnRhdGlvbiB0byBjb25zdW1lCisgICAgICAgIG9yIGFk
b3B0IHRoZSB2ZWN0b3IsIHRvIGF2b2lkIGNvcHlpbmcuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IGFzIHRoaXMgaXMgYW4gaW50ZXJmYWNlIGNoYW5nZSB0aGF0IHdpbGwgYmUgaW1wbGVtZW50ZWQg
bGF0ZXIuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJ
bXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OnB1dCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oOgor
ICAgICAgICAoSURCRGF0YWJhc2VCYWNrZW5kSW1wbCk6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmg6CisKIDIwMTMtMDEtMDIgIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIxMzg2MDEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDk1
NDM1NWFjNWY3ZmM5MWJlNzBlMzNhYmMyYWE5NDdjMjEwMTYzN2MuLmM1NzA2NzBlZTA5ODc0ODhh
MzhlNGVjOWFmN2RjODQ0ZjBkYjdmZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjUgQEAKKzIwMTItMTItMjAgIEFsZWMgRmxldHQgIDxhbGVjZmxldHRAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIEluZGV4ZWREQjogVXNlIG5vbi1jb25zdCBidWZmZXJzIGluIHB1dCgp
IHRvIGF2b2lkIGNvcGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA1NTcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAg
ICAgICBQYXNzIG9uIG5vbi1jb25zdCBWZWN0b3JzIHRvIGFsbG93IGJ1ZmZlciBhZG9wdGlvbiBy
YXRoZXIgdGhhbiBjb3BpZXMuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViSURCRGF0YWJhc2UuaDoK
KyAgICAgICAgKFdlYklEQkRhdGFiYXNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRGF0YWJh
c2U6OnB1dCk6CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6SURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OnB1dCk6CisgICAgICAgICog
c3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5Lmg6CisgICAgICAgIChJREJEYXRhYmFzZUJhY2tl
bmRQcm94eSk6CisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYklEQkRhdGFiYXNlSW1wbDo6cHV0KToKKyAgICAgICAgKiBzcmMvV2ViSURC
RGF0YWJhc2VJbXBsLmg6CisgICAgICAgIChXZWJJREJEYXRhYmFzZUltcGwpOgorICAgICAgICAq
IHRlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwOgorCiAyMDEyLTEyLTI4ICBGYWR5IFNh
bXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJvbGwgQ2hyb21pdW0gREVQ
UyB0byByMTc0NzM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCmluZGV4IDI4NmM3OWVlZTJiYWZhYTI1
YmE0OTk4YjUyZWY1OGYwMmU1YmFlOWMuLmNkOGFlNzc4NzMwNzY0Mjk4YWNiZWU5ZWNjOWZmM2Rm
NGNjZjk3M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCkBAIC0zMjEsNyArMzIxLDcgQEAgdm9p
ZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpnZXQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIGkKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9p
ZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpwdXQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYsIFBhc3NSZWZQdHI8SURC
S2V5PiwgUHV0TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBjb25zdCBWZWN0b3I8aW50
NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYpCit2b2lkIElEQkRhdGFi
YXNlQmFja2VuZEltcGw6OnB1dChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCwgVmVjdG9yPHVpbnQ4X3Q+KiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJLZXk+LCBQdXRN
b2RlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5k
ZXhJZHMsIGNvbnN0IFZlY3RvcjxJbmRleEtleXM+JikKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlQmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaAppbmRleCAwNDQ4OTdiZTM4ZjlhYjU3NTU5YjM1MDRk
ZTFhMTBlM2FmOThkODMzLi4xMDk1MTM1NDNkZmFkYzhjY2NjNzI4NWNhZWQ1NDRjZGFhMjZiZWVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUJhY2tlbmRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VCYWNrZW5kSW1wbC5oCkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHRyYW5zYWN0aW9uRmluaXNoZWRBbmRBYm9ydEZpcmVkKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW1wbD4pOwogCiAgICAgdmlydHVhbCB2b2lkIGdldChpbnQ2NF90IHRyYW5zYWN0
aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRy
PElEQktleVJhbmdlPiwgYm9vbCBrZXlPbmx5LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBwdXQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYsIFBhc3NSZWZQdHI8SURC
S2V5PiwgUHV0TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBjb25zdCBWZWN0b3I8aW50
NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBwdXQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0
b3JlSWQsIFZlY3Rvcjx1aW50OF90PiogdmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiwgUHV0TW9k
ZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4
SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRJbmRleEtleXMoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQsIFBhc3NSZWZQdHI8SURCS2V5PiBwcnBQcmltYXJ5S2V5LCBjb25zdCBWZWN0b3I8aW50NjRf
dD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRJbmRleGVzUmVhZHkoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50
NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFu
Z2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIGJvb2wga2V5T25seSwgVGFza1R5cGUsIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFj
ZS5oCmluZGV4IGRjMjkwNDZhMzlkNjY2MmI4NTIyODIwZTQ1MjIzZjY3MTVhOGFhNzguLmQ1MWI1
NTFlNGJiY2I5NDg5ODQxMzVlMTdjNzg3NzEzOTAxNGUzMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZElu
dGVyZmFjZS5oCkBAIC04MCw3ICs4MCw4IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIFZlY3RvcjxS
ZWZQdHI8SURCS2V5PiA+IEluZGV4S2V5czsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXQoaW50NjRf
dCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwg
UGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIGJvb2wga2V5T25seSwgUGFzc1JlZlB0cjxJREJDYWxs
YmFja3M+KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHB1dChpbnQ2NF90IHRyYW5zYWN0aW9uSWQs
IGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgUGFzc1JlZlB0
cjxJREJLZXk+LCBQdXRNb2RlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIGNvbnN0IFZlY3Rv
cjxpbnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJbmRleEtleXM+JikgPSAwOworICAg
IC8vIE5vdGUgdGhhdCAndmFsdWUnIG1heSBiZSBjb25zdW1lZC9hZG9wdGVkIGJ5IHRoaXMgY2Fs
bC4KKyAgICB2aXJ0dWFsIHZvaWQgcHV0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBWZWN0b3I8dWludDhfdD4qIHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4s
IFB1dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+
JiBpbmRleElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHNldEluZGV4S2V5cyhpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCwgUGFzc1JlZlB0cjxJREJLZXk+IHBycFByaW1hcnlLZXksIGNvbnN0IFZlY3RvcjxpbnQ2
NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJbmRleEtleXM+JikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRJbmRleGVzUmVhZHkoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgb3BlbkN1cnNvcihpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgdW5z
aWduZWQgc2hvcnQgZGlyZWN0aW9uLCBib29sIGtleU9ubHksIFRhc2tUeXBlLCBQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4pID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYklEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJJREJEYXRhYmFzZS5oCmluZGV4IDA0ODMyZGJiMDdlNzMzZTgwYmJiNjk4Y2IxZjA4ZjQ3NGMz
NWMyM2IuLmU2MjRmZTU4ZDgxNGNjMjNjMjZjNzUzZjE2Nzc4YTgwNzViNzU4NzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaApAQCAtODIsNyAr
ODIsOCBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBXZWJWZWN0b3I8V2ViSURCS2V5PiBXZWJJbmRl
eEtleXM7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0KGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBs
b25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgbG9uZyBsb25nIGluZGV4SWQsIGNvbnN0IFdlYklEQktl
eVJhbmdlJiwgYm9vbCBrZXlPbmx5LCBXZWJJREJDYWxsYmFja3MqKSB7IFdFQktJVF9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBwdXQobG9uZyBsb25nIHRyYW5zYWN0
aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJWZWN0b3I8dW5zaWduZWQg
Y2hhcj4mIHZhbHVlLCBjb25zdCBXZWJJREJLZXkmLCBQdXRNb2RlLCBXZWJJREJDYWxsYmFja3Mq
LCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYgaW5kZXhJZHMsIGNvbnN0IFdlYlZlY3RvcjxX
ZWJJbmRleEtleXM+JikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICAvLyBO
b3RlIHRoYXQgJ3ZhbHVlJyBtYXkgYmUgY29uc3VtZWQvYWRvcHRlZCBieSB0aGlzIGNhbGwuCisg
ICAgdmlydHVhbCB2b2lkIHB1dChsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCwgbG9uZyBsb25nIG9i
amVjdFN0b3JlSWQsIFdlYlZlY3Rvcjx1bnNpZ25lZCBjaGFyPiogdmFsdWUsIGNvbnN0IFdlYklE
QktleSYsIFB1dE1vZGUsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxv
bmc+JiBpbmRleElkcywgY29uc3QgV2ViVmVjdG9yPFdlYkluZGV4S2V5cz4mKSB7IFdFQktJVF9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRJbmRleEtleXMobG9u
ZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJJ
REJLZXkmLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYgaW5kZXhJZHMsIGNvbnN0IFdlYlZl
Y3RvcjxXZWJJbmRleEtleXM+JikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgc2V0SW5kZXhlc1JlYWR5KGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBs
b25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIGluZGV4
SWRzKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBv
cGVuQ3Vyc29yKGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBsb25nIGxvbmcgb2JqZWN0U3RvcmVJ
ZCwgbG9uZyBsb25nIGluZGV4SWQsIGNvbnN0IFdlYklEQktleVJhbmdlJiwgdW5zaWduZWQgc2hv
cnQgZGlyZWN0aW9uLCBib29sIGtleU9ubHksIFRhc2tUeXBlLCBXZWJJREJDYWxsYmFja3MqKSB7
IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwCmluZGV4IDc0OTc0N2E3
MjUzZjcyNzE2ZTE3OWIyZGY4OWM4NWFmMTZmMTE0OTUuLjgyMDUxNDQ3OTg4YTJkN2Y0YThiMjk0
YWM5MjIzYTA0ODE3MjVmYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHAKQEAgLTEyOCwxMCArMTI4LDEzIEBAIHZv
aWQgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmdldChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCwKICAgICAgICAgbV93ZWJJREJEYXRhYmFzZS0+Z2V0KHRyYW5z
YWN0aW9uSWQsIG9iamVjdFN0b3JlSWQsIGluZGV4SWQsIGtleVJhbmdlLCBrZXlPbmx5LCBuZXcg
V2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpKTsKIH0KIAotdm9pZCBJREJEYXRhYmFzZUJh
Y2tlbmRQcm94eTo6cHV0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9y
ZUlkLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGJ1ZmZlciwgUGFzc1JlZlB0cjxJREJLZXk+IGtl
eSwgUHV0TW9kZSBwdXRNb2RlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBj
b25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYg
aW5kZXhLZXlzKQordm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6cHV0KGludDY0X3QgdHJh
bnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBWZWN0b3I8dWludDhfdD4qIGJ1ZmZl
ciwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUHV0TW9kZSBwdXRNb2RlLCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBj
b25zdCBWZWN0b3I8SW5kZXhLZXlzPiYgaW5kZXhLZXlzKQogewotICAgIGlmIChtX3dlYklEQkRh
dGFiYXNlKQotICAgICAgICBtX3dlYklEQkRhdGFiYXNlLT5wdXQodHJhbnNhY3Rpb25JZCwgb2Jq
ZWN0U3RvcmVJZCwgYnVmZmVyLCBrZXksIHN0YXRpY19jYXN0PFdlYklEQkRhdGFiYXNlOjpQdXRN
b2RlPihwdXRNb2RlKSwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgaW5kZXhJ
ZHMsIGluZGV4S2V5cyk7CisgICAgaWYgKG1fd2ViSURCRGF0YWJhc2UpIHsKKyAgICAgICAgV2Vi
VmVjdG9yPHVuc2lnbmVkIGNoYXI+IHdlYkJ1ZmZlcihidWZmZXItPnNpemUoKSk7CisgICAgICAg
IHdlYkJ1ZmZlci5hc3NpZ24oYnVmZmVyLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKTsKKyAgICAg
ICAgbV93ZWJJREJEYXRhYmFzZS0+cHV0KHRyYW5zYWN0aW9uSWQsIG9iamVjdFN0b3JlSWQsICZ3
ZWJCdWZmZXIsIGtleSwgc3RhdGljX2Nhc3Q8V2ViSURCRGF0YWJhc2U6OlB1dE1vZGU+KHB1dE1v
ZGUpLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCBpbmRleElkcywgaW5kZXhL
ZXlzKTsKKyAgICB9CiB9CiAKIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OnNldEluZGV4
S2V5cyhpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgUGFzc1Jl
ZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMs
IGNvbnN0IFZlY3RvcjxJbmRleEtleXM+JiBpbmRleEtleXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5oIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuaAppbmRleCA1NWQwNDc1
MzQ0YzVmOGExMDljNDAxZjRiNTlhODZmN2U2NDVlZTEzLi5mZDdiYTMxOGU3YzI0NjM2N2I3ZDFl
Yzk0NWUyNGJjNjkzMmMyZmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmgKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBhYm9ydChpbnQ2NF90KTsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXQo
aW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5k
ZXhJZCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXlSYW5nZT4sIGJvb2wga2V5T25seSwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgcHV0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25z
dCBWZWN0b3I8dWludDhfdD4mIHZhbHVlLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4sIFB1
dE1vZGUsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGlu
dDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcHV0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBWZWN0b3I8dWludDhfdD4qIHZhbHVlLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktl
eT4sIFB1dE1vZGUsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgY29uc3QgVmVj
dG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5kZXhLZXlzKGludDY0X3QgdHJhbnNhY3Rpb25JZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4gcHJwUHJp
bWFyeUtleSwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPElu
ZGV4S2V5cz4mKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5kZXhlc1JlYWR5KGlu
dDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBWZWN0b3I8
aW50NjRfdD4mIGluZGV4SWRzKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgb3BlbkN1cnNv
cihpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBp
bmRleElkLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleVJhbmdlPiwgdW5zaWduZWQgc2hvcnQg
ZGlyZWN0aW9uLCBib29sIGtleU9ubHksIFRhc2tUeXBlLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklE
QkNhbGxiYWNrcz4pIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKaW5kZXggY2E2MTYyYTZiMzg4MjcwZTUyYTQ4MWY2MTRh
ZTA3YTE0ZDgzMWNhYS4uYjA1YzUxN2M0MzE4YTE5NzEzZGI5NWZjYzA3ZTYxM2Q5ZTU2YmI0MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwu
Y3BwCkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBXZWJJREJEYXRhYmFzZUltcGw6OmdldChsb25n
IGxvbmcgdHJhbnNhY3Rpb25JZCwgbG9uZyBsb25nIG9iamVjdFN0b3JlSWQsIGwKICAgICAgICAg
bV9kYXRhYmFzZUJhY2tlbmQtPmdldCh0cmFuc2FjdGlvbklkLCBvYmplY3RTdG9yZUlkLCBpbmRl
eElkLCBrZXlSYW5nZSwga2V5T25seSwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0
cihjYWxsYmFja3MpKSk7CiB9CiAKLXZvaWQgV2ViSURCRGF0YWJhc2VJbXBsOjpwdXQobG9uZyBs
b25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJWZWN0
b3I8dW5zaWduZWQgY2hhcj4mIHZhbHVlLCBjb25zdCBXZWJJREJLZXkmIGtleSwgUHV0TW9kZSBw
dXRNb2RlLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViVmVjdG9yPGxvbmcg
bG9uZz4mIHdlYkluZGV4SWRzLCBjb25zdCBXZWJWZWN0b3I8V2ViSW5kZXhLZXlzPiYgd2ViSW5k
ZXhLZXlzKQordm9pZCBXZWJJREJEYXRhYmFzZUltcGw6OnB1dChsb25nIGxvbmcgdHJhbnNhY3Rp
b25JZCwgbG9uZyBsb25nIG9iamVjdFN0b3JlSWQsIFdlYlZlY3Rvcjx1bnNpZ25lZCBjaGFyPiog
dmFsdWUsIGNvbnN0IFdlYklEQktleSYga2V5LCBQdXRNb2RlIHB1dE1vZGUsIFdlYklEQkNhbGxi
YWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYgd2ViSW5kZXhJZHMs
IGNvbnN0IFdlYlZlY3RvcjxXZWJJbmRleEtleXM+JiB3ZWJJbmRleEtleXMpCiB7CiAgICAgaWYg
KCFtX2RhdGFiYXNlQmFja2VuZCkKICAgICAgICAgcmV0dXJuOwpAQCAtMTY0LDkgKzE2NCw5IEBA
IHZvaWQgV2ViSURCRGF0YWJhc2VJbXBsOjpwdXQobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxv
bmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjCiAgICAgICAgIGluZGV4S2V5c1tpXSA9IGluZGV4S2V5
TGlzdDsKICAgICB9CiAKLSAgICBWZWN0b3I8dWludDhfdD4gdmFsdWVCdWZmZXI7Ci0gICAgdmFs
dWVCdWZmZXIuYXBwZW5kKHZhbHVlLmRhdGEoKSwgdmFsdWUuc2l6ZSgpKTsKLSAgICBtX2RhdGFi
YXNlQmFja2VuZC0+cHV0KHRyYW5zYWN0aW9uSWQsIG9iamVjdFN0b3JlSWQsIHZhbHVlQnVmZmVy
LCBrZXksIHN0YXRpY19jYXN0PElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6UHV0TW9kZT4o
cHV0TW9kZSksIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSks
IGluZGV4SWRzLCBpbmRleEtleXMpOworICAgIFZlY3Rvcjx1aW50OF90PiB2YWx1ZUJ1ZmZlcih2
YWx1ZS0+c2l6ZSgpKTsKKyAgICB2YWx1ZUJ1ZmZlci5hcHBlbmQodmFsdWUtPmRhdGEoKSwgdmFs
dWUtPnNpemUoKSk7CisgICAgbV9kYXRhYmFzZUJhY2tlbmQtPnB1dCh0cmFuc2FjdGlvbklkLCBv
YmplY3RTdG9yZUlkLCAmdmFsdWVCdWZmZXIsIGtleSwgc3RhdGljX2Nhc3Q8SURCRGF0YWJhc2VC
YWNrZW5kSW50ZXJmYWNlOjpQdXRNb2RlPihwdXRNb2RlKSwgSURCQ2FsbGJhY2tzUHJveHk6OmNy
ZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKSwgaW5kZXhJZHMsIGluZGV4S2V5cyk7CiB9CiAKIHZv
aWQgV2ViSURCRGF0YWJhc2VJbXBsOjpzZXRJbmRleEtleXMobG9uZyBsb25nIHRyYW5zYWN0aW9u
SWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJJREJLZXkmIHByaW1hcnlLZXks
IGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiB3ZWJJbmRleElkcywgY29uc3QgV2ViVmVjdG9y
PFdlYkluZGV4S2V5cz4mIHdlYkluZGV4S2V5cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgKaW5kZXggYWVlNzZkM2UyNzNiNGUwZTkwOTMxOTc3
MjIxMjk3ZmMyM2Q1MGFkNy4uZGQ3YWIzYTU3Y2M3ODNiMDE2MDlhZDkzNGQyZWY1NTQ2Y2NiZWI2
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBs
LmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjb21taXQobG9u
ZyBsb25nIHRyYW5zYWN0aW9uSWQpOwogCiAgICAgdmlydHVhbCB2b2lkIGdldChsb25nIGxvbmcg
dHJhbnNhY3Rpb25JZCwgbG9uZyBsb25nIG9iamVjdFN0b3JlSWQsIGxvbmcgbG9uZyBpbmRleElk
LCBjb25zdCBXZWJJREJLZXlSYW5nZSYsIGJvb2wga2V5T25seSwgV2ViSURCQ2FsbGJhY2tzKikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHB1dChsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCwg
bG9uZyBsb25nIG9iamVjdFN0b3JlSWQsIGNvbnN0IFdlYlZlY3Rvcjx1bnNpZ25lZCBjaGFyPiYg
dmFsdWUsIGNvbnN0IFdlYklEQktleSYsIFB1dE1vZGUsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0
IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiBpbmRleElkcywgY29uc3QgV2ViVmVjdG9yPFdlYkluZGV4
S2V5cz4mKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcHV0KGxvbmcgbG9uZyB0cmFuc2Fj
dGlvbklkLCBsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgV2ViVmVjdG9yPHVuc2lnbmVkIGNoYXI+
KiB2YWx1ZSwgY29uc3QgV2ViSURCS2V5JiwgUHV0TW9kZSwgV2ViSURCQ2FsbGJhY2tzKiwgY29u
c3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIGluZGV4SWRzLCBjb25zdCBXZWJWZWN0b3I8V2ViSW5k
ZXhLZXlzPiYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbmRleEtleXMobG9uZyBs
b25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJJREJL
ZXkmLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYgaW5kZXhJZHMsIGNvbnN0IFdlYlZlY3Rv
cjxXZWJJbmRleEtleXM+JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldEluZGV4ZXNS
ZWFkeShsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCwgbG9uZyBsb25nIG9iamVjdFN0b3JlSWQsIGNv
bnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiBpbmRleElkcykgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIG9wZW5DdXJzb3IobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmpl
Y3RTdG9yZUlkLCBsb25nIGxvbmcgaW5kZXhJZCwgY29uc3QgV2ViSURCS2V5UmFuZ2UmLCB1bnNp
Z25lZCBzaG9ydCBkaXJlY3Rpb24sIGJvb2wga2V5T25seSwgVGFza1R5cGUsIFdlYklEQkNhbGxi
YWNrcyopIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKaW5kZXggN2ZiNTAzNDI4N2Y2YTg5OTM2ZTc1
OGFmNGQ5M2YzY2UwY2EyOTkzNy4uZWU0ODdhMWM2MjFmMTkyYTIwNjdiNDJmMzIwMTJkMzBmMDU5
YTUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFz
ZUJhY2tlbmRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRh
dGFiYXNlQmFja2VuZFRlc3QuY3BwCkBAIC0xNzAsNyArMTcwLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBvcGVuQ3Vyc29yKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCB1bnNp
Z25lZCBzaG9ydCBkaXJlY3Rpb24sIGJvb2wga2V5T25seSwgVGFza1R5cGUsIFBhc3NSZWZQdHI8
SURCQ2FsbGJhY2tzPikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNvdW50KGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQs
IFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pIE9WRVJS
SURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBnZXQoaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2
NF90IGluZGV4SWQsIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5n
ZT4sIGJvb2wga2V5T25seSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KSBPVkVSUklERSB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgcHV0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlkLCBjb25zdCBWZWN0b3I8dWludDhfdD4mLCBQYXNzUmVmUHRyPElEQktleT4sIFB1
dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBp
bmRleElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgcHV0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
LCBWZWN0b3I8dWludDhfdD4qLCBQYXNzUmVmUHRyPElEQktleT4sIFB1dE1vZGUsIFBhc3NSZWZQ
dHI8SURCQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3Qg
VmVjdG9yPEluZGV4S2V5cz4mKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5k
ZXhLZXlzKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNz
UmVmUHRyPElEQktleT4gcHJwUHJpbWFyeUtleSwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRl
eElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mKSBPVkVSUklERSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgc2V0SW5kZXhlc1JlYWR5KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzKSBPVkVSUklERSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlUmFuZ2UoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4pIE9WRVJSSURFIHsgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>