<?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>68959</bug_id>
          
          <creation_ts>2011-09-27 16:43:57 -0700</creation_ts>
          <short_desc>Extend DOM WheelEvent to differentiate between physical and logical scroll directions</short_desc>
          <delta_ts>2011-10-04 14:19:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>gavinp</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>474353</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-09-27 16:43:57 -0700</bug_when>
    <thetext>With Lion, users may choose to reverse the scrolling direction. Exposing a boolean indicating whether the user is scrolling naturally would help web authors determine a scroll event&apos;s direction.

&lt;rdar://problem/10036688&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474999</commentid>
    <comment_count>1</comment_count>
      <attachid>109072</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-09-28 14:01:22 -0700</bug_when>
    <thetext>Created attachment 109072
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475006</commentid>
    <comment_count>2</comment_count>
      <attachid>109072</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2011-09-28 14:11:08 -0700</bug_when>
    <thetext>Comment on attachment 109072
Patch

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

&gt; Source/WebKit2/Shared/mac/WebEventFactory.mm:1103
&gt; +#if BUILDING_ON_LION
&gt; +    bool directionInvertedFromDevice        = [event isDirectionInvertedFromDevice];
&gt; +#else
&gt; +    bool directionInvertedFromDevice        = false;
&gt; +#endif

This is not correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475011</commentid>
    <comment_count>3</comment_count>
      <attachid>109078</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-09-28 14:17:03 -0700</bug_when>
    <thetext>Created attachment 109078
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475012</commentid>
    <comment_count>4</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-09-28 14:17:51 -0700</bug_when>
    <thetext>Fixed the #if OS check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475022</commentid>
    <comment_count>5</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-09-28 14:29:20 -0700</bug_when>
    <thetext>The #if should be #if !defined(...)-- sending another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475027</commentid>
    <comment_count>6</comment_count>
      <attachid>109079</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-09-28 14:39:52 -0700</bug_when>
    <thetext>Created attachment 109079
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475043</commentid>
    <comment_count>7</comment_count>
      <attachid>109079</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-09-28 15:20:40 -0700</bug_when>
    <thetext>Comment on attachment 109079
Patch

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

I think we probably want to prefix the IDL attribute with webkit as well.

&gt; Source/WebCore/platform/mac/WheelEventMac.mm:104
&gt; +    , m_directionInvertedFromDevice([event isDirectionInvertedFromDevice])

I think this probably needs to be conditional on Lion or later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475047</commentid>
    <comment_count>8</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-09-28 15:29:29 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 109079 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=109079&amp;action=review
&gt; 
&gt; I think we probably want to prefix the IDL attribute with webkit as well.

OK.

&gt; 
&gt; &gt; Source/WebCore/platform/mac/WheelEventMac.mm:104
&gt; &gt; +    , m_directionInvertedFromDevice([event isDirectionInvertedFromDevice])
&gt; 
&gt; I think this probably needs to be conditional on Lion or later.

Whoops, you are right. Will add.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475058</commentid>
    <comment_count>9</comment_count>
      <attachid>109083</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-09-28 16:02:56 -0700</bug_when>
    <thetext>Created attachment 109083
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475063</commentid>
    <comment_count>10</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-09-28 16:07:36 -0700</bug_when>
    <thetext>Updated with Sam&apos;s corrections.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477052</commentid>
    <comment_count>11</comment_count>
      <attachid>109083</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-03 09:58:09 -0700</bug_when>
    <thetext>Comment on attachment 109083
Patch

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

OK as-is, but seems to be too conditional in the wrong way, so maybe we could tighten it up.

&gt; Source/WebCore/dom/WheelEvent.h:95
&gt; +#if PLATFORM(MAC)
&gt; +        WheelEvent(const FloatPoint&amp; wheelTicks, const FloatPoint&amp; rawDelta,
&gt; +            Granularity, PassRefPtr&lt;AbstractView&gt;,
&gt; +            const IntPoint&amp; screenLocation, const IntPoint&amp; pageLocation,
&gt; +            bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, bool directionInvertedFromDevice);
&gt; +#endif

Perhaps we could set the directionInvertedFromDevice flag with an explicit set call after construction. That would eliminate the need to repeat the entire constructor and improve the ifdefs.

&gt; Source/WebCore/dom/WheelEvent.idl:45
&gt; +#if defined(WTF_PLATFORM_MAC) &amp;&amp; WTF_PLATFORM_MAC
&gt; +        readonly attribute boolean webkitDirectionInvertedFromDevice;
&gt; +#endif /* PLATFORM(WTF_PLATFORM_MAC) */

It’s ugly to use the WTF prefixed macros directly in IDL files.

Ideally this would be a HAVE-type define instead of a direct platform one, like HAVE(INVERTED_WHEEL) or something like that. The platform macros themselves are slated for demolition.

Why wouldn’t we want this attribute to exist and be false on all platforms?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477059</commentid>
    <comment_count>12</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-10-03 10:23:24 -0700</bug_when>
    <thetext>&gt; 
&gt; Why wouldn’t we want this attribute to exist and be false on all platforms?

I think the answer to that is we probably do want it on all platforms.

-Sam</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477068</commentid>
    <comment_count>13</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-10-03 10:42:09 -0700</bug_when>
    <thetext>I&apos;ll make the adjustments and send out another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477164</commentid>
    <comment_count>14</comment_count>
      <attachid>109510</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-10-03 12:54:18 -0700</bug_when>
    <thetext>Created attachment 109510
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477691</commentid>
    <comment_count>15</comment_count>
      <attachid>109510</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-10-04 10:22:25 -0700</bug_when>
    <thetext>Comment on attachment 109510
Patch

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

&gt; Source/WebKit2/ChangeLog:41
&gt; +2011-09-28  Jon Lee  &lt;jonlee@apple.com&gt;
&gt; +
&gt; +        Extend DOM WheelEvent to differentiate between physical and logical scroll directions
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=68959
&gt; +        &lt;rdar://problem/10036688&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        * Shared/WebEvent.h:
&gt; +        (WebKit::WebWheelEvent::directionInvertedFromDevice):
&gt; +        * Shared/WebEventConversion.cpp:
&gt; +        (WebKit::WebKit2PlatformWheelEvent::WebKit2PlatformWheelEvent):
&gt; +        * Shared/WebWheelEvent.cpp:
&gt; +        (WebKit::WebWheelEvent::WebWheelEvent):
&gt; +        (WebKit::WebWheelEvent::encode):
&gt; +        (WebKit::WebWheelEvent::decode):
&gt; +        * Shared/mac/WebEventFactory.mm:
&gt; +        (WebKit::WebEventFactory::createWebWheelEvent): get the flag from the NSEvent.
&gt; +        * UIProcess/WebPageProxy.cpp:
&gt; +        (WebKit::coalesce):

Double changelog!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477707</commentid>
    <comment_count>16</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-10-04 10:38:07 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Double changelog!

Fixed, and thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477760</commentid>
    <comment_count>17</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-10-04 11:07:34 -0700</bug_when>
    <thetext>Committed r96613: &lt;http://trac.webkit.org/changeset/96613&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477832</commentid>
    <comment_count>18</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-04 12:16:49 -0700</bug_when>
    <thetext>This patch broke Leopard build. Fix attempted in http://trac.webkit.org/changeset/96629.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477932</commentid>
    <comment_count>19</comment_count>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2011-10-04 14:11:43 -0700</bug_when>
    <thetext>This bug also appears to have broken the gtk build.
http://build.webkit.org/builders/GTK%20Linux%2032-bit%20Release/builds/17973/steps/compile-webkit/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477935</commentid>
    <comment_count>20</comment_count>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2011-10-04 14:15:41 -0700</bug_when>
    <thetext>n/m, false alarm on the gtk folks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477942</commentid>
    <comment_count>21</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-04 14:19:24 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; This bug also appears to have broken the gtk build.
&gt; http://build.webkit.org/builders/GTK%20Linux%2032-bit%20Release/builds/17973/steps/compile-webkit/logs/stdio

This is due to https://bugs.webkit.org/show_bug.cgi?id=69357.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109072</attachid>
            <date>2011-09-28 14:01:22 -0700</date>
            <delta_ts>2011-09-28 14:17:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68959-20110928140128.patch</filename>
            <type>text/plain</type>
            <size>22506</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTYxNjIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMGZjM2VjN2JhNmVlODFhOGUyOGEw
ODU5NmQzYTdlZWViNWEzMDAyLi5kZjIzNzlhMjUxYjFiMThiNTYwZDIyZDVjMmQ5MTlkODEzYzAx
NjZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDktMjggIEpvbiBMZWUgIDxqb25sZWVA
YXBwbGUuY29tPgorCisgICAgICAgIEV4dGVuZCBET00gV2hlZWxFdmVudCB0byBkaWZmZXJlbnRp
YXRlIGJldHdlZW4gcGh5c2ljYWwgYW5kIGxvZ2ljYWwgc2Nyb2xsIGRpcmVjdGlvbnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4OTU5CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8xMDAzNjY4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvU2tpcHBlZDogV0tUUiBkb2Vz
IG5vdCBzdXBwb3J0IG1vdXNlIHNjcm9sbCBldmVudHMgeWV0LgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9mYXN0L2V2ZW50cy93aGVlbC1ldmVudC1kaXJlY3Rpb24taW52ZXJ0ZWQtZnJvbS1kZXZp
Y2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9ldmVu
dHMvd2hlZWwtZXZlbnQtZGlyZWN0aW9uLWludmVydGVkLWZyb20tZGV2aWNlLmh0bWw6IEFkZGVk
LgorCiAyMDExLTA5LTI3ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg5NDAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azIvU2tpcHBlZAppbmRleCBjZDFlZDBkYWQ2MGM4NjlhMDkwYWJhMTM0MzI2
YzM2MjkwMjFkMmEyLi5mMDhjNWMwYjRhMTQxMTc1Y2I0ZTJmMmZmODkwNjM3NWI3ZmQ3Zjc5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCkBAIC0xNjAsNiArMTYwLDcgQEAgZmFz
dC9ldmVudHMvc2VsZWN0c3RhcnQtcHJldmVudC1zZWxlY3Rpb24tb24tcmlnaHQtY2xpY2suaHRt
bAogZmFzdC9ldmVudHMvc3RhbmRhbG9uZS1pbWFnZS1kcmFnLXRvLWVkaXRhYmxlLmh0bWwKIGZh
c3QvZXZlbnRzL3doZWVsZXZlbnQtaW4taG9yaXpvbnRhbC1zY3JvbGxiYXItaW4tcnRsLmh0bWwK
IGZhc3QvZXZlbnRzL3doZWVsZXZlbnQtaW4tdmVydGljYWwtc2Nyb2xsYmFyLWluLXJ0bC5odG1s
CitmYXN0L2V2ZW50cy93aGVlbC1ldmVudC1kaXJlY3Rpb24taW52ZXJ0ZWQtZnJvbS1kZXZpY2Uu
aHRtbAogZmFzdC9maWxlcy9hcHBseS1ibG9iLXVybC10by14aHIuaHRtbAogZmFzdC9maWxlcy9m
aWxlLXJlYWRlci1hYm9ydC5odG1sCiBmYXN0L2ZpbGVzL3JlYWQtYmxvYi1hc3luYy5odG1sCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9ldmVudHMvd2hlZWwtZXZl
bnQtZGlyZWN0aW9uLWludmVydGVkLWZyb20tZGV2aWNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9mYXN0L2V2ZW50cy93aGVlbC1ldmVudC1kaXJlY3Rpb24taW52ZXJ0
ZWQtZnJvbS1kZXZpY2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzYWQxMjk1YjVmODYwZjU1
OTRmNzIwMGNlZmE5NTg4NjQ5OWM2OTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9ldmVudHMvd2hlZWwtZXZlbnQtZGlyZWN0aW9uLWludmVydGVkLWZy
b20tZGV2aWNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1Njcm9sbCBvdmVyIG1lCitz
ZW5kaW5nIHNjcm9sbCBldmVudCB0byBncmVlbiB0YXJnZXQKK1BBU1MgcmVzdWx0ICE9IHVuZGVm
aW5lZCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZXZlbnRz
L3doZWVsLWV2ZW50LWRpcmVjdGlvbi1pbnZlcnRlZC1mcm9tLWRldmljZS5odG1sIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZXZlbnRzL3doZWVsLWV2ZW50LWRpcmVjdGlvbi1pbnZl
cnRlZC1mcm9tLWRldmljZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmN2MzMTg1YTkxNDIzYWM4NzI3NWVh
OWQ2N2MxZDAyZGFlMjdkOWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9ldmVudHMvd2hlZWwtZXZlbnQtZGlyZWN0aW9uLWludmVydGVkLWZyb20tZGV2
aWNlLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxib2R5
PgorCis8ZGl2IHN0eWxlPSJ3aWR0aDoxMDBweDsgaGVpZ2h0OjgwcHg7IGJhY2tncm91bmQtY29s
b3I6Z3JlZW47IGNvbG9yOndoaXRlIiBpZD0idGFyZ2V0Ij5TY3JvbGwgb3ZlciBtZTwvZGl2Pgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKworPHNjcmlwdD4KK3ZhciB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpOwordmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpOwordmFyIHJl
c3VsdCA9IHVuZGVmaW5lZDsKK2Z1bmN0aW9uIHNjcm9sbEhhbmRsZXIoZXZlbnQpIHsKKyAgICBy
ZXN1bHQgPSBldmVudC5kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2U7CisgICAgZXZlbnQucHJl
dmVudERlZmF1bHQoKTsKK307Cit0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNld2hlZWwnLCBzY3Jv
bGxIYW5kbGVyLCBmYWxzZSk7CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYg
d2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgZGVidWcoInNlbmRpbmcgc2Nyb2xsIGV2ZW50IHRv
IGdyZWVuIHRhcmdldCIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHQub2Zmc2V0TGVm
dCArIDEwLCB0Lm9mZnNldFRvcCArIDEwKTsKKyAgICBldmVudFNlbmRlci5jb250aW51b3VzTW91
c2VTY3JvbGxCeSgwLDEwKTsKKyAgICBzaG91bGRCZVRydWUoJ3Jlc3VsdCAhPSB1bmRlZmluZWQn
KTsKK30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggMGM1MGMzYThlNDI2Nzg4MDBlZmUyZDhjM2ViMDE4YjU3OTNiNzcxNi4u
M2ZmN2RkZTA4ZDcxMWYzZDExMDUzMTFkYmNjOTI2ZDZhZTQzODA5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI3IEBACisyMDExLTA5LTI4ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKwor
ICAgICAgICBFeHRlbmQgRE9NIFdoZWVsRXZlbnQgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIHBo
eXNpY2FsIGFuZCBsb2dpY2FsIHNjcm9sbCBkaXJlY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODk1OQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMTAwMzY2ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOiBhZGRlZCB0aGUgV1RGX1BMQVRGT1JNX01BQyBp
bmNsdWRlIGZvciBwcm9wZXJseSBwcm9jZXNzaW5nIHRoZQorICAgICAgICBXaGVlbEV2ZW50IElE
TC4KKyAgICAgICAgKiBkb20vV2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaGVl
bEV2ZW50OjpXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnQ6OmluaXRX
aGVlbEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnREaXNwYXRjaE1lZGlhdG9y
OjpXaGVlbEV2ZW50RGlzcGF0Y2hNZWRpYXRvcik6CisgICAgICAgICogZG9tL1doZWVsRXZlbnQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpXaGVlbEV2ZW50OjpkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UpOgorICAgICAgICAq
IGRvbS9XaGVlbEV2ZW50LmlkbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZl
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVl
bEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxFdmVudDo6ZGlyZWN0aW9u
SW52ZXJ0ZWRGcm9tRGV2aWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2hlZWxFdmVudE1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVl
bEV2ZW50KToKKwogMjAxMS0wOS0yNyAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4OTQwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA3MmY0N2U0ZmQxMmE4M2EwNjgxOWIxYmFh
YmY4MWYyMGRiZTczMTFhLi45M2ZmNTkwNDY2MzE1MDQ0NTY0NGM0N2Y4NWQ1OTUzNjA5OWQxZWM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTYxNiw2ICs2MTYsOCBAQCBBRERJ
VElPTkFMX0lETF9ERUZJTkVTIDo9CiAKIGlmZXEgKCQoT1MpLE1BQ09TKQogCitBRERJVElPTkFM
X0lETF9ERUZJTkVTIDo9IFdURl9QTEFURk9STV9NQUMKKwogRlJBTUVXT1JLX0ZMQUdTID0gJChz
aGVsbCBlY2hvICQoQlVJTFRfUFJPRFVDVFNfRElSKSAkKEZSQU1FV09SS19TRUFSQ0hfUEFUSFMp
IHwgcGVybCAtZSAncHJpbnQgIi1GICIgLiBqb2luKCIgLUYgIiwgc3BsaXQoIiAiLCA8PikpOycp
CiAKIGlmZXEgKCQoc2hlbGwgZ2NjIC1FIC1QIC1kTSAkKEZSQU1FV09SS19GTEFHUykgV2ViQ29y
ZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvUGxhdGZvcm0uaCB8IGdyZXAgRU5BQkxFX0RBU0hCT0FS
RF9TVVBQT1JUIHwgY3V0IC1kJyAnIC1mMyksIDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5jcHAK
aW5kZXggODViNTYyMjU1ZDJmNjRmNzY4ODRhNGViZmU0NGViZWJhOTEzYTUxZC4uZmYyZWU4N2Vh
NTY0ODcyZjI2ZDFhMDExNmY1NjFhZTRkYzBmNTI2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1doZWVsRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50
LmNwcApAQCAtNDgsNiArNDgsMjEgQEAgV2hlZWxFdmVudDo6V2hlZWxFdmVudChjb25zdCBGbG9h
dFBvaW50JiB3aGVlbFRpY2tzLCBjb25zdCBGbG9hdFBvaW50JiByYXdEZWx0YSwKICAgICAsIG1f
Z3JhbnVsYXJpdHkoZ3JhbnVsYXJpdHkpCiB7CiB9CisjaWYgUExBVEZPUk0oTUFDKQorV2hlZWxF
dmVudDo6V2hlZWxFdmVudChjb25zdCBGbG9hdFBvaW50JiB3aGVlbFRpY2tzLCBjb25zdCBGbG9h
dFBvaW50JiByYXdEZWx0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgR3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHksIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LAorICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0IEludFBvaW50JiBw
YWdlTG9jYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBh
bHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRl
ZEZyb21EZXZpY2UpCisgICAgOiBNb3VzZVJlbGF0ZWRFdmVudChldmVudE5hbWVzKCkubW91c2V3
aGVlbEV2ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgdHJ1ZSwgdmlldywgMCwg
c2NyZWVuTG9jYXRpb24sIHBhZ2VMb2NhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGN0
cmxLZXksIGFsdEtleSwgc2hpZnRLZXksIG1ldGFLZXkpCisgICAgLCBtX3doZWVsRGVsdGEoSW50
UG9pbnQoc3RhdGljX2Nhc3Q8aW50Pih3aGVlbFRpY2tzLngoKSAqIHRpY2tNdWx0aXBsaWVyKSwg
c3RhdGljX2Nhc3Q8aW50Pih3aGVlbFRpY2tzLnkoKSAqIHRpY2tNdWx0aXBsaWVyKSkpCisgICAg
LCBtX3Jhd0RlbHRhKHJvdW5kZWRJbnRQb2ludChyYXdEZWx0YSkpCisgICAgLCBtX2dyYW51bGFy
aXR5KGdyYW51bGFyaXR5KQorICAgICwgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoZGly
ZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKQoreworfQorI2VuZGlmCiAKIHZvaWQgV2hlZWxFdmVu
dDo6aW5pdFdoZWVsRXZlbnQoaW50IHJhd0RlbHRhWCwgaW50IHJhd0RlbHRhWSwgUGFzc1JlZlB0
cjxBYnN0cmFjdFZpZXc+IHZpZXcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCkBAIC02OSw3ICs4
NCwxMSBAQCB2b2lkIFdoZWVsRXZlbnQ6OmluaXRXaGVlbEV2ZW50KGludCByYXdEZWx0YVgsIGlu
dCByYXdEZWx0YVksIFBhc3NSZWZQdHI8QWJzdHJhYwogICAgIAogICAgIG1fcmF3RGVsdGEgPSBJ
bnRQb2ludChyYXdEZWx0YVgsIHJhd0RlbHRhWSk7CiAgICAgbV9ncmFudWxhcml0eSA9IFBpeGVs
OwotICAgIAorCisjaWYgUExBVEZPUk0oTUFDKQorICAgIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9t
RGV2aWNlID0gZmFsc2U7CisjZW5kaWYKKwogICAgIGluaXRDb29yZGluYXRlcyhJbnRQb2ludChw
YWdlWCwgcGFnZVkpKTsKIH0KIApAQCAtMTAxLDkgKzEyMCwxNSBAQCBXaGVlbEV2ZW50RGlzcGF0
Y2hNZWRpYXRvcjo6V2hlZWxFdmVudERpc3BhdGNoTWVkaWF0b3IoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JgogICAgIGlmICghKGV2ZW50LmRlbHRhWCgpIHx8IGV2ZW50LmRlbHRhWSgpKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgc2V0RXZlbnQoV2hlZWxFdmVudDo6Y3JlYXRlKEZsb2F0UG9p
bnQoZXZlbnQud2hlZWxUaWNrc1goKSwgZXZlbnQud2hlZWxUaWNrc1koKSksIEZsb2F0UG9pbnQo
ZXZlbnQuZGVsdGFYKCksIGV2ZW50LmRlbHRhWSgpKSwgZ3JhbnVsYXJpdHkoZXZlbnQpLAotICAg
ICAgICB2aWV3LCBJbnRQb2ludChldmVudC5nbG9iYWxYKCksIGV2ZW50Lmdsb2JhbFkoKSksIElu
dFBvaW50KGV2ZW50LngoKSwgZXZlbnQueSgpKSwgZXZlbnQuY3RybEtleSgpLCBldmVudC5hbHRL
ZXkoKSwgZXZlbnQuc2hpZnRLZXkoKSwgZXZlbnQubWV0YUtleSgpKSk7Ci0KKyNpZiBQTEFURk9S
TShNQUMpCisgICAgc2V0RXZlbnQoV2hlZWxFdmVudDo6Y3JlYXRlKEZsb2F0UG9pbnQoZXZlbnQu
d2hlZWxUaWNrc1goKSwgZXZlbnQud2hlZWxUaWNrc1koKSksIEZsb2F0UG9pbnQoZXZlbnQuZGVs
dGFYKCksIGV2ZW50LmRlbHRhWSgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z3JhbnVsYXJpdHkoZXZlbnQpLCB2aWV3LCBJbnRQb2ludChldmVudC5nbG9iYWxYKCksIGV2ZW50
Lmdsb2JhbFkoKSksIEludFBvaW50KGV2ZW50LngoKSwgZXZlbnQueSgpKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZXZlbnQuY3RybEtleSgpLCBldmVudC5hbHRLZXkoKSwgZXZl
bnQuc2hpZnRLZXkoKSwgZXZlbnQubWV0YUtleSgpLCBldmVudC5kaXJlY3Rpb25JbnZlcnRlZEZy
b21EZXZpY2UoKSkpOworI2Vsc2UKKyAgICBzZXRFdmVudChXaGVlbEV2ZW50OjpjcmVhdGUoRmxv
YXRQb2ludChldmVudC53aGVlbFRpY2tzWCgpLCBldmVudC53aGVlbFRpY2tzWSgpKSwgRmxvYXRQ
b2ludChldmVudC5kZWx0YVgoKSwgZXZlbnQuZGVsdGFZKCkpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBncmFudWxhcml0eShldmVudCksIHZpZXcsIEludFBvaW50KGV2ZW50Lmds
b2JhbFgoKSwgZXZlbnQuZ2xvYmFsWSgpKSwgSW50UG9pbnQoZXZlbnQueCgpLCBldmVudC55KCkp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5jdHJsS2V5KCksIGV2ZW50
LmFsdEtleSgpLCBldmVudC5zaGlmdEtleSgpLCBldmVudC5tZXRhS2V5KCkpKTsKKyNlbmRpZgog
fQogCiBXaGVlbEV2ZW50KiBXaGVlbEV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6ZXZlbnQoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmgKaW5kZXggNTIyM2NlNDMzODhlNmY5MzZmNzI1YzA0M2Ix
YzYzOWJiYjY4NTNlYi4uNjY1ZTk4YTlmOWViNjVjOGM3ZWEyYWY3ZTQ5MTBlZDdkODhmY2YxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vV2hlZWxFdmVudC5oCkBAIC00OSw2ICs0OSwxNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdoZWVsRXZlbnQod2hlZWxU
aWNrcywgcmF3RGVsdGEsIGdyYW51bGFyaXR5LCB2aWV3LAogICAgICAgICAgICAgICAgIHNjcmVl
bkxvY2F0aW9uLCBwYWdlTG9jYXRpb24sIGN0cmxLZXksIGFsdEtleSwgc2hpZnRLZXksIG1ldGFL
ZXkpKTsKICAgICAgICAgfQorI2lmIFBMQVRGT1JNKE1BQykKKyAgICAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8V2hlZWxFdmVudD4gY3JlYXRlKGNvbnN0IEZsb2F0UG9pbnQmIHdoZWVsVGlja3MsCisg
ICAgICAgICAgICBjb25zdCBGbG9hdFBvaW50JiByYXdEZWx0YSwgR3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHksIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LAorICAgICAgICAgICAgY29uc3Qg
SW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgcGFnZUxvY2F0aW9uLAor
ICAgICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9v
bCBtZXRhS2V5LCBib29sIGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSkKKyAgICAgICAgewor
ICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXaGVlbEV2ZW50KHdoZWVsVGlja3MsIHJh
d0RlbHRhLCBncmFudWxhcml0eSwgdmlldywKKyAgICAgICAgICAgICAgICBzY3JlZW5Mb2NhdGlv
biwgcGFnZUxvY2F0aW9uLCBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5LCBkaXJl
Y3Rpb25JbnZlcnRlZEZyb21EZXZpY2UpKTsKKyAgICAgICAgfQorI2VuZGlmCiAKICAgICAgICAg
dm9pZCBpbml0V2hlZWxFdmVudChpbnQgcmF3RGVsdGFYLCBpbnQgcmF3RGVsdGFZLCBQYXNzUmVm
UHRyPEFic3RyYWN0Vmlldz4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNjcmVl
blgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwKQEAgLTY1LDYgKzc1LDkgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBpbnQgcmF3RGVsdGFZKCkgY29uc3QgeyByZXR1
cm4gbV9yYXdEZWx0YS55KCk7IH0KICAgICAgICAgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkoKSBj
b25zdCB7IHJldHVybiBtX2dyYW51bGFyaXR5OyB9CiAKKyNpZiBQTEFURk9STShNQUMpCisgICAg
ICAgIGJvb2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9k
aXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2U7IH0KKyNlbmRpZgogICAgICAgICAvLyBOZWVkZWQg
Zm9yIE9iamVjdGl2ZS1DIGxlZ2FjeSBzdXBwb3J0CiAgICAgICAgIGJvb2wgaXNIb3Jpem9udGFs
KCkgY29uc3QgeyByZXR1cm4gbV93aGVlbERlbHRhLngoKTsgfQogCkBAIC03NCwxMiArODcsMjEg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgICAgICAgIEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5LCBQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4sCiAgICAgICAgICAgICAgICAgICAg
Y29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgcGFnZUxvY2F0
aW9uLAogICAgICAgICAgICAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wg
c2hpZnRLZXksIGJvb2wgbWV0YUtleSk7CisjaWYgUExBVEZPUk0oTUFDKQorICAgICAgICBXaGVl
bEV2ZW50KGNvbnN0IEZsb2F0UG9pbnQmIHdoZWVsVGlja3MsIGNvbnN0IEZsb2F0UG9pbnQmIHJh
d0RlbHRhLAorICAgICAgICAgICAgR3JhbnVsYXJpdHksIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3
PiwKKyAgICAgICAgICAgIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50
UG9pbnQmIHBhZ2VMb2NhdGlvbiwKKyAgICAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRL
ZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZy
b21EZXZpY2UpOworI2VuZGlmCiAKICAgICAgICAgdmlydHVhbCBib29sIGlzV2hlZWxFdmVudCgp
IGNvbnN0OwogCiAgICAgICAgIEludFBvaW50IG1fd2hlZWxEZWx0YTsKICAgICAgICAgSW50UG9p
bnQgbV9yYXdEZWx0YTsKICAgICAgICAgR3JhbnVsYXJpdHkgbV9ncmFudWxhcml0eTsKKyNpZiBQ
TEFURk9STShNQUMpCisgICAgICAgIGJvb2wgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2U7
CisjZW5kaWYKICAgICB9OwogCiBjbGFzcyBXaGVlbEV2ZW50RGlzcGF0Y2hNZWRpYXRvciA6IHB1
YmxpYyBFdmVudERpc3BhdGNoTWVkaWF0b3IgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1doZWVsRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaWRsCmlu
ZGV4IGJkODE1MWI3YTYwODVlYzcxNTFhNzMxNzAzYTJiNmIyMmYzNmZhZTYuLjE3NWY1MjEyNGZk
ZGQ2MzlmYzEyMmJlZDM4YWQ0ZTIyNjYyNzRhN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9XaGVlbEV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5p
ZGwKQEAgLTQwLDYgKzQwLDkgQEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBsb25nICAgIHg7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgIHk7
CiAKKyNpZiBkZWZpbmVkKFdURl9QTEFURk9STV9NQUMpICYmIFdURl9QTEFURk9STV9NQUMKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2
aWNlOworI2VuZGlmIC8qIFBMQVRGT1JNKFdURl9QTEFURk9STV9NQUMpICovCiAjaWYgZGVmaW5l
ZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNIb3Jpem9udGFsOwogI2VuZGlmIC8qIGRlZmlu
ZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bs
YXRmb3JtV2hlZWxFdmVudC5oCmluZGV4IDUzN2VmNGMwOGEyMzcyNDBmYjZhOWExNWE4MWViYWNh
MzE4N2I3NmQuLmE2OGRhYTIxYzg1MmRmMDllMDQ2OWI2N2JiMmU2NjBlODUxZGFiNTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCkBAIC0xMDIsNiAr
MTAyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgLCBtX3BoYXNlKFBsYXRm
b3JtV2hlZWxFdmVudFBoYXNlTm9uZSkKICAgICAgICAgICAgICwgbV9tb21lbnR1bVBoYXNlKFBs
YXRmb3JtV2hlZWxFdmVudFBoYXNlTm9uZSkKICAgICAgICAgICAgICwgbV90aW1lc3RhbXAoMCkK
KyAgICAgICAgICAgICwgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoZmFsc2UpCiAjZW5k
aWYKICAgICAgICAgewogICAgICAgICB9CkBAIC0xMjQsNiArMTI1LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICAgICAgLCBtX3BoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlTm9u
ZSkKICAgICAgICAgICAgICwgbV9tb21lbnR1bVBoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNl
Tm9uZSkKICAgICAgICAgICAgICwgbV90aW1lc3RhbXAoMCkKKyAgICAgICAgICAgICwgbV9kaXJl
Y3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoZmFsc2UpCiAjZW5kaWYKICAgICAgICAgewogICAgICAg
ICB9CkBAIC0xODEsNiArMTgzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBQbGF0
Zm9ybVdoZWVsRXZlbnRQaGFzZSBtb21lbnR1bVBoYXNlKCkgY29uc3QgeyByZXR1cm4gbV9tb21l
bnR1bVBoYXNlOyB9CiAgICAgICAgIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcygpIGNv
bnN0IHsgcmV0dXJuIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhczsgfQogICAgICAgICBkb3Vi
bGUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KKyAgICAgICAgYm9v
bCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2RpcmVjdGlv
bkludmVydGVkRnJvbURldmljZTsgfQogI2VuZGlmCiAKICNpZiBQTEFURk9STShRVCkKQEAgLTIy
MCw2ICsyMjMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFBsYXRmb3JtV2hlZWxF
dmVudFBoYXNlIG1fcGhhc2U7CiAgICAgICAgIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlIG1fbW9t
ZW50dW1QaGFzZTsKICAgICAgICAgZG91YmxlIG1fdGltZXN0YW1wOworICAgICAgICBib29sIG1f
ZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlOwogI2VuZGlmCiAgICAgfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1doZWVsRXZlbnRNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2hlZWxFdmVudE1hYy5tbQppbmRleCAyNDk0ZTY5YWJhZDI2
MTVjYjZkODRiNDI0ZWEzNDY2NDk2NDY2NGU3Li5jYjBkZDI0MTM3MDc1NjZhNTZkNWIwY2IwN2Mw
MjRkZDQwOGYzNTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2hl
ZWxFdmVudE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2hlZWxFdmVu
dE1hYy5tbQpAQCAtMTAxLDYgKzEwMSw3IEBAIFBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1X
aGVlbEV2ZW50KE5TRXZlbnQqIGV2ZW50LCBOU1ZpZXcgKndpbmRvd1ZpZXcpCiAgICAgLCBtX3Bo
YXNlKHBoYXNlRm9yRXZlbnQoZXZlbnQpKQogICAgICwgbV9tb21lbnR1bVBoYXNlKG1vbWVudHVt
UGhhc2VGb3JFdmVudChldmVudCkpCiAgICAgLCBtX3RpbWVzdGFtcChbZXZlbnQgdGltZXN0YW1w
XSkKKyAgICAsIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKFtldmVudCBpc0RpcmVjdGlv
bkludmVydGVkRnJvbURldmljZV0pCiB7CiAgICAgQk9PTCBjb250aW51b3VzOwogICAgIHdrR2V0
V2hlZWxFdmVudERlbHRhcyhldmVudCwgJm1fZGVsdGFYLCAmbV9kZWx0YVksICZjb250aW51b3Vz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCAwNTAyM2QzZTVhNGJhZDdlZWQxMGMyZTg0MjcxMTNhM2M3ZjJhY2Rj
Li4xZWMxYzQ2Y2NkNjBmOWMyOTAyMGQxNGU5ZTI4ZmU5MDA2ODQwMGJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTEtMDktMjggIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgor
CisgICAgICAgIEV4dGVuZCBET00gV2hlZWxFdmVudCB0byBkaWZmZXJlbnRpYXRlIGJldHdlZW4g
cGh5c2ljYWwgYW5kIGxvZ2ljYWwgc2Nyb2xsIGRpcmVjdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4OTU5CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8xMDAzNjY4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFNoYXJlZC9XZWJFdmVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2
ZW50OjpkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UpOgorICAgICAgICAqIFNoYXJlZC9XZWJF
dmVudENvbnZlcnNpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJLaXQyUGxhdGZvcm1XaGVl
bEV2ZW50OjpXZWJLaXQyUGxhdGZvcm1XaGVlbEV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
V2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6OldlYldoZWVs
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjplbmNvZGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMv
V2ViRXZlbnRGYWN0b3J5Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNy
ZWF0ZVdlYldoZWVsRXZlbnQpOiBnZXQgdGhlIGZsYWcgZnJvbSB0aGUgTlNFdmVudC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Y29hbGVz
Y2UpOgorCiAyMDExLTA5LTI3ICBHb3BhbCBSYWdoYXZhbiAgPGdvcGFsLjEucmFnaGF2YW5Abm9r
aWEuY29tPgogCiAgICAgICAgIFtRdF0gUURlc2t0b3BXZWJWaWV3IGxvYWQgemVybyBzaXplIHZp
ZXcgdGVzdCBtaXNzaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZl
bnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5oCmluZGV4IDE3OGM1MGRmMWU5
NGQ2NWM0ZDEwYTliNzI3MGE0YTFjMzkyODk0ZDMuLjg4Yzg0NjlkYTQwYzU0YjYyOGFmMGFiMDdi
ZGY0ZmQ0MDE1NGI1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5oCkBAIC0xNzksNyArMTc5
LDcgQEAgcHVibGljOgogCiAgICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlv
biwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgTW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1w
KTsKICNpZiBQTEFURk9STShNQUMpCi0gICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgUGhhc2UgcGhhc2UsIFBoYXNlIG1v
bWVudHVtUGhhc2UsYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCBNb2RpZmllcnMsIGRv
dWJsZSB0aW1lc3RhbXApOworICAgIFdlYldoZWVsRXZlbnQoVHlwZSwgY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRp
b24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHksIFBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNl
LCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIE1vZGlmaWVycywgZG91YmxlIHRpbWVz
dGFtcCwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UpOwogI2VuZGlmCiAKICAgICBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRp
b247IH0KQEAgLTE5MSw2ICsxOTEsNyBAQCBwdWJsaWM6CiAgICAgUGhhc2UgcGhhc2UoKSBjb25z
dCB7IHJldHVybiBzdGF0aWNfY2FzdDxQaGFzZT4obV9waGFzZSk7IH0KICAgICBQaGFzZSBtb21l
bnR1bVBoYXNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UGhhc2U+KG1fbW9tZW50dW1Q
aGFzZSk7IH0KICAgICBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMoKSBjb25zdCB7IHJl
dHVybiBtX2hhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXM7IH0KKyAgICBib29sIGRpcmVjdGlvbklu
dmVydGVkRnJvbURldmljZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9t
RGV2aWNlOyB9CiAjZW5kaWYKIAogICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciopIGNvbnN0OwpAQCAtMjA4LDYgKzIwOSw3IEBAIHByaXZhdGU6CiAgICAgdWludDMyX3Qg
bV9waGFzZTsgLy8gUGhhc2UKICAgICB1aW50MzJfdCBtX21vbWVudHVtUGhhc2U7IC8vIFBoYXNl
CiAgICAgYm9vbCBtX2hhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXM7CisgICAgYm9vbCBtX2RpcmVj
dGlvbkludmVydGVkRnJvbURldmljZTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcAppbmRleCA5YzJmYWQxN2ZmNTliNjNlNjg3YjVk
Y2RmMDAzNTQwNjgwYmM0Njg4Li4yMjM1NWRiYjEyMTNhM2VmMmIyMTkzYTkxYTFmNjhiYTczZWYz
ZTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcApA
QCAtMTE1LDYgKzExNSw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9tb21lbnR1bVBoYXNlID0gc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U+KHdlYkV2ZW50Lm1vbWVu
dHVtUGhhc2UoKSk7CiAgICAgICAgIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyA9IHdlYkV2
ZW50Lmhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMoKTsKICAgICAgICAgbV90aW1lc3RhbXAgPSB3
ZWJFdmVudC50aW1lc3RhbXAoKTsKKyAgICAgICAgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZp
Y2UgPSB3ZWJFdmVudC5kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoKTsKICNlbmRpZgogICAg
IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViV2hlZWxFdmVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAKaW5kZXggNTk0MGJj
YzliZDc2NjQ1YjJkNGY0NTI1MzQ5YzA3Y2Q5NjQ4Yzc1ZS4uY2VhYjhhODZmYzdkZjFlZWVmNjgz
N2FkZDE0MjZjNjQwYjM1OTU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YldoZWVsRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJXaGVlbEV2ZW50
LmNwcApAQCAtNDMsMTMgKzQzLDE0IEBAIFdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlw
ZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50CiAjaWYgUExB
VEZPUk0oTUFDKQogICAgICwgbV9waGFzZShQaGFzZU5vbmUpCiAgICAgLCBtX2hhc1ByZWNpc2VT
Y3JvbGxpbmdEZWx0YXMoZmFsc2UpCisgICAgLCBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmlj
ZShmYWxzZSkKICNlbmRpZgogewogICAgIEFTU0VSVChpc1doZWVsRXZlbnRUeXBlKHR5cGUpKTsK
IH0KIAogI2lmIFBMQVRGT1JNKE1BQykKLVdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlw
ZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRp
Y2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgUGhhc2UgcGhhc2UsIFBoYXNlIG1vbWVudHVt
UGhhc2UsIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgTW9kaWZpZXJzIG1vZGlmaWVy
cywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0
eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3Np
dGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tz
LCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgUGhhc2UgcGhhc2UsIFBoYXNlIG1vbWVudHVtUGhh
c2UsIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgTW9kaWZpZXJzIG1vZGlmaWVycywg
ZG91YmxlIHRpbWVzdGFtcCwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UpCiAgICAg
OiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fcG9zaXRpb24o
cG9zaXRpb24pCiAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uKQpAQCAtNTks
NiArNjAsNyBAQCBXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3Qg
SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludAogICAgICwgbV9waGFzZShwaGFzZSkK
ICAgICAsIG1fbW9tZW50dW1QaGFzZShtb21lbnR1bVBoYXNlKQogICAgICwgbV9oYXNQcmVjaXNl
U2Nyb2xsaW5nRGVsdGFzKGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMpCisgICAgLCBtX2RpcmVj
dGlvbkludmVydGVkRnJvbURldmljZShkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UpCiB7CiAg
ICAgQVNTRVJUKGlzV2hlZWxFdmVudFR5cGUodHlwZSkpOwogfQpAQCAtNzcsNiArNzksNyBAQCB2
b2lkIFdlYldoZWVsRXZlbnQ6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29k
ZXIpIGNvbnN0CiAgICAgZW5jb2Rlci0+ZW5jb2RlKG1fcGhhc2UpOwogICAgIGVuY29kZXItPmVu
Y29kZShtX21vbWVudHVtUGhhc2UpOwogICAgIGVuY29kZXItPmVuY29kZShtX2hhc1ByZWNpc2VT
Y3JvbGxpbmdEZWx0YXMpOworICAgIGVuY29kZXItPmVuY29kZShtX2RpcmVjdGlvbkludmVydGVk
RnJvbURldmljZSk7CiAjZW5kaWYKIH0KIApAQCAtMTAxLDYgKzEwNCw4IEBAIGJvb2wgV2ViV2hl
ZWxFdmVudDo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViV2hl
ZWxFdmVudCYgdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlKHQubV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHQubV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZp
Y2UpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKICAgICByZXR1cm4gdHJ1ZTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1t
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KaW5kZXggMDQ2
ZjU3MmY4MDY1ZDhhNDhkNzM1MGY2NTM2NmM2NDdjMTgyYzQ0Ny4uYjU3MTIzOGI2YjI1Y2ZkZjc5
NjZhNjRhZmU0NWEzZjAxYzM0OWE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9XZWJFdmVudEZhY3RvcnkubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9X
ZWJFdmVudEZhY3RvcnkubW0KQEAgLTEwOTYsOCArMTA5NiwxMiBAQCBXZWJXaGVlbEV2ZW50IFdl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChOU0V2ZW50ICpldmVudCwgTlNWaWV3
ICp3aW5kbwogICAgIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyAgICAgICAgICA9IGNv
bnRpbnVvdXM7CiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgICAgICAgICAgID0g
bW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwogICAgIGRvdWJsZSB0aW1lc3RhbXAgICAgICAgICAg
ICAgICAgICAgICAgICA9IFtldmVudCB0aW1lc3RhbXBdOwotICAgIAotICAgIHJldHVybiBXZWJX
aGVlbEV2ZW50KFdlYkV2ZW50OjpXaGVlbCwgSW50UG9pbnQocG9zaXRpb24pLCBJbnRQb2ludChn
bG9iYWxQb3NpdGlvbiksIEZsb2F0U2l6ZShkZWx0YVgsIGRlbHRhWSksIEZsb2F0U2l6ZSh3aGVl
bFRpY2tzWCwgd2hlZWxUaWNrc1kpLCBncmFudWxhcml0eSwgcGhhc2UsIG1vbWVudHVtUGhhc2Us
IGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIG1vZGlmaWVycywgdGltZXN0YW1wKTsKKyNpZiBC
VUlMRElOR19PTl9MSU9OCisgICAgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UgICAg
ICAgID0gW2V2ZW50IGlzRGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlXTsKKyNlbHNlCisgICAg
Ym9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UgICAgICAgID0gZmFsc2U7CisjZW5kaWYK
KyAgICByZXR1cm4gV2ViV2hlZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIEludFBvaW50KHBvc2l0
aW9uKSwgSW50UG9pbnQoZ2xvYmFsUG9zaXRpb24pLCBGbG9hdFNpemUoZGVsdGFYLCBkZWx0YVkp
LCBGbG9hdFNpemUod2hlZWxUaWNrc1gsIHdoZWVsVGlja3NZKSwgZ3JhbnVsYXJpdHksIHBoYXNl
LCBtb21lbnR1bVBoYXNlLCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCBtb2RpZmllcnMsIHRp
bWVzdGFtcCwgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKTsKIH0KIAogV2ViS2V5Ym9hcmRF
dmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAqZXZl
bnQsIE5TVmlldyAqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApp
bmRleCAxMjczYmM5NjQxZTQ4OGMyNjczMWNjM2M2ZmVjMTljNzc4MWVkMGIzLi41Nzc4NjRmZWI1
YmY0NDAwZmFiMmIwZDFhM2MyZmEwOWQ3OGFkZmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjY2NCw3ICsyNjY0LDcgQEAgc3RhdGljIFdlYldoZWVs
RXZlbnQgY29hbGVzY2UoY29uc3QgV2ViV2hlZWxFdmVudCYgYSwgY29uc3QgV2ViV2hlZWxFdmVu
dCYgYikKICAgICBGbG9hdFNpemUgbWVyZ2VkV2hlZWxUaWNrcyA9IGEud2hlZWxUaWNrcygpICsg
Yi53aGVlbFRpY2tzKCk7CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgcmV0dXJuIFdlYldoZWVs
RXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBiLnBvc2l0aW9uKCksIGIuZ2xvYmFsUG9zaXRpb24oKSwg
bWVyZ2VkRGVsdGEsIG1lcmdlZFdoZWVsVGlja3MsIGIuZ3JhbnVsYXJpdHkoKSwgYi5waGFzZSgp
LCBiLm1vbWVudHVtUGhhc2UoKSwgYi5oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCksIGIubW9k
aWZpZXJzKCksIGIudGltZXN0YW1wKCkpOworICAgIHJldHVybiBXZWJXaGVlbEV2ZW50KFdlYkV2
ZW50OjpXaGVlbCwgYi5wb3NpdGlvbigpLCBiLmdsb2JhbFBvc2l0aW9uKCksIG1lcmdlZERlbHRh
LCBtZXJnZWRXaGVlbFRpY2tzLCBiLmdyYW51bGFyaXR5KCksIGIucGhhc2UoKSwgYi5tb21lbnR1
bVBoYXNlKCksIGIuaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcygpLCBiLm1vZGlmaWVycygpLCBi
LnRpbWVzdGFtcCgpLCBiLmRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSgpKTsKICNlbHNlCiAg
ICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBiLnBvc2l0aW9uKCksIGIu
Z2xvYmFsUG9zaXRpb24oKSwgbWVyZ2VkRGVsdGEsIG1lcmdlZFdoZWVsVGlja3MsIGIuZ3JhbnVs
YXJpdHkoKSwgYi5tb2RpZmllcnMoKSwgYi50aW1lc3RhbXAoKSk7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109078</attachid>
            <date>2011-09-28 14:17:03 -0700</date>
            <delta_ts>2011-09-28 14:39:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68959-20110928141708.patch</filename>
            <type>text/plain</type>
            <size>22515</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTYxNjIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMGZjM2VjN2JhNmVlODFhOGUyOGEw
ODU5NmQzYTdlZWViNWEzMDAyLi5kZjIzNzlhMjUxYjFiMThiNTYwZDIyZDVjMmQ5MTlkODEzYzAx
NjZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDktMjggIEpvbiBMZWUgIDxqb25sZWVA
YXBwbGUuY29tPgorCisgICAgICAgIEV4dGVuZCBET00gV2hlZWxFdmVudCB0byBkaWZmZXJlbnRp
YXRlIGJldHdlZW4gcGh5c2ljYWwgYW5kIGxvZ2ljYWwgc2Nyb2xsIGRpcmVjdGlvbnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4OTU5CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8xMDAzNjY4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvU2tpcHBlZDogV0tUUiBkb2Vz
IG5vdCBzdXBwb3J0IG1vdXNlIHNjcm9sbCBldmVudHMgeWV0LgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9mYXN0L2V2ZW50cy93aGVlbC1ldmVudC1kaXJlY3Rpb24taW52ZXJ0ZWQtZnJvbS1kZXZp
Y2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9ldmVu
dHMvd2hlZWwtZXZlbnQtZGlyZWN0aW9uLWludmVydGVkLWZyb20tZGV2aWNlLmh0bWw6IEFkZGVk
LgorCiAyMDExLTA5LTI3ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg5NDAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azIvU2tpcHBlZAppbmRleCBjZDFlZDBkYWQ2MGM4NjlhMDkwYWJhMTM0MzI2
YzM2MjkwMjFkMmEyLi5mMDhjNWMwYjRhMTQxMTc1Y2I0ZTJmMmZmODkwNjM3NWI3ZmQ3Zjc5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCkBAIC0xNjAsNiArMTYwLDcgQEAgZmFz
dC9ldmVudHMvc2VsZWN0c3RhcnQtcHJldmVudC1zZWxlY3Rpb24tb24tcmlnaHQtY2xpY2suaHRt
bAogZmFzdC9ldmVudHMvc3RhbmRhbG9uZS1pbWFnZS1kcmFnLXRvLWVkaXRhYmxlLmh0bWwKIGZh
c3QvZXZlbnRzL3doZWVsZXZlbnQtaW4taG9yaXpvbnRhbC1zY3JvbGxiYXItaW4tcnRsLmh0bWwK
IGZhc3QvZXZlbnRzL3doZWVsZXZlbnQtaW4tdmVydGljYWwtc2Nyb2xsYmFyLWluLXJ0bC5odG1s
CitmYXN0L2V2ZW50cy93aGVlbC1ldmVudC1kaXJlY3Rpb24taW52ZXJ0ZWQtZnJvbS1kZXZpY2Uu
aHRtbAogZmFzdC9maWxlcy9hcHBseS1ibG9iLXVybC10by14aHIuaHRtbAogZmFzdC9maWxlcy9m
aWxlLXJlYWRlci1hYm9ydC5odG1sCiBmYXN0L2ZpbGVzL3JlYWQtYmxvYi1hc3luYy5odG1sCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9ldmVudHMvd2hlZWwtZXZl
bnQtZGlyZWN0aW9uLWludmVydGVkLWZyb20tZGV2aWNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9mYXN0L2V2ZW50cy93aGVlbC1ldmVudC1kaXJlY3Rpb24taW52ZXJ0
ZWQtZnJvbS1kZXZpY2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzYWQxMjk1YjVmODYwZjU1
OTRmNzIwMGNlZmE5NTg4NjQ5OWM2OTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9ldmVudHMvd2hlZWwtZXZlbnQtZGlyZWN0aW9uLWludmVydGVkLWZy
b20tZGV2aWNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1Njcm9sbCBvdmVyIG1lCitz
ZW5kaW5nIHNjcm9sbCBldmVudCB0byBncmVlbiB0YXJnZXQKK1BBU1MgcmVzdWx0ICE9IHVuZGVm
aW5lZCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZXZlbnRz
L3doZWVsLWV2ZW50LWRpcmVjdGlvbi1pbnZlcnRlZC1mcm9tLWRldmljZS5odG1sIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZXZlbnRzL3doZWVsLWV2ZW50LWRpcmVjdGlvbi1pbnZl
cnRlZC1mcm9tLWRldmljZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmN2MzMTg1YTkxNDIzYWM4NzI3NWVh
OWQ2N2MxZDAyZGFlMjdkOWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9ldmVudHMvd2hlZWwtZXZlbnQtZGlyZWN0aW9uLWludmVydGVkLWZyb20tZGV2
aWNlLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxib2R5
PgorCis8ZGl2IHN0eWxlPSJ3aWR0aDoxMDBweDsgaGVpZ2h0OjgwcHg7IGJhY2tncm91bmQtY29s
b3I6Z3JlZW47IGNvbG9yOndoaXRlIiBpZD0idGFyZ2V0Ij5TY3JvbGwgb3ZlciBtZTwvZGl2Pgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKworPHNjcmlwdD4KK3ZhciB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpOwordmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpOwordmFyIHJl
c3VsdCA9IHVuZGVmaW5lZDsKK2Z1bmN0aW9uIHNjcm9sbEhhbmRsZXIoZXZlbnQpIHsKKyAgICBy
ZXN1bHQgPSBldmVudC5kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2U7CisgICAgZXZlbnQucHJl
dmVudERlZmF1bHQoKTsKK307Cit0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNld2hlZWwnLCBzY3Jv
bGxIYW5kbGVyLCBmYWxzZSk7CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYg
d2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgZGVidWcoInNlbmRpbmcgc2Nyb2xsIGV2ZW50IHRv
IGdyZWVuIHRhcmdldCIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHQub2Zmc2V0TGVm
dCArIDEwLCB0Lm9mZnNldFRvcCArIDEwKTsKKyAgICBldmVudFNlbmRlci5jb250aW51b3VzTW91
c2VTY3JvbGxCeSgwLDEwKTsKKyAgICBzaG91bGRCZVRydWUoJ3Jlc3VsdCAhPSB1bmRlZmluZWQn
KTsKK30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggMGM1MGMzYThlNDI2Nzg4MDBlZmUyZDhjM2ViMDE4YjU3OTNiNzcxNi4u
M2ZmN2RkZTA4ZDcxMWYzZDExMDUzMTFkYmNjOTI2ZDZhZTQzODA5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI3IEBACisyMDExLTA5LTI4ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKwor
ICAgICAgICBFeHRlbmQgRE9NIFdoZWVsRXZlbnQgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIHBo
eXNpY2FsIGFuZCBsb2dpY2FsIHNjcm9sbCBkaXJlY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODk1OQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMTAwMzY2ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOiBhZGRlZCB0aGUgV1RGX1BMQVRGT1JNX01BQyBp
bmNsdWRlIGZvciBwcm9wZXJseSBwcm9jZXNzaW5nIHRoZQorICAgICAgICBXaGVlbEV2ZW50IElE
TC4KKyAgICAgICAgKiBkb20vV2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaGVl
bEV2ZW50OjpXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnQ6OmluaXRX
aGVlbEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnREaXNwYXRjaE1lZGlhdG9y
OjpXaGVlbEV2ZW50RGlzcGF0Y2hNZWRpYXRvcik6CisgICAgICAgICogZG9tL1doZWVsRXZlbnQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpXaGVlbEV2ZW50OjpkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UpOgorICAgICAgICAq
IGRvbS9XaGVlbEV2ZW50LmlkbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZl
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVl
bEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxFdmVudDo6ZGlyZWN0aW9u
SW52ZXJ0ZWRGcm9tRGV2aWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2hlZWxFdmVudE1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVl
bEV2ZW50KToKKwogMjAxMS0wOS0yNyAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4OTQwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA3MmY0N2U0ZmQxMmE4M2EwNjgxOWIxYmFh
YmY4MWYyMGRiZTczMTFhLi45M2ZmNTkwNDY2MzE1MDQ0NTY0NGM0N2Y4NWQ1OTUzNjA5OWQxZWM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTYxNiw2ICs2MTYsOCBAQCBBRERJ
VElPTkFMX0lETF9ERUZJTkVTIDo9CiAKIGlmZXEgKCQoT1MpLE1BQ09TKQogCitBRERJVElPTkFM
X0lETF9ERUZJTkVTIDo9IFdURl9QTEFURk9STV9NQUMKKwogRlJBTUVXT1JLX0ZMQUdTID0gJChz
aGVsbCBlY2hvICQoQlVJTFRfUFJPRFVDVFNfRElSKSAkKEZSQU1FV09SS19TRUFSQ0hfUEFUSFMp
IHwgcGVybCAtZSAncHJpbnQgIi1GICIgLiBqb2luKCIgLUYgIiwgc3BsaXQoIiAiLCA8PikpOycp
CiAKIGlmZXEgKCQoc2hlbGwgZ2NjIC1FIC1QIC1kTSAkKEZSQU1FV09SS19GTEFHUykgV2ViQ29y
ZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvUGxhdGZvcm0uaCB8IGdyZXAgRU5BQkxFX0RBU0hCT0FS
RF9TVVBQT1JUIHwgY3V0IC1kJyAnIC1mMyksIDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5jcHAK
aW5kZXggODViNTYyMjU1ZDJmNjRmNzY4ODRhNGViZmU0NGViZWJhOTEzYTUxZC4uZmYyZWU4N2Vh
NTY0ODcyZjI2ZDFhMDExNmY1NjFhZTRkYzBmNTI2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1doZWVsRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50
LmNwcApAQCAtNDgsNiArNDgsMjEgQEAgV2hlZWxFdmVudDo6V2hlZWxFdmVudChjb25zdCBGbG9h
dFBvaW50JiB3aGVlbFRpY2tzLCBjb25zdCBGbG9hdFBvaW50JiByYXdEZWx0YSwKICAgICAsIG1f
Z3JhbnVsYXJpdHkoZ3JhbnVsYXJpdHkpCiB7CiB9CisjaWYgUExBVEZPUk0oTUFDKQorV2hlZWxF
dmVudDo6V2hlZWxFdmVudChjb25zdCBGbG9hdFBvaW50JiB3aGVlbFRpY2tzLCBjb25zdCBGbG9h
dFBvaW50JiByYXdEZWx0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgR3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHksIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LAorICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0IEludFBvaW50JiBw
YWdlTG9jYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBh
bHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRl
ZEZyb21EZXZpY2UpCisgICAgOiBNb3VzZVJlbGF0ZWRFdmVudChldmVudE5hbWVzKCkubW91c2V3
aGVlbEV2ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgdHJ1ZSwgdmlldywgMCwg
c2NyZWVuTG9jYXRpb24sIHBhZ2VMb2NhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGN0
cmxLZXksIGFsdEtleSwgc2hpZnRLZXksIG1ldGFLZXkpCisgICAgLCBtX3doZWVsRGVsdGEoSW50
UG9pbnQoc3RhdGljX2Nhc3Q8aW50Pih3aGVlbFRpY2tzLngoKSAqIHRpY2tNdWx0aXBsaWVyKSwg
c3RhdGljX2Nhc3Q8aW50Pih3aGVlbFRpY2tzLnkoKSAqIHRpY2tNdWx0aXBsaWVyKSkpCisgICAg
LCBtX3Jhd0RlbHRhKHJvdW5kZWRJbnRQb2ludChyYXdEZWx0YSkpCisgICAgLCBtX2dyYW51bGFy
aXR5KGdyYW51bGFyaXR5KQorICAgICwgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoZGly
ZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKQoreworfQorI2VuZGlmCiAKIHZvaWQgV2hlZWxFdmVu
dDo6aW5pdFdoZWVsRXZlbnQoaW50IHJhd0RlbHRhWCwgaW50IHJhd0RlbHRhWSwgUGFzc1JlZlB0
cjxBYnN0cmFjdFZpZXc+IHZpZXcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCkBAIC02OSw3ICs4
NCwxMSBAQCB2b2lkIFdoZWVsRXZlbnQ6OmluaXRXaGVlbEV2ZW50KGludCByYXdEZWx0YVgsIGlu
dCByYXdEZWx0YVksIFBhc3NSZWZQdHI8QWJzdHJhYwogICAgIAogICAgIG1fcmF3RGVsdGEgPSBJ
bnRQb2ludChyYXdEZWx0YVgsIHJhd0RlbHRhWSk7CiAgICAgbV9ncmFudWxhcml0eSA9IFBpeGVs
OwotICAgIAorCisjaWYgUExBVEZPUk0oTUFDKQorICAgIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9t
RGV2aWNlID0gZmFsc2U7CisjZW5kaWYKKwogICAgIGluaXRDb29yZGluYXRlcyhJbnRQb2ludChw
YWdlWCwgcGFnZVkpKTsKIH0KIApAQCAtMTAxLDkgKzEyMCwxNSBAQCBXaGVlbEV2ZW50RGlzcGF0
Y2hNZWRpYXRvcjo6V2hlZWxFdmVudERpc3BhdGNoTWVkaWF0b3IoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JgogICAgIGlmICghKGV2ZW50LmRlbHRhWCgpIHx8IGV2ZW50LmRlbHRhWSgpKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgc2V0RXZlbnQoV2hlZWxFdmVudDo6Y3JlYXRlKEZsb2F0UG9p
bnQoZXZlbnQud2hlZWxUaWNrc1goKSwgZXZlbnQud2hlZWxUaWNrc1koKSksIEZsb2F0UG9pbnQo
ZXZlbnQuZGVsdGFYKCksIGV2ZW50LmRlbHRhWSgpKSwgZ3JhbnVsYXJpdHkoZXZlbnQpLAotICAg
ICAgICB2aWV3LCBJbnRQb2ludChldmVudC5nbG9iYWxYKCksIGV2ZW50Lmdsb2JhbFkoKSksIElu
dFBvaW50KGV2ZW50LngoKSwgZXZlbnQueSgpKSwgZXZlbnQuY3RybEtleSgpLCBldmVudC5hbHRL
ZXkoKSwgZXZlbnQuc2hpZnRLZXkoKSwgZXZlbnQubWV0YUtleSgpKSk7Ci0KKyNpZiBQTEFURk9S
TShNQUMpCisgICAgc2V0RXZlbnQoV2hlZWxFdmVudDo6Y3JlYXRlKEZsb2F0UG9pbnQoZXZlbnQu
d2hlZWxUaWNrc1goKSwgZXZlbnQud2hlZWxUaWNrc1koKSksIEZsb2F0UG9pbnQoZXZlbnQuZGVs
dGFYKCksIGV2ZW50LmRlbHRhWSgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z3JhbnVsYXJpdHkoZXZlbnQpLCB2aWV3LCBJbnRQb2ludChldmVudC5nbG9iYWxYKCksIGV2ZW50
Lmdsb2JhbFkoKSksIEludFBvaW50KGV2ZW50LngoKSwgZXZlbnQueSgpKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZXZlbnQuY3RybEtleSgpLCBldmVudC5hbHRLZXkoKSwgZXZl
bnQuc2hpZnRLZXkoKSwgZXZlbnQubWV0YUtleSgpLCBldmVudC5kaXJlY3Rpb25JbnZlcnRlZEZy
b21EZXZpY2UoKSkpOworI2Vsc2UKKyAgICBzZXRFdmVudChXaGVlbEV2ZW50OjpjcmVhdGUoRmxv
YXRQb2ludChldmVudC53aGVlbFRpY2tzWCgpLCBldmVudC53aGVlbFRpY2tzWSgpKSwgRmxvYXRQ
b2ludChldmVudC5kZWx0YVgoKSwgZXZlbnQuZGVsdGFZKCkpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBncmFudWxhcml0eShldmVudCksIHZpZXcsIEludFBvaW50KGV2ZW50Lmds
b2JhbFgoKSwgZXZlbnQuZ2xvYmFsWSgpKSwgSW50UG9pbnQoZXZlbnQueCgpLCBldmVudC55KCkp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5jdHJsS2V5KCksIGV2ZW50
LmFsdEtleSgpLCBldmVudC5zaGlmdEtleSgpLCBldmVudC5tZXRhS2V5KCkpKTsKKyNlbmRpZgog
fQogCiBXaGVlbEV2ZW50KiBXaGVlbEV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6ZXZlbnQoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmgKaW5kZXggNTIyM2NlNDMzODhlNmY5MzZmNzI1YzA0M2Ix
YzYzOWJiYjY4NTNlYi4uNjY1ZTk4YTlmOWViNjVjOGM3ZWEyYWY3ZTQ5MTBlZDdkODhmY2YxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vV2hlZWxFdmVudC5oCkBAIC00OSw2ICs0OSwxNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdoZWVsRXZlbnQod2hlZWxU
aWNrcywgcmF3RGVsdGEsIGdyYW51bGFyaXR5LCB2aWV3LAogICAgICAgICAgICAgICAgIHNjcmVl
bkxvY2F0aW9uLCBwYWdlTG9jYXRpb24sIGN0cmxLZXksIGFsdEtleSwgc2hpZnRLZXksIG1ldGFL
ZXkpKTsKICAgICAgICAgfQorI2lmIFBMQVRGT1JNKE1BQykKKyAgICAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8V2hlZWxFdmVudD4gY3JlYXRlKGNvbnN0IEZsb2F0UG9pbnQmIHdoZWVsVGlja3MsCisg
ICAgICAgICAgICBjb25zdCBGbG9hdFBvaW50JiByYXdEZWx0YSwgR3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHksIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LAorICAgICAgICAgICAgY29uc3Qg
SW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgcGFnZUxvY2F0aW9uLAor
ICAgICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9v
bCBtZXRhS2V5LCBib29sIGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSkKKyAgICAgICAgewor
ICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXaGVlbEV2ZW50KHdoZWVsVGlja3MsIHJh
d0RlbHRhLCBncmFudWxhcml0eSwgdmlldywKKyAgICAgICAgICAgICAgICBzY3JlZW5Mb2NhdGlv
biwgcGFnZUxvY2F0aW9uLCBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5LCBkaXJl
Y3Rpb25JbnZlcnRlZEZyb21EZXZpY2UpKTsKKyAgICAgICAgfQorI2VuZGlmCiAKICAgICAgICAg
dm9pZCBpbml0V2hlZWxFdmVudChpbnQgcmF3RGVsdGFYLCBpbnQgcmF3RGVsdGFZLCBQYXNzUmVm
UHRyPEFic3RyYWN0Vmlldz4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNjcmVl
blgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwKQEAgLTY1LDYgKzc1LDkgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBpbnQgcmF3RGVsdGFZKCkgY29uc3QgeyByZXR1
cm4gbV9yYXdEZWx0YS55KCk7IH0KICAgICAgICAgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkoKSBj
b25zdCB7IHJldHVybiBtX2dyYW51bGFyaXR5OyB9CiAKKyNpZiBQTEFURk9STShNQUMpCisgICAg
ICAgIGJvb2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9k
aXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2U7IH0KKyNlbmRpZgogICAgICAgICAvLyBOZWVkZWQg
Zm9yIE9iamVjdGl2ZS1DIGxlZ2FjeSBzdXBwb3J0CiAgICAgICAgIGJvb2wgaXNIb3Jpem9udGFs
KCkgY29uc3QgeyByZXR1cm4gbV93aGVlbERlbHRhLngoKTsgfQogCkBAIC03NCwxMiArODcsMjEg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgICAgICAgIEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5LCBQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4sCiAgICAgICAgICAgICAgICAgICAg
Y29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgcGFnZUxvY2F0
aW9uLAogICAgICAgICAgICAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wg
c2hpZnRLZXksIGJvb2wgbWV0YUtleSk7CisjaWYgUExBVEZPUk0oTUFDKQorICAgICAgICBXaGVl
bEV2ZW50KGNvbnN0IEZsb2F0UG9pbnQmIHdoZWVsVGlja3MsIGNvbnN0IEZsb2F0UG9pbnQmIHJh
d0RlbHRhLAorICAgICAgICAgICAgR3JhbnVsYXJpdHksIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3
PiwKKyAgICAgICAgICAgIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50
UG9pbnQmIHBhZ2VMb2NhdGlvbiwKKyAgICAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRL
ZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZy
b21EZXZpY2UpOworI2VuZGlmCiAKICAgICAgICAgdmlydHVhbCBib29sIGlzV2hlZWxFdmVudCgp
IGNvbnN0OwogCiAgICAgICAgIEludFBvaW50IG1fd2hlZWxEZWx0YTsKICAgICAgICAgSW50UG9p
bnQgbV9yYXdEZWx0YTsKICAgICAgICAgR3JhbnVsYXJpdHkgbV9ncmFudWxhcml0eTsKKyNpZiBQ
TEFURk9STShNQUMpCisgICAgICAgIGJvb2wgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2U7
CisjZW5kaWYKICAgICB9OwogCiBjbGFzcyBXaGVlbEV2ZW50RGlzcGF0Y2hNZWRpYXRvciA6IHB1
YmxpYyBFdmVudERpc3BhdGNoTWVkaWF0b3IgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1doZWVsRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaWRsCmlu
ZGV4IGJkODE1MWI3YTYwODVlYzcxNTFhNzMxNzAzYTJiNmIyMmYzNmZhZTYuLjE3NWY1MjEyNGZk
ZGQ2MzlmYzEyMmJlZDM4YWQ0ZTIyNjYyNzRhN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9XaGVlbEV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5p
ZGwKQEAgLTQwLDYgKzQwLDkgQEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBsb25nICAgIHg7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgIHk7
CiAKKyNpZiBkZWZpbmVkKFdURl9QTEFURk9STV9NQUMpICYmIFdURl9QTEFURk9STV9NQUMKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2
aWNlOworI2VuZGlmIC8qIFBMQVRGT1JNKFdURl9QTEFURk9STV9NQUMpICovCiAjaWYgZGVmaW5l
ZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNIb3Jpem9udGFsOwogI2VuZGlmIC8qIGRlZmlu
ZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bs
YXRmb3JtV2hlZWxFdmVudC5oCmluZGV4IDUzN2VmNGMwOGEyMzcyNDBmYjZhOWExNWE4MWViYWNh
MzE4N2I3NmQuLmE2OGRhYTIxYzg1MmRmMDllMDQ2OWI2N2JiMmU2NjBlODUxZGFiNTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCkBAIC0xMDIsNiAr
MTAyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgLCBtX3BoYXNlKFBsYXRm
b3JtV2hlZWxFdmVudFBoYXNlTm9uZSkKICAgICAgICAgICAgICwgbV9tb21lbnR1bVBoYXNlKFBs
YXRmb3JtV2hlZWxFdmVudFBoYXNlTm9uZSkKICAgICAgICAgICAgICwgbV90aW1lc3RhbXAoMCkK
KyAgICAgICAgICAgICwgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoZmFsc2UpCiAjZW5k
aWYKICAgICAgICAgewogICAgICAgICB9CkBAIC0xMjQsNiArMTI1LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICAgICAgLCBtX3BoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlTm9u
ZSkKICAgICAgICAgICAgICwgbV9tb21lbnR1bVBoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNl
Tm9uZSkKICAgICAgICAgICAgICwgbV90aW1lc3RhbXAoMCkKKyAgICAgICAgICAgICwgbV9kaXJl
Y3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoZmFsc2UpCiAjZW5kaWYKICAgICAgICAgewogICAgICAg
ICB9CkBAIC0xODEsNiArMTgzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBQbGF0
Zm9ybVdoZWVsRXZlbnRQaGFzZSBtb21lbnR1bVBoYXNlKCkgY29uc3QgeyByZXR1cm4gbV9tb21l
bnR1bVBoYXNlOyB9CiAgICAgICAgIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcygpIGNv
bnN0IHsgcmV0dXJuIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhczsgfQogICAgICAgICBkb3Vi
bGUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KKyAgICAgICAgYm9v
bCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2RpcmVjdGlv
bkludmVydGVkRnJvbURldmljZTsgfQogI2VuZGlmCiAKICNpZiBQTEFURk9STShRVCkKQEAgLTIy
MCw2ICsyMjMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFBsYXRmb3JtV2hlZWxF
dmVudFBoYXNlIG1fcGhhc2U7CiAgICAgICAgIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlIG1fbW9t
ZW50dW1QaGFzZTsKICAgICAgICAgZG91YmxlIG1fdGltZXN0YW1wOworICAgICAgICBib29sIG1f
ZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlOwogI2VuZGlmCiAgICAgfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1doZWVsRXZlbnRNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2hlZWxFdmVudE1hYy5tbQppbmRleCAyNDk0ZTY5YWJhZDI2
MTVjYjZkODRiNDI0ZWEzNDY2NDk2NDY2NGU3Li5jYjBkZDI0MTM3MDc1NjZhNTZkNWIwY2IwN2Mw
MjRkZDQwOGYzNTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2hl
ZWxFdmVudE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2hlZWxFdmVu
dE1hYy5tbQpAQCAtMTAxLDYgKzEwMSw3IEBAIFBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1X
aGVlbEV2ZW50KE5TRXZlbnQqIGV2ZW50LCBOU1ZpZXcgKndpbmRvd1ZpZXcpCiAgICAgLCBtX3Bo
YXNlKHBoYXNlRm9yRXZlbnQoZXZlbnQpKQogICAgICwgbV9tb21lbnR1bVBoYXNlKG1vbWVudHVt
UGhhc2VGb3JFdmVudChldmVudCkpCiAgICAgLCBtX3RpbWVzdGFtcChbZXZlbnQgdGltZXN0YW1w
XSkKKyAgICAsIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKFtldmVudCBpc0RpcmVjdGlv
bkludmVydGVkRnJvbURldmljZV0pCiB7CiAgICAgQk9PTCBjb250aW51b3VzOwogICAgIHdrR2V0
V2hlZWxFdmVudERlbHRhcyhldmVudCwgJm1fZGVsdGFYLCAmbV9kZWx0YVksICZjb250aW51b3Vz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCAwNTAyM2QzZTVhNGJhZDdlZWQxMGMyZTg0MjcxMTNhM2M3ZjJhY2Rj
Li4xZWMxYzQ2Y2NkNjBmOWMyOTAyMGQxNGU5ZTI4ZmU5MDA2ODQwMGJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTEtMDktMjggIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgor
CisgICAgICAgIEV4dGVuZCBET00gV2hlZWxFdmVudCB0byBkaWZmZXJlbnRpYXRlIGJldHdlZW4g
cGh5c2ljYWwgYW5kIGxvZ2ljYWwgc2Nyb2xsIGRpcmVjdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4OTU5CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8xMDAzNjY4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFNoYXJlZC9XZWJFdmVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2
ZW50OjpkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UpOgorICAgICAgICAqIFNoYXJlZC9XZWJF
dmVudENvbnZlcnNpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJLaXQyUGxhdGZvcm1XaGVl
bEV2ZW50OjpXZWJLaXQyUGxhdGZvcm1XaGVlbEV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
V2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6OldlYldoZWVs
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjplbmNvZGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMv
V2ViRXZlbnRGYWN0b3J5Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNy
ZWF0ZVdlYldoZWVsRXZlbnQpOiBnZXQgdGhlIGZsYWcgZnJvbSB0aGUgTlNFdmVudC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Y29hbGVz
Y2UpOgorCiAyMDExLTA5LTI3ICBHb3BhbCBSYWdoYXZhbiAgPGdvcGFsLjEucmFnaGF2YW5Abm9r
aWEuY29tPgogCiAgICAgICAgIFtRdF0gUURlc2t0b3BXZWJWaWV3IGxvYWQgemVybyBzaXplIHZp
ZXcgdGVzdCBtaXNzaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZl
bnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5oCmluZGV4IDE3OGM1MGRmMWU5
NGQ2NWM0ZDEwYTliNzI3MGE0YTFjMzkyODk0ZDMuLjg4Yzg0NjlkYTQwYzU0YjYyOGFmMGFiMDdi
ZGY0ZmQ0MDE1NGI1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5oCkBAIC0xNzksNyArMTc5
LDcgQEAgcHVibGljOgogCiAgICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlv
biwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgTW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1w
KTsKICNpZiBQTEFURk9STShNQUMpCi0gICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgUGhhc2UgcGhhc2UsIFBoYXNlIG1v
bWVudHVtUGhhc2UsYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCBNb2RpZmllcnMsIGRv
dWJsZSB0aW1lc3RhbXApOworICAgIFdlYldoZWVsRXZlbnQoVHlwZSwgY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRp
b24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHksIFBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNl
LCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIE1vZGlmaWVycywgZG91YmxlIHRpbWVz
dGFtcCwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UpOwogI2VuZGlmCiAKICAgICBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRp
b247IH0KQEAgLTE5MSw2ICsxOTEsNyBAQCBwdWJsaWM6CiAgICAgUGhhc2UgcGhhc2UoKSBjb25z
dCB7IHJldHVybiBzdGF0aWNfY2FzdDxQaGFzZT4obV9waGFzZSk7IH0KICAgICBQaGFzZSBtb21l
bnR1bVBoYXNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UGhhc2U+KG1fbW9tZW50dW1Q
aGFzZSk7IH0KICAgICBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMoKSBjb25zdCB7IHJl
dHVybiBtX2hhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXM7IH0KKyAgICBib29sIGRpcmVjdGlvbklu
dmVydGVkRnJvbURldmljZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9t
RGV2aWNlOyB9CiAjZW5kaWYKIAogICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciopIGNvbnN0OwpAQCAtMjA4LDYgKzIwOSw3IEBAIHByaXZhdGU6CiAgICAgdWludDMyX3Qg
bV9waGFzZTsgLy8gUGhhc2UKICAgICB1aW50MzJfdCBtX21vbWVudHVtUGhhc2U7IC8vIFBoYXNl
CiAgICAgYm9vbCBtX2hhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXM7CisgICAgYm9vbCBtX2RpcmVj
dGlvbkludmVydGVkRnJvbURldmljZTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcAppbmRleCA5YzJmYWQxN2ZmNTliNjNlNjg3YjVk
Y2RmMDAzNTQwNjgwYmM0Njg4Li4yMjM1NWRiYjEyMTNhM2VmMmIyMTkzYTkxYTFmNjhiYTczZWYz
ZTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcApA
QCAtMTE1LDYgKzExNSw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9tb21lbnR1bVBoYXNlID0gc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U+KHdlYkV2ZW50Lm1vbWVu
dHVtUGhhc2UoKSk7CiAgICAgICAgIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyA9IHdlYkV2
ZW50Lmhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMoKTsKICAgICAgICAgbV90aW1lc3RhbXAgPSB3
ZWJFdmVudC50aW1lc3RhbXAoKTsKKyAgICAgICAgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZp
Y2UgPSB3ZWJFdmVudC5kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoKTsKICNlbmRpZgogICAg
IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViV2hlZWxFdmVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAKaW5kZXggNTk0MGJj
YzliZDc2NjQ1YjJkNGY0NTI1MzQ5YzA3Y2Q5NjQ4Yzc1ZS4uY2VhYjhhODZmYzdkZjFlZWVmNjgz
N2FkZDE0MjZjNjQwYjM1OTU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YldoZWVsRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJXaGVlbEV2ZW50
LmNwcApAQCAtNDMsMTMgKzQzLDE0IEBAIFdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlw
ZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50CiAjaWYgUExB
VEZPUk0oTUFDKQogICAgICwgbV9waGFzZShQaGFzZU5vbmUpCiAgICAgLCBtX2hhc1ByZWNpc2VT
Y3JvbGxpbmdEZWx0YXMoZmFsc2UpCisgICAgLCBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmlj
ZShmYWxzZSkKICNlbmRpZgogewogICAgIEFTU0VSVChpc1doZWVsRXZlbnRUeXBlKHR5cGUpKTsK
IH0KIAogI2lmIFBMQVRGT1JNKE1BQykKLVdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlw
ZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRp
Y2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgUGhhc2UgcGhhc2UsIFBoYXNlIG1vbWVudHVt
UGhhc2UsIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgTW9kaWZpZXJzIG1vZGlmaWVy
cywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0
eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3Np
dGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tz
LCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgUGhhc2UgcGhhc2UsIFBoYXNlIG1vbWVudHVtUGhh
c2UsIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgTW9kaWZpZXJzIG1vZGlmaWVycywg
ZG91YmxlIHRpbWVzdGFtcCwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UpCiAgICAg
OiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fcG9zaXRpb24o
cG9zaXRpb24pCiAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uKQpAQCAtNTks
NiArNjAsNyBAQCBXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3Qg
SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludAogICAgICwgbV9waGFzZShwaGFzZSkK
ICAgICAsIG1fbW9tZW50dW1QaGFzZShtb21lbnR1bVBoYXNlKQogICAgICwgbV9oYXNQcmVjaXNl
U2Nyb2xsaW5nRGVsdGFzKGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMpCisgICAgLCBtX2RpcmVj
dGlvbkludmVydGVkRnJvbURldmljZShkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UpCiB7CiAg
ICAgQVNTRVJUKGlzV2hlZWxFdmVudFR5cGUodHlwZSkpOwogfQpAQCAtNzcsNiArNzksNyBAQCB2
b2lkIFdlYldoZWVsRXZlbnQ6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29k
ZXIpIGNvbnN0CiAgICAgZW5jb2Rlci0+ZW5jb2RlKG1fcGhhc2UpOwogICAgIGVuY29kZXItPmVu
Y29kZShtX21vbWVudHVtUGhhc2UpOwogICAgIGVuY29kZXItPmVuY29kZShtX2hhc1ByZWNpc2VT
Y3JvbGxpbmdEZWx0YXMpOworICAgIGVuY29kZXItPmVuY29kZShtX2RpcmVjdGlvbkludmVydGVk
RnJvbURldmljZSk7CiAjZW5kaWYKIH0KIApAQCAtMTAxLDYgKzEwNCw4IEBAIGJvb2wgV2ViV2hl
ZWxFdmVudDo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViV2hl
ZWxFdmVudCYgdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlKHQubV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHQubV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZp
Y2UpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKICAgICByZXR1cm4gdHJ1ZTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1t
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KaW5kZXggMDQ2
ZjU3MmY4MDY1ZDhhNDhkNzM1MGY2NTM2NmM2NDdjMTgyYzQ0Ny4uMWFlNTA1MzAwOTJhOGZkY2Mz
MzVhZDM5NjA1MTg4MmU0NGYwNzFmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9XZWJFdmVudEZhY3RvcnkubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9X
ZWJFdmVudEZhY3RvcnkubW0KQEAgLTEwOTYsOCArMTA5NiwxMiBAQCBXZWJXaGVlbEV2ZW50IFdl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChOU0V2ZW50ICpldmVudCwgTlNWaWV3
ICp3aW5kbwogICAgIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyAgICAgICAgICA9IGNv
bnRpbnVvdXM7CiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgICAgICAgICAgID0g
bW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwogICAgIGRvdWJsZSB0aW1lc3RhbXAgICAgICAgICAg
ICAgICAgICAgICAgICA9IFtldmVudCB0aW1lc3RhbXBdOwotICAgIAotICAgIHJldHVybiBXZWJX
aGVlbEV2ZW50KFdlYkV2ZW50OjpXaGVlbCwgSW50UG9pbnQocG9zaXRpb24pLCBJbnRQb2ludChn
bG9iYWxQb3NpdGlvbiksIEZsb2F0U2l6ZShkZWx0YVgsIGRlbHRhWSksIEZsb2F0U2l6ZSh3aGVl
bFRpY2tzWCwgd2hlZWxUaWNrc1kpLCBncmFudWxhcml0eSwgcGhhc2UsIG1vbWVudHVtUGhhc2Us
IGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIG1vZGlmaWVycywgdGltZXN0YW1wKTsKKyNpZiAh
QlVJTERJTkdfT05fU05PV19MRU9QQVJECisgICAgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21E
ZXZpY2UgICAgICAgID0gW2V2ZW50IGlzRGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlXTsKKyNl
bHNlCisgICAgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UgICAgICAgID0gZmFsc2U7
CisjZW5kaWYKKyAgICByZXR1cm4gV2ViV2hlZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIEludFBv
aW50KHBvc2l0aW9uKSwgSW50UG9pbnQoZ2xvYmFsUG9zaXRpb24pLCBGbG9hdFNpemUoZGVsdGFY
LCBkZWx0YVkpLCBGbG9hdFNpemUod2hlZWxUaWNrc1gsIHdoZWVsVGlja3NZKSwgZ3JhbnVsYXJp
dHksIHBoYXNlLCBtb21lbnR1bVBoYXNlLCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCBtb2Rp
ZmllcnMsIHRpbWVzdGFtcCwgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKTsKIH0KIAogV2Vi
S2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNF
dmVudCAqZXZlbnQsIE5TVmlldyAqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAppbmRleCAxMjczYmM5NjQxZTQ4OGMyNjczMWNjM2M2ZmVjMTljNzc4MWVkMGIzLi41
Nzc4NjRmZWI1YmY0NDAwZmFiMmIwZDFhM2MyZmEwOWQ3OGFkZmEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjY2NCw3ICsyNjY0LDcgQEAgc3RhdGlj
IFdlYldoZWVsRXZlbnQgY29hbGVzY2UoY29uc3QgV2ViV2hlZWxFdmVudCYgYSwgY29uc3QgV2Vi
V2hlZWxFdmVudCYgYikKICAgICBGbG9hdFNpemUgbWVyZ2VkV2hlZWxUaWNrcyA9IGEud2hlZWxU
aWNrcygpICsgYi53aGVlbFRpY2tzKCk7CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgcmV0dXJu
IFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBiLnBvc2l0aW9uKCksIGIuZ2xvYmFsUG9z
aXRpb24oKSwgbWVyZ2VkRGVsdGEsIG1lcmdlZFdoZWVsVGlja3MsIGIuZ3JhbnVsYXJpdHkoKSwg
Yi5waGFzZSgpLCBiLm1vbWVudHVtUGhhc2UoKSwgYi5oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFz
KCksIGIubW9kaWZpZXJzKCksIGIudGltZXN0YW1wKCkpOworICAgIHJldHVybiBXZWJXaGVlbEV2
ZW50KFdlYkV2ZW50OjpXaGVlbCwgYi5wb3NpdGlvbigpLCBiLmdsb2JhbFBvc2l0aW9uKCksIG1l
cmdlZERlbHRhLCBtZXJnZWRXaGVlbFRpY2tzLCBiLmdyYW51bGFyaXR5KCksIGIucGhhc2UoKSwg
Yi5tb21lbnR1bVBoYXNlKCksIGIuaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcygpLCBiLm1vZGlm
aWVycygpLCBiLnRpbWVzdGFtcCgpLCBiLmRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSgpKTsK
ICNlbHNlCiAgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBiLnBvc2l0
aW9uKCksIGIuZ2xvYmFsUG9zaXRpb24oKSwgbWVyZ2VkRGVsdGEsIG1lcmdlZFdoZWVsVGlja3Ms
IGIuZ3JhbnVsYXJpdHkoKSwgYi5tb2RpZmllcnMoKSwgYi50aW1lc3RhbXAoKSk7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109079</attachid>
            <date>2011-09-28 14:39:52 -0700</date>
            <delta_ts>2011-09-28 16:02:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68959-20110928143956.patch</filename>
            <type>text/plain</type>
            <size>22524</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTYxNjIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMGZjM2VjN2JhNmVlODFhOGUyOGEw
ODU5NmQzYTdlZWViNWEzMDAyLi5kZjIzNzlhMjUxYjFiMThiNTYwZDIyZDVjMmQ5MTlkODEzYzAx
NjZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDktMjggIEpvbiBMZWUgIDxqb25sZWVA
YXBwbGUuY29tPgorCisgICAgICAgIEV4dGVuZCBET00gV2hlZWxFdmVudCB0byBkaWZmZXJlbnRp
YXRlIGJldHdlZW4gcGh5c2ljYWwgYW5kIGxvZ2ljYWwgc2Nyb2xsIGRpcmVjdGlvbnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4OTU5CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8xMDAzNjY4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvU2tpcHBlZDogV0tUUiBkb2Vz
IG5vdCBzdXBwb3J0IG1vdXNlIHNjcm9sbCBldmVudHMgeWV0LgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9mYXN0L2V2ZW50cy93aGVlbC1ldmVudC1kaXJlY3Rpb24taW52ZXJ0ZWQtZnJvbS1kZXZp
Y2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9ldmVu
dHMvd2hlZWwtZXZlbnQtZGlyZWN0aW9uLWludmVydGVkLWZyb20tZGV2aWNlLmh0bWw6IEFkZGVk
LgorCiAyMDExLTA5LTI3ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg5NDAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azIvU2tpcHBlZAppbmRleCBjZDFlZDBkYWQ2MGM4NjlhMDkwYWJhMTM0MzI2
YzM2MjkwMjFkMmEyLi5mMDhjNWMwYjRhMTQxMTc1Y2I0ZTJmMmZmODkwNjM3NWI3ZmQ3Zjc5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCkBAIC0xNjAsNiArMTYwLDcgQEAgZmFz
dC9ldmVudHMvc2VsZWN0c3RhcnQtcHJldmVudC1zZWxlY3Rpb24tb24tcmlnaHQtY2xpY2suaHRt
bAogZmFzdC9ldmVudHMvc3RhbmRhbG9uZS1pbWFnZS1kcmFnLXRvLWVkaXRhYmxlLmh0bWwKIGZh
c3QvZXZlbnRzL3doZWVsZXZlbnQtaW4taG9yaXpvbnRhbC1zY3JvbGxiYXItaW4tcnRsLmh0bWwK
IGZhc3QvZXZlbnRzL3doZWVsZXZlbnQtaW4tdmVydGljYWwtc2Nyb2xsYmFyLWluLXJ0bC5odG1s
CitmYXN0L2V2ZW50cy93aGVlbC1ldmVudC1kaXJlY3Rpb24taW52ZXJ0ZWQtZnJvbS1kZXZpY2Uu
aHRtbAogZmFzdC9maWxlcy9hcHBseS1ibG9iLXVybC10by14aHIuaHRtbAogZmFzdC9maWxlcy9m
aWxlLXJlYWRlci1hYm9ydC5odG1sCiBmYXN0L2ZpbGVzL3JlYWQtYmxvYi1hc3luYy5odG1sCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9ldmVudHMvd2hlZWwtZXZl
bnQtZGlyZWN0aW9uLWludmVydGVkLWZyb20tZGV2aWNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9mYXN0L2V2ZW50cy93aGVlbC1ldmVudC1kaXJlY3Rpb24taW52ZXJ0
ZWQtZnJvbS1kZXZpY2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzYWQxMjk1YjVmODYwZjU1
OTRmNzIwMGNlZmE5NTg4NjQ5OWM2OTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9ldmVudHMvd2hlZWwtZXZlbnQtZGlyZWN0aW9uLWludmVydGVkLWZy
b20tZGV2aWNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1Njcm9sbCBvdmVyIG1lCitz
ZW5kaW5nIHNjcm9sbCBldmVudCB0byBncmVlbiB0YXJnZXQKK1BBU1MgcmVzdWx0ICE9IHVuZGVm
aW5lZCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZXZlbnRz
L3doZWVsLWV2ZW50LWRpcmVjdGlvbi1pbnZlcnRlZC1mcm9tLWRldmljZS5odG1sIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZXZlbnRzL3doZWVsLWV2ZW50LWRpcmVjdGlvbi1pbnZl
cnRlZC1mcm9tLWRldmljZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmN2MzMTg1YTkxNDIzYWM4NzI3NWVh
OWQ2N2MxZDAyZGFlMjdkOWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9ldmVudHMvd2hlZWwtZXZlbnQtZGlyZWN0aW9uLWludmVydGVkLWZyb20tZGV2
aWNlLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxib2R5
PgorCis8ZGl2IHN0eWxlPSJ3aWR0aDoxMDBweDsgaGVpZ2h0OjgwcHg7IGJhY2tncm91bmQtY29s
b3I6Z3JlZW47IGNvbG9yOndoaXRlIiBpZD0idGFyZ2V0Ij5TY3JvbGwgb3ZlciBtZTwvZGl2Pgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKworPHNjcmlwdD4KK3ZhciB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpOwordmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpOwordmFyIHJl
c3VsdCA9IHVuZGVmaW5lZDsKK2Z1bmN0aW9uIHNjcm9sbEhhbmRsZXIoZXZlbnQpIHsKKyAgICBy
ZXN1bHQgPSBldmVudC5kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2U7CisgICAgZXZlbnQucHJl
dmVudERlZmF1bHQoKTsKK307Cit0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNld2hlZWwnLCBzY3Jv
bGxIYW5kbGVyLCBmYWxzZSk7CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYg
d2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgZGVidWcoInNlbmRpbmcgc2Nyb2xsIGV2ZW50IHRv
IGdyZWVuIHRhcmdldCIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHQub2Zmc2V0TGVm
dCArIDEwLCB0Lm9mZnNldFRvcCArIDEwKTsKKyAgICBldmVudFNlbmRlci5jb250aW51b3VzTW91
c2VTY3JvbGxCeSgwLDEwKTsKKyAgICBzaG91bGRCZVRydWUoJ3Jlc3VsdCAhPSB1bmRlZmluZWQn
KTsKK30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggMGM1MGMzYThlNDI2Nzg4MDBlZmUyZDhjM2ViMDE4YjU3OTNiNzcxNi4u
M2ZmN2RkZTA4ZDcxMWYzZDExMDUzMTFkYmNjOTI2ZDZhZTQzODA5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI3IEBACisyMDExLTA5LTI4ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKwor
ICAgICAgICBFeHRlbmQgRE9NIFdoZWVsRXZlbnQgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIHBo
eXNpY2FsIGFuZCBsb2dpY2FsIHNjcm9sbCBkaXJlY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODk1OQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMTAwMzY2ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOiBhZGRlZCB0aGUgV1RGX1BMQVRGT1JNX01BQyBp
bmNsdWRlIGZvciBwcm9wZXJseSBwcm9jZXNzaW5nIHRoZQorICAgICAgICBXaGVlbEV2ZW50IElE
TC4KKyAgICAgICAgKiBkb20vV2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaGVl
bEV2ZW50OjpXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnQ6OmluaXRX
aGVlbEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnREaXNwYXRjaE1lZGlhdG9y
OjpXaGVlbEV2ZW50RGlzcGF0Y2hNZWRpYXRvcik6CisgICAgICAgICogZG9tL1doZWVsRXZlbnQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpXaGVlbEV2ZW50OjpkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UpOgorICAgICAgICAq
IGRvbS9XaGVlbEV2ZW50LmlkbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZl
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVl
bEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxFdmVudDo6ZGlyZWN0aW9u
SW52ZXJ0ZWRGcm9tRGV2aWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2hlZWxFdmVudE1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVl
bEV2ZW50KToKKwogMjAxMS0wOS0yNyAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4OTQwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA3MmY0N2U0ZmQxMmE4M2EwNjgxOWIxYmFh
YmY4MWYyMGRiZTczMTFhLi45M2ZmNTkwNDY2MzE1MDQ0NTY0NGM0N2Y4NWQ1OTUzNjA5OWQxZWM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTYxNiw2ICs2MTYsOCBAQCBBRERJ
VElPTkFMX0lETF9ERUZJTkVTIDo9CiAKIGlmZXEgKCQoT1MpLE1BQ09TKQogCitBRERJVElPTkFM
X0lETF9ERUZJTkVTIDo9IFdURl9QTEFURk9STV9NQUMKKwogRlJBTUVXT1JLX0ZMQUdTID0gJChz
aGVsbCBlY2hvICQoQlVJTFRfUFJPRFVDVFNfRElSKSAkKEZSQU1FV09SS19TRUFSQ0hfUEFUSFMp
IHwgcGVybCAtZSAncHJpbnQgIi1GICIgLiBqb2luKCIgLUYgIiwgc3BsaXQoIiAiLCA8PikpOycp
CiAKIGlmZXEgKCQoc2hlbGwgZ2NjIC1FIC1QIC1kTSAkKEZSQU1FV09SS19GTEFHUykgV2ViQ29y
ZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvUGxhdGZvcm0uaCB8IGdyZXAgRU5BQkxFX0RBU0hCT0FS
RF9TVVBQT1JUIHwgY3V0IC1kJyAnIC1mMyksIDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5jcHAK
aW5kZXggODViNTYyMjU1ZDJmNjRmNzY4ODRhNGViZmU0NGViZWJhOTEzYTUxZC4uZmYyZWU4N2Vh
NTY0ODcyZjI2ZDFhMDExNmY1NjFhZTRkYzBmNTI2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1doZWVsRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50
LmNwcApAQCAtNDgsNiArNDgsMjEgQEAgV2hlZWxFdmVudDo6V2hlZWxFdmVudChjb25zdCBGbG9h
dFBvaW50JiB3aGVlbFRpY2tzLCBjb25zdCBGbG9hdFBvaW50JiByYXdEZWx0YSwKICAgICAsIG1f
Z3JhbnVsYXJpdHkoZ3JhbnVsYXJpdHkpCiB7CiB9CisjaWYgUExBVEZPUk0oTUFDKQorV2hlZWxF
dmVudDo6V2hlZWxFdmVudChjb25zdCBGbG9hdFBvaW50JiB3aGVlbFRpY2tzLCBjb25zdCBGbG9h
dFBvaW50JiByYXdEZWx0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgR3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHksIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LAorICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0IEludFBvaW50JiBw
YWdlTG9jYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBh
bHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRl
ZEZyb21EZXZpY2UpCisgICAgOiBNb3VzZVJlbGF0ZWRFdmVudChldmVudE5hbWVzKCkubW91c2V3
aGVlbEV2ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgdHJ1ZSwgdmlldywgMCwg
c2NyZWVuTG9jYXRpb24sIHBhZ2VMb2NhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGN0
cmxLZXksIGFsdEtleSwgc2hpZnRLZXksIG1ldGFLZXkpCisgICAgLCBtX3doZWVsRGVsdGEoSW50
UG9pbnQoc3RhdGljX2Nhc3Q8aW50Pih3aGVlbFRpY2tzLngoKSAqIHRpY2tNdWx0aXBsaWVyKSwg
c3RhdGljX2Nhc3Q8aW50Pih3aGVlbFRpY2tzLnkoKSAqIHRpY2tNdWx0aXBsaWVyKSkpCisgICAg
LCBtX3Jhd0RlbHRhKHJvdW5kZWRJbnRQb2ludChyYXdEZWx0YSkpCisgICAgLCBtX2dyYW51bGFy
aXR5KGdyYW51bGFyaXR5KQorICAgICwgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoZGly
ZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKQoreworfQorI2VuZGlmCiAKIHZvaWQgV2hlZWxFdmVu
dDo6aW5pdFdoZWVsRXZlbnQoaW50IHJhd0RlbHRhWCwgaW50IHJhd0RlbHRhWSwgUGFzc1JlZlB0
cjxBYnN0cmFjdFZpZXc+IHZpZXcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCkBAIC02OSw3ICs4
NCwxMSBAQCB2b2lkIFdoZWVsRXZlbnQ6OmluaXRXaGVlbEV2ZW50KGludCByYXdEZWx0YVgsIGlu
dCByYXdEZWx0YVksIFBhc3NSZWZQdHI8QWJzdHJhYwogICAgIAogICAgIG1fcmF3RGVsdGEgPSBJ
bnRQb2ludChyYXdEZWx0YVgsIHJhd0RlbHRhWSk7CiAgICAgbV9ncmFudWxhcml0eSA9IFBpeGVs
OwotICAgIAorCisjaWYgUExBVEZPUk0oTUFDKQorICAgIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9t
RGV2aWNlID0gZmFsc2U7CisjZW5kaWYKKwogICAgIGluaXRDb29yZGluYXRlcyhJbnRQb2ludChw
YWdlWCwgcGFnZVkpKTsKIH0KIApAQCAtMTAxLDkgKzEyMCwxNSBAQCBXaGVlbEV2ZW50RGlzcGF0
Y2hNZWRpYXRvcjo6V2hlZWxFdmVudERpc3BhdGNoTWVkaWF0b3IoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JgogICAgIGlmICghKGV2ZW50LmRlbHRhWCgpIHx8IGV2ZW50LmRlbHRhWSgpKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgc2V0RXZlbnQoV2hlZWxFdmVudDo6Y3JlYXRlKEZsb2F0UG9p
bnQoZXZlbnQud2hlZWxUaWNrc1goKSwgZXZlbnQud2hlZWxUaWNrc1koKSksIEZsb2F0UG9pbnQo
ZXZlbnQuZGVsdGFYKCksIGV2ZW50LmRlbHRhWSgpKSwgZ3JhbnVsYXJpdHkoZXZlbnQpLAotICAg
ICAgICB2aWV3LCBJbnRQb2ludChldmVudC5nbG9iYWxYKCksIGV2ZW50Lmdsb2JhbFkoKSksIElu
dFBvaW50KGV2ZW50LngoKSwgZXZlbnQueSgpKSwgZXZlbnQuY3RybEtleSgpLCBldmVudC5hbHRL
ZXkoKSwgZXZlbnQuc2hpZnRLZXkoKSwgZXZlbnQubWV0YUtleSgpKSk7Ci0KKyNpZiBQTEFURk9S
TShNQUMpCisgICAgc2V0RXZlbnQoV2hlZWxFdmVudDo6Y3JlYXRlKEZsb2F0UG9pbnQoZXZlbnQu
d2hlZWxUaWNrc1goKSwgZXZlbnQud2hlZWxUaWNrc1koKSksIEZsb2F0UG9pbnQoZXZlbnQuZGVs
dGFYKCksIGV2ZW50LmRlbHRhWSgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z3JhbnVsYXJpdHkoZXZlbnQpLCB2aWV3LCBJbnRQb2ludChldmVudC5nbG9iYWxYKCksIGV2ZW50
Lmdsb2JhbFkoKSksIEludFBvaW50KGV2ZW50LngoKSwgZXZlbnQueSgpKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZXZlbnQuY3RybEtleSgpLCBldmVudC5hbHRLZXkoKSwgZXZl
bnQuc2hpZnRLZXkoKSwgZXZlbnQubWV0YUtleSgpLCBldmVudC5kaXJlY3Rpb25JbnZlcnRlZEZy
b21EZXZpY2UoKSkpOworI2Vsc2UKKyAgICBzZXRFdmVudChXaGVlbEV2ZW50OjpjcmVhdGUoRmxv
YXRQb2ludChldmVudC53aGVlbFRpY2tzWCgpLCBldmVudC53aGVlbFRpY2tzWSgpKSwgRmxvYXRQ
b2ludChldmVudC5kZWx0YVgoKSwgZXZlbnQuZGVsdGFZKCkpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBncmFudWxhcml0eShldmVudCksIHZpZXcsIEludFBvaW50KGV2ZW50Lmds
b2JhbFgoKSwgZXZlbnQuZ2xvYmFsWSgpKSwgSW50UG9pbnQoZXZlbnQueCgpLCBldmVudC55KCkp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5jdHJsS2V5KCksIGV2ZW50
LmFsdEtleSgpLCBldmVudC5zaGlmdEtleSgpLCBldmVudC5tZXRhS2V5KCkpKTsKKyNlbmRpZgog
fQogCiBXaGVlbEV2ZW50KiBXaGVlbEV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6ZXZlbnQoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmgKaW5kZXggNTIyM2NlNDMzODhlNmY5MzZmNzI1YzA0M2Ix
YzYzOWJiYjY4NTNlYi4uNjY1ZTk4YTlmOWViNjVjOGM3ZWEyYWY3ZTQ5MTBlZDdkODhmY2YxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vV2hlZWxFdmVudC5oCkBAIC00OSw2ICs0OSwxNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdoZWVsRXZlbnQod2hlZWxU
aWNrcywgcmF3RGVsdGEsIGdyYW51bGFyaXR5LCB2aWV3LAogICAgICAgICAgICAgICAgIHNjcmVl
bkxvY2F0aW9uLCBwYWdlTG9jYXRpb24sIGN0cmxLZXksIGFsdEtleSwgc2hpZnRLZXksIG1ldGFL
ZXkpKTsKICAgICAgICAgfQorI2lmIFBMQVRGT1JNKE1BQykKKyAgICAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8V2hlZWxFdmVudD4gY3JlYXRlKGNvbnN0IEZsb2F0UG9pbnQmIHdoZWVsVGlja3MsCisg
ICAgICAgICAgICBjb25zdCBGbG9hdFBvaW50JiByYXdEZWx0YSwgR3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHksIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LAorICAgICAgICAgICAgY29uc3Qg
SW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgcGFnZUxvY2F0aW9uLAor
ICAgICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9v
bCBtZXRhS2V5LCBib29sIGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSkKKyAgICAgICAgewor
ICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXaGVlbEV2ZW50KHdoZWVsVGlja3MsIHJh
d0RlbHRhLCBncmFudWxhcml0eSwgdmlldywKKyAgICAgICAgICAgICAgICBzY3JlZW5Mb2NhdGlv
biwgcGFnZUxvY2F0aW9uLCBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5LCBkaXJl
Y3Rpb25JbnZlcnRlZEZyb21EZXZpY2UpKTsKKyAgICAgICAgfQorI2VuZGlmCiAKICAgICAgICAg
dm9pZCBpbml0V2hlZWxFdmVudChpbnQgcmF3RGVsdGFYLCBpbnQgcmF3RGVsdGFZLCBQYXNzUmVm
UHRyPEFic3RyYWN0Vmlldz4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNjcmVl
blgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwKQEAgLTY1LDYgKzc1LDkgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBpbnQgcmF3RGVsdGFZKCkgY29uc3QgeyByZXR1
cm4gbV9yYXdEZWx0YS55KCk7IH0KICAgICAgICAgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkoKSBj
b25zdCB7IHJldHVybiBtX2dyYW51bGFyaXR5OyB9CiAKKyNpZiBQTEFURk9STShNQUMpCisgICAg
ICAgIGJvb2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9k
aXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2U7IH0KKyNlbmRpZgogICAgICAgICAvLyBOZWVkZWQg
Zm9yIE9iamVjdGl2ZS1DIGxlZ2FjeSBzdXBwb3J0CiAgICAgICAgIGJvb2wgaXNIb3Jpem9udGFs
KCkgY29uc3QgeyByZXR1cm4gbV93aGVlbERlbHRhLngoKTsgfQogCkBAIC03NCwxMiArODcsMjEg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgICAgICAgIEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5LCBQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4sCiAgICAgICAgICAgICAgICAgICAg
Y29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgcGFnZUxvY2F0
aW9uLAogICAgICAgICAgICAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wg
c2hpZnRLZXksIGJvb2wgbWV0YUtleSk7CisjaWYgUExBVEZPUk0oTUFDKQorICAgICAgICBXaGVl
bEV2ZW50KGNvbnN0IEZsb2F0UG9pbnQmIHdoZWVsVGlja3MsIGNvbnN0IEZsb2F0UG9pbnQmIHJh
d0RlbHRhLAorICAgICAgICAgICAgR3JhbnVsYXJpdHksIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3
PiwKKyAgICAgICAgICAgIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50
UG9pbnQmIHBhZ2VMb2NhdGlvbiwKKyAgICAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRL
ZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZy
b21EZXZpY2UpOworI2VuZGlmCiAKICAgICAgICAgdmlydHVhbCBib29sIGlzV2hlZWxFdmVudCgp
IGNvbnN0OwogCiAgICAgICAgIEludFBvaW50IG1fd2hlZWxEZWx0YTsKICAgICAgICAgSW50UG9p
bnQgbV9yYXdEZWx0YTsKICAgICAgICAgR3JhbnVsYXJpdHkgbV9ncmFudWxhcml0eTsKKyNpZiBQ
TEFURk9STShNQUMpCisgICAgICAgIGJvb2wgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2U7
CisjZW5kaWYKICAgICB9OwogCiBjbGFzcyBXaGVlbEV2ZW50RGlzcGF0Y2hNZWRpYXRvciA6IHB1
YmxpYyBFdmVudERpc3BhdGNoTWVkaWF0b3IgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1doZWVsRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaWRsCmlu
ZGV4IGJkODE1MWI3YTYwODVlYzcxNTFhNzMxNzAzYTJiNmIyMmYzNmZhZTYuLjE3NWY1MjEyNGZk
ZGQ2MzlmYzEyMmJlZDM4YWQ0ZTIyNjYyNzRhN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9XaGVlbEV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5p
ZGwKQEAgLTQwLDYgKzQwLDkgQEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBsb25nICAgIHg7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgIHk7
CiAKKyNpZiBkZWZpbmVkKFdURl9QTEFURk9STV9NQUMpICYmIFdURl9QTEFURk9STV9NQUMKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2
aWNlOworI2VuZGlmIC8qIFBMQVRGT1JNKFdURl9QTEFURk9STV9NQUMpICovCiAjaWYgZGVmaW5l
ZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNIb3Jpem9udGFsOwogI2VuZGlmIC8qIGRlZmlu
ZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bs
YXRmb3JtV2hlZWxFdmVudC5oCmluZGV4IDUzN2VmNGMwOGEyMzcyNDBmYjZhOWExNWE4MWViYWNh
MzE4N2I3NmQuLmE2OGRhYTIxYzg1MmRmMDllMDQ2OWI2N2JiMmU2NjBlODUxZGFiNTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCkBAIC0xMDIsNiAr
MTAyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgLCBtX3BoYXNlKFBsYXRm
b3JtV2hlZWxFdmVudFBoYXNlTm9uZSkKICAgICAgICAgICAgICwgbV9tb21lbnR1bVBoYXNlKFBs
YXRmb3JtV2hlZWxFdmVudFBoYXNlTm9uZSkKICAgICAgICAgICAgICwgbV90aW1lc3RhbXAoMCkK
KyAgICAgICAgICAgICwgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoZmFsc2UpCiAjZW5k
aWYKICAgICAgICAgewogICAgICAgICB9CkBAIC0xMjQsNiArMTI1LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICAgICAgLCBtX3BoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlTm9u
ZSkKICAgICAgICAgICAgICwgbV9tb21lbnR1bVBoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNl
Tm9uZSkKICAgICAgICAgICAgICwgbV90aW1lc3RhbXAoMCkKKyAgICAgICAgICAgICwgbV9kaXJl
Y3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoZmFsc2UpCiAjZW5kaWYKICAgICAgICAgewogICAgICAg
ICB9CkBAIC0xODEsNiArMTgzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBQbGF0
Zm9ybVdoZWVsRXZlbnRQaGFzZSBtb21lbnR1bVBoYXNlKCkgY29uc3QgeyByZXR1cm4gbV9tb21l
bnR1bVBoYXNlOyB9CiAgICAgICAgIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcygpIGNv
bnN0IHsgcmV0dXJuIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhczsgfQogICAgICAgICBkb3Vi
bGUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KKyAgICAgICAgYm9v
bCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2RpcmVjdGlv
bkludmVydGVkRnJvbURldmljZTsgfQogI2VuZGlmCiAKICNpZiBQTEFURk9STShRVCkKQEAgLTIy
MCw2ICsyMjMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFBsYXRmb3JtV2hlZWxF
dmVudFBoYXNlIG1fcGhhc2U7CiAgICAgICAgIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlIG1fbW9t
ZW50dW1QaGFzZTsKICAgICAgICAgZG91YmxlIG1fdGltZXN0YW1wOworICAgICAgICBib29sIG1f
ZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlOwogI2VuZGlmCiAgICAgfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1doZWVsRXZlbnRNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2hlZWxFdmVudE1hYy5tbQppbmRleCAyNDk0ZTY5YWJhZDI2
MTVjYjZkODRiNDI0ZWEzNDY2NDk2NDY2NGU3Li5jYjBkZDI0MTM3MDc1NjZhNTZkNWIwY2IwN2Mw
MjRkZDQwOGYzNTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2hl
ZWxFdmVudE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2hlZWxFdmVu
dE1hYy5tbQpAQCAtMTAxLDYgKzEwMSw3IEBAIFBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1X
aGVlbEV2ZW50KE5TRXZlbnQqIGV2ZW50LCBOU1ZpZXcgKndpbmRvd1ZpZXcpCiAgICAgLCBtX3Bo
YXNlKHBoYXNlRm9yRXZlbnQoZXZlbnQpKQogICAgICwgbV9tb21lbnR1bVBoYXNlKG1vbWVudHVt
UGhhc2VGb3JFdmVudChldmVudCkpCiAgICAgLCBtX3RpbWVzdGFtcChbZXZlbnQgdGltZXN0YW1w
XSkKKyAgICAsIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKFtldmVudCBpc0RpcmVjdGlv
bkludmVydGVkRnJvbURldmljZV0pCiB7CiAgICAgQk9PTCBjb250aW51b3VzOwogICAgIHdrR2V0
V2hlZWxFdmVudERlbHRhcyhldmVudCwgJm1fZGVsdGFYLCAmbV9kZWx0YVksICZjb250aW51b3Vz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCAwNTAyM2QzZTVhNGJhZDdlZWQxMGMyZTg0MjcxMTNhM2M3ZjJhY2Rj
Li4xZWMxYzQ2Y2NkNjBmOWMyOTAyMGQxNGU5ZTI4ZmU5MDA2ODQwMGJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTEtMDktMjggIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgor
CisgICAgICAgIEV4dGVuZCBET00gV2hlZWxFdmVudCB0byBkaWZmZXJlbnRpYXRlIGJldHdlZW4g
cGh5c2ljYWwgYW5kIGxvZ2ljYWwgc2Nyb2xsIGRpcmVjdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4OTU5CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8xMDAzNjY4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFNoYXJlZC9XZWJFdmVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2
ZW50OjpkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UpOgorICAgICAgICAqIFNoYXJlZC9XZWJF
dmVudENvbnZlcnNpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJLaXQyUGxhdGZvcm1XaGVl
bEV2ZW50OjpXZWJLaXQyUGxhdGZvcm1XaGVlbEV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
V2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6OldlYldoZWVs
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjplbmNvZGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMv
V2ViRXZlbnRGYWN0b3J5Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNy
ZWF0ZVdlYldoZWVsRXZlbnQpOiBnZXQgdGhlIGZsYWcgZnJvbSB0aGUgTlNFdmVudC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Y29hbGVz
Y2UpOgorCiAyMDExLTA5LTI3ICBHb3BhbCBSYWdoYXZhbiAgPGdvcGFsLjEucmFnaGF2YW5Abm9r
aWEuY29tPgogCiAgICAgICAgIFtRdF0gUURlc2t0b3BXZWJWaWV3IGxvYWQgemVybyBzaXplIHZp
ZXcgdGVzdCBtaXNzaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZl
bnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5oCmluZGV4IDE3OGM1MGRmMWU5
NGQ2NWM0ZDEwYTliNzI3MGE0YTFjMzkyODk0ZDMuLjg4Yzg0NjlkYTQwYzU0YjYyOGFmMGFiMDdi
ZGY0ZmQ0MDE1NGI1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5oCkBAIC0xNzksNyArMTc5
LDcgQEAgcHVibGljOgogCiAgICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlv
biwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgTW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1w
KTsKICNpZiBQTEFURk9STShNQUMpCi0gICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgUGhhc2UgcGhhc2UsIFBoYXNlIG1v
bWVudHVtUGhhc2UsYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCBNb2RpZmllcnMsIGRv
dWJsZSB0aW1lc3RhbXApOworICAgIFdlYldoZWVsRXZlbnQoVHlwZSwgY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRp
b24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHksIFBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNl
LCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIE1vZGlmaWVycywgZG91YmxlIHRpbWVz
dGFtcCwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UpOwogI2VuZGlmCiAKICAgICBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRp
b247IH0KQEAgLTE5MSw2ICsxOTEsNyBAQCBwdWJsaWM6CiAgICAgUGhhc2UgcGhhc2UoKSBjb25z
dCB7IHJldHVybiBzdGF0aWNfY2FzdDxQaGFzZT4obV9waGFzZSk7IH0KICAgICBQaGFzZSBtb21l
bnR1bVBoYXNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UGhhc2U+KG1fbW9tZW50dW1Q
aGFzZSk7IH0KICAgICBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMoKSBjb25zdCB7IHJl
dHVybiBtX2hhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXM7IH0KKyAgICBib29sIGRpcmVjdGlvbklu
dmVydGVkRnJvbURldmljZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9t
RGV2aWNlOyB9CiAjZW5kaWYKIAogICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciopIGNvbnN0OwpAQCAtMjA4LDYgKzIwOSw3IEBAIHByaXZhdGU6CiAgICAgdWludDMyX3Qg
bV9waGFzZTsgLy8gUGhhc2UKICAgICB1aW50MzJfdCBtX21vbWVudHVtUGhhc2U7IC8vIFBoYXNl
CiAgICAgYm9vbCBtX2hhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXM7CisgICAgYm9vbCBtX2RpcmVj
dGlvbkludmVydGVkRnJvbURldmljZTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcAppbmRleCA5YzJmYWQxN2ZmNTliNjNlNjg3YjVk
Y2RmMDAzNTQwNjgwYmM0Njg4Li4yMjM1NWRiYjEyMTNhM2VmMmIyMTkzYTkxYTFmNjhiYTczZWYz
ZTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcApA
QCAtMTE1LDYgKzExNSw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9tb21lbnR1bVBoYXNlID0gc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U+KHdlYkV2ZW50Lm1vbWVu
dHVtUGhhc2UoKSk7CiAgICAgICAgIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyA9IHdlYkV2
ZW50Lmhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMoKTsKICAgICAgICAgbV90aW1lc3RhbXAgPSB3
ZWJFdmVudC50aW1lc3RhbXAoKTsKKyAgICAgICAgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZp
Y2UgPSB3ZWJFdmVudC5kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoKTsKICNlbmRpZgogICAg
IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViV2hlZWxFdmVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAKaW5kZXggNTk0MGJj
YzliZDc2NjQ1YjJkNGY0NTI1MzQ5YzA3Y2Q5NjQ4Yzc1ZS4uY2VhYjhhODZmYzdkZjFlZWVmNjgz
N2FkZDE0MjZjNjQwYjM1OTU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YldoZWVsRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJXaGVlbEV2ZW50
LmNwcApAQCAtNDMsMTMgKzQzLDE0IEBAIFdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlw
ZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50CiAjaWYgUExB
VEZPUk0oTUFDKQogICAgICwgbV9waGFzZShQaGFzZU5vbmUpCiAgICAgLCBtX2hhc1ByZWNpc2VT
Y3JvbGxpbmdEZWx0YXMoZmFsc2UpCisgICAgLCBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmlj
ZShmYWxzZSkKICNlbmRpZgogewogICAgIEFTU0VSVChpc1doZWVsRXZlbnRUeXBlKHR5cGUpKTsK
IH0KIAogI2lmIFBMQVRGT1JNKE1BQykKLVdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlw
ZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRp
Y2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgUGhhc2UgcGhhc2UsIFBoYXNlIG1vbWVudHVt
UGhhc2UsIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgTW9kaWZpZXJzIG1vZGlmaWVy
cywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0
eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3Np
dGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tz
LCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgUGhhc2UgcGhhc2UsIFBoYXNlIG1vbWVudHVtUGhh
c2UsIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgTW9kaWZpZXJzIG1vZGlmaWVycywg
ZG91YmxlIHRpbWVzdGFtcCwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UpCiAgICAg
OiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fcG9zaXRpb24o
cG9zaXRpb24pCiAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uKQpAQCAtNTks
NiArNjAsNyBAQCBXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3Qg
SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludAogICAgICwgbV9waGFzZShwaGFzZSkK
ICAgICAsIG1fbW9tZW50dW1QaGFzZShtb21lbnR1bVBoYXNlKQogICAgICwgbV9oYXNQcmVjaXNl
U2Nyb2xsaW5nRGVsdGFzKGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMpCisgICAgLCBtX2RpcmVj
dGlvbkludmVydGVkRnJvbURldmljZShkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UpCiB7CiAg
ICAgQVNTRVJUKGlzV2hlZWxFdmVudFR5cGUodHlwZSkpOwogfQpAQCAtNzcsNiArNzksNyBAQCB2
b2lkIFdlYldoZWVsRXZlbnQ6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29k
ZXIpIGNvbnN0CiAgICAgZW5jb2Rlci0+ZW5jb2RlKG1fcGhhc2UpOwogICAgIGVuY29kZXItPmVu
Y29kZShtX21vbWVudHVtUGhhc2UpOwogICAgIGVuY29kZXItPmVuY29kZShtX2hhc1ByZWNpc2VT
Y3JvbGxpbmdEZWx0YXMpOworICAgIGVuY29kZXItPmVuY29kZShtX2RpcmVjdGlvbkludmVydGVk
RnJvbURldmljZSk7CiAjZW5kaWYKIH0KIApAQCAtMTAxLDYgKzEwNCw4IEBAIGJvb2wgV2ViV2hl
ZWxFdmVudDo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViV2hl
ZWxFdmVudCYgdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlKHQubV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHQubV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZp
Y2UpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKICAgICByZXR1cm4gdHJ1ZTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1t
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KaW5kZXggMDQ2
ZjU3MmY4MDY1ZDhhNDhkNzM1MGY2NTM2NmM2NDdjMTgyYzQ0Ny4uMTMwNTlhZjUyNTg4Njk3YWVm
ZjQzMmNjMjIyODA1YzA2ZTdjZGY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9XZWJFdmVudEZhY3RvcnkubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9X
ZWJFdmVudEZhY3RvcnkubW0KQEAgLTEwOTYsOCArMTA5NiwxMiBAQCBXZWJXaGVlbEV2ZW50IFdl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChOU0V2ZW50ICpldmVudCwgTlNWaWV3
ICp3aW5kbwogICAgIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyAgICAgICAgICA9IGNv
bnRpbnVvdXM7CiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgICAgICAgICAgID0g
bW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwogICAgIGRvdWJsZSB0aW1lc3RhbXAgICAgICAgICAg
ICAgICAgICAgICAgICA9IFtldmVudCB0aW1lc3RhbXBdOwotICAgIAotICAgIHJldHVybiBXZWJX
aGVlbEV2ZW50KFdlYkV2ZW50OjpXaGVlbCwgSW50UG9pbnQocG9zaXRpb24pLCBJbnRQb2ludChn
bG9iYWxQb3NpdGlvbiksIEZsb2F0U2l6ZShkZWx0YVgsIGRlbHRhWSksIEZsb2F0U2l6ZSh3aGVl
bFRpY2tzWCwgd2hlZWxUaWNrc1kpLCBncmFudWxhcml0eSwgcGhhc2UsIG1vbWVudHVtUGhhc2Us
IGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIG1vZGlmaWVycywgdGltZXN0YW1wKTsKKyNpZiAh
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisgICAgYm9vbCBkaXJlY3Rpb25JbnZl
cnRlZEZyb21EZXZpY2UgICAgICAgID0gW2V2ZW50IGlzRGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2
aWNlXTsKKyNlbHNlCisgICAgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UgICAgICAg
ID0gZmFsc2U7CisjZW5kaWYKKyAgICByZXR1cm4gV2ViV2hlZWxFdmVudChXZWJFdmVudDo6V2hl
ZWwsIEludFBvaW50KHBvc2l0aW9uKSwgSW50UG9pbnQoZ2xvYmFsUG9zaXRpb24pLCBGbG9hdFNp
emUoZGVsdGFYLCBkZWx0YVkpLCBGbG9hdFNpemUod2hlZWxUaWNrc1gsIHdoZWVsVGlja3NZKSwg
Z3JhbnVsYXJpdHksIHBoYXNlLCBtb21lbnR1bVBoYXNlLCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVs
dGFzLCBtb2RpZmllcnMsIHRpbWVzdGFtcCwgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKTsK
IH0KIAogV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJk
RXZlbnQoTlNFdmVudCAqZXZlbnQsIE5TVmlldyAqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCAxMjczYmM5NjQxZTQ4OGMyNjczMWNjM2M2ZmVjMTljNzc4
MWVkMGIzLi41Nzc4NjRmZWI1YmY0NDAwZmFiMmIwZDFhM2MyZmEwOWQ3OGFkZmEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjY2NCw3ICsyNjY0LDcg
QEAgc3RhdGljIFdlYldoZWVsRXZlbnQgY29hbGVzY2UoY29uc3QgV2ViV2hlZWxFdmVudCYgYSwg
Y29uc3QgV2ViV2hlZWxFdmVudCYgYikKICAgICBGbG9hdFNpemUgbWVyZ2VkV2hlZWxUaWNrcyA9
IGEud2hlZWxUaWNrcygpICsgYi53aGVlbFRpY2tzKCk7CiAKICNpZiBQTEFURk9STShNQUMpCi0g
ICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBiLnBvc2l0aW9uKCksIGIu
Z2xvYmFsUG9zaXRpb24oKSwgbWVyZ2VkRGVsdGEsIG1lcmdlZFdoZWVsVGlja3MsIGIuZ3JhbnVs
YXJpdHkoKSwgYi5waGFzZSgpLCBiLm1vbWVudHVtUGhhc2UoKSwgYi5oYXNQcmVjaXNlU2Nyb2xs
aW5nRGVsdGFzKCksIGIubW9kaWZpZXJzKCksIGIudGltZXN0YW1wKCkpOworICAgIHJldHVybiBX
ZWJXaGVlbEV2ZW50KFdlYkV2ZW50OjpXaGVlbCwgYi5wb3NpdGlvbigpLCBiLmdsb2JhbFBvc2l0
aW9uKCksIG1lcmdlZERlbHRhLCBtZXJnZWRXaGVlbFRpY2tzLCBiLmdyYW51bGFyaXR5KCksIGIu
cGhhc2UoKSwgYi5tb21lbnR1bVBoYXNlKCksIGIuaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcygp
LCBiLm1vZGlmaWVycygpLCBiLnRpbWVzdGFtcCgpLCBiLmRpcmVjdGlvbkludmVydGVkRnJvbURl
dmljZSgpKTsKICNlbHNlCiAgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVs
LCBiLnBvc2l0aW9uKCksIGIuZ2xvYmFsUG9zaXRpb24oKSwgbWVyZ2VkRGVsdGEsIG1lcmdlZFdo
ZWVsVGlja3MsIGIuZ3JhbnVsYXJpdHkoKSwgYi5tb2RpZmllcnMoKSwgYi50aW1lc3RhbXAoKSk7
CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109083</attachid>
            <date>2011-09-28 16:02:56 -0700</date>
            <delta_ts>2011-10-03 12:54:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68959-20110928160306.patch</filename>
            <type>text/plain</type>
            <size>22756</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTYxNjIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMGZjM2VjN2JhNmVlODFhOGUyOGEw
ODU5NmQzYTdlZWViNWEzMDAyLi5kZjIzNzlhMjUxYjFiMThiNTYwZDIyZDVjMmQ5MTlkODEzYzAx
NjZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDktMjggIEpvbiBMZWUgIDxqb25sZWVA
YXBwbGUuY29tPgorCisgICAgICAgIEV4dGVuZCBET00gV2hlZWxFdmVudCB0byBkaWZmZXJlbnRp
YXRlIGJldHdlZW4gcGh5c2ljYWwgYW5kIGxvZ2ljYWwgc2Nyb2xsIGRpcmVjdGlvbnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4OTU5CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8xMDAzNjY4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvU2tpcHBlZDogV0tUUiBkb2Vz
IG5vdCBzdXBwb3J0IG1vdXNlIHNjcm9sbCBldmVudHMgeWV0LgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9mYXN0L2V2ZW50cy93aGVlbC1ldmVudC1kaXJlY3Rpb24taW52ZXJ0ZWQtZnJvbS1kZXZp
Y2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9ldmVu
dHMvd2hlZWwtZXZlbnQtZGlyZWN0aW9uLWludmVydGVkLWZyb20tZGV2aWNlLmh0bWw6IEFkZGVk
LgorCiAyMDExLTA5LTI3ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg5NDAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azIvU2tpcHBlZAppbmRleCBjZDFlZDBkYWQ2MGM4NjlhMDkwYWJhMTM0MzI2
YzM2MjkwMjFkMmEyLi5mMDhjNWMwYjRhMTQxMTc1Y2I0ZTJmMmZmODkwNjM3NWI3ZmQ3Zjc5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCkBAIC0xNjAsNiArMTYwLDcgQEAgZmFz
dC9ldmVudHMvc2VsZWN0c3RhcnQtcHJldmVudC1zZWxlY3Rpb24tb24tcmlnaHQtY2xpY2suaHRt
bAogZmFzdC9ldmVudHMvc3RhbmRhbG9uZS1pbWFnZS1kcmFnLXRvLWVkaXRhYmxlLmh0bWwKIGZh
c3QvZXZlbnRzL3doZWVsZXZlbnQtaW4taG9yaXpvbnRhbC1zY3JvbGxiYXItaW4tcnRsLmh0bWwK
IGZhc3QvZXZlbnRzL3doZWVsZXZlbnQtaW4tdmVydGljYWwtc2Nyb2xsYmFyLWluLXJ0bC5odG1s
CitmYXN0L2V2ZW50cy93aGVlbC1ldmVudC1kaXJlY3Rpb24taW52ZXJ0ZWQtZnJvbS1kZXZpY2Uu
aHRtbAogZmFzdC9maWxlcy9hcHBseS1ibG9iLXVybC10by14aHIuaHRtbAogZmFzdC9maWxlcy9m
aWxlLXJlYWRlci1hYm9ydC5odG1sCiBmYXN0L2ZpbGVzL3JlYWQtYmxvYi1hc3luYy5odG1sCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9ldmVudHMvd2hlZWwtZXZl
bnQtZGlyZWN0aW9uLWludmVydGVkLWZyb20tZGV2aWNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9mYXN0L2V2ZW50cy93aGVlbC1ldmVudC1kaXJlY3Rpb24taW52ZXJ0
ZWQtZnJvbS1kZXZpY2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzYWQxMjk1YjVmODYwZjU1
OTRmNzIwMGNlZmE5NTg4NjQ5OWM2OTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9ldmVudHMvd2hlZWwtZXZlbnQtZGlyZWN0aW9uLWludmVydGVkLWZy
b20tZGV2aWNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1Njcm9sbCBvdmVyIG1lCitz
ZW5kaW5nIHNjcm9sbCBldmVudCB0byBncmVlbiB0YXJnZXQKK1BBU1MgcmVzdWx0ICE9IHVuZGVm
aW5lZCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZXZlbnRz
L3doZWVsLWV2ZW50LWRpcmVjdGlvbi1pbnZlcnRlZC1mcm9tLWRldmljZS5odG1sIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZXZlbnRzL3doZWVsLWV2ZW50LWRpcmVjdGlvbi1pbnZl
cnRlZC1mcm9tLWRldmljZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNmM2IwOGZmZTYwYTE0NzAxMmFiNTU0
YWYwYjg0ZGFkMjI2MjNjYTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9ldmVudHMvd2hlZWwtZXZlbnQtZGlyZWN0aW9uLWludmVydGVkLWZyb20tZGV2
aWNlLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxib2R5
PgorCis8ZGl2IHN0eWxlPSJ3aWR0aDoxMDBweDsgaGVpZ2h0OjgwcHg7IGJhY2tncm91bmQtY29s
b3I6Z3JlZW47IGNvbG9yOndoaXRlIiBpZD0idGFyZ2V0Ij5TY3JvbGwgb3ZlciBtZTwvZGl2Pgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKworPHNjcmlwdD4KK3ZhciB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdl
dCIpOwordmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpOwordmFyIHJl
c3VsdCA9IHVuZGVmaW5lZDsKK2Z1bmN0aW9uIHNjcm9sbEhhbmRsZXIoZXZlbnQpIHsKKyAgICBy
ZXN1bHQgPSBldmVudC53ZWJraXREaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2U7CisgICAgZXZl
bnQucHJldmVudERlZmF1bHQoKTsKK307Cit0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNld2hlZWwn
LCBzY3JvbGxIYW5kbGVyLCBmYWxzZSk7CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIgJiYgd2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgZGVidWcoInNlbmRpbmcgc2Nyb2xsIGV2
ZW50IHRvIGdyZWVuIHRhcmdldCIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHQub2Zm
c2V0TGVmdCArIDEwLCB0Lm9mZnNldFRvcCArIDEwKTsKKyAgICBldmVudFNlbmRlci5jb250aW51
b3VzTW91c2VTY3JvbGxCeSgwLDEwKTsKKyAgICBzaG91bGRCZVRydWUoJ3Jlc3VsdCAhPSB1bmRl
ZmluZWQnKTsKK30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4K
KworPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggMGM1MGMzYThlNDI2Nzg4MDBlZmUyZDhjM2ViMDE4YjU3OTNi
NzcxNi4uNzkyM2ZkOGM4NTdkYjljOTI0ZGE2NjhkZmEzOTE5ZTFiMmVkY2ViMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI5IEBACisyMDExLTA5LTI4ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNv
bT4KKworICAgICAgICBFeHRlbmQgRE9NIFdoZWVsRXZlbnQgdG8gZGlmZmVyZW50aWF0ZSBiZXR3
ZWVuIHBoeXNpY2FsIGFuZCBsb2dpY2FsIHNjcm9sbCBkaXJlY3Rpb25zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODk1OQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMTAwMzY2ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vbWFjL2Zhc3QvZXZlbnRzL3doZWVsLWV2ZW50LWRp
cmVjdGlvbi1pbnZlcnRlZC1mcm9tLWRldmljZS5odG1sCisKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5tYWtlOiBhZGRlZCB0aGUgV1RGX1BMQVRGT1JNX01BQyBpbmNsdWRlIGZvciBwcm9wZXJs
eSBwcm9jZXNzaW5nIHRoZQorICAgICAgICBXaGVlbEV2ZW50IElETC4KKyAgICAgICAgKiBkb20v
V2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50OjpXaGVlbEV2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnQ6OmluaXRXaGVlbEV2ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OldoZWVsRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpXaGVlbEV2ZW50RGlzcGF0
Y2hNZWRpYXRvcik6CisgICAgICAgICogZG9tL1doZWVsRXZlbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OldoZWVsRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50Ojp3
ZWJraXREaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UpOgorICAgICAgICAqIGRvbS9XaGVlbEV2
ZW50LmlkbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVlbEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxFdmVudDo6d2Via2l0RGlyZWN0aW9uSW52ZXJ0
ZWRGcm9tRGV2aWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2hlZWxFdmVudE1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVlbEV2ZW50
KToKKwogMjAxMS0wOS0yNyAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4OTQwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA3MmY0N2U0ZmQxMmE4M2EwNjgxOWIxYmFhYmY4MWYy
MGRiZTczMTFhLi45M2ZmNTkwNDY2MzE1MDQ0NTY0NGM0N2Y4NWQ1OTUzNjA5OWQxZWM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTYxNiw2ICs2MTYsOCBAQCBBRERJVElPTkFM
X0lETF9ERUZJTkVTIDo9CiAKIGlmZXEgKCQoT1MpLE1BQ09TKQogCitBRERJVElPTkFMX0lETF9E
RUZJTkVTIDo9IFdURl9QTEFURk9STV9NQUMKKwogRlJBTUVXT1JLX0ZMQUdTID0gJChzaGVsbCBl
Y2hvICQoQlVJTFRfUFJPRFVDVFNfRElSKSAkKEZSQU1FV09SS19TRUFSQ0hfUEFUSFMpIHwgcGVy
bCAtZSAncHJpbnQgIi1GICIgLiBqb2luKCIgLUYgIiwgc3BsaXQoIiAiLCA8PikpOycpCiAKIGlm
ZXEgKCQoc2hlbGwgZ2NjIC1FIC1QIC1kTSAkKEZSQU1FV09SS19GTEFHUykgV2ViQ29yZS9Gb3J3
YXJkaW5nSGVhZGVycy93dGYvUGxhdGZvcm0uaCB8IGdyZXAgRU5BQkxFX0RBU0hCT0FSRF9TVVBQ
T1JUIHwgY3V0IC1kJyAnIC1mMyksIDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
V2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5jcHAKaW5kZXgg
ODViNTYyMjU1ZDJmNjRmNzY4ODRhNGViZmU0NGViZWJhOTEzYTUxZC4uYjdiM2NlYzAxMTU0ZGNh
MjQyODU3ODMwNWI4NGQxNzIxNTYzMTc0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1doZWVsRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcApA
QCAtNDgsNiArNDgsMjEgQEAgV2hlZWxFdmVudDo6V2hlZWxFdmVudChjb25zdCBGbG9hdFBvaW50
JiB3aGVlbFRpY2tzLCBjb25zdCBGbG9hdFBvaW50JiByYXdEZWx0YSwKICAgICAsIG1fZ3JhbnVs
YXJpdHkoZ3JhbnVsYXJpdHkpCiB7CiB9CisjaWYgUExBVEZPUk0oTUFDKQorV2hlZWxFdmVudDo6
V2hlZWxFdmVudChjb25zdCBGbG9hdFBvaW50JiB3aGVlbFRpY2tzLCBjb25zdCBGbG9hdFBvaW50
JiByYXdEZWx0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgR3JhbnVsYXJpdHkgZ3JhbnVsYXJp
dHksIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LAorICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0IEludFBvaW50JiBwYWdlTG9j
YXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXks
IGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21E
ZXZpY2UpCisgICAgOiBNb3VzZVJlbGF0ZWRFdmVudChldmVudE5hbWVzKCkubW91c2V3aGVlbEV2
ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgdHJ1ZSwgdmlldywgMCwgc2NyZWVu
TG9jYXRpb24sIHBhZ2VMb2NhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGN0cmxLZXks
IGFsdEtleSwgc2hpZnRLZXksIG1ldGFLZXkpCisgICAgLCBtX3doZWVsRGVsdGEoSW50UG9pbnQo
c3RhdGljX2Nhc3Q8aW50Pih3aGVlbFRpY2tzLngoKSAqIHRpY2tNdWx0aXBsaWVyKSwgc3RhdGlj
X2Nhc3Q8aW50Pih3aGVlbFRpY2tzLnkoKSAqIHRpY2tNdWx0aXBsaWVyKSkpCisgICAgLCBtX3Jh
d0RlbHRhKHJvdW5kZWRJbnRQb2ludChyYXdEZWx0YSkpCisgICAgLCBtX2dyYW51bGFyaXR5KGdy
YW51bGFyaXR5KQorICAgICwgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoZGlyZWN0aW9u
SW52ZXJ0ZWRGcm9tRGV2aWNlKQoreworfQorI2VuZGlmCiAKIHZvaWQgV2hlZWxFdmVudDo6aW5p
dFdoZWVsRXZlbnQoaW50IHJhd0RlbHRhWCwgaW50IHJhd0RlbHRhWSwgUGFzc1JlZlB0cjxBYnN0
cmFjdFZpZXc+IHZpZXcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzY3Jl
ZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCkBAIC02OSw3ICs4NCwxMSBA
QCB2b2lkIFdoZWVsRXZlbnQ6OmluaXRXaGVlbEV2ZW50KGludCByYXdEZWx0YVgsIGludCByYXdE
ZWx0YVksIFBhc3NSZWZQdHI8QWJzdHJhYwogICAgIAogICAgIG1fcmF3RGVsdGEgPSBJbnRQb2lu
dChyYXdEZWx0YVgsIHJhd0RlbHRhWSk7CiAgICAgbV9ncmFudWxhcml0eSA9IFBpeGVsOwotICAg
IAorCisjaWYgUExBVEZPUk0oTUFDKQorICAgIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNl
ID0gZmFsc2U7CisjZW5kaWYKKwogICAgIGluaXRDb29yZGluYXRlcyhJbnRQb2ludChwYWdlWCwg
cGFnZVkpKTsKIH0KIApAQCAtMTAxLDkgKzEyMCwxNSBAQCBXaGVlbEV2ZW50RGlzcGF0Y2hNZWRp
YXRvcjo6V2hlZWxFdmVudERpc3BhdGNoTWVkaWF0b3IoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JgogICAgIGlmICghKGV2ZW50LmRlbHRhWCgpIHx8IGV2ZW50LmRlbHRhWSgpKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgc2V0RXZlbnQoV2hlZWxFdmVudDo6Y3JlYXRlKEZsb2F0UG9pbnQoZXZl
bnQud2hlZWxUaWNrc1goKSwgZXZlbnQud2hlZWxUaWNrc1koKSksIEZsb2F0UG9pbnQoZXZlbnQu
ZGVsdGFYKCksIGV2ZW50LmRlbHRhWSgpKSwgZ3JhbnVsYXJpdHkoZXZlbnQpLAotICAgICAgICB2
aWV3LCBJbnRQb2ludChldmVudC5nbG9iYWxYKCksIGV2ZW50Lmdsb2JhbFkoKSksIEludFBvaW50
KGV2ZW50LngoKSwgZXZlbnQueSgpKSwgZXZlbnQuY3RybEtleSgpLCBldmVudC5hbHRLZXkoKSwg
ZXZlbnQuc2hpZnRLZXkoKSwgZXZlbnQubWV0YUtleSgpKSk7Ci0KKyNpZiBQTEFURk9STShNQUMp
CisgICAgc2V0RXZlbnQoV2hlZWxFdmVudDo6Y3JlYXRlKEZsb2F0UG9pbnQoZXZlbnQud2hlZWxU
aWNrc1goKSwgZXZlbnQud2hlZWxUaWNrc1koKSksIEZsb2F0UG9pbnQoZXZlbnQuZGVsdGFYKCks
IGV2ZW50LmRlbHRhWSgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JhbnVs
YXJpdHkoZXZlbnQpLCB2aWV3LCBJbnRQb2ludChldmVudC5nbG9iYWxYKCksIGV2ZW50Lmdsb2Jh
bFkoKSksIEludFBvaW50KGV2ZW50LngoKSwgZXZlbnQueSgpKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZXZlbnQuY3RybEtleSgpLCBldmVudC5hbHRLZXkoKSwgZXZlbnQuc2hp
ZnRLZXkoKSwgZXZlbnQubWV0YUtleSgpLCBldmVudC53ZWJraXREaXJlY3Rpb25JbnZlcnRlZEZy
b21EZXZpY2UoKSkpOworI2Vsc2UKKyAgICBzZXRFdmVudChXaGVlbEV2ZW50OjpjcmVhdGUoRmxv
YXRQb2ludChldmVudC53aGVlbFRpY2tzWCgpLCBldmVudC53aGVlbFRpY2tzWSgpKSwgRmxvYXRQ
b2ludChldmVudC5kZWx0YVgoKSwgZXZlbnQuZGVsdGFZKCkpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBncmFudWxhcml0eShldmVudCksIHZpZXcsIEludFBvaW50KGV2ZW50Lmds
b2JhbFgoKSwgZXZlbnQuZ2xvYmFsWSgpKSwgSW50UG9pbnQoZXZlbnQueCgpLCBldmVudC55KCkp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5jdHJsS2V5KCksIGV2ZW50
LmFsdEtleSgpLCBldmVudC5zaGlmdEtleSgpLCBldmVudC5tZXRhS2V5KCkpKTsKKyNlbmRpZgog
fQogCiBXaGVlbEV2ZW50KiBXaGVlbEV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6ZXZlbnQoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmgKaW5kZXggNTIyM2NlNDMzODhlNmY5MzZmNzI1YzA0M2Ix
YzYzOWJiYjY4NTNlYi4uYWRlNWU4MTA1YWVkOGViN2JkN2UwZTdmZTA1ZTA5YWRkMTNkYjg1ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vV2hlZWxFdmVudC5oCkBAIC00OSw2ICs0OSwxNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdoZWVsRXZlbnQod2hlZWxU
aWNrcywgcmF3RGVsdGEsIGdyYW51bGFyaXR5LCB2aWV3LAogICAgICAgICAgICAgICAgIHNjcmVl
bkxvY2F0aW9uLCBwYWdlTG9jYXRpb24sIGN0cmxLZXksIGFsdEtleSwgc2hpZnRLZXksIG1ldGFL
ZXkpKTsKICAgICAgICAgfQorI2lmIFBMQVRGT1JNKE1BQykKKyAgICAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8V2hlZWxFdmVudD4gY3JlYXRlKGNvbnN0IEZsb2F0UG9pbnQmIHdoZWVsVGlja3MsCisg
ICAgICAgICAgICBjb25zdCBGbG9hdFBvaW50JiByYXdEZWx0YSwgR3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHksIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LAorICAgICAgICAgICAgY29uc3Qg
SW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgcGFnZUxvY2F0aW9uLAor
ICAgICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9v
bCBtZXRhS2V5LCBib29sIGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSkKKyAgICAgICAgewor
ICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXaGVlbEV2ZW50KHdoZWVsVGlja3MsIHJh
d0RlbHRhLCBncmFudWxhcml0eSwgdmlldywKKyAgICAgICAgICAgICAgICBzY3JlZW5Mb2NhdGlv
biwgcGFnZUxvY2F0aW9uLCBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5LCBkaXJl
Y3Rpb25JbnZlcnRlZEZyb21EZXZpY2UpKTsKKyAgICAgICAgfQorI2VuZGlmCiAKICAgICAgICAg
dm9pZCBpbml0V2hlZWxFdmVudChpbnQgcmF3RGVsdGFYLCBpbnQgcmF3RGVsdGFZLCBQYXNzUmVm
UHRyPEFic3RyYWN0Vmlldz4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNjcmVl
blgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwKQEAgLTY1LDYgKzc1LDkgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBpbnQgcmF3RGVsdGFZKCkgY29uc3QgeyByZXR1
cm4gbV9yYXdEZWx0YS55KCk7IH0KICAgICAgICAgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkoKSBj
b25zdCB7IHJldHVybiBtX2dyYW51bGFyaXR5OyB9CiAKKyNpZiBQTEFURk9STShNQUMpCisgICAg
ICAgIGJvb2wgd2Via2l0RGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKCkgY29uc3QgeyByZXR1
cm4gbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2U7IH0KKyNlbmRpZgogICAgICAgICAvLyBO
ZWVkZWQgZm9yIE9iamVjdGl2ZS1DIGxlZ2FjeSBzdXBwb3J0CiAgICAgICAgIGJvb2wgaXNIb3Jp
em9udGFsKCkgY29uc3QgeyByZXR1cm4gbV93aGVlbERlbHRhLngoKTsgfQogCkBAIC03NCwxMiAr
ODcsMjEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgICAgICAgIEdyYW51bGFy
aXR5IGdyYW51bGFyaXR5LCBQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4sCiAgICAgICAgICAgICAg
ICAgICAgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgcGFn
ZUxvY2F0aW9uLAogICAgICAgICAgICAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXks
IGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSk7CisjaWYgUExBVEZPUk0oTUFDKQorICAgICAg
ICBXaGVlbEV2ZW50KGNvbnN0IEZsb2F0UG9pbnQmIHdoZWVsVGlja3MsIGNvbnN0IEZsb2F0UG9p
bnQmIHJhd0RlbHRhLAorICAgICAgICAgICAgR3JhbnVsYXJpdHksIFBhc3NSZWZQdHI8QWJzdHJh
Y3RWaWV3PiwKKyAgICAgICAgICAgIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29u
c3QgSW50UG9pbnQmIHBhZ2VMb2NhdGlvbiwKKyAgICAgICAgICAgIGJvb2wgY3RybEtleSwgYm9v
bCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgYm9vbCBkaXJlY3Rpb25JbnZl
cnRlZEZyb21EZXZpY2UpOworI2VuZGlmCiAKICAgICAgICAgdmlydHVhbCBib29sIGlzV2hlZWxF
dmVudCgpIGNvbnN0OwogCiAgICAgICAgIEludFBvaW50IG1fd2hlZWxEZWx0YTsKICAgICAgICAg
SW50UG9pbnQgbV9yYXdEZWx0YTsKICAgICAgICAgR3JhbnVsYXJpdHkgbV9ncmFudWxhcml0eTsK
KyNpZiBQTEFURk9STShNQUMpCisgICAgICAgIGJvb2wgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21E
ZXZpY2U7CisjZW5kaWYKICAgICB9OwogCiBjbGFzcyBXaGVlbEV2ZW50RGlzcGF0Y2hNZWRpYXRv
ciA6IHB1YmxpYyBFdmVudERpc3BhdGNoTWVkaWF0b3IgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1doZWVsRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQu
aWRsCmluZGV4IGJkODE1MWI3YTYwODVlYzcxNTFhNzMxNzAzYTJiNmIyMmYzNmZhZTYuLjQ3MGQ1
ZjMxMmFjMjM5ZTk4YjlhZjllOGYyODQ1MWE3MTU1MWI1OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxF
dmVudC5pZGwKQEAgLTQwLDYgKzQwLDkgQEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBsb25nICAgIHg7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25n
ICAgIHk7CiAKKyNpZiBkZWZpbmVkKFdURl9QTEFURk9STV9NQUMpICYmIFdURl9QTEFURk9STV9N
QUMKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gd2Via2l0RGlyZWN0aW9uSW52
ZXJ0ZWRGcm9tRGV2aWNlOworI2VuZGlmIC8qIFBMQVRGT1JNKFdURl9QTEFURk9STV9NQUMpICov
CiAjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZF
X0MKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNIb3Jpem9udGFsOwogI2Vu
ZGlmIC8qIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICovCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCmluZGV4IDUzN2VmNGMwOGEyMzcyNDBmYjZh
OWExNWE4MWViYWNhMzE4N2I3NmQuLmE1NjJjOTJmNDI2ZjY4ZWVkNzk4YTk2MjZlNmYxODI1Zjlm
OGExZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxF
dmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5o
CkBAIC0xMDIsNiArMTAyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgLCBt
X3BoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlTm9uZSkKICAgICAgICAgICAgICwgbV9tb21l
bnR1bVBoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlTm9uZSkKICAgICAgICAgICAgICwgbV90
aW1lc3RhbXAoMCkKKyAgICAgICAgICAgICwgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2Uo
ZmFsc2UpCiAjZW5kaWYKICAgICAgICAgewogICAgICAgICB9CkBAIC0xMjQsNiArMTI1LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgLCBtX3BoYXNlKFBsYXRmb3JtV2hlZWxF
dmVudFBoYXNlTm9uZSkKICAgICAgICAgICAgICwgbV9tb21lbnR1bVBoYXNlKFBsYXRmb3JtV2hl
ZWxFdmVudFBoYXNlTm9uZSkKICAgICAgICAgICAgICwgbV90aW1lc3RhbXAoMCkKKyAgICAgICAg
ICAgICwgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoZmFsc2UpCiAjZW5kaWYKICAgICAg
ICAgewogICAgICAgICB9CkBAIC0xODEsNiArMTgzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZSBtb21lbnR1bVBoYXNlKCkgY29uc3QgeyBy
ZXR1cm4gbV9tb21lbnR1bVBoYXNlOyB9CiAgICAgICAgIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGlu
Z0RlbHRhcygpIGNvbnN0IHsgcmV0dXJuIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhczsgfQog
ICAgICAgICBkb3VibGUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0K
KyAgICAgICAgYm9vbCB3ZWJraXREaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoKSBjb25zdCB7
IHJldHVybiBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZTsgfQogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShRVCkKQEAgLTIyMCw2ICsyMjMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlIG1fcGhhc2U7CiAgICAgICAgIFBsYXRmb3JtV2hl
ZWxFdmVudFBoYXNlIG1fbW9tZW50dW1QaGFzZTsKICAgICAgICAgZG91YmxlIG1fdGltZXN0YW1w
OworICAgICAgICBib29sIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlOwogI2VuZGlmCiAg
ICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1doZWVsRXZl
bnRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2hlZWxFdmVudE1hYy5tbQpp
bmRleCAyNDk0ZTY5YWJhZDI2MTVjYjZkODRiNDI0ZWEzNDY2NDk2NDY2NGU3Li43M2ZlOTc3ZjBh
YmNlNjA2ZGQyNjU3NmM3OGE0MjlmMGU5ZWYzMmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvV2hlZWxFdmVudE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvV2hlZWxFdmVudE1hYy5tbQpAQCAtMTAxLDYgKzEwMSwxMSBAQCBQbGF0Zm9ybVdo
ZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudChOU0V2ZW50KiBldmVudCwgTlNWaWV3ICp3aW5k
b3dWaWV3KQogICAgICwgbV9waGFzZShwaGFzZUZvckV2ZW50KGV2ZW50KSkKICAgICAsIG1fbW9t
ZW50dW1QaGFzZShtb21lbnR1bVBoYXNlRm9yRXZlbnQoZXZlbnQpKQogICAgICwgbV90aW1lc3Rh
bXAoW2V2ZW50IHRpbWVzdGFtcF0pCisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9Q
QVJEKQorICAgICwgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoW2V2ZW50IGlzRGlyZWN0
aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlXSkKKyNlbHNlCisgICAgLCBtX2RpcmVjdGlvbkludmVydGVk
RnJvbURldmljZShmYWxzZSkKKyNlbmRpZgogewogICAgIEJPT0wgY29udGludW91czsKICAgICB3
a0dldFdoZWVsRXZlbnREZWx0YXMoZXZlbnQsICZtX2RlbHRhWCwgJm1fZGVsdGFZLCAmY29udGlu
dW91cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDUwMjNkM2U1YTRiYWQ3ZWVkMTBjMmU4NDI3MTEzYTNjN2Yy
YWNkYy4uMWVjMWM0NmNjZDYwZjljMjkwMjBkMTRlOWUyOGZlOTAwNjg0MDBiZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI0IEBACisyMDExLTA5LTI4ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNv
bT4KKworICAgICAgICBFeHRlbmQgRE9NIFdoZWVsRXZlbnQgdG8gZGlmZmVyZW50aWF0ZSBiZXR3
ZWVuIHBoeXNpY2FsIGFuZCBsb2dpY2FsIHNjcm9sbCBkaXJlY3Rpb25zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODk1OQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMTAwMzY2ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBTaGFyZWQvV2ViRXZlbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViV2hl
ZWxFdmVudDo6ZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViRXZlbnRDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViS2l0MlBsYXRmb3Jt
V2hlZWxFdmVudDo6V2ViS2l0MlBsYXRmb3JtV2hlZWxFdmVudCk6CisgICAgICAgICogU2hhcmVk
L1dlYldoZWVsRXZlbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpXZWJX
aGVlbEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6ZW5jb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
bWFjL1dlYkV2ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJXaGVlbEV2ZW50KTogZ2V0IHRoZSBmbGFnIGZyb20gdGhlIE5TRXZlbnQuCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNv
YWxlc2NlKToKKwogMjAxMS0wOS0yNyAgR29wYWwgUmFnaGF2YW4gIDxnb3BhbC4xLnJhZ2hhdmFu
QG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFFEZXNrdG9wV2ViVmlldyBsb2FkIHplcm8gc2l6
ZSB2aWV3IHRlc3QgbWlzc2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuaAppbmRleCAxNzhjNTBk
ZjFlOTRkNjVjNGQxMGE5YjcyNzBhNGExYzM5Mjg5NGQzLi44OGM4NDY5ZGE0MGM1NGI2MjhhZjBh
YjA3YmRmNGZkNDAxNTRiNTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
RXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuaApAQCAtMTc5LDcg
KzE3OSw3IEBAIHB1YmxpYzoKIAogICAgIFdlYldoZWVsRXZlbnQoVHlwZSwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9z
aXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHksIE1vZGlmaWVycywgZG91YmxlIHRpbWVz
dGFtcCk7CiAjaWYgUExBVEZPUk0oTUFDKQotICAgIFdlYldoZWVsRXZlbnQoVHlwZSwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xv
YmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHksIFBoYXNlIHBoYXNlLCBQaGFz
ZSBtb21lbnR1bVBoYXNlLGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgTW9kaWZpZXJz
LCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBv
c2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBQaGFzZSwgUGhhc2UgbW9tZW50dW1Q
aGFzZSwgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCBNb2RpZmllcnMsIGRvdWJsZSB0
aW1lc3RhbXAsIGJvb2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKTsKICNlbmRpZgogCiAg
ICAgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bv
c2l0aW9uOyB9CkBAIC0xOTEsNiArMTkxLDcgQEAgcHVibGljOgogICAgIFBoYXNlIHBoYXNlKCkg
Y29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UGhhc2U+KG1fcGhhc2UpOyB9CiAgICAgUGhhc2Ug
bW9tZW50dW1QaGFzZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFBoYXNlPihtX21vbWVu
dHVtUGhhc2UpOyB9CiAgICAgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCkgY29uc3Qg
eyByZXR1cm4gbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzOyB9CisgICAgYm9vbCBkaXJlY3Rp
b25JbnZlcnRlZEZyb21EZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2RpcmVjdGlvbkludmVydGVk
RnJvbURldmljZTsgfQogI2VuZGlmCiAKICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXIqKSBjb25zdDsKQEAgLTIwOCw2ICsyMDksNyBAQCBwcml2YXRlOgogICAgIHVpbnQz
Ml90IG1fcGhhc2U7IC8vIFBoYXNlCiAgICAgdWludDMyX3QgbV9tb21lbnR1bVBoYXNlOyAvLyBQ
aGFzZQogICAgIGJvb2wgbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzOworICAgIGJvb2wgbV9k
aXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2U7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAKaW5kZXggOWMyZmFkMTdmZjU5YjYzZTY4
N2I1ZGNkZjAwMzU0MDY4MGJjNDY4OC4uMjIzNTVkYmIxMjEzYTNlZjJiMjE5M2E5MWExZjY4YmE3
M2VmM2UyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50Q29udmVy
c2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5j
cHAKQEAgLTExNSw2ICsxMTUsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fbW9tZW50dW1QaGFzZSA9
IHN0YXRpY19jYXN0PFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxFdmVudFBoYXNlPih3ZWJFdmVudC5t
b21lbnR1bVBoYXNlKCkpOwogICAgICAgICBtX2hhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMgPSB3
ZWJFdmVudC5oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCk7CiAgICAgICAgIG1fdGltZXN0YW1w
ID0gd2ViRXZlbnQudGltZXN0YW1wKCk7CisgICAgICAgIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9t
RGV2aWNlID0gd2ViRXZlbnQuZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKCk7CiAjZW5kaWYK
ICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYldoZWVsRXZl
bnQuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwCmluZGV4IDU5
NDBiY2M5YmQ3NjY0NWIyZDRmNDUyNTM0OWMwN2NkOTY0OGM3NWUuLmNlYWI4YTg2ZmM3ZGYxZWVl
ZjY4MzdhZGQxNDI2YzY0MGIzNTk1N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJXaGVlbEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViV2hlZWxF
dmVudC5jcHAKQEAgLTQzLDEzICs0MywxNCBAQCBXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50
KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludAogI2lm
IFBMQVRGT1JNKE1BQykKICAgICAsIG1fcGhhc2UoUGhhc2VOb25lKQogICAgICwgbV9oYXNQcmVj
aXNlU2Nyb2xsaW5nRGVsdGFzKGZhbHNlKQorICAgICwgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21E
ZXZpY2UoZmFsc2UpCiAjZW5kaWYKIHsKICAgICBBU1NFUlQoaXNXaGVlbEV2ZW50VHlwZSh0eXBl
KSk7CiB9CiAKICNpZiBQTEFURk9STShNQUMpCi1XZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50
KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xv
YmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hl
ZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21l
bnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIE1vZGlmaWVycyBtb2Rp
ZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5
cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFs
UG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxU
aWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1
bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIE1vZGlmaWVycyBtb2RpZmll
cnMsIGRvdWJsZSB0aW1lc3RhbXAsIGJvb2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKQog
ICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3Bvc2l0
aW9uKHBvc2l0aW9uKQogICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbikKQEAg
LTU5LDYgKzYwLDcgQEAgV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNv
bnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQKICAgICAsIG1fcGhhc2UocGhh
c2UpCiAgICAgLCBtX21vbWVudHVtUGhhc2UobW9tZW50dW1QaGFzZSkKICAgICAsIG1faGFzUHJl
Y2lzZVNjcm9sbGluZ0RlbHRhcyhoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKQorICAgICwgbV9k
aXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKQog
ewogICAgIEFTU0VSVChpc1doZWVsRXZlbnRUeXBlKHR5cGUpKTsKIH0KQEAgLTc3LDYgKzc5LDcg
QEAgdm9pZCBXZWJXaGVlbEV2ZW50OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBl
bmNvZGVyKSBjb25zdAogICAgIGVuY29kZXItPmVuY29kZShtX3BoYXNlKTsKICAgICBlbmNvZGVy
LT5lbmNvZGUobV9tb21lbnR1bVBoYXNlKTsKICAgICBlbmNvZGVyLT5lbmNvZGUobV9oYXNQcmVj
aXNlU2Nyb2xsaW5nRGVsdGFzKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUobV9kaXJlY3Rpb25JbnZl
cnRlZEZyb21EZXZpY2UpOwogI2VuZGlmCiB9CiAKQEAgLTEwMSw2ICsxMDQsOCBAQCBib29sIFdl
YldoZWVsRXZlbnQ6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdl
YldoZWVsRXZlbnQmIHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIt
PmRlY29kZSh0Lm1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcykpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZSh0Lm1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9t
RGV2aWNlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAgICAgcmV0dXJuIHRydWU7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9y
eS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCmluZGV4
IDA0NmY1NzJmODA2NWQ4YTQ4ZDczNTBmNjUzNjZjNjQ3YzE4MmM0NDcuLjEzMDU5YWY1MjU4ODY5
N2FlZmY0MzJjYzIyMjgwNWMwNmU3Y2RmOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvV2ViRXZlbnRGYWN0b3J5Lm1tCkBAIC0xMDk2LDggKzEwOTYsMTIgQEAgV2ViV2hlZWxFdmVu
dCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoTlNFdmVudCAqZXZlbnQsIE5T
VmlldyAqd2luZG8KICAgICBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMgICAgICAgICAg
PSBjb250aW51b3VzOwogICAgIFdlYkV2ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzICAgICAgICAg
ICA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKICAgICBkb3VibGUgdGltZXN0YW1wICAgICAg
ICAgICAgICAgICAgICAgICAgPSBbZXZlbnQgdGltZXN0YW1wXTsKLSAgICAKLSAgICByZXR1cm4g
V2ViV2hlZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIEludFBvaW50KHBvc2l0aW9uKSwgSW50UG9p
bnQoZ2xvYmFsUG9zaXRpb24pLCBGbG9hdFNpemUoZGVsdGFYLCBkZWx0YVkpLCBGbG9hdFNpemUo
d2hlZWxUaWNrc1gsIHdoZWVsVGlja3NZKSwgZ3JhbnVsYXJpdHksIHBoYXNlLCBtb21lbnR1bVBo
YXNlLCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCBtb2RpZmllcnMsIHRpbWVzdGFtcCk7Cisj
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorICAgIGJvb2wgZGlyZWN0aW9u
SW52ZXJ0ZWRGcm9tRGV2aWNlICAgICAgICA9IFtldmVudCBpc0RpcmVjdGlvbkludmVydGVkRnJv
bURldmljZV07CisjZWxzZQorICAgIGJvb2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlICAg
ICAgICA9IGZhbHNlOworI2VuZGlmCisgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6
OldoZWVsLCBJbnRQb2ludChwb3NpdGlvbiksIEludFBvaW50KGdsb2JhbFBvc2l0aW9uKSwgRmxv
YXRTaXplKGRlbHRhWCwgZGVsdGFZKSwgRmxvYXRTaXplKHdoZWVsVGlja3NYLCB3aGVlbFRpY2tz
WSksIGdyYW51bGFyaXR5LCBwaGFzZSwgbW9tZW50dW1QaGFzZSwgaGFzUHJlY2lzZVNjcm9sbGlu
Z0RlbHRhcywgbW9kaWZpZXJzLCB0aW1lc3RhbXAsIGRpcmVjdGlvbkludmVydGVkRnJvbURldmlj
ZSk7CiB9CiAKIFdlYktleWJvYXJkRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXli
b2FyZEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1ZpZXcgKikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMTI3M2JjOTY0MWU0ODhjMjY3MzFjYzNjNmZlYzE5
Yzc3ODFlZDBiMy4uNTc3ODY0ZmViNWJmNDQwMGZhYjJiMGQxYTNjMmZhMDlkNzhhZGZhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTI2NjQsNyArMjY2
NCw3IEBAIHN0YXRpYyBXZWJXaGVlbEV2ZW50IGNvYWxlc2NlKGNvbnN0IFdlYldoZWVsRXZlbnQm
IGEsIGNvbnN0IFdlYldoZWVsRXZlbnQmIGIpCiAgICAgRmxvYXRTaXplIG1lcmdlZFdoZWVsVGlj
a3MgPSBhLndoZWVsVGlja3MoKSArIGIud2hlZWxUaWNrcygpOwogCiAjaWYgUExBVEZPUk0oTUFD
KQotICAgIHJldHVybiBXZWJXaGVlbEV2ZW50KFdlYkV2ZW50OjpXaGVlbCwgYi5wb3NpdGlvbigp
LCBiLmdsb2JhbFBvc2l0aW9uKCksIG1lcmdlZERlbHRhLCBtZXJnZWRXaGVlbFRpY2tzLCBiLmdy
YW51bGFyaXR5KCksIGIucGhhc2UoKSwgYi5tb21lbnR1bVBoYXNlKCksIGIuaGFzUHJlY2lzZVNj
cm9sbGluZ0RlbHRhcygpLCBiLm1vZGlmaWVycygpLCBiLnRpbWVzdGFtcCgpKTsKKyAgICByZXR1
cm4gV2ViV2hlZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIGIucG9zaXRpb24oKSwgYi5nbG9iYWxQ
b3NpdGlvbigpLCBtZXJnZWREZWx0YSwgbWVyZ2VkV2hlZWxUaWNrcywgYi5ncmFudWxhcml0eSgp
LCBiLnBoYXNlKCksIGIubW9tZW50dW1QaGFzZSgpLCBiLmhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0
YXMoKSwgYi5tb2RpZmllcnMoKSwgYi50aW1lc3RhbXAoKSwgYi5kaXJlY3Rpb25JbnZlcnRlZEZy
b21EZXZpY2UoKSk7CiAjZWxzZQogICAgIHJldHVybiBXZWJXaGVlbEV2ZW50KFdlYkV2ZW50OjpX
aGVlbCwgYi5wb3NpdGlvbigpLCBiLmdsb2JhbFBvc2l0aW9uKCksIG1lcmdlZERlbHRhLCBtZXJn
ZWRXaGVlbFRpY2tzLCBiLmdyYW51bGFyaXR5KCksIGIubW9kaWZpZXJzKCksIGIudGltZXN0YW1w
KCkpOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109510</attachid>
            <date>2011-10-03 12:54:18 -0700</date>
            <delta_ts>2011-10-04 10:22:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68959-20111003125433.patch</filename>
            <type>text/plain</type>
            <size>28810</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTY1MTMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlYjM3MDFiZjNjZjVkMzkxYjlkZTZi
MjkyZWM2ZjZjNjIyYzVjNzk0Li42ZWJkZDFkZDE0MzY5ODAxMzFhOTRiMDFjOGEwZmJhOTZlZWYz
MDEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTAtMDMgIEpvbiBMZWUgIDxqb25sZWVA
YXBwbGUuY29tPgorCisgICAgICAgIEV4dGVuZCBET00gV2hlZWxFdmVudCB0byBkaWZmZXJlbnRp
YXRlIGJldHdlZW4gcGh5c2ljYWwgYW5kIGxvZ2ljYWwgc2Nyb2xsIGRpcmVjdGlvbnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4OTU5CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8xMDAzNjY4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL3doZWVsZXZlbnQtZGlyZWN0aW9uLWlu
dmVydGVkLWZyb20tZGV2aWNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
dmVudHMvd2hlZWxldmVudC1kaXJlY3Rpb24taW52ZXJ0ZWQtZnJvbS1kZXZpY2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkOiBXS1RSIGRvZXMgbm90IHN1
cHBvcnQgbW91c2Ugc2Nyb2xsIGV2ZW50cyB5ZXQuCisKIDIwMTEtMTAtMDMgIEFkYW0gQmFydGgg
IDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBEZWxldGUgYm9ndXMgZXhwZWN0ZWQgUE5H
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWxldmVudC1kaXJlY3Rp
b24taW52ZXJ0ZWQtZnJvbS1kZXZpY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvd2hlZWxldmVudC1kaXJlY3Rpb24taW52ZXJ0ZWQtZnJvbS1kZXZpY2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQzMDViMGY1YmY3MzJmYTU1MGM2NjI4MzllMjViOGRkZWViOTY3YzMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbGV2ZW50LWRp
cmVjdGlvbi1pbnZlcnRlZC1mcm9tLWRldmljZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBA
QAorVGhpcyB0ZXN0IGNoZWNrcyBmb3IgdGhlIGV4aXN0ZW5jZSBvZiB0aGUgd2Via2l0RGlyZWN0
aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlIHByb3BlcnR5IGluIHRoZSBXaGVlbEV2ZW50LgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU2Nyb2xsIG92ZXIgbWUKK3NlbmRpbmcgc2Nyb2xs
IGV2ZW50IHRvIGdyZWVuIHRhcmdldAorUEFTUyByZXN1bHQgIT0gdW5kZWZpbmVkIGlzIHRydWUK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbGV2ZW50LWRpcmVjdGlvbi1pbnZl
cnRlZC1mcm9tLWRldmljZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWxldmVu
dC1kaXJlY3Rpb24taW52ZXJ0ZWQtZnJvbS1kZXZpY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmUwYTE5
MDdmY2NkODI5NDlhOTFiMjBmZDBjYzM2MGIwZmEwZDFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWxldmVudC1kaXJlY3Rpb24taW52ZXJ0ZWQtZnJvbS1k
ZXZpY2UuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGJv
ZHk+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBzdHlsZT0id2lkdGg6MTAwcHg7
IGhlaWdodDo4MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOmdyZWVuOyBjb2xvcjp3aGl0ZSIgaWQ9InRh
cmdldCI+U2Nyb2xsIG92ZXIgbWU8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGZvciB0aGUg
ZXhpc3RlbmNlIG9mIHRoZSB3ZWJraXREaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UgcHJvcGVy
dHkgaW4gdGhlIFdoZWVsRXZlbnQuIik7Cit2YXIgdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0YXJnZXQiKTsKK3ZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKTsK
K3ZhciByZXN1bHQgPSB1bmRlZmluZWQ7CitmdW5jdGlvbiBzY3JvbGxIYW5kbGVyKGV2ZW50KSB7
CisgICAgcmVzdWx0ID0gZXZlbnQud2Via2l0RGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlOwor
ICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Cit9OwordC5hZGRFdmVudExpc3RlbmVyKCdtb3Vz
ZXdoZWVsJywgc2Nyb2xsSGFuZGxlciwgZmFsc2UpOworCitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyICYmIHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgIGRlYnVnKCJzZW5kaW5nIHNj
cm9sbCBldmVudCB0byBncmVlbiB0YXJnZXQiKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVU
byh0Lm9mZnNldExlZnQgKyAxMCwgdC5vZmZzZXRUb3AgKyAxMCk7CisgICAgZXZlbnRTZW5kZXIu
Y29udGludW91c01vdXNlU2Nyb2xsQnkoMCwxMCk7CisgICAgc2hvdWxkQmVUcnVlKCdyZXN1bHQg
IT0gdW5kZWZpbmVkJyk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9z
Y3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZAppbmRleCA1ZjViYjNhZWYxODZmNjQ0NzNj
MmRmNDQxMzQxNTA5ODVmNTY1NjIyLi41ODU2ZTMwNmZkMGMxZGNlZTU2MDNlYjBlNjUzYTVhYzdk
Y2IzN2NmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCkBAIC0xNTcsNiArMTU3
LDcgQEAgZmFzdC9ldmVudHMvc2VsZWN0c3RhcnQtcHJldmVudC1zZWxlY3Rpb24tb24tcmlnaHQt
Y2xpY2suaHRtbAogZmFzdC9ldmVudHMvc3RhbmRhbG9uZS1pbWFnZS1kcmFnLXRvLWVkaXRhYmxl
Lmh0bWwKIGZhc3QvZXZlbnRzL3doZWVsZXZlbnQtaW4taG9yaXpvbnRhbC1zY3JvbGxiYXItaW4t
cnRsLmh0bWwKIGZhc3QvZXZlbnRzL3doZWVsZXZlbnQtaW4tdmVydGljYWwtc2Nyb2xsYmFyLWlu
LXJ0bC5odG1sCitmYXN0L2V2ZW50cy93aGVlbGV2ZW50LWRpcmVjdGlvbi1pbnZlcnRlZC1mcm9t
LWRldmljZS5odG1sCiBmYXN0L2ZpbGVzL2FwcGx5LWJsb2ItdXJsLXRvLXhoci5odG1sCiBmYXN0
L2ZpbGVzL2ZpbGUtcmVhZGVyLWFib3J0Lmh0bWwKIGZhc3QvZmlsZXMvcmVhZC1ibG9iLWFzeW5j
Lmh0bWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGYwZDMyYTM5Mzc1MzJmMmIxNjYxNWRl
MDljMmQyNTM1OWVjMzA3ZjIuLjQ4Njc3MzdlZGI2ZWJhYTc1NGRkM2RmMTc5MjIyZjA0YjllMmMw
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTEwLTAz
ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBFeHRlbmQgRE9NIFdoZWVs
RXZlbnQgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIHBoeXNpY2FsIGFuZCBsb2dpY2FsIHNjcm9s
bCBkaXJlY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02ODk1OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAwMzY2ODg+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDog
QWRkZWQgSEFWRV9JTlZFUlRFRF9XSEVFTF9FVkVOVFMgZm9yIExpb24gYW5kIGxhdGVyLgorCiAy
MDExLTEwLTAzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbR1RLXSBGaXggbWFrZSBkaXN0Y2hlY2sgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvUGxhdGZvcm0uaAppbmRleCBhZmY2OGEzNDFjMDdjMzAzOGM5NWUyODNjNjlhMjdiYmQyZjZi
MmJkLi42NjYxMWE4YjZjN2ExOTQ4MjgxMGVmNGFjZThiODE3NzEzNzRhNWFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMTA0LDQgKzExMDQsOCBAQAogI2RlZmluZSBX
VEZfVVNFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSIDEKICNlbmRpZgogCisjaWYgUExB
VEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjZGVmaW5l
IEhBVkVfSU5WRVJURURfV0hFRUxfRVZFTlRTIDEKKyNlbmRpZgorCiAjZW5kaWYgLyogV1RGX1Bs
YXRmb3JtX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1ODk0MTlhZjQ2ZGE0ZWU3NGI5ZTFjMGVkMjYzY2Fh
M2IxMmZiNjgxLi45ZTAzNTc5NDExM2ZhMWRjOGU1YTAzNzI3NmExZmVhZTIxMmQ5ZDkwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTEtMTAtMDMgIEpvbiBMZWUgIDxqb25sZWVAYXBw
bGUuY29tPgorCisgICAgICAgIEV4dGVuZCBET00gV2hlZWxFdmVudCB0byBkaWZmZXJlbnRpYXRl
IGJldHdlZW4gcGh5c2ljYWwgYW5kIGxvZ2ljYWwgc2Nyb2xsIGRpcmVjdGlvbnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4OTU5CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8xMDAzNjY4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L2V2ZW50cy93aGVlbGV2ZW50LWRpcmVjdGlvbi1p
bnZlcnRlZC1mcm9tLWRldmljZS5odG1sCisKKyAgICAgICAgKiBkb20vV2hlZWxFdmVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50OjpXaGVlbEV2ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OldoZWVsRXZlbnQ6OmluaXRXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Oldo
ZWVsRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpXaGVlbEV2ZW50RGlzcGF0Y2hNZWRpYXRvcik6Cisg
ICAgICAgICogZG9tL1doZWVsRXZlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnQ6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50Ojp3ZWJraXREaXJlY3Rpb25J
bnZlcnRlZEZyb21EZXZpY2UpOgorICAgICAgICAqIGRvbS9XaGVlbEV2ZW50LmlkbDogQWRkZWQg
dGhlIHdlYmtpdERpcmVjdGlvbkludmVydGVkRnJvbURldmljZSBpZGwgYXR0cmlidXRlLgorICAg
ICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1XaGVlbEV2ZW50Ojp3ZWJraXREaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2Up
OgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9QbGF0Zm9ybVdoZWVsRXZlbnRFZmwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQpOiBk
ZWZhdWx0IHRvIGZhbHNlLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZl
bnRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9y
bVdoZWVsRXZlbnQpOiBkZWZhdWx0IHRvIGZhbHNlLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9X
aGVlbEV2ZW50TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50OjpQ
bGF0Zm9ybVdoZWVsRXZlbnQpOiBpZiBidWlsZGluZyBvbiBMaW9uIG9yIGxhdGVyLCB1c2UKKyAg
ICAgICAgW05TRXZlbnQgaXNEaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2VdLgorICAgICAgICAq
IHBsYXRmb3JtL3F0L1doZWVsRXZlbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9y
bVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudCk6IGRlZmF1bHQgdG8gZmFsc2UuCisgICAg
ICAgICogcGxhdGZvcm0vd2luL1doZWVsRXZlbnRXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQpOiBkZWZhdWx0IHRvIGZhbHNl
LgorICAgICAgICAqIHBsYXRmb3JtL3d4L01vdXNlV2hlZWxFdmVudFd4LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVlbEV2ZW50KTogZGVmYXVs
dCB0byBmYWxzZS4KKwogMjAxMS0xMC0wMyAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgRm9udEZhbGxiYWNrTGlzdDogR2x5cGggcGFnZXMgd2FzdGUgYSBsb3Qg
b2YgbWVtb3J5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCmluZGV4IDg1YjU2MjI1NWQyZjY0
Zjc2ODg0YTRlYmZlNDRlYmViYTkxM2E1MWQuLmI4YTVlMGI3ZWQ5ZmRjY2E2NDJmZDQwZWY4NTJk
ZmNkMTdkMmU2NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5jcHAKQEAgLTM5LDEzICszOSwx
NSBAQCBXaGVlbEV2ZW50OjpXaGVlbEV2ZW50KCkKIFdoZWVsRXZlbnQ6OldoZWVsRXZlbnQoY29u
c3QgRmxvYXRQb2ludCYgd2hlZWxUaWNrcywgY29uc3QgRmxvYXRQb2ludCYgcmF3RGVsdGEsCiAg
ICAgICAgICAgICAgICAgICAgICAgIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBQYXNzUmVmUHRy
PEFic3RyYWN0Vmlldz4gdmlldywKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UG9p
bnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgcGFnZUxvY2F0aW9uLAotICAgICAg
ICAgICAgICAgICAgICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5
LCBib29sIG1ldGFLZXkpCisgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY3RybEtleSwgYm9v
bCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UpCiAgICAgOiBNb3VzZVJlbGF0
ZWRFdmVudChldmVudE5hbWVzKCkubW91c2V3aGVlbEV2ZW50LAogICAgICAgICAgICAgICAgICAg
ICAgICAgdHJ1ZSwgdHJ1ZSwgdmlldywgMCwgc2NyZWVuTG9jYXRpb24sIHBhZ2VMb2NhdGlvbiwK
ICAgICAgICAgICAgICAgICAgICAgICAgIGN0cmxLZXksIGFsdEtleSwgc2hpZnRLZXksIG1ldGFL
ZXkpCiAgICAgLCBtX3doZWVsRGVsdGEoSW50UG9pbnQoc3RhdGljX2Nhc3Q8aW50Pih3aGVlbFRp
Y2tzLngoKSAqIHRpY2tNdWx0aXBsaWVyKSwgc3RhdGljX2Nhc3Q8aW50Pih3aGVlbFRpY2tzLnko
KSAqIHRpY2tNdWx0aXBsaWVyKSkpCiAgICAgLCBtX3Jhd0RlbHRhKHJvdW5kZWRJbnRQb2ludChy
YXdEZWx0YSkpCiAgICAgLCBtX2dyYW51bGFyaXR5KGdyYW51bGFyaXR5KQorICAgICwgbV9kaXJl
Y3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKQogewog
fQogCkBAIC02OSw3ICs3MSw4IEBAIHZvaWQgV2hlZWxFdmVudDo6aW5pdFdoZWVsRXZlbnQoaW50
IHJhd0RlbHRhWCwgaW50IHJhd0RlbHRhWSwgUGFzc1JlZlB0cjxBYnN0cmFjCiAgICAgCiAgICAg
bV9yYXdEZWx0YSA9IEludFBvaW50KHJhd0RlbHRhWCwgcmF3RGVsdGFZKTsKICAgICBtX2dyYW51
bGFyaXR5ID0gUGl4ZWw7Ci0gICAgCisgICAgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2Ug
PSBmYWxzZTsKKwogICAgIGluaXRDb29yZGluYXRlcyhJbnRQb2ludChwYWdlWCwgcGFnZVkpKTsK
IH0KIApAQCAtMTAxLDkgKzEwNCw5IEBAIFdoZWVsRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpXaGVl
bEV2ZW50RGlzcGF0Y2hNZWRpYXRvcihjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmCiAgICAgaWYg
KCEoZXZlbnQuZGVsdGFYKCkgfHwgZXZlbnQuZGVsdGFZKCkpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBzZXRFdmVudChXaGVlbEV2ZW50OjpjcmVhdGUoRmxvYXRQb2ludChldmVudC53aGVlbFRp
Y2tzWCgpLCBldmVudC53aGVlbFRpY2tzWSgpKSwgRmxvYXRQb2ludChldmVudC5kZWx0YVgoKSwg
ZXZlbnQuZGVsdGFZKCkpLCBncmFudWxhcml0eShldmVudCksCi0gICAgICAgIHZpZXcsIEludFBv
aW50KGV2ZW50Lmdsb2JhbFgoKSwgZXZlbnQuZ2xvYmFsWSgpKSwgSW50UG9pbnQoZXZlbnQueCgp
LCBldmVudC55KCkpLCBldmVudC5jdHJsS2V5KCksIGV2ZW50LmFsdEtleSgpLCBldmVudC5zaGlm
dEtleSgpLCBldmVudC5tZXRhS2V5KCkpKTsKLQorICAgIHNldEV2ZW50KFdoZWVsRXZlbnQ6OmNy
ZWF0ZShGbG9hdFBvaW50KGV2ZW50LndoZWVsVGlja3NYKCksIGV2ZW50LndoZWVsVGlja3NZKCkp
LCBGbG9hdFBvaW50KGV2ZW50LmRlbHRhWCgpLCBldmVudC5kZWx0YVkoKSksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdyYW51bGFyaXR5KGV2ZW50KSwgdmlldywgSW50UG9pbnQo
ZXZlbnQuZ2xvYmFsWCgpLCBldmVudC5nbG9iYWxZKCkpLCBJbnRQb2ludChldmVudC54KCksIGV2
ZW50LnkoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmN0cmxLZXko
KSwgZXZlbnQuYWx0S2V5KCksIGV2ZW50LnNoaWZ0S2V5KCksIGV2ZW50Lm1ldGFLZXkoKSwgZXZl
bnQud2Via2l0RGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKCkpKTsKIH0KIAogV2hlZWxFdmVu
dCogV2hlZWxFdmVudERpc3BhdGNoTWVkaWF0b3I6OmV2ZW50KCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hl
ZWxFdmVudC5oCmluZGV4IDUyMjNjZTQzMzg4ZTZmOTM2ZjcyNWMwNDNiMWM2MzliYmI2ODUzZWIu
LjljYmY3YzY4OTcyZTBlOGM1ZjRlOGVmOTE1Y2FhNDM1YTg4NGE0M2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1do
ZWVsRXZlbnQuaApAQCAtNDQsMTAgKzQ0LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2hlZWxFdmVudD4gY3JlYXRlKGNvbnN0IEZsb2F0UG9pbnQm
IHdoZWVsVGlja3MsCiAgICAgICAgICAgICBjb25zdCBGbG9hdFBvaW50JiByYXdEZWx0YSwgR3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHksIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LAogICAg
ICAgICAgICAgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYg
cGFnZUxvY2F0aW9uLAotICAgICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9v
bCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5KQorICAgICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29s
IGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LCBib29sIGRpcmVjdGlvbkludmVy
dGVkRnJvbURldmljZSkKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBXaGVlbEV2ZW50KHdoZWVsVGlja3MsIHJhd0RlbHRhLCBncmFudWxhcml0eSwgdmlldywKLSAg
ICAgICAgICAgICAgICBzY3JlZW5Mb2NhdGlvbiwgcGFnZUxvY2F0aW9uLCBjdHJsS2V5LCBhbHRL
ZXksIHNoaWZ0S2V5LCBtZXRhS2V5KSk7CisgICAgICAgICAgICAgICAgc2NyZWVuTG9jYXRpb24s
IHBhZ2VMb2NhdGlvbiwgY3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0YUtleSwgZGlyZWN0
aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKSk7CiAgICAgICAgIH0KIAogICAgICAgICB2b2lkIGluaXRX
aGVlbEV2ZW50KGludCByYXdEZWx0YVgsIGludCByYXdEZWx0YVksIFBhc3NSZWZQdHI8QWJzdHJh
Y3RWaWV3PiwKQEAgLTY1LDYgKzY1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBp
bnQgcmF3RGVsdGFZKCkgY29uc3QgeyByZXR1cm4gbV9yYXdEZWx0YS55KCk7IH0KICAgICAgICAg
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkoKSBjb25zdCB7IHJldHVybiBtX2dyYW51bGFyaXR5OyB9
CiAKKyAgICAgICAgYm9vbCB3ZWJraXREaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoKSBjb25z
dCB7IHJldHVybiBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZTsgfQogICAgICAgICAvLyBO
ZWVkZWQgZm9yIE9iamVjdGl2ZS1DIGxlZ2FjeSBzdXBwb3J0CiAgICAgICAgIGJvb2wgaXNIb3Jp
em9udGFsKCkgY29uc3QgeyByZXR1cm4gbV93aGVlbERlbHRhLngoKTsgfQogCkBAIC03MywxMyAr
NzQsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBXaGVlbEV2ZW50KGNvbnN0IEZs
b2F0UG9pbnQmIHdoZWVsVGlja3MsIGNvbnN0IEZsb2F0UG9pbnQmIHJhd0RlbHRhLAogICAgICAg
ICAgICAgICAgICAgIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBQYXNzUmVmUHRyPEFic3RyYWN0
Vmlldz4sCiAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9u
LCBjb25zdCBJbnRQb2ludCYgcGFnZUxvY2F0aW9uLAotICAgICAgICAgICAgICAgICAgIGJvb2wg
Y3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSk7CisgICAg
ICAgICAgICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwg
Ym9vbCBtZXRhS2V5LCBib29sIGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSk7CiAKICAgICAg
ICAgdmlydHVhbCBib29sIGlzV2hlZWxFdmVudCgpIGNvbnN0OwogCiAgICAgICAgIEludFBvaW50
IG1fd2hlZWxEZWx0YTsKICAgICAgICAgSW50UG9pbnQgbV9yYXdEZWx0YTsKICAgICAgICAgR3Jh
bnVsYXJpdHkgbV9ncmFudWxhcml0eTsKKyAgICAgICAgYm9vbCBtX2RpcmVjdGlvbkludmVydGVk
RnJvbURldmljZTsKICAgICB9OwogCiBjbGFzcyBXaGVlbEV2ZW50RGlzcGF0Y2hNZWRpYXRvciA6
IHB1YmxpYyBFdmVudERpc3BhdGNoTWVkaWF0b3IgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1doZWVsRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaWRs
CmluZGV4IGJkODE1MWI3YTYwODVlYzcxNTFhNzMxNzAzYTJiNmIyMmYzNmZhZTYuLmUwZmQ1NjNi
YTEwOTc3NjgzNzE4Mzk0NTY0NjU0NzljZGVlNzcxYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9XaGVlbEV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVu
dC5pZGwKQEAgLTM5LDYgKzM5LDcgQEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBsb25nICAgIG9mZnNldFk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBs
b25nICAgIHg7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgIHk7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHdlYmtpdERpcmVjdGlvbkludmVydGVkRnJvbURl
dmljZTsKIAogI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09C
SkVDVElWRV9DCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzSG9yaXpvbnRh
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKaW5kZXgg
NTM3ZWY0YzA4YTIzNzI0MGZiNmE5YTE1YTgxZWJhY2EzMTg3Yjc2ZC4uZGQ1ZWM3ZjFlOGMzOWRh
ZjdlYmQyZTZmNDlhMDE4YjRlNzYyZmM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1XaGVlbEV2ZW50LmgKQEAgLTk3LDYgKzk3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICAgICAgLCBtX2N0cmxLZXkoZmFsc2UpCiAgICAgICAgICAgICAsIG1fYWx0S2V5
KGZhbHNlKQogICAgICAgICAgICAgLCBtX21ldGFLZXkoZmFsc2UpCisgICAgICAgICAgICAsIG1f
ZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGZhbHNlKQogI2lmIFBMQVRGT1JNKE1BQykgfHwg
KFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQogICAgICAgICAgICAgLCBtX2hhc1By
ZWNpc2VTY3JvbGxpbmdEZWx0YXMoZmFsc2UpCiAgICAgICAgICAgICAsIG1fcGhhc2UoUGxhdGZv
cm1XaGVlbEV2ZW50UGhhc2VOb25lKQpAQCAtMTE5LDYgKzEyMCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgICAgICwgbV9jdHJsS2V5KGN0cmxLZXkpCiAgICAgICAgICAgICAsIG1f
YWx0S2V5KGFsdEtleSkKICAgICAgICAgICAgICwgbV9tZXRhS2V5KG1ldGFLZXkpCisgICAgICAg
ICAgICAsIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGZhbHNlKQogI2lmIFBMQVRGT1JN
KE1BQykgfHwgKFBMQVRGT1JNKENIUk9NSVVNKSAmJiBPUyhEQVJXSU4pKQogICAgICAgICAgICAg
LCBtX2hhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMoZmFsc2UpCiAgICAgICAgICAgICAsIG1fcGhh
c2UoUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VOb25lKQpAQCAtMTUwLDYgKzE1Miw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgaW50IGdsb2JhbFgoKSBjb25zdCB7IHJldHVybiBtX2ds
b2JhbFBvc2l0aW9uLngoKTsgfSAvLyBTY3JlZW4gY29vcmRpbmF0ZXMuCiAgICAgICAgIGludCBn
bG9iYWxZKCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxQb3NpdGlvbi55KCk7IH0KIAorICAgICAg
ICBib29sIHdlYmtpdERpcmVjdGlvbkludmVydGVkRnJvbURldmljZSgpIGNvbnN0IHsgcmV0dXJu
IG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlOyB9CisKICAgICAgICAgdm9pZCBhY2NlcHQo
KSB7IG1faXNBY2NlcHRlZCA9IHRydWU7IH0KICAgICAgICAgdm9pZCBpZ25vcmUoKSB7IG1faXNB
Y2NlcHRlZCA9IGZhbHNlOyB9CiAKQEAgLTIxNSw2ICsyMTksNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIGJvb2wgbV9jdHJsS2V5OwogICAgICAgICBib29sIG1fYWx0S2V5OwogICAg
ICAgICBib29sIG1fbWV0YUtleTsKKyAgICAgICAgYm9vbCBtX2RpcmVjdGlvbkludmVydGVkRnJv
bURldmljZTsKICNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1Mo
REFSV0lOKSkKICAgICAgICAgYm9vbCBtX2hhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXM7CiAgICAg
ICAgIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlIG1fcGhhc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGxhdGZvcm1XaGVlbEV2ZW50RWZsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9QbGF0Zm9ybVdoZWVsRXZlbnRFZmwuY3BwCmluZGV4IDcwNGRi
MzhhMmI4NzdlOWE4YTg0YTE5ODg4NzI5NTUxMWYwNDJiODAuLmYxYWUzYjgyMmQ0M2FlZWFhYTEy
N2Y1NDU4YzJkYjhhZTUzMTcxMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2VmbC9QbGF0Zm9ybVdoZWVsRXZlbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9QbGF0Zm9ybVdoZWVsRXZlbnRFZmwuY3BwCkBAIC01MSw2ICs1MSw3IEBAIFBsYXRm
b3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVlbEV2ZW50KGNvbnN0IEV2YXNfRXZlbnRfTW91c2Vf
V2hlZWwqIGV2KQogICAgICwgbV9jdHJsS2V5KGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChldi0+
bW9kaWZpZXJzLCAiQ29udHJvbCIpKQogICAgICwgbV9hbHRLZXkoZXZhc19rZXlfbW9kaWZpZXJf
aXNfc2V0KGV2LT5tb2RpZmllcnMsICJBbHQiKSkKICAgICAsIG1fbWV0YUtleShldmFzX2tleV9t
b2RpZmllcl9pc19zZXQoZXYtPm1vZGlmaWVycywgIk1ldGEiKSkKKyAgICAsIG1fZGlyZWN0aW9u
SW52ZXJ0ZWRGcm9tRGV2aWNlKGZhbHNlKQogewogICAgIC8vIEEgbmVnYXRpdmUgeiB2YWx1ZSBt
ZWFucyAoaW4gRUZMKSB0aGF0IHdlIGFyZSBzY3JvbGxpbmcgZG93biwgc28gd2UgbmVlZAogICAg
IC8vIHRvIGludmVydCB0aGUgdmFsdWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvUGxhdGZvcm1XaGVlbEV2ZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsuY3BwCmluZGV4IGZjNjIwNmZiOGQ5YmRhNWZk
M2M4OGNmMDRhOGFhYWZmMWNiZDY0MTQuLmJjZGNjZDg2OTM5MTk3MGYzOGRmMWYyMmRmNmU4M2M2
Njg2ZmUxOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9y
bVdoZWVsRXZlbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0
Zm9ybVdoZWVsRXZlbnRHdGsuY3BwCkBAIC02Nyw2ICs2Nyw3IEBAIFBsYXRmb3JtV2hlZWxFdmVu
dDo6UGxhdGZvcm1XaGVlbEV2ZW50KEdka0V2ZW50U2Nyb2xsKiBldmVudCkKICAgICBtX2N0cmxL
ZXkgPSBldmVudC0+c3RhdGUgJiBHREtfQ09OVFJPTF9NQVNLOwogICAgIG1fYWx0S2V5ID0gZXZl
bnQtPnN0YXRlICYgR0RLX01PRDFfTUFTSzsKICAgICBtX21ldGFLZXkgPSBldmVudC0+c3RhdGUg
JiBHREtfTUVUQV9NQVNLOworICAgIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlID0gZmFs
c2U7CiAKICAgICAvLyBGSVhNRTogcmV0cmlldmUgdGhlIHVzZXIgc2V0dGluZyBmb3IgdGhlIG51
bWJlciBvZiBsaW5lcyB0byBzY3JvbGwgb24gZWFjaCB3aGVlbCBldmVudAogICAgIG1fZGVsdGFY
ICo9IHN0YXRpY19jYXN0PGZsb2F0PihTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVwKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1doZWVsRXZlbnRNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2hlZWxFdmVudE1hYy5tbQppbmRleCAyNDk0
ZTY5YWJhZDI2MTVjYjZkODRiNDI0ZWEzNDY2NDk2NDY2NGU3Li4zOWFkNjBiNjAxNjdiZjIzYzRj
MzllNzBiMjM4NmFiZmEzMjFiNWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvV2hlZWxFdmVudE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
V2hlZWxFdmVudE1hYy5tbQpAQCAtMTE1LDYgKzExNSwxMiBAQCBQbGF0Zm9ybVdoZWVsRXZlbnQ6
OlBsYXRmb3JtV2hlZWxFdmVudChOU0V2ZW50KiBldmVudCwgTlNWaWV3ICp3aW5kb3dWaWV3KQog
ICAgICAgICBtX2RlbHRhWSAqPSBzdGF0aWNfY2FzdDxmbG9hdD4oU2Nyb2xsYmFyOjpwaXhlbHNQ
ZXJMaW5lU3RlcCgpKTsKICAgICAgICAgbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzID0gZmFs
c2U7CiAgICAgfQorCisjaWYgSEFWRShJTlZFUlRFRF9XSEVFTF9FVkVOVFMpCisgICAgbV9kaXJl
Y3Rpb25JbnZlcnRlZEZyb21EZXZpY2UgPSBbZXZlbnQgaXNEaXJlY3Rpb25JbnZlcnRlZEZyb21E
ZXZpY2VdOworI2Vsc2UKKyAgICBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZSA9IGZhbHNl
OworI2VuZGlmCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1doZWVsRXZlbnRRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9XaGVlbEV2ZW50UXQuY3BwCmluZGV4IGFhNjFkOTE5MGJlM2I4M2JiMTVjYWRh
OTk1YTk2ZTg3NzE2Mzg1NWYuLjIyM2VjYjQyNDM1YzVmYzk2Y2MzMzNiMTE0MWZhMTYzZGRjMjJk
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1doZWVsRXZlbnRRdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvV2hlZWxFdmVudFF0LmNwcApAQCAt
NjcsNiArNjcsNyBAQCBQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudChRR3Jh
cGhpY3NTY2VuZVdoZWVsRXZlbnQqIGUpCiAgICAgLCBtX2N0cmxLZXkoZS0+bW9kaWZpZXJzKCkg
JiBRdDo6Q29udHJvbE1vZGlmaWVyKQogICAgICwgbV9hbHRLZXkoZS0+bW9kaWZpZXJzKCkgJiBR
dDo6QWx0TW9kaWZpZXIpCiAgICAgLCBtX21ldGFLZXkoZS0+bW9kaWZpZXJzKCkgJiBRdDo6TWV0
YU1vZGlmaWVyKQorICAgICwgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoZmFsc2UpCiAj
ZW5kaWYKIHsKICNpZm5kZWYgUVRfTk9fV0hFRUxFVkVOVApAQCAtODYsNiArODcsNyBAQCBQbGF0
Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudChRV2hlZWxFdmVudCogZSkKICAgICAs
IG1fY3RybEtleShlLT5tb2RpZmllcnMoKSAmIFF0OjpDb250cm9sTW9kaWZpZXIpCiAgICAgLCBt
X2FsdEtleShlLT5tb2RpZmllcnMoKSAmIFF0OjpBbHRNb2RpZmllcikKICAgICAsIG1fbWV0YUtl
eShlLT5tb2RpZmllcnMoKSAmIFF0OjpNZXRhTW9kaWZpZXIpCisgICAgLCBtX2RpcmVjdGlvbklu
dmVydGVkRnJvbURldmljZShmYWxzZSkKICNlbmRpZgogewogI2lmbmRlZiBRVF9OT19XSEVFTEVW
RU5UCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2hlZWxFdmVudFdp
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2hlZWxFdmVudFdpbi5jcHAKaW5k
ZXggM2ZiODExOGUyMDg1YWIxOGNlMTc1NTBiMTQzNTE0YjE5NGQ0MTM4Ny4uNmFlNjhhOGU1MmIy
ZTFjNDI3YjkwYjBjYTU1OGIxNGU3OTIwNjczMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd2luL1doZWVsRXZlbnRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9XaGVlbEV2ZW50V2luLmNwcApAQCAtNzEsNiArNzEsNyBAQCBQbGF0Zm9ybVdoZWVs
RXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudChIV05EIGhXbmQsIGNvbnN0IEZsb2F0U2l6ZSYgZGVs
dGEsIGNvbnN0CiAgICAgLCBtX2N0cmxLZXkoZmFsc2UpCiAgICAgLCBtX2FsdEtleShmYWxzZSkK
ICAgICAsIG1fbWV0YUtleShmYWxzZSkKKyAgICAsIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2
aWNlKGZhbHNlKQogewogICAgIG1fZGVsdGFYID0gZGVsdGEud2lkdGgoKTsKICAgICBtX2RlbHRh
WSA9IGRlbHRhLmhlaWdodCgpOwpAQCAtOTUsNiArOTYsNyBAQCBQbGF0Zm9ybVdoZWVsRXZlbnQ6
OlBsYXRmb3JtV2hlZWxFdmVudChIV05EIGhXbmQsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFy
YW0sCiAgICAgLCBtX2N0cmxLZXkod1BhcmFtICYgTUtfQ09OVFJPTCkKICAgICAsIG1fYWx0S2V5
KEdldEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9CSVRfTUFTS19TSE9SVCkKICAgICAsIG1fbWV0
YUtleShtX2FsdEtleSkgLy8gRklYTUU6IFdlJ2xsIGhhdmUgdG8gdGVzdCBvdGhlciBicm93c2Vy
cworICAgICwgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoZmFsc2UpCiB7CiAgICAgLy8g
SG93IG1hbnkgcGl4ZWxzIHNob3VsZCB3ZSBzY3JvbGwgcGVyIGxpbmU/ICBHZWNrbyB1c2VzIHRo
ZSBoZWlnaHQgb2YgdGhlCiAgICAgLy8gY3VycmVudCBsaW5lLCB3aGljaCBtZWFucyBzY3JvbGwg
ZGlzdGFuY2UgY2hhbmdlcyBhcyB5b3UgZ28gdGhyb3VnaCB0aGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3d4L01vdXNlV2hlZWxFdmVudFd4LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3d4L01vdXNlV2hlZWxFdmVudFd4LmNwcAppbmRleCBhYTQxZGY0ZTBhYTYw
MTkyYmUyN2FjOTgyZTdiNzk1ODEwZDc3NGQ1Li4yMzQ5MjUxYjUwMTkwMDA4MGViYjY0MmMyMWFl
NDE1ZDUwYjU1OTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93eC9Nb3Vz
ZVdoZWVsRXZlbnRXeC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvTW91c2VX
aGVlbEV2ZW50V3guY3BwCkBAIC00NSw2ICs0NSw3IEBAIFBsYXRmb3JtV2hlZWxFdmVudDo6UGxh
dGZvcm1XaGVlbEV2ZW50KGNvbnN0IHd4TW91c2VFdmVudCYgZXZlbnQsIGNvbnN0IHd4UG9pbnQm
CiAgICAgLCBtX3doZWVsVGlja3NYKG1fZGVsdGFYKQogICAgICwgbV93aGVlbFRpY2tzWShtX2Rl
bHRhWSkKICAgICAsIG1faXNBY2NlcHRlZChmYWxzZSkKKyAgICAsIG1fZGlyZWN0aW9uSW52ZXJ0
ZWRGcm9tRGV2aWNlKGZhbHNlKQogewogICAgIC8vIEZJWE1FOiByZXRyaWV2ZSB0aGUgdXNlciBz
ZXR0aW5nIGZvciB0aGUgbnVtYmVyIG9mIGxpbmVzIHRvIHNjcm9sbCBvbiBlYWNoIHdoZWVsIGV2
ZW50CiAgICAgbV9kZWx0YVkgKj0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KFNjcm9sbGJhcjo6cGl4ZWxz
UGVyTGluZVN0ZXAoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTA0MmM0NTcxYWJhNzRjYjVlMWFlYjdlMmM1
NzhlMDQ1MzJjZThhNy4uYzgxYTFmNTUyNjViZWU1OGIwNjRlM2E2ZDQ1MDYwYWY1N2Y4MmJjZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDExLTEwLTAzICBKb24gTGVlICA8am9ubGVl
QGFwcGxlLmNvbT4KKworICAgICAgICBFeHRlbmQgRE9NIFdoZWVsRXZlbnQgdG8gZGlmZmVyZW50
aWF0ZSBiZXR3ZWVuIHBoeXNpY2FsIGFuZCBsb2dpY2FsIHNjcm9sbCBkaXJlY3Rpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODk1OQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMTAwMzY2ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViRXZlbnQuaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViV2hlZWxFdmVudDo6ZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViS2l0
MlBsYXRmb3JtV2hlZWxFdmVudDo6V2ViS2l0MlBsYXRmb3JtV2hlZWxFdmVudCk6CisgICAgICAg
ICogU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2
ZW50OjpXZWJXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6ZW5j
b2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6ZGVjb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZl
bnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KTogZ2V0IHRoZSBmbGFnIGZyb20gdGhlIE5T
RXZlbnQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OmNvYWxlc2NlKToKKworMjAxMS0wOS0yOCAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5j
b20+CisKKyAgICAgICAgRXh0ZW5kIERPTSBXaGVlbEV2ZW50IHRvIGRpZmZlcmVudGlhdGUgYmV0
d2VlbiBwaHlzaWNhbCBhbmQgbG9naWNhbCBzY3JvbGwgZGlyZWN0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg5NTkKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzEwMDM2Njg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogU2hhcmVkL1dlYkV2ZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYldo
ZWVsRXZlbnQ6OmRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkV2ZW50Q29udmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYktpdDJQbGF0Zm9y
bVdoZWVsRXZlbnQ6OldlYktpdDJQbGF0Zm9ybVdoZWVsRXZlbnQpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJXaGVlbEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6V2Vi
V2hlZWxFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6OmVuY29kZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L21hYy9XZWJFdmVudEZhY3RvcnkubW06CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFjdG9y
eTo6Y3JlYXRlV2ViV2hlZWxFdmVudCk6IGdldCB0aGUgZmxhZyBmcm9tIHRoZSBOU0V2ZW50Lgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0Ojpj
b2FsZXNjZSk6CisKIDIwMTEtMTAtMDMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEFkZCBmYWlsaW5nIHVyaSBwYXJhbWV0ZXIgdG8g
cHJvdmlzaW9uYWwtbG9hZC1mYWlsZWQgYW5kIGxvYWQtZmFpbGVkIHNpZ25hbHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkV2ZW50LmgKaW5kZXggMTc4YzUwZGYxZTk0ZDY1YzRkMTBhOWI3MjcwYTRhMWMzOTI4
OTRkMy4uMzQ3YWMxNWE4Y2M4MmVkMzVmZjE4ZjY4ZGEyODQxMWM2MDg3OTljZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkV2ZW50LmgKQEAgLTE3OSw3ICsxNzksNyBAQCBwdWJsaWM6CiAKICAgICBXZWJX
aGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmIGRlbHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFy
aXR5LCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApOwogI2lmIFBMQVRGT1JNKE1BQykKLSAg
ICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdy
YW51bGFyaXR5LCBQaGFzZSBwaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSxib29sIGhhc1ByZWNp
c2VTY3JvbGxpbmdEZWx0YXMsIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2Vi
V2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxh
cml0eSwgUGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGlu
Z0RlbHRhcywgTW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wLCBib29sIGRpcmVjdGlvbkludmVy
dGVkRnJvbURldmljZSk7CiAjZW5kaWYKIAogICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IHBv
c2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbjsgfQpAQCAtMTg3LDYgKzE4Nyw3IEBA
IHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUgZGVsdGEoKSBjb25zdCB7IHJl
dHVybiBtX2RlbHRhOyB9CiAgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplIHdoZWVsVGlja3Mo
KSBjb25zdCB7IHJldHVybiBtX3doZWVsVGlja3M7IH0KICAgICBHcmFudWxhcml0eSBncmFudWxh
cml0eSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEdyYW51bGFyaXR5PihtX2dyYW51bGFy
aXR5KTsgfQorICAgIGJvb2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKCkgY29uc3QgeyBy
ZXR1cm4gbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2U7IH0KICNpZiBQTEFURk9STShNQUMp
CiAgICAgUGhhc2UgcGhhc2UoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxQaGFzZT4obV9w
aGFzZSk7IH0KICAgICBQaGFzZSBtb21lbnR1bVBoYXNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8UGhhc2U+KG1fbW9tZW50dW1QaGFzZSk7IH0KQEAgLTIwNCw2ICsyMDUsNyBAQCBwcml2
YXRlOgogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX2RlbHRhOwogICAgIFdlYkNvcmU6OkZsb2F0
U2l6ZSBtX3doZWVsVGlja3M7CiAgICAgdWludDMyX3QgbV9ncmFudWxhcml0eTsgLy8gR3JhbnVs
YXJpdHkKKyAgICBib29sIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlOwogI2lmIFBMQVRG
T1JNKE1BQykKICAgICB1aW50MzJfdCBtX3BoYXNlOyAvLyBQaGFzZQogICAgIHVpbnQzMl90IG1f
bW9tZW50dW1QaGFzZTsgLy8gUGhhc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50
Q29udmVyc2lvbi5jcHAKaW5kZXggOWMyZmFkMTdmZjU5YjYzZTY4N2I1ZGNkZjAwMzU0MDY4MGJj
NDY4OC4uMjFiZjBmOWFmYjYyYTllNzU5NzI5MjgxMzAxNjU2YzIwNWUzNGQ0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAKQEAgLTExMCw2ICsxMTAs
NyBAQCBwdWJsaWM6CiAgICAgICAgIG1fY3RybEtleSA9IHdlYkV2ZW50LmNvbnRyb2xLZXkoKTsK
ICAgICAgICAgbV9hbHRLZXkgPSB3ZWJFdmVudC5hbHRLZXkoKTsKICAgICAgICAgbV9tZXRhS2V5
ID0gd2ViRXZlbnQubWV0YUtleSgpOworICAgICAgICBtX2RpcmVjdGlvbkludmVydGVkRnJvbURl
dmljZSA9IHdlYkV2ZW50LmRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSgpOwogI2lmIFBMQVRG
T1JNKE1BQykKICAgICAgICAgbV9waGFzZSA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OlBsYXRmb3Jt
V2hlZWxFdmVudFBoYXNlPih3ZWJFdmVudC5waGFzZSgpKTsKICAgICAgICAgbV9tb21lbnR1bVBo
YXNlID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U+KHdlYkV2
ZW50Lm1vbWVudHVtUGhhc2UoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViV2hlZWxFdmVudC5j
cHAKaW5kZXggNTk0MGJjYzliZDc2NjQ1YjJkNGY0NTI1MzQ5YzA3Y2Q5NjQ4Yzc1ZS4uODQ1Yjll
NWMyMmFiOWE4ZTgyNmY5OTJmZTA1ZTgxMmQzMDIxNTI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJXaGVlbEV2ZW50LmNwcApAQCAtNDAsNiArNDAsNyBAQCBXZWJXaGVlbEV2ZW50OjpXZWJX
aGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQ
b2ludAogICAgICwgbV9kZWx0YShkZWx0YSkKICAgICAsIG1fd2hlZWxUaWNrcyh3aGVlbFRpY2tz
KQogICAgICwgbV9ncmFudWxhcml0eShncmFudWxhcml0eSkKKyAgICAsIG1fZGlyZWN0aW9uSW52
ZXJ0ZWRGcm9tRGV2aWNlKGZhbHNlKQogI2lmIFBMQVRGT1JNKE1BQykKICAgICAsIG1fcGhhc2Uo
UGhhc2VOb25lKQogICAgICwgbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKGZhbHNlKQpAQCAt
NDksMTMgKzUwLDE0IEBAIFdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBj
b25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50CiB9CiAKICNpZiBQTEFURk9S
TShNQUMpCi1XZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50
UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZs
b2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkg
Z3JhbnVsYXJpdHksIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1By
ZWNpc2VTY3JvbGxpbmdEZWx0YXMsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3Rh
bXApCitXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9p
bnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0
U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHksIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNp
c2VTY3JvbGxpbmdEZWx0YXMsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXAs
IGJvb2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKQogICAgIDogV2ViRXZlbnQodHlwZSwg
bW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICwg
bV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbikKICAgICAsIG1fZGVsdGEoZGVsdGEpCiAg
ICAgLCBtX3doZWVsVGlja3Mod2hlZWxUaWNrcykKICAgICAsIG1fZ3JhbnVsYXJpdHkoZ3JhbnVs
YXJpdHkpCisgICAgLCBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZShkaXJlY3Rpb25JbnZl
cnRlZEZyb21EZXZpY2UpCiAgICAgLCBtX3BoYXNlKHBoYXNlKQogICAgICwgbV9tb21lbnR1bVBo
YXNlKG1vbWVudHVtUGhhc2UpCiAgICAgLCBtX2hhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMoaGFz
UHJlY2lzZVNjcm9sbGluZ0RlbHRhcykKQEAgLTczLDYgKzc1LDcgQEAgdm9pZCBXZWJXaGVlbEV2
ZW50OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogICAg
IGVuY29kZXItPmVuY29kZShtX2RlbHRhKTsKICAgICBlbmNvZGVyLT5lbmNvZGUobV93aGVlbFRp
Y2tzKTsKICAgICBlbmNvZGVyLT5lbmNvZGUobV9ncmFudWxhcml0eSk7CisgICAgZW5jb2Rlci0+
ZW5jb2RlKG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKTsKICNpZiBQTEFURk9STShNQUMp
CiAgICAgZW5jb2Rlci0+ZW5jb2RlKG1fcGhhc2UpOwogICAgIGVuY29kZXItPmVuY29kZShtX21v
bWVudHVtUGhhc2UpOwpAQCAtOTQsNiArOTcsOCBAQCBib29sIFdlYldoZWVsRXZlbnQ6OmRlY29k
ZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYldoZWVsRXZlbnQmIHQpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXItPmRlY29kZSh0Lm1fZ3JhbnVs
YXJpdHkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUo
dC5tX2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
ICNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUodC5tX3BoYXNlKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9XZWJFdmVudEZhY3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2
ZW50RmFjdG9yeS5tbQppbmRleCAwNDZmNTcyZjgwNjVkOGE0OGQ3MzUwZjY1MzY2YzY0N2MxODJj
NDQ3Li44ZTcyMzg3MjdmZjkwYTM5ZGFmNDE1YjkzZWVkY2M3NjM3Y2ExOGY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQpAQCAtMTA5Niw4ICsxMDk2
LDEyIEBAIFdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50
KE5TRXZlbnQgKmV2ZW50LCBOU1ZpZXcgKndpbmRvCiAgICAgYm9vbCBoYXNQcmVjaXNlU2Nyb2xs
aW5nRGVsdGFzICAgICAgICAgID0gY29udGludW91czsKICAgICBXZWJFdmVudDo6TW9kaWZpZXJz
IG1vZGlmaWVycyAgICAgICAgICAgPSBtb2RpZmllcnNGb3JFdmVudChldmVudCk7CiAgICAgZG91
YmxlIHRpbWVzdGFtcCAgICAgICAgICAgICAgICAgICAgICAgID0gW2V2ZW50IHRpbWVzdGFtcF07
Ci0gICAgCi0gICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBJbnRQb2lu
dChwb3NpdGlvbiksIEludFBvaW50KGdsb2JhbFBvc2l0aW9uKSwgRmxvYXRTaXplKGRlbHRhWCwg
ZGVsdGFZKSwgRmxvYXRTaXplKHdoZWVsVGlja3NYLCB3aGVlbFRpY2tzWSksIGdyYW51bGFyaXR5
LCBwaGFzZSwgbW9tZW50dW1QaGFzZSwgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgbW9kaWZp
ZXJzLCB0aW1lc3RhbXApOworI2lmIEhBVkUoSU5WRVJURURfV0hFRUxfRVZFTlRTKQorICAgIGJv
b2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlICAgICAgICA9IFtldmVudCBpc0RpcmVjdGlv
bkludmVydGVkRnJvbURldmljZV07CisjZWxzZQorICAgIGJvb2wgZGlyZWN0aW9uSW52ZXJ0ZWRG
cm9tRGV2aWNlICAgICAgICA9IGZhbHNlOworI2VuZGlmCisgICAgcmV0dXJuIFdlYldoZWVsRXZl
bnQoV2ViRXZlbnQ6OldoZWVsLCBJbnRQb2ludChwb3NpdGlvbiksIEludFBvaW50KGdsb2JhbFBv
c2l0aW9uKSwgRmxvYXRTaXplKGRlbHRhWCwgZGVsdGFZKSwgRmxvYXRTaXplKHdoZWVsVGlja3NY
LCB3aGVlbFRpY2tzWSksIGdyYW51bGFyaXR5LCBwaGFzZSwgbW9tZW50dW1QaGFzZSwgaGFzUHJl
Y2lzZVNjcm9sbGluZ0RlbHRhcywgbW9kaWZpZXJzLCB0aW1lc3RhbXAsIGRpcmVjdGlvbkludmVy
dGVkRnJvbURldmljZSk7CiB9CiAKIFdlYktleWJvYXJkRXZlbnQgV2ViRXZlbnRGYWN0b3J5Ojpj
cmVhdGVXZWJLZXlib2FyZEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1ZpZXcgKikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNmMwNDQ3ZTBjOTA0ZGNiMDdk
Njk2OThjOTZkMmMyMTJmOWUzYTY3OC4uYWJmZDk5Zjk0NmZkZmI5YjY1ODBiNjdmYjEzZWJlNTM4
MTc1MDU4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAg
LTI2NzAsNyArMjY3MCw3IEBAIHN0YXRpYyBXZWJXaGVlbEV2ZW50IGNvYWxlc2NlKGNvbnN0IFdl
YldoZWVsRXZlbnQmIGEsIGNvbnN0IFdlYldoZWVsRXZlbnQmIGIpCiAgICAgRmxvYXRTaXplIG1l
cmdlZFdoZWVsVGlja3MgPSBhLndoZWVsVGlja3MoKSArIGIud2hlZWxUaWNrcygpOwogCiAjaWYg
UExBVEZPUk0oTUFDKQotICAgIHJldHVybiBXZWJXaGVlbEV2ZW50KFdlYkV2ZW50OjpXaGVlbCwg
Yi5wb3NpdGlvbigpLCBiLmdsb2JhbFBvc2l0aW9uKCksIG1lcmdlZERlbHRhLCBtZXJnZWRXaGVl
bFRpY2tzLCBiLmdyYW51bGFyaXR5KCksIGIucGhhc2UoKSwgYi5tb21lbnR1bVBoYXNlKCksIGIu
aGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcygpLCBiLm1vZGlmaWVycygpLCBiLnRpbWVzdGFtcCgp
KTsKKyAgICByZXR1cm4gV2ViV2hlZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIGIucG9zaXRpb24o
KSwgYi5nbG9iYWxQb3NpdGlvbigpLCBtZXJnZWREZWx0YSwgbWVyZ2VkV2hlZWxUaWNrcywgYi5n
cmFudWxhcml0eSgpLCBiLnBoYXNlKCksIGIubW9tZW50dW1QaGFzZSgpLCBiLmhhc1ByZWNpc2VT
Y3JvbGxpbmdEZWx0YXMoKSwgYi5tb2RpZmllcnMoKSwgYi50aW1lc3RhbXAoKSwgYi5kaXJlY3Rp
b25JbnZlcnRlZEZyb21EZXZpY2UoKSk7CiAjZWxzZQogICAgIHJldHVybiBXZWJXaGVlbEV2ZW50
KFdlYkV2ZW50OjpXaGVlbCwgYi5wb3NpdGlvbigpLCBiLmdsb2JhbFBvc2l0aW9uKCksIG1lcmdl
ZERlbHRhLCBtZXJnZWRXaGVlbFRpY2tzLCBiLmdyYW51bGFyaXR5KCksIGIubW9kaWZpZXJzKCks
IGIudGltZXN0YW1wKCkpOwogI2VuZGlmCg==
</data>
<flag name="review"
          id="106766"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>