<?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>92323</bug_id>
          
          <creation_ts>2012-07-25 17:18:53 -0700</creation_ts>
          <short_desc>Plumb vsync-enabled flag up to compositor thread and support disable-vsync</short_desc>
          <delta_ts>2012-07-30 15:04:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Bates">jbates</reporter>
          <assigned_to name="John Bates">jbates</assigned_to>
          <cc>abarth</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>piman</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>678657</commentid>
    <comment_count>0</comment_count>
    <who name="John Bates">jbates</who>
    <bug_when>2012-07-25 17:18:53 -0700</bug_when>
    <thetext>Plumb vsync-enabled flag up to compositor thread and support disable-vsync</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678658</commentid>
    <comment_count>1</comment_count>
      <attachid>154500</attachid>
    <who name="John Bates">jbates</who>
    <bug_when>2012-07-25 17:21:26 -0700</bug_when>
    <thetext>Created attachment 154500
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678661</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-25 17:24:16 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678671</commentid>
    <comment_count>3</comment_count>
      <attachid>154500</attachid>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-07-25 17:42:29 -0700</bug_when>
    <thetext>Comment on attachment 154500
Patch

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

&gt; Source/Platform/chromium/public/WebLayerTreeViewClient.h:91
&gt; +    virtual bool isRenderingVSynced() const { return true; }

Since this is only queried at startup, wouldn&apos;t it be easier to expose on WebLayerTreeView::Settings / CCLayerTreeSettings instead? As is it looks like the client could change it dynamically (but it can&apos;t).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678674</commentid>
    <comment_count>4</comment_count>
    <who name="John Bates">jbates</who>
    <bug_when>2012-07-25 17:48:32 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 154500 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=154500&amp;action=review
&gt; 
&gt; &gt; Source/Platform/chromium/public/WebLayerTreeViewClient.h:91
&gt; &gt; +    virtual bool isRenderingVSynced() const { return true; }
&gt; 
&gt; Since this is only queried at startup, wouldn&apos;t it be easier to expose on WebLayerTreeView::Settings / CCLayerTreeSettings instead? As is it looks like the client could change it dynamically (but it can&apos;t).

Yeah, I&apos;ll try that instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678835</commentid>
    <comment_count>5</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-07-25 21:09:52 -0700</bug_when>
    <thetext>Lets see what the settings path looks like.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679832</commentid>
    <comment_count>6</comment_count>
      <attachid>154767</attachid>
    <who name="John Bates">jbates</who>
    <bug_when>2012-07-26 15:26:32 -0700</bug_when>
    <thetext>Created attachment 154767
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679859</commentid>
    <comment_count>7</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-07-26 15:45:55 -0700</bug_when>
    <thetext>LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679868</commentid>
    <comment_count>8</comment_count>
      <attachid>154767</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-07-26 15:55:52 -0700</bug_when>
    <thetext>Comment on attachment 154767
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCFrameRateController.h:57
&gt; +    // Disable framerate throttling by TimeSource, and instead render frames as
&gt; +    // fast as possible.
&gt; +    void disableTimeSourceThrottling(CCThread*);

This feels a bit off - what about having CCThreadProxy simply create a different CCTimeSource and passing that in to the framerate controller?  It could either make a delay based time source with an interval of 0 or another simpler implementation that just did postTask</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679889</commentid>
    <comment_count>9</comment_count>
      <attachid>154767</attachid>
    <who name="John Bates">jbates</who>
    <bug_when>2012-07-26 16:10:13 -0700</bug_when>
    <thetext>Comment on attachment 154767
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCFrameRateController.h:57
&gt;&gt; +    void disableTimeSourceThrottling(CCThread*);
&gt; 
&gt; This feels a bit off - what about having CCThreadProxy simply create a different CCTimeSource and passing that in to the framerate controller?  It could either make a delay based time source with an interval of 0 or another simpler implementation that just did postTask

Using CCTimeSource would require some slightly ugly changes elsewhere:
- CCFrameRateController still needs about the same code minus m_manualTicker.
- CCTimeSourceInfinite would have the m_manualTicker code.
- CCTimeSource would need a new virtual like &quot;pollForManualTick&quot; or &quot;forceTick&quot;, etc.

Not sure if the vsync-disabled path should add that much complexity. Another option is to virtualize CCFrameRateController and have a vsync-disabled version... That would have the complexity of sharing the m_numFramesPending logic while virtualizing didBeginFrame and didFinishFrame, but might be worth it. Wdyt?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681160</commentid>
    <comment_count>10</comment_count>
      <attachid>155068</attachid>
    <who name="John Bates">jbates</who>
    <bug_when>2012-07-27 15:32:48 -0700</bug_when>
    <thetext>Created attachment 155068
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681206</commentid>
    <comment_count>11</comment_count>
      <attachid>155068</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-07-27 16:08:10 -0700</bug_when>
    <thetext>Comment on attachment 155068
Patch

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

Could you update CCFrameRateControllerTest.cpp with at least some basic tests of this class?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCFrameRateController.cpp:69
&gt; +    // TimeSource ticks are not used in this mode, but we still use it to track
&gt; +    // active state, so make one that ticks slowly.

I don&apos;t know what this means - it looks like we post a task whenever the &quot;active&quot; state changes, so I can&apos;t figure out why we need another timer.  Is this just because the m_timeSource stores the &quot;active&quot; bool?  We could keep that as a member on CCFrameRateController if we want</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681210</commentid>
    <comment_count>12</comment_count>
      <attachid>155068</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-07-27 16:08:46 -0700</bug_when>
    <thetext>Comment on attachment 155068
Patch

I think we need at least a bit of test coverage for the new CCFrameRateController path before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681261</commentid>
    <comment_count>13</comment_count>
      <attachid>155093</attachid>
    <who name="John Bates">jbates</who>
    <bug_when>2012-07-27 17:18:45 -0700</bug_when>
    <thetext>Created attachment 155093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681263</commentid>
    <comment_count>14</comment_count>
      <attachid>155068</attachid>
    <who name="John Bates">jbates</who>
    <bug_when>2012-07-27 17:20:17 -0700</bug_when>
    <thetext>Comment on attachment 155068
Patch

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

Added a test for unthrottled behavior.

&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCFrameRateController.cpp:69
&gt;&gt; +    // active state, so make one that ticks slowly.
&gt; 
&gt; I don&apos;t know what this means - it looks like we post a task whenever the &quot;active&quot; state changes, so I can&apos;t figure out why we need another timer.  Is this just because the m_timeSource stores the &quot;active&quot; bool?  We could keep that as a member on CCFrameRateController if we want

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682140</commentid>
    <comment_count>15</comment_count>
      <attachid>155093</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-07-30 10:27:06 -0700</bug_when>
    <thetext>Comment on attachment 155093
Patch

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

R=me, just one question for you before setting cq?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCFrameRateController.cpp:91
&gt; +        postManualTick();

do we need to post a tick if we aren&apos;t active?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682149</commentid>
    <comment_count>16</comment_count>
      <attachid>155093</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-07-30 10:29:15 -0700</bug_when>
    <thetext>Comment on attachment 155093
Patch

Nice job!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682175</commentid>
    <comment_count>17</comment_count>
      <attachid>155093</attachid>
    <who name="John Bates">jbates</who>
    <bug_when>2012-07-30 10:44:55 -0700</bug_when>
    <thetext>Comment on attachment 155093
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCFrameRateController.cpp:91
&gt;&gt; +        postManualTick();
&gt; 
&gt; do we need to post a tick if we aren&apos;t active?

no, but postManualTick early-outs if we aren&apos;t active so call-sites don&apos;t need the check. otoh, this would probably look clearer if it checked before calling. I&apos;ll post a new CL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682181</commentid>
    <comment_count>18</comment_count>
      <attachid>155321</attachid>
    <who name="John Bates">jbates</who>
    <bug_when>2012-07-30 10:47:57 -0700</bug_when>
    <thetext>Created attachment 155321
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682429</commentid>
    <comment_count>19</comment_count>
      <attachid>155321</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-30 15:04:17 -0700</bug_when>
    <thetext>Comment on attachment 155321
Patch

Clearing flags on attachment: 155321

Committed r124097: &lt;http://trac.webkit.org/changeset/124097&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682430</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-30 15:04:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154500</attachid>
            <date>2012-07-25 17:21:26 -0700</date>
            <delta_ts>2012-07-26 15:26:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92323-20120725172115.patch</filename>
            <type>text/plain</type>
            <size>13798</size>
            <attacher name="John Bates">jbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNjM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBmZDhjYzA4NjZiODdl
MDJjZmFkYTc4MTQwYzVmMDk2N2Y1NWUzMzRmLi40ZjA0OGFlMzliN2VmZTU1NDE5Mjk2ZGE3MDMx
NTQxMjE4OWMxMDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wNy0yNSAg
Sm9obiBCYXRlcyAgPGpiYXRlc0Bnb29nbGUuY29tPgorCisgICAgICAgIFBsdW1iIHZzeW5jLWVu
YWJsZWQgZmxhZyB1cCB0byBjb21wb3NpdG9yIHRocmVhZCBhbmQgc3VwcG9ydCBkaXNhYmxlLXZz
eW5jCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjMy
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY2hy
b21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaDoKKyAgICAgICAgKFdlYkxheWVy
VHJlZVZpZXdDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXllclRyZWVWaWV3Q2xpZW50
Ojppc1JlbmRlcmluZ1ZTeW5jZWQpOgorCiAyMDEyLTA3LTI1ICBUb21teSBXaWRlbmZseWNodCAg
PHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAgICAgIE1lZGlhU3RyZWFtIEFQSTogVXBkYXRlIE1l
ZGlhU3RyZWFtVHJhY2sgdG8gbWF0Y2ggdGhlIHNwZWNpZmljYXRpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAw
MDNhYjhjNDJhZTc4NDExOTM5MTAyNmI2NjJkODBiODUxZmY1YzhhLi5lOGU1ZDcyMDFkOTEwYzRi
NjkxMzRjMzFhYWNlYThmOTk2YTM2NjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIw
MTItMDctMjUgIEpvaG4gQmF0ZXMgIDxqYmF0ZXNAZ29vZ2xlLmNvbT4KKworICAgICAgICBQbHVt
YiB2c3luYy1lbmFibGVkIGZsYWcgdXAgdG8gY29tcG9zaXRvciB0aHJlYWQgYW5kIHN1cHBvcnQg
ZGlzYWJsZS12c3luYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTIzMjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI6OkNDRnJhbWVS
YXRlQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI6
OmRpc2FibGVUaW1lU291cmNlVGhyb3R0bGluZyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNDRnJhbWVSYXRlQ29udHJvbGxlcjo6c2V0QWN0aXZlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNDRnJhbWVSYXRlQ29udHJvbGxlcjo6cG9zdE1hbnVhbFRpY2spOgorICAgICAg
ICAoV2ViQ29yZTo6Q0NGcmFtZVJhdGVDb250cm9sbGVyOjpvblRpbWVyRmlyZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q0NGcmFtZVJhdGVDb250cm9sbGVyOjpkaWRCZWdpbkZyYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNDRnJhbWVSYXRlQ29udHJvbGxlcjo6ZGlkRmluaXNoRnJhbWUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxl
ci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9z
dC5oOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0Q2xpZW50Ojppc1JlbmRlcmlu
Z1ZTeW5jZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0Ojppc1JlbmRlcmlu
Z1ZTeW5jZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhy
ZWFkUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6Q0NUaHJlYWRQ
cm94eSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5Ojppbml0aWFsaXplSW1wbE9u
SW1wbFRocmVhZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NU
aHJlYWRQcm94eS5oOgorICAgICAgICAoQ0NUaHJlYWRQcm94eSk6CisKIDIwMTItMDctMjUgIEFu
ZHJldyBXaWxzb24gIDxhdHdpbHNvbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjEyMzU2MC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZjFi
NDNmZTJiMjdiNDMwMDJhYTBmZWY0OGEzMDI0OTc2NWUyOTJjYy4uNzhlYWEyOGNjYTA3OTNhYjgz
MjljZjI0MTUxOTVlNzkxNmFjYzA5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxMi0wNy0yNSAgSm9obiBCYXRlcyAgPGpiYXRlc0Bnb29nbGUuY29tPgor
CisgICAgICAgIFBsdW1iIHZzeW5jLWVuYWJsZWQgZmxhZyB1cCB0byBjb21wb3NpdG9yIHRocmVh
ZCBhbmQgc3VwcG9ydCBkaXNhYmxlLXZzeW5jCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05MjMyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYldpZGdldENsaWVudC5oOgorICAgICAgICAo
V2ViV2lkZ2V0Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lkZ2V0Q2xpZW50Ojppc1Jl
bmRlcmluZ1ZTeW5jZWQpOgorICAgICAgICAqIHNyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5jcHA6
CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OmlzUmVuZGVyaW5nVlN5bmNlZCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAq
IHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAgICAoV2ViVmlld0ltcGwpOgorCiAyMDEyLTA3LTI1
ICBBZHJpZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+CiAKICAgICAgICAgW2Nocm9taXVt
XSBVbmlmeSBjb21wb3NpdG9yIHF1YWRUcmFuc2Zvcm0vZHJhd1RyYW5zZm9ybS9vcmlnaW5UcmFu
c2Zvcm0KZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5
ZXJUcmVlVmlld0NsaWVudC5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJM
YXllclRyZWVWaWV3Q2xpZW50LmgKaW5kZXggZmE3MzdlNmY2Yjk1M2MyMjBjNzg4MGUyODIxOTE1
OWNjNDI2MmFjYi4uMDYxMzBlMmY1NjAxNDk2M2JmODAzMjNiNjBhOTA3NTk1ZWQ5NjQ1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3
Q2xpZW50LmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRy
ZWVWaWV3Q2xpZW50LmgKQEAgLTg3LDYgKzg3LDkgQEAgcHVibGljOgogICAgIC8vIGludGVybmFs
bHkgc2NoZWR1bGUgYSBjb21wb3NpdGluZyBwYXNzIHdoZW4gbmVlZGVkLgogICAgIHZpcnR1YWwg
dm9pZCBzY2hlZHVsZUNvbXBvc2l0ZSgpID0gMDsKIAorICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBW
U3luYy1iYXNlZCBmcmFtZXJhdGUgdGhyb3R0bGluZyBpcyBlbmFibGVkLgorICAgIHZpcnR1YWwg
Ym9vbCBpc1JlbmRlcmluZ1ZTeW5jZWQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKIHByb3Rl
Y3RlZDoKICAgICB2aXJ0dWFsIH5XZWJMYXllclRyZWVWaWV3Q2xpZW50KCkgeyB9CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NG
cmFtZVJhdGVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5jcHAKaW5kZXggZGY3ZjMxNTU0YTFm
ZWVmMmQ4NzVkMWVmN2UxZTcyZTI1ODllYTg3OC4uN2I2NTIwOGJiNWU5MDEwNGZmYjQzOTVjNjMx
NGE3YWFlZGJmMmE3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIu
Y3BwCkBAIC01Miw2ICs1Miw3IEBAIENDRnJhbWVSYXRlQ29udHJvbGxlcjo6Q0NGcmFtZVJhdGVD
b250cm9sbGVyKFBhc3NSZWZQdHI8Q0NUaW1lU291cmNlPiB0aW1lcikKICAgICAsIG1fbnVtRnJh
bWVzUGVuZGluZygwKQogICAgICwgbV9tYXhGcmFtZXNQZW5kaW5nKDApCiAgICAgLCBtX3RpbWVT
b3VyY2UodGltZXIpCisgICAgLCBtX2lzVGltZVNvdXJjZVRocm90dGxpbmcodHJ1ZSkKIHsKICAg
ICBtX3RpbWVTb3VyY2VDbGllbnRBZGFwdGVyID0gQ0NGcmFtZVJhdGVDb250cm9sbGVyVGltZVNv
dXJjZUFkYXB0ZXI6OmNyZWF0ZSh0aGlzKTsKICAgICBtX3RpbWVTb3VyY2UtPnNldENsaWVudCht
X3RpbWVTb3VyY2VDbGllbnRBZGFwdGVyLmdldCgpKTsKQEAgLTYyLDEyICs2MywyNCBAQCBDQ0Zy
YW1lUmF0ZUNvbnRyb2xsZXI6On5DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIoKQogICAgIG1fdGltZVNv
dXJjZS0+c2V0QWN0aXZlKGZhbHNlKTsKIH0KIAordm9pZCBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI6
OmRpc2FibGVUaW1lU291cmNlVGhyb3R0bGluZyhDQ1RocmVhZCogdGhyZWFkKQoreworICAgIG1f
aXNUaW1lU291cmNlVGhyb3R0bGluZyA9IGZhbHNlOworICAgIG1fbWFudWFsVGlja2VyID0gYWRv
cHRQdHIobmV3IENDVGltZXIodGhyZWFkLCB0aGlzKSk7Cit9CisKIHZvaWQgQ0NGcmFtZVJhdGVD
b250cm9sbGVyOjpzZXRBY3RpdmUoYm9vbCBhY3RpdmUpCiB7CiAgICAgaWYgKG1fdGltZVNvdXJj
ZS0+YWN0aXZlKCkgPT0gYWN0aXZlKQogICAgICAgICByZXR1cm47CiAgICAgVFJBQ0VfRVZFTlQx
KCJjYyIsICJDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI6OnNldEFjdGl2ZSIsICJhY3RpdmUiLCBhY3Rp
dmUpOwogICAgIG1fdGltZVNvdXJjZS0+c2V0QWN0aXZlKGFjdGl2ZSk7CisKKyAgICBpZiAoIW1f
aXNUaW1lU291cmNlVGhyb3R0bGluZykgeworICAgICAgICBpZiAoIWFjdGl2ZSkKKyAgICAgICAg
ICAgIG1fbWFudWFsVGlja2VyLT5zdG9wKCk7CisgICAgICAgIHBvc3RNYW51YWxUaWNrKCk7Cisg
ICAgfQogfQogCiB2b2lkIENDRnJhbWVSYXRlQ29udHJvbGxlcjo6c2V0TWF4RnJhbWVzUGVuZGlu
ZyhpbnQgbWF4RnJhbWVzUGVuZGluZykKQEAgLTg5LDE0ICsxMDIsMjkgQEAgdm9pZCBDQ0ZyYW1l
UmF0ZUNvbnRyb2xsZXI6Om9uVGltZXJUaWNrKCkKICAgICAgICAgbV9jbGllbnQtPnZzeW5jVGlj
aygpOwogfQogCit2b2lkIENDRnJhbWVSYXRlQ29udHJvbGxlcjo6cG9zdE1hbnVhbFRpY2soKQor
eworICAgIGlmIChtX3RpbWVTb3VyY2UtPmFjdGl2ZSgpKQorICAgICAgICBtX21hbnVhbFRpY2tl
ci0+c3RhcnRPbmVTaG90KDApOworfQorCit2b2lkIENDRnJhbWVSYXRlQ29udHJvbGxlcjo6b25U
aW1lckZpcmVkKCkKK3sKKyAgICBvblRpbWVyVGljaygpOworfQorCiB2b2lkIENDRnJhbWVSYXRl
Q29udHJvbGxlcjo6ZGlkQmVnaW5GcmFtZSgpCiB7CiAgICAgbV9udW1GcmFtZXNQZW5kaW5nKys7
CisgICAgaWYgKCFtX2lzVGltZVNvdXJjZVRocm90dGxpbmcpCisgICAgICAgIHBvc3RNYW51YWxU
aWNrKCk7CiB9CiAKIHZvaWQgQ0NGcmFtZVJhdGVDb250cm9sbGVyOjpkaWRGaW5pc2hGcmFtZSgp
CiB7CiAgICAgbV9udW1GcmFtZXNQZW5kaW5nLS07CisgICAgaWYgKCFtX2lzVGltZVNvdXJjZVRo
cm90dGxpbmcpCisgICAgICAgIHBvc3RNYW51YWxUaWNrKCk7CiB9CiAKIHZvaWQgQ0NGcmFtZVJh
dGVDb250cm9sbGVyOjpkaWRBYm9ydEFsbFBlbmRpbmdGcmFtZXMoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVDb250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0ZyYW1lUmF0ZUNvbnRyb2xsZXIuaAppbmRleCBmYTIzYWYyY2NiZGYyYzVhOWI4ZDYzOGQ4ZmE5
YTA0MzFiY2FmOTYyLi43N2VlZWIxNDRmMjgyNmQ4MmFjZmRjMzQ3MzBhYWZkYTA4NWMwNWZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0ZyYW1lUmF0ZUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuaApAQCAtMjUsNiArMjUsOCBA
QAogI2lmbmRlZiBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXJfaAogI2RlZmluZSBDQ0ZyYW1lUmF0ZUNv
bnRyb2xsZXJfaAogCisjaW5jbHVkZSAiY2MvQ0NUaW1lci5oIgorCiAjaW5jbHVkZSA8d3RmL0N1
cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL093blB0
ci5oPgpAQCAtMzIsNiArMzQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEND
VGhyZWFkOwogY2xhc3MgQ0NUaW1lU291cmNlOwogCiBjbGFzcyBDQ0ZyYW1lUmF0ZUNvbnRyb2xs
ZXJDbGllbnQgewpAQCAtNDQsMTEgKzQ3LDE1IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgQ0NGcmFt
ZVJhdGVDb250cm9sbGVyVGltZVNvdXJjZUFkYXB0ZXI7CiAKLWNsYXNzIENDRnJhbWVSYXRlQ29u
dHJvbGxlciB7CitjbGFzcyBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIgOiBwdWJsaWMgQ0NUaW1lckNs
aWVudCB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgQ0NGcmFtZVJhdGVDb250cm9sbGVyKFBhc3NS
ZWZQdHI8Q0NUaW1lU291cmNlPik7CiAgICAgfkNDRnJhbWVSYXRlQ29udHJvbGxlcigpOwogCisg
ICAgLy8gRGlzYWJsZSBmcmFtZXJhdGUgdGhyb3R0bGluZyBieSBUaW1lU291cmNlLCBhbmQgaW5z
dGVhZCByZW5kZXIgZnJhbWVzIGFzCisgICAgLy8gZmFzdCBhcyBwb3NzaWJsZS4KKyAgICB2b2lk
IGRpc2FibGVUaW1lU291cmNlVGhyb3R0bGluZyhDQ1RocmVhZCopOworCiAgICAgdm9pZCBzZXRD
bGllbnQoQ0NGcmFtZVJhdGVDb250cm9sbGVyQ2xpZW50KiBjbGllbnQpIHsgbV9jbGllbnQgPSBj
bGllbnQ7IH0KIAogICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wpOwpAQCAtNzAsMTEgKzc3LDE4IEBA
IHByb3RlY3RlZDoKICAgICBmcmllbmQgY2xhc3MgQ0NGcmFtZVJhdGVDb250cm9sbGVyVGltZVNv
dXJjZUFkYXB0ZXI7CiAgICAgdm9pZCBvblRpbWVyVGljaygpOwogCisgICAgdm9pZCBwb3N0TWFu
dWFsVGljaygpOworCisgICAgLy8gQ0NUaW1lckNsaWVudCBpbXBsZW1lbnRhdGlvbiAodXNlZCB3
aGVuIFRpbWVTb3VyY2UgaXMgZGlzYWJsZWQpLgorICAgIHZpcnR1YWwgdm9pZCBvblRpbWVyRmly
ZWQoKSBPVkVSUklERTsKKwogICAgIENDRnJhbWVSYXRlQ29udHJvbGxlckNsaWVudCogbV9jbGll
bnQ7CiAgICAgaW50IG1fbnVtRnJhbWVzUGVuZGluZzsKICAgICBpbnQgbV9tYXhGcmFtZXNQZW5k
aW5nOwogICAgIFJlZlB0cjxDQ1RpbWVTb3VyY2U+IG1fdGltZVNvdXJjZTsKICAgICBPd25QdHI8
Q0NGcmFtZVJhdGVDb250cm9sbGVyVGltZVNvdXJjZUFkYXB0ZXI+IG1fdGltZVNvdXJjZUNsaWVu
dEFkYXB0ZXI7CisgICAgYm9vbCBtX2lzVGltZVNvdXJjZVRocm90dGxpbmc7CisgICAgT3duUHRy
PENDVGltZXI+IG1fbWFudWFsVGlja2VyOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhv
c3QuaAppbmRleCAyMmEwZDc1OTg5NmNjNzQxZDM4NWVhYjk5ZWFlNGNmYzI0OTZkZDY0Li5jN2M4
NGEyYWM0N2MzNzdiMDI5NTE5NjZhYTBhOWIyMDRkMjdhZGM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3QuaApAQCAtNzAsNiArNzAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRp
ZENvbW1pdCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKCkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZVN3YXBCdWZmZXJzKCkgPSAwOworICAg
IHZpcnR1YWwgYm9vbCBpc1JlbmRlcmluZ1ZTeW5jZWQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CiAKICAgICAvLyBVc2VkIG9ubHkgaW4gdGhlIHNpbmdsZS10aHJlYWRlZCBwYXRoLgogICAgIHZp
cnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0ZSgpID0gMDsKQEAgLTE4MSw2ICsxODIsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCB3aWxsQ29tbWl0KCkgeyBtX2NsaWVudC0+d2lsbENvbW1pdCgpOyB9
CiAgICAgdm9pZCBkaWRDb21taXRBbmREcmF3RnJhbWUoKSB7IG1fY2xpZW50LT5kaWRDb21taXRB
bmREcmF3RnJhbWUoKTsgfQogICAgIHZvaWQgZGlkQ29tcGxldGVTd2FwQnVmZmVycygpIHsgbV9j
bGllbnQtPmRpZENvbXBsZXRlU3dhcEJ1ZmZlcnMoKTsgfQorICAgIGJvb2wgaXNSZW5kZXJpbmdW
U3luY2VkKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQtPmlzUmVuZGVyaW5nVlN5bmNlZCgpOyB9
CiAgICAgdm9pZCBkZWxldGVDb250ZW50c1RleHR1cmVzT25JbXBsVGhyZWFkKENDUmVzb3VyY2VQ
cm92aWRlciopOwogICAgIHZpcnR1YWwgdm9pZCBhY3F1aXJlTGF5ZXJUZXh0dXJlcygpOwogICAg
IC8vIFJldHVybnMgZmFsc2UgaWYgd2Ugc2hvdWxkIGFib3J0IHRoaXMgZnJhbWUgZHVlIHRvIGlu
aXRpYWxpemF0aW9uIGZhaWx1cmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCmluZGV4IGUw
OWQ5NGM2MTdjOWQ2MzY3YTE1MTBiOWUyNzA0NmZlN2YxNmFhMzQuLmM2MTExNzRjNmFmODkxNTEy
YWE5MzdhZmQ2YmUzOGM5NzMzNjY0YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCkBA
IC04Niw2ICs4Niw3IEBAIENDVGhyZWFkUHJveHk6OkNDVGhyZWFkUHJveHkoQ0NMYXllclRyZWVI
b3N0KiBsYXllclRyZWVIb3N0KQogICAgICwgbV9jb21taXRDb21wbGV0aW9uRXZlbnRPbkltcGxU
aHJlYWQoMCkKICAgICAsIG1fdGV4dHVyZUFjcXVpc2l0aW9uQ29tcGxldGlvbkV2ZW50T25JbXBs
VGhyZWFkKDApCiAgICAgLCBtX25leHRGcmFtZUlzTmV3bHlDb21taXR0ZWRGcmFtZU9uSW1wbFRo
cmVhZChmYWxzZSkKKyAgICAsIG1faXNSZW5kZXJpbmdWU3luY2VkKGxheWVyVHJlZUhvc3QtPmlz
UmVuZGVyaW5nVlN5bmNlZCgpKQogewogICAgIFRSQUNFX0VWRU5UMCgiY2MiLCAiQ0NUaHJlYWRQ
cm94eTo6Q0NUaHJlYWRQcm94eSIpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC04
MTEsNiArODEyLDggQEAgdm9pZCBDQ1RocmVhZFByb3h5Ojppbml0aWFsaXplSW1wbE9uSW1wbFRo
cmVhZChDQ0NvbXBsZXRpb25FdmVudCogY29tcGxldGlvbikKICAgICBtX2xheWVyVHJlZUhvc3RJ
bXBsID0gbV9sYXllclRyZWVIb3N0LT5jcmVhdGVMYXllclRyZWVIb3N0SW1wbCh0aGlzKTsKICAg
ICBjb25zdCBkb3VibGUgZGlzcGxheVJlZnJlc2hJbnRlcnZhbCA9IDEuMCAvIDYwLjA7CiAgICAg
T3duUHRyPENDRnJhbWVSYXRlQ29udHJvbGxlcj4gZnJhbWVSYXRlQ29udHJvbGxlciA9IGFkb3B0
UHRyKG5ldyBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIoQ0NEZWxheUJhc2VkVGltZVNvdXJjZTo6Y3Jl
YXRlKGRpc3BsYXlSZWZyZXNoSW50ZXJ2YWwsIENDUHJveHk6OmltcGxUaHJlYWQoKSkpKTsKKyAg
ICBpZiAoIW1faXNSZW5kZXJpbmdWU3luY2VkKQorICAgICAgICBmcmFtZVJhdGVDb250cm9sbGVy
LT5kaXNhYmxlVGltZVNvdXJjZVRocm90dGxpbmcoQ0NQcm94eTo6aW1wbFRocmVhZCgpKTsKICAg
ICBtX3NjaGVkdWxlck9uSW1wbFRocmVhZCA9IENDU2NoZWR1bGVyOjpjcmVhdGUodGhpcywgZnJh
bWVSYXRlQ29udHJvbGxlci5yZWxlYXNlKCkpOwogICAgIG1fc2NoZWR1bGVyT25JbXBsVGhyZWFk
LT5zZXRWaXNpYmxlKG1fbGF5ZXJUcmVlSG9zdEltcGwtPnZpc2libGUoKSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFk
UHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VGhyZWFkUHJveHkuaAppbmRleCAwZjhhMzU0MDQwZTRmMDUwOGY4MTc0ZjlhNGM5NWE0MWM0MTJh
MjIxLi5jMTc2ZDg2ZTY0ZDIzMjU5NjIwODU2YTlhOTJkZjE1NzJkMjQ0YjUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFBy
b3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NUaHJlYWRQcm94eS5oCkBAIC0xODksNiArMTg5LDggQEAgcHJpdmF0ZToKIAogICAgIC8vIFNl
dCB3aGVuIHRoZSBuZXh0IGRyYXcgc2hvdWxkIHBvc3QgZGlkQ29tbWl0QW5kRHJhd0ZyYW1lIHRv
IHRoZSBtYWluIHRocmVhZC4KICAgICBib29sIG1fbmV4dEZyYW1lSXNOZXdseUNvbW1pdHRlZEZy
YW1lT25JbXBsVGhyZWFkOworCisgICAgYm9vbCBtX2lzUmVuZGVyaW5nVlN5bmNlZDsKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldENs
aWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0Q2xpZW50LmgK
aW5kZXggODk0NTdjZTM4MjBjNDY3MTI4MThiYzhmMWQ4MWU2ZTE2MGNlNjMxNy4uY2Y1MjZiMTdl
OGM4ZmIzNTYyNWMyZDI5NmY0MTZjOWYwMDRhMDJmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0Q2xpZW50LmgKQEAgLTE1Myw2ICsxNTMsOSBAQCBwdWJs
aWM6CiAgICAgLy8gUmV0dXJucyB0cnVlIGlmZiB0aGUgcG9pbnRlciBpcyBsb2NrZWQgdG8gdGhp
cyB3aWRnZXQuCiAgICAgdmlydHVhbCBib29sIGlzUG9pbnRlckxvY2tlZCgpIHsgcmV0dXJuIGZh
bHNlOyB9CiAKKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgVlN5bmMtYmFzZWQgZnJhbWVyYXRlIHRo
cm90dGxpbmcgaXMgZW5hYmxlZC4KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJpbmdWU3luY2Vk
KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgfldlYldpZGdldENs
aWVudCgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkxheWVyVHJlZVZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxh
eWVyVHJlZVZpZXdJbXBsLmNwcAppbmRleCA4MjVmYzAxZWY5ZWJkOWY5NWIyNWNjYmIzYmFmODQ3
NmUzMzEwOWM1Li4yYWNmZDJiNWU2N2NiNGUzYTJjOGE5NGIxMzY5MDAzODhmYmNjODZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwu
Y3BwCkBAIC02NCw2ICs2NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0
QW5kRHJhd0ZyYW1lKCkgT1ZFUlJJREUgeyBtX2NsaWVudC0+ZGlkQ29tbWl0QW5kRHJhd0ZyYW1l
KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVTd2FwQnVmZmVycygpIE9WRVJSSURF
IHsgbV9jbGllbnQtPmRpZENvbXBsZXRlU3dhcEJ1ZmZlcnMoKTsgfQogICAgIHZpcnR1YWwgdm9p
ZCBzY2hlZHVsZUNvbXBvc2l0ZSgpIE9WRVJSSURFIHsgbV9jbGllbnQtPnNjaGVkdWxlQ29tcG9z
aXRlKCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJpbmdWU3luY2VkKCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gbV9jbGllbnQtPmlzUmVuZGVyaW5nVlN5bmNlZCgpOyB9CiAKIHByaXZh
dGU6CiAgICAgV2ViTGF5ZXJUcmVlVmlld0NsaWVudCogbV9jbGllbnQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggN2M2ZGE2MGQ5M2FiZjZmMTMwYjBi
MjE3OTdlMGEzMzM2MjgzNzA3OC4uM2ViZjkxNGI5MjIyOWU0M2NiNWYxYjU0ZjhjOTYyYzQ2YzQz
ZTQ3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAt
Mzc3Miw2ICszNzcyLDExIEBAIHZvaWQgV2ViVmlld0ltcGw6OnNjaGVkdWxlQ29tcG9zaXRlKCkK
ICAgICBtX2NsaWVudC0+c2NoZWR1bGVDb21wb3NpdGUoKTsKIH0KIAorYm9vbCBXZWJWaWV3SW1w
bDo6aXNSZW5kZXJpbmdWU3luY2VkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jbGllbnQgPyBt
X2NsaWVudC0+aXNSZW5kZXJpbmdWU3luY2VkKCkgOiB0cnVlOworfQorCiB2b2lkIFdlYlZpZXdJ
bXBsOjp1cGRhdGVMYXllclRyZWVWaWV3cG9ydCgpCiB7CiAgICAgaWYgKCFwYWdlKCkgfHwgIW1f
bm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0IHx8IG1fbGF5ZXJUcmVlVmlldy5pc051bGwoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IDYzOWQ1ZTYxYWQ5ZDBi
M2QyZjVkMmZkNzY1YjJhYmY0YzBlNmE5MjguLjA3Yzg0ODlkMzk4OWE1YzMyNWUxMzYzMzFkODI4
ODFlM2E3ZDAzNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApA
QCAtMzEzLDYgKzMxMyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0QW5k
RHJhd0ZyYW1lKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbXBsZXRlU3dhcEJ1ZmZlcnMoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGUoKTsKKyAgICB2aXJ0dWFsIGJvb2wg
aXNSZW5kZXJpbmdWU3luY2VkKCkgY29uc3QgT1ZFUlJJREU7CiAKICAgICAvLyBXZWJWaWV3SW1w
bAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154767</attachid>
            <date>2012-07-26 15:26:32 -0700</date>
            <delta_ts>2012-07-27 15:32:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92323-20120726152621.patch</filename>
            <type>text/plain</type>
            <size>16633</size>
            <attacher name="John Bates">jbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNjM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBmZDhjYzA4NjZiODdl
MDJjZmFkYTc4MTQwYzVmMDk2N2Y1NWUzMzRmLi40MmY1MTk2N2Y5MjBlNGQzMzRkNTgzMGE4M2Qz
NmUxOWI1Mjg0YmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wNy0yNiAg
Sm9obiBCYXRlcyAgPGpiYXRlc0Bnb29nbGUuY29tPgorCisgICAgICAgIFBsdW1iIHZzeW5jLWVu
YWJsZWQgZmxhZyB1cCB0byBjb21wb3NpdG9yIHRocmVhZCBhbmQgc3VwcG9ydCBkaXNhYmxlLXZz
eW5jCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjMy
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY2hy
b21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXcuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5
ZXJUcmVlVmlldzo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAgICAgKFNldHRpbmdzKToKKwog
MjAxMi0wNy0yNSAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KIAogICAg
ICAgICBNZWRpYVN0cmVhbSBBUEk6IFVwZGF0ZSBNZWRpYVN0cmVhbVRyYWNrIHRvIG1hdGNoIHRo
ZSBzcGVjaWZpY2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDAzYWI4YzQyYWU3ODQxMTkzOTEwMjZiNjYy
ZDgwYjg1MWZmNWM4YS4uZjU2NGQ5YmVjYzZiZDcxNzVmNjg0YWY0M2ZkYWEwNGQyNWNhMzNhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA3LTI2ICBKb2huIEJhdGVzICA8amJh
dGVzQGdvb2dsZS5jb20+CisKKyAgICAgICAgUGx1bWIgdnN5bmMtZW5hYmxlZCBmbGFnIHVwIHRv
IGNvbXBvc2l0b3IgdGhyZWFkIGFuZCBzdXBwb3J0IGRpc2FibGUtdnN5bmMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMzIzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q0NGcmFtZVJhdGVDb250cm9sbGVyOjpDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Q0NGcmFtZVJhdGVDb250cm9sbGVyOjpkaXNhYmxlVGltZVNvdXJjZVRocm90dGxp
bmcpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0ZyYW1lUmF0ZUNv
bnRyb2xsZXI6OnNldEFjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0ZyYW1lUmF0ZUNvbnRy
b2xsZXI6OnBvc3RNYW51YWxUaWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkNDRnJhbWVSYXRlQ29u
dHJvbGxlcjo6b25UaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNDRnJhbWVSYXRlQ29u
dHJvbGxlcjo6ZGlkQmVnaW5GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0ZyYW1lUmF0ZUNv
bnRyb2xsZXI6OmRpZEZpbmlzaEZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoQ0NGcmFtZVJhdGVDb250cm9sbGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkND
TGF5ZXJUcmVlU2V0dGluZ3M6OkNDTGF5ZXJUcmVlU2V0dGluZ3MpOgorICAgICAgICAoQ0NMYXll
clRyZWVTZXR0aW5ncyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5OjpDQ1Ro
cmVhZFByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OmluaXRpYWxpemVJ
bXBsT25JbXBsVGhyZWFkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1RocmVhZFByb3h5Lmg6CisgICAgICAgIChDQ1RocmVhZFByb3h5KToKKwogMjAxMi0wNy0y
NSAgQW5kcmV3IFdpbHNvbiAgPGF0d2lsc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMTIzNTYwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCBmMWI0M2ZlMmIyN2I0MzAwMmFhMGZlZjQ4YTMwMjQ5NzY1ZTI5MmNjLi4xNTBkNjE1MTdlMjhj
ODQ0ZGQ2NGNmOTVlYTVlYjkyZWI2ZjFlZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIzIEBACisyMDEyLTA3LTI2ICBKb2huIEJhdGVzICA8amJhdGVzQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUGx1bWIgdnN5bmMtZW5hYmxlZCBmbGFnIHVwIHRvIGNvbXBvc2l0b3Ig
dGhyZWFkIGFuZCBzdXBwb3J0IGRpc2FibGUtdnN5bmMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViU2V0dGluZ3MuaDoKKyAgICAgICAg
KiBzcmMvV2ViTGF5ZXJUcmVlVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJl
ZVZpZXc6OlNldHRpbmdzOjpvcGVyYXRvciBDQ0xheWVyVHJlZVNldHRpbmdzKToKKyAgICAgICAg
KiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJ
bXBsOjpXZWJTZXR0aW5nc0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6
OnNldFJlbmRlclZTeW5jRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNy
Yy9XZWJTZXR0aW5nc0ltcGwuaDoKKyAgICAgICAgKFdlYlNldHRpbmdzSW1wbCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6cmVuZGVyVlN5bmNFbmFibGVkKToKKyAgICAgICAg
KiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0
SXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKToKKwogMjAxMi0wNy0yNSAgQWRyaWVubmUg
V2Fsa2VyICA8ZW5uZUBnb29nbGUuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVW5pZnkgY29t
cG9zaXRvciBxdWFkVHJhbnNmb3JtL2RyYXdUcmFuc2Zvcm0vb3JpZ2luVHJhbnNmb3JtCmRpZmYg
LS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXcu
aCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCmlu
ZGV4IGY1MjUxMTA0MzM2YTAzNGE1MTQ2Y2RkZDE2YmRhMmJkNmExYzZjNDIuLjUzYmVlYmQ1M2U4
ODVmNTllYjBhMmI3NzQxMmRmNjU5ODdkYzlkMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9y
bS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCisrKyBiL1NvdXJjZS9QbGF0Zm9y
bS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCkBAIC01NSw2ICs1NSw3IEBAIHB1
YmxpYzoKICAgICAgICAgICAgICwgc2hvd0ZQU0NvdW50ZXIoZmFsc2UpCiAgICAgICAgICAgICAs
IHNob3dQbGF0Zm9ybUxheWVyVHJlZShmYWxzZSkKICAgICAgICAgICAgICwgc2hvd1BhaW50UmVj
dHMoZmFsc2UpCisgICAgICAgICAgICAsIHJlbmRlclZTeW5jRW5hYmxlZCh0cnVlKQogICAgICAg
ICAgICAgLCByZWZyZXNoUmF0ZSgwKQogICAgICAgICAgICAgLCBkZWZhdWx0VGlsZVNpemUoV2Vi
U2l6ZSgyNTYsIDI1NikpCiAgICAgICAgICAgICAsIG1heFVudGlsZWRMYXllclNpemUoV2ViU2l6
ZSg1MTIsIDUxMikpCkBAIC02Niw2ICs2Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBzaG93
RlBTQ291bnRlcjsKICAgICAgICAgYm9vbCBzaG93UGxhdGZvcm1MYXllclRyZWU7CiAgICAgICAg
IGJvb2wgc2hvd1BhaW50UmVjdHM7CisgICAgICAgIGJvb2wgcmVuZGVyVlN5bmNFbmFibGVkOwog
ICAgICAgICBkb3VibGUgcmVmcmVzaFJhdGU7CiAgICAgICAgIFdlYlNpemUgZGVmYXVsdFRpbGVT
aXplOwogICAgICAgICBXZWJTaXplIG1heFVudGlsZWRMYXllclNpemU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NGcmFtZVJhdGVDb250cm9sbGVyLmNwcAppbmRleCBkZjdmMzE1NTRhMWZlZWYyZDg3NWQx
ZWY3ZTFlNzJlMjU4OWVhODc4Li43YjY1MjA4YmI1ZTkwMTA0ZmZiNDM5NWM2MzE0YTdhYWVkYmYy
YTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5jcHAKQEAgLTUy
LDYgKzUyLDcgQEAgQ0NGcmFtZVJhdGVDb250cm9sbGVyOjpDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIo
UGFzc1JlZlB0cjxDQ1RpbWVTb3VyY2U+IHRpbWVyKQogICAgICwgbV9udW1GcmFtZXNQZW5kaW5n
KDApCiAgICAgLCBtX21heEZyYW1lc1BlbmRpbmcoMCkKICAgICAsIG1fdGltZVNvdXJjZSh0aW1l
cikKKyAgICAsIG1faXNUaW1lU291cmNlVGhyb3R0bGluZyh0cnVlKQogewogICAgIG1fdGltZVNv
dXJjZUNsaWVudEFkYXB0ZXIgPSBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXJUaW1lU291cmNlQWRhcHRl
cjo6Y3JlYXRlKHRoaXMpOwogICAgIG1fdGltZVNvdXJjZS0+c2V0Q2xpZW50KG1fdGltZVNvdXJj
ZUNsaWVudEFkYXB0ZXIuZ2V0KCkpOwpAQCAtNjIsMTIgKzYzLDI0IEBAIENDRnJhbWVSYXRlQ29u
dHJvbGxlcjo6fkNDRnJhbWVSYXRlQ29udHJvbGxlcigpCiAgICAgbV90aW1lU291cmNlLT5zZXRB
Y3RpdmUoZmFsc2UpOwogfQogCit2b2lkIENDRnJhbWVSYXRlQ29udHJvbGxlcjo6ZGlzYWJsZVRp
bWVTb3VyY2VUaHJvdHRsaW5nKENDVGhyZWFkKiB0aHJlYWQpCit7CisgICAgbV9pc1RpbWVTb3Vy
Y2VUaHJvdHRsaW5nID0gZmFsc2U7CisgICAgbV9tYW51YWxUaWNrZXIgPSBhZG9wdFB0cihuZXcg
Q0NUaW1lcih0aHJlYWQsIHRoaXMpKTsKK30KKwogdm9pZCBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI6
OnNldEFjdGl2ZShib29sIGFjdGl2ZSkKIHsKICAgICBpZiAobV90aW1lU291cmNlLT5hY3RpdmUo
KSA9PSBhY3RpdmUpCiAgICAgICAgIHJldHVybjsKICAgICBUUkFDRV9FVkVOVDEoImNjIiwgIkND
RnJhbWVSYXRlQ29udHJvbGxlcjo6c2V0QWN0aXZlIiwgImFjdGl2ZSIsIGFjdGl2ZSk7CiAgICAg
bV90aW1lU291cmNlLT5zZXRBY3RpdmUoYWN0aXZlKTsKKworICAgIGlmICghbV9pc1RpbWVTb3Vy
Y2VUaHJvdHRsaW5nKSB7CisgICAgICAgIGlmICghYWN0aXZlKQorICAgICAgICAgICAgbV9tYW51
YWxUaWNrZXItPnN0b3AoKTsKKyAgICAgICAgcG9zdE1hbnVhbFRpY2soKTsKKyAgICB9CiB9CiAK
IHZvaWQgQ0NGcmFtZVJhdGVDb250cm9sbGVyOjpzZXRNYXhGcmFtZXNQZW5kaW5nKGludCBtYXhG
cmFtZXNQZW5kaW5nKQpAQCAtODksMTQgKzEwMiwyOSBAQCB2b2lkIENDRnJhbWVSYXRlQ29udHJv
bGxlcjo6b25UaW1lclRpY2soKQogICAgICAgICBtX2NsaWVudC0+dnN5bmNUaWNrKCk7CiB9CiAK
K3ZvaWQgQ0NGcmFtZVJhdGVDb250cm9sbGVyOjpwb3N0TWFudWFsVGljaygpCit7CisgICAgaWYg
KG1fdGltZVNvdXJjZS0+YWN0aXZlKCkpCisgICAgICAgIG1fbWFudWFsVGlja2VyLT5zdGFydE9u
ZVNob3QoMCk7Cit9CisKK3ZvaWQgQ0NGcmFtZVJhdGVDb250cm9sbGVyOjpvblRpbWVyRmlyZWQo
KQoreworICAgIG9uVGltZXJUaWNrKCk7Cit9CisKIHZvaWQgQ0NGcmFtZVJhdGVDb250cm9sbGVy
OjpkaWRCZWdpbkZyYW1lKCkKIHsKICAgICBtX251bUZyYW1lc1BlbmRpbmcrKzsKKyAgICBpZiAo
IW1faXNUaW1lU291cmNlVGhyb3R0bGluZykKKyAgICAgICAgcG9zdE1hbnVhbFRpY2soKTsKIH0K
IAogdm9pZCBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI6OmRpZEZpbmlzaEZyYW1lKCkKIHsKICAgICBt
X251bUZyYW1lc1BlbmRpbmctLTsKKyAgICBpZiAoIW1faXNUaW1lU291cmNlVGhyb3R0bGluZykK
KyAgICAgICAgcG9zdE1hbnVhbFRpY2soKTsKIH0KIAogdm9pZCBDQ0ZyYW1lUmF0ZUNvbnRyb2xs
ZXI6OmRpZEFib3J0QWxsUGVuZGluZ0ZyYW1lcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRl
Q29udHJvbGxlci5oCmluZGV4IGZhMjNhZjJjY2JkZjJjNWE5YjhkNjM4ZDhmYTlhMDQzMWJjYWY5
NjIuLjc3ZWVlYjE0NGYyODI2ZDgyYWNmZGMzNDczMGFhZmRhMDg1YzA1ZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRl
Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5oCkBAIC0yNSw2ICsyNSw4IEBACiAjaWZuZGVm
IENDRnJhbWVSYXRlQ29udHJvbGxlcl9oCiAjZGVmaW5lIENDRnJhbWVSYXRlQ29udHJvbGxlcl9o
CiAKKyNpbmNsdWRlICJjYy9DQ1RpbWVyLmgiCisKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUu
aD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CkBAIC0z
Miw2ICszNCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ0NUaHJlYWQ7CiBj
bGFzcyBDQ1RpbWVTb3VyY2U7CiAKIGNsYXNzIENDRnJhbWVSYXRlQ29udHJvbGxlckNsaWVudCB7
CkBAIC00NCwxMSArNDcsMTUgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBDQ0ZyYW1lUmF0ZUNvbnRy
b2xsZXJUaW1lU291cmNlQWRhcHRlcjsKIAotY2xhc3MgQ0NGcmFtZVJhdGVDb250cm9sbGVyIHsK
K2NsYXNzIENDRnJhbWVSYXRlQ29udHJvbGxlciA6IHB1YmxpYyBDQ1RpbWVyQ2xpZW50IHsKIHB1
YmxpYzoKICAgICBleHBsaWNpdCBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIoUGFzc1JlZlB0cjxDQ1Rp
bWVTb3VyY2U+KTsKICAgICB+Q0NGcmFtZVJhdGVDb250cm9sbGVyKCk7CiAKKyAgICAvLyBEaXNh
YmxlIGZyYW1lcmF0ZSB0aHJvdHRsaW5nIGJ5IFRpbWVTb3VyY2UsIGFuZCBpbnN0ZWFkIHJlbmRl
ciBmcmFtZXMgYXMKKyAgICAvLyBmYXN0IGFzIHBvc3NpYmxlLgorICAgIHZvaWQgZGlzYWJsZVRp
bWVTb3VyY2VUaHJvdHRsaW5nKENDVGhyZWFkKik7CisKICAgICB2b2lkIHNldENsaWVudChDQ0Zy
YW1lUmF0ZUNvbnRyb2xsZXJDbGllbnQqIGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVudDsgfQog
CiAgICAgdm9pZCBzZXRBY3RpdmUoYm9vbCk7CkBAIC03MCwxMSArNzcsMTggQEAgcHJvdGVjdGVk
OgogICAgIGZyaWVuZCBjbGFzcyBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXJUaW1lU291cmNlQWRhcHRl
cjsKICAgICB2b2lkIG9uVGltZXJUaWNrKCk7CiAKKyAgICB2b2lkIHBvc3RNYW51YWxUaWNrKCk7
CisKKyAgICAvLyBDQ1RpbWVyQ2xpZW50IGltcGxlbWVudGF0aW9uICh1c2VkIHdoZW4gVGltZVNv
dXJjZSBpcyBkaXNhYmxlZCkuCisgICAgdmlydHVhbCB2b2lkIG9uVGltZXJGaXJlZCgpIE9WRVJS
SURFOworCiAgICAgQ0NGcmFtZVJhdGVDb250cm9sbGVyQ2xpZW50KiBtX2NsaWVudDsKICAgICBp
bnQgbV9udW1GcmFtZXNQZW5kaW5nOwogICAgIGludCBtX21heEZyYW1lc1BlbmRpbmc7CiAgICAg
UmVmUHRyPENDVGltZVNvdXJjZT4gbV90aW1lU291cmNlOwogICAgIE93blB0cjxDQ0ZyYW1lUmF0
ZUNvbnRyb2xsZXJUaW1lU291cmNlQWRhcHRlcj4gbV90aW1lU291cmNlQ2xpZW50QWRhcHRlcjsK
KyAgICBib29sIG1faXNUaW1lU291cmNlVGhyb3R0bGluZzsKKyAgICBPd25QdHI8Q0NUaW1lcj4g
bV9tYW51YWxUaWNrZXI7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCmluZGV4
IDIyYTBkNzU5ODk2Y2M3NDFkMzg1ZWFiOTllYWU0Y2ZjMjQ5NmRkNjQuLjFhYjg1YmIwMjUzMTc4
YzVkOGRkNDViMTQxOWE5NjhkNTczYjMwMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5o
CkBAIC05MCw2ICs5MCw3IEBAIHN0cnVjdCBDQ0xheWVyVHJlZVNldHRpbmdzIHsKICAgICAgICAg
ICAgICwgc2hvd1NjcmVlblNwYWNlUmVjdHMoZmFsc2UpCiAgICAgICAgICAgICAsIHNob3dSZXBs
aWNhU2NyZWVuU3BhY2VSZWN0cyhmYWxzZSkKICAgICAgICAgICAgICwgc2hvd09jY2x1ZGluZ1Jl
Y3RzKGZhbHNlKQorICAgICAgICAgICAgLCByZW5kZXJWU3luY0VuYWJsZWQodHJ1ZSkKICAgICAg
ICAgICAgICwgcmVmcmVzaFJhdGUoMCkKICAgICAgICAgICAgICwgbWF4UGFydGlhbFRleHR1cmVV
cGRhdGVzKHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpCiAgICAgICAgICAgICAs
IGRlZmF1bHRUaWxlU2l6ZShJbnRTaXplKDI1NiwgMjU2KSkKQEAgLTEwNyw2ICsxMDgsNyBAQCBz
dHJ1Y3QgQ0NMYXllclRyZWVTZXR0aW5ncyB7CiAgICAgYm9vbCBzaG93U2NyZWVuU3BhY2VSZWN0
czsKICAgICBib29sIHNob3dSZXBsaWNhU2NyZWVuU3BhY2VSZWN0czsKICAgICBib29sIHNob3dP
Y2NsdWRpbmdSZWN0czsKKyAgICBib29sIHJlbmRlclZTeW5jRW5hYmxlZDsKICAgICBkb3VibGUg
cmVmcmVzaFJhdGU7CiAgICAgc2l6ZV90IG1heFBhcnRpYWxUZXh0dXJlVXBkYXRlczsKICAgICBJ
bnRTaXplIGRlZmF1bHRUaWxlU2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKaW5kZXgg
ZTA5ZDk0YzYxN2M5ZDYzNjdhMTUxMGI5ZTI3MDQ2ZmU3ZjE2YWEzNC4uY2IyNTU3NTA0ZTU2YWE4
ZGVhZTBjMDdhZjNiZmRhYmJlNjA4MGI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAK
QEAgLTg2LDYgKzg2LDcgQEAgQ0NUaHJlYWRQcm94eTo6Q0NUaHJlYWRQcm94eShDQ0xheWVyVHJl
ZUhvc3QqIGxheWVyVHJlZUhvc3QpCiAgICAgLCBtX2NvbW1pdENvbXBsZXRpb25FdmVudE9uSW1w
bFRocmVhZCgwKQogICAgICwgbV90ZXh0dXJlQWNxdWlzaXRpb25Db21wbGV0aW9uRXZlbnRPbklt
cGxUaHJlYWQoMCkKICAgICAsIG1fbmV4dEZyYW1lSXNOZXdseUNvbW1pdHRlZEZyYW1lT25JbXBs
VGhyZWFkKGZhbHNlKQorICAgICwgbV9yZW5kZXJWU3luY0VuYWJsZWQobGF5ZXJUcmVlSG9zdC0+
c2V0dGluZ3MoKS5yZW5kZXJWU3luY0VuYWJsZWQpCiB7CiAgICAgVFJBQ0VfRVZFTlQwKCJjYyIs
ICJDQ1RocmVhZFByb3h5OjpDQ1RocmVhZFByb3h5Iik7CiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKQEAgLTgxMSw2ICs4MTIsOCBAQCB2b2lkIENDVGhyZWFkUHJveHk6OmluaXRpYWxpemVJ
bXBsT25JbXBsVGhyZWFkKENDQ29tcGxldGlvbkV2ZW50KiBjb21wbGV0aW9uKQogICAgIG1fbGF5
ZXJUcmVlSG9zdEltcGwgPSBtX2xheWVyVHJlZUhvc3QtPmNyZWF0ZUxheWVyVHJlZUhvc3RJbXBs
KHRoaXMpOwogICAgIGNvbnN0IGRvdWJsZSBkaXNwbGF5UmVmcmVzaEludGVydmFsID0gMS4wIC8g
NjAuMDsKICAgICBPd25QdHI8Q0NGcmFtZVJhdGVDb250cm9sbGVyPiBmcmFtZVJhdGVDb250cm9s
bGVyID0gYWRvcHRQdHIobmV3IENDRnJhbWVSYXRlQ29udHJvbGxlcihDQ0RlbGF5QmFzZWRUaW1l
U291cmNlOjpjcmVhdGUoZGlzcGxheVJlZnJlc2hJbnRlcnZhbCwgQ0NQcm94eTo6aW1wbFRocmVh
ZCgpKSkpOworICAgIGlmICghbV9yZW5kZXJWU3luY0VuYWJsZWQpCisgICAgICAgIGZyYW1lUmF0
ZUNvbnRyb2xsZXItPmRpc2FibGVUaW1lU291cmNlVGhyb3R0bGluZyhDQ1Byb3h5OjppbXBsVGhy
ZWFkKCkpOwogICAgIG1fc2NoZWR1bGVyT25JbXBsVGhyZWFkID0gQ0NTY2hlZHVsZXI6OmNyZWF0
ZSh0aGlzLCBmcmFtZVJhdGVDb250cm9sbGVyLnJlbGVhc2UoKSk7CiAgICAgbV9zY2hlZHVsZXJP
bkltcGxUaHJlYWQtPnNldFZpc2libGUobV9sYXllclRyZWVIb3N0SW1wbC0+dmlzaWJsZSgpKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NUaHJlYWRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCmluZGV4IDBmOGEzNTQwNDBlNGYwNTA4ZjgxNzRmOWE0
Yzk1YTQxYzQxMmEyMjEuLmQyMjg3MTdhOWJjYjViZjdmZTVjYjk0YjBjMjYwOTlmZTExNzc5ZmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDVGhyZWFkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKQEAgLTE4OSw2ICsxODksOCBAQCBwcml2YXRlOgog
CiAgICAgLy8gU2V0IHdoZW4gdGhlIG5leHQgZHJhdyBzaG91bGQgcG9zdCBkaWRDb21taXRBbmRE
cmF3RnJhbWUgdG8gdGhlIG1haW4gdGhyZWFkLgogICAgIGJvb2wgbV9uZXh0RnJhbWVJc05ld2x5
Q29tbWl0dGVkRnJhbWVPbkltcGxUaHJlYWQ7CisKKyAgICBib29sIG1fcmVuZGVyVlN5bmNFbmFi
bGVkOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdz
LmgKaW5kZXggODhlZDk2MzlkZTI0ZTNkOWE2YzBhMzA0NjA2OGE3MzBmYTZjN2ZkOC4uMTZmZGMx
NTIwODZmY2IwZGM1YTZiZjI0NDFmMDQ0NzI3OGRiMzJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCkBAIC0xMzIsNiArMTMyLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBzZXRQaWN0b2dyYXBoRm9udEZhbWlseShjb25zdCBXZWJTdHJpbmcm
LCBVU2NyaXB0Q29kZSA9IFVTQ1JJUFRfQ09NTU9OKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNl
dFBsdWdpbnNFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UHJpdmlsZWdl
ZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQoYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRS
ZW5kZXJWU3luY0VuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTYW5zU2Vy
aWZGb250RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRDb2RlID0gVVNDUklQVF9DT01N
T04pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VyaWZGb250RmFtaWx5KGNvbnN0IFdlYlN0
cmluZyYsIFVTY3JpcHRDb2RlID0gVVNDUklQVF9DT01NT04pID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0U2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyhib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXcuY3BwCmluZGV4IGJjZDQ5MGE4NDFmNDRi
ZjM3OWJmNDg4N2Y3MzRiMTE1ZGZkNjYxNDEuLmMxMjE5NGVjNzc2YTkwMWNkZDI3MWRkZDY3ZmM0
NmQ4M2Q5NmM1NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxh
eWVyVHJlZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVy
VHJlZVZpZXcuY3BwCkBAIC00OSw2ICs0OSw3IEBAIFdlYkxheWVyVHJlZVZpZXc6OlNldHRpbmdz
OjpvcGVyYXRvciBDQ0xheWVyVHJlZVNldHRpbmdzKCkgY29uc3QKICAgICBzZXR0aW5ncy5zaG93
RlBTQ291bnRlciA9IHNob3dGUFNDb3VudGVyOwogICAgIHNldHRpbmdzLnNob3dQbGF0Zm9ybUxh
eWVyVHJlZSA9IHNob3dQbGF0Zm9ybUxheWVyVHJlZTsKICAgICBzZXR0aW5ncy5zaG93UGFpbnRS
ZWN0cyA9IHNob3dQYWludFJlY3RzOworICAgIHNldHRpbmdzLnJlbmRlclZTeW5jRW5hYmxlZCA9
IHJlbmRlclZTeW5jRW5hYmxlZDsKICAgICBzZXR0aW5ncy5yZWZyZXNoUmF0ZSA9IHJlZnJlc2hS
YXRlOwogICAgIHNldHRpbmdzLmRlZmF1bHRUaWxlU2l6ZSA9IGRlZmF1bHRUaWxlU2l6ZTsKICAg
ICBzZXR0aW5ncy5tYXhVbnRpbGVkTGF5ZXJTaXplID0gbWF4VW50aWxlZExheWVyU2l6ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCmluZGV4IDVj
NTdjZjhjYTlhNjQ2MmMwMmY2YTAwOTQ2NDc0ZDc5ZjI1MmVjYmMuLjlmYzYwOGYzOWNhMWE0NGYw
Y2U2NzI4N2M5ZWU1YmRiMDEwY2ExYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViU2V0dGluZ3NJbXBsLmNwcApAQCAtNTEsNiArNTEsNyBAQCBXZWJTZXR0aW5nc0ltcGw6
OldlYlNldHRpbmdzSW1wbChTZXR0aW5ncyogc2V0dGluZ3MpCiAgICAgLCBtX3Nob3dGUFNDb3Vu
dGVyKGZhbHNlKQogICAgICwgbV9zaG93UGxhdGZvcm1MYXllclRyZWUoZmFsc2UpCiAgICAgLCBt
X3Nob3dQYWludFJlY3RzKGZhbHNlKQorICAgICwgbV9yZW5kZXJWU3luY0VuYWJsZWQodHJ1ZSkK
ICAgICAsIG1fdmlld3BvcnRFbmFibGVkKGZhbHNlKQogICAgICwgbV9hcHBseURlZmF1bHREZXZp
Y2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcihmYWxzZSkKICAgICAsIG1fZGVmYXVsdFRpbGVTaXpl
KFdlYlNpemUoMjU2LCAyNTYpKQpAQCAtMzU3LDYgKzM1OCwxMSBAQCB2b2lkIFdlYlNldHRpbmdz
SW1wbDo6c2V0UHJpdmlsZWdlZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQoYm9vbCBlbmFibGVkKQog
ICAgIG1fc2V0dGluZ3MtPnNldFByaXZpbGVnZWRXZWJHTEV4dGVuc2lvbnNFbmFibGVkKGVuYWJs
ZWQpOwogfQogCit2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0UmVuZGVyVlN5bmNFbmFibGVkKGJv
b2wgZW5hYmxlZCkKK3sKKyAgICBtX3JlbmRlclZTeW5jRW5hYmxlZCA9IGVuYWJsZWQ7Cit9CisK
IHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRXZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQoYm9v
bCBlbmFibGVkKQogewogICAgIG1fc2V0dGluZ3MtPnNldFdlYkdMRXJyb3JzVG9Db25zb2xlRW5h
YmxlZChlbmFibGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlNldHRpbmdzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJ
bXBsLmgKaW5kZXggNzZlMzBiNTJmYmIwZDZmMGM5NjA5Mjc4YTQ1MTA4NGIxMzE1ZmVjNi4uNjU2
NTI5ZDI2MGYzMzc1NzhjN2NjZjU5OTQwOGQzNDliMDg0MzRmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKQEAgLTEyNCw2ICsxMjQsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFBpY3RvZ3JhcGhGb250RmFtaWx5KGNvbnN0IFdlYlN0
cmluZyYsIFVTY3JpcHRDb2RlID0gVVNDUklQVF9DT01NT04pOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRQbHVnaW5zRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UHJpdmlsZWdlZFdl
YkdMRXh0ZW5zaW9uc0VuYWJsZWQoYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIHNldFJlbmRlclZT
eW5jRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Fuc1NlcmlmRm9udEZhbWls
eShjb25zdCBXZWJTdHJpbmcmLCBVU2NyaXB0Q29kZSA9IFVTQ1JJUFRfQ09NTU9OKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0U2VyaWZGb250RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRD
b2RlID0gVVNDUklQVF9DT01NT04pOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGREaXNwbGF5
Q2FwdGlvbnMoYm9vbCk7CkBAIC0xNTUsNiArMTU2LDcgQEAgcHVibGljOgogICAgIGJvb2wgc2hv
d0ZQU0NvdW50ZXIoKSBjb25zdCB7IHJldHVybiBtX3Nob3dGUFNDb3VudGVyOyB9CiAgICAgYm9v
bCBzaG93UGxhdGZvcm1MYXllclRyZWUoKSBjb25zdCB7IHJldHVybiBtX3Nob3dQbGF0Zm9ybUxh
eWVyVHJlZTsgfQogICAgIGJvb2wgc2hvd1BhaW50UmVjdHMoKSBjb25zdCB7IHJldHVybiBtX3No
b3dQYWludFJlY3RzOyB9CisgICAgYm9vbCByZW5kZXJWU3luY0VuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX3JlbmRlclZTeW5jRW5hYmxlZDsgfQogICAgIGJvb2wgYXBwbHlEZWZhdWx0RGV2aWNl
U2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSBjb25zdCB7IHJldHVybiBtX2FwcGx5RGVmYXVsdERl
dmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yOyB9CiAgICAgV2ViU2l6ZSBkZWZhdWx0VGlsZVNp
emUoKSBjb25zdCB7IHJldHVybiBtX2RlZmF1bHRUaWxlU2l6ZTsgfQogICAgIFdlYlNpemUgbWF4
VW50aWxlZExheWVyU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4VW50aWxlZExheWVyU2l6ZTsg
fQpAQCAtMTY1LDYgKzE2Nyw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3dGUFNDb3VudGVy
OwogICAgIGJvb2wgbV9zaG93UGxhdGZvcm1MYXllclRyZWU7CiAgICAgYm9vbCBtX3Nob3dQYWlu
dFJlY3RzOworICAgIGJvb2wgbV9yZW5kZXJWU3luY0VuYWJsZWQ7CiAgICAgYm9vbCBtX3ZpZXdw
b3J0RW5hYmxlZDsKICAgICBib29sIG1fYXBwbHlEZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3JJbkNv
bXBvc2l0b3I7CiAgICAgV2ViU2l6ZSBtX2RlZmF1bHRUaWxlU2l6ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA3YzZkYTYwZDkzYWJmNmYxMzBiMGIy
MTc5N2UwYTMzMzYyODM3MDc4Li4xYjRlZWVmMDZmM2FlZDk2NmNiYzVhNTJmNGVkYTJhOTkyYTE5
OTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0z
NjE2LDYgKzM2MTYsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRJc0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdBY3RpdmUoYm9vbCBhY3RpdmUpCiAgICAgICAgIGxheWVyVHJlZVZpZXdTZXR0aW5ncy5z
aG93RlBTQ291bnRlciA9IHNldHRpbmdzSW1wbCgpLT5zaG93RlBTQ291bnRlcigpOwogICAgICAg
ICBsYXllclRyZWVWaWV3U2V0dGluZ3Muc2hvd1BsYXRmb3JtTGF5ZXJUcmVlID0gc2V0dGluZ3NJ
bXBsKCktPnNob3dQbGF0Zm9ybUxheWVyVHJlZSgpOwogICAgICAgICBsYXllclRyZWVWaWV3U2V0
dGluZ3Muc2hvd1BhaW50UmVjdHMgPSBzZXR0aW5nc0ltcGwoKS0+c2hvd1BhaW50UmVjdHMoKTsK
KyAgICAgICAgbGF5ZXJUcmVlVmlld1NldHRpbmdzLnJlbmRlclZTeW5jRW5hYmxlZCA9IHNldHRp
bmdzSW1wbCgpLT5yZW5kZXJWU3luY0VuYWJsZWQoKTsKICAgICAgICAgbGF5ZXJUcmVlVmlld1Nl
dHRpbmdzLmZvcmNlU29mdHdhcmVDb21wb3NpdGluZyA9IHNldHRpbmdzKCktPmZvcmNlU29mdHdh
cmVDb21wb3NpdGluZygpOwogCiAgICAgICAgIGxheWVyVHJlZVZpZXdTZXR0aW5ncy5kZWZhdWx0
VGlsZVNpemUgPSBzZXR0aW5nc0ltcGwoKS0+ZGVmYXVsdFRpbGVTaXplKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155068</attachid>
            <date>2012-07-27 15:32:48 -0700</date>
            <delta_ts>2012-07-27 17:20:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92323-20120727153235.patch</filename>
            <type>text/plain</type>
            <size>17520</size>
            <attacher name="John Bates">jbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNjM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBmZDhjYzA4NjZiODdl
MDJjZmFkYTc4MTQwYzVmMDk2N2Y1NWUzMzRmLi40MmY1MTk2N2Y5MjBlNGQzMzRkNTgzMGE4M2Qz
NmUxOWI1Mjg0YmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wNy0yNiAg
Sm9obiBCYXRlcyAgPGpiYXRlc0Bnb29nbGUuY29tPgorCisgICAgICAgIFBsdW1iIHZzeW5jLWVu
YWJsZWQgZmxhZyB1cCB0byBjb21wb3NpdG9yIHRocmVhZCBhbmQgc3VwcG9ydCBkaXNhYmxlLXZz
eW5jCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjMy
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY2hy
b21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXcuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5
ZXJUcmVlVmlldzo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAgICAgKFNldHRpbmdzKToKKwog
MjAxMi0wNy0yNSAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KIAogICAg
ICAgICBNZWRpYVN0cmVhbSBBUEk6IFVwZGF0ZSBNZWRpYVN0cmVhbVRyYWNrIHRvIG1hdGNoIHRo
ZSBzcGVjaWZpY2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDAzYWI4YzQyYWU3ODQxMTkzOTEwMjZiNjYy
ZDgwYjg1MWZmNWM4YS4uZjU2NGQ5YmVjYzZiZDcxNzVmNjg0YWY0M2ZkYWEwNGQyNWNhMzNhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA3LTI2ICBKb2huIEJhdGVzICA8amJh
dGVzQGdvb2dsZS5jb20+CisKKyAgICAgICAgUGx1bWIgdnN5bmMtZW5hYmxlZCBmbGFnIHVwIHRv
IGNvbXBvc2l0b3IgdGhyZWFkIGFuZCBzdXBwb3J0IGRpc2FibGUtdnN5bmMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMzIzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q0NGcmFtZVJhdGVDb250cm9sbGVyOjpDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Q0NGcmFtZVJhdGVDb250cm9sbGVyOjpkaXNhYmxlVGltZVNvdXJjZVRocm90dGxp
bmcpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0ZyYW1lUmF0ZUNv
bnRyb2xsZXI6OnNldEFjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0ZyYW1lUmF0ZUNvbnRy
b2xsZXI6OnBvc3RNYW51YWxUaWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkNDRnJhbWVSYXRlQ29u
dHJvbGxlcjo6b25UaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNDRnJhbWVSYXRlQ29u
dHJvbGxlcjo6ZGlkQmVnaW5GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0ZyYW1lUmF0ZUNv
bnRyb2xsZXI6OmRpZEZpbmlzaEZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoQ0NGcmFtZVJhdGVDb250cm9sbGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkND
TGF5ZXJUcmVlU2V0dGluZ3M6OkNDTGF5ZXJUcmVlU2V0dGluZ3MpOgorICAgICAgICAoQ0NMYXll
clRyZWVTZXR0aW5ncyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5OjpDQ1Ro
cmVhZFByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OmluaXRpYWxpemVJ
bXBsT25JbXBsVGhyZWFkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1RocmVhZFByb3h5Lmg6CisgICAgICAgIChDQ1RocmVhZFByb3h5KToKKwogMjAxMi0wNy0y
NSAgQW5kcmV3IFdpbHNvbiAgPGF0d2lsc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMTIzNTYwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCBmMWI0M2ZlMmIyN2I0MzAwMmFhMGZlZjQ4YTMwMjQ5NzY1ZTI5MmNjLi4xNTBkNjE1MTdlMjhj
ODQ0ZGQ2NGNmOTVlYTVlYjkyZWI2ZjFlZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIzIEBACisyMDEyLTA3LTI2ICBKb2huIEJhdGVzICA8amJhdGVzQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUGx1bWIgdnN5bmMtZW5hYmxlZCBmbGFnIHVwIHRvIGNvbXBvc2l0b3Ig
dGhyZWFkIGFuZCBzdXBwb3J0IGRpc2FibGUtdnN5bmMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViU2V0dGluZ3MuaDoKKyAgICAgICAg
KiBzcmMvV2ViTGF5ZXJUcmVlVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJl
ZVZpZXc6OlNldHRpbmdzOjpvcGVyYXRvciBDQ0xheWVyVHJlZVNldHRpbmdzKToKKyAgICAgICAg
KiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJ
bXBsOjpXZWJTZXR0aW5nc0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6
OnNldFJlbmRlclZTeW5jRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNy
Yy9XZWJTZXR0aW5nc0ltcGwuaDoKKyAgICAgICAgKFdlYlNldHRpbmdzSW1wbCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6cmVuZGVyVlN5bmNFbmFibGVkKToKKyAgICAgICAg
KiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0
SXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKToKKwogMjAxMi0wNy0yNSAgQWRyaWVubmUg
V2Fsa2VyICA8ZW5uZUBnb29nbGUuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVW5pZnkgY29t
cG9zaXRvciBxdWFkVHJhbnNmb3JtL2RyYXdUcmFuc2Zvcm0vb3JpZ2luVHJhbnNmb3JtCmRpZmYg
LS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXcu
aCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCmlu
ZGV4IGY1MjUxMTA0MzM2YTAzNGE1MTQ2Y2RkZDE2YmRhMmJkNmExYzZjNDIuLjUzYmVlYmQ1M2U4
ODVmNTllYjBhMmI3NzQxMmRmNjU5ODdkYzlkMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9y
bS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCisrKyBiL1NvdXJjZS9QbGF0Zm9y
bS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCkBAIC01NSw2ICs1NSw3IEBAIHB1
YmxpYzoKICAgICAgICAgICAgICwgc2hvd0ZQU0NvdW50ZXIoZmFsc2UpCiAgICAgICAgICAgICAs
IHNob3dQbGF0Zm9ybUxheWVyVHJlZShmYWxzZSkKICAgICAgICAgICAgICwgc2hvd1BhaW50UmVj
dHMoZmFsc2UpCisgICAgICAgICAgICAsIHJlbmRlclZTeW5jRW5hYmxlZCh0cnVlKQogICAgICAg
ICAgICAgLCByZWZyZXNoUmF0ZSgwKQogICAgICAgICAgICAgLCBkZWZhdWx0VGlsZVNpemUoV2Vi
U2l6ZSgyNTYsIDI1NikpCiAgICAgICAgICAgICAsIG1heFVudGlsZWRMYXllclNpemUoV2ViU2l6
ZSg1MTIsIDUxMikpCkBAIC02Niw2ICs2Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBzaG93
RlBTQ291bnRlcjsKICAgICAgICAgYm9vbCBzaG93UGxhdGZvcm1MYXllclRyZWU7CiAgICAgICAg
IGJvb2wgc2hvd1BhaW50UmVjdHM7CisgICAgICAgIGJvb2wgcmVuZGVyVlN5bmNFbmFibGVkOwog
ICAgICAgICBkb3VibGUgcmVmcmVzaFJhdGU7CiAgICAgICAgIFdlYlNpemUgZGVmYXVsdFRpbGVT
aXplOwogICAgICAgICBXZWJTaXplIG1heFVudGlsZWRMYXllclNpemU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NGcmFtZVJhdGVDb250cm9sbGVyLmNwcAppbmRleCBkZjdmMzE1NTRhMWZlZWYyZDg3NWQx
ZWY3ZTFlNzJlMjU4OWVhODc4Li42MzNmZTJkYTZmN2RlNGIwYWRjNzRiNGM1MjJkZmU2YzVmYjAz
NWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5jcHAKQEAgLTI3
LDYgKzI3LDcgQEAKICNpbmNsdWRlICJjYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuaCIKIAogI2lu
Y2x1ZGUgIlRyYWNlRXZlbnQuaCIKKyNpbmNsdWRlICJjYy9DQ0RlbGF5QmFzZWRUaW1lU291cmNl
LmgiCiAjaW5jbHVkZSAiY2MvQ0NUaW1lU291cmNlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTUyLDExICs1MywyOCBAQCBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI6OkNDRnJhbWVSYXRlQ29u
dHJvbGxlcihQYXNzUmVmUHRyPENDVGltZVNvdXJjZT4gdGltZXIpCiAgICAgLCBtX251bUZyYW1l
c1BlbmRpbmcoMCkKICAgICAsIG1fbWF4RnJhbWVzUGVuZGluZygwKQogICAgICwgbV90aW1lU291
cmNlKHRpbWVyKQorICAgICwgbV9pc1RpbWVTb3VyY2VUaHJvdHRsaW5nKHRydWUpCiB7CiAgICAg
bV90aW1lU291cmNlQ2xpZW50QWRhcHRlciA9IENDRnJhbWVSYXRlQ29udHJvbGxlclRpbWVTb3Vy
Y2VBZGFwdGVyOjpjcmVhdGUodGhpcyk7CiAgICAgbV90aW1lU291cmNlLT5zZXRDbGllbnQobV90
aW1lU291cmNlQ2xpZW50QWRhcHRlci5nZXQoKSk7CiB9CiAKK0NDRnJhbWVSYXRlQ29udHJvbGxl
cjo6Q0NGcmFtZVJhdGVDb250cm9sbGVyKENDVGhyZWFkKiB0aHJlYWQpCisgICAgOiBtX2NsaWVu
dCgwKQorICAgICwgbV9udW1GcmFtZXNQZW5kaW5nKDApCisgICAgLCBtX21heEZyYW1lc1BlbmRp
bmcoMCkKKyAgICAsIG1faXNUaW1lU291cmNlVGhyb3R0bGluZyh0cnVlKQoreworICAgIC8vIFRp
bWVTb3VyY2UgdGlja3MgYXJlIG5vdCB1c2VkIGluIHRoaXMgbW9kZSwgYnV0IHdlIHN0aWxsIHVz
ZSBpdCB0byB0cmFjaworICAgIC8vIGFjdGl2ZSBzdGF0ZSwgc28gbWFrZSBvbmUgdGhhdCB0aWNr
cyBzbG93bHkuCisgICAgY29uc3QgZG91YmxlIGxvbmdJbnRlcnZhbEluU2Vjb25kcyA9IDEwMC4w
OworICAgIG1fdGltZVNvdXJjZSA9IENDRGVsYXlCYXNlZFRpbWVTb3VyY2U6OmNyZWF0ZShsb25n
SW50ZXJ2YWxJblNlY29uZHMsIHRocmVhZCk7CisgICAgbV90aW1lU291cmNlQ2xpZW50QWRhcHRl
ciA9IENDRnJhbWVSYXRlQ29udHJvbGxlclRpbWVTb3VyY2VBZGFwdGVyOjpjcmVhdGUodGhpcyk7
CisgICAgbV90aW1lU291cmNlLT5zZXRDbGllbnQobV90aW1lU291cmNlQ2xpZW50QWRhcHRlci5n
ZXQoKSk7CisgICAgbV9pc1RpbWVTb3VyY2VUaHJvdHRsaW5nID0gZmFsc2U7CisgICAgbV9tYW51
YWxUaWNrZXIgPSBhZG9wdFB0cihuZXcgQ0NUaW1lcih0aHJlYWQsIHRoaXMpKTsKK30KKwogQ0NG
cmFtZVJhdGVDb250cm9sbGVyOjp+Q0NGcmFtZVJhdGVDb250cm9sbGVyKCkKIHsKICAgICBtX3Rp
bWVTb3VyY2UtPnNldEFjdGl2ZShmYWxzZSk7CkBAIC02OCw2ICs4NiwxMiBAQCB2b2lkIENDRnJh
bWVSYXRlQ29udHJvbGxlcjo6c2V0QWN0aXZlKGJvb2wgYWN0aXZlKQogICAgICAgICByZXR1cm47
CiAgICAgVFJBQ0VfRVZFTlQxKCJjYyIsICJDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI6OnNldEFjdGl2
ZSIsICJhY3RpdmUiLCBhY3RpdmUpOwogICAgIG1fdGltZVNvdXJjZS0+c2V0QWN0aXZlKGFjdGl2
ZSk7CisKKyAgICBpZiAoIW1faXNUaW1lU291cmNlVGhyb3R0bGluZykgeworICAgICAgICBpZiAo
IWFjdGl2ZSkKKyAgICAgICAgICAgIG1fbWFudWFsVGlja2VyLT5zdG9wKCk7CisgICAgICAgIHBv
c3RNYW51YWxUaWNrKCk7CisgICAgfQogfQogCiB2b2lkIENDRnJhbWVSYXRlQ29udHJvbGxlcjo6
c2V0TWF4RnJhbWVzUGVuZGluZyhpbnQgbWF4RnJhbWVzUGVuZGluZykKQEAgLTg5LDE0ICsxMTMs
MjkgQEAgdm9pZCBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI6Om9uVGltZXJUaWNrKCkKICAgICAgICAg
bV9jbGllbnQtPnZzeW5jVGljaygpOwogfQogCit2b2lkIENDRnJhbWVSYXRlQ29udHJvbGxlcjo6
cG9zdE1hbnVhbFRpY2soKQoreworICAgIGlmIChtX3RpbWVTb3VyY2UtPmFjdGl2ZSgpKQorICAg
ICAgICBtX21hbnVhbFRpY2tlci0+c3RhcnRPbmVTaG90KDApOworfQorCit2b2lkIENDRnJhbWVS
YXRlQ29udHJvbGxlcjo6b25UaW1lckZpcmVkKCkKK3sKKyAgICBvblRpbWVyVGljaygpOworfQor
CiB2b2lkIENDRnJhbWVSYXRlQ29udHJvbGxlcjo6ZGlkQmVnaW5GcmFtZSgpCiB7CiAgICAgbV9u
dW1GcmFtZXNQZW5kaW5nKys7CisgICAgaWYgKCFtX2lzVGltZVNvdXJjZVRocm90dGxpbmcpCisg
ICAgICAgIHBvc3RNYW51YWxUaWNrKCk7CiB9CiAKIHZvaWQgQ0NGcmFtZVJhdGVDb250cm9sbGVy
OjpkaWRGaW5pc2hGcmFtZSgpCiB7CiAgICAgbV9udW1GcmFtZXNQZW5kaW5nLS07CisgICAgaWYg
KCFtX2lzVGltZVNvdXJjZVRocm90dGxpbmcpCisgICAgICAgIHBvc3RNYW51YWxUaWNrKCk7CiB9
CiAKIHZvaWQgQ0NGcmFtZVJhdGVDb250cm9sbGVyOjpkaWRBYm9ydEFsbFBlbmRpbmdGcmFtZXMo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NGcmFtZVJhdGVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuaAppbmRleCBmYTIzYWYyY2Ni
ZGYyYzVhOWI4ZDYzOGQ4ZmE5YTA0MzFiY2FmOTYyLi4zNDYzYzI0NTUzMWE1MGI0ZjgwY2MyMTli
YzY5NjdjNmQ0MmEwYzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIu
aApAQCAtMjUsNiArMjUsOCBAQAogI2lmbmRlZiBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXJfaAogI2Rl
ZmluZSBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXJfaAogCisjaW5jbHVkZSAiY2MvQ0NUaW1lci5oIgor
CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAj
aW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtMzIsNiArMzQsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK2NsYXNzIENDVGhyZWFkOwogY2xhc3MgQ0NUaW1lU291cmNlOwogCiBjbGFzcyBD
Q0ZyYW1lUmF0ZUNvbnRyb2xsZXJDbGllbnQgewpAQCAtNDQsOSArNDcsMTEgQEAgcHJvdGVjdGVk
OgogCiBjbGFzcyBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXJUaW1lU291cmNlQWRhcHRlcjsKIAotY2xh
c3MgQ0NGcmFtZVJhdGVDb250cm9sbGVyIHsKK2NsYXNzIENDRnJhbWVSYXRlQ29udHJvbGxlciA6
IHB1YmxpYyBDQ1RpbWVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBDQ0ZyYW1lUmF0
ZUNvbnRyb2xsZXIoUGFzc1JlZlB0cjxDQ1RpbWVTb3VyY2U+KTsKKyAgICAvLyBBbHRlcm5hdGUg
Zm9ybSBvZiBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIgd2l0aCB1bnRocm90dGxlZCBmcmFtZS1yYXRl
LgorICAgIGV4cGxpY2l0IENDRnJhbWVSYXRlQ29udHJvbGxlcihDQ1RocmVhZCopOwogICAgIH5D
Q0ZyYW1lUmF0ZUNvbnRyb2xsZXIoKTsKIAogICAgIHZvaWQgc2V0Q2xpZW50KENDRnJhbWVSYXRl
Q29udHJvbGxlckNsaWVudCogY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CkBAIC03MCwx
MSArNzUsMjAgQEAgcHJvdGVjdGVkOgogICAgIGZyaWVuZCBjbGFzcyBDQ0ZyYW1lUmF0ZUNvbnRy
b2xsZXJUaW1lU291cmNlQWRhcHRlcjsKICAgICB2b2lkIG9uVGltZXJUaWNrKCk7CiAKKyAgICB2
b2lkIHBvc3RNYW51YWxUaWNrKCk7CisKKyAgICAvLyBDQ1RpbWVyQ2xpZW50IGltcGxlbWVudGF0
aW9uICh1c2VkIGZvciB1bnRocm90dGxlZCBmcmFtZS1yYXRlKS4KKyAgICB2aXJ0dWFsIHZvaWQg
b25UaW1lckZpcmVkKCkgT1ZFUlJJREU7CisKICAgICBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXJDbGll
bnQqIG1fY2xpZW50OwogICAgIGludCBtX251bUZyYW1lc1BlbmRpbmc7CiAgICAgaW50IG1fbWF4
RnJhbWVzUGVuZGluZzsKICAgICBSZWZQdHI8Q0NUaW1lU291cmNlPiBtX3RpbWVTb3VyY2U7CiAg
ICAgT3duUHRyPENDRnJhbWVSYXRlQ29udHJvbGxlclRpbWVTb3VyY2VBZGFwdGVyPiBtX3RpbWVT
b3VyY2VDbGllbnRBZGFwdGVyOworCisgICAgLy8gTWVtYmVycyBmb3IgdW50aHJvdHRsZWQgZnJh
bWUtcmF0ZS4KKyAgICBib29sIG1faXNUaW1lU291cmNlVGhyb3R0bGluZzsKKyAgICBPd25QdHI8
Q0NUaW1lcj4gbV9tYW51YWxUaWNrZXI7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9z
dC5oCmluZGV4IDIyYTBkNzU5ODk2Y2M3NDFkMzg1ZWFiOTllYWU0Y2ZjMjQ5NmRkNjQuLjFhYjg1
YmIwMjUzMTc4YzVkOGRkNDViMTQxOWE5NjhkNTczYjMwMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdC5oCkBAIC05MCw2ICs5MCw3IEBAIHN0cnVjdCBDQ0xheWVyVHJlZVNldHRpbmdzIHsK
ICAgICAgICAgICAgICwgc2hvd1NjcmVlblNwYWNlUmVjdHMoZmFsc2UpCiAgICAgICAgICAgICAs
IHNob3dSZXBsaWNhU2NyZWVuU3BhY2VSZWN0cyhmYWxzZSkKICAgICAgICAgICAgICwgc2hvd09j
Y2x1ZGluZ1JlY3RzKGZhbHNlKQorICAgICAgICAgICAgLCByZW5kZXJWU3luY0VuYWJsZWQodHJ1
ZSkKICAgICAgICAgICAgICwgcmVmcmVzaFJhdGUoMCkKICAgICAgICAgICAgICwgbWF4UGFydGlh
bFRleHR1cmVVcGRhdGVzKHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpCiAgICAg
ICAgICAgICAsIGRlZmF1bHRUaWxlU2l6ZShJbnRTaXplKDI1NiwgMjU2KSkKQEAgLTEwNyw2ICsx
MDgsNyBAQCBzdHJ1Y3QgQ0NMYXllclRyZWVTZXR0aW5ncyB7CiAgICAgYm9vbCBzaG93U2NyZWVu
U3BhY2VSZWN0czsKICAgICBib29sIHNob3dSZXBsaWNhU2NyZWVuU3BhY2VSZWN0czsKICAgICBi
b29sIHNob3dPY2NsdWRpbmdSZWN0czsKKyAgICBib29sIHJlbmRlclZTeW5jRW5hYmxlZDsKICAg
ICBkb3VibGUgcmVmcmVzaFJhdGU7CiAgICAgc2l6ZV90IG1heFBhcnRpYWxUZXh0dXJlVXBkYXRl
czsKICAgICBJbnRTaXplIGRlZmF1bHRUaWxlU2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5j
cHAKaW5kZXggZTA5ZDk0YzYxN2M5ZDYzNjdhMTUxMGI5ZTI3MDQ2ZmU3ZjE2YWEzNC4uN2YzNjE4
OTllNzg0NGQyNzM2NWQ4MjBlMmNkNGM1Nzc2OTc1Zjg4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQ
cm94eS5jcHAKQEAgLTg2LDYgKzg2LDcgQEAgQ0NUaHJlYWRQcm94eTo6Q0NUaHJlYWRQcm94eShD
Q0xheWVyVHJlZUhvc3QqIGxheWVyVHJlZUhvc3QpCiAgICAgLCBtX2NvbW1pdENvbXBsZXRpb25F
dmVudE9uSW1wbFRocmVhZCgwKQogICAgICwgbV90ZXh0dXJlQWNxdWlzaXRpb25Db21wbGV0aW9u
RXZlbnRPbkltcGxUaHJlYWQoMCkKICAgICAsIG1fbmV4dEZyYW1lSXNOZXdseUNvbW1pdHRlZEZy
YW1lT25JbXBsVGhyZWFkKGZhbHNlKQorICAgICwgbV9yZW5kZXJWU3luY0VuYWJsZWQobGF5ZXJU
cmVlSG9zdC0+c2V0dGluZ3MoKS5yZW5kZXJWU3luY0VuYWJsZWQpCiB7CiAgICAgVFJBQ0VfRVZF
TlQwKCJjYyIsICJDQ1RocmVhZFByb3h5OjpDQ1RocmVhZFByb3h5Iik7CiAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKQEAgLTgxMCw3ICs4MTEsMTEgQEAgdm9pZCBDQ1RocmVhZFByb3h5Ojpp
bml0aWFsaXplSW1wbE9uSW1wbFRocmVhZChDQ0NvbXBsZXRpb25FdmVudCogY29tcGxldGlvbikK
ICAgICBBU1NFUlQoaXNJbXBsVGhyZWFkKCkpOwogICAgIG1fbGF5ZXJUcmVlSG9zdEltcGwgPSBt
X2xheWVyVHJlZUhvc3QtPmNyZWF0ZUxheWVyVHJlZUhvc3RJbXBsKHRoaXMpOwogICAgIGNvbnN0
IGRvdWJsZSBkaXNwbGF5UmVmcmVzaEludGVydmFsID0gMS4wIC8gNjAuMDsKLSAgICBPd25QdHI8
Q0NGcmFtZVJhdGVDb250cm9sbGVyPiBmcmFtZVJhdGVDb250cm9sbGVyID0gYWRvcHRQdHIobmV3
IENDRnJhbWVSYXRlQ29udHJvbGxlcihDQ0RlbGF5QmFzZWRUaW1lU291cmNlOjpjcmVhdGUoZGlz
cGxheVJlZnJlc2hJbnRlcnZhbCwgQ0NQcm94eTo6aW1wbFRocmVhZCgpKSkpOworICAgIE93blB0
cjxDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI+IGZyYW1lUmF0ZUNvbnRyb2xsZXI7CisgICAgaWYgKG1f
cmVuZGVyVlN5bmNFbmFibGVkKQorICAgICAgICBmcmFtZVJhdGVDb250cm9sbGVyID0gYWRvcHRQ
dHIobmV3IENDRnJhbWVSYXRlQ29udHJvbGxlcihDQ0RlbGF5QmFzZWRUaW1lU291cmNlOjpjcmVh
dGUoZGlzcGxheVJlZnJlc2hJbnRlcnZhbCwgQ0NQcm94eTo6aW1wbFRocmVhZCgpKSkpOworICAg
IGVsc2UKKyAgICAgICAgZnJhbWVSYXRlQ29udHJvbGxlciA9IGFkb3B0UHRyKG5ldyBDQ0ZyYW1l
UmF0ZUNvbnRyb2xsZXIoQ0NQcm94eTo6aW1wbFRocmVhZCgpKSk7CiAgICAgbV9zY2hlZHVsZXJP
bkltcGxUaHJlYWQgPSBDQ1NjaGVkdWxlcjo6Y3JlYXRlKHRoaXMsIGZyYW1lUmF0ZUNvbnRyb2xs
ZXIucmVsZWFzZSgpKTsKICAgICBtX3NjaGVkdWxlck9uSW1wbFRocmVhZC0+c2V0VmlzaWJsZSht
X2xheWVyVHJlZUhvc3RJbXBsLT52aXNpYmxlKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgK
aW5kZXggMGY4YTM1NDA0MGU0ZjA1MDhmODE3NGY5YTRjOTVhNDFjNDEyYTIyMS4uZDIyODcxN2E5
YmNiNWJmN2ZlNWNiOTRiMGMyNjA5OWZlMTE3NzlmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHku
aApAQCAtMTg5LDYgKzE4OSw4IEBAIHByaXZhdGU6CiAKICAgICAvLyBTZXQgd2hlbiB0aGUgbmV4
dCBkcmF3IHNob3VsZCBwb3N0IGRpZENvbW1pdEFuZERyYXdGcmFtZSB0byB0aGUgbWFpbiB0aHJl
YWQuCiAgICAgYm9vbCBtX25leHRGcmFtZUlzTmV3bHlDb21taXR0ZWRGcmFtZU9uSW1wbFRocmVh
ZDsKKworICAgIGJvb2wgbV9yZW5kZXJWU3luY0VuYWJsZWQ7CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAppbmRleCA4OGVkOTYzOWRlMjRlM2Q5
YTZjMGEzMDQ2MDY4YTczMGZhNmM3ZmQ4Li4xNmZkYzE1MjA4NmZjYjBkYzVhNmJmMjQ0MWYwNDQ3
Mjc4ZGIzMmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJT
ZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdz
LmgKQEAgLTEzMiw2ICsxMzIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFBpY3Rv
Z3JhcGhGb250RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRDb2RlID0gVVNDUklQVF9D
T01NT04pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGx1Z2luc0VuYWJsZWQoYm9vbCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRQcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxlZChi
b29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFJlbmRlclZTeW5jRW5hYmxlZChib29sKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNhbnNTZXJpZkZvbnRGYW1pbHkoY29uc3QgV2ViU3Ry
aW5nJiwgVVNjcmlwdENvZGUgPSBVU0NSSVBUX0NPTU1PTikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRTZXJpZkZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJiwgVVNjcmlwdENvZGUgPSBVU0NS
SVBUX0NPTU1PTikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRQcmludEJhY2tncm91
bmRzKGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkxheWVyVHJlZVZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJU
cmVlVmlldy5jcHAKaW5kZXggYmNkNDkwYTg0MWY0NGJmMzc5YmY0ODg3ZjczNGIxMTVkZmQ2NjE0
MS4uYzEyMTk0ZWM3NzZhOTAxY2RkMjcxZGRkNjdmYzQ2ZDgzZDk2YzU3NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlldy5jcHAKQEAgLTQ5LDYgKzQ5
LDcgQEAgV2ViTGF5ZXJUcmVlVmlldzo6U2V0dGluZ3M6Om9wZXJhdG9yIENDTGF5ZXJUcmVlU2V0
dGluZ3MoKSBjb25zdAogICAgIHNldHRpbmdzLnNob3dGUFNDb3VudGVyID0gc2hvd0ZQU0NvdW50
ZXI7CiAgICAgc2V0dGluZ3Muc2hvd1BsYXRmb3JtTGF5ZXJUcmVlID0gc2hvd1BsYXRmb3JtTGF5
ZXJUcmVlOwogICAgIHNldHRpbmdzLnNob3dQYWludFJlY3RzID0gc2hvd1BhaW50UmVjdHM7Cisg
ICAgc2V0dGluZ3MucmVuZGVyVlN5bmNFbmFibGVkID0gcmVuZGVyVlN5bmNFbmFibGVkOwogICAg
IHNldHRpbmdzLnJlZnJlc2hSYXRlID0gcmVmcmVzaFJhdGU7CiAgICAgc2V0dGluZ3MuZGVmYXVs
dFRpbGVTaXplID0gZGVmYXVsdFRpbGVTaXplOwogICAgIHNldHRpbmdzLm1heFVudGlsZWRMYXll
clNpemUgPSBtYXhVbnRpbGVkTGF5ZXJTaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKaW5kZXggNWM1N2NmOGNhOWE2NDYyYzAyZjZhMDA5NDY0
NzRkNzlmMjUyZWNiYy4uOWZjNjA4ZjM5Y2ExYTQ0ZjBjZTY3Mjg3YzllZTViZGIwMTBjYTFiYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCkBA
IC01MSw2ICs1MSw3IEBAIFdlYlNldHRpbmdzSW1wbDo6V2ViU2V0dGluZ3NJbXBsKFNldHRpbmdz
KiBzZXR0aW5ncykKICAgICAsIG1fc2hvd0ZQU0NvdW50ZXIoZmFsc2UpCiAgICAgLCBtX3Nob3dQ
bGF0Zm9ybUxheWVyVHJlZShmYWxzZSkKICAgICAsIG1fc2hvd1BhaW50UmVjdHMoZmFsc2UpCisg
ICAgLCBtX3JlbmRlclZTeW5jRW5hYmxlZCh0cnVlKQogICAgICwgbV92aWV3cG9ydEVuYWJsZWQo
ZmFsc2UpCiAgICAgLCBtX2FwcGx5RGVmYXVsdERldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9y
KGZhbHNlKQogICAgICwgbV9kZWZhdWx0VGlsZVNpemUoV2ViU2l6ZSgyNTYsIDI1NikpCkBAIC0z
NTcsNiArMzU4LDExIEBAIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRQcml2aWxlZ2VkV2ViR0xF
eHRlbnNpb25zRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgbV9zZXR0aW5ncy0+c2V0UHJpdmls
ZWdlZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQoZW5hYmxlZCk7CiB9CiAKK3ZvaWQgV2ViU2V0dGlu
Z3NJbXBsOjpzZXRSZW5kZXJWU3luY0VuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIG1fcmVu
ZGVyVlN5bmNFbmFibGVkID0gZW5hYmxlZDsKK30KKwogdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNl
dFdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgbV9zZXR0
aW5ncy0+c2V0V2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkKGVuYWJsZWQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAppbmRleCA3NmUzMGI1MmZiYjBk
NmYwYzk2MDkyNzhhNDUxMDg0YjEzMTVmZWM2Li42NTY1MjlkMjYwZjMzNzU3OGM3Y2NmNTk5NDA4
ZDM0OWIwODQzNGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJT
ZXR0aW5nc0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5n
c0ltcGwuaApAQCAtMTI0LDYgKzEyNCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0
UGljdG9ncmFwaEZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJiwgVVNjcmlwdENvZGUgPSBVU0NS
SVBUX0NPTU1PTik7CiAgICAgdmlydHVhbCB2b2lkIHNldFBsdWdpbnNFbmFibGVkKGJvb2wpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRQcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxlZChib29s
KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmVuZGVyVlN5bmNFbmFibGVkKGJvb2wpOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRTYW5zU2VyaWZGb250RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3Jp
cHRDb2RlID0gVVNDUklQVF9DT01NT04pOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTZXJpZkZvbnRG
YW1pbHkoY29uc3QgV2ViU3RyaW5nJiwgVVNjcmlwdENvZGUgPSBVU0NSSVBUX0NPTU1PTik7CiAg
ICAgdmlydHVhbCB2b2lkIHNldFNob3VsZERpc3BsYXlDYXB0aW9ucyhib29sKTsKQEAgLTE1NSw2
ICsxNTYsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG93RlBTQ291bnRlcigpIGNvbnN0IHsgcmV0
dXJuIG1fc2hvd0ZQU0NvdW50ZXI7IH0KICAgICBib29sIHNob3dQbGF0Zm9ybUxheWVyVHJlZSgp
IGNvbnN0IHsgcmV0dXJuIG1fc2hvd1BsYXRmb3JtTGF5ZXJUcmVlOyB9CiAgICAgYm9vbCBzaG93
UGFpbnRSZWN0cygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvd1BhaW50UmVjdHM7IH0KKyAgICBib29s
IHJlbmRlclZTeW5jRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyVlN5bmNFbmFibGVk
OyB9CiAgICAgYm9vbCBhcHBseURlZmF1bHREZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigp
IGNvbnN0IHsgcmV0dXJuIG1fYXBwbHlEZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0
b3I7IH0KICAgICBXZWJTaXplIGRlZmF1bHRUaWxlU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVm
YXVsdFRpbGVTaXplOyB9CiAgICAgV2ViU2l6ZSBtYXhVbnRpbGVkTGF5ZXJTaXplKCkgY29uc3Qg
eyByZXR1cm4gbV9tYXhVbnRpbGVkTGF5ZXJTaXplOyB9CkBAIC0xNjUsNiArMTY3LDcgQEAgcHJp
dmF0ZToKICAgICBib29sIG1fc2hvd0ZQU0NvdW50ZXI7CiAgICAgYm9vbCBtX3Nob3dQbGF0Zm9y
bUxheWVyVHJlZTsKICAgICBib29sIG1fc2hvd1BhaW50UmVjdHM7CisgICAgYm9vbCBtX3JlbmRl
clZTeW5jRW5hYmxlZDsKICAgICBib29sIG1fdmlld3BvcnRFbmFibGVkOwogICAgIGJvb2wgbV9h
cHBseURlZmF1bHREZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcjsKICAgICBXZWJTaXplIG1f
ZGVmYXVsdFRpbGVTaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
Y3BwCmluZGV4IDdjNmRhNjBkOTNhYmY2ZjEzMGIwYjIxNzk3ZTBhMzMzNjI4MzcwNzguLjFiNGVl
ZWYwNmYzYWVkOTY2Y2JjNWE1MmY0ZWRhMmE5OTJhMTk5NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTM2MTYsNiArMzYxNiw3IEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OnNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZShib29sIGFjdGl2ZSkK
ICAgICAgICAgbGF5ZXJUcmVlVmlld1NldHRpbmdzLnNob3dGUFNDb3VudGVyID0gc2V0dGluZ3NJ
bXBsKCktPnNob3dGUFNDb3VudGVyKCk7CiAgICAgICAgIGxheWVyVHJlZVZpZXdTZXR0aW5ncy5z
aG93UGxhdGZvcm1MYXllclRyZWUgPSBzZXR0aW5nc0ltcGwoKS0+c2hvd1BsYXRmb3JtTGF5ZXJU
cmVlKCk7CiAgICAgICAgIGxheWVyVHJlZVZpZXdTZXR0aW5ncy5zaG93UGFpbnRSZWN0cyA9IHNl
dHRpbmdzSW1wbCgpLT5zaG93UGFpbnRSZWN0cygpOworICAgICAgICBsYXllclRyZWVWaWV3U2V0
dGluZ3MucmVuZGVyVlN5bmNFbmFibGVkID0gc2V0dGluZ3NJbXBsKCktPnJlbmRlclZTeW5jRW5h
YmxlZCgpOwogICAgICAgICBsYXllclRyZWVWaWV3U2V0dGluZ3MuZm9yY2VTb2Z0d2FyZUNvbXBv
c2l0aW5nID0gc2V0dGluZ3MoKS0+Zm9yY2VTb2Z0d2FyZUNvbXBvc2l0aW5nKCk7CiAKICAgICAg
ICAgbGF5ZXJUcmVlVmlld1NldHRpbmdzLmRlZmF1bHRUaWxlU2l6ZSA9IHNldHRpbmdzSW1wbCgp
LT5kZWZhdWx0VGlsZVNpemUoKTsK
</data>
<flag name="review"
          id="164495"
          type_id="1"
          status="-"
          setter="jbates"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155093</attachid>
            <date>2012-07-27 17:18:45 -0700</date>
            <delta_ts>2012-07-30 10:47:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92323-20120727171833.patch</filename>
            <type>text/plain</type>
            <size>19320</size>
            <attacher name="John Bates">jbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNjM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBmZDhjYzA4NjZiODdl
MDJjZmFkYTc4MTQwYzVmMDk2N2Y1NWUzMzRmLi40MmY1MTk2N2Y5MjBlNGQzMzRkNTgzMGE4M2Qz
NmUxOWI1Mjg0YmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wNy0yNiAg
Sm9obiBCYXRlcyAgPGpiYXRlc0Bnb29nbGUuY29tPgorCisgICAgICAgIFBsdW1iIHZzeW5jLWVu
YWJsZWQgZmxhZyB1cCB0byBjb21wb3NpdG9yIHRocmVhZCBhbmQgc3VwcG9ydCBkaXNhYmxlLXZz
eW5jCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjMy
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY2hy
b21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXcuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5
ZXJUcmVlVmlldzo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAgICAgKFNldHRpbmdzKToKKwog
MjAxMi0wNy0yNSAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KIAogICAg
ICAgICBNZWRpYVN0cmVhbSBBUEk6IFVwZGF0ZSBNZWRpYVN0cmVhbVRyYWNrIHRvIG1hdGNoIHRo
ZSBzcGVjaWZpY2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDAzYWI4YzQyYWU3ODQxMTkzOTEwMjZiNjYy
ZDgwYjg1MWZmNWM4YS4uZjU2NGQ5YmVjYzZiZDcxNzVmNjg0YWY0M2ZkYWEwNGQyNWNhMzNhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA3LTI2ICBKb2huIEJhdGVzICA8amJh
dGVzQGdvb2dsZS5jb20+CisKKyAgICAgICAgUGx1bWIgdnN5bmMtZW5hYmxlZCBmbGFnIHVwIHRv
IGNvbXBvc2l0b3IgdGhyZWFkIGFuZCBzdXBwb3J0IGRpc2FibGUtdnN5bmMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMzIzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q0NGcmFtZVJhdGVDb250cm9sbGVyOjpDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Q0NGcmFtZVJhdGVDb250cm9sbGVyOjpkaXNhYmxlVGltZVNvdXJjZVRocm90dGxp
bmcpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0ZyYW1lUmF0ZUNv
bnRyb2xsZXI6OnNldEFjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0ZyYW1lUmF0ZUNvbnRy
b2xsZXI6OnBvc3RNYW51YWxUaWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkNDRnJhbWVSYXRlQ29u
dHJvbGxlcjo6b25UaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNDRnJhbWVSYXRlQ29u
dHJvbGxlcjo6ZGlkQmVnaW5GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0ZyYW1lUmF0ZUNv
bnRyb2xsZXI6OmRpZEZpbmlzaEZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoQ0NGcmFtZVJhdGVDb250cm9sbGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkND
TGF5ZXJUcmVlU2V0dGluZ3M6OkNDTGF5ZXJUcmVlU2V0dGluZ3MpOgorICAgICAgICAoQ0NMYXll
clRyZWVTZXR0aW5ncyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5OjpDQ1Ro
cmVhZFByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OmluaXRpYWxpemVJ
bXBsT25JbXBsVGhyZWFkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1RocmVhZFByb3h5Lmg6CisgICAgICAgIChDQ1RocmVhZFByb3h5KToKKwogMjAxMi0wNy0y
NSAgQW5kcmV3IFdpbHNvbiAgPGF0d2lsc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMTIzNTYwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCBmMWI0M2ZlMmIyN2I0MzAwMmFhMGZlZjQ4YTMwMjQ5NzY1ZTI5MmNjLi4xOTc3ZGU4Y2EzNmNm
Y2EwY2EyZjExYmYxZjczNThkYzdhMTc5ZTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI0IEBACisyMDEyLTA3LTI2ICBKb2huIEJhdGVzICA8amJhdGVzQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUGx1bWIgdnN5bmMtZW5hYmxlZCBmbGFnIHVwIHRvIGNvbXBvc2l0b3Ig
dGhyZWFkIGFuZCBzdXBwb3J0IGRpc2FibGUtdnN5bmMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViU2V0dGluZ3MuaDoKKyAgICAgICAg
KiB0ZXN0cy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXJUZXN0LmNwcDoKKyAgICAgICAgKiBzcmMvV2Vi
TGF5ZXJUcmVlVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXc6OlNl
dHRpbmdzOjpvcGVyYXRvciBDQ0xheWVyVHJlZVNldHRpbmdzKToKKyAgICAgICAgKiBzcmMvV2Vi
U2V0dGluZ3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpXZWJT
ZXR0aW5nc0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OnNldFJlbmRl
clZTeW5jRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJTZXR0
aW5nc0ltcGwuaDoKKyAgICAgICAgKFdlYlNldHRpbmdzSW1wbCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlNldHRpbmdzSW1wbDo6cmVuZGVyVlN5bmNFbmFibGVkKToKKyAgICAgICAgKiBzcmMvV2Vi
Vmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0SXNBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQWN0aXZlKToKKwogMjAxMi0wNy0yNSAgQWRyaWVubmUgV2Fsa2VyICA8
ZW5uZUBnb29nbGUuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVW5pZnkgY29tcG9zaXRvciBx
dWFkVHJhbnNmb3JtL2RyYXdUcmFuc2Zvcm0vb3JpZ2luVHJhbnNmb3JtCmRpZmYgLS1naXQgYS9T
b3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXcuaCBiL1NvdXJj
ZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCmluZGV4IGY1MjUx
MTA0MzM2YTAzNGE1MTQ2Y2RkZDE2YmRhMmJkNmExYzZjNDIuLjUzYmVlYmQ1M2U4ODVmNTllYjBh
MmI3NzQxMmRmNjU5ODdkYzlkMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAg
ICAgICAgICAgICwgc2hvd0ZQU0NvdW50ZXIoZmFsc2UpCiAgICAgICAgICAgICAsIHNob3dQbGF0
Zm9ybUxheWVyVHJlZShmYWxzZSkKICAgICAgICAgICAgICwgc2hvd1BhaW50UmVjdHMoZmFsc2Up
CisgICAgICAgICAgICAsIHJlbmRlclZTeW5jRW5hYmxlZCh0cnVlKQogICAgICAgICAgICAgLCBy
ZWZyZXNoUmF0ZSgwKQogICAgICAgICAgICAgLCBkZWZhdWx0VGlsZVNpemUoV2ViU2l6ZSgyNTYs
IDI1NikpCiAgICAgICAgICAgICAsIG1heFVudGlsZWRMYXllclNpemUoV2ViU2l6ZSg1MTIsIDUx
MikpCkBAIC02Niw2ICs2Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBzaG93RlBTQ291bnRl
cjsKICAgICAgICAgYm9vbCBzaG93UGxhdGZvcm1MYXllclRyZWU7CiAgICAgICAgIGJvb2wgc2hv
d1BhaW50UmVjdHM7CisgICAgICAgIGJvb2wgcmVuZGVyVlN5bmNFbmFibGVkOwogICAgICAgICBk
b3VibGUgcmVmcmVzaFJhdGU7CiAgICAgICAgIFdlYlNpemUgZGVmYXVsdFRpbGVTaXplOwogICAg
ICAgICBXZWJTaXplIG1heFVudGlsZWRMYXllclNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFt
ZVJhdGVDb250cm9sbGVyLmNwcAppbmRleCBkZjdmMzE1NTRhMWZlZWYyZDg3NWQxZWY3ZTFlNzJl
MjU4OWVhODc4Li41NDgwYzk2MGQ5YzU4NDc0NjI1NWQ5ZmQzM2Y3ZjkzMmZiZDU0ZTNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0Zy
YW1lUmF0ZUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5jcHAKQEAgLTI3LDYgKzI3LDcg
QEAKICNpbmNsdWRlICJjYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuaCIKIAogI2luY2x1ZGUgIlRy
YWNlRXZlbnQuaCIKKyNpbmNsdWRlICJjYy9DQ0RlbGF5QmFzZWRUaW1lU291cmNlLmgiCiAjaW5j
bHVkZSAiY2MvQ0NUaW1lU291cmNlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUyLDIy
ICs1Myw0MyBAQCBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI6OkNDRnJhbWVSYXRlQ29udHJvbGxlcihQ
YXNzUmVmUHRyPENDVGltZVNvdXJjZT4gdGltZXIpCiAgICAgLCBtX251bUZyYW1lc1BlbmRpbmco
MCkKICAgICAsIG1fbWF4RnJhbWVzUGVuZGluZygwKQogICAgICwgbV90aW1lU291cmNlKHRpbWVy
KQorICAgICwgbV9hY3RpdmUoZmFsc2UpCisgICAgLCBtX2lzVGltZVNvdXJjZVRocm90dGxpbmco
dHJ1ZSkKIHsKICAgICBtX3RpbWVTb3VyY2VDbGllbnRBZGFwdGVyID0gQ0NGcmFtZVJhdGVDb250
cm9sbGVyVGltZVNvdXJjZUFkYXB0ZXI6OmNyZWF0ZSh0aGlzKTsKICAgICBtX3RpbWVTb3VyY2Ut
PnNldENsaWVudChtX3RpbWVTb3VyY2VDbGllbnRBZGFwdGVyLmdldCgpKTsKIH0KIAorQ0NGcmFt
ZVJhdGVDb250cm9sbGVyOjpDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIoQ0NUaHJlYWQqIHRocmVhZCkK
KyAgICA6IG1fY2xpZW50KDApCisgICAgLCBtX251bUZyYW1lc1BlbmRpbmcoMCkKKyAgICAsIG1f
bWF4RnJhbWVzUGVuZGluZygwKQorICAgICwgbV9hY3RpdmUoZmFsc2UpCisgICAgLCBtX2lzVGlt
ZVNvdXJjZVRocm90dGxpbmcoZmFsc2UpCit7CisgICAgbV9tYW51YWxUaWNrZXIgPSBhZG9wdFB0
cihuZXcgQ0NUaW1lcih0aHJlYWQsIHRoaXMpKTsKK30KKwogQ0NGcmFtZVJhdGVDb250cm9sbGVy
Ojp+Q0NGcmFtZVJhdGVDb250cm9sbGVyKCkKIHsKLSAgICBtX3RpbWVTb3VyY2UtPnNldEFjdGl2
ZShmYWxzZSk7CisgICAgaWYgKG1faXNUaW1lU291cmNlVGhyb3R0bGluZykKKyAgICAgICAgbV90
aW1lU291cmNlLT5zZXRBY3RpdmUoZmFsc2UpOwogfQogCiB2b2lkIENDRnJhbWVSYXRlQ29udHJv
bGxlcjo6c2V0QWN0aXZlKGJvb2wgYWN0aXZlKQogewotICAgIGlmIChtX3RpbWVTb3VyY2UtPmFj
dGl2ZSgpID09IGFjdGl2ZSkKKyAgICBpZiAobV9hY3RpdmUgPT0gYWN0aXZlKQogICAgICAgICBy
ZXR1cm47CiAgICAgVFJBQ0VfRVZFTlQxKCJjYyIsICJDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI6OnNl
dEFjdGl2ZSIsICJhY3RpdmUiLCBhY3RpdmUpOwotICAgIG1fdGltZVNvdXJjZS0+c2V0QWN0aXZl
KGFjdGl2ZSk7CisgICAgbV9hY3RpdmUgPSBhY3RpdmU7CisKKyAgICBpZiAobV9pc1RpbWVTb3Vy
Y2VUaHJvdHRsaW5nKQorICAgICAgICBtX3RpbWVTb3VyY2UtPnNldEFjdGl2ZShhY3RpdmUpOwor
ICAgIGVsc2UgeworICAgICAgICBpZiAoIWFjdGl2ZSkKKyAgICAgICAgICAgIG1fbWFudWFsVGlj
a2VyLT5zdG9wKCk7CisgICAgICAgIHBvc3RNYW51YWxUaWNrKCk7CisgICAgfQogfQogCiB2b2lk
IENDRnJhbWVSYXRlQ29udHJvbGxlcjo6c2V0TWF4RnJhbWVzUGVuZGluZyhpbnQgbWF4RnJhbWVz
UGVuZGluZykKQEAgLTc3LDcgKzk5LDcgQEAgdm9pZCBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI6OnNl
dE1heEZyYW1lc1BlbmRpbmcoaW50IG1heEZyYW1lc1BlbmRpbmcpCiAKIHZvaWQgQ0NGcmFtZVJh
dGVDb250cm9sbGVyOjpvblRpbWVyVGljaygpCiB7Ci0gICAgQVNTRVJUKG1fdGltZVNvdXJjZS0+
YWN0aXZlKCkpOworICAgIEFTU0VSVChtX2FjdGl2ZSk7CiAKICAgICAvLyBEb24ndCBmb3J3YXJk
IHRoZSB0aWNrIGlmIHdlIGhhdmUgdG9vIG1hbnkgZnJhbWVzIGluIGZsaWdodC4KICAgICBpZiAo
bV9tYXhGcmFtZXNQZW5kaW5nICYmIG1fbnVtRnJhbWVzUGVuZGluZyA+PSBtX21heEZyYW1lc1Bl
bmRpbmcpIHsKQEAgLTg5LDE0ICsxMTEsMjkgQEAgdm9pZCBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI6
Om9uVGltZXJUaWNrKCkKICAgICAgICAgbV9jbGllbnQtPnZzeW5jVGljaygpOwogfQogCit2b2lk
IENDRnJhbWVSYXRlQ29udHJvbGxlcjo6cG9zdE1hbnVhbFRpY2soKQoreworICAgIGlmIChtX2Fj
dGl2ZSkKKyAgICAgICAgbV9tYW51YWxUaWNrZXItPnN0YXJ0T25lU2hvdCgwKTsKK30KKwordm9p
ZCBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI6Om9uVGltZXJGaXJlZCgpCit7CisgICAgb25UaW1lclRp
Y2soKTsKK30KKwogdm9pZCBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI6OmRpZEJlZ2luRnJhbWUoKQog
ewogICAgIG1fbnVtRnJhbWVzUGVuZGluZysrOworICAgIGlmICghbV9pc1RpbWVTb3VyY2VUaHJv
dHRsaW5nKQorICAgICAgICBwb3N0TWFudWFsVGljaygpOwogfQogCiB2b2lkIENDRnJhbWVSYXRl
Q29udHJvbGxlcjo6ZGlkRmluaXNoRnJhbWUoKQogewogICAgIG1fbnVtRnJhbWVzUGVuZGluZy0t
OworICAgIGlmICghbV9pc1RpbWVTb3VyY2VUaHJvdHRsaW5nKQorICAgICAgICBwb3N0TWFudWFs
VGljaygpOwogfQogCiB2b2lkIENDRnJhbWVSYXRlQ29udHJvbGxlcjo6ZGlkQWJvcnRBbGxQZW5k
aW5nRnJhbWVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVDb250cm9sbGVyLmgKaW5kZXgg
ZmEyM2FmMmNjYmRmMmM1YTliOGQ2MzhkOGZhOWEwNDMxYmNhZjk2Mi4uOGQ5YzdkZWVkMTJlODZi
ZDY1YzVkNzZkZjBmZjhiNDNjYmU3YTVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVDb250cm9sbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVD
b250cm9sbGVyLmgKQEAgLTI1LDYgKzI1LDggQEAKICNpZm5kZWYgQ0NGcmFtZVJhdGVDb250cm9s
bGVyX2gKICNkZWZpbmUgQ0NGcmFtZVJhdGVDb250cm9sbGVyX2gKIAorI2luY2x1ZGUgImNjL0ND
VGltZXIuaCIKKwogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9E
ZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTMyLDYgKzM0LDcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBDQ1RocmVhZDsKIGNsYXNzIENDVGltZVNvdXJjZTsK
IAogY2xhc3MgQ0NGcmFtZVJhdGVDb250cm9sbGVyQ2xpZW50IHsKQEAgLTQ0LDkgKzQ3LDExIEBA
IHByb3RlY3RlZDoKIAogY2xhc3MgQ0NGcmFtZVJhdGVDb250cm9sbGVyVGltZVNvdXJjZUFkYXB0
ZXI7CiAKLWNsYXNzIENDRnJhbWVSYXRlQ29udHJvbGxlciB7CitjbGFzcyBDQ0ZyYW1lUmF0ZUNv
bnRyb2xsZXIgOiBwdWJsaWMgQ0NUaW1lckNsaWVudCB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQg
Q0NGcmFtZVJhdGVDb250cm9sbGVyKFBhc3NSZWZQdHI8Q0NUaW1lU291cmNlPik7CisgICAgLy8g
QWx0ZXJuYXRlIGZvcm0gb2YgQ0NGcmFtZVJhdGVDb250cm9sbGVyIHdpdGggdW50aHJvdHRsZWQg
ZnJhbWUtcmF0ZS4KKyAgICBleHBsaWNpdCBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIoQ0NUaHJlYWQq
KTsKICAgICB+Q0NGcmFtZVJhdGVDb250cm9sbGVyKCk7CiAKICAgICB2b2lkIHNldENsaWVudChD
Q0ZyYW1lUmF0ZUNvbnRyb2xsZXJDbGllbnQqIGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVudDsg
fQpAQCAtNzAsMTEgKzc1LDIxIEBAIHByb3RlY3RlZDoKICAgICBmcmllbmQgY2xhc3MgQ0NGcmFt
ZVJhdGVDb250cm9sbGVyVGltZVNvdXJjZUFkYXB0ZXI7CiAgICAgdm9pZCBvblRpbWVyVGljaygp
OwogCisgICAgdm9pZCBwb3N0TWFudWFsVGljaygpOworCisgICAgLy8gQ0NUaW1lckNsaWVudCBp
bXBsZW1lbnRhdGlvbiAodXNlZCBmb3IgdW50aHJvdHRsZWQgZnJhbWUtcmF0ZSkuCisgICAgdmly
dHVhbCB2b2lkIG9uVGltZXJGaXJlZCgpIE9WRVJSSURFOworCiAgICAgQ0NGcmFtZVJhdGVDb250
cm9sbGVyQ2xpZW50KiBtX2NsaWVudDsKICAgICBpbnQgbV9udW1GcmFtZXNQZW5kaW5nOwogICAg
IGludCBtX21heEZyYW1lc1BlbmRpbmc7CiAgICAgUmVmUHRyPENDVGltZVNvdXJjZT4gbV90aW1l
U291cmNlOwogICAgIE93blB0cjxDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXJUaW1lU291cmNlQWRhcHRl
cj4gbV90aW1lU291cmNlQ2xpZW50QWRhcHRlcjsKKyAgICBib29sIG1fYWN0aXZlOworCisgICAg
Ly8gTWVtYmVycyBmb3IgdW50aHJvdHRsZWQgZnJhbWUtcmF0ZS4KKyAgICBib29sIG1faXNUaW1l
U291cmNlVGhyb3R0bGluZzsKKyAgICBPd25QdHI8Q0NUaW1lcj4gbV9tYW51YWxUaWNrZXI7CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCmluZGV4IDIyYTBkNzU5ODk2Y2M3NDFk
Mzg1ZWFiOTllYWU0Y2ZjMjQ5NmRkNjQuLjFhYjg1YmIwMjUzMTc4YzVkOGRkNDViMTQxOWE5Njhk
NTczYjMwMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCkBAIC05MCw2ICs5MCw3IEBA
IHN0cnVjdCBDQ0xheWVyVHJlZVNldHRpbmdzIHsKICAgICAgICAgICAgICwgc2hvd1NjcmVlblNw
YWNlUmVjdHMoZmFsc2UpCiAgICAgICAgICAgICAsIHNob3dSZXBsaWNhU2NyZWVuU3BhY2VSZWN0
cyhmYWxzZSkKICAgICAgICAgICAgICwgc2hvd09jY2x1ZGluZ1JlY3RzKGZhbHNlKQorICAgICAg
ICAgICAgLCByZW5kZXJWU3luY0VuYWJsZWQodHJ1ZSkKICAgICAgICAgICAgICwgcmVmcmVzaFJh
dGUoMCkKICAgICAgICAgICAgICwgbWF4UGFydGlhbFRleHR1cmVVcGRhdGVzKHN0ZDo6bnVtZXJp
Y19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpCiAgICAgICAgICAgICAsIGRlZmF1bHRUaWxlU2l6ZShJ
bnRTaXplKDI1NiwgMjU2KSkKQEAgLTEwNyw2ICsxMDgsNyBAQCBzdHJ1Y3QgQ0NMYXllclRyZWVT
ZXR0aW5ncyB7CiAgICAgYm9vbCBzaG93U2NyZWVuU3BhY2VSZWN0czsKICAgICBib29sIHNob3dS
ZXBsaWNhU2NyZWVuU3BhY2VSZWN0czsKICAgICBib29sIHNob3dPY2NsdWRpbmdSZWN0czsKKyAg
ICBib29sIHJlbmRlclZTeW5jRW5hYmxlZDsKICAgICBkb3VibGUgcmVmcmVzaFJhdGU7CiAgICAg
c2l6ZV90IG1heFBhcnRpYWxUZXh0dXJlVXBkYXRlczsKICAgICBJbnRTaXplIGRlZmF1bHRUaWxl
U2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKaW5kZXggZTA5ZDk0YzYxN2M5ZDYzNjdh
MTUxMGI5ZTI3MDQ2ZmU3ZjE2YWEzNC4uN2YzNjE4OTllNzg0NGQyNzM2NWQ4MjBlMmNkNGM1Nzc2
OTc1Zjg4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKQEAgLTg2LDYgKzg2LDcgQEAg
Q0NUaHJlYWRQcm94eTo6Q0NUaHJlYWRQcm94eShDQ0xheWVyVHJlZUhvc3QqIGxheWVyVHJlZUhv
c3QpCiAgICAgLCBtX2NvbW1pdENvbXBsZXRpb25FdmVudE9uSW1wbFRocmVhZCgwKQogICAgICwg
bV90ZXh0dXJlQWNxdWlzaXRpb25Db21wbGV0aW9uRXZlbnRPbkltcGxUaHJlYWQoMCkKICAgICAs
IG1fbmV4dEZyYW1lSXNOZXdseUNvbW1pdHRlZEZyYW1lT25JbXBsVGhyZWFkKGZhbHNlKQorICAg
ICwgbV9yZW5kZXJWU3luY0VuYWJsZWQobGF5ZXJUcmVlSG9zdC0+c2V0dGluZ3MoKS5yZW5kZXJW
U3luY0VuYWJsZWQpCiB7CiAgICAgVFJBQ0VfRVZFTlQwKCJjYyIsICJDQ1RocmVhZFByb3h5OjpD
Q1RocmVhZFByb3h5Iik7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTgxMCw3ICs4
MTEsMTEgQEAgdm9pZCBDQ1RocmVhZFByb3h5Ojppbml0aWFsaXplSW1wbE9uSW1wbFRocmVhZChD
Q0NvbXBsZXRpb25FdmVudCogY29tcGxldGlvbikKICAgICBBU1NFUlQoaXNJbXBsVGhyZWFkKCkp
OwogICAgIG1fbGF5ZXJUcmVlSG9zdEltcGwgPSBtX2xheWVyVHJlZUhvc3QtPmNyZWF0ZUxheWVy
VHJlZUhvc3RJbXBsKHRoaXMpOwogICAgIGNvbnN0IGRvdWJsZSBkaXNwbGF5UmVmcmVzaEludGVy
dmFsID0gMS4wIC8gNjAuMDsKLSAgICBPd25QdHI8Q0NGcmFtZVJhdGVDb250cm9sbGVyPiBmcmFt
ZVJhdGVDb250cm9sbGVyID0gYWRvcHRQdHIobmV3IENDRnJhbWVSYXRlQ29udHJvbGxlcihDQ0Rl
bGF5QmFzZWRUaW1lU291cmNlOjpjcmVhdGUoZGlzcGxheVJlZnJlc2hJbnRlcnZhbCwgQ0NQcm94
eTo6aW1wbFRocmVhZCgpKSkpOworICAgIE93blB0cjxDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI+IGZy
YW1lUmF0ZUNvbnRyb2xsZXI7CisgICAgaWYgKG1fcmVuZGVyVlN5bmNFbmFibGVkKQorICAgICAg
ICBmcmFtZVJhdGVDb250cm9sbGVyID0gYWRvcHRQdHIobmV3IENDRnJhbWVSYXRlQ29udHJvbGxl
cihDQ0RlbGF5QmFzZWRUaW1lU291cmNlOjpjcmVhdGUoZGlzcGxheVJlZnJlc2hJbnRlcnZhbCwg
Q0NQcm94eTo6aW1wbFRocmVhZCgpKSkpOworICAgIGVsc2UKKyAgICAgICAgZnJhbWVSYXRlQ29u
dHJvbGxlciA9IGFkb3B0UHRyKG5ldyBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIoQ0NQcm94eTo6aW1w
bFRocmVhZCgpKSk7CiAgICAgbV9zY2hlZHVsZXJPbkltcGxUaHJlYWQgPSBDQ1NjaGVkdWxlcjo6
Y3JlYXRlKHRoaXMsIGZyYW1lUmF0ZUNvbnRyb2xsZXIucmVsZWFzZSgpKTsKICAgICBtX3NjaGVk
dWxlck9uSW1wbFRocmVhZC0+c2V0VmlzaWJsZShtX2xheWVyVHJlZUhvc3RJbXBsLT52aXNpYmxl
KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1RocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKaW5kZXggMGY4YTM1NDA0MGU0ZjA1MDhmODE3
NGY5YTRjOTVhNDFjNDEyYTIyMS4uZDIyODcxN2E5YmNiNWJmN2ZlNWNiOTRiMGMyNjA5OWZlMTE3
NzlmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaApAQCAtMTg5LDYgKzE4OSw4IEBAIHByaXZh
dGU6CiAKICAgICAvLyBTZXQgd2hlbiB0aGUgbmV4dCBkcmF3IHNob3VsZCBwb3N0IGRpZENvbW1p
dEFuZERyYXdGcmFtZSB0byB0aGUgbWFpbiB0aHJlYWQuCiAgICAgYm9vbCBtX25leHRGcmFtZUlz
TmV3bHlDb21taXR0ZWRGcmFtZU9uSW1wbFRocmVhZDsKKworICAgIGJvb2wgbV9yZW5kZXJWU3lu
Y0VuYWJsZWQ7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJTZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0
dGluZ3MuaAppbmRleCA4OGVkOTYzOWRlMjRlM2Q5YTZjMGEzMDQ2MDY4YTczMGZhNmM3ZmQ4Li4x
NmZkYzE1MjA4NmZjYjBkYzVhNmJmMjQ0MWYwNDQ3Mjc4ZGIzMmMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKQEAgLTEzMiw2ICsxMzIsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFBpY3RvZ3JhcGhGb250RmFtaWx5KGNvbnN0IFdlYlN0
cmluZyYsIFVTY3JpcHRDb2RlID0gVVNDUklQVF9DT01NT04pID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0UGx1Z2luc0VuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQcml2
aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxlZChib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHNldFJlbmRlclZTeW5jRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNh
bnNTZXJpZkZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJiwgVVNjcmlwdENvZGUgPSBVU0NSSVBU
X0NPTU1PTikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTZXJpZkZvbnRGYW1pbHkoY29uc3Qg
V2ViU3RyaW5nJiwgVVNjcmlwdENvZGUgPSBVU0NSSVBUX0NPTU1PTikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRTaG91bGRQcmludEJhY2tncm91bmRzKGJvb2wpID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXcuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlldy5jcHAKaW5kZXggYmNkNDkwYTg0
MWY0NGJmMzc5YmY0ODg3ZjczNGIxMTVkZmQ2NjE0MS4uYzEyMTk0ZWM3NzZhOTAxY2RkMjcxZGRk
NjdmYzQ2ZDgzZDk2YzU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViTGF5ZXJUcmVlVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
TGF5ZXJUcmVlVmlldy5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAgV2ViTGF5ZXJUcmVlVmlldzo6U2V0
dGluZ3M6Om9wZXJhdG9yIENDTGF5ZXJUcmVlU2V0dGluZ3MoKSBjb25zdAogICAgIHNldHRpbmdz
LnNob3dGUFNDb3VudGVyID0gc2hvd0ZQU0NvdW50ZXI7CiAgICAgc2V0dGluZ3Muc2hvd1BsYXRm
b3JtTGF5ZXJUcmVlID0gc2hvd1BsYXRmb3JtTGF5ZXJUcmVlOwogICAgIHNldHRpbmdzLnNob3dQ
YWludFJlY3RzID0gc2hvd1BhaW50UmVjdHM7CisgICAgc2V0dGluZ3MucmVuZGVyVlN5bmNFbmFi
bGVkID0gcmVuZGVyVlN5bmNFbmFibGVkOwogICAgIHNldHRpbmdzLnJlZnJlc2hSYXRlID0gcmVm
cmVzaFJhdGU7CiAgICAgc2V0dGluZ3MuZGVmYXVsdFRpbGVTaXplID0gZGVmYXVsdFRpbGVTaXpl
OwogICAgIHNldHRpbmdzLm1heFVudGlsZWRMYXllclNpemUgPSBtYXhVbnRpbGVkTGF5ZXJTaXpl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKaW5k
ZXggNWM1N2NmOGNhOWE2NDYyYzAyZjZhMDA5NDY0NzRkNzlmMjUyZWNiYy4uOWZjNjA4ZjM5Y2Ex
YTQ0ZjBjZTY3Mjg3YzllZTViZGIwMTBjYTFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCkBAIC01MSw2ICs1MSw3IEBAIFdlYlNldHRpbmdz
SW1wbDo6V2ViU2V0dGluZ3NJbXBsKFNldHRpbmdzKiBzZXR0aW5ncykKICAgICAsIG1fc2hvd0ZQ
U0NvdW50ZXIoZmFsc2UpCiAgICAgLCBtX3Nob3dQbGF0Zm9ybUxheWVyVHJlZShmYWxzZSkKICAg
ICAsIG1fc2hvd1BhaW50UmVjdHMoZmFsc2UpCisgICAgLCBtX3JlbmRlclZTeW5jRW5hYmxlZCh0
cnVlKQogICAgICwgbV92aWV3cG9ydEVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2FwcGx5RGVmYXVs
dERldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKGZhbHNlKQogICAgICwgbV9kZWZhdWx0VGls
ZVNpemUoV2ViU2l6ZSgyNTYsIDI1NikpCkBAIC0zNTcsNiArMzU4LDExIEBAIHZvaWQgV2ViU2V0
dGluZ3NJbXBsOjpzZXRQcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxlZChib29sIGVuYWJs
ZWQpCiAgICAgbV9zZXR0aW5ncy0+c2V0UHJpdmlsZWdlZFdlYkdMRXh0ZW5zaW9uc0VuYWJsZWQo
ZW5hYmxlZCk7CiB9CiAKK3ZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRSZW5kZXJWU3luY0VuYWJs
ZWQoYm9vbCBlbmFibGVkKQoreworICAgIG1fcmVuZGVyVlN5bmNFbmFibGVkID0gZW5hYmxlZDsK
K30KKwogdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldFdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxl
ZChib29sIGVuYWJsZWQpCiB7CiAgICAgbV9zZXR0aW5ncy0+c2V0V2ViR0xFcnJvcnNUb0NvbnNv
bGVFbmFibGVkKGVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViU2V0dGluZ3NJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0
aW5nc0ltcGwuaAppbmRleCA3NmUzMGI1MmZiYjBkNmYwYzk2MDkyNzhhNDUxMDg0YjEzMTVmZWM2
Li42NTY1MjlkMjYwZjMzNzU3OGM3Y2NmNTk5NDA4ZDM0OWIwODQzNGY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaApAQCAtMTI0LDYgKzEyNCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGljdG9ncmFwaEZvbnRGYW1pbHkoY29uc3Qg
V2ViU3RyaW5nJiwgVVNjcmlwdENvZGUgPSBVU0NSSVBUX0NPTU1PTik7CiAgICAgdmlydHVhbCB2
b2lkIHNldFBsdWdpbnNFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQcml2aWxl
Z2VkV2ViR0xFeHRlbnNpb25zRW5hYmxlZChib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmVu
ZGVyVlN5bmNFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTYW5zU2VyaWZGb250
RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRDb2RlID0gVVNDUklQVF9DT01NT04pOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRTZXJpZkZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJiwgVVNj
cmlwdENvZGUgPSBVU0NSSVBUX0NPTU1PTik7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZERp
c3BsYXlDYXB0aW9ucyhib29sKTsKQEAgLTE1NSw2ICsxNTYsNyBAQCBwdWJsaWM6CiAgICAgYm9v
bCBzaG93RlBTQ291bnRlcigpIGNvbnN0IHsgcmV0dXJuIG1fc2hvd0ZQU0NvdW50ZXI7IH0KICAg
ICBib29sIHNob3dQbGF0Zm9ybUxheWVyVHJlZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvd1BsYXRm
b3JtTGF5ZXJUcmVlOyB9CiAgICAgYm9vbCBzaG93UGFpbnRSZWN0cygpIGNvbnN0IHsgcmV0dXJu
IG1fc2hvd1BhaW50UmVjdHM7IH0KKyAgICBib29sIHJlbmRlclZTeW5jRW5hYmxlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVuZGVyVlN5bmNFbmFibGVkOyB9CiAgICAgYm9vbCBhcHBseURlZmF1bHRE
ZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbHlEZWZh
dWx0RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3I7IH0KICAgICBXZWJTaXplIGRlZmF1bHRU
aWxlU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVmYXVsdFRpbGVTaXplOyB9CiAgICAgV2ViU2l6
ZSBtYXhVbnRpbGVkTGF5ZXJTaXplKCkgY29uc3QgeyByZXR1cm4gbV9tYXhVbnRpbGVkTGF5ZXJT
aXplOyB9CkBAIC0xNjUsNiArMTY3LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvd0ZQU0Nv
dW50ZXI7CiAgICAgYm9vbCBtX3Nob3dQbGF0Zm9ybUxheWVyVHJlZTsKICAgICBib29sIG1fc2hv
d1BhaW50UmVjdHM7CisgICAgYm9vbCBtX3JlbmRlclZTeW5jRW5hYmxlZDsKICAgICBib29sIG1f
dmlld3BvcnRFbmFibGVkOwogICAgIGJvb2wgbV9hcHBseURlZmF1bHREZXZpY2VTY2FsZUZhY3Rv
ckluQ29tcG9zaXRvcjsKICAgICBXZWJTaXplIG1fZGVmYXVsdFRpbGVTaXplOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IDdjNmRhNjBkOTNhYmY2ZjEz
MGIwYjIxNzk3ZTBhMzMzNjI4MzcwNzguLjFiNGVlZWYwNmYzYWVkOTY2Y2JjNWE1MmY0ZWRhMmE5
OTJhMTk5NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAK
QEAgLTM2MTYsNiArMzYxNiw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldElzQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0FjdGl2ZShib29sIGFjdGl2ZSkKICAgICAgICAgbGF5ZXJUcmVlVmlld1NldHRp
bmdzLnNob3dGUFNDb3VudGVyID0gc2V0dGluZ3NJbXBsKCktPnNob3dGUFNDb3VudGVyKCk7CiAg
ICAgICAgIGxheWVyVHJlZVZpZXdTZXR0aW5ncy5zaG93UGxhdGZvcm1MYXllclRyZWUgPSBzZXR0
aW5nc0ltcGwoKS0+c2hvd1BsYXRmb3JtTGF5ZXJUcmVlKCk7CiAgICAgICAgIGxheWVyVHJlZVZp
ZXdTZXR0aW5ncy5zaG93UGFpbnRSZWN0cyA9IHNldHRpbmdzSW1wbCgpLT5zaG93UGFpbnRSZWN0
cygpOworICAgICAgICBsYXllclRyZWVWaWV3U2V0dGluZ3MucmVuZGVyVlN5bmNFbmFibGVkID0g
c2V0dGluZ3NJbXBsKCktPnJlbmRlclZTeW5jRW5hYmxlZCgpOwogICAgICAgICBsYXllclRyZWVW
aWV3U2V0dGluZ3MuZm9yY2VTb2Z0d2FyZUNvbXBvc2l0aW5nID0gc2V0dGluZ3MoKS0+Zm9yY2VT
b2Z0d2FyZUNvbXBvc2l0aW5nKCk7CiAKICAgICAgICAgbGF5ZXJUcmVlVmlld1NldHRpbmdzLmRl
ZmF1bHRUaWxlU2l6ZSA9IHNldHRpbmdzSW1wbCgpLT5kZWZhdWx0VGlsZVNpemUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NGcmFtZVJhdGVDb250cm9sbGVy
VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDRnJhbWVSYXRlQ29udHJv
bGxlclRlc3QuY3BwCmluZGV4IGM5YTYwY2ZhYTIzYjUwNDgwNDA4NGY0YzAwZmNhZjM5Zjc4NzNi
MzguLjIwZjIzNzRhM2I4MjdmNDZhNmRmMmUzZWQzNjFmMDQ0MWMwZjNjNzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NGcmFtZVJhdGVDb250cm9sbGVyVGVzdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0ZyYW1lUmF0ZUNvbnRyb2xs
ZXJUZXN0LmNwcApAQCAtMTM5LDQgKzEzOSwzNyBAQCBURVNUKENDRnJhbWVSYXRlQ29udHJvbGxl
clRlc3QsIFRlc3RGcmFtZVRocm90dGxpbmdfVHdvRnJhbWVzSW5GbGlnaHQpCiAgICAgRVhQRUNU
X1RSVUUoY2xpZW50LnZzeW5jVGlja2VkKCkpOwogfQogCitURVNUKENDRnJhbWVSYXRlQ29udHJv
bGxlclRlc3QsIFRlc3RGcmFtZVRocm90dGxpbmdfVW50aHJvdHRsZWQpCit7CisgICAgRmFrZUND
VGhyZWFkIHRocmVhZDsKKyAgICBGYWtlQ0NGcmFtZVJhdGVDb250cm9sbGVyQ2xpZW50IGNsaWVu
dDsKKyAgICBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIgY29udHJvbGxlcigmdGhyZWFkKTsKKworICAg
IGNvbnRyb2xsZXIuc2V0Q2xpZW50KCZjbGllbnQpOworICAgIGNvbnRyb2xsZXIuc2V0TWF4RnJh
bWVzUGVuZGluZygyKTsKKworICAgIC8vIHNldEFjdGl2ZSB0cmlnZ2VycyAxc3QgZnJhbWUsIG1h
a2Ugc3VyZSB0aGUgdnN5bmMgY2FsbGJhY2sgaXMgY2FsbGVkCisgICAgY29udHJvbGxlci5zZXRB
Y3RpdmUodHJ1ZSk7CisgICAgdGhyZWFkLnJ1blBlbmRpbmdUYXNrKCk7CisgICAgRVhQRUNUX1RS
VUUoY2xpZW50LnZzeW5jVGlja2VkKCkpOworICAgIGNsaWVudC5yZXNldCgpOworCisgICAgLy8g
ZGlkQmVnaW5GcmFtZSB0cmlnZ2VycyAybmQgZnJhbWUsIG1ha2Ugc3VyZSB0aGUgdnN5bmMgY2Fs
bGJhY2sgaXMgY2FsbGVkCisgICAgY29udHJvbGxlci5kaWRCZWdpbkZyYW1lKCk7CisgICAgdGhy
ZWFkLnJ1blBlbmRpbmdUYXNrKCk7CisgICAgRVhQRUNUX1RSVUUoY2xpZW50LnZzeW5jVGlja2Vk
KCkpOworICAgIGNsaWVudC5yZXNldCgpOworCisgICAgLy8gZGlkQmVnaW5GcmFtZSB0cmlnZ2Vy
cyAzcmQgZnJhbWUgKD4gbWF4RnJhbWVzUGVuZGluZyksIG1ha2Ugc3VyZSB0aGUgdnN5bmMgY2Fs
bGJhY2sgaXMgTk9UIGNhbGxlZAorICAgIGNvbnRyb2xsZXIuZGlkQmVnaW5GcmFtZSgpOworICAg
IHRocmVhZC5ydW5QZW5kaW5nVGFzaygpOworICAgIEVYUEVDVF9GQUxTRShjbGllbnQudnN5bmNU
aWNrZWQoKSk7CisgICAgY2xpZW50LnJlc2V0KCk7CisKKyAgICAvLyBkaWRGaW5pc2hGcmFtZSB0
cmlnZ2VycyBhIGZyYW1lLCBtYWtlIHN1cmUgdGhlIHZzeW5jIGNhbGxiYWNrIGlzIGNhbGxlZAor
ICAgIGNvbnRyb2xsZXIuZGlkRmluaXNoRnJhbWUoKTsKKyAgICB0aHJlYWQucnVuUGVuZGluZ1Rh
c2soKTsKKyAgICBFWFBFQ1RfVFJVRShjbGllbnQudnN5bmNUaWNrZWQoKSk7Cit9CisKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155321</attachid>
            <date>2012-07-30 10:47:57 -0700</date>
            <delta_ts>2012-07-30 15:04:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92323-20120730104742.patch</filename>
            <type>text/plain</type>
            <size>19338</size>
            <attacher name="John Bates">jbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNjM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBmZDhjYzA4NjZiODdl
MDJjZmFkYTc4MTQwYzVmMDk2N2Y1NWUzMzRmLi40MmY1MTk2N2Y5MjBlNGQzMzRkNTgzMGE4M2Qz
NmUxOWI1Mjg0YmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wNy0yNiAg
Sm9obiBCYXRlcyAgPGpiYXRlc0Bnb29nbGUuY29tPgorCisgICAgICAgIFBsdW1iIHZzeW5jLWVu
YWJsZWQgZmxhZyB1cCB0byBjb21wb3NpdG9yIHRocmVhZCBhbmQgc3VwcG9ydCBkaXNhYmxlLXZz
eW5jCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjMy
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY2hy
b21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXcuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5
ZXJUcmVlVmlldzo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAgICAgKFNldHRpbmdzKToKKwog
MjAxMi0wNy0yNSAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KIAogICAg
ICAgICBNZWRpYVN0cmVhbSBBUEk6IFVwZGF0ZSBNZWRpYVN0cmVhbVRyYWNrIHRvIG1hdGNoIHRo
ZSBzcGVjaWZpY2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDAzYWI4YzQyYWU3ODQxMTkzOTEwMjZiNjYy
ZDgwYjg1MWZmNWM4YS4uZjU2NGQ5YmVjYzZiZDcxNzVmNjg0YWY0M2ZkYWEwNGQyNWNhMzNhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA3LTI2ICBKb2huIEJhdGVzICA8amJh
dGVzQGdvb2dsZS5jb20+CisKKyAgICAgICAgUGx1bWIgdnN5bmMtZW5hYmxlZCBmbGFnIHVwIHRv
IGNvbXBvc2l0b3IgdGhyZWFkIGFuZCBzdXBwb3J0IGRpc2FibGUtdnN5bmMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMzIzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q0NGcmFtZVJhdGVDb250cm9sbGVyOjpDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Q0NGcmFtZVJhdGVDb250cm9sbGVyOjpkaXNhYmxlVGltZVNvdXJjZVRocm90dGxp
bmcpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0ZyYW1lUmF0ZUNv
bnRyb2xsZXI6OnNldEFjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0ZyYW1lUmF0ZUNvbnRy
b2xsZXI6OnBvc3RNYW51YWxUaWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkNDRnJhbWVSYXRlQ29u
dHJvbGxlcjo6b25UaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNDRnJhbWVSYXRlQ29u
dHJvbGxlcjo6ZGlkQmVnaW5GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0ZyYW1lUmF0ZUNv
bnRyb2xsZXI6OmRpZEZpbmlzaEZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoQ0NGcmFtZVJhdGVDb250cm9sbGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkND
TGF5ZXJUcmVlU2V0dGluZ3M6OkNDTGF5ZXJUcmVlU2V0dGluZ3MpOgorICAgICAgICAoQ0NMYXll
clRyZWVTZXR0aW5ncyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5OjpDQ1Ro
cmVhZFByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OmluaXRpYWxpemVJ
bXBsT25JbXBsVGhyZWFkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1RocmVhZFByb3h5Lmg6CisgICAgICAgIChDQ1RocmVhZFByb3h5KToKKwogMjAxMi0wNy0y
NSAgQW5kcmV3IFdpbHNvbiAgPGF0d2lsc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMTIzNTYwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCBmMWI0M2ZlMmIyN2I0MzAwMmFhMGZlZjQ4YTMwMjQ5NzY1ZTI5MmNjLi4xOTc3ZGU4Y2EzNmNm
Y2EwY2EyZjExYmYxZjczNThkYzdhMTc5ZTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI0IEBACisyMDEyLTA3LTI2ICBKb2huIEJhdGVzICA8amJhdGVzQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUGx1bWIgdnN5bmMtZW5hYmxlZCBmbGFnIHVwIHRvIGNvbXBvc2l0b3Ig
dGhyZWFkIGFuZCBzdXBwb3J0IGRpc2FibGUtdnN5bmMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViU2V0dGluZ3MuaDoKKyAgICAgICAg
KiB0ZXN0cy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXJUZXN0LmNwcDoKKyAgICAgICAgKiBzcmMvV2Vi
TGF5ZXJUcmVlVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXc6OlNl
dHRpbmdzOjpvcGVyYXRvciBDQ0xheWVyVHJlZVNldHRpbmdzKToKKyAgICAgICAgKiBzcmMvV2Vi
U2V0dGluZ3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpXZWJT
ZXR0aW5nc0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OnNldFJlbmRl
clZTeW5jRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJTZXR0
aW5nc0ltcGwuaDoKKyAgICAgICAgKFdlYlNldHRpbmdzSW1wbCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlNldHRpbmdzSW1wbDo6cmVuZGVyVlN5bmNFbmFibGVkKToKKyAgICAgICAgKiBzcmMvV2Vi
Vmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0SXNBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQWN0aXZlKToKKwogMjAxMi0wNy0yNSAgQWRyaWVubmUgV2Fsa2VyICA8
ZW5uZUBnb29nbGUuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVW5pZnkgY29tcG9zaXRvciBx
dWFkVHJhbnNmb3JtL2RyYXdUcmFuc2Zvcm0vb3JpZ2luVHJhbnNmb3JtCmRpZmYgLS1naXQgYS9T
b3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXcuaCBiL1NvdXJj
ZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCmluZGV4IGY1MjUx
MTA0MzM2YTAzNGE1MTQ2Y2RkZDE2YmRhMmJkNmExYzZjNDIuLjUzYmVlYmQ1M2U4ODVmNTllYjBh
MmI3NzQxMmRmNjU5ODdkYzlkMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAg
ICAgICAgICAgICwgc2hvd0ZQU0NvdW50ZXIoZmFsc2UpCiAgICAgICAgICAgICAsIHNob3dQbGF0
Zm9ybUxheWVyVHJlZShmYWxzZSkKICAgICAgICAgICAgICwgc2hvd1BhaW50UmVjdHMoZmFsc2Up
CisgICAgICAgICAgICAsIHJlbmRlclZTeW5jRW5hYmxlZCh0cnVlKQogICAgICAgICAgICAgLCBy
ZWZyZXNoUmF0ZSgwKQogICAgICAgICAgICAgLCBkZWZhdWx0VGlsZVNpemUoV2ViU2l6ZSgyNTYs
IDI1NikpCiAgICAgICAgICAgICAsIG1heFVudGlsZWRMYXllclNpemUoV2ViU2l6ZSg1MTIsIDUx
MikpCkBAIC02Niw2ICs2Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBzaG93RlBTQ291bnRl
cjsKICAgICAgICAgYm9vbCBzaG93UGxhdGZvcm1MYXllclRyZWU7CiAgICAgICAgIGJvb2wgc2hv
d1BhaW50UmVjdHM7CisgICAgICAgIGJvb2wgcmVuZGVyVlN5bmNFbmFibGVkOwogICAgICAgICBk
b3VibGUgcmVmcmVzaFJhdGU7CiAgICAgICAgIFdlYlNpemUgZGVmYXVsdFRpbGVTaXplOwogICAg
ICAgICBXZWJTaXplIG1heFVudGlsZWRMYXllclNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFt
ZVJhdGVDb250cm9sbGVyLmNwcAppbmRleCBkZjdmMzE1NTRhMWZlZWYyZDg3NWQxZWY3ZTFlNzJl
MjU4OWVhODc4Li5mMjcyZjliMzU4MzkyMjQ0ZGRlMzc5NzgzZWM3NTE2YmIwNjlhZGYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0Zy
YW1lUmF0ZUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5jcHAKQEAgLTI3LDYgKzI3LDcg
QEAKICNpbmNsdWRlICJjYy9DQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIuaCIKIAogI2luY2x1ZGUgIlRy
YWNlRXZlbnQuaCIKKyNpbmNsdWRlICJjYy9DQ0RlbGF5QmFzZWRUaW1lU291cmNlLmgiCiAjaW5j
bHVkZSAiY2MvQ0NUaW1lU291cmNlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUyLDIy
ICs1Myw0NCBAQCBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI6OkNDRnJhbWVSYXRlQ29udHJvbGxlcihQ
YXNzUmVmUHRyPENDVGltZVNvdXJjZT4gdGltZXIpCiAgICAgLCBtX251bUZyYW1lc1BlbmRpbmco
MCkKICAgICAsIG1fbWF4RnJhbWVzUGVuZGluZygwKQogICAgICwgbV90aW1lU291cmNlKHRpbWVy
KQorICAgICwgbV9hY3RpdmUoZmFsc2UpCisgICAgLCBtX2lzVGltZVNvdXJjZVRocm90dGxpbmco
dHJ1ZSkKIHsKICAgICBtX3RpbWVTb3VyY2VDbGllbnRBZGFwdGVyID0gQ0NGcmFtZVJhdGVDb250
cm9sbGVyVGltZVNvdXJjZUFkYXB0ZXI6OmNyZWF0ZSh0aGlzKTsKICAgICBtX3RpbWVTb3VyY2Ut
PnNldENsaWVudChtX3RpbWVTb3VyY2VDbGllbnRBZGFwdGVyLmdldCgpKTsKIH0KIAorQ0NGcmFt
ZVJhdGVDb250cm9sbGVyOjpDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIoQ0NUaHJlYWQqIHRocmVhZCkK
KyAgICA6IG1fY2xpZW50KDApCisgICAgLCBtX251bUZyYW1lc1BlbmRpbmcoMCkKKyAgICAsIG1f
bWF4RnJhbWVzUGVuZGluZygwKQorICAgICwgbV9hY3RpdmUoZmFsc2UpCisgICAgLCBtX2lzVGlt
ZVNvdXJjZVRocm90dGxpbmcoZmFsc2UpCit7CisgICAgbV9tYW51YWxUaWNrZXIgPSBhZG9wdFB0
cihuZXcgQ0NUaW1lcih0aHJlYWQsIHRoaXMpKTsKK30KKwogQ0NGcmFtZVJhdGVDb250cm9sbGVy
Ojp+Q0NGcmFtZVJhdGVDb250cm9sbGVyKCkKIHsKLSAgICBtX3RpbWVTb3VyY2UtPnNldEFjdGl2
ZShmYWxzZSk7CisgICAgaWYgKG1faXNUaW1lU291cmNlVGhyb3R0bGluZykKKyAgICAgICAgbV90
aW1lU291cmNlLT5zZXRBY3RpdmUoZmFsc2UpOwogfQogCiB2b2lkIENDRnJhbWVSYXRlQ29udHJv
bGxlcjo6c2V0QWN0aXZlKGJvb2wgYWN0aXZlKQogewotICAgIGlmIChtX3RpbWVTb3VyY2UtPmFj
dGl2ZSgpID09IGFjdGl2ZSkKKyAgICBpZiAobV9hY3RpdmUgPT0gYWN0aXZlKQogICAgICAgICBy
ZXR1cm47CiAgICAgVFJBQ0VfRVZFTlQxKCJjYyIsICJDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI6OnNl
dEFjdGl2ZSIsICJhY3RpdmUiLCBhY3RpdmUpOwotICAgIG1fdGltZVNvdXJjZS0+c2V0QWN0aXZl
KGFjdGl2ZSk7CisgICAgbV9hY3RpdmUgPSBhY3RpdmU7CisKKyAgICBpZiAobV9pc1RpbWVTb3Vy
Y2VUaHJvdHRsaW5nKQorICAgICAgICBtX3RpbWVTb3VyY2UtPnNldEFjdGl2ZShhY3RpdmUpOwor
ICAgIGVsc2UgeworICAgICAgICBpZiAoYWN0aXZlKQorICAgICAgICAgICAgcG9zdE1hbnVhbFRp
Y2soKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9tYW51YWxUaWNrZXItPnN0b3AoKTsK
KyAgICB9CiB9CiAKIHZvaWQgQ0NGcmFtZVJhdGVDb250cm9sbGVyOjpzZXRNYXhGcmFtZXNQZW5k
aW5nKGludCBtYXhGcmFtZXNQZW5kaW5nKQpAQCAtNzcsNyArMTAwLDcgQEAgdm9pZCBDQ0ZyYW1l
UmF0ZUNvbnRyb2xsZXI6OnNldE1heEZyYW1lc1BlbmRpbmcoaW50IG1heEZyYW1lc1BlbmRpbmcp
CiAKIHZvaWQgQ0NGcmFtZVJhdGVDb250cm9sbGVyOjpvblRpbWVyVGljaygpCiB7Ci0gICAgQVNT
RVJUKG1fdGltZVNvdXJjZS0+YWN0aXZlKCkpOworICAgIEFTU0VSVChtX2FjdGl2ZSk7CiAKICAg
ICAvLyBEb24ndCBmb3J3YXJkIHRoZSB0aWNrIGlmIHdlIGhhdmUgdG9vIG1hbnkgZnJhbWVzIGlu
IGZsaWdodC4KICAgICBpZiAobV9tYXhGcmFtZXNQZW5kaW5nICYmIG1fbnVtRnJhbWVzUGVuZGlu
ZyA+PSBtX21heEZyYW1lc1BlbmRpbmcpIHsKQEAgLTg5LDE0ICsxMTIsMjkgQEAgdm9pZCBDQ0Zy
YW1lUmF0ZUNvbnRyb2xsZXI6Om9uVGltZXJUaWNrKCkKICAgICAgICAgbV9jbGllbnQtPnZzeW5j
VGljaygpOwogfQogCit2b2lkIENDRnJhbWVSYXRlQ29udHJvbGxlcjo6cG9zdE1hbnVhbFRpY2so
KQoreworICAgIGlmIChtX2FjdGl2ZSkKKyAgICAgICAgbV9tYW51YWxUaWNrZXItPnN0YXJ0T25l
U2hvdCgwKTsKK30KKwordm9pZCBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI6Om9uVGltZXJGaXJlZCgp
Cit7CisgICAgb25UaW1lclRpY2soKTsKK30KKwogdm9pZCBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI6
OmRpZEJlZ2luRnJhbWUoKQogewogICAgIG1fbnVtRnJhbWVzUGVuZGluZysrOworICAgIGlmICgh
bV9pc1RpbWVTb3VyY2VUaHJvdHRsaW5nKQorICAgICAgICBwb3N0TWFudWFsVGljaygpOwogfQog
CiB2b2lkIENDRnJhbWVSYXRlQ29udHJvbGxlcjo6ZGlkRmluaXNoRnJhbWUoKQogewogICAgIG1f
bnVtRnJhbWVzUGVuZGluZy0tOworICAgIGlmICghbV9pc1RpbWVTb3VyY2VUaHJvdHRsaW5nKQor
ICAgICAgICBwb3N0TWFudWFsVGljaygpOwogfQogCiB2b2lkIENDRnJhbWVSYXRlQ29udHJvbGxl
cjo6ZGlkQWJvcnRBbGxQZW5kaW5nRnJhbWVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRnJhbWVSYXRlQ29udHJvbGxlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVD
b250cm9sbGVyLmgKaW5kZXggZmEyM2FmMmNjYmRmMmM1YTliOGQ2MzhkOGZhOWEwNDMxYmNhZjk2
Mi4uOGQ5YzdkZWVkMTJlODZiZDY1YzVkNzZkZjBmZjhiNDNjYmU3YTVlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGcmFtZVJhdGVD
b250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NGcmFtZVJhdGVDb250cm9sbGVyLmgKQEAgLTI1LDYgKzI1LDggQEAKICNpZm5kZWYg
Q0NGcmFtZVJhdGVDb250cm9sbGVyX2gKICNkZWZpbmUgQ0NGcmFtZVJhdGVDb250cm9sbGVyX2gK
IAorI2luY2x1ZGUgImNjL0NDVGltZXIuaCIKKwogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5o
PgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTMy
LDYgKzM0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBDQ1RocmVhZDsKIGNs
YXNzIENDVGltZVNvdXJjZTsKIAogY2xhc3MgQ0NGcmFtZVJhdGVDb250cm9sbGVyQ2xpZW50IHsK
QEAgLTQ0LDkgKzQ3LDExIEBAIHByb3RlY3RlZDoKIAogY2xhc3MgQ0NGcmFtZVJhdGVDb250cm9s
bGVyVGltZVNvdXJjZUFkYXB0ZXI7CiAKLWNsYXNzIENDRnJhbWVSYXRlQ29udHJvbGxlciB7Citj
bGFzcyBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIgOiBwdWJsaWMgQ0NUaW1lckNsaWVudCB7CiBwdWJs
aWM6CiAgICAgZXhwbGljaXQgQ0NGcmFtZVJhdGVDb250cm9sbGVyKFBhc3NSZWZQdHI8Q0NUaW1l
U291cmNlPik7CisgICAgLy8gQWx0ZXJuYXRlIGZvcm0gb2YgQ0NGcmFtZVJhdGVDb250cm9sbGVy
IHdpdGggdW50aHJvdHRsZWQgZnJhbWUtcmF0ZS4KKyAgICBleHBsaWNpdCBDQ0ZyYW1lUmF0ZUNv
bnRyb2xsZXIoQ0NUaHJlYWQqKTsKICAgICB+Q0NGcmFtZVJhdGVDb250cm9sbGVyKCk7CiAKICAg
ICB2b2lkIHNldENsaWVudChDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXJDbGllbnQqIGNsaWVudCkgeyBt
X2NsaWVudCA9IGNsaWVudDsgfQpAQCAtNzAsMTEgKzc1LDIxIEBAIHByb3RlY3RlZDoKICAgICBm
cmllbmQgY2xhc3MgQ0NGcmFtZVJhdGVDb250cm9sbGVyVGltZVNvdXJjZUFkYXB0ZXI7CiAgICAg
dm9pZCBvblRpbWVyVGljaygpOwogCisgICAgdm9pZCBwb3N0TWFudWFsVGljaygpOworCisgICAg
Ly8gQ0NUaW1lckNsaWVudCBpbXBsZW1lbnRhdGlvbiAodXNlZCBmb3IgdW50aHJvdHRsZWQgZnJh
bWUtcmF0ZSkuCisgICAgdmlydHVhbCB2b2lkIG9uVGltZXJGaXJlZCgpIE9WRVJSSURFOworCiAg
ICAgQ0NGcmFtZVJhdGVDb250cm9sbGVyQ2xpZW50KiBtX2NsaWVudDsKICAgICBpbnQgbV9udW1G
cmFtZXNQZW5kaW5nOwogICAgIGludCBtX21heEZyYW1lc1BlbmRpbmc7CiAgICAgUmVmUHRyPEND
VGltZVNvdXJjZT4gbV90aW1lU291cmNlOwogICAgIE93blB0cjxDQ0ZyYW1lUmF0ZUNvbnRyb2xs
ZXJUaW1lU291cmNlQWRhcHRlcj4gbV90aW1lU291cmNlQ2xpZW50QWRhcHRlcjsKKyAgICBib29s
IG1fYWN0aXZlOworCisgICAgLy8gTWVtYmVycyBmb3IgdW50aHJvdHRsZWQgZnJhbWUtcmF0ZS4K
KyAgICBib29sIG1faXNUaW1lU291cmNlVGhyb3R0bGluZzsKKyAgICBPd25QdHI8Q0NUaW1lcj4g
bV9tYW51YWxUaWNrZXI7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCmluZGV4
IDIyYTBkNzU5ODk2Y2M3NDFkMzg1ZWFiOTllYWU0Y2ZjMjQ5NmRkNjQuLjFhYjg1YmIwMjUzMTc4
YzVkOGRkNDViMTQxOWE5NjhkNTczYjMwMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5o
CkBAIC05MCw2ICs5MCw3IEBAIHN0cnVjdCBDQ0xheWVyVHJlZVNldHRpbmdzIHsKICAgICAgICAg
ICAgICwgc2hvd1NjcmVlblNwYWNlUmVjdHMoZmFsc2UpCiAgICAgICAgICAgICAsIHNob3dSZXBs
aWNhU2NyZWVuU3BhY2VSZWN0cyhmYWxzZSkKICAgICAgICAgICAgICwgc2hvd09jY2x1ZGluZ1Jl
Y3RzKGZhbHNlKQorICAgICAgICAgICAgLCByZW5kZXJWU3luY0VuYWJsZWQodHJ1ZSkKICAgICAg
ICAgICAgICwgcmVmcmVzaFJhdGUoMCkKICAgICAgICAgICAgICwgbWF4UGFydGlhbFRleHR1cmVV
cGRhdGVzKHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpCiAgICAgICAgICAgICAs
IGRlZmF1bHRUaWxlU2l6ZShJbnRTaXplKDI1NiwgMjU2KSkKQEAgLTEwNyw2ICsxMDgsNyBAQCBz
dHJ1Y3QgQ0NMYXllclRyZWVTZXR0aW5ncyB7CiAgICAgYm9vbCBzaG93U2NyZWVuU3BhY2VSZWN0
czsKICAgICBib29sIHNob3dSZXBsaWNhU2NyZWVuU3BhY2VSZWN0czsKICAgICBib29sIHNob3dP
Y2NsdWRpbmdSZWN0czsKKyAgICBib29sIHJlbmRlclZTeW5jRW5hYmxlZDsKICAgICBkb3VibGUg
cmVmcmVzaFJhdGU7CiAgICAgc2l6ZV90IG1heFBhcnRpYWxUZXh0dXJlVXBkYXRlczsKICAgICBJ
bnRTaXplIGRlZmF1bHRUaWxlU2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKaW5kZXgg
ZTA5ZDk0YzYxN2M5ZDYzNjdhMTUxMGI5ZTI3MDQ2ZmU3ZjE2YWEzNC4uN2YzNjE4OTllNzg0NGQy
NzM2NWQ4MjBlMmNkNGM1Nzc2OTc1Zjg4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAK
QEAgLTg2LDYgKzg2LDcgQEAgQ0NUaHJlYWRQcm94eTo6Q0NUaHJlYWRQcm94eShDQ0xheWVyVHJl
ZUhvc3QqIGxheWVyVHJlZUhvc3QpCiAgICAgLCBtX2NvbW1pdENvbXBsZXRpb25FdmVudE9uSW1w
bFRocmVhZCgwKQogICAgICwgbV90ZXh0dXJlQWNxdWlzaXRpb25Db21wbGV0aW9uRXZlbnRPbklt
cGxUaHJlYWQoMCkKICAgICAsIG1fbmV4dEZyYW1lSXNOZXdseUNvbW1pdHRlZEZyYW1lT25JbXBs
VGhyZWFkKGZhbHNlKQorICAgICwgbV9yZW5kZXJWU3luY0VuYWJsZWQobGF5ZXJUcmVlSG9zdC0+
c2V0dGluZ3MoKS5yZW5kZXJWU3luY0VuYWJsZWQpCiB7CiAgICAgVFJBQ0VfRVZFTlQwKCJjYyIs
ICJDQ1RocmVhZFByb3h5OjpDQ1RocmVhZFByb3h5Iik7CiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKQEAgLTgxMCw3ICs4MTEsMTEgQEAgdm9pZCBDQ1RocmVhZFByb3h5Ojppbml0aWFsaXpl
SW1wbE9uSW1wbFRocmVhZChDQ0NvbXBsZXRpb25FdmVudCogY29tcGxldGlvbikKICAgICBBU1NF
UlQoaXNJbXBsVGhyZWFkKCkpOwogICAgIG1fbGF5ZXJUcmVlSG9zdEltcGwgPSBtX2xheWVyVHJl
ZUhvc3QtPmNyZWF0ZUxheWVyVHJlZUhvc3RJbXBsKHRoaXMpOwogICAgIGNvbnN0IGRvdWJsZSBk
aXNwbGF5UmVmcmVzaEludGVydmFsID0gMS4wIC8gNjAuMDsKLSAgICBPd25QdHI8Q0NGcmFtZVJh
dGVDb250cm9sbGVyPiBmcmFtZVJhdGVDb250cm9sbGVyID0gYWRvcHRQdHIobmV3IENDRnJhbWVS
YXRlQ29udHJvbGxlcihDQ0RlbGF5QmFzZWRUaW1lU291cmNlOjpjcmVhdGUoZGlzcGxheVJlZnJl
c2hJbnRlcnZhbCwgQ0NQcm94eTo6aW1wbFRocmVhZCgpKSkpOworICAgIE93blB0cjxDQ0ZyYW1l
UmF0ZUNvbnRyb2xsZXI+IGZyYW1lUmF0ZUNvbnRyb2xsZXI7CisgICAgaWYgKG1fcmVuZGVyVlN5
bmNFbmFibGVkKQorICAgICAgICBmcmFtZVJhdGVDb250cm9sbGVyID0gYWRvcHRQdHIobmV3IEND
RnJhbWVSYXRlQ29udHJvbGxlcihDQ0RlbGF5QmFzZWRUaW1lU291cmNlOjpjcmVhdGUoZGlzcGxh
eVJlZnJlc2hJbnRlcnZhbCwgQ0NQcm94eTo6aW1wbFRocmVhZCgpKSkpOworICAgIGVsc2UKKyAg
ICAgICAgZnJhbWVSYXRlQ29udHJvbGxlciA9IGFkb3B0UHRyKG5ldyBDQ0ZyYW1lUmF0ZUNvbnRy
b2xsZXIoQ0NQcm94eTo6aW1wbFRocmVhZCgpKSk7CiAgICAgbV9zY2hlZHVsZXJPbkltcGxUaHJl
YWQgPSBDQ1NjaGVkdWxlcjo6Y3JlYXRlKHRoaXMsIGZyYW1lUmF0ZUNvbnRyb2xsZXIucmVsZWFz
ZSgpKTsKICAgICBtX3NjaGVkdWxlck9uSW1wbFRocmVhZC0+c2V0VmlzaWJsZShtX2xheWVyVHJl
ZUhvc3RJbXBsLT52aXNpYmxlKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKaW5kZXggMGY4
YTM1NDA0MGU0ZjA1MDhmODE3NGY5YTRjOTVhNDFjNDEyYTIyMS4uZDIyODcxN2E5YmNiNWJmN2Zl
NWNiOTRiMGMyNjA5OWZlMTE3NzlmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaApAQCAtMTg5
LDYgKzE4OSw4IEBAIHByaXZhdGU6CiAKICAgICAvLyBTZXQgd2hlbiB0aGUgbmV4dCBkcmF3IHNo
b3VsZCBwb3N0IGRpZENvbW1pdEFuZERyYXdGcmFtZSB0byB0aGUgbWFpbiB0aHJlYWQuCiAgICAg
Ym9vbCBtX25leHRGcmFtZUlzTmV3bHlDb21taXR0ZWRGcmFtZU9uSW1wbFRocmVhZDsKKworICAg
IGJvb2wgbV9yZW5kZXJWU3luY0VuYWJsZWQ7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAppbmRleCA4OGVkOTYzOWRlMjRlM2Q5YTZjMGEzMDQ2
MDY4YTczMGZhNmM3ZmQ4Li4xNmZkYzE1MjA4NmZjYjBkYzVhNmJmMjQ0MWYwNDQ3Mjc4ZGIzMmMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKQEAgLTEz
Miw2ICsxMzIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFBpY3RvZ3JhcGhGb250
RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRDb2RlID0gVVNDUklQVF9DT01NT04pID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGx1Z2luc0VuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRQcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxlZChib29sKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHNldFJlbmRlclZTeW5jRW5hYmxlZChib29sKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHNldFNhbnNTZXJpZkZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJiwgVVNj
cmlwdENvZGUgPSBVU0NSSVBUX0NPTU1PTikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTZXJp
ZkZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJiwgVVNjcmlwdENvZGUgPSBVU0NSSVBUX0NPTU1P
TikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRQcmludEJhY2tncm91bmRzKGJvb2wp
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJl
ZVZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlldy5j
cHAKaW5kZXggYmNkNDkwYTg0MWY0NGJmMzc5YmY0ODg3ZjczNGIxMTVkZmQ2NjE0MS4uYzEyMTk0
ZWM3NzZhOTAxY2RkMjcxZGRkNjdmYzQ2ZDgzZDk2YzU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlldy5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAgV2Vi
TGF5ZXJUcmVlVmlldzo6U2V0dGluZ3M6Om9wZXJhdG9yIENDTGF5ZXJUcmVlU2V0dGluZ3MoKSBj
b25zdAogICAgIHNldHRpbmdzLnNob3dGUFNDb3VudGVyID0gc2hvd0ZQU0NvdW50ZXI7CiAgICAg
c2V0dGluZ3Muc2hvd1BsYXRmb3JtTGF5ZXJUcmVlID0gc2hvd1BsYXRmb3JtTGF5ZXJUcmVlOwog
ICAgIHNldHRpbmdzLnNob3dQYWludFJlY3RzID0gc2hvd1BhaW50UmVjdHM7CisgICAgc2V0dGlu
Z3MucmVuZGVyVlN5bmNFbmFibGVkID0gcmVuZGVyVlN5bmNFbmFibGVkOwogICAgIHNldHRpbmdz
LnJlZnJlc2hSYXRlID0gcmVmcmVzaFJhdGU7CiAgICAgc2V0dGluZ3MuZGVmYXVsdFRpbGVTaXpl
ID0gZGVmYXVsdFRpbGVTaXplOwogICAgIHNldHRpbmdzLm1heFVudGlsZWRMYXllclNpemUgPSBt
YXhVbnRpbGVkTGF5ZXJTaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViU2V0dGluZ3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNl
dHRpbmdzSW1wbC5jcHAKaW5kZXggNWM1N2NmOGNhOWE2NDYyYzAyZjZhMDA5NDY0NzRkNzlmMjUy
ZWNiYy4uOWZjNjA4ZjM5Y2ExYTQ0ZjBjZTY3Mjg3YzllZTViZGIwMTBjYTFiYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCkBAIC01MSw2ICs1
MSw3IEBAIFdlYlNldHRpbmdzSW1wbDo6V2ViU2V0dGluZ3NJbXBsKFNldHRpbmdzKiBzZXR0aW5n
cykKICAgICAsIG1fc2hvd0ZQU0NvdW50ZXIoZmFsc2UpCiAgICAgLCBtX3Nob3dQbGF0Zm9ybUxh
eWVyVHJlZShmYWxzZSkKICAgICAsIG1fc2hvd1BhaW50UmVjdHMoZmFsc2UpCisgICAgLCBtX3Jl
bmRlclZTeW5jRW5hYmxlZCh0cnVlKQogICAgICwgbV92aWV3cG9ydEVuYWJsZWQoZmFsc2UpCiAg
ICAgLCBtX2FwcGx5RGVmYXVsdERldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKGZhbHNlKQog
ICAgICwgbV9kZWZhdWx0VGlsZVNpemUoV2ViU2l6ZSgyNTYsIDI1NikpCkBAIC0zNTcsNiArMzU4
LDExIEBAIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRQcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25z
RW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgbV9zZXR0aW5ncy0+c2V0UHJpdmlsZWdlZFdlYkdM
RXh0ZW5zaW9uc0VuYWJsZWQoZW5hYmxlZCk7CiB9CiAKK3ZvaWQgV2ViU2V0dGluZ3NJbXBsOjpz
ZXRSZW5kZXJWU3luY0VuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIG1fcmVuZGVyVlN5bmNF
bmFibGVkID0gZW5hYmxlZDsKK30KKwogdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldFdlYkdMRXJy
b3JzVG9Db25zb2xlRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgbV9zZXR0aW5ncy0+c2V0
V2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkKGVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAppbmRleCA3NmUzMGI1MmZiYjBkNmYwYzk2MDky
NzhhNDUxMDg0YjEzMTVmZWM2Li42NTY1MjlkMjYwZjMzNzU3OGM3Y2NmNTk5NDA4ZDM0OWIwODQz
NGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0lt
cGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaApA
QCAtMTI0LDYgKzEyNCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGljdG9ncmFw
aEZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJiwgVVNjcmlwdENvZGUgPSBVU0NSSVBUX0NPTU1P
Tik7CiAgICAgdmlydHVhbCB2b2lkIHNldFBsdWdpbnNFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRQcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxlZChib29sKTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0UmVuZGVyVlN5bmNFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRTYW5zU2VyaWZGb250RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRDb2RlID0g
VVNDUklQVF9DT01NT04pOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTZXJpZkZvbnRGYW1pbHkoY29u
c3QgV2ViU3RyaW5nJiwgVVNjcmlwdENvZGUgPSBVU0NSSVBUX0NPTU1PTik7CiAgICAgdmlydHVh
bCB2b2lkIHNldFNob3VsZERpc3BsYXlDYXB0aW9ucyhib29sKTsKQEAgLTE1NSw2ICsxNTYsNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBzaG93RlBTQ291bnRlcigpIGNvbnN0IHsgcmV0dXJuIG1fc2hv
d0ZQU0NvdW50ZXI7IH0KICAgICBib29sIHNob3dQbGF0Zm9ybUxheWVyVHJlZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc2hvd1BsYXRmb3JtTGF5ZXJUcmVlOyB9CiAgICAgYm9vbCBzaG93UGFpbnRSZWN0
cygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvd1BhaW50UmVjdHM7IH0KKyAgICBib29sIHJlbmRlclZT
eW5jRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyVlN5bmNFbmFibGVkOyB9CiAgICAg
Ym9vbCBhcHBseURlZmF1bHREZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpIGNvbnN0IHsg
cmV0dXJuIG1fYXBwbHlEZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3I7IH0KICAg
ICBXZWJTaXplIGRlZmF1bHRUaWxlU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVmYXVsdFRpbGVT
aXplOyB9CiAgICAgV2ViU2l6ZSBtYXhVbnRpbGVkTGF5ZXJTaXplKCkgY29uc3QgeyByZXR1cm4g
bV9tYXhVbnRpbGVkTGF5ZXJTaXplOyB9CkBAIC0xNjUsNiArMTY3LDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fc2hvd0ZQU0NvdW50ZXI7CiAgICAgYm9vbCBtX3Nob3dQbGF0Zm9ybUxheWVyVHJl
ZTsKICAgICBib29sIG1fc2hvd1BhaW50UmVjdHM7CisgICAgYm9vbCBtX3JlbmRlclZTeW5jRW5h
YmxlZDsKICAgICBib29sIG1fdmlld3BvcnRFbmFibGVkOwogICAgIGJvb2wgbV9hcHBseURlZmF1
bHREZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcjsKICAgICBXZWJTaXplIG1fZGVmYXVsdFRp
bGVTaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4
IDdjNmRhNjBkOTNhYmY2ZjEzMGIwYjIxNzk3ZTBhMzMzNjI4MzcwNzguLjFiNGVlZWYwNmYzYWVk
OTY2Y2JjNWE1MmY0ZWRhMmE5OTJhMTk5NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAKQEAgLTM2MTYsNiArMzYxNiw3IEBAIHZvaWQgV2ViVmlld0ltcGw6
OnNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZShib29sIGFjdGl2ZSkKICAgICAgICAg
bGF5ZXJUcmVlVmlld1NldHRpbmdzLnNob3dGUFNDb3VudGVyID0gc2V0dGluZ3NJbXBsKCktPnNo
b3dGUFNDb3VudGVyKCk7CiAgICAgICAgIGxheWVyVHJlZVZpZXdTZXR0aW5ncy5zaG93UGxhdGZv
cm1MYXllclRyZWUgPSBzZXR0aW5nc0ltcGwoKS0+c2hvd1BsYXRmb3JtTGF5ZXJUcmVlKCk7CiAg
ICAgICAgIGxheWVyVHJlZVZpZXdTZXR0aW5ncy5zaG93UGFpbnRSZWN0cyA9IHNldHRpbmdzSW1w
bCgpLT5zaG93UGFpbnRSZWN0cygpOworICAgICAgICBsYXllclRyZWVWaWV3U2V0dGluZ3MucmVu
ZGVyVlN5bmNFbmFibGVkID0gc2V0dGluZ3NJbXBsKCktPnJlbmRlclZTeW5jRW5hYmxlZCgpOwog
ICAgICAgICBsYXllclRyZWVWaWV3U2V0dGluZ3MuZm9yY2VTb2Z0d2FyZUNvbXBvc2l0aW5nID0g
c2V0dGluZ3MoKS0+Zm9yY2VTb2Z0d2FyZUNvbXBvc2l0aW5nKCk7CiAKICAgICAgICAgbGF5ZXJU
cmVlVmlld1NldHRpbmdzLmRlZmF1bHRUaWxlU2l6ZSA9IHNldHRpbmdzSW1wbCgpLT5kZWZhdWx0
VGlsZVNpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NG
cmFtZVJhdGVDb250cm9sbGVyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0NDRnJhbWVSYXRlQ29udHJvbGxlclRlc3QuY3BwCmluZGV4IGM5YTYwY2ZhYTIzYjUwNDgwNDA4
NGY0YzAwZmNhZjM5Zjc4NzNiMzguLjIwZjIzNzRhM2I4MjdmNDZhNmRmMmUzZWQzNjFmMDQ0MWMw
ZjNjNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NGcmFtZVJh
dGVDb250cm9sbGVyVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9D
Q0ZyYW1lUmF0ZUNvbnRyb2xsZXJUZXN0LmNwcApAQCAtMTM5LDQgKzEzOSwzNyBAQCBURVNUKEND
RnJhbWVSYXRlQ29udHJvbGxlclRlc3QsIFRlc3RGcmFtZVRocm90dGxpbmdfVHdvRnJhbWVzSW5G
bGlnaHQpCiAgICAgRVhQRUNUX1RSVUUoY2xpZW50LnZzeW5jVGlja2VkKCkpOwogfQogCitURVNU
KENDRnJhbWVSYXRlQ29udHJvbGxlclRlc3QsIFRlc3RGcmFtZVRocm90dGxpbmdfVW50aHJvdHRs
ZWQpCit7CisgICAgRmFrZUNDVGhyZWFkIHRocmVhZDsKKyAgICBGYWtlQ0NGcmFtZVJhdGVDb250
cm9sbGVyQ2xpZW50IGNsaWVudDsKKyAgICBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIgY29udHJvbGxl
cigmdGhyZWFkKTsKKworICAgIGNvbnRyb2xsZXIuc2V0Q2xpZW50KCZjbGllbnQpOworICAgIGNv
bnRyb2xsZXIuc2V0TWF4RnJhbWVzUGVuZGluZygyKTsKKworICAgIC8vIHNldEFjdGl2ZSB0cmln
Z2VycyAxc3QgZnJhbWUsIG1ha2Ugc3VyZSB0aGUgdnN5bmMgY2FsbGJhY2sgaXMgY2FsbGVkCisg
ICAgY29udHJvbGxlci5zZXRBY3RpdmUodHJ1ZSk7CisgICAgdGhyZWFkLnJ1blBlbmRpbmdUYXNr
KCk7CisgICAgRVhQRUNUX1RSVUUoY2xpZW50LnZzeW5jVGlja2VkKCkpOworICAgIGNsaWVudC5y
ZXNldCgpOworCisgICAgLy8gZGlkQmVnaW5GcmFtZSB0cmlnZ2VycyAybmQgZnJhbWUsIG1ha2Ug
c3VyZSB0aGUgdnN5bmMgY2FsbGJhY2sgaXMgY2FsbGVkCisgICAgY29udHJvbGxlci5kaWRCZWdp
bkZyYW1lKCk7CisgICAgdGhyZWFkLnJ1blBlbmRpbmdUYXNrKCk7CisgICAgRVhQRUNUX1RSVUUo
Y2xpZW50LnZzeW5jVGlja2VkKCkpOworICAgIGNsaWVudC5yZXNldCgpOworCisgICAgLy8gZGlk
QmVnaW5GcmFtZSB0cmlnZ2VycyAzcmQgZnJhbWUgKD4gbWF4RnJhbWVzUGVuZGluZyksIG1ha2Ug
c3VyZSB0aGUgdnN5bmMgY2FsbGJhY2sgaXMgTk9UIGNhbGxlZAorICAgIGNvbnRyb2xsZXIuZGlk
QmVnaW5GcmFtZSgpOworICAgIHRocmVhZC5ydW5QZW5kaW5nVGFzaygpOworICAgIEVYUEVDVF9G
QUxTRShjbGllbnQudnN5bmNUaWNrZWQoKSk7CisgICAgY2xpZW50LnJlc2V0KCk7CisKKyAgICAv
LyBkaWRGaW5pc2hGcmFtZSB0cmlnZ2VycyBhIGZyYW1lLCBtYWtlIHN1cmUgdGhlIHZzeW5jIGNh
bGxiYWNrIGlzIGNhbGxlZAorICAgIGNvbnRyb2xsZXIuZGlkRmluaXNoRnJhbWUoKTsKKyAgICB0
aHJlYWQucnVuUGVuZGluZ1Rhc2soKTsKKyAgICBFWFBFQ1RfVFJVRShjbGllbnQudnN5bmNUaWNr
ZWQoKSk7Cit9CisKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>