<?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>102102</bug_id>
          
          <creation_ts>2012-11-13 10:08:40 -0800</creation_ts>
          <short_desc>Add DOMRequestState to maintain world/ScriptExecutionContext state</short_desc>
          <delta_ts>2012-11-14 11:17:14 -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>
          <dependson>102218</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alec Flett">alecflett</reporter>
          <assigned_to name="Alec Flett">alecflett</assigned_to>
          <cc>abarth</cc>
    
    <cc>adamk</cc>
    
    <cc>dgrogan</cc>
    
    <cc>haraken</cc>
    
    <cc>jsbell</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>765740</commentid>
    <comment_count>0</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-13 10:08:40 -0800</bug_when>
    <thetext>Add DOMRequestState to maintain world/ScriptExecutionContext state</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765743</commentid>
    <comment_count>1</comment_count>
      <attachid>173919</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-13 10:10:06 -0800</bug_when>
    <thetext>Created attachment 173919
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765751</commentid>
    <comment_count>2</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-13 10:12:50 -0800</bug_when>
    <thetext>abarth@ - finally putting this in a bug. Things that are missing: 
1) tests - I&apos;m not sure how to test this but if you can point me in the right direction, I&apos;ll see what I can put together
2) JSC implementation. I&apos;m going to take a crack at this but I welcome any pointers there as well.

adamk@ - this is the patch we talked about monday, it&apos;s usable for your private build as-is, and you can use the IDB code here as a reference - the key is that the IDBRequest is created with JS on the stack, and then IDBRequest hangs out until an event is generated/dispatched without JS on the stack.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765835</commentid>
    <comment_count>3</comment_count>
      <attachid>173919</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-13 11:16:15 -0800</bug_when>
    <thetext>Comment on attachment 173919
Patch

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

&gt; Source/WebCore/bindings/v8/DOMRequestState.h:39
&gt; +    DOMRequestState(ScriptExecutionContext *scriptExecutionContext)

explicit

&quot;ScriptExecutionContext *&quot; -&gt; &quot;ScriptExecutionContext* &quot;

&gt; Source/WebCore/bindings/v8/DOMRequestState.h:47
&gt; +        Scope(v8::Handle&lt;v8::Context&gt; context)

explicit

&gt; Source/WebCore/bindings/v8/DOMRequestState.h:48
&gt; +            : m_contextScope(context) { }

The { and } each go on their own line.

&gt; Source/WebCore/bindings/v8/DOMRequestState.h:53
&gt; +    const Scope scope()

Woah, I don&apos;t know what happens if we try to copy a v8::Context::Scope....

&gt; Source/WebCore/bindings/v8/DOMRequestState.h:55
&gt; +        v8::HandleScope handleScope;    /* do we need this for Local&lt;&gt; ? */

This is bad new bears.  You&apos;ve got a local handle which will die once this object goes out of scope.

&gt; Source/WebCore/bindings/v8/DOMRequestState.h:59
&gt; +        return Scope(context);

Ok.  So the way to do this is to have the DOMRequestState::Scope object create the HandleScope in its constructor.  The caller looks like:

DOMRequestState::Scope scope(m_requestState)

The DOMRequestState::Scope class then is something like the following:

class Scope {
public:
    explicit Scope(DOMRequestState&amp; state)
        : m_scope(static.context())
    {
    }
private:
    v8::HandleScope m_handleScope;
    v8::Context::Scope m_scope
};

Notice that the HandleScope member precedes the v8::Context::Scope member so that it will be constructed first and destructed last.

DOMRequestState::context is then just &quot;return toV8Context(m_scriptExecutionContext, m_worldContextHandle)&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765888</commentid>
    <comment_count>4</comment_count>
      <attachid>173940</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-13 11:55:16 -0800</bug_when>
    <thetext>Created attachment 173940
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765893</commentid>
    <comment_count>5</comment_count>
      <attachid>173940</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-13 11:59:11 -0800</bug_when>
    <thetext>Comment on attachment 173940
Patch

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

&gt; Source/WebCore/bindings/v8/DOMRequestState.h:48
&gt; +            : m_contextScope(state.context()) { }

The { and } should each be on their own line.

&gt; Source/WebCore/bindings/v8/DOMRequestState.h:61
&gt; +    ScriptExecutionContext* m_scriptExecutionContext;

How does this pointer get cleared when the ScriptExecutionContext is destroyed?  Maybe we should clear it explicitly in IDBRequest::stop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765897</commentid>
    <comment_count>6</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-13 12:00:23 -0800</bug_when>
    <thetext>thanks for the suggestions. My only open issue at this point is if/where to attach context() - you can see I&apos;m now passing DOMRequest* into my IDBBindingUtilities - I don&apos;t need it there, but I&apos;m kind of assuming I will on the JSC side? And then I wonder if really I should be passing the DOMRequest::Scope* in there, and hanging context() off of scope? But I don&apos;t know if that violates conventions around scope-like objects, who usually just exist on the stack.

I&apos;m also wondering if I can narrow the scope in a few places</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765915</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-13 12:14:07 -0800</bug_when>
    <thetext>&gt; I don&apos;t need it there, but I&apos;m kind of assuming I will on the JSC side?

We can always add it later if we find we need it then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765917</commentid>
    <comment_count>8</comment_count>
      <attachid>173951</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-13 12:15:04 -0800</bug_when>
    <thetext>Created attachment 173951
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765920</commentid>
    <comment_count>9</comment_count>
      <attachid>173954</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-13 12:17:56 -0800</bug_when>
    <thetext>Created attachment 173954
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765994</commentid>
    <comment_count>10</comment_count>
      <attachid>173954</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 13:34:17 -0800</bug_when>
    <thetext>Comment on attachment 173954
Patch for landing

Rejecting attachment 173954 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
t/git/webkit-commit-queue/Source/WebKit/chromium/v8 --revision 12869 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
50&gt;At revision 12869.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/14809977</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766007</commentid>
    <comment_count>11</comment_count>
      <attachid>173975</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-13 13:38:40 -0800</bug_when>
    <thetext>Created attachment 173975
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766333</commentid>
    <comment_count>12</comment_count>
      <attachid>173975</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 19:42:23 -0800</bug_when>
    <thetext>Comment on attachment 173975
Patch for landing

Clearing flags on attachment: 173975

Committed r134523: &lt;http://trac.webkit.org/changeset/134523&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766334</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 19:42:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766789</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 05:39:34 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 102218</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766848</commentid>
    <comment_count>15</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-14 06:50:48 -0800</bug_when>
    <thetext>This patch breaks Chromium windows build. The build succeeds in ninja but fails in MSVS (Sorry I&apos;m now at home and cannot find the log). This would indicate that something is wrong with build files. See a comment from Jochen here (https://bugs.webkit.org/show_bug.cgi?id=102218#c2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766860</commentid>
    <comment_count>16</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-14 07:07:00 -0800</bug_when>
    <thetext>Here is a build log of the windows build:
http://build.chromium.org/p/chromium.win/builders/Win%20Builder/builds/3509/steps/runhooks/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767048</commentid>
    <comment_count>17</comment_count>
      <attachid>174202</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-14 10:50:35 -0800</bug_when>
    <thetext>Created attachment 174202
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767081</commentid>
    <comment_count>18</comment_count>
      <attachid>174202</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 11:17:09 -0800</bug_when>
    <thetext>Comment on attachment 174202
Patch for landing

Clearing flags on attachment: 174202

Committed r134632: &lt;http://trac.webkit.org/changeset/134632&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767082</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 11:17:14 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173919</attachid>
            <date>2012-11-13 10:10:06 -0800</date>
            <delta_ts>2012-11-13 11:55:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102102-20121113100806.patch</filename>
            <type>text/plain</type>
            <size>9511</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0Mzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzAzMTc1OTVkYTg2ZDAy
ODExYWEzZjY3Y2M0OGM1OWYzYjk5ZWQxYi4uNTM4MjNhMzAzYzIzMmJmNDkyMzk3NGU5YjhkODll
MDU4NTU0ZjA1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTExLTEzICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgRE9NUmVxdWVz
dFN0YXRlIHRvIG1haW50YWluIHdvcmxkL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQgc3RhdGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjEwMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBE
T01SZXF1ZXN0U3RhdGUsIGFuZCBjb252ZXJ0IEluZGV4ZWREQiBvdmVyLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVx
dWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6Om9uU3VjY2Vzcyk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJSZXF1ZXN0OjpkaXNwYXRjaEV2ZW50KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJSZXF1ZXN0Lmg6CisgICAgICAgIChJREJSZXF1ZXN0KToKKyAgICAgICAgKiBXZWJDb3Jl
Lmd5cGk6CisgICAgICAgICogYmluZGluZ3MvdjgvRE9NUmVxdWVzdFN0YXRlLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChET01SZXF1ZXN0U3RhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NUmVxdWVzdFN0YXRlOjpET01SZXF1ZXN0U3RhdGUpOgorICAgICAgICAoU2Nv
cGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NUmVxdWVzdFN0YXRlOjpTY29wZTo6U2NvcGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NUmVxdWVzdFN0YXRlOjpzY29wZSk6CisKIDIwMTItMTEtMTIg
IEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgW1F0
XSBSRUdSRVNTSU9OKDEzNDE0Mik6IG92ZXJzY2FsZWQgdGlsZXMgaW4gcGl4ZWwgdGVzdCByZXN1
bHRzIGFuZCBNaW5pQnJvd3NlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJSZXF1ZXN0LmNwcAppbmRleCBjZThhYWEzNzJkM2MwMWJmYjE5MGNlNzJmODA1YjMyOTll
ODUwOGM0Li5iMWNjNjYyOWU0Yjc0MmU4NWJkYjBlMTcwYzFiNjY4NzAxNGY0M2FkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcApAQCAtNDIs
OSArNDIsNiBAQAogI2luY2x1ZGUgIklEQlRyYWNpbmcuaCIKICNpbmNsdWRlICJJREJUcmFuc2Fj
dGlvbi5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNpZiBVU0UoVjgp
Ci0jaW5jbHVkZSAiVjhCaW5kaW5nLmgiCi0jZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC03OSw5ICs3Niw3IEBAIElEQlJlcXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjCiAgICAgLCBtX3BlbmRp
bmdDdXJzb3IoMCkKICAgICAsIG1fZGlkRmlyZVVwZ3JhZGVOZWVkZWRFdmVudChmYWxzZSkKICAg
ICAsIG1fcHJldmVudFByb3BhZ2F0aW9uKGZhbHNlKQotI2lmIFVTRShWOCkKLSAgICAsIG1fd29y
bGRDb250ZXh0SGFuZGxlKFVzZUN1cnJlbnRXb3JsZCkKLSNlbmRpZgorICAgICwgbV9yZXF1ZXN0
U3RhdGUoY29udGV4dCkKIHsKICAgICBpZiAobV90cmFuc2FjdGlvbikgewogICAgICAgICBtX3Ry
YW5zYWN0aW9uLT5yZWdpc3RlclJlcXVlc3QodGhpcyk7CkBAIC0yOTAsMTMgKzI4NSw3IEBAIHZv
aWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVy
ZmFjZT4gYmFja2VuZCwgUGFzc1JlCiAgICAgaWYgKCFzaG91bGRFbnF1ZXVlRXZlbnQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0jaWYgVVNFKFY4KQotICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVT
Y29wZTsKLSAgICB2ODo6TG9jYWw8djg6OkNvbnRleHQ+IGNvbnRleHQgPSB0b1Y4Q29udGV4dChz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fd29ybGRDb250ZXh0SGFuZGxlKTsKLSAgICBpZiAo
Y29udGV4dC5Jc0VtcHR5KCkpCi0gICAgICAgIENSQVNIKCk7Ci0gICAgdjg6OkNvbnRleHQ6OlNj
b3BlIGNvbnRleHRTY29wZShjb250ZXh0KTsKLSNlbmRpZgorICAgIERPTVJlcXVlc3RTdGF0ZTo6
U2NvcGUgc2NvcGUobV9yZXF1ZXN0U3RhdGUuc2NvcGUoKSk7CiAKICAgICBTY3JpcHRWYWx1ZSB2
YWx1ZSA9IGRlc2VyaWFsaXplSURCVmFsdWUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzZXJp
YWxpemVkVmFsdWUpOwogICAgIEFTU0VSVChtX2N1cnNvclR5cGUgIT0gSURCQ3Vyc29yQmFja2Vu
ZEludGVyZmFjZTo6SW52YWxpZEN1cnNvclR5cGUpOwpAQCAtMzU0LDEzICszNDMsNyBAQCB2b2lk
IElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
c2VyaWFsaXplZFNjcmlwdFZhbAogICAgIGlmICghc2hvdWxkRW5xdWV1ZUV2ZW50KCkpCiAgICAg
ICAgIHJldHVybjsKIAotI2lmIFVTRShWOCkKLSAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2Nv
cGU7Ci0gICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBjb250ZXh0ID0gdG9WOENvbnRleHQoc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX3dvcmxkQ29udGV4dEhhbmRsZSk7Ci0gICAgaWYgKGNv
bnRleHQuSXNFbXB0eSgpKQotICAgICAgICBDUkFTSCgpOwotICAgIHY4OjpDb250ZXh0OjpTY29w
ZSBjb250ZXh0U2NvcGUoY29udGV4dCk7Ci0jZW5kaWYKKyAgICBET01SZXF1ZXN0U3RhdGU6OlNj
b3BlIHNjb3BlKG1fcmVxdWVzdFN0YXRlLnNjb3BlKCkpOwogCiAgICAgU2NyaXB0VmFsdWUgdmFs
dWUgPSBkZXNlcmlhbGl6ZUlEQlZhbHVlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgc2VyaWFs
aXplZFNjcmlwdFZhbHVlKTsKICAgICBvblN1Y2Nlc3NJbnRlcm5hbCh2YWx1ZSk7CkBAIC0zODUs
MTMgKzM2OCw3IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiBwcnBTZXJpYWxpemVkU2NyaXB0CiAgICAgaWYgKCFzaG91bGRFbnF1
ZXVlRXZlbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgVVNFKFY4KQotICAgIHY4OjpIYW5k
bGVTY29wZSBoYW5kbGVTY29wZTsKLSAgICB2ODo6TG9jYWw8djg6OkNvbnRleHQ+IGNvbnRleHQg
PSB0b1Y4Q29udGV4dChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fd29ybGRDb250ZXh0SGFu
ZGxlKTsKLSAgICBpZiAoY29udGV4dC5Jc0VtcHR5KCkpCi0gICAgICAgIENSQVNIKCk7Ci0gICAg
djg6OkNvbnRleHQ6OlNjb3BlIGNvbnRleHRTY29wZShjb250ZXh0KTsKLSNlbmRpZgorICAgIERP
TVJlcXVlc3RTdGF0ZTo6U2NvcGUgc2NvcGUobV9yZXF1ZXN0U3RhdGUuc2NvcGUoKSk7CiAKICNp
Zm5kZWYgTkRFQlVHCiAgICAgQVNTRVJUKGtleVBhdGggPT0gZWZmZWN0aXZlT2JqZWN0U3RvcmUo
bV9zb3VyY2UpLT5rZXlQYXRoKCkpOwpAQCAtNDM0LDEzICs0MTEsNyBAQCB2b2lkIElEQlJlcXVl
c3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQktleT4g
cHJpbWFyeUtleQogICAgIGlmICghc2hvdWxkRW5xdWV1ZUV2ZW50KCkpCiAgICAgICAgIHJldHVy
bjsKIAotI2lmIFVTRShWOCkKLSAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7Ci0gICAg
djg6OkxvY2FsPHY4OjpDb250ZXh0PiBjb250ZXh0ID0gdG9WOENvbnRleHQoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLCBtX3dvcmxkQ29udGV4dEhhbmRsZSk7Ci0gICAgaWYgKGNvbnRleHQuSXNF
bXB0eSgpKQotICAgICAgICBDUkFTSCgpOwotICAgIHY4OjpDb250ZXh0OjpTY29wZSBjb250ZXh0
U2NvcGUoY29udGV4dCk7Ci0jZW5kaWYKKyAgICBET01SZXF1ZXN0U3RhdGU6OlNjb3BlIHNjb3Bl
KG1fcmVxdWVzdFN0YXRlLnNjb3BlKCkpOwogCiAgICAgU2NyaXB0VmFsdWUgdmFsdWUgPSBkZXNl
cmlhbGl6ZUlEQlZhbHVlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgc2VyaWFsaXplZFZhbHVl
KTsKICAgICBBU1NFUlQobV9wZW5kaW5nQ3Vyc29yKTsKQEAgLTQ4OCwxMyArNDU5LDcgQEAgYm9v
bCBJREJSZXF1ZXN0OjpkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQogICAg
IEFTU0VSVChldmVudC0+dGFyZ2V0KCkgPT0gdGhpcyk7CiAgICAgQVNTRVJUX1dJVEhfTUVTU0FH
RShtX3JlYWR5U3RhdGUgPCBET05FLCAiV2hlbiBkaXNwYXRjaGluZyBldmVudCAlcywgbV9yZWFk
eVN0YXRlIDwgRE9ORSglZCksIHdhcyAlZCIsIGV2ZW50LT50eXBlKCkuc3RyaW5nKCkudXRmOCgp
LmRhdGEoKSwgRE9ORSwgbV9yZWFkeVN0YXRlKTsKIAotI2lmIFVTRShWOCkKLSAgICB2ODo6SGFu
ZGxlU2NvcGUgaGFuZGxlU2NvcGU7Ci0gICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBjb250ZXh0
ID0gdG9WOENvbnRleHQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX3dvcmxkQ29udGV4dEhh
bmRsZSk7Ci0gICAgaWYgKGNvbnRleHQuSXNFbXB0eSgpKQotICAgICAgICBDUkFTSCgpOwotICAg
IHY4OjpDb250ZXh0OjpTY29wZSBjb250ZXh0U2NvcGUoY29udGV4dCk7Ci0jZW5kaWYKKyAgICBE
T01SZXF1ZXN0U3RhdGU6OlNjb3BlIHNjb3BlKG1fcmVxdWVzdFN0YXRlLnNjb3BlKCkpOwogCiAg
ICAgaWYgKGV2ZW50LT50eXBlKCkgIT0gZXZlbnROYW1lcygpLmJsb2NrZWRFdmVudCkKICAgICAg
ICAgbV9yZWFkeVN0YXRlID0gRE9ORTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlJlcXVlc3QuaAppbmRleCBhMjI4NzJkZWM0MzU5ZGIyODZjZmY4M2JmOGMzYzA2MGE2
MDU3ODUzLi5hOWM3NDAwYTcwNTUwY2NkOWM0NjAwNTlhYTJjMTc1NGVhY2VmNmExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCkBAIC0zMyw2ICsz
Myw3IEBACiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJET01FcnJv
ci5oIgorI2luY2x1ZGUgIkRPTVJlcXVlc3RTdGF0ZS5oIgogI2luY2x1ZGUgIkRPTVN0cmluZ0xp
c3QuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKQEAg
LTE1OSw5ICsxNjAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wcmV2ZW50UHJvcGFnYXRpb247
CiAKICAgICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRhcmdldERhdGE7Ci0jaWYgVVNFKFY4KQot
ICAgIFdvcmxkQ29udGV4dEhhbmRsZSBtX3dvcmxkQ29udGV4dEhhbmRsZTsKLSNlbmRpZgorICAg
IERPTVJlcXVlc3RTdGF0ZSBtX3JlcXVlc3RTdGF0ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAyYmIwZmM3MGZiYmEyMzJhNDEzMTA3Y2VhZTE4Y2I1
N2RiNjExYTZiLi4zOWM5NDZhMWI3YTgwYTkzNmEwYmU4ODQ5M2ZiYzYxMTI3OTBmYWFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC0zMSw2ICszMSw3IEBACiAgICAgICAgICAgICAnYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL1NjcmlwdENv
bnRyb2xsZXJCYXNlLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0RPTU9iamVjdEhhc2hU
YWJsZU1hcC5oJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9ET01SZXF1ZXN0U3RhdGUuaCcs
CiAgICAgICAgICAgICAnYmluZGluZ3MvanMvRE9NV3JhcHBlcldvcmxkLmgnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9q
cy9KU0RPTUJpbmRpbmcuaCcsCkBAIC0yMTk5LDYgKzIyMDAsNyBAQAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL3Y4L0JpbmRpbmdTdGF0ZS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9ET01E
YXRhU3RvcmUuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9ET01EYXRhU3RvcmUuaCcs
CisgICAgICAgICAgICAnYmluZGluZ3MvdjgvRE9NUmVxdWVzdFN0YXRlLmgnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L0RPTVdyYXBwZXJNYXAuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
djgvRE9NV3JhcHBlcldvcmxkLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvRE9NV3Jh
cHBlcldvcmxkLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9N
UmVxdWVzdFN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01SZXF1ZXN0U3Rh
dGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hOWM3YzY3NmQwYzU5NWUyOTJkMmU0MzQ5OTAzYzZhNDQzOTg0NTgy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NUmVxdWVz
dFN0YXRlLmgKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRE9NUmVxdWVzdFN0YXRl
X2gKKyNkZWZpbmUgRE9NUmVxdWVzdFN0YXRlX2gKKworI2luY2x1ZGUgIlY4QmluZGluZy5oIgor
I2luY2x1ZGUgIldvcmxkQ29udGV4dEhhbmRsZS5oIgorI2luY2x1ZGUgInY4LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKworY2xhc3Mg
RE9NUmVxdWVzdFN0YXRlIHsKK3B1YmxpYzoKKyAgICBET01SZXF1ZXN0U3RhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCAqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKKyAgICAgICAgOiBtX3dvcmxk
Q29udGV4dEhhbmRsZShVc2VDdXJyZW50V29ybGQpCisgICAgICAgICwgbV9zY3JpcHRFeGVjdXRp
b25Db250ZXh0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCisgICAgeworICAgIH0KKworICAgIGNs
YXNzIFNjb3BlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFNjb3BlKHY4OjpIYW5kbGU8djg6OkNv
bnRleHQ+IGNvbnRleHQpCisgICAgICAgICAgICA6IG1fY29udGV4dFNjb3BlKGNvbnRleHQpIHsg
fQorICAgIHByaXZhdGU6CisgICAgICAgIHY4OjpDb250ZXh0OjpTY29wZSBtX2NvbnRleHRTY29w
ZTsKKyAgICB9OworCisgICAgY29uc3QgU2NvcGUgc2NvcGUoKQorICAgIHsKKyAgICAgICAgdjg6
OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOyAgICAvKiBkbyB3ZSBuZWVkIHRoaXMgZm9yIExvY2Fs
PD4gPyAqLworICAgICAgICB2ODo6TG9jYWw8djg6OkNvbnRleHQ+IGNvbnRleHQgPSB0b1Y4Q29u
dGV4dChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIG1fd29ybGRDb250ZXh0SGFuZGxlKTsKKyAg
ICAgICAgaWYgKGNvbnRleHQuSXNFbXB0eSgpKQorICAgICAgICAgICAgQ1JBU0goKTsKKyAgICAg
ICAgcmV0dXJuIFNjb3BlKGNvbnRleHQpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBXb3JsZENv
bnRleHRIYW5kbGUgbV93b3JsZENvbnRleHRIYW5kbGU7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OworfTsKKworfQorI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173940</attachid>
            <date>2012-11-13 11:55:16 -0800</date>
            <delta_ts>2012-11-13 12:15:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102102-20121113115317.patch</filename>
            <type>text/plain</type>
            <size>15128</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0Mzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzAzMTc1OTVkYTg2ZDAy
ODExYWEzZjY3Y2M0OGM1OWYzYjk5ZWQxYi4uNTM4MjNhMzAzYzIzMmJmNDkyMzk3NGU5YjhkODll
MDU4NTU0ZjA1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTExLTEzICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgRE9NUmVxdWVz
dFN0YXRlIHRvIG1haW50YWluIHdvcmxkL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQgc3RhdGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjEwMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBE
T01SZXF1ZXN0U3RhdGUsIGFuZCBjb252ZXJ0IEluZGV4ZWREQiBvdmVyLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVx
dWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6Om9uU3VjY2Vzcyk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJSZXF1ZXN0OjpkaXNwYXRjaEV2ZW50KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJSZXF1ZXN0Lmg6CisgICAgICAgIChJREJSZXF1ZXN0KToKKyAgICAgICAgKiBXZWJDb3Jl
Lmd5cGk6CisgICAgICAgICogYmluZGluZ3MvdjgvRE9NUmVxdWVzdFN0YXRlLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChET01SZXF1ZXN0U3RhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NUmVxdWVzdFN0YXRlOjpET01SZXF1ZXN0U3RhdGUpOgorICAgICAgICAoU2Nv
cGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NUmVxdWVzdFN0YXRlOjpTY29wZTo6U2NvcGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NUmVxdWVzdFN0YXRlOjpzY29wZSk6CisKIDIwMTItMTEtMTIg
IEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgW1F0
XSBSRUdSRVNTSU9OKDEzNDE0Mik6IG92ZXJzY2FsZWQgdGlsZXMgaW4gcGl4ZWwgdGVzdCByZXN1
bHRzIGFuZCBNaW5pQnJvd3NlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkN1cnNvci5jcHAKaW5kZXggYmViMDFjNDYyODJhM2UzZjg5YWQ0NjQxZDUxNGM0NWI4YmU5
OTFmYy4uNzdmZGE4NGJjM2ZmZmFmMjQwNDcxOTA2MDI2ODRiMzlkMmRjYmYwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCkBAIC0yNTcsMTMg
KzI1NywxMyBAQCB2b2lkIElEQkN1cnNvcjo6Y2xvc2UoKQogICAgIH0KIH0KIAotdm9pZCBJREJD
dXJzb3I6OnNldFZhbHVlUmVhZHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFz
c1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIFNjcmlw
dFZhbHVlJiB2YWx1ZSkKK3ZvaWQgSURCQ3Vyc29yOjpzZXRWYWx1ZVJlYWR5KERPTVJlcXVlc3RT
dGF0ZSogc3RhdGUsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCS2V5PiBw
cmltYXJ5S2V5LCBTY3JpcHRWYWx1ZSYgdmFsdWUpCiB7CiAgICAgbV9jdXJyZW50S2V5ID0ga2V5
OwotICAgIG1fY3VycmVudEtleVZhbHVlID0gaWRiS2V5VG9TY3JpcHRWYWx1ZShjb250ZXh0LCBt
X2N1cnJlbnRLZXkpOworICAgIG1fY3VycmVudEtleVZhbHVlID0gaWRiS2V5VG9TY3JpcHRWYWx1
ZShzdGF0ZSwgbV9jdXJyZW50S2V5KTsKIAogICAgIG1fY3VycmVudFByaW1hcnlLZXkgPSBwcmlt
YXJ5S2V5OwotICAgIG1fY3VycmVudFByaW1hcnlLZXlWYWx1ZSA9IGlkYktleVRvU2NyaXB0VmFs
dWUoY29udGV4dCwgbV9jdXJyZW50UHJpbWFyeUtleSk7CisgICAgbV9jdXJyZW50UHJpbWFyeUtl
eVZhbHVlID0gaWRiS2V5VG9TY3JpcHRWYWx1ZShzdGF0ZSwgbV9jdXJyZW50UHJpbWFyeUtleSk7
CiAKICAgICBpZiAoIWlzS2V5Q3Vyc29yKCkpIHsKICAgICAgICAgUmVmUHRyPElEQk9iamVjdFN0
b3JlPiBvYmplY3RTdG9yZSA9IGVmZmVjdGl2ZU9iamVjdFN0b3JlKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCmluZGV4IGRmNGIxY2ViMzU0NjkzNmFi
NjMxMWQzYWZlOWMxMDhjYjkzM2M3NjMuLmY1ZDZjN2Y5OWFkNDA0NjlmNjViMjc4NmY4ZmJjOTk2
ZDI1ODY5MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkN1cnNvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNv
ci5oCkBAIC0zOCw2ICszOCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRE9N
UmVxdWVzdFN0YXRlOwogY2xhc3MgSURCQW55OwogY2xhc3MgSURCQ2FsbGJhY2tzOwogY2xhc3Mg
SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTsKQEAgLTg0LDcgKzg1LDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBwb3N0U3VjY2Vzc0hhbmRsZXJDYWxsYmFjaygpOwogICAgIHZvaWQgY2xvc2UoKTsK
LSAgICB2b2lkIHNldFZhbHVlUmVhZHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQ
dHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIFNjcmlwdFZhbHVlJik7
CisgICAgdm9pZCBzZXRWYWx1ZVJlYWR5KERPTVJlcXVlc3RTdGF0ZSosIFBhc3NSZWZQdHI8SURC
S2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIFNjcmlwdFZhbHVlJik7CiAgICAg
UGFzc1JlZlB0cjxJREJLZXk+IGlkYlByaW1hcnlLZXkoKSB7IHJldHVybiBtX2N1cnJlbnRQcmlt
YXJ5S2V5OyB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggY2U4YWFhMzcyZDNjMDFiZmIxOTBjZTcyZjgwNWIz
Mjk5ZTg1MDhjNC4uNTI1ZWRmZjhiN2YyZjJjZWJmNmQ0MmI2NTQ1NGU5ODdmYWRhM2E3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAg
LTQyLDkgKzQyLDYgQEAKICNpbmNsdWRlICJJREJUcmFjaW5nLmgiCiAjaW5jbHVkZSAiSURCVHJh
bnNhY3Rpb24uaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaWYgVVNF
KFY4KQotI2luY2x1ZGUgIlY4QmluZGluZy5oIgotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtNzksOSArNzYsNyBAQCBJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCQW55PiBzb3VyYwogICAgICwgbV9w
ZW5kaW5nQ3Vyc29yKDApCiAgICAgLCBtX2RpZEZpcmVVcGdyYWRlTmVlZGVkRXZlbnQoZmFsc2Up
CiAgICAgLCBtX3ByZXZlbnRQcm9wYWdhdGlvbihmYWxzZSkKLSNpZiBVU0UoVjgpCi0gICAgLCBt
X3dvcmxkQ29udGV4dEhhbmRsZShVc2VDdXJyZW50V29ybGQpCi0jZW5kaWYKKyAgICAsIG1fcmVx
dWVzdFN0YXRlKGNvbnRleHQpCiB7CiAgICAgaWYgKG1fdHJhbnNhY3Rpb24pIHsKICAgICAgICAg
bV90cmFuc2FjdGlvbi0+cmVnaXN0ZXJSZXF1ZXN0KHRoaXMpOwpAQCAtMjkwLDE1ICsyODUsOSBA
QCB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJ
bnRlcmZhY2U+IGJhY2tlbmQsIFBhc3NSZQogICAgIGlmICghc2hvdWxkRW5xdWV1ZUV2ZW50KCkp
CiAgICAgICAgIHJldHVybjsKIAotI2lmIFVTRShWOCkKLSAgICB2ODo6SGFuZGxlU2NvcGUgaGFu
ZGxlU2NvcGU7Ci0gICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBjb250ZXh0ID0gdG9WOENvbnRl
eHQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX3dvcmxkQ29udGV4dEhhbmRsZSk7Ci0gICAg
aWYgKGNvbnRleHQuSXNFbXB0eSgpKQotICAgICAgICBDUkFTSCgpOwotICAgIHY4OjpDb250ZXh0
OjpTY29wZSBjb250ZXh0U2NvcGUoY29udGV4dCk7Ci0jZW5kaWYKKyAgICBET01SZXF1ZXN0U3Rh
dGU6OlNjb3BlIHNjb3BlKG1fcmVxdWVzdFN0YXRlKTsKIAotICAgIFNjcmlwdFZhbHVlIHZhbHVl
ID0gZGVzZXJpYWxpemVJREJWYWx1ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHNlcmlhbGl6
ZWRWYWx1ZSk7CisgICAgU2NyaXB0VmFsdWUgdmFsdWUgPSBkZXNlcmlhbGl6ZUlEQlZhbHVlKCZt
X3JlcXVlc3RTdGF0ZSwgc2VyaWFsaXplZFZhbHVlKTsKICAgICBBU1NFUlQobV9jdXJzb3JUeXBl
ICE9IElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OkludmFsaWRDdXJzb3JUeXBlKTsKICAgICBS
ZWZQdHI8SURCQ3Vyc29yPiBjdXJzb3I7CiAgICAgaWYgKG1fY3Vyc29yVHlwZSA9PSBJREJDdXJz
b3JCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleUN1cnNvcikKQEAgLTM1NCwxNSArMzQzLDkgQEAg
dm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+IHNlcmlhbGl6ZWRTY3JpcHRWYWwKICAgICBpZiAoIXNob3VsZEVucXVldWVFdmVudCgpKQog
ICAgICAgICByZXR1cm47CiAKLSNpZiBVU0UoVjgpCi0gICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRs
ZVNjb3BlOwotICAgIHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gY29udGV4dCA9IHRvVjhDb250ZXh0
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgbV93b3JsZENvbnRleHRIYW5kbGUpOwotICAgIGlm
IChjb250ZXh0LklzRW1wdHkoKSkKLSAgICAgICAgQ1JBU0goKTsKLSAgICB2ODo6Q29udGV4dDo6
U2NvcGUgY29udGV4dFNjb3BlKGNvbnRleHQpOwotI2VuZGlmCisgICAgRE9NUmVxdWVzdFN0YXRl
OjpTY29wZSBzY29wZShtX3JlcXVlc3RTdGF0ZSk7CiAKLSAgICBTY3JpcHRWYWx1ZSB2YWx1ZSA9
IGRlc2VyaWFsaXplSURCVmFsdWUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzZXJpYWxpemVk
U2NyaXB0VmFsdWUpOworICAgIFNjcmlwdFZhbHVlIHZhbHVlID0gZGVzZXJpYWxpemVJREJWYWx1
ZSgmbV9yZXF1ZXN0U3RhdGUsIHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk7CiAgICAgb25TdWNjZXNz
SW50ZXJuYWwodmFsdWUpOwogfQogCkBAIC0zODUsMTggKzM2OCwxMiBAQCB2b2lkIElEQlJlcXVl
c3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcHJwU2VyaWFs
aXplZFNjcmlwdAogICAgIGlmICghc2hvdWxkRW5xdWV1ZUV2ZW50KCkpCiAgICAgICAgIHJldHVy
bjsKIAotI2lmIFVTRShWOCkKLSAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7Ci0gICAg
djg6OkxvY2FsPHY4OjpDb250ZXh0PiBjb250ZXh0ID0gdG9WOENvbnRleHQoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLCBtX3dvcmxkQ29udGV4dEhhbmRsZSk7Ci0gICAgaWYgKGNvbnRleHQuSXNF
bXB0eSgpKQotICAgICAgICBDUkFTSCgpOwotICAgIHY4OjpDb250ZXh0OjpTY29wZSBjb250ZXh0
U2NvcGUoY29udGV4dCk7Ci0jZW5kaWYKKyAgICBET01SZXF1ZXN0U3RhdGU6OlNjb3BlIHNjb3Bl
KG1fcmVxdWVzdFN0YXRlKTsKIAogI2lmbmRlZiBOREVCVUcKICAgICBBU1NFUlQoa2V5UGF0aCA9
PSBlZmZlY3RpdmVPYmplY3RTdG9yZShtX3NvdXJjZSktPmtleVBhdGgoKSk7CiAjZW5kaWYKLSAg
ICBTY3JpcHRWYWx1ZSB2YWx1ZSA9IGRlc2VyaWFsaXplSURCVmFsdWUoc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLCBwcnBTZXJpYWxpemVkU2NyaXB0VmFsdWUpOworICAgIFNjcmlwdFZhbHVlIHZh
bHVlID0gZGVzZXJpYWxpemVJREJWYWx1ZSgmbV9yZXF1ZXN0U3RhdGUsIHBycFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSk7CiAKICAgICBSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5ID0gcHJwUHJpbWFy
eUtleTsKICNpZm5kZWYgTkRFQlVHCkBAIC00MzQsMTUgKzQxMSw5IEBAIHZvaWQgSURCUmVxdWVz
dDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCS2V5PiBw
cmltYXJ5S2V5CiAgICAgaWYgKCFzaG91bGRFbnF1ZXVlRXZlbnQoKSkKICAgICAgICAgcmV0dXJu
OwogCi0jaWYgVVNFKFY4KQotICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKLSAgICB2
ODo6TG9jYWw8djg6OkNvbnRleHQ+IGNvbnRleHQgPSB0b1Y4Q29udGV4dChzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIG1fd29ybGRDb250ZXh0SGFuZGxlKTsKLSAgICBpZiAoY29udGV4dC5Jc0Vt
cHR5KCkpCi0gICAgICAgIENSQVNIKCk7Ci0gICAgdjg6OkNvbnRleHQ6OlNjb3BlIGNvbnRleHRT
Y29wZShjb250ZXh0KTsKLSNlbmRpZgorICAgIERPTVJlcXVlc3RTdGF0ZTo6U2NvcGUgc2NvcGUo
bV9yZXF1ZXN0U3RhdGUpOwogCi0gICAgU2NyaXB0VmFsdWUgdmFsdWUgPSBkZXNlcmlhbGl6ZUlE
QlZhbHVlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgc2VyaWFsaXplZFZhbHVlKTsKKyAgICBT
Y3JpcHRWYWx1ZSB2YWx1ZSA9IGRlc2VyaWFsaXplSURCVmFsdWUoJm1fcmVxdWVzdFN0YXRlLCBz
ZXJpYWxpemVkVmFsdWUpOwogICAgIEFTU0VSVChtX3BlbmRpbmdDdXJzb3IpOwogICAgIHNldFJl
c3VsdEN1cnNvcihtX3BlbmRpbmdDdXJzb3IucmVsZWFzZSgpLCBrZXksIHByaW1hcnlLZXksIHZh
bHVlKTsKICAgICBlbnF1ZXVlRXZlbnQoY3JlYXRlU3VjY2Vzc0V2ZW50KCkpOwpAQCAtNDg4LDEz
ICs0NTksNyBAQCBib29sIElEQlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVu
dD4gZXZlbnQpCiAgICAgQVNTRVJUKGV2ZW50LT50YXJnZXQoKSA9PSB0aGlzKTsKICAgICBBU1NF
UlRfV0lUSF9NRVNTQUdFKG1fcmVhZHlTdGF0ZSA8IERPTkUsICJXaGVuIGRpc3BhdGNoaW5nIGV2
ZW50ICVzLCBtX3JlYWR5U3RhdGUgPCBET05FKCVkKSwgd2FzICVkIiwgZXZlbnQtPnR5cGUoKS5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpLCBET05FLCBtX3JlYWR5U3RhdGUpOwogCi0jaWYgVVNFKFY4
KQotICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKLSAgICB2ODo6TG9jYWw8djg6OkNv
bnRleHQ+IGNvbnRleHQgPSB0b1Y4Q29udGV4dChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1f
d29ybGRDb250ZXh0SGFuZGxlKTsKLSAgICBpZiAoY29udGV4dC5Jc0VtcHR5KCkpCi0gICAgICAg
IENSQVNIKCk7Ci0gICAgdjg6OkNvbnRleHQ6OlNjb3BlIGNvbnRleHRTY29wZShjb250ZXh0KTsK
LSNlbmRpZgorICAgIERPTVJlcXVlc3RTdGF0ZTo6U2NvcGUgc2NvcGUobV9yZXF1ZXN0U3RhdGUp
OwogCiAgICAgaWYgKGV2ZW50LT50eXBlKCkgIT0gZXZlbnROYW1lcygpLmJsb2NrZWRFdmVudCkK
ICAgICAgICAgbV9yZWFkeVN0YXRlID0gRE9ORTsKQEAgLTUyMCw3ICs0ODUsNyBAQCBib29sIElE
QlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgaWYg
KGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLnN1Y2Nlc3NFdmVudCkgewogICAgICAgICBj
dXJzb3JUb05vdGlmeSA9IGdldFJlc3VsdEN1cnNvcigpOwogICAgICAgICBpZiAoY3Vyc29yVG9O
b3RpZnkpIHsKLSAgICAgICAgICAgIGN1cnNvclRvTm90aWZ5LT5zZXRWYWx1ZVJlYWR5KHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSwgbV9jdXJzb3JLZXkucmVsZWFzZSgpLCBtX2N1cnNvclByaW1h
cnlLZXkucmVsZWFzZSgpLCBtX2N1cnNvclZhbHVlKTsKKyAgICAgICAgICAgIGN1cnNvclRvTm90
aWZ5LT5zZXRWYWx1ZVJlYWR5KCZtX3JlcXVlc3RTdGF0ZSwgbV9jdXJzb3JLZXkucmVsZWFzZSgp
LCBtX2N1cnNvclByaW1hcnlLZXkucmVsZWFzZSgpLCBtX2N1cnNvclZhbHVlKTsKICAgICAgICAg
ICAgIG1fY3Vyc29yVmFsdWUuY2xlYXIoKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAppbmRleCBhMjI4NzJkZWM0MzU5
ZGIyODZjZmY4M2JmOGMzYzA2MGE2MDU3ODUzLi5hOWM3NDAwYTcwNTUwY2NkOWM0NjAwNTlhYTJj
MTc1NGVhY2VmNmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
UmVxdWVzdC5oCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3Qu
aCIKICNpbmNsdWRlICJET01FcnJvci5oIgorI2luY2x1ZGUgIkRPTVJlcXVlc3RTdGF0ZS5oIgog
I2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUg
IkV2ZW50TGlzdGVuZXIuaCIKQEAgLTE1OSw5ICsxNjAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9wcmV2ZW50UHJvcGFnYXRpb247CiAKICAgICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRhcmdl
dERhdGE7Ci0jaWYgVVNFKFY4KQotICAgIFdvcmxkQ29udGV4dEhhbmRsZSBtX3dvcmxkQ29udGV4
dEhhbmRsZTsKLSNlbmRpZgorICAgIERPTVJlcXVlc3RTdGF0ZSBtX3JlcXVlc3RTdGF0ZTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAyYmIwZmM3MGZi
YmEyMzJhNDEzMTA3Y2VhZTE4Y2I1N2RiNjExYTZiLi4zOWM5NDZhMWI3YTgwYTkzNmEwYmU4ODQ5
M2ZiYzYxMTI3OTBmYWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zMSw2ICszMSw3IEBACiAgICAg
ICAgICAgICAnYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL1NjcmlwdENvbnRyb2xsZXJCYXNlLmgnLAogICAgICAgICAgICAgJ2JpbmRp
bmdzL2pzL0RPTU9iamVjdEhhc2hUYWJsZU1hcC5oJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9q
cy9ET01SZXF1ZXN0U3RhdGUuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvRE9NV3JhcHBl
cldvcmxkLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5oJywKICAg
ICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaCcsCkBAIC0yMTk5LDYgKzIyMDAs
NyBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L0JpbmRpbmdTdGF0ZS5oJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9ET01EYXRhU3RvcmUuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5n
cy92OC9ET01EYXRhU3RvcmUuaCcsCisgICAgICAgICAgICAnYmluZGluZ3MvdjgvRE9NUmVxdWVz
dFN0YXRlLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L0RPTVdyYXBwZXJNYXAuaCcsCiAg
ICAgICAgICAgICAnYmluZGluZ3MvdjgvRE9NV3JhcHBlcldvcmxkLmNwcCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvdjgvRE9NV3JhcHBlcldvcmxkLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvRE9NUmVxdWVzdFN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9ET01SZXF1ZXN0U3RhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDQ5Yjc3NzkxMGRiZGMyMzYz
YmQ3OTIwNzJlMzUxNzQ2NTFjYzdhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvRE9NUmVxdWVzdFN0YXRlLmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgRE9NUmVxdWVzdFN0YXRlX2gKKyNkZWZpbmUgRE9NUmVxdWVzdFN0YXRlX2gKKworI2lu
Y2x1ZGUgIlY4QmluZGluZy5oIgorI2luY2x1ZGUgIldvcmxkQ29udGV4dEhhbmRsZS5oIgorI2lu
Y2x1ZGUgInY4LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDsKKworY2xhc3MgRE9NUmVxdWVzdFN0YXRlIHsKK3B1YmxpYzoKKyAgICBleHBs
aWNpdCBET01SZXF1ZXN0U3RhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCkKKyAgICAgICAgOiBtX3dvcmxkQ29udGV4dEhhbmRsZShVc2VDdXJyZW50V29y
bGQpCisgICAgICAgICwgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQpCisgICAgeworICAgIH0KKworICAgIGNsYXNzIFNjb3BlIHsKKyAgICBwdWJsaWM6Cisg
ICAgICAgIGV4cGxpY2l0IFNjb3BlKERPTVJlcXVlc3RTdGF0ZSYgc3RhdGUpCisgICAgICAgICAg
ICA6IG1fY29udGV4dFNjb3BlKHN0YXRlLmNvbnRleHQoKSkgeyB9CisgICAgcHJpdmF0ZToKKyAg
ICAgICAgdjg6OkhhbmRsZVNjb3BlIG1faGFuZGxlU2NvcGU7CisgICAgICAgIHY4OjpDb250ZXh0
OjpTY29wZSBtX2NvbnRleHRTY29wZTsKKyAgICB9OworCisgICAgdjg6OkxvY2FsPHY4OjpDb250
ZXh0PiBjb250ZXh0KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0b1Y4Q29udGV4dChtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQsIG1fd29ybGRDb250ZXh0SGFuZGxlKTsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgV29ybGRDb250ZXh0SGFuZGxlIG1fd29ybGRDb250ZXh0SGFuZGxlOworICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK307CisKK30K
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSURCQmluZGlu
Z1V0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRp
bGl0aWVzLmNwcAppbmRleCAwMWU3ZTM3ZTEyMzU1ODk3YTAzZDhkM2Q1NjQ1NGIxMGFjMTkyMTBl
Li4zNGQ3ZTQ1ODNjNjA5ZmFlNDM5NjU2MzlkMDBlNTExMGY2MzcwM2YyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcApAQCAtMzUs
NyArMzUsNiBAQAogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUg
IlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4SURCS2V5LmgiCi0jaW5jbHVkZSAiV29ybGRDb250
ZXh0SGFuZGxlLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CiAKQEAgLTIxMyw3ICsyMTIsNyBAQCBQYXNzUmVmUHRyPElEQktleT4gY3JlYXRl
SURCS2V5RnJvbVNjcmlwdFZhbHVlQW5kS2V5UGF0aChjb25zdCBTY3JpcHRWYWx1ZSYgdmFsdQog
ICAgIHJldHVybiBjcmVhdGVJREJLZXlGcm9tU2NyaXB0VmFsdWVBbmRLZXlQYXRoKHZhbHVlLCBr
ZXlQYXRoLnN0cmluZygpKTsKIH0KIAotU2NyaXB0VmFsdWUgZGVzZXJpYWxpemVJREJWYWx1ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0LCBQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gcHJwVmFsdWUpCitTY3JpcHRWYWx1ZSBkZXNlcmlhbGl6ZUlEQlZhbHVl
KERPTVJlcXVlc3RTdGF0ZSogc3RhdGUsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiBwcnBWYWx1ZSkKIHsKICAgICBBU1NFUlQodjg6OkNvbnRleHQ6OkluQ29udGV4dCgpKTsKICAg
ICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7CkBAIC0yNjUsNyArMjY0LDcgQEAgYm9vbCBj
YW5JbmplY3RJREJLZXlJbnRvU2NyaXB0VmFsdWUoY29uc3QgU2NyaXB0VmFsdWUmIHNjcmlwdFZh
bHVlLCBjb25zdCBJREJLZXkKICAgICByZXR1cm4gY2FuSW5qZWN0TnRoVmFsdWVPbktleVBhdGgo
djhWYWx1ZSwga2V5UGF0aEVsZW1lbnRzLCBrZXlQYXRoRWxlbWVudHMuc2l6ZSgpIC0gMSk7CiB9
CiAKLVNjcmlwdFZhbHVlIGlkYktleVRvU2NyaXB0VmFsdWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogc2NyaXB0Q29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSkKK1NjcmlwdFZhbHVlIGlk
YktleVRvU2NyaXB0VmFsdWUoRE9NUmVxdWVzdFN0YXRlKiBzdGF0ZSwgUGFzc1JlZlB0cjxJREJL
ZXk+IGtleSkKIHsKICAgICBBU1NFUlQodjg6OkNvbnRleHQ6OkluQ29udGV4dCgpKTsKICAgICB2
ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmgKaW5kZXggZjc2NjA1NmRmNjZkMmQ3MDhjZTJiYmMy
YzlmZTZhNmNmMTRlNWJiYS4uNDY1NTM5N2FjNWJhN2JkNDIzODQyMWVjYTA0NGJkMWIzZWMyODEy
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxp
dGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRp
ZXMuaApAQCAtMzQsNiArMzQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERP
TVJlcXVlc3RTdGF0ZTsKIGNsYXNzIElEQktleTsKIGNsYXNzIElEQktleVBhdGg7CiBjbGFzcyBT
ZXJpYWxpemVkU2NyaXB0VmFsdWU7CkBAIC00Myw4ICs0NCw4IEBAIFBhc3NSZWZQdHI8SURCS2V5
PiBjcmVhdGVJREJLZXlGcm9tVmFsdWUodjg6OkhhbmRsZTx2ODo6VmFsdWU+KTsKIGJvb2wgaW5q
ZWN0SURCS2V5SW50b1NjcmlwdFZhbHVlKFBhc3NSZWZQdHI8SURCS2V5PiwgU2NyaXB0VmFsdWUm
LCBjb25zdCBJREJLZXlQYXRoJik7CiBQYXNzUmVmUHRyPElEQktleT4gY3JlYXRlSURCS2V5RnJv
bVNjcmlwdFZhbHVlQW5kS2V5UGF0aChjb25zdCBTY3JpcHRWYWx1ZSYsIGNvbnN0IElEQktleVBh
dGgmKTsKIGJvb2wgY2FuSW5qZWN0SURCS2V5SW50b1NjcmlwdFZhbHVlKGNvbnN0IFNjcmlwdFZh
bHVlJiwgY29uc3QgSURCS2V5UGF0aCYpOwotU2NyaXB0VmFsdWUgZGVzZXJpYWxpemVJREJWYWx1
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+KTsKLVNjcmlwdFZhbHVlIGlkYktleVRvU2NyaXB0VmFsdWUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIFBhc3NSZWZQdHI8SURCS2V5Pik7CitTY3JpcHRWYWx1ZSBkZXNlcmlhbGl6ZUlEQlZh
bHVlKERPTVJlcXVlc3RTdGF0ZSosIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7
CitTY3JpcHRWYWx1ZSBpZGJLZXlUb1NjcmlwdFZhbHVlKERPTVJlcXVlc3RTdGF0ZSosIFBhc3NS
ZWZQdHI8SURCS2V5Pik7CiAKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173951</attachid>
            <date>2012-11-13 12:15:04 -0800</date>
            <delta_ts>2012-11-13 12:17:54 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-102102-20121113121304.patch</filename>
            <type>text/plain</type>
            <size>15805</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0Mzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzAzMTc1OTVkYTg2ZDAy
ODExYWEzZjY3Y2M0OGM1OWYzYjk5ZWQxYi4uODU3MDU3YTc2MzgwMTkwYzFiNTMwYWM3YzM2M2U5
OWNmNmIzMjMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTExLTEzICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgRE9NUmVxdWVz
dFN0YXRlIHRvIG1haW50YWluIHdvcmxkL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQgc3RhdGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjEwMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgSW50cm9kdWNlIERPTVJl
cXVlc3RTdGF0ZSwgYW5kIGNvbnZlcnQgSW5kZXhlZERCIG92ZXIuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OklEQlJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6b25TdWNjZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QlJlcXVlc3QuaDoKKyAgICAgICAgKElEQlJlcXVlc3QpOgorICAgICAgICAqIFdlYkNvcmUuZ3lw
aToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9ET01SZXF1ZXN0U3RhdGUuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVJlcXVlc3RTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpET01SZXF1ZXN0U3RhdGU6OkRPTVJlcXVlc3RTdGF0ZSk6CisgICAgICAgIChTY29wZSk6
CisgICAgICAgIChXZWJDb3JlOjpET01SZXF1ZXN0U3RhdGU6OlNjb3BlOjpTY29wZSk6CisgICAg
ICAgIChXZWJDb3JlOjpET01SZXF1ZXN0U3RhdGU6OnNjb3BlKToKKwogMjAxMi0xMS0xMiAgSHVh
bmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBbUXRdIFJF
R1JFU1NJT04oMTM0MTQyKTogb3ZlcnNjYWxlZCB0aWxlcyBpbiBwaXhlbCB0ZXN0IHJlc3VsdHMg
YW5kIE1pbmlCcm93c2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJDdXJzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
Q3Vyc29yLmNwcAppbmRleCBiZWIwMWM0NjI4MmEzZTNmODlhZDQ2NDFkNTE0YzQ1YjhiZTk5MWZj
Li43N2ZkYTg0YmMzZmZmYWYyNDA0NzE5MDYwMjY4NGIzOWQyZGNiZjA2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKQEAgLTI1NywxMyArMjU3
LDEzIEBAIHZvaWQgSURCQ3Vyc29yOjpjbG9zZSgpCiAgICAgfQogfQogCi12b2lkIElEQkN1cnNv
cjo6c2V0VmFsdWVSZWFkeShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVm
UHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwgU2NyaXB0VmFs
dWUmIHZhbHVlKQordm9pZCBJREJDdXJzb3I6OnNldFZhbHVlUmVhZHkoRE9NUmVxdWVzdFN0YXRl
KiBzdGF0ZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1h
cnlLZXksIFNjcmlwdFZhbHVlJiB2YWx1ZSkKIHsKICAgICBtX2N1cnJlbnRLZXkgPSBrZXk7Ci0g
ICAgbV9jdXJyZW50S2V5VmFsdWUgPSBpZGJLZXlUb1NjcmlwdFZhbHVlKGNvbnRleHQsIG1fY3Vy
cmVudEtleSk7CisgICAgbV9jdXJyZW50S2V5VmFsdWUgPSBpZGJLZXlUb1NjcmlwdFZhbHVlKHN0
YXRlLCBtX2N1cnJlbnRLZXkpOwogCiAgICAgbV9jdXJyZW50UHJpbWFyeUtleSA9IHByaW1hcnlL
ZXk7Ci0gICAgbV9jdXJyZW50UHJpbWFyeUtleVZhbHVlID0gaWRiS2V5VG9TY3JpcHRWYWx1ZShj
b250ZXh0LCBtX2N1cnJlbnRQcmltYXJ5S2V5KTsKKyAgICBtX2N1cnJlbnRQcmltYXJ5S2V5VmFs
dWUgPSBpZGJLZXlUb1NjcmlwdFZhbHVlKHN0YXRlLCBtX2N1cnJlbnRQcmltYXJ5S2V5KTsKIAog
ICAgIGlmICghaXNLZXlDdXJzb3IoKSkgewogICAgICAgICBSZWZQdHI8SURCT2JqZWN0U3RvcmU+
IG9iamVjdFN0b3JlID0gZWZmZWN0aXZlT2JqZWN0U3RvcmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmgKaW5kZXggZGY0YjFjZWIzNTQ2OTM2YWI2MzEx
ZDNhZmU5YzEwOGNiOTMzYzc2My4uZjVkNmM3Zjk5YWQ0MDQ2OWY2NWIyNzg2ZjhmYmM5OTZkMjU4
NjkyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vy
c29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmgK
QEAgLTM4LDYgKzM4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBET01SZXF1
ZXN0U3RhdGU7CiBjbGFzcyBJREJBbnk7CiBjbGFzcyBJREJDYWxsYmFja3M7CiBjbGFzcyBJREJD
dXJzb3JCYWNrZW5kSW50ZXJmYWNlOwpAQCAtODQsNyArODUsNyBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHBvc3RTdWNjZXNzSGFuZGxlckNhbGxiYWNrKCk7CiAgICAgdm9pZCBjbG9zZSgpOwotICAg
IHZvaWQgc2V0VmFsdWVSZWFkeShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJ
REJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwgU2NyaXB0VmFsdWUmKTsKKyAg
ICB2b2lkIHNldFZhbHVlUmVhZHkoRE9NUmVxdWVzdFN0YXRlKiwgUGFzc1JlZlB0cjxJREJLZXk+
LCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwgU2NyaXB0VmFsdWUmKTsKICAgICBQYXNz
UmVmUHRyPElEQktleT4gaWRiUHJpbWFyeUtleSgpIHsgcmV0dXJuIG1fY3VycmVudFByaW1hcnlL
ZXk7IH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJSZXF1ZXN0LmNwcAppbmRleCBjZThhYWEzNzJkM2MwMWJmYjE5MGNlNzJmODA1YjMyOTll
ODUwOGM0Li42OWZkYjliZjUyMzcwOGFkMzc4OWQxNTBkZWEyODQ0YTFlMWMzMTNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcApAQCAtNDIs
OSArNDIsNiBAQAogI2luY2x1ZGUgIklEQlRyYWNpbmcuaCIKICNpbmNsdWRlICJJREJUcmFuc2Fj
dGlvbi5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNpZiBVU0UoVjgp
Ci0jaW5jbHVkZSAiVjhCaW5kaW5nLmgiCi0jZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC03OSw5ICs3Niw3IEBAIElEQlJlcXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjCiAgICAgLCBtX3BlbmRp
bmdDdXJzb3IoMCkKICAgICAsIG1fZGlkRmlyZVVwZ3JhZGVOZWVkZWRFdmVudChmYWxzZSkKICAg
ICAsIG1fcHJldmVudFByb3BhZ2F0aW9uKGZhbHNlKQotI2lmIFVTRShWOCkKLSAgICAsIG1fd29y
bGRDb250ZXh0SGFuZGxlKFVzZUN1cnJlbnRXb3JsZCkKLSNlbmRpZgorICAgICwgbV9yZXF1ZXN0
U3RhdGUoY29udGV4dCkKIHsKICAgICBpZiAobV90cmFuc2FjdGlvbikgewogICAgICAgICBtX3Ry
YW5zYWN0aW9uLT5yZWdpc3RlclJlcXVlc3QodGhpcyk7CkBAIC0yOTAsMTUgKzI4NSw4IEBAIHZv
aWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVy
ZmFjZT4gYmFja2VuZCwgUGFzc1JlCiAgICAgaWYgKCFzaG91bGRFbnF1ZXVlRXZlbnQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0jaWYgVVNFKFY4KQotICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVT
Y29wZTsKLSAgICB2ODo6TG9jYWw8djg6OkNvbnRleHQ+IGNvbnRleHQgPSB0b1Y4Q29udGV4dChz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fd29ybGRDb250ZXh0SGFuZGxlKTsKLSAgICBpZiAo
Y29udGV4dC5Jc0VtcHR5KCkpCi0gICAgICAgIENSQVNIKCk7Ci0gICAgdjg6OkNvbnRleHQ6OlNj
b3BlIGNvbnRleHRTY29wZShjb250ZXh0KTsKLSNlbmRpZgotCi0gICAgU2NyaXB0VmFsdWUgdmFs
dWUgPSBkZXNlcmlhbGl6ZUlEQlZhbHVlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgc2VyaWFs
aXplZFZhbHVlKTsKKyAgICBET01SZXF1ZXN0U3RhdGU6OlNjb3BlIHNjb3BlKG1fcmVxdWVzdFN0
YXRlKTsKKyAgICBTY3JpcHRWYWx1ZSB2YWx1ZSA9IGRlc2VyaWFsaXplSURCVmFsdWUoJm1fcmVx
dWVzdFN0YXRlLCBzZXJpYWxpemVkVmFsdWUpOwogICAgIEFTU0VSVChtX2N1cnNvclR5cGUgIT0g
SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6SW52YWxpZEN1cnNvclR5cGUpOwogICAgIFJlZlB0
cjxJREJDdXJzb3I+IGN1cnNvcjsKICAgICBpZiAobV9jdXJzb3JUeXBlID09IElEQkN1cnNvckJh
Y2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5Q3Vyc29yKQpAQCAtMzU0LDE1ICszNDIsOCBAQCB2b2lk
IElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
c2VyaWFsaXplZFNjcmlwdFZhbAogICAgIGlmICghc2hvdWxkRW5xdWV1ZUV2ZW50KCkpCiAgICAg
ICAgIHJldHVybjsKIAotI2lmIFVTRShWOCkKLSAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2Nv
cGU7Ci0gICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBjb250ZXh0ID0gdG9WOENvbnRleHQoc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX3dvcmxkQ29udGV4dEhhbmRsZSk7Ci0gICAgaWYgKGNv
bnRleHQuSXNFbXB0eSgpKQotICAgICAgICBDUkFTSCgpOwotICAgIHY4OjpDb250ZXh0OjpTY29w
ZSBjb250ZXh0U2NvcGUoY29udGV4dCk7Ci0jZW5kaWYKLQotICAgIFNjcmlwdFZhbHVlIHZhbHVl
ID0gZGVzZXJpYWxpemVJREJWYWx1ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSk7CisgICAgRE9NUmVxdWVzdFN0YXRlOjpTY29wZSBzY29wZShtX3JlcXVl
c3RTdGF0ZSk7CisgICAgU2NyaXB0VmFsdWUgdmFsdWUgPSBkZXNlcmlhbGl6ZUlEQlZhbHVlKCZt
X3JlcXVlc3RTdGF0ZSwgc2VyaWFsaXplZFNjcmlwdFZhbHVlKTsKICAgICBvblN1Y2Nlc3NJbnRl
cm5hbCh2YWx1ZSk7CiB9CiAKQEAgLTM4NSwxOCArMzY2LDExIEBAIHZvaWQgSURCUmVxdWVzdDo6
b25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBwcnBTZXJpYWxpemVk
U2NyaXB0CiAgICAgaWYgKCFzaG91bGRFbnF1ZXVlRXZlbnQoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0jaWYgVVNFKFY4KQotICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKLSAgICB2ODo6
TG9jYWw8djg6OkNvbnRleHQ+IGNvbnRleHQgPSB0b1Y4Q29udGV4dChzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCksIG1fd29ybGRDb250ZXh0SGFuZGxlKTsKLSAgICBpZiAoY29udGV4dC5Jc0VtcHR5
KCkpCi0gICAgICAgIENSQVNIKCk7Ci0gICAgdjg6OkNvbnRleHQ6OlNjb3BlIGNvbnRleHRTY29w
ZShjb250ZXh0KTsKLSNlbmRpZgotCiAjaWZuZGVmIE5ERUJVRwogICAgIEFTU0VSVChrZXlQYXRo
ID09IGVmZmVjdGl2ZU9iamVjdFN0b3JlKG1fc291cmNlKS0+a2V5UGF0aCgpKTsKICNlbmRpZgot
ICAgIFNjcmlwdFZhbHVlIHZhbHVlID0gZGVzZXJpYWxpemVJREJWYWx1ZShzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIHBycFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk7CisgICAgRE9NUmVxdWVzdFN0
YXRlOjpTY29wZSBzY29wZShtX3JlcXVlc3RTdGF0ZSk7CisgICAgU2NyaXB0VmFsdWUgdmFsdWUg
PSBkZXNlcmlhbGl6ZUlEQlZhbHVlKCZtX3JlcXVlc3RTdGF0ZSwgcHJwU2VyaWFsaXplZFNjcmlw
dFZhbHVlKTsKIAogICAgIFJlZlB0cjxJREJLZXk+IHByaW1hcnlLZXkgPSBwcnBQcmltYXJ5S2V5
OwogI2lmbmRlZiBOREVCVUcKQEAgLTQzNCwxNSArNDA4LDggQEAgdm9pZCBJREJSZXF1ZXN0Ojpv
blN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1h
cnlLZXkKICAgICBpZiAoIXNob3VsZEVucXVldWVFdmVudCgpKQogICAgICAgICByZXR1cm47CiAK
LSNpZiBVU0UoVjgpCi0gICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwotICAgIHY4OjpM
b2NhbDx2ODo6Q29udGV4dD4gY29udGV4dCA9IHRvVjhDb250ZXh0KHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSwgbV93b3JsZENvbnRleHRIYW5kbGUpOwotICAgIGlmIChjb250ZXh0LklzRW1wdHko
KSkKLSAgICAgICAgQ1JBU0goKTsKLSAgICB2ODo6Q29udGV4dDo6U2NvcGUgY29udGV4dFNjb3Bl
KGNvbnRleHQpOwotI2VuZGlmCi0KLSAgICBTY3JpcHRWYWx1ZSB2YWx1ZSA9IGRlc2VyaWFsaXpl
SURCVmFsdWUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzZXJpYWxpemVkVmFsdWUpOworICAg
IERPTVJlcXVlc3RTdGF0ZTo6U2NvcGUgc2NvcGUobV9yZXF1ZXN0U3RhdGUpOworICAgIFNjcmlw
dFZhbHVlIHZhbHVlID0gZGVzZXJpYWxpemVJREJWYWx1ZSgmbV9yZXF1ZXN0U3RhdGUsIHNlcmlh
bGl6ZWRWYWx1ZSk7CiAgICAgQVNTRVJUKG1fcGVuZGluZ0N1cnNvcik7CiAgICAgc2V0UmVzdWx0
Q3Vyc29yKG1fcGVuZGluZ0N1cnNvci5yZWxlYXNlKCksIGtleSwgcHJpbWFyeUtleSwgdmFsdWUp
OwogICAgIGVucXVldWVFdmVudChjcmVhdGVTdWNjZXNzRXZlbnQoKSk7CkBAIC00NjMsNiArNDMw
LDcgQEAgdm9pZCBJREJSZXF1ZXN0OjpzdG9wKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9j
b250ZXh0U3RvcHBlZCA9IHRydWU7CisgICAgbV9yZXF1ZXN0U3RhdGUuY2xlYXIoKTsKICAgICBp
ZiAobV9yZWFkeVN0YXRlID09IFBFTkRJTkcpCiAgICAgICAgIG1hcmtFYXJseURlYXRoKCk7CiB9
CkBAIC00ODgsMTMgKzQ1Niw3IEBAIGJvb2wgSURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNz
UmVmUHRyPEV2ZW50PiBldmVudCkKICAgICBBU1NFUlQoZXZlbnQtPnRhcmdldCgpID09IHRoaXMp
OwogICAgIEFTU0VSVF9XSVRIX01FU1NBR0UobV9yZWFkeVN0YXRlIDwgRE9ORSwgIldoZW4gZGlz
cGF0Y2hpbmcgZXZlbnQgJXMsIG1fcmVhZHlTdGF0ZSA8IERPTkUoJWQpLCB3YXMgJWQiLCBldmVu
dC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIERPTkUsIG1fcmVhZHlTdGF0ZSk7CiAK
LSNpZiBVU0UoVjgpCi0gICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwotICAgIHY4OjpM
b2NhbDx2ODo6Q29udGV4dD4gY29udGV4dCA9IHRvVjhDb250ZXh0KHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSwgbV93b3JsZENvbnRleHRIYW5kbGUpOwotICAgIGlmIChjb250ZXh0LklzRW1wdHko
KSkKLSAgICAgICAgQ1JBU0goKTsKLSAgICB2ODo6Q29udGV4dDo6U2NvcGUgY29udGV4dFNjb3Bl
KGNvbnRleHQpOwotI2VuZGlmCisgICAgRE9NUmVxdWVzdFN0YXRlOjpTY29wZSBzY29wZShtX3Jl
cXVlc3RTdGF0ZSk7CiAKICAgICBpZiAoZXZlbnQtPnR5cGUoKSAhPSBldmVudE5hbWVzKCkuYmxv
Y2tlZEV2ZW50KQogICAgICAgICBtX3JlYWR5U3RhdGUgPSBET05FOwpAQCAtNTIwLDcgKzQ4Miw3
IEBAIGJvb2wgSURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVu
dCkKICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuc3VjY2Vzc0V2ZW50KSB7
CiAgICAgICAgIGN1cnNvclRvTm90aWZ5ID0gZ2V0UmVzdWx0Q3Vyc29yKCk7CiAgICAgICAgIGlm
IChjdXJzb3JUb05vdGlmeSkgewotICAgICAgICAgICAgY3Vyc29yVG9Ob3RpZnktPnNldFZhbHVl
UmVhZHkoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX2N1cnNvcktleS5yZWxlYXNlKCksIG1f
Y3Vyc29yUHJpbWFyeUtleS5yZWxlYXNlKCksIG1fY3Vyc29yVmFsdWUpOworICAgICAgICAgICAg
Y3Vyc29yVG9Ob3RpZnktPnNldFZhbHVlUmVhZHkoJm1fcmVxdWVzdFN0YXRlLCBtX2N1cnNvcktl
eS5yZWxlYXNlKCksIG1fY3Vyc29yUHJpbWFyeUtleS5yZWxlYXNlKCksIG1fY3Vyc29yVmFsdWUp
OwogICAgICAgICAgICAgbV9jdXJzb3JWYWx1ZS5jbGVhcigpOwogICAgICAgICB9CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCmluZGV4IGEy
Mjg3MmRlYzQzNTlkYjI4NmNmZjgzYmY4YzNjMDYwYTYwNTc4NTMuLmE5Yzc0MDBhNzA1NTBjY2Q5
YzQ2MDA1OWFhMmMxNzU0ZWFjZWY2YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJSZXF1ZXN0LmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkFjdGl2
ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkRPTUVycm9yLmgiCisjaW5jbHVkZSAiRE9NUmVxdWVz
dFN0YXRlLmgiCiAjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgIkV2ZW50Lmgi
CiAjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgpAQCAtMTU5LDkgKzE2MCw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3ByZXZlbnRQcm9wYWdhdGlvbjsKIAogICAgIEV2ZW50VGFyZ2V0RGF0YSBt
X2V2ZW50VGFyZ2V0RGF0YTsKLSNpZiBVU0UoVjgpCi0gICAgV29ybGRDb250ZXh0SGFuZGxlIG1f
d29ybGRDb250ZXh0SGFuZGxlOwotI2VuZGlmCisgICAgRE9NUmVxdWVzdFN0YXRlIG1fcmVxdWVz
dFN0YXRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IDJiYjBmYzcwZmJiYTIzMmE0MTMxMDdjZWFlMThjYjU3ZGI2MTFhNmIuLjM5Yzk0NmExYjdhODBh
OTM2YTBiZTg4NDkzZmJjNjExMjc5MGZhYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTMxLDYgKzMx
LDcgQEAKICAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCcs
CiAgICAgICAgICAgICAnYmluZGluZ3MvU2NyaXB0Q29udHJvbGxlckJhc2UuaCcsCiAgICAgICAg
ICAgICAnYmluZGluZ3MvanMvRE9NT2JqZWN0SGFzaFRhYmxlTWFwLmgnLAorICAgICAgICAgICAg
J2JpbmRpbmdzL2pzL0RPTVJlcXVlc3RTdGF0ZS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9q
cy9ET01XcmFwcGVyV29ybGQuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvR0NDb250cm9s
bGVyLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oJywKQEAgLTIx
OTksNiArMjIwMCw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvQmluZGluZ1N0YXRlLmgn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L0RPTURhdGFTdG9yZS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L0RPTURhdGFTdG9yZS5oJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92
OC9ET01SZXF1ZXN0U3RhdGUuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvRE9NV3JhcHBl
ck1hcC5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9ET01XcmFwcGVyV29ybGQuY3BwJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy92OC9ET01XcmFwcGVyV29ybGQuaCcsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01SZXF1ZXN0U3RhdGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTVJlcXVlc3RTdGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxMGE3MTZi
MjM2M2EwMTEyMDM0MzNhYzk4MGE1MWVkMTk5ZTczZmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01SZXF1ZXN0U3RhdGUuaApAQCAtMCwwICsxLDcwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBET01SZXF1ZXN0U3RhdGVfaAorI2RlZmluZSBET01SZXF1ZXN0U3Rh
dGVfaAorCisjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVkZSAiV29ybGRDb250ZXh0SGFu
ZGxlLmgiCisjaW5jbHVkZSAidjguaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OworCitjbGFzcyBET01SZXF1ZXN0U3RhdGUgeworcHVibGlj
OgorICAgIGV4cGxpY2l0IERPTVJlcXVlc3RTdGF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KQorICAgICAgICA6IG1fd29ybGRDb250ZXh0SGFuZGxlKFVz
ZUN1cnJlbnRXb3JsZCkKKyAgICAgICAgLCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCBjbGVhcigpCisgICAg
eworICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQgPSAwOworICAgIH0KKworICAgIGNs
YXNzIFNjb3BlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIGV4cGxpY2l0IFNjb3BlKERPTVJlcXVl
c3RTdGF0ZSYgc3RhdGUpCisgICAgICAgICAgICA6IG1fY29udGV4dFNjb3BlKHN0YXRlLmNvbnRl
eHQoKSkgeyB9CisgICAgcHJpdmF0ZToKKyAgICAgICAgdjg6OkhhbmRsZVNjb3BlIG1faGFuZGxl
U2NvcGU7CisgICAgICAgIHY4OjpDb250ZXh0OjpTY29wZSBtX2NvbnRleHRTY29wZTsKKyAgICB9
OworCisgICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBjb250ZXh0KCkKKyAgICB7CisgICAgICAg
IHJldHVybiB0b1Y4Q29udGV4dChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIG1fd29ybGRDb250
ZXh0SGFuZGxlKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgV29ybGRDb250ZXh0SGFuZGxlIG1f
d29ybGRDb250ZXh0SGFuZGxlOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dDsKK307CisKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAppbmRleCAwMWU3ZTM3ZTEyMzU1
ODk3YTAzZDhkM2Q1NjQ1NGIxMGFjMTkyMTBlLi4zNGQ3ZTQ1ODNjNjA5ZmFlNDM5NjU2MzlkMDBl
NTExMGY2MzcwM2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJC
aW5kaW5nVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJC
aW5kaW5nVXRpbGl0aWVzLmNwcApAQCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgIlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4SURC
S2V5LmgiCi0jaW5jbHVkZSAiV29ybGRDb250ZXh0SGFuZGxlLmgiCiAjaW5jbHVkZSA8d3RmL01h
dGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTIxMyw3ICsyMTIsNyBA
QCBQYXNzUmVmUHRyPElEQktleT4gY3JlYXRlSURCS2V5RnJvbVNjcmlwdFZhbHVlQW5kS2V5UGF0
aChjb25zdCBTY3JpcHRWYWx1ZSYgdmFsdQogICAgIHJldHVybiBjcmVhdGVJREJLZXlGcm9tU2Ny
aXB0VmFsdWVBbmRLZXlQYXRoKHZhbHVlLCBrZXlQYXRoLnN0cmluZygpKTsKIH0KIAotU2NyaXB0
VmFsdWUgZGVzZXJpYWxpemVJREJWYWx1ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRD
b250ZXh0LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcHJwVmFsdWUpCitTY3Jp
cHRWYWx1ZSBkZXNlcmlhbGl6ZUlEQlZhbHVlKERPTVJlcXVlc3RTdGF0ZSogc3RhdGUsIFBhc3NS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBwcnBWYWx1ZSkKIHsKICAgICBBU1NFUlQodjg6
OkNvbnRleHQ6OkluQ29udGV4dCgpKTsKICAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7
CkBAIC0yNjUsNyArMjY0LDcgQEAgYm9vbCBjYW5JbmplY3RJREJLZXlJbnRvU2NyaXB0VmFsdWUo
Y29uc3QgU2NyaXB0VmFsdWUmIHNjcmlwdFZhbHVlLCBjb25zdCBJREJLZXkKICAgICByZXR1cm4g
Y2FuSW5qZWN0TnRoVmFsdWVPbktleVBhdGgodjhWYWx1ZSwga2V5UGF0aEVsZW1lbnRzLCBrZXlQ
YXRoRWxlbWVudHMuc2l6ZSgpIC0gMSk7CiB9CiAKLVNjcmlwdFZhbHVlIGlkYktleVRvU2NyaXB0
VmFsdWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCwgUGFzc1JlZlB0cjxJ
REJLZXk+IGtleSkKK1NjcmlwdFZhbHVlIGlkYktleVRvU2NyaXB0VmFsdWUoRE9NUmVxdWVzdFN0
YXRlKiBzdGF0ZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSkKIHsKICAgICBBU1NFUlQodjg6OkNv
bnRleHQ6OkluQ29udGV4dCgpKTsKICAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmgKaW5k
ZXggZjc2NjA1NmRmNjZkMmQ3MDhjZTJiYmMyYzlmZTZhNmNmMTRlNWJiYS4uNDY1NTM5N2FjNWJh
N2JkNDIzODQyMWVjYTA0NGJkMWIzZWMyODEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMuaApAQCAtMzQsNiArMzQsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERPTVJlcXVlc3RTdGF0ZTsKIGNsYXNzIElEQktleTsK
IGNsYXNzIElEQktleVBhdGg7CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CkBAIC00Myw4
ICs0NCw4IEBAIFBhc3NSZWZQdHI8SURCS2V5PiBjcmVhdGVJREJLZXlGcm9tVmFsdWUodjg6Okhh
bmRsZTx2ODo6VmFsdWU+KTsKIGJvb2wgaW5qZWN0SURCS2V5SW50b1NjcmlwdFZhbHVlKFBhc3NS
ZWZQdHI8SURCS2V5PiwgU2NyaXB0VmFsdWUmLCBjb25zdCBJREJLZXlQYXRoJik7CiBQYXNzUmVm
UHRyPElEQktleT4gY3JlYXRlSURCS2V5RnJvbVNjcmlwdFZhbHVlQW5kS2V5UGF0aChjb25zdCBT
Y3JpcHRWYWx1ZSYsIGNvbnN0IElEQktleVBhdGgmKTsKIGJvb2wgY2FuSW5qZWN0SURCS2V5SW50
b1NjcmlwdFZhbHVlKGNvbnN0IFNjcmlwdFZhbHVlJiwgY29uc3QgSURCS2V5UGF0aCYpOwotU2Ny
aXB0VmFsdWUgZGVzZXJpYWxpemVJREJWYWx1ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFz
c1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KTsKLVNjcmlwdFZhbHVlIGlkYktleVRvU2Ny
aXB0VmFsdWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5Pik7CitT
Y3JpcHRWYWx1ZSBkZXNlcmlhbGl6ZUlEQlZhbHVlKERPTVJlcXVlc3RTdGF0ZSosIFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7CitTY3JpcHRWYWx1ZSBpZGJLZXlUb1NjcmlwdFZh
bHVlKERPTVJlcXVlc3RTdGF0ZSosIFBhc3NSZWZQdHI8SURCS2V5Pik7CiAKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCS2V5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQktleS5jcHAKaW5kZXggZDYwYjVmNWMxYzliNDRhNzZm
MzFkOTEzNmIwNDc4ODM5YWFhZmU2Yy4uNjA5ZDNiNGEwNjNjMmI0N2ZmNWEzNThhZDkxZGQ1NDcx
MzMxNGM5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCS2V5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJLZXkuY3BwCkBAIC0z
MCw3ICszMCw2IEBACiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAotI2luY2x1ZGUg
IklEQkJpbmRpbmdVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJJREJLZXkuaCIKIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173954</attachid>
            <date>2012-11-13 12:17:56 -0800</date>
            <delta_ts>2012-11-13 13:38:38 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-102102-20121113121556.patch</filename>
            <type>text/plain</type>
            <size>15823</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0Mzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzAzMTc1OTVkYTg2ZDAy
ODExYWEzZjY3Y2M0OGM1OWYzYjk5ZWQxYi4uODU3MDU3YTc2MzgwMTkwYzFiNTMwYWM3YzM2M2U5
OWNmNmIzMjMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTExLTEzICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgRE9NUmVxdWVz
dFN0YXRlIHRvIG1haW50YWluIHdvcmxkL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQgc3RhdGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjEwMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgSW50cm9kdWNlIERPTVJl
cXVlc3RTdGF0ZSwgYW5kIGNvbnZlcnQgSW5kZXhlZERCIG92ZXIuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OklEQlJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6b25TdWNjZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QlJlcXVlc3QuaDoKKyAgICAgICAgKElEQlJlcXVlc3QpOgorICAgICAgICAqIFdlYkNvcmUuZ3lw
aToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9ET01SZXF1ZXN0U3RhdGUuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVJlcXVlc3RTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpET01SZXF1ZXN0U3RhdGU6OkRPTVJlcXVlc3RTdGF0ZSk6CisgICAgICAgIChTY29wZSk6
CisgICAgICAgIChXZWJDb3JlOjpET01SZXF1ZXN0U3RhdGU6OlNjb3BlOjpTY29wZSk6CisgICAg
ICAgIChXZWJDb3JlOjpET01SZXF1ZXN0U3RhdGU6OnNjb3BlKToKKwogMjAxMi0xMS0xMiAgSHVh
bmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBbUXRdIFJF
R1JFU1NJT04oMTM0MTQyKTogb3ZlcnNjYWxlZCB0aWxlcyBpbiBwaXhlbCB0ZXN0IHJlc3VsdHMg
YW5kIE1pbmlCcm93c2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJDdXJzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
Q3Vyc29yLmNwcAppbmRleCBiZWIwMWM0NjI4MmEzZTNmODlhZDQ2NDFkNTE0YzQ1YjhiZTk5MWZj
Li43N2ZkYTg0YmMzZmZmYWYyNDA0NzE5MDYwMjY4NGIzOWQyZGNiZjA2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKQEAgLTI1NywxMyArMjU3
LDEzIEBAIHZvaWQgSURCQ3Vyc29yOjpjbG9zZSgpCiAgICAgfQogfQogCi12b2lkIElEQkN1cnNv
cjo6c2V0VmFsdWVSZWFkeShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVm
UHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwgU2NyaXB0VmFs
dWUmIHZhbHVlKQordm9pZCBJREJDdXJzb3I6OnNldFZhbHVlUmVhZHkoRE9NUmVxdWVzdFN0YXRl
KiBzdGF0ZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1h
cnlLZXksIFNjcmlwdFZhbHVlJiB2YWx1ZSkKIHsKICAgICBtX2N1cnJlbnRLZXkgPSBrZXk7Ci0g
ICAgbV9jdXJyZW50S2V5VmFsdWUgPSBpZGJLZXlUb1NjcmlwdFZhbHVlKGNvbnRleHQsIG1fY3Vy
cmVudEtleSk7CisgICAgbV9jdXJyZW50S2V5VmFsdWUgPSBpZGJLZXlUb1NjcmlwdFZhbHVlKHN0
YXRlLCBtX2N1cnJlbnRLZXkpOwogCiAgICAgbV9jdXJyZW50UHJpbWFyeUtleSA9IHByaW1hcnlL
ZXk7Ci0gICAgbV9jdXJyZW50UHJpbWFyeUtleVZhbHVlID0gaWRiS2V5VG9TY3JpcHRWYWx1ZShj
b250ZXh0LCBtX2N1cnJlbnRQcmltYXJ5S2V5KTsKKyAgICBtX2N1cnJlbnRQcmltYXJ5S2V5VmFs
dWUgPSBpZGJLZXlUb1NjcmlwdFZhbHVlKHN0YXRlLCBtX2N1cnJlbnRQcmltYXJ5S2V5KTsKIAog
ICAgIGlmICghaXNLZXlDdXJzb3IoKSkgewogICAgICAgICBSZWZQdHI8SURCT2JqZWN0U3RvcmU+
IG9iamVjdFN0b3JlID0gZWZmZWN0aXZlT2JqZWN0U3RvcmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmgKaW5kZXggZGY0YjFjZWIzNTQ2OTM2YWI2MzEx
ZDNhZmU5YzEwOGNiOTMzYzc2My4uZjVkNmM3Zjk5YWQ0MDQ2OWY2NWIyNzg2ZjhmYmM5OTZkMjU4
NjkyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vy
c29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmgK
QEAgLTM4LDYgKzM4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBET01SZXF1
ZXN0U3RhdGU7CiBjbGFzcyBJREJBbnk7CiBjbGFzcyBJREJDYWxsYmFja3M7CiBjbGFzcyBJREJD
dXJzb3JCYWNrZW5kSW50ZXJmYWNlOwpAQCAtODQsNyArODUsNyBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHBvc3RTdWNjZXNzSGFuZGxlckNhbGxiYWNrKCk7CiAgICAgdm9pZCBjbG9zZSgpOwotICAg
IHZvaWQgc2V0VmFsdWVSZWFkeShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJ
REJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwgU2NyaXB0VmFsdWUmKTsKKyAg
ICB2b2lkIHNldFZhbHVlUmVhZHkoRE9NUmVxdWVzdFN0YXRlKiwgUGFzc1JlZlB0cjxJREJLZXk+
LCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwgU2NyaXB0VmFsdWUmKTsKICAgICBQYXNz
UmVmUHRyPElEQktleT4gaWRiUHJpbWFyeUtleSgpIHsgcmV0dXJuIG1fY3VycmVudFByaW1hcnlL
ZXk7IH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJSZXF1ZXN0LmNwcAppbmRleCBjZThhYWEzNzJkM2MwMWJmYjE5MGNlNzJmODA1YjMyOTll
ODUwOGM0Li42OWZkYjliZjUyMzcwOGFkMzc4OWQxNTBkZWEyODQ0YTFlMWMzMTNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcApAQCAtNDIs
OSArNDIsNiBAQAogI2luY2x1ZGUgIklEQlRyYWNpbmcuaCIKICNpbmNsdWRlICJJREJUcmFuc2Fj
dGlvbi5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNpZiBVU0UoVjgp
Ci0jaW5jbHVkZSAiVjhCaW5kaW5nLmgiCi0jZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC03OSw5ICs3Niw3IEBAIElEQlJlcXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjCiAgICAgLCBtX3BlbmRp
bmdDdXJzb3IoMCkKICAgICAsIG1fZGlkRmlyZVVwZ3JhZGVOZWVkZWRFdmVudChmYWxzZSkKICAg
ICAsIG1fcHJldmVudFByb3BhZ2F0aW9uKGZhbHNlKQotI2lmIFVTRShWOCkKLSAgICAsIG1fd29y
bGRDb250ZXh0SGFuZGxlKFVzZUN1cnJlbnRXb3JsZCkKLSNlbmRpZgorICAgICwgbV9yZXF1ZXN0
U3RhdGUoY29udGV4dCkKIHsKICAgICBpZiAobV90cmFuc2FjdGlvbikgewogICAgICAgICBtX3Ry
YW5zYWN0aW9uLT5yZWdpc3RlclJlcXVlc3QodGhpcyk7CkBAIC0yOTAsMTUgKzI4NSw4IEBAIHZv
aWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVy
ZmFjZT4gYmFja2VuZCwgUGFzc1JlCiAgICAgaWYgKCFzaG91bGRFbnF1ZXVlRXZlbnQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0jaWYgVVNFKFY4KQotICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVT
Y29wZTsKLSAgICB2ODo6TG9jYWw8djg6OkNvbnRleHQ+IGNvbnRleHQgPSB0b1Y4Q29udGV4dChz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fd29ybGRDb250ZXh0SGFuZGxlKTsKLSAgICBpZiAo
Y29udGV4dC5Jc0VtcHR5KCkpCi0gICAgICAgIENSQVNIKCk7Ci0gICAgdjg6OkNvbnRleHQ6OlNj
b3BlIGNvbnRleHRTY29wZShjb250ZXh0KTsKLSNlbmRpZgotCi0gICAgU2NyaXB0VmFsdWUgdmFs
dWUgPSBkZXNlcmlhbGl6ZUlEQlZhbHVlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgc2VyaWFs
aXplZFZhbHVlKTsKKyAgICBET01SZXF1ZXN0U3RhdGU6OlNjb3BlIHNjb3BlKG1fcmVxdWVzdFN0
YXRlKTsKKyAgICBTY3JpcHRWYWx1ZSB2YWx1ZSA9IGRlc2VyaWFsaXplSURCVmFsdWUoJm1fcmVx
dWVzdFN0YXRlLCBzZXJpYWxpemVkVmFsdWUpOwogICAgIEFTU0VSVChtX2N1cnNvclR5cGUgIT0g
SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6SW52YWxpZEN1cnNvclR5cGUpOwogICAgIFJlZlB0
cjxJREJDdXJzb3I+IGN1cnNvcjsKICAgICBpZiAobV9jdXJzb3JUeXBlID09IElEQkN1cnNvckJh
Y2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5Q3Vyc29yKQpAQCAtMzU0LDE1ICszNDIsOCBAQCB2b2lk
IElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
c2VyaWFsaXplZFNjcmlwdFZhbAogICAgIGlmICghc2hvdWxkRW5xdWV1ZUV2ZW50KCkpCiAgICAg
ICAgIHJldHVybjsKIAotI2lmIFVTRShWOCkKLSAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2Nv
cGU7Ci0gICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBjb250ZXh0ID0gdG9WOENvbnRleHQoc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX3dvcmxkQ29udGV4dEhhbmRsZSk7Ci0gICAgaWYgKGNv
bnRleHQuSXNFbXB0eSgpKQotICAgICAgICBDUkFTSCgpOwotICAgIHY4OjpDb250ZXh0OjpTY29w
ZSBjb250ZXh0U2NvcGUoY29udGV4dCk7Ci0jZW5kaWYKLQotICAgIFNjcmlwdFZhbHVlIHZhbHVl
ID0gZGVzZXJpYWxpemVJREJWYWx1ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSk7CisgICAgRE9NUmVxdWVzdFN0YXRlOjpTY29wZSBzY29wZShtX3JlcXVl
c3RTdGF0ZSk7CisgICAgU2NyaXB0VmFsdWUgdmFsdWUgPSBkZXNlcmlhbGl6ZUlEQlZhbHVlKCZt
X3JlcXVlc3RTdGF0ZSwgc2VyaWFsaXplZFNjcmlwdFZhbHVlKTsKICAgICBvblN1Y2Nlc3NJbnRl
cm5hbCh2YWx1ZSk7CiB9CiAKQEAgLTM4NSwxOCArMzY2LDExIEBAIHZvaWQgSURCUmVxdWVzdDo6
b25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBwcnBTZXJpYWxpemVk
U2NyaXB0CiAgICAgaWYgKCFzaG91bGRFbnF1ZXVlRXZlbnQoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0jaWYgVVNFKFY4KQotICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKLSAgICB2ODo6
TG9jYWw8djg6OkNvbnRleHQ+IGNvbnRleHQgPSB0b1Y4Q29udGV4dChzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCksIG1fd29ybGRDb250ZXh0SGFuZGxlKTsKLSAgICBpZiAoY29udGV4dC5Jc0VtcHR5
KCkpCi0gICAgICAgIENSQVNIKCk7Ci0gICAgdjg6OkNvbnRleHQ6OlNjb3BlIGNvbnRleHRTY29w
ZShjb250ZXh0KTsKLSNlbmRpZgotCiAjaWZuZGVmIE5ERUJVRwogICAgIEFTU0VSVChrZXlQYXRo
ID09IGVmZmVjdGl2ZU9iamVjdFN0b3JlKG1fc291cmNlKS0+a2V5UGF0aCgpKTsKICNlbmRpZgot
ICAgIFNjcmlwdFZhbHVlIHZhbHVlID0gZGVzZXJpYWxpemVJREJWYWx1ZShzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIHBycFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk7CisgICAgRE9NUmVxdWVzdFN0
YXRlOjpTY29wZSBzY29wZShtX3JlcXVlc3RTdGF0ZSk7CisgICAgU2NyaXB0VmFsdWUgdmFsdWUg
PSBkZXNlcmlhbGl6ZUlEQlZhbHVlKCZtX3JlcXVlc3RTdGF0ZSwgcHJwU2VyaWFsaXplZFNjcmlw
dFZhbHVlKTsKIAogICAgIFJlZlB0cjxJREJLZXk+IHByaW1hcnlLZXkgPSBwcnBQcmltYXJ5S2V5
OwogI2lmbmRlZiBOREVCVUcKQEAgLTQzNCwxNSArNDA4LDggQEAgdm9pZCBJREJSZXF1ZXN0Ojpv
blN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1h
cnlLZXkKICAgICBpZiAoIXNob3VsZEVucXVldWVFdmVudCgpKQogICAgICAgICByZXR1cm47CiAK
LSNpZiBVU0UoVjgpCi0gICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwotICAgIHY4OjpM
b2NhbDx2ODo6Q29udGV4dD4gY29udGV4dCA9IHRvVjhDb250ZXh0KHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSwgbV93b3JsZENvbnRleHRIYW5kbGUpOwotICAgIGlmIChjb250ZXh0LklzRW1wdHko
KSkKLSAgICAgICAgQ1JBU0goKTsKLSAgICB2ODo6Q29udGV4dDo6U2NvcGUgY29udGV4dFNjb3Bl
KGNvbnRleHQpOwotI2VuZGlmCi0KLSAgICBTY3JpcHRWYWx1ZSB2YWx1ZSA9IGRlc2VyaWFsaXpl
SURCVmFsdWUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzZXJpYWxpemVkVmFsdWUpOworICAg
IERPTVJlcXVlc3RTdGF0ZTo6U2NvcGUgc2NvcGUobV9yZXF1ZXN0U3RhdGUpOworICAgIFNjcmlw
dFZhbHVlIHZhbHVlID0gZGVzZXJpYWxpemVJREJWYWx1ZSgmbV9yZXF1ZXN0U3RhdGUsIHNlcmlh
bGl6ZWRWYWx1ZSk7CiAgICAgQVNTRVJUKG1fcGVuZGluZ0N1cnNvcik7CiAgICAgc2V0UmVzdWx0
Q3Vyc29yKG1fcGVuZGluZ0N1cnNvci5yZWxlYXNlKCksIGtleSwgcHJpbWFyeUtleSwgdmFsdWUp
OwogICAgIGVucXVldWVFdmVudChjcmVhdGVTdWNjZXNzRXZlbnQoKSk7CkBAIC00NjMsNiArNDMw
LDcgQEAgdm9pZCBJREJSZXF1ZXN0OjpzdG9wKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9j
b250ZXh0U3RvcHBlZCA9IHRydWU7CisgICAgbV9yZXF1ZXN0U3RhdGUuY2xlYXIoKTsKICAgICBp
ZiAobV9yZWFkeVN0YXRlID09IFBFTkRJTkcpCiAgICAgICAgIG1hcmtFYXJseURlYXRoKCk7CiB9
CkBAIC00ODgsMTMgKzQ1Niw3IEBAIGJvb2wgSURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNz
UmVmUHRyPEV2ZW50PiBldmVudCkKICAgICBBU1NFUlQoZXZlbnQtPnRhcmdldCgpID09IHRoaXMp
OwogICAgIEFTU0VSVF9XSVRIX01FU1NBR0UobV9yZWFkeVN0YXRlIDwgRE9ORSwgIldoZW4gZGlz
cGF0Y2hpbmcgZXZlbnQgJXMsIG1fcmVhZHlTdGF0ZSA8IERPTkUoJWQpLCB3YXMgJWQiLCBldmVu
dC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIERPTkUsIG1fcmVhZHlTdGF0ZSk7CiAK
LSNpZiBVU0UoVjgpCi0gICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwotICAgIHY4OjpM
b2NhbDx2ODo6Q29udGV4dD4gY29udGV4dCA9IHRvVjhDb250ZXh0KHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSwgbV93b3JsZENvbnRleHRIYW5kbGUpOwotICAgIGlmIChjb250ZXh0LklzRW1wdHko
KSkKLSAgICAgICAgQ1JBU0goKTsKLSAgICB2ODo6Q29udGV4dDo6U2NvcGUgY29udGV4dFNjb3Bl
KGNvbnRleHQpOwotI2VuZGlmCisgICAgRE9NUmVxdWVzdFN0YXRlOjpTY29wZSBzY29wZShtX3Jl
cXVlc3RTdGF0ZSk7CiAKICAgICBpZiAoZXZlbnQtPnR5cGUoKSAhPSBldmVudE5hbWVzKCkuYmxv
Y2tlZEV2ZW50KQogICAgICAgICBtX3JlYWR5U3RhdGUgPSBET05FOwpAQCAtNTIwLDcgKzQ4Miw3
IEBAIGJvb2wgSURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVu
dCkKICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuc3VjY2Vzc0V2ZW50KSB7
CiAgICAgICAgIGN1cnNvclRvTm90aWZ5ID0gZ2V0UmVzdWx0Q3Vyc29yKCk7CiAgICAgICAgIGlm
IChjdXJzb3JUb05vdGlmeSkgewotICAgICAgICAgICAgY3Vyc29yVG9Ob3RpZnktPnNldFZhbHVl
UmVhZHkoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX2N1cnNvcktleS5yZWxlYXNlKCksIG1f
Y3Vyc29yUHJpbWFyeUtleS5yZWxlYXNlKCksIG1fY3Vyc29yVmFsdWUpOworICAgICAgICAgICAg
Y3Vyc29yVG9Ob3RpZnktPnNldFZhbHVlUmVhZHkoJm1fcmVxdWVzdFN0YXRlLCBtX2N1cnNvcktl
eS5yZWxlYXNlKCksIG1fY3Vyc29yUHJpbWFyeUtleS5yZWxlYXNlKCksIG1fY3Vyc29yVmFsdWUp
OwogICAgICAgICAgICAgbV9jdXJzb3JWYWx1ZS5jbGVhcigpOwogICAgICAgICB9CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCmluZGV4IGEy
Mjg3MmRlYzQzNTlkYjI4NmNmZjgzYmY4YzNjMDYwYTYwNTc4NTMuLmE5Yzc0MDBhNzA1NTBjY2Q5
YzQ2MDA1OWFhMmMxNzU0ZWFjZWY2YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJSZXF1ZXN0LmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkFjdGl2
ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkRPTUVycm9yLmgiCisjaW5jbHVkZSAiRE9NUmVxdWVz
dFN0YXRlLmgiCiAjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgIkV2ZW50Lmgi
CiAjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgpAQCAtMTU5LDkgKzE2MCw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3ByZXZlbnRQcm9wYWdhdGlvbjsKIAogICAgIEV2ZW50VGFyZ2V0RGF0YSBt
X2V2ZW50VGFyZ2V0RGF0YTsKLSNpZiBVU0UoVjgpCi0gICAgV29ybGRDb250ZXh0SGFuZGxlIG1f
d29ybGRDb250ZXh0SGFuZGxlOwotI2VuZGlmCisgICAgRE9NUmVxdWVzdFN0YXRlIG1fcmVxdWVz
dFN0YXRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IDJiYjBmYzcwZmJiYTIzMmE0MTMxMDdjZWFlMThjYjU3ZGI2MTFhNmIuLjM5Yzk0NmExYjdhODBh
OTM2YTBiZTg4NDkzZmJjNjExMjc5MGZhYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTMxLDYgKzMx
LDcgQEAKICAgICAgICAgICAgICdhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCcs
CiAgICAgICAgICAgICAnYmluZGluZ3MvU2NyaXB0Q29udHJvbGxlckJhc2UuaCcsCiAgICAgICAg
ICAgICAnYmluZGluZ3MvanMvRE9NT2JqZWN0SGFzaFRhYmxlTWFwLmgnLAorICAgICAgICAgICAg
J2JpbmRpbmdzL2pzL0RPTVJlcXVlc3RTdGF0ZS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9q
cy9ET01XcmFwcGVyV29ybGQuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvR0NDb250cm9s
bGVyLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oJywKQEAgLTIx
OTksNiArMjIwMCw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvQmluZGluZ1N0YXRlLmgn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L0RPTURhdGFTdG9yZS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L0RPTURhdGFTdG9yZS5oJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92
OC9ET01SZXF1ZXN0U3RhdGUuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvRE9NV3JhcHBl
ck1hcC5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9ET01XcmFwcGVyV29ybGQuY3BwJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy92OC9ET01XcmFwcGVyV29ybGQuaCcsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01SZXF1ZXN0U3RhdGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTVJlcXVlc3RTdGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhNGJiMjYz
YmVmMTVhNmFjMTFlMWViZTdiZWQ2ZDYzZWQ0MjM2ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01SZXF1ZXN0U3RhdGUuaApAQCAtMCwwICsxLDcyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBET01SZXF1ZXN0U3RhdGVfaAorI2RlZmluZSBET01SZXF1ZXN0U3Rh
dGVfaAorCisjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVkZSAiV29ybGRDb250ZXh0SGFu
ZGxlLmgiCisjaW5jbHVkZSAidjguaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OworCitjbGFzcyBET01SZXF1ZXN0U3RhdGUgeworcHVibGlj
OgorICAgIGV4cGxpY2l0IERPTVJlcXVlc3RTdGF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KQorICAgICAgICA6IG1fd29ybGRDb250ZXh0SGFuZGxlKFVz
ZUN1cnJlbnRXb3JsZCkKKyAgICAgICAgLCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCBjbGVhcigpCisgICAg
eworICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQgPSAwOworICAgIH0KKworICAgIGNs
YXNzIFNjb3BlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIGV4cGxpY2l0IFNjb3BlKERPTVJlcXVl
c3RTdGF0ZSYgc3RhdGUpCisgICAgICAgICAgICA6IG1fY29udGV4dFNjb3BlKHN0YXRlLmNvbnRl
eHQoKSkKKyAgICAgICAgeworICAgICAgICB9CisgICAgcHJpdmF0ZToKKyAgICAgICAgdjg6Okhh
bmRsZVNjb3BlIG1faGFuZGxlU2NvcGU7CisgICAgICAgIHY4OjpDb250ZXh0OjpTY29wZSBtX2Nv
bnRleHRTY29wZTsKKyAgICB9OworCisgICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBjb250ZXh0
KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0b1Y4Q29udGV4dChtX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQsIG1fd29ybGRDb250ZXh0SGFuZGxlKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgV29y
bGRDb250ZXh0SGFuZGxlIG1fd29ybGRDb250ZXh0SGFuZGxlOworICAgIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK307CisKK30KKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxpdGllcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcApp
bmRleCAwMWU3ZTM3ZTEyMzU1ODk3YTAzZDhkM2Q1NjQ1NGIxMGFjMTkyMTBlLi4zNGQ3ZTQ1ODNj
NjA5ZmFlNDM5NjU2MzlkMDBlNTExMGY2MzcwM2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcApAQCAtMzUsNyArMzUsNiBAQAog
I2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5o
IgogI2luY2x1ZGUgIlY4SURCS2V5LmgiCi0jaW5jbHVkZSAiV29ybGRDb250ZXh0SGFuZGxlLmgi
CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAK
QEAgLTIxMyw3ICsyMTIsNyBAQCBQYXNzUmVmUHRyPElEQktleT4gY3JlYXRlSURCS2V5RnJvbVNj
cmlwdFZhbHVlQW5kS2V5UGF0aChjb25zdCBTY3JpcHRWYWx1ZSYgdmFsdQogICAgIHJldHVybiBj
cmVhdGVJREJLZXlGcm9tU2NyaXB0VmFsdWVBbmRLZXlQYXRoKHZhbHVlLCBrZXlQYXRoLnN0cmlu
ZygpKTsKIH0KIAotU2NyaXB0VmFsdWUgZGVzZXJpYWxpemVJREJWYWx1ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBzY3JpcHRDb250ZXh0LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4gcHJwVmFsdWUpCitTY3JpcHRWYWx1ZSBkZXNlcmlhbGl6ZUlEQlZhbHVlKERPTVJlcXVlc3RT
dGF0ZSogc3RhdGUsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBwcnBWYWx1ZSkK
IHsKICAgICBBU1NFUlQodjg6OkNvbnRleHQ6OkluQ29udGV4dCgpKTsKICAgICB2ODo6SGFuZGxl
U2NvcGUgaGFuZGxlU2NvcGU7CkBAIC0yNjUsNyArMjY0LDcgQEAgYm9vbCBjYW5JbmplY3RJREJL
ZXlJbnRvU2NyaXB0VmFsdWUoY29uc3QgU2NyaXB0VmFsdWUmIHNjcmlwdFZhbHVlLCBjb25zdCBJ
REJLZXkKICAgICByZXR1cm4gY2FuSW5qZWN0TnRoVmFsdWVPbktleVBhdGgodjhWYWx1ZSwga2V5
UGF0aEVsZW1lbnRzLCBrZXlQYXRoRWxlbWVudHMuc2l6ZSgpIC0gMSk7CiB9CiAKLVNjcmlwdFZh
bHVlIGlkYktleVRvU2NyaXB0VmFsdWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29u
dGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSkKK1NjcmlwdFZhbHVlIGlkYktleVRvU2NyaXB0
VmFsdWUoRE9NUmVxdWVzdFN0YXRlKiBzdGF0ZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSkKIHsK
ICAgICBBU1NFUlQodjg6OkNvbnRleHQ6OkluQ29udGV4dCgpKTsKICAgICB2ODo6SGFuZGxlU2Nv
cGUgaGFuZGxlU2NvcGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9J
REJCaW5kaW5nVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5k
aW5nVXRpbGl0aWVzLmgKaW5kZXggZjc2NjA1NmRmNjZkMmQ3MDhjZTJiYmMyYzlmZTZhNmNmMTRl
NWJiYS4uNDY1NTM5N2FjNWJhN2JkNDIzODQyMWVjYTA0NGJkMWIzZWMyODEyMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxpdGllcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMuaApAQCAtMzQs
NiArMzQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERPTVJlcXVlc3RTdGF0
ZTsKIGNsYXNzIElEQktleTsKIGNsYXNzIElEQktleVBhdGg7CiBjbGFzcyBTZXJpYWxpemVkU2Ny
aXB0VmFsdWU7CkBAIC00Myw4ICs0NCw4IEBAIFBhc3NSZWZQdHI8SURCS2V5PiBjcmVhdGVJREJL
ZXlGcm9tVmFsdWUodjg6OkhhbmRsZTx2ODo6VmFsdWU+KTsKIGJvb2wgaW5qZWN0SURCS2V5SW50
b1NjcmlwdFZhbHVlKFBhc3NSZWZQdHI8SURCS2V5PiwgU2NyaXB0VmFsdWUmLCBjb25zdCBJREJL
ZXlQYXRoJik7CiBQYXNzUmVmUHRyPElEQktleT4gY3JlYXRlSURCS2V5RnJvbVNjcmlwdFZhbHVl
QW5kS2V5UGF0aChjb25zdCBTY3JpcHRWYWx1ZSYsIGNvbnN0IElEQktleVBhdGgmKTsKIGJvb2wg
Y2FuSW5qZWN0SURCS2V5SW50b1NjcmlwdFZhbHVlKGNvbnN0IFNjcmlwdFZhbHVlJiwgY29uc3Qg
SURCS2V5UGF0aCYpOwotU2NyaXB0VmFsdWUgZGVzZXJpYWxpemVJREJWYWx1ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KTsKLVNjcmlw
dFZhbHVlIGlkYktleVRvU2NyaXB0VmFsdWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NS
ZWZQdHI8SURCS2V5Pik7CitTY3JpcHRWYWx1ZSBkZXNlcmlhbGl6ZUlEQlZhbHVlKERPTVJlcXVl
c3RTdGF0ZSosIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7CitTY3JpcHRWYWx1
ZSBpZGJLZXlUb1NjcmlwdFZhbHVlKERPTVJlcXVlc3RTdGF0ZSosIFBhc3NSZWZQdHI8SURCS2V5
Pik7CiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
S2V5LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQktleS5jcHAKaW5kZXgg
ZDYwYjVmNWMxYzliNDRhNzZmMzFkOTEzNmIwNDc4ODM5YWFhZmU2Yy4uNjA5ZDNiNGEwNjNjMmI0
N2ZmNWEzNThhZDkxZGQ1NDcxMzMxNGM5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCS2V5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJLZXkuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKIAotI2luY2x1ZGUgIklEQkJpbmRpbmdVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJJREJL
ZXkuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173975</attachid>
            <date>2012-11-13 13:38:40 -0800</date>
            <delta_ts>2012-11-14 10:50:32 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-102102-20121113133640.patch</filename>
            <type>text/plain</type>
            <size>15863</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0Mzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzAzMTc1OTVkYTg2ZDAy
ODExYWEzZjY3Y2M0OGM1OWYzYjk5ZWQxYi4uMWIwNTlkY2I2ZGVkYzM3MmM4Nzg3ZmQzOGVmNzA2
OTg5ZTkxMzRjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTExLTEzICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgRE9NUmVxdWVz
dFN0YXRlIHRvIG1haW50YWluIHdvcmxkL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQgc3RhdGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjEwMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgSW50cm9kdWNlIERPTVJl
cXVlc3RTdGF0ZSwgYW5kIGNvbnZlcnQgSW5kZXhlZERCIG92ZXIuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLCB0aGlzIGlzIGFuIGFic3RyYWN0aW9uIGxheWVyIGZvciBleGlzdGluZyBjb2RlLgor
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJl
cXVlc3Q6Om9uU3VjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpkaXNwYXRj
aEV2ZW50KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0Lmg6CisgICAg
ICAgIChJREJSZXF1ZXN0KToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvRE9NUmVxdWVzdFN0YXRlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChET01SZXF1ZXN0U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NUmVxdWVzdFN0
YXRlOjpET01SZXF1ZXN0U3RhdGUpOgorICAgICAgICAoU2NvcGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NUmVxdWVzdFN0YXRlOjpTY29wZTo6U2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9N
UmVxdWVzdFN0YXRlOjpzY29wZSk6CisKIDIwMTItMTEtMTIgIEh1YW5nIERvbmdzdW5nICA8bHV4
dGVsbGFAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgW1F0XSBSRUdSRVNTSU9OKDEzNDE0Mik6
IG92ZXJzY2FsZWQgdGlsZXMgaW4gcGl4ZWwgdGVzdCByZXN1bHRzIGFuZCBNaW5pQnJvd3Nlcgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKaW5kZXgg
YmViMDFjNDYyODJhM2UzZjg5YWQ0NjQxZDUxNGM0NWI4YmU5OTFmYy4uNzdmZGE4NGJjM2ZmZmFm
MjQwNDcxOTA2MDI2ODRiMzlkMmRjYmYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCkBAIC0yNTcsMTMgKzI1NywxMyBAQCB2b2lkIElEQkN1
cnNvcjo6Y2xvc2UoKQogICAgIH0KIH0KIAotdm9pZCBJREJDdXJzb3I6OnNldFZhbHVlUmVhZHko
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwg
UGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIFNjcmlwdFZhbHVlJiB2YWx1ZSkKK3ZvaWQg
SURCQ3Vyc29yOjpzZXRWYWx1ZVJlYWR5KERPTVJlcXVlc3RTdGF0ZSogc3RhdGUsIFBhc3NSZWZQ
dHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5LCBTY3JpcHRWYWx1
ZSYgdmFsdWUpCiB7CiAgICAgbV9jdXJyZW50S2V5ID0ga2V5OwotICAgIG1fY3VycmVudEtleVZh
bHVlID0gaWRiS2V5VG9TY3JpcHRWYWx1ZShjb250ZXh0LCBtX2N1cnJlbnRLZXkpOworICAgIG1f
Y3VycmVudEtleVZhbHVlID0gaWRiS2V5VG9TY3JpcHRWYWx1ZShzdGF0ZSwgbV9jdXJyZW50S2V5
KTsKIAogICAgIG1fY3VycmVudFByaW1hcnlLZXkgPSBwcmltYXJ5S2V5OwotICAgIG1fY3VycmVu
dFByaW1hcnlLZXlWYWx1ZSA9IGlkYktleVRvU2NyaXB0VmFsdWUoY29udGV4dCwgbV9jdXJyZW50
UHJpbWFyeUtleSk7CisgICAgbV9jdXJyZW50UHJpbWFyeUtleVZhbHVlID0gaWRiS2V5VG9TY3Jp
cHRWYWx1ZShzdGF0ZSwgbV9jdXJyZW50UHJpbWFyeUtleSk7CiAKICAgICBpZiAoIWlzS2V5Q3Vy
c29yKCkpIHsKICAgICAgICAgUmVmUHRyPElEQk9iamVjdFN0b3JlPiBvYmplY3RTdG9yZSA9IGVm
ZmVjdGl2ZU9iamVjdFN0b3JlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJDdXJzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkN1cnNvci5oCmluZGV4IGRmNGIxY2ViMzU0NjkzNmFiNjMxMWQzYWZlOWMxMDhjYjkzM2M3
NjMuLmY1ZDZjN2Y5OWFkNDA0NjlmNjViMjc4NmY4ZmJjOTk2ZDI1ODY5MjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCkBAIC0zOCw2ICszOCw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRE9NUmVxdWVzdFN0YXRlOwogY2xhc3Mg
SURCQW55OwogY2xhc3MgSURCQ2FsbGJhY2tzOwogY2xhc3MgSURCQ3Vyc29yQmFja2VuZEludGVy
ZmFjZTsKQEAgLTg0LDcgKzg1LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBwb3N0U3VjY2Vzc0hh
bmRsZXJDYWxsYmFjaygpOwogICAgIHZvaWQgY2xvc2UoKTsKLSAgICB2b2lkIHNldFZhbHVlUmVh
ZHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0
cjxJREJLZXk+IHByaW1hcnlLZXksIFNjcmlwdFZhbHVlJik7CisgICAgdm9pZCBzZXRWYWx1ZVJl
YWR5KERPTVJlcXVlc3RTdGF0ZSosIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJL
ZXk+IHByaW1hcnlLZXksIFNjcmlwdFZhbHVlJik7CiAgICAgUGFzc1JlZlB0cjxJREJLZXk+IGlk
YlByaW1hcnlLZXkoKSB7IHJldHVybiBtX2N1cnJlbnRQcmltYXJ5S2V5OyB9CiAKIHByb3RlY3Rl
ZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVl
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAK
aW5kZXggY2U4YWFhMzcyZDNjMDFiZmIxOTBjZTcyZjgwNWIzMjk5ZTg1MDhjNC4uNjlmZGI5YmY1
MjM3MDhhZDM3ODlkMTUwZGVhMjg0NGExZTFjMzEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAgLTQyLDkgKzQyLDYgQEAKICNpbmNs
dWRlICJJREJUcmFjaW5nLmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb24uaCIKICNpbmNsdWRl
ICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaWYgVVNFKFY4KQotI2luY2x1ZGUgIlY4Qmlu
ZGluZy5oIgotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzksOSArNzYsNyBA
QCBJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IFBhc3NSZWZQdHI8SURCQW55PiBzb3VyYwogICAgICwgbV9wZW5kaW5nQ3Vyc29yKDApCiAgICAg
LCBtX2RpZEZpcmVVcGdyYWRlTmVlZGVkRXZlbnQoZmFsc2UpCiAgICAgLCBtX3ByZXZlbnRQcm9w
YWdhdGlvbihmYWxzZSkKLSNpZiBVU0UoVjgpCi0gICAgLCBtX3dvcmxkQ29udGV4dEhhbmRsZShV
c2VDdXJyZW50V29ybGQpCi0jZW5kaWYKKyAgICAsIG1fcmVxdWVzdFN0YXRlKGNvbnRleHQpCiB7
CiAgICAgaWYgKG1fdHJhbnNhY3Rpb24pIHsKICAgICAgICAgbV90cmFuc2FjdGlvbi0+cmVnaXN0
ZXJSZXF1ZXN0KHRoaXMpOwpAQCAtMjkwLDE1ICsyODUsOCBAQCB2b2lkIElEQlJlcXVlc3Q6Om9u
U3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQsIFBh
c3NSZQogICAgIGlmICghc2hvdWxkRW5xdWV1ZUV2ZW50KCkpCiAgICAgICAgIHJldHVybjsKIAot
I2lmIFVTRShWOCkKLSAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7Ci0gICAgdjg6Okxv
Y2FsPHY4OjpDb250ZXh0PiBjb250ZXh0ID0gdG9WOENvbnRleHQoc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLCBtX3dvcmxkQ29udGV4dEhhbmRsZSk7Ci0gICAgaWYgKGNvbnRleHQuSXNFbXB0eSgp
KQotICAgICAgICBDUkFTSCgpOwotICAgIHY4OjpDb250ZXh0OjpTY29wZSBjb250ZXh0U2NvcGUo
Y29udGV4dCk7Ci0jZW5kaWYKLQotICAgIFNjcmlwdFZhbHVlIHZhbHVlID0gZGVzZXJpYWxpemVJ
REJWYWx1ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHNlcmlhbGl6ZWRWYWx1ZSk7CisgICAg
RE9NUmVxdWVzdFN0YXRlOjpTY29wZSBzY29wZShtX3JlcXVlc3RTdGF0ZSk7CisgICAgU2NyaXB0
VmFsdWUgdmFsdWUgPSBkZXNlcmlhbGl6ZUlEQlZhbHVlKCZtX3JlcXVlc3RTdGF0ZSwgc2VyaWFs
aXplZFZhbHVlKTsKICAgICBBU1NFUlQobV9jdXJzb3JUeXBlICE9IElEQkN1cnNvckJhY2tlbmRJ
bnRlcmZhY2U6OkludmFsaWRDdXJzb3JUeXBlKTsKICAgICBSZWZQdHI8SURCQ3Vyc29yPiBjdXJz
b3I7CiAgICAgaWYgKG1fY3Vyc29yVHlwZSA9PSBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOjpJ
bmRleEtleUN1cnNvcikKQEAgLTM1NCwxNSArMzQyLDggQEAgdm9pZCBJREJSZXF1ZXN0OjpvblN1
Y2Nlc3MoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNlcmlhbGl6ZWRTY3JpcHRW
YWwKICAgICBpZiAoIXNob3VsZEVucXVldWVFdmVudCgpKQogICAgICAgICByZXR1cm47CiAKLSNp
ZiBVU0UoVjgpCi0gICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwotICAgIHY4OjpMb2Nh
bDx2ODo6Q29udGV4dD4gY29udGV4dCA9IHRvVjhDb250ZXh0KHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSwgbV93b3JsZENvbnRleHRIYW5kbGUpOwotICAgIGlmIChjb250ZXh0LklzRW1wdHkoKSkK
LSAgICAgICAgQ1JBU0goKTsKLSAgICB2ODo6Q29udGV4dDo6U2NvcGUgY29udGV4dFNjb3BlKGNv
bnRleHQpOwotI2VuZGlmCi0KLSAgICBTY3JpcHRWYWx1ZSB2YWx1ZSA9IGRlc2VyaWFsaXplSURC
VmFsdWUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzZXJpYWxpemVkU2NyaXB0VmFsdWUpOwor
ICAgIERPTVJlcXVlc3RTdGF0ZTo6U2NvcGUgc2NvcGUobV9yZXF1ZXN0U3RhdGUpOworICAgIFNj
cmlwdFZhbHVlIHZhbHVlID0gZGVzZXJpYWxpemVJREJWYWx1ZSgmbV9yZXF1ZXN0U3RhdGUsIHNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSk7CiAgICAgb25TdWNjZXNzSW50ZXJuYWwodmFsdWUpOwogfQog
CkBAIC0zODUsMTggKzM2NiwxMSBAQCB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcHJwU2VyaWFsaXplZFNjcmlwdAogICAgIGlmICgh
c2hvdWxkRW5xdWV1ZUV2ZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotI2lmIFVTRShWOCkKLSAg
ICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7Ci0gICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0
PiBjb250ZXh0ID0gdG9WOENvbnRleHQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX3dvcmxk
Q29udGV4dEhhbmRsZSk7Ci0gICAgaWYgKGNvbnRleHQuSXNFbXB0eSgpKQotICAgICAgICBDUkFT
SCgpOwotICAgIHY4OjpDb250ZXh0OjpTY29wZSBjb250ZXh0U2NvcGUoY29udGV4dCk7Ci0jZW5k
aWYKLQogI2lmbmRlZiBOREVCVUcKICAgICBBU1NFUlQoa2V5UGF0aCA9PSBlZmZlY3RpdmVPYmpl
Y3RTdG9yZShtX3NvdXJjZSktPmtleVBhdGgoKSk7CiAjZW5kaWYKLSAgICBTY3JpcHRWYWx1ZSB2
YWx1ZSA9IGRlc2VyaWFsaXplSURCVmFsdWUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBwcnBT
ZXJpYWxpemVkU2NyaXB0VmFsdWUpOworICAgIERPTVJlcXVlc3RTdGF0ZTo6U2NvcGUgc2NvcGUo
bV9yZXF1ZXN0U3RhdGUpOworICAgIFNjcmlwdFZhbHVlIHZhbHVlID0gZGVzZXJpYWxpemVJREJW
YWx1ZSgmbV9yZXF1ZXN0U3RhdGUsIHBycFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk7CiAKICAgICBS
ZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5ID0gcHJwUHJpbWFyeUtleTsKICNpZm5kZWYgTkRFQlVH
CkBAIC00MzQsMTUgKzQwOCw4IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQ
dHI8SURCS2V5PiBrZXksIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5CiAgICAgaWYgKCFz
aG91bGRFbnF1ZXVlRXZlbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgVVNFKFY4KQotICAg
IHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKLSAgICB2ODo6TG9jYWw8djg6OkNvbnRleHQ+
IGNvbnRleHQgPSB0b1Y4Q29udGV4dChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fd29ybGRD
b250ZXh0SGFuZGxlKTsKLSAgICBpZiAoY29udGV4dC5Jc0VtcHR5KCkpCi0gICAgICAgIENSQVNI
KCk7Ci0gICAgdjg6OkNvbnRleHQ6OlNjb3BlIGNvbnRleHRTY29wZShjb250ZXh0KTsKLSNlbmRp
ZgotCi0gICAgU2NyaXB0VmFsdWUgdmFsdWUgPSBkZXNlcmlhbGl6ZUlEQlZhbHVlKHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSwgc2VyaWFsaXplZFZhbHVlKTsKKyAgICBET01SZXF1ZXN0U3RhdGU6
OlNjb3BlIHNjb3BlKG1fcmVxdWVzdFN0YXRlKTsKKyAgICBTY3JpcHRWYWx1ZSB2YWx1ZSA9IGRl
c2VyaWFsaXplSURCVmFsdWUoJm1fcmVxdWVzdFN0YXRlLCBzZXJpYWxpemVkVmFsdWUpOwogICAg
IEFTU0VSVChtX3BlbmRpbmdDdXJzb3IpOwogICAgIHNldFJlc3VsdEN1cnNvcihtX3BlbmRpbmdD
dXJzb3IucmVsZWFzZSgpLCBrZXksIHByaW1hcnlLZXksIHZhbHVlKTsKICAgICBlbnF1ZXVlRXZl
bnQoY3JlYXRlU3VjY2Vzc0V2ZW50KCkpOwpAQCAtNDYzLDYgKzQzMCw3IEBAIHZvaWQgSURCUmVx
dWVzdDo6c3RvcCgpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fY29udGV4dFN0b3BwZWQgPSB0
cnVlOworICAgIG1fcmVxdWVzdFN0YXRlLmNsZWFyKCk7CiAgICAgaWYgKG1fcmVhZHlTdGF0ZSA9
PSBQRU5ESU5HKQogICAgICAgICBtYXJrRWFybHlEZWF0aCgpOwogfQpAQCAtNDg4LDEzICs0NTYs
NyBAQCBib29sIElEQlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZl
bnQpCiAgICAgQVNTRVJUKGV2ZW50LT50YXJnZXQoKSA9PSB0aGlzKTsKICAgICBBU1NFUlRfV0lU
SF9NRVNTQUdFKG1fcmVhZHlTdGF0ZSA8IERPTkUsICJXaGVuIGRpc3BhdGNoaW5nIGV2ZW50ICVz
LCBtX3JlYWR5U3RhdGUgPCBET05FKCVkKSwgd2FzICVkIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpLCBET05FLCBtX3JlYWR5U3RhdGUpOwogCi0jaWYgVVNFKFY4KQotICAg
IHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKLSAgICB2ODo6TG9jYWw8djg6OkNvbnRleHQ+
IGNvbnRleHQgPSB0b1Y4Q29udGV4dChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fd29ybGRD
b250ZXh0SGFuZGxlKTsKLSAgICBpZiAoY29udGV4dC5Jc0VtcHR5KCkpCi0gICAgICAgIENSQVNI
KCk7Ci0gICAgdjg6OkNvbnRleHQ6OlNjb3BlIGNvbnRleHRTY29wZShjb250ZXh0KTsKLSNlbmRp
ZgorICAgIERPTVJlcXVlc3RTdGF0ZTo6U2NvcGUgc2NvcGUobV9yZXF1ZXN0U3RhdGUpOwogCiAg
ICAgaWYgKGV2ZW50LT50eXBlKCkgIT0gZXZlbnROYW1lcygpLmJsb2NrZWRFdmVudCkKICAgICAg
ICAgbV9yZWFkeVN0YXRlID0gRE9ORTsKQEAgLTUyMCw3ICs0ODIsNyBAQCBib29sIElEQlJlcXVl
c3Q6OmRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgaWYgKGV2ZW50
LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLnN1Y2Nlc3NFdmVudCkgewogICAgICAgICBjdXJzb3JU
b05vdGlmeSA9IGdldFJlc3VsdEN1cnNvcigpOwogICAgICAgICBpZiAoY3Vyc29yVG9Ob3RpZnkp
IHsKLSAgICAgICAgICAgIGN1cnNvclRvTm90aWZ5LT5zZXRWYWx1ZVJlYWR5KHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSwgbV9jdXJzb3JLZXkucmVsZWFzZSgpLCBtX2N1cnNvclByaW1hcnlLZXku
cmVsZWFzZSgpLCBtX2N1cnNvclZhbHVlKTsKKyAgICAgICAgICAgIGN1cnNvclRvTm90aWZ5LT5z
ZXRWYWx1ZVJlYWR5KCZtX3JlcXVlc3RTdGF0ZSwgbV9jdXJzb3JLZXkucmVsZWFzZSgpLCBtX2N1
cnNvclByaW1hcnlLZXkucmVsZWFzZSgpLCBtX2N1cnNvclZhbHVlKTsKICAgICAgICAgICAgIG1f
Y3Vyc29yVmFsdWUuY2xlYXIoKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAppbmRleCBhMjI4NzJkZWM0MzU5ZGIyODZj
ZmY4M2JmOGMzYzA2MGE2MDU3ODUzLi5hOWM3NDAwYTcwNTUwY2NkOWM0NjAwNTlhYTJjMTc1NGVh
Y2VmNmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJS
ZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVz
dC5oCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNp
bmNsdWRlICJET01FcnJvci5oIgorI2luY2x1ZGUgIkRPTVJlcXVlc3RTdGF0ZS5oIgogI2luY2x1
ZGUgIkRPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50
TGlzdGVuZXIuaCIKQEAgLTE1OSw5ICsxNjAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wcmV2
ZW50UHJvcGFnYXRpb247CiAKICAgICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRhcmdldERhdGE7
Ci0jaWYgVVNFKFY4KQotICAgIFdvcmxkQ29udGV4dEhhbmRsZSBtX3dvcmxkQ29udGV4dEhhbmRs
ZTsKLSNlbmRpZgorICAgIERPTVJlcXVlc3RTdGF0ZSBtX3JlcXVlc3RTdGF0ZTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAyYmIwZmM3MGZiYmEyMzJh
NDEzMTA3Y2VhZTE4Y2I1N2RiNjExYTZiLi4zOWM5NDZhMWI3YTgwYTkzNmEwYmU4ODQ5M2ZiYzYx
MTI3OTBmYWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zMSw2ICszMSw3IEBACiAgICAgICAgICAg
ICAnYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL1NjcmlwdENvbnRyb2xsZXJCYXNlLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pz
L0RPTU9iamVjdEhhc2hUYWJsZU1hcC5oJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9ET01S
ZXF1ZXN0U3RhdGUuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvRE9NV3JhcHBlcldvcmxk
LmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5oJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaCcsCkBAIC0yMTk5LDYgKzIyMDAsNyBAQAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L0JpbmRpbmdTdGF0ZS5oJywKICAgICAgICAgICAgICdi
aW5kaW5ncy92OC9ET01EYXRhU3RvcmUuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9E
T01EYXRhU3RvcmUuaCcsCisgICAgICAgICAgICAnYmluZGluZ3MvdjgvRE9NUmVxdWVzdFN0YXRl
LmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L0RPTVdyYXBwZXJNYXAuaCcsCiAgICAgICAg
ICAgICAnYmluZGluZ3MvdjgvRE9NV3JhcHBlcldvcmxkLmNwcCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvdjgvRE9NV3JhcHBlcldvcmxkLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvRE9NUmVxdWVzdFN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9ET01SZXF1ZXN0U3RhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYTRiYjI2M2JlZjE1YTZhYzExZTFlYmU3
YmVkNmQ2M2VkNDIzNmU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvRE9NUmVxdWVzdFN0YXRlLmgKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
RE9NUmVxdWVzdFN0YXRlX2gKKyNkZWZpbmUgRE9NUmVxdWVzdFN0YXRlX2gKKworI2luY2x1ZGUg
IlY4QmluZGluZy5oIgorI2luY2x1ZGUgIldvcmxkQ29udGV4dEhhbmRsZS5oIgorI2luY2x1ZGUg
InY4LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDsKKworY2xhc3MgRE9NUmVxdWVzdFN0YXRlIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBE
T01SZXF1ZXN0U3RhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCkKKyAgICAgICAgOiBtX3dvcmxkQ29udGV4dEhhbmRsZShVc2VDdXJyZW50V29ybGQpCisg
ICAgICAgICwgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQp
CisgICAgeworICAgIH0KKworICAgIHZvaWQgY2xlYXIoKQorICAgIHsKKyAgICAgICAgbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0ID0gMDsKKyAgICB9CisKKyAgICBjbGFzcyBTY29wZSB7CisgICAg
cHVibGljOgorICAgICAgICBleHBsaWNpdCBTY29wZShET01SZXF1ZXN0U3RhdGUmIHN0YXRlKQor
ICAgICAgICAgICAgOiBtX2NvbnRleHRTY29wZShzdGF0ZS5jb250ZXh0KCkpCisgICAgICAgIHsK
KyAgICAgICAgfQorICAgIHByaXZhdGU6CisgICAgICAgIHY4OjpIYW5kbGVTY29wZSBtX2hhbmRs
ZVNjb3BlOworICAgICAgICB2ODo6Q29udGV4dDo6U2NvcGUgbV9jb250ZXh0U2NvcGU7CisgICAg
fTsKKworICAgIHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gY29udGV4dCgpCisgICAgeworICAgICAg
ICByZXR1cm4gdG9WOENvbnRleHQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LCBtX3dvcmxkQ29u
dGV4dEhhbmRsZSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFdvcmxkQ29udGV4dEhhbmRsZSBt
X3dvcmxkQ29udGV4dEhhbmRsZTsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQ7Cit9OworCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKaW5kZXggMDFlN2UzN2UxMjM1
NTg5N2EwM2Q4ZDNkNTY0NTRiMTBhYzE5MjEwZS4uMzRkN2U0NTgzYzYwOWZhZTQzOTY1NjM5ZDAw
ZTUxMTBmNjM3MDNmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSURC
QmluZGluZ1V0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSURC
QmluZGluZ1V0aWxpdGllcy5jcHAKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlICJTZXJpYWxp
emVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJWOElE
QktleS5oIgotI2luY2x1ZGUgIldvcmxkQ29udGV4dEhhbmRsZS5oIgogI2luY2x1ZGUgPHd0Zi9N
YXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC0yMTMsNyArMjEyLDcg
QEAgUGFzc1JlZlB0cjxJREJLZXk+IGNyZWF0ZUlEQktleUZyb21TY3JpcHRWYWx1ZUFuZEtleVBh
dGgoY29uc3QgU2NyaXB0VmFsdWUmIHZhbHUKICAgICByZXR1cm4gY3JlYXRlSURCS2V5RnJvbVNj
cmlwdFZhbHVlQW5kS2V5UGF0aCh2YWx1ZSwga2V5UGF0aC5zdHJpbmcoKSk7CiB9CiAKLVNjcmlw
dFZhbHVlIGRlc2VyaWFsaXplSURCVmFsdWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0
Q29udGV4dCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHBycFZhbHVlKQorU2Ny
aXB0VmFsdWUgZGVzZXJpYWxpemVJREJWYWx1ZShET01SZXF1ZXN0U3RhdGUqIHN0YXRlLCBQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcHJwVmFsdWUpCiB7CiAgICAgQVNTRVJUKHY4
OjpDb250ZXh0OjpJbkNvbnRleHQoKSk7CiAgICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3Bl
OwpAQCAtMjY1LDcgKzI2NCw3IEBAIGJvb2wgY2FuSW5qZWN0SURCS2V5SW50b1NjcmlwdFZhbHVl
KGNvbnN0IFNjcmlwdFZhbHVlJiBzY3JpcHRWYWx1ZSwgY29uc3QgSURCS2V5CiAgICAgcmV0dXJu
IGNhbkluamVjdE50aFZhbHVlT25LZXlQYXRoKHY4VmFsdWUsIGtleVBhdGhFbGVtZW50cywga2V5
UGF0aEVsZW1lbnRzLnNpemUoKSAtIDEpOwogfQogCi1TY3JpcHRWYWx1ZSBpZGJLZXlUb1Njcmlw
dFZhbHVlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQsIFBhc3NSZWZQdHI8
SURCS2V5PiBrZXkpCitTY3JpcHRWYWx1ZSBpZGJLZXlUb1NjcmlwdFZhbHVlKERPTVJlcXVlc3RT
dGF0ZSogc3RhdGUsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXkpCiB7CiAgICAgQVNTRVJUKHY4OjpD
b250ZXh0OjpJbkNvbnRleHQoKSk7CiAgICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxpdGll
cy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxpdGllcy5oCmlu
ZGV4IGY3NjYwNTZkZjY2ZDJkNzA4Y2UyYmJjMmM5ZmU2YTZjZjE0ZTViYmEuLjQ2NTUzOTdhYzVi
YTdiZDQyMzg0MjFlY2EwNDRiZDFiM2VjMjgxMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmgKQEAgLTM0LDYgKzM0LDcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBET01SZXF1ZXN0U3RhdGU7CiBjbGFzcyBJREJLZXk7
CiBjbGFzcyBJREJLZXlQYXRoOwogY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwpAQCAtNDMs
OCArNDQsOCBAQCBQYXNzUmVmUHRyPElEQktleT4gY3JlYXRlSURCS2V5RnJvbVZhbHVlKHY4OjpI
YW5kbGU8djg6OlZhbHVlPik7CiBib29sIGluamVjdElEQktleUludG9TY3JpcHRWYWx1ZShQYXNz
UmVmUHRyPElEQktleT4sIFNjcmlwdFZhbHVlJiwgY29uc3QgSURCS2V5UGF0aCYpOwogUGFzc1Jl
ZlB0cjxJREJLZXk+IGNyZWF0ZUlEQktleUZyb21TY3JpcHRWYWx1ZUFuZEtleVBhdGgoY29uc3Qg
U2NyaXB0VmFsdWUmLCBjb25zdCBJREJLZXlQYXRoJik7CiBib29sIGNhbkluamVjdElEQktleUlu
dG9TY3JpcHRWYWx1ZShjb25zdCBTY3JpcHRWYWx1ZSYsIGNvbnN0IElEQktleVBhdGgmKTsKLVNj
cmlwdFZhbHVlIGRlc2VyaWFsaXplSURCVmFsdWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7Ci1TY3JpcHRWYWx1ZSBpZGJLZXlUb1Nj
cmlwdFZhbHVlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktleT4pOwor
U2NyaXB0VmFsdWUgZGVzZXJpYWxpemVJREJWYWx1ZShET01SZXF1ZXN0U3RhdGUqLCBQYXNzUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOworU2NyaXB0VmFsdWUgaWRiS2V5VG9TY3JpcHRW
YWx1ZShET01SZXF1ZXN0U3RhdGUqLCBQYXNzUmVmUHRyPElEQktleT4pOwogCiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQktleS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJLZXkuY3BwCmluZGV4IGQ2MGI1ZjVjMWM5YjQ0YTc2
ZjMxZDkxMzZiMDQ3ODgzOWFhYWZlNmMuLjYwOWQzYjRhMDYzYzJiNDdmZjVhMzU4YWQ5MWRkNTQ3
MTMzMTRjOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQktl
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCS2V5LmNwcApAQCAt
MzAsNyArMzAsNiBAQAogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKLSNpbmNsdWRl
ICJJREJCaW5kaW5nVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiSURCS2V5LmgiCiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174202</attachid>
            <date>2012-11-14 10:50:35 -0800</date>
            <delta_ts>2012-11-14 11:17:09 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-102102-20121114104834.patch</filename>
            <type>text/plain</type>
            <size>15496</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzFjZmUzNjQ0MjYwNzY1
NzA1MGUxYzgwNGZlNTU3NTQwYzc0YzIyMC4uOTQxOGU5MWMxZDNkMjEwM2YyNzQxMWVhMDUxYTU4
OWRlODVjMWM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTExLTE0ICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgRE9NUmVxdWVz
dFN0YXRlIHRvIG1haW50YWluIHdvcmxkL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQgc3RhdGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjEwMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgSW50cm9kdWNlIERPTVJl
cXVlc3RTdGF0ZSwgYW5kIGNvbnZlcnQgSW5kZXhlZERCIG92ZXIuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLCB0aGlzIGlzIGFuIGFic3RyYWN0aW9uIGxheWVyIGZvciBleGlzdGluZyBjb2RlLgor
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJl
cXVlc3Q6Om9uU3VjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpkaXNwYXRj
aEV2ZW50KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0Lmg6CisgICAg
ICAgIChJREJSZXF1ZXN0KToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvRE9NUmVxdWVzdFN0YXRlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChET01SZXF1ZXN0U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NUmVxdWVzdFN0
YXRlOjpET01SZXF1ZXN0U3RhdGUpOgorICAgICAgICAoU2NvcGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NUmVxdWVzdFN0YXRlOjpTY29wZTo6U2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9N
UmVxdWVzdFN0YXRlOjpzY29wZSk6CisKIDIwMTItMTEtMTIgIFRpbW90aHkgSGF0Y2hlciAgPHRp
bW90aHlAYXBwbGUuY29tPgogCiAgICAgICAgIEV4cG9zZSBJbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsOjpzZXRBdHRhY2hlZFdpbmRvdyBhcyBwdWJsaWMuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAppbmRleCBiZWIwMWM0NjI4MmEzZTNmODlh
ZDQ2NDFkNTE0YzQ1YjhiZTk5MWZjLi43N2ZkYTg0YmMzZmZmYWYyNDA0NzE5MDYwMjY4NGIzOWQy
ZGNiZjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJD
dXJzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNv
ci5jcHAKQEAgLTI1NywxMyArMjU3LDEzIEBAIHZvaWQgSURCQ3Vyc29yOjpjbG9zZSgpCiAgICAg
fQogfQogCi12b2lkIElEQkN1cnNvcjo6c2V0VmFsdWVSZWFkeShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQktleT4g
cHJpbWFyeUtleSwgU2NyaXB0VmFsdWUmIHZhbHVlKQordm9pZCBJREJDdXJzb3I6OnNldFZhbHVl
UmVhZHkoRE9NUmVxdWVzdFN0YXRlKiBzdGF0ZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFz
c1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIFNjcmlwdFZhbHVlJiB2YWx1ZSkKIHsKICAgICBt
X2N1cnJlbnRLZXkgPSBrZXk7Ci0gICAgbV9jdXJyZW50S2V5VmFsdWUgPSBpZGJLZXlUb1Njcmlw
dFZhbHVlKGNvbnRleHQsIG1fY3VycmVudEtleSk7CisgICAgbV9jdXJyZW50S2V5VmFsdWUgPSBp
ZGJLZXlUb1NjcmlwdFZhbHVlKHN0YXRlLCBtX2N1cnJlbnRLZXkpOwogCiAgICAgbV9jdXJyZW50
UHJpbWFyeUtleSA9IHByaW1hcnlLZXk7Ci0gICAgbV9jdXJyZW50UHJpbWFyeUtleVZhbHVlID0g
aWRiS2V5VG9TY3JpcHRWYWx1ZShjb250ZXh0LCBtX2N1cnJlbnRQcmltYXJ5S2V5KTsKKyAgICBt
X2N1cnJlbnRQcmltYXJ5S2V5VmFsdWUgPSBpZGJLZXlUb1NjcmlwdFZhbHVlKHN0YXRlLCBtX2N1
cnJlbnRQcmltYXJ5S2V5KTsKIAogICAgIGlmICghaXNLZXlDdXJzb3IoKSkgewogICAgICAgICBS
ZWZQdHI8SURCT2JqZWN0U3RvcmU+IG9iamVjdFN0b3JlID0gZWZmZWN0aXZlT2JqZWN0U3RvcmUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNv
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmgKaW5kZXgg
ZGY0YjFjZWIzNTQ2OTM2YWI2MzExZDNhZmU5YzEwOGNiOTMzYzc2My4uZjVkNmM3Zjk5YWQ0MDQ2
OWY2NWIyNzg2ZjhmYmM5OTZkMjU4NjkyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCQ3Vyc29yLmgKQEAgLTM4LDYgKzM4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitjbGFzcyBET01SZXF1ZXN0U3RhdGU7CiBjbGFzcyBJREJBbnk7CiBjbGFzcyBJREJD
YWxsYmFja3M7CiBjbGFzcyBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOwpAQCAtODQsNyArODUs
NyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHBvc3RTdWNjZXNzSGFuZGxlckNhbGxiYWNrKCk7CiAg
ICAgdm9pZCBjbG9zZSgpOwotICAgIHZvaWQgc2V0VmFsdWVSZWFkeShTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtl
eSwgU2NyaXB0VmFsdWUmKTsKKyAgICB2b2lkIHNldFZhbHVlUmVhZHkoRE9NUmVxdWVzdFN0YXRl
KiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwgU2Ny
aXB0VmFsdWUmKTsKICAgICBQYXNzUmVmUHRyPElEQktleT4gaWRiUHJpbWFyeUtleSgpIHsgcmV0
dXJuIG1fY3VycmVudFByaW1hcnlLZXk7IH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAppbmRleCBjZThhYWEzNzJkM2Mw
MWJmYjE5MGNlNzJmODA1YjMyOTllODUwOGM0Li42OWZkYjliZjUyMzcwOGFkMzc4OWQxNTBkZWEy
ODQ0YTFlMWMzMTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJSZXF1ZXN0LmNwcApAQCAtNDIsOSArNDIsNiBAQAogI2luY2x1ZGUgIklEQlRyYWNpbmcuaCIK
ICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbi5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaCIKLSNpZiBVU0UoVjgpCi0jaW5jbHVkZSAiVjhCaW5kaW5nLmgiCi0jZW5kaWYKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03OSw5ICs3Niw3IEBAIElEQlJlcXVlc3Q6OklEQlJl
cXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJBbnk+
IHNvdXJjCiAgICAgLCBtX3BlbmRpbmdDdXJzb3IoMCkKICAgICAsIG1fZGlkRmlyZVVwZ3JhZGVO
ZWVkZWRFdmVudChmYWxzZSkKICAgICAsIG1fcHJldmVudFByb3BhZ2F0aW9uKGZhbHNlKQotI2lm
IFVTRShWOCkKLSAgICAsIG1fd29ybGRDb250ZXh0SGFuZGxlKFVzZUN1cnJlbnRXb3JsZCkKLSNl
bmRpZgorICAgICwgbV9yZXF1ZXN0U3RhdGUoY29udGV4dCkKIHsKICAgICBpZiAobV90cmFuc2Fj
dGlvbikgewogICAgICAgICBtX3RyYW5zYWN0aW9uLT5yZWdpc3RlclJlcXVlc3QodGhpcyk7CkBA
IC0yOTAsMTUgKzI4NSw4IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8
SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCwgUGFzc1JlCiAgICAgaWYgKCFzaG91
bGRFbnF1ZXVlRXZlbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgVVNFKFY4KQotICAgIHY4
OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKLSAgICB2ODo6TG9jYWw8djg6OkNvbnRleHQ+IGNv
bnRleHQgPSB0b1Y4Q29udGV4dChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fd29ybGRDb250
ZXh0SGFuZGxlKTsKLSAgICBpZiAoY29udGV4dC5Jc0VtcHR5KCkpCi0gICAgICAgIENSQVNIKCk7
Ci0gICAgdjg6OkNvbnRleHQ6OlNjb3BlIGNvbnRleHRTY29wZShjb250ZXh0KTsKLSNlbmRpZgot
Ci0gICAgU2NyaXB0VmFsdWUgdmFsdWUgPSBkZXNlcmlhbGl6ZUlEQlZhbHVlKHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSwgc2VyaWFsaXplZFZhbHVlKTsKKyAgICBET01SZXF1ZXN0U3RhdGU6OlNj
b3BlIHNjb3BlKG1fcmVxdWVzdFN0YXRlKTsKKyAgICBTY3JpcHRWYWx1ZSB2YWx1ZSA9IGRlc2Vy
aWFsaXplSURCVmFsdWUoJm1fcmVxdWVzdFN0YXRlLCBzZXJpYWxpemVkVmFsdWUpOwogICAgIEFT
U0VSVChtX2N1cnNvclR5cGUgIT0gSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6SW52YWxpZEN1
cnNvclR5cGUpOwogICAgIFJlZlB0cjxJREJDdXJzb3I+IGN1cnNvcjsKICAgICBpZiAobV9jdXJz
b3JUeXBlID09IElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5Q3Vyc29yKQpAQCAt
MzU0LDE1ICszNDIsOCBAQCB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc2VyaWFsaXplZFNjcmlwdFZhbAogICAgIGlmICghc2hvdWxk
RW5xdWV1ZUV2ZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotI2lmIFVTRShWOCkKLSAgICB2ODo6
SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7Ci0gICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBjb250
ZXh0ID0gdG9WOENvbnRleHQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX3dvcmxkQ29udGV4
dEhhbmRsZSk7Ci0gICAgaWYgKGNvbnRleHQuSXNFbXB0eSgpKQotICAgICAgICBDUkFTSCgpOwot
ICAgIHY4OjpDb250ZXh0OjpTY29wZSBjb250ZXh0U2NvcGUoY29udGV4dCk7Ci0jZW5kaWYKLQot
ICAgIFNjcmlwdFZhbHVlIHZhbHVlID0gZGVzZXJpYWxpemVJREJWYWx1ZShzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk7CisgICAgRE9NUmVxdWVzdFN0YXRl
OjpTY29wZSBzY29wZShtX3JlcXVlc3RTdGF0ZSk7CisgICAgU2NyaXB0VmFsdWUgdmFsdWUgPSBk
ZXNlcmlhbGl6ZUlEQlZhbHVlKCZtX3JlcXVlc3RTdGF0ZSwgc2VyaWFsaXplZFNjcmlwdFZhbHVl
KTsKICAgICBvblN1Y2Nlc3NJbnRlcm5hbCh2YWx1ZSk7CiB9CiAKQEAgLTM4NSwxOCArMzY2LDEx
IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBwcnBTZXJpYWxpemVkU2NyaXB0CiAgICAgaWYgKCFzaG91bGRFbnF1ZXVlRXZlbnQo
KSkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgVVNFKFY4KQotICAgIHY4OjpIYW5kbGVTY29wZSBo
YW5kbGVTY29wZTsKLSAgICB2ODo6TG9jYWw8djg6OkNvbnRleHQ+IGNvbnRleHQgPSB0b1Y4Q29u
dGV4dChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fd29ybGRDb250ZXh0SGFuZGxlKTsKLSAg
ICBpZiAoY29udGV4dC5Jc0VtcHR5KCkpCi0gICAgICAgIENSQVNIKCk7Ci0gICAgdjg6OkNvbnRl
eHQ6OlNjb3BlIGNvbnRleHRTY29wZShjb250ZXh0KTsKLSNlbmRpZgotCiAjaWZuZGVmIE5ERUJV
RwogICAgIEFTU0VSVChrZXlQYXRoID09IGVmZmVjdGl2ZU9iamVjdFN0b3JlKG1fc291cmNlKS0+
a2V5UGF0aCgpKTsKICNlbmRpZgotICAgIFNjcmlwdFZhbHVlIHZhbHVlID0gZGVzZXJpYWxpemVJ
REJWYWx1ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHBycFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSk7CisgICAgRE9NUmVxdWVzdFN0YXRlOjpTY29wZSBzY29wZShtX3JlcXVlc3RTdGF0ZSk7Cisg
ICAgU2NyaXB0VmFsdWUgdmFsdWUgPSBkZXNlcmlhbGl6ZUlEQlZhbHVlKCZtX3JlcXVlc3RTdGF0
ZSwgcHJwU2VyaWFsaXplZFNjcmlwdFZhbHVlKTsKIAogICAgIFJlZlB0cjxJREJLZXk+IHByaW1h
cnlLZXkgPSBwcnBQcmltYXJ5S2V5OwogI2lmbmRlZiBOREVCVUcKQEAgLTQzNCwxNSArNDA4LDgg
QEAgdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFz
c1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXkKICAgICBpZiAoIXNob3VsZEVucXVldWVFdmVudCgp
KQogICAgICAgICByZXR1cm47CiAKLSNpZiBVU0UoVjgpCi0gICAgdjg6OkhhbmRsZVNjb3BlIGhh
bmRsZVNjb3BlOwotICAgIHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gY29udGV4dCA9IHRvVjhDb250
ZXh0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgbV93b3JsZENvbnRleHRIYW5kbGUpOwotICAg
IGlmIChjb250ZXh0LklzRW1wdHkoKSkKLSAgICAgICAgQ1JBU0goKTsKLSAgICB2ODo6Q29udGV4
dDo6U2NvcGUgY29udGV4dFNjb3BlKGNvbnRleHQpOwotI2VuZGlmCi0KLSAgICBTY3JpcHRWYWx1
ZSB2YWx1ZSA9IGRlc2VyaWFsaXplSURCVmFsdWUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBz
ZXJpYWxpemVkVmFsdWUpOworICAgIERPTVJlcXVlc3RTdGF0ZTo6U2NvcGUgc2NvcGUobV9yZXF1
ZXN0U3RhdGUpOworICAgIFNjcmlwdFZhbHVlIHZhbHVlID0gZGVzZXJpYWxpemVJREJWYWx1ZSgm
bV9yZXF1ZXN0U3RhdGUsIHNlcmlhbGl6ZWRWYWx1ZSk7CiAgICAgQVNTRVJUKG1fcGVuZGluZ0N1
cnNvcik7CiAgICAgc2V0UmVzdWx0Q3Vyc29yKG1fcGVuZGluZ0N1cnNvci5yZWxlYXNlKCksIGtl
eSwgcHJpbWFyeUtleSwgdmFsdWUpOwogICAgIGVucXVldWVFdmVudChjcmVhdGVTdWNjZXNzRXZl
bnQoKSk7CkBAIC00NjMsNiArNDMwLDcgQEAgdm9pZCBJREJSZXF1ZXN0OjpzdG9wKCkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgbV9jb250ZXh0U3RvcHBlZCA9IHRydWU7CisgICAgbV9yZXF1ZXN0
U3RhdGUuY2xlYXIoKTsKICAgICBpZiAobV9yZWFkeVN0YXRlID09IFBFTkRJTkcpCiAgICAgICAg
IG1hcmtFYXJseURlYXRoKCk7CiB9CkBAIC00ODgsMTMgKzQ1Niw3IEBAIGJvb2wgSURCUmVxdWVz
dDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKICAgICBBU1NFUlQoZXZl
bnQtPnRhcmdldCgpID09IHRoaXMpOwogICAgIEFTU0VSVF9XSVRIX01FU1NBR0UobV9yZWFkeVN0
YXRlIDwgRE9ORSwgIldoZW4gZGlzcGF0Y2hpbmcgZXZlbnQgJXMsIG1fcmVhZHlTdGF0ZSA8IERP
TkUoJWQpLCB3YXMgJWQiLCBldmVudC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIERP
TkUsIG1fcmVhZHlTdGF0ZSk7CiAKLSNpZiBVU0UoVjgpCi0gICAgdjg6OkhhbmRsZVNjb3BlIGhh
bmRsZVNjb3BlOwotICAgIHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gY29udGV4dCA9IHRvVjhDb250
ZXh0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgbV93b3JsZENvbnRleHRIYW5kbGUpOwotICAg
IGlmIChjb250ZXh0LklzRW1wdHkoKSkKLSAgICAgICAgQ1JBU0goKTsKLSAgICB2ODo6Q29udGV4
dDo6U2NvcGUgY29udGV4dFNjb3BlKGNvbnRleHQpOwotI2VuZGlmCisgICAgRE9NUmVxdWVzdFN0
YXRlOjpTY29wZSBzY29wZShtX3JlcXVlc3RTdGF0ZSk7CiAKICAgICBpZiAoZXZlbnQtPnR5cGUo
KSAhPSBldmVudE5hbWVzKCkuYmxvY2tlZEV2ZW50KQogICAgICAgICBtX3JlYWR5U3RhdGUgPSBE
T05FOwpAQCAtNTIwLDcgKzQ4Miw3IEBAIGJvb2wgSURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQ
YXNzUmVmUHRyPEV2ZW50PiBldmVudCkKICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5h
bWVzKCkuc3VjY2Vzc0V2ZW50KSB7CiAgICAgICAgIGN1cnNvclRvTm90aWZ5ID0gZ2V0UmVzdWx0
Q3Vyc29yKCk7CiAgICAgICAgIGlmIChjdXJzb3JUb05vdGlmeSkgewotICAgICAgICAgICAgY3Vy
c29yVG9Ob3RpZnktPnNldFZhbHVlUmVhZHkoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX2N1
cnNvcktleS5yZWxlYXNlKCksIG1fY3Vyc29yUHJpbWFyeUtleS5yZWxlYXNlKCksIG1fY3Vyc29y
VmFsdWUpOworICAgICAgICAgICAgY3Vyc29yVG9Ob3RpZnktPnNldFZhbHVlUmVhZHkoJm1fcmVx
dWVzdFN0YXRlLCBtX2N1cnNvcktleS5yZWxlYXNlKCksIG1fY3Vyc29yUHJpbWFyeUtleS5yZWxl
YXNlKCksIG1fY3Vyc29yVmFsdWUpOwogICAgICAgICAgICAgbV9jdXJzb3JWYWx1ZS5jbGVhcigp
OwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCUmVxdWVzdC5oCmluZGV4IGEyMjg3MmRlYzQzNTlkYjI4NmNmZjgzYmY4YzNjMDYwYTYwNTc4
NTMuLmE5Yzc0MDBhNzA1NTBjY2Q5YzQ2MDA1OWFhMmMxNzU0ZWFjZWY2YTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKQEAgLTMzLDYgKzMzLDcg
QEAKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkRPTUVycm9yLmgi
CisjaW5jbHVkZSAiRE9NUmVxdWVzdFN0YXRlLmgiCiAjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5o
IgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgpAQCAtMTU5
LDkgKzE2MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3ByZXZlbnRQcm9wYWdhdGlvbjsKIAog
ICAgIEV2ZW50VGFyZ2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsKLSNpZiBVU0UoVjgpCi0gICAg
V29ybGRDb250ZXh0SGFuZGxlIG1fd29ybGRDb250ZXh0SGFuZGxlOwotI2VuZGlmCisgICAgRE9N
UmVxdWVzdFN0YXRlIG1fcmVxdWVzdFN0YXRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IDJiYjBmYzcwZmJiYTIzMmE0MTMxMDdjZWFlMThjYjU3ZGI2
MTFhNmIuLjdhNTQyMGUxMDU0OTY3NDNiYjM3MTkyNDZiMWViZmU3MWM0YTYyYjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKQEAgLTIxOTksNiArMjE5OSw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3Mvdjgv
QmluZGluZ1N0YXRlLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L0RPTURhdGFTdG9yZS5j
cHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L0RPTURhdGFTdG9yZS5oJywKKyAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9ET01SZXF1ZXN0U3RhdGUuaCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvdjgvRE9NV3JhcHBlck1hcC5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9ET01XcmFw
cGVyV29ybGQuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9ET01XcmFwcGVyV29ybGQu
aCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01SZXF1ZXN0U3Rh
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTVJlcXVlc3RTdGF0ZS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFhNGJiMjYzYmVmMTVhNmFjMTFlMWViZTdiZWQ2ZDYzZWQ0MjM2ZTUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01SZXF1ZXN0U3RhdGUuaApA
QCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBET01SZXF1ZXN0U3RhdGVfaAorI2RlZmlu
ZSBET01SZXF1ZXN0U3RhdGVfaAorCisjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVkZSAi
V29ybGRDb250ZXh0SGFuZGxlLmgiCisjaW5jbHVkZSAidjguaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworCitjbGFzcyBET01SZXF1ZXN0
U3RhdGUgeworcHVibGljOgorICAgIGV4cGxpY2l0IERPTVJlcXVlc3RTdGF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQorICAgICAgICA6IG1fd29ybGRD
b250ZXh0SGFuZGxlKFVzZUN1cnJlbnRXb3JsZCkKKyAgICAgICAgLCBtX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKKyAgICB7CisgICAgfQorCisgICAgdm9p
ZCBjbGVhcigpCisgICAgeworICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQgPSAwOwor
ICAgIH0KKworICAgIGNsYXNzIFNjb3BlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIGV4cGxpY2l0
IFNjb3BlKERPTVJlcXVlc3RTdGF0ZSYgc3RhdGUpCisgICAgICAgICAgICA6IG1fY29udGV4dFNj
b3BlKHN0YXRlLmNvbnRleHQoKSkKKyAgICAgICAgeworICAgICAgICB9CisgICAgcHJpdmF0ZToK
KyAgICAgICAgdjg6OkhhbmRsZVNjb3BlIG1faGFuZGxlU2NvcGU7CisgICAgICAgIHY4OjpDb250
ZXh0OjpTY29wZSBtX2NvbnRleHRTY29wZTsKKyAgICB9OworCisgICAgdjg6OkxvY2FsPHY4OjpD
b250ZXh0PiBjb250ZXh0KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0b1Y4Q29udGV4dChtX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQsIG1fd29ybGRDb250ZXh0SGFuZGxlKTsKKyAgICB9CisKK3By
aXZhdGU6CisgICAgV29ybGRDb250ZXh0SGFuZGxlIG1fd29ybGRDb250ZXh0SGFuZGxlOworICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK307CisK
K30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSURCQmlu
ZGluZ1V0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5n
VXRpbGl0aWVzLmNwcAppbmRleCAwMWU3ZTM3ZTEyMzU1ODk3YTAzZDhkM2Q1NjQ1NGIxMGFjMTky
MTBlLi4zNGQ3ZTQ1ODNjNjA5ZmFlNDM5NjU2MzlkMDBlNTExMGY2MzcwM2YyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcApAQCAt
MzUsNyArMzUsNiBAQAogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1
ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4SURCS2V5LmgiCi0jaW5jbHVkZSAiV29ybGRD
b250ZXh0SGFuZGxlLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAKQEAgLTIxMyw3ICsyMTIsNyBAQCBQYXNzUmVmUHRyPElEQktleT4gY3Jl
YXRlSURCS2V5RnJvbVNjcmlwdFZhbHVlQW5kS2V5UGF0aChjb25zdCBTY3JpcHRWYWx1ZSYgdmFs
dQogICAgIHJldHVybiBjcmVhdGVJREJLZXlGcm9tU2NyaXB0VmFsdWVBbmRLZXlQYXRoKHZhbHVl
LCBrZXlQYXRoLnN0cmluZygpKTsKIH0KIAotU2NyaXB0VmFsdWUgZGVzZXJpYWxpemVJREJWYWx1
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0LCBQYXNzUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gcHJwVmFsdWUpCitTY3JpcHRWYWx1ZSBkZXNlcmlhbGl6ZUlEQlZh
bHVlKERPTVJlcXVlc3RTdGF0ZSogc3RhdGUsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiBwcnBWYWx1ZSkKIHsKICAgICBBU1NFUlQodjg6OkNvbnRleHQ6OkluQ29udGV4dCgpKTsK
ICAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7CkBAIC0yNjUsNyArMjY0LDcgQEAgYm9v
bCBjYW5JbmplY3RJREJLZXlJbnRvU2NyaXB0VmFsdWUoY29uc3QgU2NyaXB0VmFsdWUmIHNjcmlw
dFZhbHVlLCBjb25zdCBJREJLZXkKICAgICByZXR1cm4gY2FuSW5qZWN0TnRoVmFsdWVPbktleVBh
dGgodjhWYWx1ZSwga2V5UGF0aEVsZW1lbnRzLCBrZXlQYXRoRWxlbWVudHMuc2l6ZSgpIC0gMSk7
CiB9CiAKLVNjcmlwdFZhbHVlIGlkYktleVRvU2NyaXB0VmFsdWUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogc2NyaXB0Q29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSkKK1NjcmlwdFZhbHVl
IGlkYktleVRvU2NyaXB0VmFsdWUoRE9NUmVxdWVzdFN0YXRlKiBzdGF0ZSwgUGFzc1JlZlB0cjxJ
REJLZXk+IGtleSkKIHsKICAgICBBU1NFUlQodjg6OkNvbnRleHQ6OkluQ29udGV4dCgpKTsKICAg
ICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmgKaW5kZXggZjc2NjA1NmRmNjZkMmQ3MDhjZTJi
YmMyYzlmZTZhNmNmMTRlNWJiYS4uNDY1NTM5N2FjNWJhN2JkNDIzODQyMWVjYTA0NGJkMWIzZWMy
ODEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSURCQmluZGluZ1V0
aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGls
aXRpZXMuaApAQCAtMzQsNiArMzQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNz
IERPTVJlcXVlc3RTdGF0ZTsKIGNsYXNzIElEQktleTsKIGNsYXNzIElEQktleVBhdGg7CiBjbGFz
cyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CkBAIC00Myw4ICs0NCw4IEBAIFBhc3NSZWZQdHI8SURC
S2V5PiBjcmVhdGVJREJLZXlGcm9tVmFsdWUodjg6OkhhbmRsZTx2ODo6VmFsdWU+KTsKIGJvb2wg
aW5qZWN0SURCS2V5SW50b1NjcmlwdFZhbHVlKFBhc3NSZWZQdHI8SURCS2V5PiwgU2NyaXB0VmFs
dWUmLCBjb25zdCBJREJLZXlQYXRoJik7CiBQYXNzUmVmUHRyPElEQktleT4gY3JlYXRlSURCS2V5
RnJvbVNjcmlwdFZhbHVlQW5kS2V5UGF0aChjb25zdCBTY3JpcHRWYWx1ZSYsIGNvbnN0IElEQktl
eVBhdGgmKTsKIGJvb2wgY2FuSW5qZWN0SURCS2V5SW50b1NjcmlwdFZhbHVlKGNvbnN0IFNjcmlw
dFZhbHVlJiwgY29uc3QgSURCS2V5UGF0aCYpOwotU2NyaXB0VmFsdWUgZGVzZXJpYWxpemVJREJW
YWx1ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+KTsKLVNjcmlwdFZhbHVlIGlkYktleVRvU2NyaXB0VmFsdWUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5Pik7CitTY3JpcHRWYWx1ZSBkZXNlcmlhbGl6ZUlE
QlZhbHVlKERPTVJlcXVlc3RTdGF0ZSosIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
Pik7CitTY3JpcHRWYWx1ZSBpZGJLZXlUb1NjcmlwdFZhbHVlKERPTVJlcXVlc3RTdGF0ZSosIFBh
c3NSZWZQdHI8SURCS2V5Pik7CiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCS2V5LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklE
QktleS5jcHAKaW5kZXggZDYwYjVmNWMxYzliNDRhNzZmMzFkOTEzNmIwNDc4ODM5YWFhZmU2Yy4u
NjA5ZDNiNGEwNjNjMmI0N2ZmNWEzNThhZDkxZGQ1NDcxMzMxNGM5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCS2V5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJREJLZXkuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAKICNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKIAotI2luY2x1ZGUgIklEQkJpbmRpbmdVdGlsaXRpZXMuaCIK
ICNpbmNsdWRlICJJREJLZXkuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>