<?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>131696</bug_id>
          
          <creation_ts>2014-04-15 14:49:48 -0700</creation_ts>
          <short_desc>Only webkit2 pages should have a page throttler.</short_desc>
          <delta_ts>2014-04-18 17:50:17 -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>WebKit2</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>131697</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Stephanie Lewis">slewis</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>slewis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1000960</commentid>
    <comment_count>0</comment_count>
      <attachid>229404</attachid>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2014-04-15 14:49:48 -0700</bug_when>
    <thetext>Created attachment 229404
patch

The page throttler controls app nap for WebKit2 web processes.  It shouldn&apos;t be created for WebKit1 views, SVG images, and the Web inspector.  This led to bugs where we would keep ourselves out of app nap because these extra page throttlers weren&apos;t tracking the correct states.

Related radars:
&lt;rdar://problem/16473045&gt; Visibility state counters are often incorrect
&lt;rdar://problem/15511684&gt; High CPU usage in WebContent
&lt;rdar://problem/16218996&gt; battery menu says safari using a lot of power, but i havent really used it in quite a while</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1000963</commentid>
    <comment_count>1</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-15 14:50:55 -0700</bug_when>
    <thetext>Attachment 229404 did not pass style-queue:


ERROR: Source/WebKit2/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ERROR: Source/WebCore/page/PageThrottler.cpp:41:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ERROR: Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1818:  Missing space before ( in if(  [whitespace/parens] [5]
Total errors found: 4 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001207</commentid>
    <comment_count>2</comment_count>
      <attachid>229404</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-04-16 10:41:10 -0700</bug_when>
    <thetext>Comment on attachment 229404
patch

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

&gt; Source/WebCore/page/Page.cpp:1116
&gt; +    m_pageThrottler = PageThrottler::create(*this, m_viewState);

Would be nice to assert !m_pageThrottler here. And it should be using make_unique instead of reference counting:

    m_pageThrottler = std::make_unique&lt;PageThrottler&gt;(*this, m_viewState);

&gt; Source/WebCore/page/Page.h:388
&gt; +    void initializePageThrottler();

I think this function should be called createPageThrottler. “initialize” is something you do to something that already exists.

&gt; Source/WebCore/page/Page.h:545
&gt; +    RefPtr&lt;PageThrottler&gt; m_pageThrottler;

Should be std::unique_ptr&lt;PageThrottler&gt;.

&gt; Source/WebCore/page/PageThrottler.cpp:35
&gt; +#include &lt;wtf/text/CString.h&gt;

Why was this needed?

&gt; Source/WebCore/page/PageThrottler.cpp:42
&gt; +PassRefPtr&lt;PageThrottler&gt; PageThrottler::create(Page&amp; page, ViewState::Flags viewState)
&gt; +{
&gt; +     return adoptRef(new PageThrottler(page, viewState));
&gt; +}

Don’t need this.

&gt; Source/WebCore/page/PageThrottler.cpp:102
&gt; -
&gt; +    

Please don’t add this whitespace.

&gt; Source/WebCore/page/PageThrottler.h:44
&gt; +class PageThrottler : public RefCounted&lt;PageThrottler&gt; {

Reference counting does not seem appropriate here; there’s no need for sharing. Lets use std::unique_ptr and have this be single ownership. We should just leave this class alone entirely, and use make_unique to create it.

&gt; Source/WebCore/page/Settings.cpp:661
&gt; +    if (m_page-&gt;pageThrottler())
&gt; +    m_page-&gt;pageThrottler()-&gt;hiddenPageDOMTimerThrottlingStateChanged();

Need to indent the body of the if statement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001413</commentid>
    <comment_count>3</comment_count>
      <attachid>229500</attachid>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2014-04-16 17:14:32 -0700</bug_when>
    <thetext>Created attachment 229500
patch with unique ptr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001415</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-16 17:16:18 -0700</bug_when>
    <thetext>Attachment 229500 did not pass style-queue:


ERROR: Source/WebKit2/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ERROR: Source/WebCore/page/PageThrottler.cpp:41:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ERROR: Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1819:  Missing space before ( in if(  [whitespace/parens] [5]
Total errors found: 4 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001417</commentid>
    <comment_count>5</comment_count>
      <attachid>229502</attachid>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2014-04-16 17:18:09 -0700</bug_when>
    <thetext>Created attachment 229502
new patch for real this time

oops that was the original patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001419</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-16 17:19:46 -0700</bug_when>
    <thetext>Attachment 229502 did not pass style-queue:


ERROR: Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1819:  Missing space before ( in if(  [whitespace/parens] [5]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001454</commentid>
    <comment_count>7</comment_count>
      <attachid>229502</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-04-16 19:12:38 -0700</bug_when>
    <thetext>Comment on attachment 229502
new patch for real this time

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

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1750
&gt; +    if (m_page-&gt;pageThrottler())

WebPage&apos;s m_page should always have a throttler (per call to createPageThrottler, above).
This should just be an ASSERT.

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1819
&gt; +    if(m_page-&gt;pageThrottler())

ditto.

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1851
&gt; +    if (m_page-&gt;pageThrottler())

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1002100</commentid>
    <comment_count>8</comment_count>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2014-04-18 17:50:17 -0700</bug_when>
    <thetext>Committed http://trac.webkit.org/changeset/167523</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229404</attachid>
            <date>2014-04-15 14:49:48 -0700</date>
            <delta_ts>2014-04-16 17:14:32 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-We-shouldn-t-create-page-throttlers-for-other-pages-.patch</filename>
            <type>text/plain</type>
            <size>16048</size>
            <attacher name="Stephanie Lewis">slewis</attacher>
            
              <data encoding="base64">RnJvbSBlN2QzNjhkMjMzYWEyYzA3NDFhYzkxOWRkZWE2YzUyNDRmYjYyN2Y0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVwaGFuaWUgTGV3aXMgPHNsZXdpc0BhcHBsZS5jb20+CkRh
dGU6IFRodSwgMTAgQXByIDIwMTQgMTQ6NTQ6MTMgLTA3MDAKU3ViamVjdDogW1BBVENIIDEvMl0g
PT9VVEYtOD9xP1dlPTIwc2hvdWxkbj1FMj04MD05OXQ9MjBjcmVhdGU9MjBwYWdlPTIwdGg/PQog
PT9VVEYtOD9xP3JvdHRsZXJzPTIwZm9yPTIwb3RoZXI9MjBwYWdlcz0yMHRoYW49MjBXZWJLaXQy
PTIwcGFnZXMuPTIwUGFydD89CiA9P1VURi04P3E/PTIwb2Y9MjA8cmRhcjovL3Byb2JsZW0vMTY0
NzMwNDU+PTIwVmlzaWJpbGl0eT0yMHN0YXRlPTIwY291bnRlPz0KID0/VVRGLTg/cT9ycz0yMGFy
ZT0yMG9mdGVuPTIwaW5jb3JyZWN0Pz0KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0
ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQK
ClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKU291cmNlL1dlYkNvcmU6CgpObyBuZXcgdGVz
dCBzaW5jZSBub3Qgd2ViIGV4cG9zZWQuCgpQYWdlIHRocm90dGxlcnMgd2VyZSBiZWluZyBjcmVh
dGVkIGZvciBTVkcgaW1hZ2VzIGFuZCBvdGhlciBwYWdlIGluc3RhbmNlcyB0aGF0CndlcmUgbm90
IGFjY3VyYXRlbHkgdHJhY2tpbmcgdGhlIHN0YXRlcyB0aGF0IGVuYWJsZSBhbmQgZGlzYWJsZSBw
YWdlIHRocm90dGxpbmcuCk1ha2UgdGhlIHRocm90dGxlciBhbiByZWZwdHIgYW5kIG9ubHkgaW5p
dGlhbGl6ZSBpdCBmb3IgV2ViS2l0Mi4KClRoaXMgYWxzbyBmaXhlcyBhbiBpbmVmZmljaWVuY3kg
d2hlcmUgd2Ugd291bGQgdGhyb3R0bGUgYSBuZXcgcGFnZSBvbiBjcmVhdGlvbiBiZWNhdXNlCndl
IGFzc3VtZWQgaXQgd2FzIHZpc2libGUgZXZlbiBpZiB0aGF0IHdhcyBub3QgdGhlIGNhc2UuCgoq
IFdlYkNvcmUuZXhwLmluOgoqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CihXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6IENoZWNrIHBhZ2UgdGhyb3R0bGVyIGV4
aXN0cy4KKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgooV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN0
YXJ0ZWQpOiBkaXR0bwoqIHBhZ2UvUGFnZS5jcHA6CihXZWJDb3JlOjpQYWdlOjpQYWdlKTogRG9u
4oCZdCBhdXRvbWF0aWNhbGx5IGluaXRpYWxpemUgcGFnZSB0aHJvdHRsZXIuCihXZWJDb3JlOjpQ
YWdlOjppbml0aWFsaXplUGFnZVRocm90dGxlcik6IENyZWF0ZSBwYWdlIHRocm90dGxlci4KKFdl
YkNvcmU6OlBhZ2U6OnNldFZpZXdTdGF0ZSk6IENoZWNrIHBhZ2UgdGhyb3R0bGVyIGV4aXN0cy4K
KiBwYWdlL1BhZ2UuaDoKKFdlYkNvcmU6OlBhZ2U6OnBhZ2VUaHJvdHRsZXIpOiBNYWtlIHRoZSBw
YWdlIHRocm90dGxlciBhIHJlZnB0ci4KKiBwYWdlL1BhZ2VUaHJvdHRsZXIuY3BwOgooV2ViQ29y
ZTo6UGFnZVRocm90dGxlcjo6Y3JlYXRlKTogQWRkIGNyZWF0ZSBtZXRob2QuCiogcGFnZS9QYWdl
VGhyb3R0bGVyLmg6CiogcGFnZS9TZXR0aW5ncy5jcHA6CihXZWJDb3JlOjpTZXR0aW5nczo6c2V0
SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0VuYWJsZWQpOiBDaGVjayBwYWdlIHRocm90dGxl
ciBleGlzdHMuCgpTb3VyY2UvV2ViS2l0MjoKClBhZ2UgdGhyb3R0bGVycyB3ZXJlIGJlaW5nIGNy
ZWF0ZWQgZm9yIFNWRyBpbWFnZXMgYW5kIG90aGVyIHBhZ2UgaW5zdGFuY2VzIHRoYXQKd2VyZSBu
b3QgYWNjdXJhdGVseSB0cmFja2luZyB0aGUgc3RhdGVzIHRoYXQgZW5hYmxlIGFuZCBkaXNhYmxl
IHBhZ2UgdGhyb3R0bGluZy4KTWFrZSB0aGUgdGhyb3R0bGVyIGFuIHJlZnB0ciBhbmQgb25seSBp
bml0aWFsaXplIGl0IGZvciBXZWJLaXQyLgoKVGhpcyBhbHNvIGZpeGVzICBhbiBpbmVmZmljaWVu
Y3kgd2hlcmUgd2Ugd291bGQgdGhyb3R0bGUgYSBuZXcgcGFnZSBvbiBjcmVhdGlvbiBiZWNhdXNl
CndlIGFzc3VtZWQgaXQgd2FzIHZpc2libGUgZXZlbiBpZiB0aGF0IHdhcyBub3QgdGhlIGNhc2Uu
CgoqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuY3BwOiBD
aGVjayBwYWdlIHRocm90dGxlciBleGlzdHMuCihXZWJLaXQ6Ok5QUnVudGltZU9iamVjdE1hcDo6
ZXZhbHVhdGUpOgoqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKFdlYktpdDo6V2Vi
UGFnZTo6V2ViUGFnZSk6IEluaXRpYWxpemUgcGFnZSB0aHJvdHRsZXIgZm9yIFdlYktpdDIgdmll
d3MuCihXZWJLaXQ6OldlYlBhZ2U6Om1vdXNlRXZlbnQpOiBDaGVjayBwYWdlIHRocm90dGxlciBl
eGlzdHMuCihXZWJLaXQ6OldlYlBhZ2U6OndoZWVsRXZlbnQpOiBkaXR0bwooV2ViS2l0OjpXZWJQ
YWdlOjprZXlFdmVudCk6IGRpdHRvCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAzMyArKysrKysrKysrKysrKysrKysrKysrCiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbiAgICAgICAgICAgICAgICAgICAgICB8ICAxICsKIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgICAgICAgICAgIHwgIDQgKy0tCiBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwICAgICAgICAgICAgICB8ICA0ICst
LQogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgfCAg
OSArKysrLS0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgIDUgKystLQogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVGhyb3R0bGVyLmNwcCAgICAg
ICAgICAgICAgfCAgOSArKysrLS0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVRocm90dGxlci5o
ICAgICAgICAgICAgICAgIHwgIDcgKysrLS0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
Y3BwICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjIgKysrKysrKysrKysrKysrCiAuLi4vUGx1Z2lu
cy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuY3BwICAgICAgICB8ICA0ICstLQogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwICAgICAgfCAxMiArKysrKy0t
LQogMTIgZmlsZXMgY2hhbmdlZCwgOTMgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGQ5ZTNkNGUuLjdmYmQ1YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBA
QAorMjAxNC0wNC0xMCAgU3RlcGhhbmllIExld2lzICA8c2xld2lzQGFwcGxlLmNvbT4KKworICAg
ICAgICBXZSBzaG91bGRu4oCZdCBjcmVhdGUgcGFnZSB0aHJvdHRsZXJzIGZvciBvdGhlciBwYWdl
cyB0aGFuIFdlYktpdDIgcGFnZXMuCisgICAgICAgIFBhcnQgb2YgPHJkYXI6Ly9wcm9ibGVtLzE2
NDczMDQ1PiBWaXNpYmlsaXR5IHN0YXRlIGNvdW50ZXJzIGFyZSBvZnRlbiBpbmNvcnJlY3QKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVz
dCBzaW5jZSBub3Qgd2ViIGV4cG9zZWQuCisKKyAgICAgICAgUGFnZSB0aHJvdHRsZXJzIHdlcmUg
YmVpbmcgY3JlYXRlZCBmb3IgU1ZHIGltYWdlcyBhbmQgb3RoZXIgcGFnZSBpbnN0YW5jZXMgdGhh
dAorICAgICAgICB3ZXJlIG5vdCBhY2N1cmF0ZWx5IHRyYWNraW5nIHRoZSBzdGF0ZXMgdGhhdCBl
bmFibGUgYW5kIGRpc2FibGUgcGFnZSB0aHJvdHRsaW5nLgorICAgICAgICBNYWtlIHRoZSB0aHJv
dHRsZXIgYW4gcmVmcHRyIGFuZCBvbmx5IGluaXRpYWxpemUgaXQgZm9yIFdlYktpdDIuCisKKyAg
ICAgICAgVGhpcyBhbHNvIGZpeGVzIGFuIGluZWZmaWNpZW5jeSB3aGVyZSB3ZSB3b3VsZCB0aHJv
dHRsZSBhIG5ldyBwYWdlIG9uIGNyZWF0aW9uIGJlY2F1c2UgCisgICAgICAgIHdlIGFzc3VtZWQg
aXQgd2FzIHZpc2libGUgZXZlbiBpZiB0aGF0IHdhcyBub3QgdGhlIGNhc2UuCisKKyAgICAgICAg
KiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOiBDaGVj
ayBwYWdlIHRocm90dGxlciBleGlzdHMuCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzdGFydGVkKTogZGl0dG8KKyAgICAg
ICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6IERvbuKA
mXQgYXV0b21hdGljYWxseSBpbml0aWFsaXplIHBhZ2UgdGhyb3R0bGVyLgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZTo6aW5pdGlhbGl6ZVBhZ2VUaHJvdHRsZXIpOiBDcmVhdGUgcGFnZSB0aHJvdHRs
ZXIuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRWaWV3U3RhdGUpOiBDaGVjayBwYWdlIHRo
cm90dGxlciBleGlzdHMuCisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlOjpwYWdlVGhyb3R0bGVyKTogTWFrZSB0aGUgcGFnZSB0aHJvdHRsZXIgYSByZWZwdHIu
CisgICAgICAgICogcGFnZS9QYWdlVGhyb3R0bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2VUaHJvdHRsZXI6OmNyZWF0ZSk6IEFkZCBjcmVhdGUgbWV0aG9kLgorICAgICAgICAqIHBhZ2Uv
UGFnZVRocm90dGxlci5oOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOiAKKyAgICAgICAg
KFdlYkNvcmU6OlNldHRpbmdzOjpzZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nRW5hYmxl
ZCk6IENoZWNrIHBhZ2UgdGhyb3R0bGVyIGV4aXN0cy4KKwogMjAxNC0wNC0wNyAgTWFydGluIFJv
Ymluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgZmFzdC9jc3MzLXRleHQv
Y3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzcy5odG1sIGZhaWxz
IG9uIEdUSwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBmMjlmMTlhLi5hMTczYjRjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgpAQCAtMTA2NCw2ICsxMDY0LDcgQEAgX19aTjdXZWJDb3JlNFBhZ2UyMXJl
c3VtZUFuaW1hdGluZ0ltYWdlc0V2CiBfX1pON1dlYkNvcmU0UGFnZTIybm9uRmFzdFNjcm9sbGFi
bGVSZWN0c0VQS05TXzVGcmFtZUUKIF9fWk43V2ViQ29yZTRQYWdlMjJyZW1vdmVMYXlvdXRNaWxl
c3RvbmVzRWoKIF9fWk43V2ViQ29yZTRQYWdlMjNjbGVhclVuZG9SZWRvT3BlcmF0aW9uc0V2Citf
X1pON1dlYkNvcmU0UGFnZTIzaW5pdGlhbGl6ZVBhZ2VUaHJvdHRsZXJFdgogX19aTjdXZWJDb3Jl
NFBhZ2UyM2ludmFsaWRhdGVTdHlsZXNGb3JMaW5rRXkKIF9fWk43V2ViQ29yZTRQYWdlMjRmaW5k
U3RyaW5nTWF0Y2hpbmdSYW5nZXNFUktOM1dURjZTdHJpbmdFaGlQTlMxXzZWZWN0b3JJTlMxXzZS
ZWZQdHJJTlNfNVJhbmdlRUVFTG0wRU5TMV8xNUNyYXNoT25PdmVyZmxvd0VFRVJpCiBfX1pON1dl
YkNvcmU0UGFnZTI0cmVzdW1lU2NyaXB0ZWRBbmltYXRpb25zRXYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDFlNzg1ZDkuLjEyMTg2NjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNDQ1MCw4ICs0NDUwLDggQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVQbGF5U3RhdGUoKQogCiAgICAgICAgIGlmIChoYXNN
ZWRpYUNvbnRyb2xzKCkpCiAgICAgICAgICAgICBtZWRpYUNvbnRyb2xzKCktPnBsYXliYWNrU3Rh
cnRlZCgpOwotICAgICAgICBpZiAoZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAgICAgICBtX2Fj
dGl2aXR5VG9rZW4gPSBkb2N1bWVudCgpLnBhZ2UoKS0+cGFnZVRocm90dGxlcigpLm1lZGlhQWN0
aXZpdHlUb2tlbigpOworICAgICAgICBpZiAoZG9jdW1lbnQoKS5wYWdlKCkgJiYgZG9jdW1lbnQo
KS5wYWdlKCktPnBhZ2VUaHJvdHRsZXIoKSkKKyAgICAgICAgICAgIG1fYWN0aXZpdHlUb2tlbiA9
IGRvY3VtZW50KCkucGFnZSgpLT5wYWdlVGhyb3R0bGVyKCktPm1lZGlhQWN0aXZpdHlUb2tlbigp
OwogCiAgICAgICAgIHN0YXJ0UGxheWJhY2tQcm9ncmVzc1RpbWVyKCk7CiAgICAgICAgIG1fcGxh
eWluZyA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAzNmQ2
NWE0Li5kYTMyMDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTEx
NDUsOCArMTE0NSw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNvbXBsZXRlZCgpCiAKIHZvaWQgRnJh
bWVMb2FkZXI6OnN0YXJ0ZWQoKQogewotICAgIGlmIChtX2ZyYW1lLnBhZ2UoKSkKLSAgICAgICAg
bV9hY3Rpdml0eUFzc2VydGlvbiA9IG1fZnJhbWUucGFnZSgpLT5wYWdlVGhyb3R0bGVyKCkucGFn
ZUxvYWRBY3Rpdml0eVRva2VuKCk7CisgICAgaWYgKG1fZnJhbWUucGFnZSgpICYmIG1fZnJhbWUu
cGFnZSgpLT5wYWdlVGhyb3R0bGVyKCkpCisgICAgICAgIG1fYWN0aXZpdHlBc3NlcnRpb24gPSBt
X2ZyYW1lLnBhZ2UoKS0+cGFnZVRocm90dGxlcigpLT5wYWdlTG9hZEFjdGl2aXR5VG9rZW4oKTsK
ICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICZtX2ZyYW1lOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+
dHJlZSgpLnBhcmVudCgpKQogICAgICAgICBmcmFtZS0+bG9hZGVyKCkubV9pc0NvbXBsZXRlID0g
ZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCAyNWY3NjdhLi44MWM3ZjY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKQEAgLTE4NCw3ICsxODQsNiBAQCBQYWdlOjpQYWdlKFBhZ2VDbGllbnRzJiBw
YWdlQ2xpZW50cykKICNlbmRpZgogICAgICwgbV9hbHRlcm5hdGl2ZVRleHRDbGllbnQocGFnZUNs
aWVudHMuYWx0ZXJuYXRpdmVUZXh0Q2xpZW50KQogICAgICwgbV9zY3JpcHRlZEFuaW1hdGlvbnNT
dXNwZW5kZWQoZmFsc2UpCi0gICAgLCBtX3BhZ2VUaHJvdHRsZXIoKnRoaXMsIFBhZ2VJbml0aWFs
Vmlld1N0YXRlKQogICAgICwgbV9jb25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8UGFnZUNvbnNvbGU+
KCp0aGlzKSkKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKICAgICAsIG1faW5zcGVjdG9y
RGVidWdnYWJsZShzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VEZWJ1Z2dhYmxlPigqdGhpcykpCkBAIC0x
MTExLDYgKzExMTAsMTEgQEAgdm9pZCBQYWdlOjpyZXN1bWVBbmltYXRpbmdJbWFnZXMoKQogICAg
ICAgICAgICAgcmVuZGVyVmlldy0+cmVzdW1lUGF1c2VkSW1hZ2VBbmltYXRpb25zSWZOZWVkZWQo
KTsKICAgICB9CiB9CisgICAgCit2b2lkIFBhZ2U6OmluaXRpYWxpemVQYWdlVGhyb3R0bGVyKCkK
K3sKKyAgICBtX3BhZ2VUaHJvdHRsZXIgPSBQYWdlVGhyb3R0bGVyOjpjcmVhdGUoKnRoaXMsIG1f
dmlld1N0YXRlKTsKK30KIAogdm9pZCBQYWdlOjpzZXRWaWV3U3RhdGUoVmlld1N0YXRlOjpGbGFn
cyB2aWV3U3RhdGUpCiB7CkBAIC0xMTIwLDcgKzExMjQsOCBAQCB2b2lkIFBhZ2U6OnNldFZpZXdT
dGF0ZShWaWV3U3RhdGU6OkZsYWdzIHZpZXdTdGF0ZSkKIAogICAgIG1fdmlld1N0YXRlID0gdmll
d1N0YXRlOwogICAgIG1fZm9jdXNDb250cm9sbGVyLT5zZXRWaWV3U3RhdGUodmlld1N0YXRlKTsK
LSAgICBtX3BhZ2VUaHJvdHRsZXIuc2V0Vmlld1N0YXRlKHZpZXdTdGF0ZSk7CisgICAgaWYgKG1f
cGFnZVRocm90dGxlcikKKyAgICAgICAgbV9wYWdlVGhyb3R0bGVyLT5zZXRWaWV3U3RhdGUodmll
d1N0YXRlKTsKIAogICAgIGlmIChjaGFuZ2VkICYgVmlld1N0YXRlOjpJc1Zpc2libGUpCiAgICAg
ICAgIHNldElzVmlzaWJsZUludGVybmFsKHZpZXdTdGF0ZSAmIFZpZXdTdGF0ZTo6SXNWaXNpYmxl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmgKaW5kZXggNWMyMmEzYy4uMjY3ZjFjNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAg
LTM4NCw3ICszODQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzYXdNZWRpYUVuZ2luZShjb25zdCBT
dHJpbmcmIGVuZ2luZU5hbWUpOwogICAgIHZvaWQgcmVzZXRTZWVuTWVkaWFFbmdpbmVzKCk7CiAK
LSAgICBQYWdlVGhyb3R0bGVyJiBwYWdlVGhyb3R0bGVyKCkgeyByZXR1cm4gbV9wYWdlVGhyb3R0
bGVyOyB9CisgICAgUGFnZVRocm90dGxlciogcGFnZVRocm90dGxlcigpIHsgcmV0dXJuIG1fcGFn
ZVRocm90dGxlci5nZXQoKTsgfQorICAgIHZvaWQgaW5pdGlhbGl6ZVBhZ2VUaHJvdHRsZXIoKTsK
IAogICAgIFBhZ2VDb25zb2xlJiBjb25zb2xlKCkgeyByZXR1cm4gKm1fY29uc29sZTsgfQogCkBA
IC01NDEsNyArNTQyLDcgQEAgcHJpdmF0ZToKICAgICBBbHRlcm5hdGl2ZVRleHRDbGllbnQqIG1f
YWx0ZXJuYXRpdmVUZXh0Q2xpZW50OwogCiAgICAgYm9vbCBtX3NjcmlwdGVkQW5pbWF0aW9uc1N1
c3BlbmRlZDsKLSAgICBQYWdlVGhyb3R0bGVyIG1fcGFnZVRocm90dGxlcjsKKyAgICBSZWZQdHI8
UGFnZVRocm90dGxlcj4gbV9wYWdlVGhyb3R0bGVyOwogICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0
cjxQYWdlQ29uc29sZT4gbV9jb25zb2xlOwogCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VUaHJvdHRsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlVGhyb3R0bGVyLmNwcAppbmRleCA5NWJmZjg5Li5iZWIwYTZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VUaHJvdHRsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVRocm90dGxlci5jcHAKQEAgLTMyLDkgKzMyLDE1IEBA
CiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VBY3Rpdml0eUFzc2VydGlvblRva2Vu
LmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitQYXNzUmVmUHRyPFBhZ2VUaHJvdHRs
ZXI+IFBhZ2VUaHJvdHRsZXI6OmNyZWF0ZShQYWdlJiBwYWdlLCBWaWV3U3RhdGU6OkZsYWdzIHZp
ZXdTdGF0ZSkKK3sKKyAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQYWdlVGhyb3R0bGVyKHBhZ2Us
IHZpZXdTdGF0ZSkpOworfQorICAgIAogUGFnZVRocm90dGxlcjo6UGFnZVRocm90dGxlcihQYWdl
JiBwYWdlLCBWaWV3U3RhdGU6OkZsYWdzIHZpZXdTdGF0ZSkKICAgICA6IG1fcGFnZShwYWdlKQog
ICAgICwgbV92aWV3U3RhdGUodmlld1N0YXRlKQpAQCAtOTAsMTEgKzk2LDEwIEBAIHZvaWQgUGFn
ZVRocm90dGxlcjo6c2V0Vmlld1N0YXRlKFZpZXdTdGF0ZTo6RmxhZ3Mgdmlld1N0YXRlKQogewog
ICAgIFZpZXdTdGF0ZTo6RmxhZ3MgY2hhbmdlZCA9IG1fdmlld1N0YXRlIF4gdmlld1N0YXRlOwog
ICAgIG1fdmlld1N0YXRlID0gdmlld1N0YXRlOwotCiAgICAgaWYgKGNoYW5nZWQgJiBWaWV3U3Rh
dGU6OklzVmlzdWFsbHlJZGxlKQogICAgICAgICB1cGRhdGVIeXN0ZXJlc2lzKCk7CiB9Ci0KKyAg
ICAKIHZvaWQgUGFnZVRocm90dGxlcjo6c3RhcnRlZCgpCiB7CiAgICAgbV9wYWdlLnNldFRpbWVy
VGhyb3R0bGluZ0VuYWJsZWQoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlVGhyb3R0bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VUaHJvdHRsZXIuaApp
bmRleCA5YjRmOWQyLi5lNzczYWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VUaHJvdHRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VUaHJvdHRsZXIuaApA
QCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3Rm
L093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC00MCwxMCArNDEsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBQYWdlOwog
Y2xhc3MgUGFnZUFjdGl2aXR5QXNzZXJ0aW9uVG9rZW47CiAKLWNsYXNzIFBhZ2VUaHJvdHRsZXIg
eworY2xhc3MgUGFnZVRocm90dGxlciA6IHB1YmxpYyBSZWZDb3VudGVkPFBhZ2VUaHJvdHRsZXI+
IHsKIHB1YmxpYzoKLSAgICBQYWdlVGhyb3R0bGVyKFBhZ2UmLCBWaWV3U3RhdGU6OkZsYWdzKTsK
LQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBhZ2VUaHJvdHRsZXI+IGNyZWF0ZShQYWdlJiwgVmll
d1N0YXRlOjpGbGFncyk7CiAgICAgdm9pZCBzZXRWaWV3U3RhdGUoVmlld1N0YXRlOjpGbGFncyk7
CiAKICAgICB2b2lkIGRpZFJlY2VpdmVVc2VySW5wdXQoKSB7IG1faHlzdGVyZXNpcy5pbXB1bHNl
KCk7IH0KQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgogICAgIHZvaWQgaGlkZGVuUGFnZURPTVRp
bWVyVGhyb3R0bGluZ1N0YXRlQ2hhbmdlZCgpOwogCiBwcml2YXRlOgorICAgIFBhZ2VUaHJvdHRs
ZXIoUGFnZSYsIFZpZXdTdGF0ZTo6RmxhZ3MpOwogICAgIGZyaWVuZCBjbGFzcyBQYWdlQWN0aXZp
dHlBc3NlcnRpb25Ub2tlbjsKICAgICBXZWFrUHRyPFBhZ2VUaHJvdHRsZXI+IHdlYWtQdHIoKSB7
IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQogICAgIHZvaWQgaW5j
cmVtZW50QWN0aXZpdHlDb3VudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCBmZWRh
ZWMxLi5kNjZiZGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtNjU3LDcgKzY1Nyw4
IEBAIHZvaWQgU2V0dGluZ3M6OnNldEhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdFbmFibGVk
KGJvb2wgZmxhZykKICAgICBpZiAobV9oaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nRW5hYmxl
ZCA9PSBmbGFnKQogICAgICAgICByZXR1cm47CiAgICAgbV9oaWRkZW5QYWdlRE9NVGltZXJUaHJv
dHRsaW5nRW5hYmxlZCA9IGZsYWc7Ci0gICAgbV9wYWdlLT5wYWdlVGhyb3R0bGVyKCkuaGlkZGVu
UGFnZURPTVRpbWVyVGhyb3R0bGluZ1N0YXRlQ2hhbmdlZCgpOworICAgIGlmIChtX3BhZ2UtPnBh
Z2VUaHJvdHRsZXIoKSkKKyAgICBtX3BhZ2UtPnBhZ2VUaHJvdHRsZXIoKS0+aGlkZGVuUGFnZURP
TVRpbWVyVGhyb3R0bGluZ1N0YXRlQ2hhbmdlZCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCAzNzA0ZWI0Li5hYjAzMzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTQtMDQt
MTAgIFN0ZXBoYW5pZSBMZXdpcyAgPHNsZXdpc0BhcHBsZS5jb20+CisKKyAgICAgICAgV2Ugc2hv
dWxkbuKAmXQgY3JlYXRlIHBhZ2UgdGhyb3R0bGVycyBmb3Igb3RoZXIgcGFnZXMgdGhhbiBXZWJL
aXQyIHBhZ2VzLgorICAgICAgICBQYXJ0IG9mIDxyZGFyOi8vcHJvYmxlbS8xNjQ3MzA0NT4gVmlz
aWJpbGl0eSBzdGF0ZSBjb3VudGVycyBhcmUgb2Z0ZW4gaW5jb3JyZWN0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFnZSB0aHJvdHRsZXJzIHdlcmUg
YmVpbmcgY3JlYXRlZCBmb3IgU1ZHIGltYWdlcyBhbmQgb3RoZXIgcGFnZSBpbnN0YW5jZXMgdGhh
dAorICAgICAgICB3ZXJlIG5vdCBhY2N1cmF0ZWx5IHRyYWNraW5nIHRoZSBzdGF0ZXMgdGhhdCBl
bmFibGUgYW5kIGRpc2FibGUgcGFnZSB0aHJvdHRsaW5nLgorICAgICAgICBNYWtlIHRoZSB0aHJv
dHRsZXIgYW4gcmVmcHRyIGFuZCBvbmx5IGluaXRpYWxpemUgaXQgZm9yIFdlYktpdDIuCisKKyAg
ICAgICAgVGhpcyBhbHNvIGZpeGVzICBhbiBpbmVmZmljaWVuY3kgd2hlcmUgd2Ugd291bGQgdGhy
b3R0bGUgYSBuZXcgcGFnZSBvbiBjcmVhdGlvbiBiZWNhdXNlIAorICAgICAgICB3ZSBhc3N1bWVk
IGl0IHdhcyB2aXNpYmxlIGV2ZW4gaWYgdGhhdCB3YXMgbm90IHRoZSBjYXNlLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5jcHA6IENo
ZWNrIHBhZ2UgdGhyb3R0bGVyIGV4aXN0cy4KKyAgICAgICAgKFdlYktpdDo6TlBSdW50aW1lT2Jq
ZWN0TWFwOjpldmFsdWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwOiAKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6IEluaXRpYWxpemUgcGFn
ZSB0aHJvdHRsZXIgZm9yIFdlYktpdDIgdmlld3MuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
Om1vdXNlRXZlbnQpOiBDaGVjayBwYWdlIHRocm90dGxlciBleGlzdHMuCisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OndoZWVsRXZlbnQpOiBkaXR0bworICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjprZXlFdmVudCk6IGRpdHRvCisKIDIwMTQtMDQtMDcgIFN0ZXBoYW5pZSBMZXdpcyAgPHNsZXdp
c0BhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggaW4gY29tLmFwcGxlLldlYktpdC5QbHVnaW4u
RGV2ZWxvcG1lbnQgYXQgY29tLmFwcGxlLldlYktpdDI6IFdlYktpdDo6UGx1Z2luQ29udHJvbGxl
clByb3h5OjpwbHVnaW5JbnN0YW5jZUlECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFwLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuY3Bw
CmluZGV4IDAzNTY1NmMuLjVlZjUxOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAu
Y3BwCkBAIC0xOTMsOCArMTkzLDggQEAgYm9vbCBOUFJ1bnRpbWVPYmplY3RNYXA6OmV2YWx1YXRl
KE5QT2JqZWN0KiBucE9iamVjdCwgY29uc3QgU3RyaW5nJiBzY3JpcHRTdHJpbmcKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBpZiAobV9wbHVnaW5WaWV3ICYmICFtX3BsdWdpblZpZXctPmlzQmVp
bmdEZXN0cm95ZWQoKSkgewogICAgICAgICBpZiAoUGFnZSogcGFnZSA9IG1fcGx1Z2luVmlldy0+
ZnJhbWUoKS0+cGFnZSgpKSB7Ci0gICAgICAgICAgICBpZiAobV9wbHVnaW5WaWV3LT5hdWRpb0hh
cmR3YXJlQWN0aXZpdHkoKSAhPSBXZWJDb3JlOjpBdWRpb0hhcmR3YXJlQWN0aXZpdHlUeXBlOjpJ
c0luYWN0aXZlKQotICAgICAgICAgICAgICAgIHBhZ2UtPnBhZ2VUaHJvdHRsZXIoKS5wbHVnaW5E
aWRFdmFsdWF0ZVdoaWxlQXVkaW9Jc1BsYXlpbmcoKTsKKyAgICAgICAgICAgIGlmIChtX3BsdWdp
blZpZXctPmF1ZGlvSGFyZHdhcmVBY3Rpdml0eSgpICE9IFdlYkNvcmU6OkF1ZGlvSGFyZHdhcmVB
Y3Rpdml0eVR5cGU6OklzSW5hY3RpdmUgJiYgcGFnZS0+cGFnZVRocm90dGxlcigpKQorICAgICAg
ICAgICAgICAgIHBhZ2UtPnBhZ2VUaHJvdHRsZXIoKS0+cGx1Z2luRGlkRXZhbHVhdGVXaGlsZUF1
ZGlvSXNQbGF5aW5nKCk7CiAgICAgICAgIH0KICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAwMjI2OThmLi45YjcxZmVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC00MDEsNyArNDAxLDggQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgbV9wYWdlLT5zZXRW
aWV3U3RhdGUobV92aWV3U3RhdGUpOwogICAgIGlmICghaXNWaXNpYmxlKCkpCiAgICAgICAgIG1f
cGFnZS0+c2V0SXNQcmVyZW5kZXIoKTsKLQorICAgIG1fcGFnZS0+aW5pdGlhbGl6ZVBhZ2VUaHJv
dHRsZXIoKTsKKyAgICAKICAgICB1cGRhdGVJc0luV2luZG93KHRydWUpOwogCiAgICAgc2V0TWlu
aW11bUxheW91dFNpemUocGFyYW1ldGVycy5taW5pbXVtTGF5b3V0U2l6ZSk7CkBAIC0xNzUyLDcg
KzE3NTMsOCBAQCBzdGF0aWMgYm9vbCBoYW5kbGVNb3VzZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZl
bnQmIG1vdXNlRXZlbnQsIFdlYlBhZ2UqIHBhZ2UsIGJvbwogCiB2b2lkIFdlYlBhZ2U6Om1vdXNl
RXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYgbW91c2VFdmVudCkKIHsKLSAgICBtX3BhZ2UtPnBh
Z2VUaHJvdHRsZXIoKS5kaWRSZWNlaXZlVXNlcklucHV0KCk7CisgICAgaWYgKG1fcGFnZS0+cGFn
ZVRocm90dGxlcigpKQorICAgICAgICBtX3BhZ2UtPnBhZ2VUaHJvdHRsZXIoKS0+ZGlkUmVjZWl2
ZVVzZXJJbnB1dCgpOwogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgLy8gRG9uJ3Qg
dHJ5IHRvIGhhbmRsZSBhbnkgcGVuZGluZyBtb3VzZSBldmVudHMgaWYgYSBjb250ZXh0IG1lbnUg
aXMgc2hvd2luZy4KQEAgLTE4MzQsNyArMTgzNiw4IEBAIHN0YXRpYyBib29sIGhhbmRsZVdoZWVs
RXZlbnQoY29uc3QgV2ViV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgUGFnZSogcGFnZSkKIAogdm9p
ZCBXZWJQYWdlOjp3aGVlbEV2ZW50KGNvbnN0IFdlYldoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7
Ci0gICAgbV9wYWdlLT5wYWdlVGhyb3R0bGVyKCkuZGlkUmVjZWl2ZVVzZXJJbnB1dCgpOworICAg
IGlmKG1fcGFnZS0+cGFnZVRocm90dGxlcigpKQorICAgICAgICBtX3BhZ2UtPnBhZ2VUaHJvdHRs
ZXIoKS0+ZGlkUmVjZWl2ZVVzZXJJbnB1dCgpOwogCiAgICAgYm9vbCBoYW5kbGVkID0gZmFsc2U7
CiAKQEAgLTE4NjUsNyArMTg2OCw4IEBAIHN0YXRpYyBib29sIGhhbmRsZUtleUV2ZW50KGNvbnN0
IFdlYktleWJvYXJkRXZlbnQmIGtleWJvYXJkRXZlbnQsIFBhZ2UqIHBhZ2UpCiAKIHZvaWQgV2Vi
UGFnZTo6a2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYga2V5Ym9hcmRFdmVudCkKIHsK
LSAgICBtX3BhZ2UtPnBhZ2VUaHJvdHRsZXIoKS5kaWRSZWNlaXZlVXNlcklucHV0KCk7CisgICAg
aWYgKG1fcGFnZS0+cGFnZVRocm90dGxlcigpKQorICAgICAgICBtX3BhZ2UtPnBhZ2VUaHJvdHRs
ZXIoKS0+ZGlkUmVjZWl2ZVVzZXJJbnB1dCgpOwogCiAgICAgYm9vbCBoYW5kbGVkID0gZmFsc2U7
CiAKLS0gCjEuOC41LjIgKEFwcGxlIEdpdC00OCkKCg==
</data>
<flag name="review"
          id="253767"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229500</attachid>
            <date>2014-04-16 17:14:32 -0700</date>
            <delta_ts>2014-04-16 17:18:09 -0700</delta_ts>
            <desc>patch with unique ptr</desc>
            <filename>0001-We-shouldn-t-create-page-throttlers-for-other-pages-.patch</filename>
            <type>text/plain</type>
            <size>16048</size>
            <attacher name="Stephanie Lewis">slewis</attacher>
            
              <data encoding="base64">RnJvbSBlN2QzNjhkMjMzYWEyYzA3NDFhYzkxOWRkZWE2YzUyNDRmYjYyN2Y0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVwaGFuaWUgTGV3aXMgPHNsZXdpc0BhcHBsZS5jb20+CkRh
dGU6IFRodSwgMTAgQXByIDIwMTQgMTQ6NTQ6MTMgLTA3MDAKU3ViamVjdDogW1BBVENIIDEvMl0g
PT9VVEYtOD9xP1dlPTIwc2hvdWxkbj1FMj04MD05OXQ9MjBjcmVhdGU9MjBwYWdlPTIwdGg/PQog
PT9VVEYtOD9xP3JvdHRsZXJzPTIwZm9yPTIwb3RoZXI9MjBwYWdlcz0yMHRoYW49MjBXZWJLaXQy
PTIwcGFnZXMuPTIwUGFydD89CiA9P1VURi04P3E/PTIwb2Y9MjA8cmRhcjovL3Byb2JsZW0vMTY0
NzMwNDU+PTIwVmlzaWJpbGl0eT0yMHN0YXRlPTIwY291bnRlPz0KID0/VVRGLTg/cT9ycz0yMGFy
ZT0yMG9mdGVuPTIwaW5jb3JyZWN0Pz0KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0
ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQK
ClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKU291cmNlL1dlYkNvcmU6CgpObyBuZXcgdGVz
dCBzaW5jZSBub3Qgd2ViIGV4cG9zZWQuCgpQYWdlIHRocm90dGxlcnMgd2VyZSBiZWluZyBjcmVh
dGVkIGZvciBTVkcgaW1hZ2VzIGFuZCBvdGhlciBwYWdlIGluc3RhbmNlcyB0aGF0CndlcmUgbm90
IGFjY3VyYXRlbHkgdHJhY2tpbmcgdGhlIHN0YXRlcyB0aGF0IGVuYWJsZSBhbmQgZGlzYWJsZSBw
YWdlIHRocm90dGxpbmcuCk1ha2UgdGhlIHRocm90dGxlciBhbiByZWZwdHIgYW5kIG9ubHkgaW5p
dGlhbGl6ZSBpdCBmb3IgV2ViS2l0Mi4KClRoaXMgYWxzbyBmaXhlcyBhbiBpbmVmZmljaWVuY3kg
d2hlcmUgd2Ugd291bGQgdGhyb3R0bGUgYSBuZXcgcGFnZSBvbiBjcmVhdGlvbiBiZWNhdXNlCndl
IGFzc3VtZWQgaXQgd2FzIHZpc2libGUgZXZlbiBpZiB0aGF0IHdhcyBub3QgdGhlIGNhc2UuCgoq
IFdlYkNvcmUuZXhwLmluOgoqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CihXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6IENoZWNrIHBhZ2UgdGhyb3R0bGVyIGV4
aXN0cy4KKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgooV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN0
YXJ0ZWQpOiBkaXR0bwoqIHBhZ2UvUGFnZS5jcHA6CihXZWJDb3JlOjpQYWdlOjpQYWdlKTogRG9u
4oCZdCBhdXRvbWF0aWNhbGx5IGluaXRpYWxpemUgcGFnZSB0aHJvdHRsZXIuCihXZWJDb3JlOjpQ
YWdlOjppbml0aWFsaXplUGFnZVRocm90dGxlcik6IENyZWF0ZSBwYWdlIHRocm90dGxlci4KKFdl
YkNvcmU6OlBhZ2U6OnNldFZpZXdTdGF0ZSk6IENoZWNrIHBhZ2UgdGhyb3R0bGVyIGV4aXN0cy4K
KiBwYWdlL1BhZ2UuaDoKKFdlYkNvcmU6OlBhZ2U6OnBhZ2VUaHJvdHRsZXIpOiBNYWtlIHRoZSBw
YWdlIHRocm90dGxlciBhIHJlZnB0ci4KKiBwYWdlL1BhZ2VUaHJvdHRsZXIuY3BwOgooV2ViQ29y
ZTo6UGFnZVRocm90dGxlcjo6Y3JlYXRlKTogQWRkIGNyZWF0ZSBtZXRob2QuCiogcGFnZS9QYWdl
VGhyb3R0bGVyLmg6CiogcGFnZS9TZXR0aW5ncy5jcHA6CihXZWJDb3JlOjpTZXR0aW5nczo6c2V0
SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0VuYWJsZWQpOiBDaGVjayBwYWdlIHRocm90dGxl
ciBleGlzdHMuCgpTb3VyY2UvV2ViS2l0MjoKClBhZ2UgdGhyb3R0bGVycyB3ZXJlIGJlaW5nIGNy
ZWF0ZWQgZm9yIFNWRyBpbWFnZXMgYW5kIG90aGVyIHBhZ2UgaW5zdGFuY2VzIHRoYXQKd2VyZSBu
b3QgYWNjdXJhdGVseSB0cmFja2luZyB0aGUgc3RhdGVzIHRoYXQgZW5hYmxlIGFuZCBkaXNhYmxl
IHBhZ2UgdGhyb3R0bGluZy4KTWFrZSB0aGUgdGhyb3R0bGVyIGFuIHJlZnB0ciBhbmQgb25seSBp
bml0aWFsaXplIGl0IGZvciBXZWJLaXQyLgoKVGhpcyBhbHNvIGZpeGVzICBhbiBpbmVmZmljaWVu
Y3kgd2hlcmUgd2Ugd291bGQgdGhyb3R0bGUgYSBuZXcgcGFnZSBvbiBjcmVhdGlvbiBiZWNhdXNl
CndlIGFzc3VtZWQgaXQgd2FzIHZpc2libGUgZXZlbiBpZiB0aGF0IHdhcyBub3QgdGhlIGNhc2Uu
CgoqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuY3BwOiBD
aGVjayBwYWdlIHRocm90dGxlciBleGlzdHMuCihXZWJLaXQ6Ok5QUnVudGltZU9iamVjdE1hcDo6
ZXZhbHVhdGUpOgoqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKFdlYktpdDo6V2Vi
UGFnZTo6V2ViUGFnZSk6IEluaXRpYWxpemUgcGFnZSB0aHJvdHRsZXIgZm9yIFdlYktpdDIgdmll
d3MuCihXZWJLaXQ6OldlYlBhZ2U6Om1vdXNlRXZlbnQpOiBDaGVjayBwYWdlIHRocm90dGxlciBl
eGlzdHMuCihXZWJLaXQ6OldlYlBhZ2U6OndoZWVsRXZlbnQpOiBkaXR0bwooV2ViS2l0OjpXZWJQ
YWdlOjprZXlFdmVudCk6IGRpdHRvCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAzMyArKysrKysrKysrKysrKysrKysrKysrCiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbiAgICAgICAgICAgICAgICAgICAgICB8ICAxICsKIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgICAgICAgICAgIHwgIDQgKy0tCiBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwICAgICAgICAgICAgICB8ICA0ICst
LQogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgfCAg
OSArKysrLS0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgIDUgKystLQogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVGhyb3R0bGVyLmNwcCAgICAg
ICAgICAgICAgfCAgOSArKysrLS0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVRocm90dGxlci5o
ICAgICAgICAgICAgICAgIHwgIDcgKysrLS0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
Y3BwICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjIgKysrKysrKysrKysrKysrCiAuLi4vUGx1Z2lu
cy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuY3BwICAgICAgICB8ICA0ICstLQogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwICAgICAgfCAxMiArKysrKy0t
LQogMTIgZmlsZXMgY2hhbmdlZCwgOTMgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGQ5ZTNkNGUuLjdmYmQ1YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBA
QAorMjAxNC0wNC0xMCAgU3RlcGhhbmllIExld2lzICA8c2xld2lzQGFwcGxlLmNvbT4KKworICAg
ICAgICBXZSBzaG91bGRu4oCZdCBjcmVhdGUgcGFnZSB0aHJvdHRsZXJzIGZvciBvdGhlciBwYWdl
cyB0aGFuIFdlYktpdDIgcGFnZXMuCisgICAgICAgIFBhcnQgb2YgPHJkYXI6Ly9wcm9ibGVtLzE2
NDczMDQ1PiBWaXNpYmlsaXR5IHN0YXRlIGNvdW50ZXJzIGFyZSBvZnRlbiBpbmNvcnJlY3QKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVz
dCBzaW5jZSBub3Qgd2ViIGV4cG9zZWQuCisKKyAgICAgICAgUGFnZSB0aHJvdHRsZXJzIHdlcmUg
YmVpbmcgY3JlYXRlZCBmb3IgU1ZHIGltYWdlcyBhbmQgb3RoZXIgcGFnZSBpbnN0YW5jZXMgdGhh
dAorICAgICAgICB3ZXJlIG5vdCBhY2N1cmF0ZWx5IHRyYWNraW5nIHRoZSBzdGF0ZXMgdGhhdCBl
bmFibGUgYW5kIGRpc2FibGUgcGFnZSB0aHJvdHRsaW5nLgorICAgICAgICBNYWtlIHRoZSB0aHJv
dHRsZXIgYW4gcmVmcHRyIGFuZCBvbmx5IGluaXRpYWxpemUgaXQgZm9yIFdlYktpdDIuCisKKyAg
ICAgICAgVGhpcyBhbHNvIGZpeGVzIGFuIGluZWZmaWNpZW5jeSB3aGVyZSB3ZSB3b3VsZCB0aHJv
dHRsZSBhIG5ldyBwYWdlIG9uIGNyZWF0aW9uIGJlY2F1c2UgCisgICAgICAgIHdlIGFzc3VtZWQg
aXQgd2FzIHZpc2libGUgZXZlbiBpZiB0aGF0IHdhcyBub3QgdGhlIGNhc2UuCisKKyAgICAgICAg
KiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOiBDaGVj
ayBwYWdlIHRocm90dGxlciBleGlzdHMuCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzdGFydGVkKTogZGl0dG8KKyAgICAg
ICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6IERvbuKA
mXQgYXV0b21hdGljYWxseSBpbml0aWFsaXplIHBhZ2UgdGhyb3R0bGVyLgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZTo6aW5pdGlhbGl6ZVBhZ2VUaHJvdHRsZXIpOiBDcmVhdGUgcGFnZSB0aHJvdHRs
ZXIuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRWaWV3U3RhdGUpOiBDaGVjayBwYWdlIHRo
cm90dGxlciBleGlzdHMuCisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlOjpwYWdlVGhyb3R0bGVyKTogTWFrZSB0aGUgcGFnZSB0aHJvdHRsZXIgYSByZWZwdHIu
CisgICAgICAgICogcGFnZS9QYWdlVGhyb3R0bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2VUaHJvdHRsZXI6OmNyZWF0ZSk6IEFkZCBjcmVhdGUgbWV0aG9kLgorICAgICAgICAqIHBhZ2Uv
UGFnZVRocm90dGxlci5oOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOiAKKyAgICAgICAg
KFdlYkNvcmU6OlNldHRpbmdzOjpzZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nRW5hYmxl
ZCk6IENoZWNrIHBhZ2UgdGhyb3R0bGVyIGV4aXN0cy4KKwogMjAxNC0wNC0wNyAgTWFydGluIFJv
Ymluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgZmFzdC9jc3MzLXRleHQv
Y3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzcy5odG1sIGZhaWxz
IG9uIEdUSwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBmMjlmMTlhLi5hMTczYjRjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgpAQCAtMTA2NCw2ICsxMDY0LDcgQEAgX19aTjdXZWJDb3JlNFBhZ2UyMXJl
c3VtZUFuaW1hdGluZ0ltYWdlc0V2CiBfX1pON1dlYkNvcmU0UGFnZTIybm9uRmFzdFNjcm9sbGFi
bGVSZWN0c0VQS05TXzVGcmFtZUUKIF9fWk43V2ViQ29yZTRQYWdlMjJyZW1vdmVMYXlvdXRNaWxl
c3RvbmVzRWoKIF9fWk43V2ViQ29yZTRQYWdlMjNjbGVhclVuZG9SZWRvT3BlcmF0aW9uc0V2Citf
X1pON1dlYkNvcmU0UGFnZTIzaW5pdGlhbGl6ZVBhZ2VUaHJvdHRsZXJFdgogX19aTjdXZWJDb3Jl
NFBhZ2UyM2ludmFsaWRhdGVTdHlsZXNGb3JMaW5rRXkKIF9fWk43V2ViQ29yZTRQYWdlMjRmaW5k
U3RyaW5nTWF0Y2hpbmdSYW5nZXNFUktOM1dURjZTdHJpbmdFaGlQTlMxXzZWZWN0b3JJTlMxXzZS
ZWZQdHJJTlNfNVJhbmdlRUVFTG0wRU5TMV8xNUNyYXNoT25PdmVyZmxvd0VFRVJpCiBfX1pON1dl
YkNvcmU0UGFnZTI0cmVzdW1lU2NyaXB0ZWRBbmltYXRpb25zRXYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDFlNzg1ZDkuLjEyMTg2NjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNDQ1MCw4ICs0NDUwLDggQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVQbGF5U3RhdGUoKQogCiAgICAgICAgIGlmIChoYXNN
ZWRpYUNvbnRyb2xzKCkpCiAgICAgICAgICAgICBtZWRpYUNvbnRyb2xzKCktPnBsYXliYWNrU3Rh
cnRlZCgpOwotICAgICAgICBpZiAoZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAgICAgICBtX2Fj
dGl2aXR5VG9rZW4gPSBkb2N1bWVudCgpLnBhZ2UoKS0+cGFnZVRocm90dGxlcigpLm1lZGlhQWN0
aXZpdHlUb2tlbigpOworICAgICAgICBpZiAoZG9jdW1lbnQoKS5wYWdlKCkgJiYgZG9jdW1lbnQo
KS5wYWdlKCktPnBhZ2VUaHJvdHRsZXIoKSkKKyAgICAgICAgICAgIG1fYWN0aXZpdHlUb2tlbiA9
IGRvY3VtZW50KCkucGFnZSgpLT5wYWdlVGhyb3R0bGVyKCktPm1lZGlhQWN0aXZpdHlUb2tlbigp
OwogCiAgICAgICAgIHN0YXJ0UGxheWJhY2tQcm9ncmVzc1RpbWVyKCk7CiAgICAgICAgIG1fcGxh
eWluZyA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAzNmQ2
NWE0Li5kYTMyMDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTEx
NDUsOCArMTE0NSw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNvbXBsZXRlZCgpCiAKIHZvaWQgRnJh
bWVMb2FkZXI6OnN0YXJ0ZWQoKQogewotICAgIGlmIChtX2ZyYW1lLnBhZ2UoKSkKLSAgICAgICAg
bV9hY3Rpdml0eUFzc2VydGlvbiA9IG1fZnJhbWUucGFnZSgpLT5wYWdlVGhyb3R0bGVyKCkucGFn
ZUxvYWRBY3Rpdml0eVRva2VuKCk7CisgICAgaWYgKG1fZnJhbWUucGFnZSgpICYmIG1fZnJhbWUu
cGFnZSgpLT5wYWdlVGhyb3R0bGVyKCkpCisgICAgICAgIG1fYWN0aXZpdHlBc3NlcnRpb24gPSBt
X2ZyYW1lLnBhZ2UoKS0+cGFnZVRocm90dGxlcigpLT5wYWdlTG9hZEFjdGl2aXR5VG9rZW4oKTsK
ICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICZtX2ZyYW1lOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+
dHJlZSgpLnBhcmVudCgpKQogICAgICAgICBmcmFtZS0+bG9hZGVyKCkubV9pc0NvbXBsZXRlID0g
ZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCAyNWY3NjdhLi44MWM3ZjY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKQEAgLTE4NCw3ICsxODQsNiBAQCBQYWdlOjpQYWdlKFBhZ2VDbGllbnRzJiBw
YWdlQ2xpZW50cykKICNlbmRpZgogICAgICwgbV9hbHRlcm5hdGl2ZVRleHRDbGllbnQocGFnZUNs
aWVudHMuYWx0ZXJuYXRpdmVUZXh0Q2xpZW50KQogICAgICwgbV9zY3JpcHRlZEFuaW1hdGlvbnNT
dXNwZW5kZWQoZmFsc2UpCi0gICAgLCBtX3BhZ2VUaHJvdHRsZXIoKnRoaXMsIFBhZ2VJbml0aWFs
Vmlld1N0YXRlKQogICAgICwgbV9jb25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8UGFnZUNvbnNvbGU+
KCp0aGlzKSkKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKICAgICAsIG1faW5zcGVjdG9y
RGVidWdnYWJsZShzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VEZWJ1Z2dhYmxlPigqdGhpcykpCkBAIC0x
MTExLDYgKzExMTAsMTEgQEAgdm9pZCBQYWdlOjpyZXN1bWVBbmltYXRpbmdJbWFnZXMoKQogICAg
ICAgICAgICAgcmVuZGVyVmlldy0+cmVzdW1lUGF1c2VkSW1hZ2VBbmltYXRpb25zSWZOZWVkZWQo
KTsKICAgICB9CiB9CisgICAgCit2b2lkIFBhZ2U6OmluaXRpYWxpemVQYWdlVGhyb3R0bGVyKCkK
K3sKKyAgICBtX3BhZ2VUaHJvdHRsZXIgPSBQYWdlVGhyb3R0bGVyOjpjcmVhdGUoKnRoaXMsIG1f
dmlld1N0YXRlKTsKK30KIAogdm9pZCBQYWdlOjpzZXRWaWV3U3RhdGUoVmlld1N0YXRlOjpGbGFn
cyB2aWV3U3RhdGUpCiB7CkBAIC0xMTIwLDcgKzExMjQsOCBAQCB2b2lkIFBhZ2U6OnNldFZpZXdT
dGF0ZShWaWV3U3RhdGU6OkZsYWdzIHZpZXdTdGF0ZSkKIAogICAgIG1fdmlld1N0YXRlID0gdmll
d1N0YXRlOwogICAgIG1fZm9jdXNDb250cm9sbGVyLT5zZXRWaWV3U3RhdGUodmlld1N0YXRlKTsK
LSAgICBtX3BhZ2VUaHJvdHRsZXIuc2V0Vmlld1N0YXRlKHZpZXdTdGF0ZSk7CisgICAgaWYgKG1f
cGFnZVRocm90dGxlcikKKyAgICAgICAgbV9wYWdlVGhyb3R0bGVyLT5zZXRWaWV3U3RhdGUodmll
d1N0YXRlKTsKIAogICAgIGlmIChjaGFuZ2VkICYgVmlld1N0YXRlOjpJc1Zpc2libGUpCiAgICAg
ICAgIHNldElzVmlzaWJsZUludGVybmFsKHZpZXdTdGF0ZSAmIFZpZXdTdGF0ZTo6SXNWaXNpYmxl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmgKaW5kZXggNWMyMmEzYy4uMjY3ZjFjNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAg
LTM4NCw3ICszODQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzYXdNZWRpYUVuZ2luZShjb25zdCBT
dHJpbmcmIGVuZ2luZU5hbWUpOwogICAgIHZvaWQgcmVzZXRTZWVuTWVkaWFFbmdpbmVzKCk7CiAK
LSAgICBQYWdlVGhyb3R0bGVyJiBwYWdlVGhyb3R0bGVyKCkgeyByZXR1cm4gbV9wYWdlVGhyb3R0
bGVyOyB9CisgICAgUGFnZVRocm90dGxlciogcGFnZVRocm90dGxlcigpIHsgcmV0dXJuIG1fcGFn
ZVRocm90dGxlci5nZXQoKTsgfQorICAgIHZvaWQgaW5pdGlhbGl6ZVBhZ2VUaHJvdHRsZXIoKTsK
IAogICAgIFBhZ2VDb25zb2xlJiBjb25zb2xlKCkgeyByZXR1cm4gKm1fY29uc29sZTsgfQogCkBA
IC01NDEsNyArNTQyLDcgQEAgcHJpdmF0ZToKICAgICBBbHRlcm5hdGl2ZVRleHRDbGllbnQqIG1f
YWx0ZXJuYXRpdmVUZXh0Q2xpZW50OwogCiAgICAgYm9vbCBtX3NjcmlwdGVkQW5pbWF0aW9uc1N1
c3BlbmRlZDsKLSAgICBQYWdlVGhyb3R0bGVyIG1fcGFnZVRocm90dGxlcjsKKyAgICBSZWZQdHI8
UGFnZVRocm90dGxlcj4gbV9wYWdlVGhyb3R0bGVyOwogICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0
cjxQYWdlQ29uc29sZT4gbV9jb25zb2xlOwogCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VUaHJvdHRsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlVGhyb3R0bGVyLmNwcAppbmRleCA5NWJmZjg5Li5iZWIwYTZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VUaHJvdHRsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVRocm90dGxlci5jcHAKQEAgLTMyLDkgKzMyLDE1IEBA
CiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VBY3Rpdml0eUFzc2VydGlvblRva2Vu
LmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitQYXNzUmVmUHRyPFBhZ2VUaHJvdHRs
ZXI+IFBhZ2VUaHJvdHRsZXI6OmNyZWF0ZShQYWdlJiBwYWdlLCBWaWV3U3RhdGU6OkZsYWdzIHZp
ZXdTdGF0ZSkKK3sKKyAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQYWdlVGhyb3R0bGVyKHBhZ2Us
IHZpZXdTdGF0ZSkpOworfQorICAgIAogUGFnZVRocm90dGxlcjo6UGFnZVRocm90dGxlcihQYWdl
JiBwYWdlLCBWaWV3U3RhdGU6OkZsYWdzIHZpZXdTdGF0ZSkKICAgICA6IG1fcGFnZShwYWdlKQog
ICAgICwgbV92aWV3U3RhdGUodmlld1N0YXRlKQpAQCAtOTAsMTEgKzk2LDEwIEBAIHZvaWQgUGFn
ZVRocm90dGxlcjo6c2V0Vmlld1N0YXRlKFZpZXdTdGF0ZTo6RmxhZ3Mgdmlld1N0YXRlKQogewog
ICAgIFZpZXdTdGF0ZTo6RmxhZ3MgY2hhbmdlZCA9IG1fdmlld1N0YXRlIF4gdmlld1N0YXRlOwog
ICAgIG1fdmlld1N0YXRlID0gdmlld1N0YXRlOwotCiAgICAgaWYgKGNoYW5nZWQgJiBWaWV3U3Rh
dGU6OklzVmlzdWFsbHlJZGxlKQogICAgICAgICB1cGRhdGVIeXN0ZXJlc2lzKCk7CiB9Ci0KKyAg
ICAKIHZvaWQgUGFnZVRocm90dGxlcjo6c3RhcnRlZCgpCiB7CiAgICAgbV9wYWdlLnNldFRpbWVy
VGhyb3R0bGluZ0VuYWJsZWQoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlVGhyb3R0bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VUaHJvdHRsZXIuaApp
bmRleCA5YjRmOWQyLi5lNzczYWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VUaHJvdHRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VUaHJvdHRsZXIuaApA
QCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3Rm
L093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC00MCwxMCArNDEsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBQYWdlOwog
Y2xhc3MgUGFnZUFjdGl2aXR5QXNzZXJ0aW9uVG9rZW47CiAKLWNsYXNzIFBhZ2VUaHJvdHRsZXIg
eworY2xhc3MgUGFnZVRocm90dGxlciA6IHB1YmxpYyBSZWZDb3VudGVkPFBhZ2VUaHJvdHRsZXI+
IHsKIHB1YmxpYzoKLSAgICBQYWdlVGhyb3R0bGVyKFBhZ2UmLCBWaWV3U3RhdGU6OkZsYWdzKTsK
LQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBhZ2VUaHJvdHRsZXI+IGNyZWF0ZShQYWdlJiwgVmll
d1N0YXRlOjpGbGFncyk7CiAgICAgdm9pZCBzZXRWaWV3U3RhdGUoVmlld1N0YXRlOjpGbGFncyk7
CiAKICAgICB2b2lkIGRpZFJlY2VpdmVVc2VySW5wdXQoKSB7IG1faHlzdGVyZXNpcy5pbXB1bHNl
KCk7IH0KQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgogICAgIHZvaWQgaGlkZGVuUGFnZURPTVRp
bWVyVGhyb3R0bGluZ1N0YXRlQ2hhbmdlZCgpOwogCiBwcml2YXRlOgorICAgIFBhZ2VUaHJvdHRs
ZXIoUGFnZSYsIFZpZXdTdGF0ZTo6RmxhZ3MpOwogICAgIGZyaWVuZCBjbGFzcyBQYWdlQWN0aXZp
dHlBc3NlcnRpb25Ub2tlbjsKICAgICBXZWFrUHRyPFBhZ2VUaHJvdHRsZXI+IHdlYWtQdHIoKSB7
IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQogICAgIHZvaWQgaW5j
cmVtZW50QWN0aXZpdHlDb3VudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCBmZWRh
ZWMxLi5kNjZiZGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtNjU3LDcgKzY1Nyw4
IEBAIHZvaWQgU2V0dGluZ3M6OnNldEhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdFbmFibGVk
KGJvb2wgZmxhZykKICAgICBpZiAobV9oaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nRW5hYmxl
ZCA9PSBmbGFnKQogICAgICAgICByZXR1cm47CiAgICAgbV9oaWRkZW5QYWdlRE9NVGltZXJUaHJv
dHRsaW5nRW5hYmxlZCA9IGZsYWc7Ci0gICAgbV9wYWdlLT5wYWdlVGhyb3R0bGVyKCkuaGlkZGVu
UGFnZURPTVRpbWVyVGhyb3R0bGluZ1N0YXRlQ2hhbmdlZCgpOworICAgIGlmIChtX3BhZ2UtPnBh
Z2VUaHJvdHRsZXIoKSkKKyAgICBtX3BhZ2UtPnBhZ2VUaHJvdHRsZXIoKS0+aGlkZGVuUGFnZURP
TVRpbWVyVGhyb3R0bGluZ1N0YXRlQ2hhbmdlZCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCAzNzA0ZWI0Li5hYjAzMzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTQtMDQt
MTAgIFN0ZXBoYW5pZSBMZXdpcyAgPHNsZXdpc0BhcHBsZS5jb20+CisKKyAgICAgICAgV2Ugc2hv
dWxkbuKAmXQgY3JlYXRlIHBhZ2UgdGhyb3R0bGVycyBmb3Igb3RoZXIgcGFnZXMgdGhhbiBXZWJL
aXQyIHBhZ2VzLgorICAgICAgICBQYXJ0IG9mIDxyZGFyOi8vcHJvYmxlbS8xNjQ3MzA0NT4gVmlz
aWJpbGl0eSBzdGF0ZSBjb3VudGVycyBhcmUgb2Z0ZW4gaW5jb3JyZWN0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFnZSB0aHJvdHRsZXJzIHdlcmUg
YmVpbmcgY3JlYXRlZCBmb3IgU1ZHIGltYWdlcyBhbmQgb3RoZXIgcGFnZSBpbnN0YW5jZXMgdGhh
dAorICAgICAgICB3ZXJlIG5vdCBhY2N1cmF0ZWx5IHRyYWNraW5nIHRoZSBzdGF0ZXMgdGhhdCBl
bmFibGUgYW5kIGRpc2FibGUgcGFnZSB0aHJvdHRsaW5nLgorICAgICAgICBNYWtlIHRoZSB0aHJv
dHRsZXIgYW4gcmVmcHRyIGFuZCBvbmx5IGluaXRpYWxpemUgaXQgZm9yIFdlYktpdDIuCisKKyAg
ICAgICAgVGhpcyBhbHNvIGZpeGVzICBhbiBpbmVmZmljaWVuY3kgd2hlcmUgd2Ugd291bGQgdGhy
b3R0bGUgYSBuZXcgcGFnZSBvbiBjcmVhdGlvbiBiZWNhdXNlIAorICAgICAgICB3ZSBhc3N1bWVk
IGl0IHdhcyB2aXNpYmxlIGV2ZW4gaWYgdGhhdCB3YXMgbm90IHRoZSBjYXNlLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5jcHA6IENo
ZWNrIHBhZ2UgdGhyb3R0bGVyIGV4aXN0cy4KKyAgICAgICAgKFdlYktpdDo6TlBSdW50aW1lT2Jq
ZWN0TWFwOjpldmFsdWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwOiAKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6IEluaXRpYWxpemUgcGFn
ZSB0aHJvdHRsZXIgZm9yIFdlYktpdDIgdmlld3MuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
Om1vdXNlRXZlbnQpOiBDaGVjayBwYWdlIHRocm90dGxlciBleGlzdHMuCisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OndoZWVsRXZlbnQpOiBkaXR0bworICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjprZXlFdmVudCk6IGRpdHRvCisKIDIwMTQtMDQtMDcgIFN0ZXBoYW5pZSBMZXdpcyAgPHNsZXdp
c0BhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggaW4gY29tLmFwcGxlLldlYktpdC5QbHVnaW4u
RGV2ZWxvcG1lbnQgYXQgY29tLmFwcGxlLldlYktpdDI6IFdlYktpdDo6UGx1Z2luQ29udHJvbGxl
clByb3h5OjpwbHVnaW5JbnN0YW5jZUlECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFwLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuY3Bw
CmluZGV4IDAzNTY1NmMuLjVlZjUxOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAu
Y3BwCkBAIC0xOTMsOCArMTkzLDggQEAgYm9vbCBOUFJ1bnRpbWVPYmplY3RNYXA6OmV2YWx1YXRl
KE5QT2JqZWN0KiBucE9iamVjdCwgY29uc3QgU3RyaW5nJiBzY3JpcHRTdHJpbmcKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBpZiAobV9wbHVnaW5WaWV3ICYmICFtX3BsdWdpblZpZXctPmlzQmVp
bmdEZXN0cm95ZWQoKSkgewogICAgICAgICBpZiAoUGFnZSogcGFnZSA9IG1fcGx1Z2luVmlldy0+
ZnJhbWUoKS0+cGFnZSgpKSB7Ci0gICAgICAgICAgICBpZiAobV9wbHVnaW5WaWV3LT5hdWRpb0hh
cmR3YXJlQWN0aXZpdHkoKSAhPSBXZWJDb3JlOjpBdWRpb0hhcmR3YXJlQWN0aXZpdHlUeXBlOjpJ
c0luYWN0aXZlKQotICAgICAgICAgICAgICAgIHBhZ2UtPnBhZ2VUaHJvdHRsZXIoKS5wbHVnaW5E
aWRFdmFsdWF0ZVdoaWxlQXVkaW9Jc1BsYXlpbmcoKTsKKyAgICAgICAgICAgIGlmIChtX3BsdWdp
blZpZXctPmF1ZGlvSGFyZHdhcmVBY3Rpdml0eSgpICE9IFdlYkNvcmU6OkF1ZGlvSGFyZHdhcmVB
Y3Rpdml0eVR5cGU6OklzSW5hY3RpdmUgJiYgcGFnZS0+cGFnZVRocm90dGxlcigpKQorICAgICAg
ICAgICAgICAgIHBhZ2UtPnBhZ2VUaHJvdHRsZXIoKS0+cGx1Z2luRGlkRXZhbHVhdGVXaGlsZUF1
ZGlvSXNQbGF5aW5nKCk7CiAgICAgICAgIH0KICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAwMjI2OThmLi45YjcxZmVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC00MDEsNyArNDAxLDggQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgbV9wYWdlLT5zZXRW
aWV3U3RhdGUobV92aWV3U3RhdGUpOwogICAgIGlmICghaXNWaXNpYmxlKCkpCiAgICAgICAgIG1f
cGFnZS0+c2V0SXNQcmVyZW5kZXIoKTsKLQorICAgIG1fcGFnZS0+aW5pdGlhbGl6ZVBhZ2VUaHJv
dHRsZXIoKTsKKyAgICAKICAgICB1cGRhdGVJc0luV2luZG93KHRydWUpOwogCiAgICAgc2V0TWlu
aW11bUxheW91dFNpemUocGFyYW1ldGVycy5taW5pbXVtTGF5b3V0U2l6ZSk7CkBAIC0xNzUyLDcg
KzE3NTMsOCBAQCBzdGF0aWMgYm9vbCBoYW5kbGVNb3VzZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZl
bnQmIG1vdXNlRXZlbnQsIFdlYlBhZ2UqIHBhZ2UsIGJvbwogCiB2b2lkIFdlYlBhZ2U6Om1vdXNl
RXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYgbW91c2VFdmVudCkKIHsKLSAgICBtX3BhZ2UtPnBh
Z2VUaHJvdHRsZXIoKS5kaWRSZWNlaXZlVXNlcklucHV0KCk7CisgICAgaWYgKG1fcGFnZS0+cGFn
ZVRocm90dGxlcigpKQorICAgICAgICBtX3BhZ2UtPnBhZ2VUaHJvdHRsZXIoKS0+ZGlkUmVjZWl2
ZVVzZXJJbnB1dCgpOwogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgLy8gRG9uJ3Qg
dHJ5IHRvIGhhbmRsZSBhbnkgcGVuZGluZyBtb3VzZSBldmVudHMgaWYgYSBjb250ZXh0IG1lbnUg
aXMgc2hvd2luZy4KQEAgLTE4MzQsNyArMTgzNiw4IEBAIHN0YXRpYyBib29sIGhhbmRsZVdoZWVs
RXZlbnQoY29uc3QgV2ViV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgUGFnZSogcGFnZSkKIAogdm9p
ZCBXZWJQYWdlOjp3aGVlbEV2ZW50KGNvbnN0IFdlYldoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7
Ci0gICAgbV9wYWdlLT5wYWdlVGhyb3R0bGVyKCkuZGlkUmVjZWl2ZVVzZXJJbnB1dCgpOworICAg
IGlmKG1fcGFnZS0+cGFnZVRocm90dGxlcigpKQorICAgICAgICBtX3BhZ2UtPnBhZ2VUaHJvdHRs
ZXIoKS0+ZGlkUmVjZWl2ZVVzZXJJbnB1dCgpOwogCiAgICAgYm9vbCBoYW5kbGVkID0gZmFsc2U7
CiAKQEAgLTE4NjUsNyArMTg2OCw4IEBAIHN0YXRpYyBib29sIGhhbmRsZUtleUV2ZW50KGNvbnN0
IFdlYktleWJvYXJkRXZlbnQmIGtleWJvYXJkRXZlbnQsIFBhZ2UqIHBhZ2UpCiAKIHZvaWQgV2Vi
UGFnZTo6a2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYga2V5Ym9hcmRFdmVudCkKIHsK
LSAgICBtX3BhZ2UtPnBhZ2VUaHJvdHRsZXIoKS5kaWRSZWNlaXZlVXNlcklucHV0KCk7CisgICAg
aWYgKG1fcGFnZS0+cGFnZVRocm90dGxlcigpKQorICAgICAgICBtX3BhZ2UtPnBhZ2VUaHJvdHRs
ZXIoKS0+ZGlkUmVjZWl2ZVVzZXJJbnB1dCgpOwogCiAgICAgYm9vbCBoYW5kbGVkID0gZmFsc2U7
CiAKLS0gCjEuOC41LjIgKEFwcGxlIEdpdC00OCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229502</attachid>
            <date>2014-04-16 17:18:09 -0700</date>
            <delta_ts>2014-04-16 19:12:37 -0700</delta_ts>
            <desc>new patch for real this time</desc>
            <filename>0001-We-shouldn-t-create-page-throttlers-for-other-pages-.patch</filename>
            <type>text/plain</type>
            <size>14245</size>
            <attacher name="Stephanie Lewis">slewis</attacher>
            
              <data encoding="base64">RnJvbSBkOGVkOWU2OGEzZGRmZjdkMGUxN2Y4MzIxYmFjZmM2YmU5MDYxY2RhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVwaGFuaWUgTGV3aXMgPHNsZXdpc0BhcHBsZS5jb20+CkRh
dGU6IFRodSwgMTAgQXByIDIwMTQgMTQ6NTQ6MTMgLTA3MDAKU3ViamVjdDogW1BBVENIIDEvMl0g
PT9VVEYtOD9xP1dlPTIwc2hvdWxkbj1FMj04MD05OXQ9MjBjcmVhdGU9MjBwYWdlPTIwdGg/PQog
PT9VVEYtOD9xP3JvdHRsZXJzPTIwZm9yPTIwb3RoZXI9MjBwYWdlcz0yMHRoYW49MjBXZWJLaXQy
PTIwcGFnZXMuPz0KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBj
aGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClNvdXJjZS9XZWJD
b3JlOgpQYXJ0IG9mIDxyZGFyOi8vcHJvYmxlbS8xNjQ3MzA0NT4gVmlzaWJpbGl0eSBzdGF0ZSBj
b3VudGVycyBhcmUgb2Z0ZW4gaW5jb3JyZWN0Cmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzE2OTYKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKTm8gbmV3IHRl
c3Qgc2luY2Ugbm90IHdlYiBleHBvc2VkLgoKUGFnZSB0aHJvdHRsZXJzIHdlcmUgYmVpbmcgY3Jl
YXRlZCBmb3IgU1ZHIGltYWdlcyBhbmQgb3RoZXIgcGFnZSBpbnN0YW5jZXMgdGhhdAp3ZXJlIG5v
dCBhY2N1cmF0ZWx5IHRyYWNraW5nIHRoZSBzdGF0ZXMgdGhhdCBlbmFibGUgYW5kIGRpc2FibGUg
cGFnZSB0aHJvdHRsaW5nLgpNYWtlIHRoZSB0aHJvdHRsZXIgYW4gdW5pcXVlIHB0ciBhbmQgb25s
eSBpbml0aWFsaXplIGl0IGZvciBXZWJLaXQyLgoKVGhpcyBhbHNvIGZpeGVzIGFuIGluZWZmaWNp
ZW5jeSB3aGVyZSB3ZSB3b3VsZCB0aHJvdHRsZSBhIG5ldyBwYWdlIG9uIGNyZWF0aW9uIGJlY2F1
c2UKd2UgYXNzdW1lZCBpdCB3YXMgdmlzaWJsZSBldmVuIGlmIHRoYXQgd2FzIG5vdCB0aGUgY2Fz
ZS4KCiogV2ViQ29yZS5leHAuaW46CiogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKTogQ2hlY2sgcGFnZSB0aHJvdHRs
ZXIgZXhpc3RzLgoqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CihXZWJDb3JlOjpGcmFtZUxvYWRl
cjo6c3RhcnRlZCk6IGRpdHRvCiogcGFnZS9QYWdlLmNwcDoKKFdlYkNvcmU6OlBhZ2U6OlBhZ2Up
OiBEb27igJl0IGF1dG9tYXRpY2FsbHkgY3JlYXRlIHBhZ2UgdGhyb3R0bGVyLgooV2ViQ29yZTo6
UGFnZTo6Y3JlYXRlUGFnZVRocm90dGxlcik6IENyZWF0ZSBwYWdlIHRocm90dGxlci4KKFdlYkNv
cmU6OlBhZ2U6OnNldFZpZXdTdGF0ZSk6IENoZWNrIHBhZ2UgdGhyb3R0bGVyIGV4aXN0cy4KKiBw
YWdlL1BhZ2UuaDoKKFdlYkNvcmU6OlBhZ2U6OnBhZ2VUaHJvdHRsZXIpOiBNYWtlIHRoZSBwYWdl
IHRocm90dGxlciBhIHVuaXF1ZSBwdHIuCiogcGFnZS9QYWdlVGhyb3R0bGVyLmg6CiogcGFnZS9T
ZXR0aW5ncy5jcHA6CihXZWJDb3JlOjpTZXR0aW5nczo6c2V0SGlkZGVuUGFnZURPTVRpbWVyVGhy
b3R0bGluZ0VuYWJsZWQpOiBDaGVjayBwYWdlIHRocm90dGxlciBleGlzdHMuCgpTb3VyY2UvV2Vi
S2l0MjoKUGFydCBvZiA8cmRhcjovL3Byb2JsZW0vMTY0NzMwNDU+IFZpc2liaWxpdHkgc3RhdGUg
Y291bnRlcnMgYXJlIG9mdGVuIGluY29ycmVjdC4KaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEzMTY5NgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpQYWdlIHRo
cm90dGxlcnMgd2VyZSBiZWluZyBjcmVhdGVkIGZvciBTVkcgaW1hZ2VzIGFuZCBvdGhlciBwYWdl
IGluc3RhbmNlcyB0aGF0CndlcmUgbm90IGFjY3VyYXRlbHkgdHJhY2tpbmcgdGhlIHN0YXRlcyB0
aGF0IGVuYWJsZSBhbmQgZGlzYWJsZSBwYWdlIHRocm90dGxpbmcuCk1ha2UgdGhlIHRocm90dGxl
ciBhbiB1bmlxdWUgcHRyIGFuZCBvbmx5IGluaXRpYWxpemUgaXQgZm9yIFdlYktpdDIuCgpUaGlz
IGFsc28gZml4ZXMgIGFuIGluZWZmaWNpZW5jeSB3aGVyZSB3ZSB3b3VsZCB0aHJvdHRsZSBhIG5l
dyBwYWdlIG9uIGNyZWF0aW9uIGJlY2F1c2UKd2UgYXNzdW1lZCBpdCB3YXMgdmlzaWJsZSBldmVu
IGlmIHRoYXQgd2FzIG5vdCB0aGUgY2FzZS4KCiogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L05QUnVudGltZU9iamVjdE1hcC5jcHA6IENoZWNrIHBhZ2UgdGhyb3R0bGVyIGV4aXN0cy4KKFdl
YktpdDo6TlBSdW50aW1lT2JqZWN0TWFwOjpldmFsdWF0ZSk6CiogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwOgooV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdlKTogSW5pdGlhbGl6ZSBwYWdl
IHRocm90dGxlciBmb3IgV2ViS2l0MiB2aWV3cy4KKFdlYktpdDo6V2ViUGFnZTo6bW91c2VFdmVu
dCk6IENoZWNrIHBhZ2UgdGhyb3R0bGVyIGV4aXN0cy4KKFdlYktpdDo6V2ViUGFnZTo6d2hlZWxF
dmVudCk6IGRpdHRvCihXZWJLaXQ6OldlYlBhZ2U6OmtleUV2ZW50KTogZGl0dG8KLS0tCiBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMyICsrKysr
KysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluICAgICAgICAg
ICAgICAgICAgICAgIHwgIDEgKwogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcCAgICAgICAgICAgfCAgNCArLS0KIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAgICAgICAgICAgICAgIHwgIDQgKy0tCiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
ICAgICAgICAgICAgICAgICAgICAgICB8IDEwICsrKysrLS0KIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDUgKystLQogU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlVGhyb3R0bGVyLmggICAgICAgICAgICAgICAgfCAgMSArCiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmNwcCAgICAgICAgICAgICAgICAgICB8ICAzICstCiBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIzICsrKysrKysrKysr
KysrKysKIC4uLi9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5jcHAgICAgICAg
IHwgIDQgKy0tCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAg
ICAgICB8IDEwICsrKysrLS0KIDExIGZpbGVzIGNoYW5nZWQsIDgzIGluc2VydGlvbnMoKyksIDE0
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4NWUxYjc4Li40ZDI0MGQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzUgQEAKKzIwMTQtMDQtMTAgIFN0ZXBoYW5pZSBMZXdpcyAgPHNsZXdpc0Bh
cHBsZS5jb20+CisKKyAgICAgICAgV2Ugc2hvdWxkbuKAmXQgY3JlYXRlIHBhZ2UgdGhyb3R0bGVy
cyBmb3Igb3RoZXIgcGFnZXMgdGhhbiBXZWJLaXQyIHBhZ2VzLgorICAgICAgICBQYXJ0IG9mIDxy
ZGFyOi8vcHJvYmxlbS8xNjQ3MzA0NT4gVmlzaWJpbGl0eSBzdGF0ZSBjb3VudGVycyBhcmUgb2Z0
ZW4gaW5jb3JyZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzE2OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBObyBuZXcgdGVzdCBzaW5jZSBub3Qgd2ViIGV4cG9zZWQuCisKKyAgICAgICAgUGFnZSB0
aHJvdHRsZXJzIHdlcmUgYmVpbmcgY3JlYXRlZCBmb3IgU1ZHIGltYWdlcyBhbmQgb3RoZXIgcGFn
ZSBpbnN0YW5jZXMgdGhhdAorICAgICAgICB3ZXJlIG5vdCBhY2N1cmF0ZWx5IHRyYWNraW5nIHRo
ZSBzdGF0ZXMgdGhhdCBlbmFibGUgYW5kIGRpc2FibGUgcGFnZSB0aHJvdHRsaW5nLgorICAgICAg
ICBNYWtlIHRoZSB0aHJvdHRsZXIgYW4gdW5pcXVlIHB0ciBhbmQgb25seSBpbml0aWFsaXplIGl0
IGZvciBXZWJLaXQyLgorCisgICAgICAgIFRoaXMgYWxzbyBmaXhlcyBhbiBpbmVmZmljaWVuY3kg
d2hlcmUgd2Ugd291bGQgdGhyb3R0bGUgYSBuZXcgcGFnZSBvbiBjcmVhdGlvbiBiZWNhdXNlIAor
ICAgICAgICB3ZSBhc3N1bWVkIGl0IHdhcyB2aXNpYmxlIGV2ZW4gaWYgdGhhdCB3YXMgbm90IHRo
ZSBjYXNlLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKTogQ2hlY2sgcGFnZSB0aHJvdHRsZXIgZXhpc3RzLgorICAgICAgICAqIGxv
YWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6c3Rh
cnRlZCk6IGRpdHRvCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2U6OlBhZ2UpOiBEb27igJl0IGF1dG9tYXRpY2FsbHkgY3JlYXRlIHBhZ2UgdGhyb3R0bGVy
LgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6Y3JlYXRlUGFnZVRocm90dGxlcik6IENyZWF0ZSBw
YWdlIHRocm90dGxlci4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldFZpZXdTdGF0ZSk6IENo
ZWNrIHBhZ2UgdGhyb3R0bGVyIGV4aXN0cy4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2U6OnBhZ2VUaHJvdHRsZXIpOiBNYWtlIHRoZSBwYWdlIHRocm90dGxl
ciBhIHVuaXF1ZSBwdHIuCisgICAgICAgICogcGFnZS9QYWdlVGhyb3R0bGVyLmg6CisgICAgICAg
ICogcGFnZS9TZXR0aW5ncy5jcHA6IAorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnNldEhp
ZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdFbmFibGVkKTogQ2hlY2sgcGFnZSB0aHJvdHRsZXIg
ZXhpc3RzLgorCiAyMDE0LTA0LTE2ICBQZXRlciBNb2xuYXIgIDxwbW9sbmFyLnUtc3plZ2VkQHBh
cnRuZXIuc2Ftc3VuZy5jb20+CiAKICAgICAgICAgSW1wcm92ZSBzZWN1cml0eSBtaXRpZ2F0aW9u
IGFkZGVkIGluIHdlYmtpdCByOTQwMDEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDRmZWViY2Eu
LjFmMjI0ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xMDU5LDYgKzEwNTksNyBAQCBfX1pO
N1dlYkNvcmU0UGFnZTE4cmVtb3ZlU2NoZWR1bGVQYWlyRU4zV1RGMTBQYXNzUmVmUHRySU5TMV8x
MlNjaGVkdWxlUGFpckVFRQogX19aTjdXZWJDb3JlNFBhZ2UxOHNldFBhZ2VTY2FsZUZhY3RvckVm
UktOU184SW50UG9pbnRFCiBfX1pON1dlYkNvcmU0UGFnZTE4c2V0VG9wQ29udGVudEluc2V0RWYK
IF9fWk43V2ViQ29yZTRQYWdlMTlhZGRMYXlvdXRNaWxlc3RvbmVzRWoKK19fWk43V2ViQ29yZTRQ
YWdlMTljcmVhdGVQYWdlVGhyb3R0bGVyRXYKIF9fWk43V2ViQ29yZTRQYWdlMjBzY3JvbGxpbmdD
b29yZGluYXRvckV2CiBfX1pON1dlYkNvcmU0UGFnZTIwc2V0RGV2aWNlU2NhbGVGYWN0b3JFZgog
X19aTjdXZWJDb3JlNFBhZ2UyMHVubWFya0FsbFRleHRNYXRjaGVzRXYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDViMGM2MjcuLjdiMmQ0MjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNDQ3Nyw4ICs0NDc3LDggQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVQbGF5U3RhdGUoKQogCiAgICAgICAgIGlmICho
YXNNZWRpYUNvbnRyb2xzKCkpCiAgICAgICAgICAgICBtZWRpYUNvbnRyb2xzKCktPnBsYXliYWNr
U3RhcnRlZCgpOwotICAgICAgICBpZiAoZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAgICAgICBt
X2FjdGl2aXR5VG9rZW4gPSBkb2N1bWVudCgpLnBhZ2UoKS0+cGFnZVRocm90dGxlcigpLm1lZGlh
QWN0aXZpdHlUb2tlbigpOworICAgICAgICBpZiAoZG9jdW1lbnQoKS5wYWdlKCkgJiYgZG9jdW1l
bnQoKS5wYWdlKCktPnBhZ2VUaHJvdHRsZXIoKSkKKyAgICAgICAgICAgIG1fYWN0aXZpdHlUb2tl
biA9IGRvY3VtZW50KCkucGFnZSgpLT5wYWdlVGhyb3R0bGVyKCktPm1lZGlhQWN0aXZpdHlUb2tl
bigpOwogCiAgICAgICAgIHN0YXJ0UGxheWJhY2tQcm9ncmVzc1RpbWVyKCk7CiAgICAgICAgIG1f
cGxheWluZyA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBm
YWQ0MTQwLi4wZjM3ODUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAg
LTExNDUsOCArMTE0NSw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNvbXBsZXRlZCgpCiAKIHZvaWQg
RnJhbWVMb2FkZXI6OnN0YXJ0ZWQoKQogewotICAgIGlmIChtX2ZyYW1lLnBhZ2UoKSkKLSAgICAg
ICAgbV9hY3Rpdml0eUFzc2VydGlvbiA9IG1fZnJhbWUucGFnZSgpLT5wYWdlVGhyb3R0bGVyKCku
cGFnZUxvYWRBY3Rpdml0eVRva2VuKCk7CisgICAgaWYgKG1fZnJhbWUucGFnZSgpICYmIG1fZnJh
bWUucGFnZSgpLT5wYWdlVGhyb3R0bGVyKCkpCisgICAgICAgIG1fYWN0aXZpdHlBc3NlcnRpb24g
PSBtX2ZyYW1lLnBhZ2UoKS0+cGFnZVRocm90dGxlcigpLT5wYWdlTG9hZEFjdGl2aXR5VG9rZW4o
KTsKICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICZtX2ZyYW1lOyBmcmFtZTsgZnJhbWUgPSBmcmFt
ZS0+dHJlZSgpLnBhcmVudCgpKQogICAgICAgICBmcmFtZS0+bG9hZGVyKCkubV9pc0NvbXBsZXRl
ID0gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA4NTE4MTg3Li4xOWI1MTEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAKQEAgLTE4Nyw3ICsxODcsNiBAQCBQYWdlOjpQYWdlKFBhZ2VDbGllbnRz
JiBwYWdlQ2xpZW50cykKICNlbmRpZgogICAgICwgbV9hbHRlcm5hdGl2ZVRleHRDbGllbnQocGFn
ZUNsaWVudHMuYWx0ZXJuYXRpdmVUZXh0Q2xpZW50KQogICAgICwgbV9zY3JpcHRlZEFuaW1hdGlv
bnNTdXNwZW5kZWQoZmFsc2UpCi0gICAgLCBtX3BhZ2VUaHJvdHRsZXIoKnRoaXMsIFBhZ2VJbml0
aWFsVmlld1N0YXRlKQogICAgICwgbV9jb25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8UGFnZUNvbnNv
bGU+KCp0aGlzKSkKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKICAgICAsIG1faW5zcGVj
dG9yRGVidWdnYWJsZShzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VEZWJ1Z2dhYmxlPigqdGhpcykpCkBA
IC0xMTUxLDYgKzExNTAsMTIgQEAgdm9pZCBQYWdlOjpyZXN1bWVBbmltYXRpbmdJbWFnZXMoKQog
ICAgIH0KIH0KIAordm9pZCBQYWdlOjpjcmVhdGVQYWdlVGhyb3R0bGVyKCkKK3sKKyAgICBBU1NF
UlQoIW1fcGFnZVRocm90dGxlcik7CisgICAgbV9wYWdlVGhyb3R0bGVyID0gc3RkOjptYWtlX3Vu
aXF1ZTxQYWdlVGhyb3R0bGVyPigqdGhpcywgbV92aWV3U3RhdGUpOworfQorCiB2b2lkIFBhZ2U6
OnNldFZpZXdTdGF0ZShWaWV3U3RhdGU6OkZsYWdzIHZpZXdTdGF0ZSkKIHsKICAgICBWaWV3U3Rh
dGU6OkZsYWdzIGNoYW5nZWQgPSBtX3ZpZXdTdGF0ZSBeIHZpZXdTdGF0ZTsKQEAgLTExNTksNyAr
MTE2NCw4IEBAIHZvaWQgUGFnZTo6c2V0Vmlld1N0YXRlKFZpZXdTdGF0ZTo6RmxhZ3Mgdmlld1N0
YXRlKQogCiAgICAgbV92aWV3U3RhdGUgPSB2aWV3U3RhdGU7CiAgICAgbV9mb2N1c0NvbnRyb2xs
ZXItPnNldFZpZXdTdGF0ZSh2aWV3U3RhdGUpOwotICAgIG1fcGFnZVRocm90dGxlci5zZXRWaWV3
U3RhdGUodmlld1N0YXRlKTsKKyAgICBpZiAobV9wYWdlVGhyb3R0bGVyKQorICAgICAgICBtX3Bh
Z2VUaHJvdHRsZXItPnNldFZpZXdTdGF0ZSh2aWV3U3RhdGUpOwogCiAgICAgaWYgKGNoYW5nZWQg
JiBWaWV3U3RhdGU6OklzVmlzaWJsZSkKICAgICAgICAgc2V0SXNWaXNpYmxlSW50ZXJuYWwodmll
d1N0YXRlICYgVmlld1N0YXRlOjpJc1Zpc2libGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCAzNzdjOGYz
Li41M2M3Njg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMzk0LDcgKzM5NCw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNhd01lZGlhRW5naW5lKGNvbnN0IFN0cmluZyYgZW5naW5lTmFtZSk7CiAgICAgdm9p
ZCByZXNldFNlZW5NZWRpYUVuZ2luZXMoKTsKIAotICAgIFBhZ2VUaHJvdHRsZXImIHBhZ2VUaHJv
dHRsZXIoKSB7IHJldHVybiBtX3BhZ2VUaHJvdHRsZXI7IH0KKyAgICBQYWdlVGhyb3R0bGVyKiBw
YWdlVGhyb3R0bGVyKCkgeyByZXR1cm4gbV9wYWdlVGhyb3R0bGVyLmdldCgpOyB9CisgICAgdm9p
ZCBjcmVhdGVQYWdlVGhyb3R0bGVyKCk7CiAKICAgICBQYWdlQ29uc29sZSYgY29uc29sZSgpIHsg
cmV0dXJuICptX2NvbnNvbGU7IH0KIApAQCAtNTU1LDcgKzU1Niw3IEBAIHByaXZhdGU6CiAgICAg
QWx0ZXJuYXRpdmVUZXh0Q2xpZW50KiBtX2FsdGVybmF0aXZlVGV4dENsaWVudDsKIAogICAgIGJv
b2wgbV9zY3JpcHRlZEFuaW1hdGlvbnNTdXNwZW5kZWQ7Ci0gICAgUGFnZVRocm90dGxlciBtX3Bh
Z2VUaHJvdHRsZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFBhZ2VUaHJvdHRsZXI+IG1fcGFnZVRo
cm90dGxlcjsKICAgICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8UGFnZUNvbnNvbGU+IG1fY29uc29s
ZTsKIAogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlVGhyb3R0bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VUaHJv
dHRsZXIuaAppbmRleCA5YjRmOWQyLi4yZmJlYWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VUaHJvdHRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VUaHJv
dHRsZXIuaApAQCAtNDEsNiArNDEsNyBAQCBjbGFzcyBQYWdlOwogY2xhc3MgUGFnZUFjdGl2aXR5
QXNzZXJ0aW9uVG9rZW47CiAKIGNsYXNzIFBhZ2VUaHJvdHRsZXIgeworICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIFBhZ2VUaHJvdHRsZXIoUGFnZSYsIFZpZXdTdGF0
ZTo6RmxhZ3MpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IGE3M2E4MGMuLjg5M2Q5
MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC02NTYsNyArNjU2LDggQEAgdm9pZCBT
ZXR0aW5nczo6c2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0VuYWJsZWQoYm9vbCBmbGFn
KQogICAgIGlmIChtX2hpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdFbmFibGVkID09IGZsYWcp
CiAgICAgICAgIHJldHVybjsKICAgICBtX2hpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdFbmFi
bGVkID0gZmxhZzsKLSAgICBtX3BhZ2UtPnBhZ2VUaHJvdHRsZXIoKS5oaWRkZW5QYWdlRE9NVGlt
ZXJUaHJvdHRsaW5nU3RhdGVDaGFuZ2VkKCk7CisgICAgaWYgKG1fcGFnZS0+cGFnZVRocm90dGxl
cigpKQorICAgICAgICBtX3BhZ2UtPnBhZ2VUaHJvdHRsZXIoKS0+aGlkZGVuUGFnZURPTVRpbWVy
VGhyb3R0bGluZ1N0YXRlQ2hhbmdlZCgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAwNzQ4
OWRmLi42OTk1NzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTQtMDQtMTAgIFN0
ZXBoYW5pZSBMZXdpcyAgPHNsZXdpc0BhcHBsZS5jb20+CisKKyAgICAgICAgV2Ugc2hvdWxkbuKA
mXQgY3JlYXRlIHBhZ2UgdGhyb3R0bGVycyBmb3Igb3RoZXIgcGFnZXMgdGhhbiBXZWJLaXQyIHBh
Z2VzLgorICAgICAgICBQYXJ0IG9mIDxyZGFyOi8vcHJvYmxlbS8xNjQ3MzA0NT4gVmlzaWJpbGl0
eSBzdGF0ZSBjb3VudGVycyBhcmUgb2Z0ZW4gaW5jb3JyZWN0LgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxNjk2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFnZSB0aHJvdHRsZXJzIHdlcmUgYmVpbmcg
Y3JlYXRlZCBmb3IgU1ZHIGltYWdlcyBhbmQgb3RoZXIgcGFnZSBpbnN0YW5jZXMgdGhhdAorICAg
ICAgICB3ZXJlIG5vdCBhY2N1cmF0ZWx5IHRyYWNraW5nIHRoZSBzdGF0ZXMgdGhhdCBlbmFibGUg
YW5kIGRpc2FibGUgcGFnZSB0aHJvdHRsaW5nLgorICAgICAgICBNYWtlIHRoZSB0aHJvdHRsZXIg
YW4gdW5pcXVlIHB0ciBhbmQgb25seSBpbml0aWFsaXplIGl0IGZvciBXZWJLaXQyLgorCisgICAg
ICAgIFRoaXMgYWxzbyBmaXhlcyAgYW4gaW5lZmZpY2llbmN5IHdoZXJlIHdlIHdvdWxkIHRocm90
dGxlIGEgbmV3IHBhZ2Ugb24gY3JlYXRpb24gYmVjYXVzZSAKKyAgICAgICAgd2UgYXNzdW1lZCBp
dCB3YXMgdmlzaWJsZSBldmVuIGlmIHRoYXQgd2FzIG5vdCB0aGUgY2FzZS4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuY3BwOiBDaGVj
ayBwYWdlIHRocm90dGxlciBleGlzdHMuCisgICAgICAgIChXZWJLaXQ6Ok5QUnVudGltZU9iamVj
dE1hcDo6ZXZhbHVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cDogCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OldlYlBhZ2UpOiBJbml0aWFsaXplIHBhZ2Ug
dGhyb3R0bGVyIGZvciBXZWJLaXQyIHZpZXdzLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpt
b3VzZUV2ZW50KTogQ2hlY2sgcGFnZSB0aHJvdHRsZXIgZXhpc3RzLgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjp3aGVlbEV2ZW50KTogZGl0dG8KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
a2V5RXZlbnQpOiBkaXR0bworCiAyMDE0LTA0LTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZhaWxpbmcgdG8gZGVjb2RlIGEgbGF5ZXIgdHJlZSBj
b21taXQgbWVzc2FnZSByZXN1bHRlZCBpbiBzaWxlbnQgYW5kIG15c3RlcmlvdXMgZmFpbHVyZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05Q
UnVudGltZU9iamVjdE1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFwLmNwcAppbmRleCAwMzU2NTZjLi41ZWY1MTllIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBS
dW50aW1lT2JqZWN0TWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFwLmNwcApAQCAtMTkzLDggKzE5Myw4IEBAIGJv
b2wgTlBSdW50aW1lT2JqZWN0TWFwOjpldmFsdWF0ZShOUE9iamVjdCogbnBPYmplY3QsIGNvbnN0
IFN0cmluZyYgc2NyaXB0U3RyaW5nCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYgKG1fcGx1
Z2luVmlldyAmJiAhbV9wbHVnaW5WaWV3LT5pc0JlaW5nRGVzdHJveWVkKCkpIHsKICAgICAgICAg
aWYgKFBhZ2UqIHBhZ2UgPSBtX3BsdWdpblZpZXctPmZyYW1lKCktPnBhZ2UoKSkgewotICAgICAg
ICAgICAgaWYgKG1fcGx1Z2luVmlldy0+YXVkaW9IYXJkd2FyZUFjdGl2aXR5KCkgIT0gV2ViQ29y
ZTo6QXVkaW9IYXJkd2FyZUFjdGl2aXR5VHlwZTo6SXNJbmFjdGl2ZSkKLSAgICAgICAgICAgICAg
ICBwYWdlLT5wYWdlVGhyb3R0bGVyKCkucGx1Z2luRGlkRXZhbHVhdGVXaGlsZUF1ZGlvSXNQbGF5
aW5nKCk7CisgICAgICAgICAgICBpZiAobV9wbHVnaW5WaWV3LT5hdWRpb0hhcmR3YXJlQWN0aXZp
dHkoKSAhPSBXZWJDb3JlOjpBdWRpb0hhcmR3YXJlQWN0aXZpdHlUeXBlOjpJc0luYWN0aXZlICYm
IHBhZ2UtPnBhZ2VUaHJvdHRsZXIoKSkKKyAgICAgICAgICAgICAgICBwYWdlLT5wYWdlVGhyb3R0
bGVyKCktPnBsdWdpbkRpZEV2YWx1YXRlV2hpbGVBdWRpb0lzUGxheWluZygpOwogICAgICAgICB9
CiAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggYWY1MzQ4Ni4uNTRlZmY5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDAyLDYgKzQwMiw3IEBAIFdlYlBhZ2U6
OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
JiBwYXJhbWV0ZXJzKQogICAgIG1fcGFnZS0+c2V0Vmlld1N0YXRlKG1fdmlld1N0YXRlKTsKICAg
ICBpZiAoIWlzVmlzaWJsZSgpKQogICAgICAgICBtX3BhZ2UtPnNldElzUHJlcmVuZGVyKCk7Cisg
ICAgbV9wYWdlLT5jcmVhdGVQYWdlVGhyb3R0bGVyKCk7CiAKICAgICB1cGRhdGVJc0luV2luZG93
KHRydWUpOwogCkBAIC0xNzQ2LDcgKzE3NDcsOCBAQCBzdGF0aWMgYm9vbCBoYW5kbGVNb3VzZUV2
ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQmIG1vdXNlRXZlbnQsIFdlYlBhZ2UqIHBhZ2UsIGJvbwog
CiB2b2lkIFdlYlBhZ2U6Om1vdXNlRXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYgbW91c2VFdmVu
dCkKIHsKLSAgICBtX3BhZ2UtPnBhZ2VUaHJvdHRsZXIoKS5kaWRSZWNlaXZlVXNlcklucHV0KCk7
CisgICAgaWYgKG1fcGFnZS0+cGFnZVRocm90dGxlcigpKQorICAgICAgICBtX3BhZ2UtPnBhZ2VU
aHJvdHRsZXIoKS0+ZGlkUmVjZWl2ZVVzZXJJbnB1dCgpOwogCiAjaWYgRU5BQkxFKENPTlRFWFRf
TUVOVVMpCiAgICAgLy8gRG9uJ3QgdHJ5IHRvIGhhbmRsZSBhbnkgcGVuZGluZyBtb3VzZSBldmVu
dHMgaWYgYSBjb250ZXh0IG1lbnUgaXMgc2hvd2luZy4KQEAgLTE4MTQsNyArMTgxNiw4IEBAIHN0
YXRpYyBib29sIGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgV2ViV2hlZWxFdmVudCYgd2hlZWxFdmVu
dCwgUGFnZSogcGFnZSkKIAogdm9pZCBXZWJQYWdlOjp3aGVlbEV2ZW50KGNvbnN0IFdlYldoZWVs
RXZlbnQmIHdoZWVsRXZlbnQpCiB7Ci0gICAgbV9wYWdlLT5wYWdlVGhyb3R0bGVyKCkuZGlkUmVj
ZWl2ZVVzZXJJbnB1dCgpOworICAgIGlmKG1fcGFnZS0+cGFnZVRocm90dGxlcigpKQorICAgICAg
ICBtX3BhZ2UtPnBhZ2VUaHJvdHRsZXIoKS0+ZGlkUmVjZWl2ZVVzZXJJbnB1dCgpOwogCiAgICAg
Ym9vbCBoYW5kbGVkID0gZmFsc2U7CiAKQEAgLTE4NDUsNyArMTg0OCw4IEBAIHN0YXRpYyBib29s
IGhhbmRsZUtleUV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQmIGtleWJvYXJkRXZlbnQsIFBh
Z2UqIHBhZ2UpCiAKIHZvaWQgV2ViUGFnZTo6a2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVu
dCYga2V5Ym9hcmRFdmVudCkKIHsKLSAgICBtX3BhZ2UtPnBhZ2VUaHJvdHRsZXIoKS5kaWRSZWNl
aXZlVXNlcklucHV0KCk7CisgICAgaWYgKG1fcGFnZS0+cGFnZVRocm90dGxlcigpKQorICAgICAg
ICBtX3BhZ2UtPnBhZ2VUaHJvdHRsZXIoKS0+ZGlkUmVjZWl2ZVVzZXJJbnB1dCgpOwogCiAgICAg
Ym9vbCBoYW5kbGVkID0gZmFsc2U7CiAKLS0gCjEuOC41LjIgKEFwcGxlIEdpdC00OCkKCg==
</data>
<flag name="review"
          id="253876"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>