<?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>188299</bug_id>
          
          <creation_ts>2018-08-03 02:09:50 -0700</creation_ts>
          <short_desc>Web process never leaves memory pressured state if caused by process size limit</short_desc>
          <delta_ts>2018-08-16 01:14:54 -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>WebKit Misc.</component>
          <version>WebKit 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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>saam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1447558</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-08-03 02:09:50 -0700</bug_when>
    <thetext>We should not set low memory set for per-process memory warnings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447559</commentid>
    <comment_count>1</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-08-03 02:10:03 -0700</bug_when>
    <thetext>&lt;rdar://problem/42157442&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447562</commentid>
    <comment_count>2</comment_count>
      <attachid>346465</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-08-03 02:29:57 -0700</bug_when>
    <thetext>Created attachment 346465
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447574</commentid>
    <comment_count>3</comment_count>
      <attachid>346470</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-08-03 03:29:32 -0700</bug_when>
    <thetext>Created attachment 346470
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447626</commentid>
    <comment_count>4</comment_count>
      <attachid>346470</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-03 08:26:41 -0700</bug_when>
    <thetext>Comment on attachment 346470
patch

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

&gt; Source/WTF/wtf/cocoa/MemoryPressureHandlerCocoa.mm:90
&gt; +            // Per process notification are one shot things while the system status is a state.

I think it&apos;s confusing to talk about &quot;per process&quot; notifications here, since the reader will probably think that refers to the &quot;DISPATCH_MEMORYPRESSURE_PROC_LIMIT_&quot; notifications, when really the DISPATCH_MEMORYPRESSURE_ are per-process for processes with an explicit jetsam limit (as I understand it).

&gt; Source/WTF/wtf/cocoa/MemoryPressureHandlerCocoa.mm:96
&gt; +                return MemoryPressureHandler::singleton().isUnderMemoryPressure();

Is this line only about simulated memory pressure? If so, would be nice to rename that function since it&apos;s really confusing that the input to setUnderMemoryPressure() uses isUnderMemoryPressure().

&gt; Source/WTF/wtf/cocoa/MemoryPressureHandlerCocoa.mm:109
&gt; +            MemoryPressureHandler::singleton().setUnderMemoryPressure(isUnderVMMemoryPressure);

I&apos;m still not sure how you get out of memory pressure with this code, since isUnderVMMemoryPressure doesn&apos;t consult DISPATCH_MEMORYPRESSURE_PROC_LIMIT_CRITICAL.

&gt; Source/WTF/wtf/cocoa/MemoryPressureHandlerCocoa.mm:118
&gt; -                NSLog(@&quot;Got memory pressure notification (%s)&quot;, critical ? &quot;critical&quot; : &quot;non-critical&quot;);
&gt; +                NSLog(@&quot;Got memory pressure notification %lu (%s)&quot;, status, isCritical ? &quot;critical&quot; : &quot;non-critical&quot;);

These NSLogs should be WTFLogAlways, so they show in iOS syslog. Are they even useful with all the release logging we have? Should they be release logs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447674</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-08-03 10:34:24 -0700</bug_when>
    <thetext>&gt; &gt; Source/WTF/wtf/cocoa/MemoryPressureHandlerCocoa.mm:96
&gt; &gt; +                return MemoryPressureHandler::singleton().isUnderMemoryPressure();
&gt; 
&gt; Is this line only about simulated memory pressure? If so, would be nice to
&gt; rename that function since it&apos;s really confusing that the input to
&gt; setUnderMemoryPressure() uses isUnderMemoryPressure().

No, that line is about making DISPATCH_MEMORYPRESSURE_PROC_LIMIT_* notifications to have no effect to the memory pressure state. When we get those we just stay in the current state.

&gt; I&apos;m still not sure how you get out of memory pressure with this code, since
&gt; isUnderVMMemoryPressure doesn&apos;t consult
&gt; DISPATCH_MEMORYPRESSURE_PROC_LIMIT_CRITICAL.

Only DISPATCH_MEMORYPRESSURE_CRITICAL puts us into the pressured state, we get out when we receive DISPATCH_MEMORYPRESSURE_NORMAL or DISPATCH_MEMORYPRESSURE_WARN.

&gt; These NSLogs should be WTFLogAlways, so they show in iOS syslog. Are they
&gt; even useful with all the release logging we have? Should they be release
&gt; logs?

I suppose release logging changes in pressure state might be useful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447846</commentid>
    <comment_count>6</comment_count>
      <attachid>346470</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-03 17:31:40 -0700</bug_when>
    <thetext>Comment on attachment 346470
patch

I would like to see a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447989</commentid>
    <comment_count>7</comment_count>
      <attachid>346599</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-08-05 03:26:33 -0700</bug_when>
    <thetext>Created attachment 346599
patch

Factored this bit differently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448009</commentid>
    <comment_count>8</comment_count>
      <attachid>346599</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-08-05 15:56:15 -0700</bug_when>
    <thetext>Comment on attachment 346599
patch

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

&gt; Source/WTF/wtf/cocoa/MemoryPressureHandlerCocoa.mm:36
&gt; +#if PLATFORM(IOS) &amp;&amp; USE(APPLE_INTERNAL_SDK)
&gt; +#include &lt;dispatch/private.h&gt;
&gt; +#endif

Can we use an XXXSPI.h header for this instead?

&gt; Source/WTF/wtf/cocoa/MemoryPressureHandlerCocoa.mm:55
&gt; -static dispatch_source_t _cache_event_source = 0;
&gt; -static dispatch_source_t _timer_event_source = 0;
&gt; +static dispatch_source_t _memory_pressure_event_source = nullptr;
&gt; +static dispatch_source_t _timer_event_source = nullptr;
&gt;  static int _notifyTokens[3];

Why not use standard WebKit naming style? The underscores here are not our usual style.

&gt; Source/WTF/wtf/cocoa/MemoryPressureHandlerCocoa.mm:78
&gt; +#if USE(APPLE_INTERNAL_SDK)
&gt; +        memoryStatusFlags |= DISPATCH_MEMORYPRESSURE_PROC_LIMIT_WARN | DISPATCH_MEMORYPRESSURE_PROC_LIMIT_CRITICAL;
&gt; +#endif

Don’t we want to avoid things like this where we compile incorrectly when USE(APPLE_INTERNAL_SDK) is not set?

&gt; Source/WTF/wtf/cocoa/MemoryPressureHandlerCocoa.mm:104
&gt; +#if USE(APPLE_INTERNAL_SDK)
&gt; +            // Process memory limit events.

Ditto.

&gt; Source/WTF/wtf/cocoa/MemoryPressureHandlerCocoa.mm:117
&gt; +            if (response)
&gt; +                MemoryPressureHandler::singleton().respondToMemoryPressure(*response);

Seems like we could make these calls inside the switch statement. Or could move the setUnderMemoryPressure call out here.

I don’t see a compelling reason to use std::optional for &quot;response&quot; but to for &quot;under memory pressure&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448105</commentid>
    <comment_count>9</comment_count>
      <attachid>346625</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-08-06 06:34:53 -0700</bug_when>
    <thetext>Created attachment 346625
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448107</commentid>
    <comment_count>10</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-08-06 06:38:13 -0700</bug_when>
    <thetext>Attachment 346625 did not pass style-queue:


ERROR: Source/WTF/wtf/spi/darwin/DispatchSPI.h:35:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WTF/wtf/spi/darwin/DispatchSPI.h:36:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 2 in 4 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>1448414</commentid>
    <comment_count>11</comment_count>
      <attachid>346625</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-07 03:01:25 -0700</bug_when>
    <thetext>Comment on attachment 346625
patch

Clearing flags on attachment: 346625

Committed r234646: &lt;https://trac.webkit.org/changeset/234646&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448415</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-07 03:01:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1450499</commentid>
    <comment_count>13</comment_count>
      <attachid>346625</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-08-15 15:43:59 -0700</bug_when>
    <thetext>Comment on attachment 346625
patch

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

&gt; Source/WTF/wtf/cocoa/MemoryPressureHandlerCocoa.mm:105
&gt; +            WTFLogAlways(&quot;Received memory pressure event %lu vm pressure %d&quot;, status, isUnderMemoryPressure());

Do we really want to always log this? It&apos;s not rare for this to happen somewhat frequently on iOS in my experience.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1450630</commentid>
    <comment_count>14</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-08-16 01:14:54 -0700</bug_when>
    <thetext>&gt; Do we really want to always log this? It&apos;s not rare for this to happen
&gt; somewhat frequently on iOS in my experience.

Knowing that there was a memory warning is pretty important for understanding many hard to reproduce glitches. But we can certainly limit it if it turns out to be a problem.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346465</attachid>
            <date>2018-08-03 02:29:57 -0700</date>
            <delta_ts>2018-08-03 03:29:41 -0700</delta_ts>
            <desc>patch</desc>
            <filename>process-limit-notifications.patch</filename>
            <type>text/plain</type>
            <size>5458</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMzQ1MzkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE4LTA4LTAzICBBbnR0aSBLb2l2aXN0byAgPGFu
dHRpQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgcHJvY2VzcyBuZXZlciBsZWF2ZXMgbWVtb3J5
IHByZXNzdXJlZCBzdGF0ZSBpZiBjYXVzZWQgYnkgcGVyLXByb2Nlc3MgbGltaXQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODI5OQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNDIxNTc0NDI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRm9yIHN5c3RlbSBtZW1vcnkgcHJlc3N1cmUgd2FybmluZ3Mgd2Ug
Z2V0IHNpZ25hbGVkIHdoZW4gZXhpdGluZyB0aGUgc3RhdGUgc28gd2UgY2FuIGNsZWFyCisgICAg
ICAgIHRoZSBpc1VuZGVyTWVtb3J5UHJlc3N1cmUgYml0LiBIb3dldmVyIGFzIGEgY29tcGF0aWJp
bGl0eSBiZWhhdmlvciB3ZSB3ZXJlIGFsc28gbm90aWZpZWQgdXNpbmcKKyAgICAgICAgdGhlIHNh
bWUgbm90aWZpY2F0aW9ucyB3aGVuIGFwcHJvYWNoaW5nIHRoZSBwZXItcHJvY2VzcyBsaW1pdC4g
SW4gdGhpcyBjYXNlIHRoZXJlIGlzIG5vICJhbGwgY2xlYXIiCisgICAgICAgIG5vdGlmaWNhdGlv
biBzbyB3ZSdkIHN0YXkgaW4gcHJlc3N1cmVkIHN0YXRlIGZvcmV2ZXIsIGxlYWRpbmcgdG8gdW5u
ZWNlc3NhcmlseSBkZWdyYWRlZCB1c2VyIGV4cGVyaWVuY2UuCisKKyAgICAgICAgKiB3dGYvY29j
b2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW06CisgICAgICAgIChXVEY6Ok1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6aW5zdGFsbCk6CisKKyAgICAgICAgSW5zdGFsbCBhIGhhbmRsZXIgZm9y
IHBlci1wcm9jZXNzIG5vdGlmaWNhdGlvbnMuIFRoaXMgZGlzYWJsZXMgdGhlIGNvbXBhdGliaWxp
dHkgYmVoYXZpb3IsCisgICAgICAgIHZtIHByZXNzdXJlIG5vdGlmaWNhdGlvbnMgd2lsbCBiZSBy
ZWNlaXZlZCBmb3Igdm0gcHJlc3N1cmUgb25seS4KKworICAgICAgICBQZXItcHJvY2VzcyBub3Rp
ZmljYXRpb25zIGFyZSB0cmVhdGVkIGFzIG9uZS1zaG90IHRoaW5ncy4gV2UgZG8gY2xlYW51cHMg
YmFzZWQgb24gY3JpdGljYWxpdHkgYnV0CisgICAgICAgIGRvbid0IGVudGVyIHRoZSBwcmVzc3Vy
ZWQgc3RhdGUuCisKIDIwMTgtMDgtMDIgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVhZGluZyBpbnN0cnVjdGlvblBvaW50ZXIgZnJvbSBQbGF0Zm9ybVJlZ2lz
dGVycyBtYXkgZmFpbCB3aGVuIHVzaW5nIHBvaW50ZXIgdGFnZ2luZwpJbmRleDogU291cmNlL1dU
Ri93dGYvY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dURi93dGYvY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0JKHJldmlz
aW9uIDIzNDQ5NikKKysrIFNvdXJjZS9XVEYvd3RmL2NvY29hL01lbW9yeVByZXNzdXJlSGFuZGxl
ckNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSwxMCBAQAogI2ltcG9ydCA8bWFs
bG9jL21hbGxvYy5oPgogI2ltcG9ydCA8bm90aWZ5Lmg+CiAKKyNpZiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQorI2luY2x1ZGUgPGRpc3BhdGNoL3ByaXZhdGUuaD4KKyNlbmRpZgorCiAjZGVmaW5l
IEVOQUJMRV9GTVdfRk9PVFBSSU5UX0NPTVBBUklTT04gMAogCiBleHRlcm4gIkMiIHZvaWQgY2Fj
aGVfc2ltdWxhdGVfbWVtb3J5X3dhcm5pbmdfZXZlbnQodWludDY0X3QpOwpAQCAtNjgsMzAgKzcy
LDUyIEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjppbnN0YWxsKCkKIAogICAgIGRpc3Bh
dGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57CiAjaWYgUExBVEZPUk0oSU9T
KQotICAgICAgICBfY2FjaGVfZXZlbnRfc291cmNlID0gZGlzcGF0Y2hfc291cmNlX2NyZWF0ZShE
SVNQQVRDSF9TT1VSQ0VfVFlQRV9NRU1PUllQUkVTU1VSRSwgMCwgRElTUEFUQ0hfTUVNT1JZUFJF
U1NVUkVfTk9STUFMIHwgRElTUEFUQ0hfTUVNT1JZUFJFU1NVUkVfV0FSTiB8IERJU1BBVENIX01F
TU9SWVBSRVNTVVJFX0NSSVRJQ0FMLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpKTsKLSNlbGlm
IFBMQVRGT1JNKE1BQykKLSAgICAgICAgX2NhY2hlX2V2ZW50X3NvdXJjZSA9IGRpc3BhdGNoX3Nv
dXJjZV9jcmVhdGUoRElTUEFUQ0hfU09VUkNFX1RZUEVfTUVNT1JZUFJFU1NVUkUsIDAsIERJU1BB
VENIX01FTU9SWVBSRVNTVVJFX0NSSVRJQ0FMLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpKTsK
KyAgICAgICAgYXV0byBtZW1vcnlTdGF0dXNGbGFncyA9IERJU1BBVENIX01FTU9SWVBSRVNTVVJF
X05PUk1BTCB8IERJU1BBVENIX01FTU9SWVBSRVNTVVJFX1dBUk4gfCBESVNQQVRDSF9NRU1PUllQ
UkVTU1VSRV9DUklUSUNBTDsKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorICAgICAgICBt
ZW1vcnlTdGF0dXNGbGFncyB8PSBESVNQQVRDSF9NRU1PUllQUkVTU1VSRV9QUk9DX0xJTUlUX1dB
Uk4gfCBESVNQQVRDSF9NRU1PUllQUkVTU1VSRV9QUk9DX0xJTUlUX0NSSVRJQ0FMOworI2VuZGlm
CisjZWxzZSAvLyBQTEFURk9STShNQUMpCisgICAgICAgIGF1dG8gbWVtb3J5U3RhdHVzRmxhZ3Mg
PSBESVNQQVRDSF9NRU1PUllQUkVTU1VSRV9DUklUSUNBTDsKKyAgICAgICAgYXV0byBpc0NyaXRp
Y2FsID0gdHJ1ZTsKICNlbmRpZgorICAgICAgICBfY2FjaGVfZXZlbnRfc291cmNlID0gZGlzcGF0
Y2hfc291cmNlX2NyZWF0ZShESVNQQVRDSF9TT1VSQ0VfVFlQRV9NRU1PUllQUkVTU1VSRSwgMCwg
bWVtb3J5U3RhdHVzRmxhZ3MsIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkpOwogCiAgICAgICAg
IGRpc3BhdGNoX3NldF9jb250ZXh0KF9jYWNoZV9ldmVudF9zb3VyY2UsIHRoaXMpOwogICAgICAg
ICBkaXNwYXRjaF9zb3VyY2Vfc2V0X2V2ZW50X2hhbmRsZXIoX2NhY2hlX2V2ZW50X3NvdXJjZSwg
XnsKLSAgICAgICAgICAgIGJvb2wgY3JpdGljYWwgPSB0cnVlOwogI2lmIFBMQVRGT1JNKElPUykK
ICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc3RhdHVzID0gZGlzcGF0Y2hfc291cmNlX2dldF9k
YXRhKF9jYWNoZV9ldmVudF9zb3VyY2UpOwotICAgICAgICAgICAgY3JpdGljYWwgPSBzdGF0dXMg
PT0gRElTUEFUQ0hfTUVNT1JZUFJFU1NVUkVfQ1JJVElDQUw7Ci0gICAgICAgICAgICBhdXRvJiBt
ZW1vcnlQcmVzc3VyZUhhbmRsZXIgPSBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigp
OwotICAgICAgICAgICAgYm9vbCB3YXNDcml0aWNhbCA9IG1lbW9yeVByZXNzdXJlSGFuZGxlci5p
c1VuZGVyTWVtb3J5UHJlc3N1cmUoKTsKLSAgICAgICAgICAgIG1lbW9yeVByZXNzdXJlSGFuZGxl
ci5zZXRVbmRlck1lbW9yeVByZXNzdXJlKGNyaXRpY2FsKTsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgLy8gUGVyIHByb2Nlc3Mgbm90aWZpY2F0aW9uIGFyZSBvbmUgc2hvdCB0aGluZ3Mgd2hp
bGUgdGhlIHN5c3RlbSBzdGF0dXMgaXMgYSBzdGF0ZS4KKyAgICAgICAgICAgIGJvb2wgaXNVbmRl
clZNTWVtb3J5UHJlc3N1cmUgPSBbJl0geworICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT0g
RElTUEFUQ0hfTUVNT1JZUFJFU1NVUkVfQ1JJVElDQUwpCisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT0gRElTUEFUQ0hfTUVNT1JZ
UFJFU1NVUkVfTk9STUFMKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkuaXNV
bmRlck1lbW9yeVByZXNzdXJlKCk7CisgICAgICAgICAgICB9KCk7CisKKyAgICAgICAgICAgIGJv
b2wgaXNDcml0aWNhbCA9IFsmXSB7CisgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyA9PSBESVNQ
QVRDSF9NRU1PUllQUkVTU1VSRV9DUklUSUNBTCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyAgICAgICAgICAgICAgICBpZiAo
c3RhdHVzID09IERJU1BBVENIX01FTU9SWVBSRVNTVVJFX1BST0NfTElNSVRfQ1JJVElDQUwpCisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworI2VuZGlmCisgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfSgpOworCisgICAgICAgICAgICBNZW1vcnlQcmVz
c3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLnNldFVuZGVyTWVtb3J5UHJlc3N1cmUoaXNVbmRlclZN
TWVtb3J5UHJlc3N1cmUpOworCiAgICAgICAgICAgICBpZiAoc3RhdHVzID09IERJU1BBVENIX01F
TU9SWVBSRVNTVVJFX05PUk1BTCkgewogICAgICAgICAgICAgICAgIGlmIChSZWxpZWZMb2dnZXI6
OmxvZ2dpbmdFbmFibGVkKCkpCi0gICAgICAgICAgICAgICAgICAgIE5TTG9nKEAiU3lzdGVtIGlz
IG5vIGxvbmdlciB1bmRlciAoJXMpIG1lbW9yeSBwcmVzc3VyZS4iLCB3YXNDcml0aWNhbCA/ICJj
cml0aWNhbCIgOiAibm9uLWNyaXRpY2FsIik7CisgICAgICAgICAgICAgICAgICAgIE5TTG9nKEAi
U3lzdGVtIGlzIG5vIGxvbmdlciB1bmRlciBtZW1vcnkgcHJlc3N1cmUuIik7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoUmVsaWVmTG9n
Z2VyOjpsb2dnaW5nRW5hYmxlZCgpKQotICAgICAgICAgICAgICAgIE5TTG9nKEAiR290IG1lbW9y
eSBwcmVzc3VyZSBub3RpZmljYXRpb24gKCVzKSIsIGNyaXRpY2FsID8gImNyaXRpY2FsIiA6ICJu
b24tY3JpdGljYWwiKTsKKyAgICAgICAgICAgICAgICBOU0xvZyhAIkdvdCBtZW1vcnkgcHJlc3N1
cmUgbm90aWZpY2F0aW9uICVsdSAoJXMpIiwgc3RhdHVzLCBpc0NyaXRpY2FsID8gImNyaXRpY2Fs
IiA6ICJub24tY3JpdGljYWwiKTsKICNlbmRpZgotICAgICAgICAgICAgTWVtb3J5UHJlc3N1cmVI
YW5kbGVyOjpzaW5nbGV0b24oKS5yZXNwb25kVG9NZW1vcnlQcmVzc3VyZShjcml0aWNhbCA/IENy
aXRpY2FsOjpZZXMgOiBDcml0aWNhbDo6Tm8pOworICAgICAgICAgICAgTWVtb3J5UHJlc3N1cmVI
YW5kbGVyOjpzaW5nbGV0b24oKS5yZXNwb25kVG9NZW1vcnlQcmVzc3VyZShpc0NyaXRpY2FsID8g
Q3JpdGljYWw6OlllcyA6IENyaXRpY2FsOjpObyk7CiAgICAgICAgIH0pOwogICAgICAgICBkaXNw
YXRjaF9yZXN1bWUoX2NhY2hlX2V2ZW50X3NvdXJjZSk7CiAgICAgfSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346470</attachid>
            <date>2018-08-03 03:29:32 -0700</date>
            <delta_ts>2018-08-05 03:26:33 -0700</delta_ts>
            <desc>patch</desc>
            <filename>process-limit-notifications-2.patch</filename>
            <type>text/plain</type>
            <size>5500</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMzQ1MzkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE4LTA4LTAzICBBbnR0aSBLb2l2aXN0byAgPGFu
dHRpQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgcHJvY2VzcyBuZXZlciBsZWF2ZXMgbWVtb3J5
IHByZXNzdXJlZCBzdGF0ZSBpZiBjYXVzZWQgYnkgcGVyLXByb2Nlc3MgbGltaXQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODI5OQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNDIxNTc0NDI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRm9yIHN5c3RlbSBtZW1vcnkgcHJlc3N1cmUgd2FybmluZ3Mgd2Ug
Z2V0IHNpZ25hbGVkIHdoZW4gZXhpdGluZyB0aGUgc3RhdGUgc28gd2UgY2FuIGNsZWFyCisgICAg
ICAgIHRoZSBpc1VuZGVyTWVtb3J5UHJlc3N1cmUgYml0LiBIb3dldmVyIGFzIGEgY29tcGF0aWJp
bGl0eSBiZWhhdmlvciB3ZSB3ZXJlIGFsc28gbm90aWZpZWQgdXNpbmcKKyAgICAgICAgdGhlIHNh
bWUgbm90aWZpY2F0aW9ucyB3aGVuIGFwcHJvYWNoaW5nIHRoZSBwZXItcHJvY2VzcyBsaW1pdC4g
SW4gdGhpcyBjYXNlIHRoZXJlIGlzIG5vICJhbGwgY2xlYXIiCisgICAgICAgIG5vdGlmaWNhdGlv
biBzbyB3ZSdkIHN0YXkgaW4gcHJlc3N1cmVkIHN0YXRlIGZvcmV2ZXIsIGxlYWRpbmcgdG8gdW5u
ZWNlc3NhcmlseSBkZWdyYWRlZCB1c2VyIGV4cGVyaWVuY2UuCisKKyAgICAgICAgKiB3dGYvY29j
b2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW06CisgICAgICAgIChXVEY6Ok1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6aW5zdGFsbCk6CisKKyAgICAgICAgSW5zdGFsbCBhIGhhbmRsZXIgZm9y
IHBlci1wcm9jZXNzIG5vdGlmaWNhdGlvbnMuIFRoaXMgZGlzYWJsZXMgdGhlIGNvbXBhdGliaWxp
dHkgYmVoYXZpb3IsCisgICAgICAgIHZtIHByZXNzdXJlIG5vdGlmaWNhdGlvbnMgd2lsbCBiZSBy
ZWNlaXZlZCBmb3Igdm0gcHJlc3N1cmUgb25seS4KKworICAgICAgICBQZXItcHJvY2VzcyBub3Rp
ZmljYXRpb25zIGFyZSB0cmVhdGVkIGFzIG9uZS1zaG90IHRoaW5ncy4gV2UgZG8gY2xlYW51cHMg
YmFzZWQgb24gY3JpdGljYWxpdHkgYnV0CisgICAgICAgIGRvbid0IGVudGVyIHRoZSBwcmVzc3Vy
ZWQgc3RhdGUuCisKIDIwMTgtMDgtMDIgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVhZGluZyBpbnN0cnVjdGlvblBvaW50ZXIgZnJvbSBQbGF0Zm9ybVJlZ2lz
dGVycyBtYXkgZmFpbCB3aGVuIHVzaW5nIHBvaW50ZXIgdGFnZ2luZwpJbmRleDogU291cmNlL1dU
Ri93dGYvY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dURi93dGYvY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0JKHJldmlz
aW9uIDIzNDQ5NikKKysrIFNvdXJjZS9XVEYvd3RmL2NvY29hL01lbW9yeVByZXNzdXJlSGFuZGxl
ckNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSwxMCBAQAogI2ltcG9ydCA8bWFs
bG9jL21hbGxvYy5oPgogI2ltcG9ydCA8bm90aWZ5Lmg+CiAKKyNpZiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQorI2luY2x1ZGUgPGRpc3BhdGNoL3ByaXZhdGUuaD4KKyNlbmRpZgorCiAjZGVmaW5l
IEVOQUJMRV9GTVdfRk9PVFBSSU5UX0NPTVBBUklTT04gMAogCiBleHRlcm4gIkMiIHZvaWQgY2Fj
aGVfc2ltdWxhdGVfbWVtb3J5X3dhcm5pbmdfZXZlbnQodWludDY0X3QpOwpAQCAtNjgsMzAgKzcy
LDUyIEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjppbnN0YWxsKCkKIAogICAgIGRpc3Bh
dGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57CiAjaWYgUExBVEZPUk0oSU9T
KQotICAgICAgICBfY2FjaGVfZXZlbnRfc291cmNlID0gZGlzcGF0Y2hfc291cmNlX2NyZWF0ZShE
SVNQQVRDSF9TT1VSQ0VfVFlQRV9NRU1PUllQUkVTU1VSRSwgMCwgRElTUEFUQ0hfTUVNT1JZUFJF
U1NVUkVfTk9STUFMIHwgRElTUEFUQ0hfTUVNT1JZUFJFU1NVUkVfV0FSTiB8IERJU1BBVENIX01F
TU9SWVBSRVNTVVJFX0NSSVRJQ0FMLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpKTsKLSNlbGlm
IFBMQVRGT1JNKE1BQykKLSAgICAgICAgX2NhY2hlX2V2ZW50X3NvdXJjZSA9IGRpc3BhdGNoX3Nv
dXJjZV9jcmVhdGUoRElTUEFUQ0hfU09VUkNFX1RZUEVfTUVNT1JZUFJFU1NVUkUsIDAsIERJU1BB
VENIX01FTU9SWVBSRVNTVVJFX0NSSVRJQ0FMLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpKTsK
KyAgICAgICAgYXV0byBtZW1vcnlTdGF0dXNGbGFncyA9IERJU1BBVENIX01FTU9SWVBSRVNTVVJF
X05PUk1BTCB8IERJU1BBVENIX01FTU9SWVBSRVNTVVJFX1dBUk4gfCBESVNQQVRDSF9NRU1PUllQ
UkVTU1VSRV9DUklUSUNBTDsKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorICAgICAgICBt
ZW1vcnlTdGF0dXNGbGFncyB8PSBESVNQQVRDSF9NRU1PUllQUkVTU1VSRV9QUk9DX0xJTUlUX1dB
Uk4gfCBESVNQQVRDSF9NRU1PUllQUkVTU1VSRV9QUk9DX0xJTUlUX0NSSVRJQ0FMOworI2VuZGlm
CisjZWxzZSAvLyBQTEFURk9STShNQUMpCisgICAgICAgIGF1dG8gbWVtb3J5U3RhdHVzRmxhZ3Mg
PSBESVNQQVRDSF9NRU1PUllQUkVTU1VSRV9DUklUSUNBTDsKKyAgICAgICAgYXV0byBpc0NyaXRp
Y2FsID0gdHJ1ZTsKICNlbmRpZgorICAgICAgICBfY2FjaGVfZXZlbnRfc291cmNlID0gZGlzcGF0
Y2hfc291cmNlX2NyZWF0ZShESVNQQVRDSF9TT1VSQ0VfVFlQRV9NRU1PUllQUkVTU1VSRSwgMCwg
bWVtb3J5U3RhdHVzRmxhZ3MsIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkpOwogCiAgICAgICAg
IGRpc3BhdGNoX3NldF9jb250ZXh0KF9jYWNoZV9ldmVudF9zb3VyY2UsIHRoaXMpOwogICAgICAg
ICBkaXNwYXRjaF9zb3VyY2Vfc2V0X2V2ZW50X2hhbmRsZXIoX2NhY2hlX2V2ZW50X3NvdXJjZSwg
XnsKLSAgICAgICAgICAgIGJvb2wgY3JpdGljYWwgPSB0cnVlOwogI2lmIFBMQVRGT1JNKElPUykK
ICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc3RhdHVzID0gZGlzcGF0Y2hfc291cmNlX2dldF9k
YXRhKF9jYWNoZV9ldmVudF9zb3VyY2UpOwotICAgICAgICAgICAgY3JpdGljYWwgPSBzdGF0dXMg
PT0gRElTUEFUQ0hfTUVNT1JZUFJFU1NVUkVfQ1JJVElDQUw7Ci0gICAgICAgICAgICBhdXRvJiBt
ZW1vcnlQcmVzc3VyZUhhbmRsZXIgPSBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigp
OwotICAgICAgICAgICAgYm9vbCB3YXNDcml0aWNhbCA9IG1lbW9yeVByZXNzdXJlSGFuZGxlci5p
c1VuZGVyTWVtb3J5UHJlc3N1cmUoKTsKLSAgICAgICAgICAgIG1lbW9yeVByZXNzdXJlSGFuZGxl
ci5zZXRVbmRlck1lbW9yeVByZXNzdXJlKGNyaXRpY2FsKTsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgLy8gUGVyIHByb2Nlc3Mgbm90aWZpY2F0aW9uIGFyZSBvbmUgc2hvdCB0aGluZ3Mgd2hp
bGUgdGhlIHN5c3RlbSBzdGF0dXMgaXMgYSBzdGF0ZS4KKyAgICAgICAgICAgIGJvb2wgaXNVbmRl
clZNTWVtb3J5UHJlc3N1cmUgPSBbJl0geworICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT0g
RElTUEFUQ0hfTUVNT1JZUFJFU1NVUkVfQ1JJVElDQUwpCisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT0gRElTUEFUQ0hfTUVNT1JZ
UFJFU1NVUkVfTk9STUFMIHx8IHN0YXR1cyA9PSBESVNQQVRDSF9NRU1PUllQUkVTU1VSRV9XQVJO
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgcmV0
dXJuIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkuaXNVbmRlck1lbW9yeVByZXNz
dXJlKCk7CisgICAgICAgICAgICB9KCk7CisKKyAgICAgICAgICAgIGJvb2wgaXNDcml0aWNhbCA9
IFsmXSB7CisgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyA9PSBESVNQQVRDSF9NRU1PUllQUkVT
U1VSRV9DUklUSUNBTCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisjaWYgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKKyAgICAgICAgICAgICAgICBpZiAoc3RhdHVzID09IERJU1BB
VENIX01FTU9SWVBSRVNTVVJFX1BST0NfTElNSVRfQ1JJVElDQUwpCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOworI2VuZGlmCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICAgICAgfSgpOworCisgICAgICAgICAgICBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNp
bmdsZXRvbigpLnNldFVuZGVyTWVtb3J5UHJlc3N1cmUoaXNVbmRlclZNTWVtb3J5UHJlc3N1cmUp
OworCiAgICAgICAgICAgICBpZiAoc3RhdHVzID09IERJU1BBVENIX01FTU9SWVBSRVNTVVJFX05P
Uk1BTCkgewogICAgICAgICAgICAgICAgIGlmIChSZWxpZWZMb2dnZXI6OmxvZ2dpbmdFbmFibGVk
KCkpCi0gICAgICAgICAgICAgICAgICAgIE5TTG9nKEAiU3lzdGVtIGlzIG5vIGxvbmdlciB1bmRl
ciAoJXMpIG1lbW9yeSBwcmVzc3VyZS4iLCB3YXNDcml0aWNhbCA/ICJjcml0aWNhbCIgOiAibm9u
LWNyaXRpY2FsIik7CisgICAgICAgICAgICAgICAgICAgIE5TTG9nKEAiU3lzdGVtIGlzIG5vIGxv
bmdlciB1bmRlciBtZW1vcnkgcHJlc3N1cmUuIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoUmVsaWVmTG9nZ2VyOjpsb2dnaW5nRW5h
YmxlZCgpKQotICAgICAgICAgICAgICAgIE5TTG9nKEAiR290IG1lbW9yeSBwcmVzc3VyZSBub3Rp
ZmljYXRpb24gKCVzKSIsIGNyaXRpY2FsID8gImNyaXRpY2FsIiA6ICJub24tY3JpdGljYWwiKTsK
KyAgICAgICAgICAgICAgICBOU0xvZyhAIkdvdCBtZW1vcnkgcHJlc3N1cmUgbm90aWZpY2F0aW9u
ICVsdSAoJXMpIiwgc3RhdHVzLCBpc0NyaXRpY2FsID8gImNyaXRpY2FsIiA6ICJub24tY3JpdGlj
YWwiKTsKICNlbmRpZgotICAgICAgICAgICAgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0
b24oKS5yZXNwb25kVG9NZW1vcnlQcmVzc3VyZShjcml0aWNhbCA/IENyaXRpY2FsOjpZZXMgOiBD
cml0aWNhbDo6Tm8pOworICAgICAgICAgICAgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0
b24oKS5yZXNwb25kVG9NZW1vcnlQcmVzc3VyZShpc0NyaXRpY2FsID8gQ3JpdGljYWw6OlllcyA6
IENyaXRpY2FsOjpObyk7CiAgICAgICAgIH0pOwogICAgICAgICBkaXNwYXRjaF9yZXN1bWUoX2Nh
Y2hlX2V2ZW50X3NvdXJjZSk7CiAgICAgfSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346599</attachid>
            <date>2018-08-05 03:26:33 -0700</date>
            <delta_ts>2018-08-06 06:34:53 -0700</delta_ts>
            <desc>patch</desc>
            <filename>process-limit-notifications-3.patch</filename>
            <type>text/plain</type>
            <size>6964</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMzQ1MzkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE4LTA4LTAzICBBbnR0aSBLb2l2aXN0byAgPGFu
dHRpQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgcHJvY2VzcyBuZXZlciBsZWF2ZXMgbWVtb3J5
IHByZXNzdXJlZCBzdGF0ZSBpZiBjYXVzZWQgYnkgcHJvY2VzcyBzaXplIGxpbWl0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODgyOTkKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzQyMTU3NDQyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEZvciB2bSBtZW1vcnkgcHJlc3N1cmUgd2FybmluZ3Mgd2UgZ2V0
IG5vdGlmaWVkIHdoZW4gZXhpdGluZyB0aGUgc3RhdGUgYW5kIHdlIGNhbiBjbGVhcgorICAgICAg
ICB0aGUgaXNVbmRlck1lbW9yeVByZXNzdXJlIGJpdC4gSG93ZXZlciBhcyBhIGNvbXBhdGliaWxp
dHkgYmVoYXZpb3Igd2Ugd2VyZSBhbHNvIG5vdGlmaWVkIHVzaW5nCisgICAgICAgIHRoZSBzYW1l
IGV2ZW50IHdoZW4gYXBwcm9hY2hpbmcgdGhlIHByb2Nlc3Mgc2l6ZSBsaW1pdC4gSW4gdGhpcyBj
YXNlIHRoZXJlIGlzIG5vICJhbGwgY2xlYXIiCisgICAgICAgIGV2ZW50IHNvIHdlJ2Qgc3RheSBp
biBwcmVzc3VyZWQgc3RhdGUgZm9yZXZlciwgbGVhZGluZyB0byB1bm5lY2Vzc2FyaWx5IGRlZ3Jh
ZGVkIHVzZXIgZXhwZXJpZW5jZS4KKworICAgICAgICAqIHd0Zi9jb2NvYS9NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXJDb2NvYS5tbToKKyAgICAgICAgKFdURjo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpp
bnN0YWxsKToKKworICAgICAgICBJbnN0YWxsIGEgaGFuZGxlciBmb3IgcHJvY2VzcyBzaXplIGxp
bWl0IGV2ZW50cy4gVGhpcyBkaXNhYmxlcyB0aGUgY29tcGF0aWJpbGl0eSBiZWhhdmlvciwKKyAg
ICAgICAgdm0gcHJlc3N1cmUgZXZlbnRzIHdpbGwgYmUgcmVjZWl2ZWQgZm9yIHZtIHByZXNzdXJl
IG9ubHkuCisKKyAgICAgICAgUHJvY2VzcyBzaXplIGxpbWl0IGV2ZW50cyBhcmUgdHJlYXRlZCBh
cyBvbmUtc2hvdC4gV2UgZG8gY2xlYW51cHMgYmFzZWQgb24gY3JpdGljYWxpdHkgYnV0CisgICAg
ICAgIGRvbid0IGVudGVyIHRoZSBwcmVzc3VyZWQgc3RhdGUuCisKIDIwMTgtMDgtMDIgIFNhYW0g
QmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVhZGluZyBpbnN0cnVjdGlv
blBvaW50ZXIgZnJvbSBQbGF0Zm9ybVJlZ2lzdGVycyBtYXkgZmFpbCB3aGVuIHVzaW5nIHBvaW50
ZXIgdGFnZ2luZwpJbmRleDogU291cmNlL1dURi93dGYvY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5k
bGVyQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvY29jb2EvTWVtb3J5UHJl
c3N1cmVIYW5kbGVyQ29jb2EubW0JKHJldmlzaW9uIDIzNDQ5NikKKysrIFNvdXJjZS9XVEYvd3Rm
L2NvY29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0z
MSw2ICszMSwxMCBAQAogI2ltcG9ydCA8bWFsbG9jL21hbGxvYy5oPgogI2ltcG9ydCA8bm90aWZ5
Lmg+CiAKKyNpZiBQTEFURk9STShJT1MpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW5j
bHVkZSA8ZGlzcGF0Y2gvcHJpdmF0ZS5oPgorI2VuZGlmCisKICNkZWZpbmUgRU5BQkxFX0ZNV19G
T09UUFJJTlRfQ09NUEFSSVNPTiAwCiAKIGV4dGVybiAiQyIgdm9pZCBjYWNoZV9zaW11bGF0ZV9t
ZW1vcnlfd2FybmluZ19ldmVudCh1aW50NjRfdCk7CkBAIC00Niw4ICs1MCw4IEBAIHZvaWQgTWVt
b3J5UHJlc3N1cmVIYW5kbGVyOjpwbGF0Zm9ybVJlbGUKICAgICB9CiB9CiAKLXN0YXRpYyBkaXNw
YXRjaF9zb3VyY2VfdCBfY2FjaGVfZXZlbnRfc291cmNlID0gMDsKLXN0YXRpYyBkaXNwYXRjaF9z
b3VyY2VfdCBfdGltZXJfZXZlbnRfc291cmNlID0gMDsKK3N0YXRpYyBkaXNwYXRjaF9zb3VyY2Vf
dCBfbWVtb3J5X3ByZXNzdXJlX2V2ZW50X3NvdXJjZSA9IG51bGxwdHI7CitzdGF0aWMgZGlzcGF0
Y2hfc291cmNlX3QgX3RpbWVyX2V2ZW50X3NvdXJjZSA9IG51bGxwdHI7CiBzdGF0aWMgaW50IF9u
b3RpZnlUb2tlbnNbM107CiAKIC8vIERpc2FibGUgbWVtb3J5IGV2ZW50IHJlY2VwdGlvbiBmb3Ig
YSBtaW5pbXVtIG9mIHNfbWluaW11bUhvbGRPZmZUaW1lCkBAIC02OCwzMiArNzIsNTEgQEAgdm9p
ZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Omluc3RhbGwoKQogCiAgICAgZGlzcGF0Y2hfYXN5bmMo
ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKICNpZiBQTEFURk9STShJT1MpCi0gICAgICAg
IF9jYWNoZV9ldmVudF9zb3VyY2UgPSBkaXNwYXRjaF9zb3VyY2VfY3JlYXRlKERJU1BBVENIX1NP
VVJDRV9UWVBFX01FTU9SWVBSRVNTVVJFLCAwLCBESVNQQVRDSF9NRU1PUllQUkVTU1VSRV9OT1JN
QUwgfCBESVNQQVRDSF9NRU1PUllQUkVTU1VSRV9XQVJOIHwgRElTUEFUQ0hfTUVNT1JZUFJFU1NV
UkVfQ1JJVElDQUwsIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkpOwotI2VsaWYgUExBVEZPUk0o
TUFDKQotICAgICAgICBfY2FjaGVfZXZlbnRfc291cmNlID0gZGlzcGF0Y2hfc291cmNlX2NyZWF0
ZShESVNQQVRDSF9TT1VSQ0VfVFlQRV9NRU1PUllQUkVTU1VSRSwgMCwgRElTUEFUQ0hfTUVNT1JZ
UFJFU1NVUkVfQ1JJVElDQUwsIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkpOworICAgICAgICBh
dXRvIG1lbW9yeVN0YXR1c0ZsYWdzID0gRElTUEFUQ0hfTUVNT1JZUFJFU1NVUkVfTk9STUFMIHwg
RElTUEFUQ0hfTUVNT1JZUFJFU1NVUkVfV0FSTiB8IERJU1BBVENIX01FTU9SWVBSRVNTVVJFX0NS
SVRJQ0FMOworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisgICAgICAgIG1lbW9yeVN0YXR1
c0ZsYWdzIHw9IERJU1BBVENIX01FTU9SWVBSRVNTVVJFX1BST0NfTElNSVRfV0FSTiB8IERJU1BB
VENIX01FTU9SWVBSRVNTVVJFX1BST0NfTElNSVRfQ1JJVElDQUw7CisjZW5kaWYKKyNlbHNlIC8v
IFBMQVRGT1JNKE1BQykKKyAgICAgICAgYXV0byBtZW1vcnlTdGF0dXNGbGFncyA9IERJU1BBVENI
X01FTU9SWVBSRVNTVVJFX0NSSVRJQ0FMOworICAgICAgICBhdXRvIHJlc3BvbnNlID0gc3RkOjpt
YWtlX29wdGlvbmFsKENyaXRpY2FsOjpZZXMpOwogI2VuZGlmCisgICAgICAgIF9tZW1vcnlfcHJl
c3N1cmVfZXZlbnRfc291cmNlID0gZGlzcGF0Y2hfc291cmNlX2NyZWF0ZShESVNQQVRDSF9TT1VS
Q0VfVFlQRV9NRU1PUllQUkVTU1VSRSwgMCwgbWVtb3J5U3RhdHVzRmxhZ3MsIGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCkpOwogCi0gICAgICAgIGRpc3BhdGNoX3NldF9jb250ZXh0KF9jYWNoZV9l
dmVudF9zb3VyY2UsIHRoaXMpOwotICAgICAgICBkaXNwYXRjaF9zb3VyY2Vfc2V0X2V2ZW50X2hh
bmRsZXIoX2NhY2hlX2V2ZW50X3NvdXJjZSwgXnsKLSAgICAgICAgICAgIGJvb2wgY3JpdGljYWwg
PSB0cnVlOworICAgICAgICBkaXNwYXRjaF9zb3VyY2Vfc2V0X2V2ZW50X2hhbmRsZXIoX21lbW9y
eV9wcmVzc3VyZV9ldmVudF9zb3VyY2UsIF57CisgICAgICAgICAgICBhdXRvIHN0YXR1cyA9IGRp
c3BhdGNoX3NvdXJjZV9nZXRfZGF0YShfbWVtb3J5X3ByZXNzdXJlX2V2ZW50X3NvdXJjZSk7CiAj
aWYgUExBVEZPUk0oSU9TKQotICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzdGF0dXMgPSBkaXNw
YXRjaF9zb3VyY2VfZ2V0X2RhdGEoX2NhY2hlX2V2ZW50X3NvdXJjZSk7Ci0gICAgICAgICAgICBj
cml0aWNhbCA9IHN0YXR1cyA9PSBESVNQQVRDSF9NRU1PUllQUkVTU1VSRV9DUklUSUNBTDsKLSAg
ICAgICAgICAgIGF1dG8mIG1lbW9yeVByZXNzdXJlSGFuZGxlciA9IE1lbW9yeVByZXNzdXJlSGFu
ZGxlcjo6c2luZ2xldG9uKCk7Ci0gICAgICAgICAgICBib29sIHdhc0NyaXRpY2FsID0gbWVtb3J5
UHJlc3N1cmVIYW5kbGVyLmlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpOwotICAgICAgICAgICAgbWVt
b3J5UHJlc3N1cmVIYW5kbGVyLnNldFVuZGVyTWVtb3J5UHJlc3N1cmUoY3JpdGljYWwpOwotICAg
ICAgICAgICAgaWYgKHN0YXR1cyA9PSBESVNQQVRDSF9NRU1PUllQUkVTU1VSRV9OT1JNQUwpIHsK
LSAgICAgICAgICAgICAgICBpZiAoUmVsaWVmTG9nZ2VyOjpsb2dnaW5nRW5hYmxlZCgpKQotICAg
ICAgICAgICAgICAgICAgICBOU0xvZyhAIlN5c3RlbSBpcyBubyBsb25nZXIgdW5kZXIgKCVzKSBt
ZW1vcnkgcHJlc3N1cmUuIiwgd2FzQ3JpdGljYWwgPyAiY3JpdGljYWwiIDogIm5vbi1jcml0aWNh
bCIpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IHN0ZDo6b3B0aW9uYWw8Q3JpdGljYWw+IHJlc3BvbnNlOwogCi0gICAgICAgICAgICBpZiAoUmVs
aWVmTG9nZ2VyOjpsb2dnaW5nRW5hYmxlZCgpKQotICAgICAgICAgICAgICAgIE5TTG9nKEAiR290
IG1lbW9yeSBwcmVzc3VyZSBub3RpZmljYXRpb24gKCVzKSIsIGNyaXRpY2FsID8gImNyaXRpY2Fs
IiA6ICJub24tY3JpdGljYWwiKTsKKyAgICAgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7CisgICAg
ICAgICAgICAvLyBWTSBwcmVzc3VyZSBldmVudHMuCisgICAgICAgICAgICBjYXNlIERJU1BBVENI
X01FTU9SWVBSRVNTVVJFX05PUk1BTDoKKyAgICAgICAgICAgICAgICBNZW1vcnlQcmVzc3VyZUhh
bmRsZXI6OnNpbmdsZXRvbigpLnNldFVuZGVyTWVtb3J5UHJlc3N1cmUoZmFsc2UpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBESVNQQVRDSF9NRU1PUllQUkVTU1VS
RV9XQVJOOgorICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gQ3JpdGljYWw6Ok5vOworICAgICAg
ICAgICAgICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkuc2V0VW5kZXJNZW1v
cnlQcmVzc3VyZShmYWxzZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIERJU1BBVENIX01FTU9SWVBSRVNTVVJFX0NSSVRJQ0FMOgorICAgICAgICAgICAgICAgIHJl
c3BvbnNlID0gQ3JpdGljYWw6OlllczsKKyAgICAgICAgICAgICAgICBNZW1vcnlQcmVzc3VyZUhh
bmRsZXI6OnNpbmdsZXRvbigpLnNldFVuZGVyTWVtb3J5UHJlc3N1cmUodHJ1ZSk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyAgICAgICAgICAg
IC8vIFByb2Nlc3MgbWVtb3J5IGxpbWl0IGV2ZW50cy4KKyAgICAgICAgICAgIGNhc2UgRElTUEFU
Q0hfTUVNT1JZUFJFU1NVUkVfUFJPQ19MSU1JVF9XQVJOOgorICAgICAgICAgICAgICAgIHJlc3Bv
bnNlID0gQ3JpdGljYWw6Ok5vOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBESVNQQVRDSF9NRU1PUllQUkVTU1VSRV9QUk9DX0xJTUlUX0NSSVRJQ0FMOgorICAgICAg
ICAgICAgICAgIHJlc3BvbnNlID0gQ3JpdGljYWw6OlllczsKKyAgICAgICAgICAgICAgICBicmVh
azsKICNlbmRpZgotICAgICAgICAgICAgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0b24o
KS5yZXNwb25kVG9NZW1vcnlQcmVzc3VyZShjcml0aWNhbCA/IENyaXRpY2FsOjpZZXMgOiBDcml0
aWNhbDo6Tm8pOworICAgICAgICAgICAgfQorI2VuZGlmCisgICAgICAgICAgICBXVEZMb2dBbHdh
eXMoIlJlY2VpdmVkIG1lbW9yeSBwcmVzc3VyZSBldmVudCAlbHUgdm0gcHJlc3N1cmUgJWQgY3Jp
dGljYWwgJWQiLCBzdGF0dXMsIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkuaXNV
bmRlck1lbW9yeVByZXNzdXJlKCksIHJlc3BvbnNlICYmICpyZXNwb25zZSA9PSBDcml0aWNhbDo6
WWVzKTsKKworICAgICAgICAgICAgaWYgKHJlc3BvbnNlKQorICAgICAgICAgICAgICAgIE1lbW9y
eVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkucmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoKnJl
c3BvbnNlKTsKICAgICAgICAgfSk7Ci0gICAgICAgIGRpc3BhdGNoX3Jlc3VtZShfY2FjaGVfZXZl
bnRfc291cmNlKTsKKyAgICAgICAgZGlzcGF0Y2hfcmVzdW1lKF9tZW1vcnlfcHJlc3N1cmVfZXZl
bnRfc291cmNlKTsKICAgICB9KTsKIAogICAgIC8vIEFsbG93IHNpbXVsYXRpb24gb2YgbWVtb3J5
IHByZXNzdXJlIHdpdGggIm5vdGlmeXV0aWwgLXAgb3JnLldlYktpdC5sb3dNZW1vcnkiCkBAIC0x
MzIsMTQgKzE1NSwxNCBAQCB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6dW5pbnN0YWxsKCkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5f
cXVldWUoKSwgXnsKLSAgICAgICAgaWYgKF9jYWNoZV9ldmVudF9zb3VyY2UpIHsKLSAgICAgICAg
ICAgIGRpc3BhdGNoX3NvdXJjZV9jYW5jZWwoX2NhY2hlX2V2ZW50X3NvdXJjZSk7Ci0gICAgICAg
ICAgICBfY2FjaGVfZXZlbnRfc291cmNlID0gMDsKKyAgICAgICAgaWYgKF9tZW1vcnlfcHJlc3N1
cmVfZXZlbnRfc291cmNlKSB7CisgICAgICAgICAgICBkaXNwYXRjaF9zb3VyY2VfY2FuY2VsKF9t
ZW1vcnlfcHJlc3N1cmVfZXZlbnRfc291cmNlKTsKKyAgICAgICAgICAgIF9tZW1vcnlfcHJlc3N1
cmVfZXZlbnRfc291cmNlID0gbnVsbHB0cjsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChfdGlt
ZXJfZXZlbnRfc291cmNlKSB7CiAgICAgICAgICAgICBkaXNwYXRjaF9zb3VyY2VfY2FuY2VsKF90
aW1lcl9ldmVudF9zb3VyY2UpOwotICAgICAgICAgICAgX3RpbWVyX2V2ZW50X3NvdXJjZSA9IDA7
CisgICAgICAgICAgICBfdGltZXJfZXZlbnRfc291cmNlID0gbnVsbHB0cjsKICAgICAgICAgfQog
ICAgIH0pOwogCg==
</data>
<flag name="review"
          id="364437"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346625</attachid>
            <date>2018-08-06 06:34:53 -0700</date>
            <delta_ts>2018-08-07 03:01:25 -0700</delta_ts>
            <desc>patch</desc>
            <filename>process-limit-notifications-4.patch</filename>
            <type>text/plain</type>
            <size>13450</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMzQ1OTgpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDE4LTA4LTA2ICBBbnR0aSBLb2l2aXN0byAgPGFu
dHRpQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgcHJvY2VzcyBuZXZlciBsZWF2ZXMgbWVtb3J5
IHByZXNzdXJlZCBzdGF0ZSBpZiBjYXVzZWQgYnkgcHJvY2VzcyBzaXplIGxpbWl0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODgyOTkKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzQyMTU3NDQyPgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgorCisgICAgICAgIEZvciB2bSBtZW1vcnkgcHJlc3N1cmUgd2FybmluZ3Mgd2UgZ2V0IG5v
dGlmaWVkIHdoZW4gZXhpdGluZyB0aGUgc3RhdGUgYW5kIHdlIGNhbiBjbGVhcgorICAgICAgICB0
aGUgaXNVbmRlck1lbW9yeVByZXNzdXJlIGJpdC4gSG93ZXZlciBhcyBhIGNvbXBhdGliaWxpdHkg
YmVoYXZpb3Igd2Ugd2VyZSBhbHNvIG5vdGlmaWVkIHVzaW5nCisgICAgICAgIHRoZSBzYW1lIGV2
ZW50IHdoZW4gYXBwcm9hY2hpbmcgdGhlIHByb2Nlc3Mgc2l6ZSBsaW1pdC4gSW4gdGhpcyBjYXNl
IHRoZXJlIGlzIG5vICJhbGwgY2xlYXIiCisgICAgICAgIGV2ZW50IHNvIHdlJ2Qgc3RheSBpbiBw
cmVzc3VyZWQgc3RhdGUgZm9yZXZlciwgbGVhZGluZyB0byB1bm5lY2Vzc2FyaWx5IGRlZ3JhZGVk
IHVzZXIgZXhwZXJpZW5jZS4KKworICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIHd0Zi9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbToK
KyAgICAgICAgKFdURjo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjppbnN0YWxsKToKKworICAgICAg
ICBJbnN0YWxsIGEgaGFuZGxlciBmb3IgcHJvY2VzcyBzaXplIGxpbWl0IGV2ZW50cy4gVGhpcyBk
aXNhYmxlcyB0aGUgY29tcGF0aWJpbGl0eSBiZWhhdmlvciwKKyAgICAgICAgdm0gcHJlc3N1cmUg
ZXZlbnRzIHdpbGwgYmUgcmVjZWl2ZWQgZm9yIHZtIHByZXNzdXJlIG9ubHkuCisKKyAgICAgICAg
UHJvY2VzcyBzaXplIGxpbWl0IGV2ZW50cyBhcmUgdHJlYXRlZCBhcyBvbmUtc2hvdC4gV2UgZG8g
Y2xlYW51cHMgYmFzZWQgb24gY3JpdGljYWxpdHkgYnV0CisgICAgICAgIGRvbid0IGVudGVyIHRo
ZSBwcmVzc3VyZWQgc3RhdGUuCisKKyAgICAgICAgKFdURjo6TWVtb3J5UHJlc3N1cmVIYW5kbGVy
Ojp1bmluc3RhbGwpOgorICAgICAgICAoV1RGOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OmhvbGRP
ZmYpOgorICAgICAgICAqIHd0Zi9zcGkvZGFyd2luL0Rpc3BhdGNoU1BJLmg6IEFkZGVkLgorCiAy
MDE4LTA4LTAzICBCZW4gUmljaGFyZHMgIDxiZW50b25fcmljaGFyZHNAYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlIHNob3VsZCBjYWNoZSB0aGUgY29tcGlsZWQgc2FuZGJveCBwcm9maWxlIGluIGEg
ZGF0YSB2YXVsdApJbmRleDogU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CShyZXZpc2lvbiAyMzQ0OTYpCisrKyBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC02MzIsNiArNjMyLDcgQEAKIAkJRTNBMzJCQzIxRkM4
MzBFMjAwN0Q3RTc2IC8qIEpTVmFsdWVNYWxsb2MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNWYWx1ZU1hbGxvYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUzQTMyQkMzMUZDODMwRTIwMDdEN0U3NiAvKiBKU1ZhbHVlTWFsbG9jLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVmFsdWVNYWxsb2MuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTNFMTU4MjUxRUFEQTUzQzAwNEEwNzlEIC8qIFN5c3RlbUZyZWUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3lzdGVtRnJlZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFNDMxQ0M0QTIxMTg3QURCMDAwQzhBMDcgLyogRGlzcGF0
Y2hTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGF0Y2hTUEkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRBMEFEMzcxQTk2MjQ1NTAwNTM2REY2IC8q
IFdvcmtRdWV1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3Jr
UXVldWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEEwQUQzODFBOTYyNDU1
MDA1MzZERjYgLyogV29ya1F1ZXVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdvcmtRdWV1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEEwQUQzQzFBOTYy
NTNDMDA1MzZERjYgLyogV29ya1F1ZXVlQ29jb2EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV29ya1F1ZXVlQ29jb2EuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTI4Nyw2ICsxMjg4LDcgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCiAJCQkJREU1QTA5RkIxQkEzNjk5MjAwM0Q0NDI0IC8qIENvbW1vbkNyeXB0b1NQSS5o
ICovLAorCQkJCUU0MzFDQzRBMjExODdBREIwMDBDOEEwNyAvKiBEaXNwYXRjaFNQSS5oICovLAog
CQkJCTkzRERFOTMxMUNEQzA1MkQwMEZEMzQ5MSAvKiBkeWxkU1BJLmggKi8sCiAJCQkJQTUwOThB
RkYxQzE2OUUwNzAwMDg3Nzk3IC8qIFNhbmRib3hTUEkuaCAqLywKIAkJCQlDRTczRTAyNDE5RENC
N0FCMDA1ODBENUMgLyogWFBDU1BJLmggKi8sCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9jb2NvYS9N
ZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0
Zi9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQkocmV2aXNpb24gMjM0NDk2KQor
KysgU291cmNlL1dURi93dGYvY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0JKHdv
cmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbXBvcnQgPG1hY2gvdGFza19pbmZvLmg+
CiAjaW1wb3J0IDxtYWxsb2MvbWFsbG9jLmg+CiAjaW1wb3J0IDxub3RpZnkuaD4KKyNpbXBvcnQg
PHd0Zi9zcGkvZGFyd2luL0Rpc3BhdGNoU1BJLmg+CiAKICNkZWZpbmUgRU5BQkxFX0ZNV19GT09U
UFJJTlRfQ09NUEFSSVNPTiAwCiAKQEAgLTQ2LDkgKzQ3LDkgQEAgdm9pZCBNZW1vcnlQcmVzc3Vy
ZUhhbmRsZXI6OnBsYXRmb3JtUmVsZQogICAgIH0KIH0KIAotc3RhdGljIGRpc3BhdGNoX3NvdXJj
ZV90IF9jYWNoZV9ldmVudF9zb3VyY2UgPSAwOwotc3RhdGljIGRpc3BhdGNoX3NvdXJjZV90IF90
aW1lcl9ldmVudF9zb3VyY2UgPSAwOwotc3RhdGljIGludCBfbm90aWZ5VG9rZW5zWzNdOworc3Rh
dGljIGRpc3BhdGNoX3NvdXJjZV90IG1lbW9yeVByZXNzdXJlRXZlbnRTb3VyY2UgPSBudWxscHRy
Oworc3RhdGljIGRpc3BhdGNoX3NvdXJjZV90IHRpbWVyRXZlbnRTb3VyY2UgPSBudWxscHRyOwor
c3RhdGljIGludCBub3RpZnlUb2tlbnNbM107CiAKIC8vIERpc2FibGUgbWVtb3J5IGV2ZW50IHJl
Y2VwdGlvbiBmb3IgYSBtaW5pbXVtIG9mIHNfbWluaW11bUhvbGRPZmZUaW1lCiAvLyBzZWNvbmRz
IGFmdGVyIHJlY2VpdmluZyBhbiBldmVudC4gRG9uJ3QgbGV0IGV2ZW50cyBmaXJlIGFueSBzb29u
ZXIgdGhhbgpAQCAtNjMsNDEgKzY0LDUxIEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzX2hvbGRP
ZmZNdWx0aXBsaWUKIAogdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Omluc3RhbGwoKQogewot
ICAgIGlmIChtX2luc3RhbGxlZCB8fCBfdGltZXJfZXZlbnRfc291cmNlKQorICAgIGlmIChtX2lu
c3RhbGxlZCB8fCB0aW1lckV2ZW50U291cmNlKQogICAgICAgICByZXR1cm47CiAKICAgICBkaXNw
YXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeewogI2lmIFBMQVRGT1JNKElP
UykKLSAgICAgICAgX2NhY2hlX2V2ZW50X3NvdXJjZSA9IGRpc3BhdGNoX3NvdXJjZV9jcmVhdGUo
RElTUEFUQ0hfU09VUkNFX1RZUEVfTUVNT1JZUFJFU1NVUkUsIDAsIERJU1BBVENIX01FTU9SWVBS
RVNTVVJFX05PUk1BTCB8IERJU1BBVENIX01FTU9SWVBSRVNTVVJFX1dBUk4gfCBESVNQQVRDSF9N
RU1PUllQUkVTU1VSRV9DUklUSUNBTCwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSk7Ci0jZWxp
ZiBQTEFURk9STShNQUMpCi0gICAgICAgIF9jYWNoZV9ldmVudF9zb3VyY2UgPSBkaXNwYXRjaF9z
b3VyY2VfY3JlYXRlKERJU1BBVENIX1NPVVJDRV9UWVBFX01FTU9SWVBSRVNTVVJFLCAwLCBESVNQ
QVRDSF9NRU1PUllQUkVTU1VSRV9DUklUSUNBTCwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSk7
CisgICAgICAgIGF1dG8gbWVtb3J5U3RhdHVzRmxhZ3MgPSBESVNQQVRDSF9NRU1PUllQUkVTU1VS
RV9OT1JNQUwgfCBESVNQQVRDSF9NRU1PUllQUkVTU1VSRV9XQVJOIHwgRElTUEFUQ0hfTUVNT1JZ
UFJFU1NVUkVfQ1JJVElDQUwgfCBESVNQQVRDSF9NRU1PUllQUkVTU1VSRV9QUk9DX0xJTUlUX1dB
Uk4gfCBESVNQQVRDSF9NRU1PUllQUkVTU1VSRV9QUk9DX0xJTUlUX0NSSVRJQ0FMOworI2Vsc2Ug
Ly8gUExBVEZPUk0oTUFDKQorICAgICAgICBhdXRvIG1lbW9yeVN0YXR1c0ZsYWdzID0gRElTUEFU
Q0hfTUVNT1JZUFJFU1NVUkVfQ1JJVElDQUw7CiAjZW5kaWYKKyAgICAgICAgbWVtb3J5UHJlc3N1
cmVFdmVudFNvdXJjZSA9IGRpc3BhdGNoX3NvdXJjZV9jcmVhdGUoRElTUEFUQ0hfU09VUkNFX1RZ
UEVfTUVNT1JZUFJFU1NVUkUsIDAsIG1lbW9yeVN0YXR1c0ZsYWdzLCBkaXNwYXRjaF9nZXRfbWFp
bl9xdWV1ZSgpKTsKIAotICAgICAgICBkaXNwYXRjaF9zZXRfY29udGV4dChfY2FjaGVfZXZlbnRf
c291cmNlLCB0aGlzKTsKLSAgICAgICAgZGlzcGF0Y2hfc291cmNlX3NldF9ldmVudF9oYW5kbGVy
KF9jYWNoZV9ldmVudF9zb3VyY2UsIF57Ci0gICAgICAgICAgICBib29sIGNyaXRpY2FsID0gdHJ1
ZTsKKyAgICAgICAgZGlzcGF0Y2hfc291cmNlX3NldF9ldmVudF9oYW5kbGVyKG1lbW9yeVByZXNz
dXJlRXZlbnRTb3VyY2UsIF57CisgICAgICAgICAgICBhdXRvIHN0YXR1cyA9IGRpc3BhdGNoX3Nv
dXJjZV9nZXRfZGF0YShtZW1vcnlQcmVzc3VyZUV2ZW50U291cmNlKTsKICNpZiBQTEFURk9STShJ
T1MpCi0gICAgICAgICAgICB1bnNpZ25lZCBsb25nIHN0YXR1cyA9IGRpc3BhdGNoX3NvdXJjZV9n
ZXRfZGF0YShfY2FjaGVfZXZlbnRfc291cmNlKTsKLSAgICAgICAgICAgIGNyaXRpY2FsID0gc3Rh
dHVzID09IERJU1BBVENIX01FTU9SWVBSRVNTVVJFX0NSSVRJQ0FMOwotICAgICAgICAgICAgYXV0
byYgbWVtb3J5UHJlc3N1cmVIYW5kbGVyID0gTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0
b24oKTsKLSAgICAgICAgICAgIGJvb2wgd2FzQ3JpdGljYWwgPSBtZW1vcnlQcmVzc3VyZUhhbmRs
ZXIuaXNVbmRlck1lbW9yeVByZXNzdXJlKCk7Ci0gICAgICAgICAgICBtZW1vcnlQcmVzc3VyZUhh
bmRsZXIuc2V0VW5kZXJNZW1vcnlQcmVzc3VyZShjcml0aWNhbCk7Ci0gICAgICAgICAgICBpZiAo
c3RhdHVzID09IERJU1BBVENIX01FTU9SWVBSRVNTVVJFX05PUk1BTCkgewotICAgICAgICAgICAg
ICAgIGlmIChSZWxpZWZMb2dnZXI6OmxvZ2dpbmdFbmFibGVkKCkpCi0gICAgICAgICAgICAgICAg
ICAgIE5TTG9nKEAiU3lzdGVtIGlzIG5vIGxvbmdlciB1bmRlciAoJXMpIG1lbW9yeSBwcmVzc3Vy
ZS4iLCB3YXNDcml0aWNhbCA/ICJjcml0aWNhbCIgOiAibm9uLWNyaXRpY2FsIik7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgc3dpdGNoIChzdGF0dXMpIHsKKyAgICAgICAg
ICAgIC8vIFZNIHByZXNzdXJlIGV2ZW50cy4KKyAgICAgICAgICAgIGNhc2UgRElTUEFUQ0hfTUVN
T1JZUFJFU1NVUkVfTk9STUFMOgorICAgICAgICAgICAgICAgIHNldFVuZGVyTWVtb3J5UHJlc3N1
cmUoZmFsc2UpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBESVNQ
QVRDSF9NRU1PUllQUkVTU1VSRV9XQVJOOgorICAgICAgICAgICAgICAgIHNldFVuZGVyTWVtb3J5
UHJlc3N1cmUoZmFsc2UpOworICAgICAgICAgICAgICAgIHJlc3BvbmRUb01lbW9yeVByZXNzdXJl
KENyaXRpY2FsOjpObyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IERJU1BBVENIX01FTU9SWVBSRVNTVVJFX0NSSVRJQ0FMOgorICAgICAgICAgICAgICAgIHNldFVu
ZGVyTWVtb3J5UHJlc3N1cmUodHJ1ZSk7CisgICAgICAgICAgICAgICAgcmVzcG9uZFRvTWVtb3J5
UHJlc3N1cmUoQ3JpdGljYWw6Olllcyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAvLyBQcm9jZXNzIG1lbW9yeSBsaW1pdCBldmVudHMuCisgICAgICAgICAgICBjYXNlIERJ
U1BBVENIX01FTU9SWVBSRVNTVVJFX1BST0NfTElNSVRfV0FSTjoKKyAgICAgICAgICAgICAgICBy
ZXNwb25kVG9NZW1vcnlQcmVzc3VyZShDcml0aWNhbDo6Tm8pOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSBESVNQQVRDSF9NRU1PUllQUkVTU1VSRV9QUk9DX0xJTUlU
X0NSSVRJQ0FMOgorICAgICAgICAgICAgICAgIHJlc3BvbmRUb01lbW9yeVByZXNzdXJlKENyaXRp
Y2FsOjpZZXMpOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBpZiAoUmVsaWVmTG9nZ2VyOjpsb2dnaW5nRW5hYmxlZCgpKQotICAgICAgICAgICAg
ICAgIE5TTG9nKEAiR290IG1lbW9yeSBwcmVzc3VyZSBub3RpZmljYXRpb24gKCVzKSIsIGNyaXRp
Y2FsID8gImNyaXRpY2FsIiA6ICJub24tY3JpdGljYWwiKTsKKyNlbHNlIC8vIFBMQVRGT1JNKE1B
QykKKyAgICAgICAgICAgIHJlc3BvbmRUb01lbW9yeVByZXNzdXJlKENyaXRpY2FsOjpZZXMpOwog
I2VuZGlmCi0gICAgICAgICAgICBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLnJl
c3BvbmRUb01lbW9yeVByZXNzdXJlKGNyaXRpY2FsID8gQ3JpdGljYWw6OlllcyA6IENyaXRpY2Fs
OjpObyk7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIlJlY2VpdmVkIG1lbW9yeSBwcmVzc3Vy
ZSBldmVudCAlbHUgdm0gcHJlc3N1cmUgJWQiLCBzdGF0dXMsIGlzVW5kZXJNZW1vcnlQcmVzc3Vy
ZSgpKTsKICAgICAgICAgfSk7Ci0gICAgICAgIGRpc3BhdGNoX3Jlc3VtZShfY2FjaGVfZXZlbnRf
c291cmNlKTsKKyAgICAgICAgZGlzcGF0Y2hfcmVzdW1lKG1lbW9yeVByZXNzdXJlRXZlbnRTb3Vy
Y2UpOwogICAgIH0pOwogCiAgICAgLy8gQWxsb3cgc2ltdWxhdGlvbiBvZiBtZW1vcnkgcHJlc3N1
cmUgd2l0aCAibm90aWZ5dXRpbCAtcCBvcmcuV2ViS2l0Lmxvd01lbW9yeSIKLSAgICBub3RpZnlf
cmVnaXN0ZXJfZGlzcGF0Y2goIm9yZy5XZWJLaXQubG93TWVtb3J5IiwgJl9ub3RpZnlUb2tlbnNb
MF0sIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF4oaW50KSB7CisgICAgbm90aWZ5X3JlZ2lz
dGVyX2Rpc3BhdGNoKCJvcmcuV2ViS2l0Lmxvd01lbW9yeSIsICZub3RpZnlUb2tlbnNbMF0sIGRp
c3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF4oaW50KSB7CiAjaWYgRU5BQkxFKEZNV19GT09UUFJJ
TlRfQ09NUEFSSVNPTikKICAgICAgICAgYXV0byBmb290cHJpbnRCZWZvcmUgPSBwYWdlc1BlclZN
VGFnKCk7CiAjZW5kaWYKQEAgLTExNiwxMCArMTI3LDEwIEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVI
YW5kbGVyOjppbnN0YWxsKCkKICAgICAgICAgfSk7CiAgICAgfSk7CiAKLSAgICBub3RpZnlfcmVn
aXN0ZXJfZGlzcGF0Y2goIm9yZy5XZWJLaXQubG93TWVtb3J5LmJlZ2luIiwgJl9ub3RpZnlUb2tl
bnNbMV0sIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF4oaW50KSB7CisgICAgbm90aWZ5X3Jl
Z2lzdGVyX2Rpc3BhdGNoKCJvcmcuV2ViS2l0Lmxvd01lbW9yeS5iZWdpbiIsICZub3RpZnlUb2tl
bnNbMV0sIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF4oaW50KSB7CiAgICAgICAgIGJlZ2lu
U2ltdWxhdGVkTWVtb3J5UHJlc3N1cmUoKTsKICAgICB9KTsKLSAgICBub3RpZnlfcmVnaXN0ZXJf
ZGlzcGF0Y2goIm9yZy5XZWJLaXQubG93TWVtb3J5LmVuZCIsICZfbm90aWZ5VG9rZW5zWzJdLCBk
aXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeKGludCkgeworICAgIG5vdGlmeV9yZWdpc3Rlcl9k
aXNwYXRjaCgib3JnLldlYktpdC5sb3dNZW1vcnkuZW5kIiwgJm5vdGlmeVRva2Vuc1syXSwgZGlz
cGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXihpbnQpIHsKICAgICAgICAgZW5kU2ltdWxhdGVkTWVt
b3J5UHJlc3N1cmUoKTsKICAgICB9KTsKIApAQCAtMTMyLDQwICsxNDMsNDAgQEAgdm9pZCBNZW1v
cnlQcmVzc3VyZUhhbmRsZXI6OnVuaW5zdGFsbCgpCiAgICAgICAgIHJldHVybjsKIAogICAgIGRp
c3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57Ci0gICAgICAgIGlmIChf
Y2FjaGVfZXZlbnRfc291cmNlKSB7Ci0gICAgICAgICAgICBkaXNwYXRjaF9zb3VyY2VfY2FuY2Vs
KF9jYWNoZV9ldmVudF9zb3VyY2UpOwotICAgICAgICAgICAgX2NhY2hlX2V2ZW50X3NvdXJjZSA9
IDA7CisgICAgICAgIGlmIChtZW1vcnlQcmVzc3VyZUV2ZW50U291cmNlKSB7CisgICAgICAgICAg
ICBkaXNwYXRjaF9zb3VyY2VfY2FuY2VsKG1lbW9yeVByZXNzdXJlRXZlbnRTb3VyY2UpOworICAg
ICAgICAgICAgbWVtb3J5UHJlc3N1cmVFdmVudFNvdXJjZSA9IG51bGxwdHI7CiAgICAgICAgIH0K
IAotICAgICAgICBpZiAoX3RpbWVyX2V2ZW50X3NvdXJjZSkgewotICAgICAgICAgICAgZGlzcGF0
Y2hfc291cmNlX2NhbmNlbChfdGltZXJfZXZlbnRfc291cmNlKTsKLSAgICAgICAgICAgIF90aW1l
cl9ldmVudF9zb3VyY2UgPSAwOworICAgICAgICBpZiAodGltZXJFdmVudFNvdXJjZSkgeworICAg
ICAgICAgICAgZGlzcGF0Y2hfc291cmNlX2NhbmNlbCh0aW1lckV2ZW50U291cmNlKTsKKyAgICAg
ICAgICAgIHRpbWVyRXZlbnRTb3VyY2UgPSBudWxscHRyOwogICAgICAgICB9CiAgICAgfSk7CiAK
ICAgICBtX2luc3RhbGxlZCA9IGZhbHNlOwogCi0gICAgZm9yIChhdXRvJiB0b2tlbiA6IF9ub3Rp
ZnlUb2tlbnMpCisgICAgZm9yIChhdXRvJiB0b2tlbiA6IG5vdGlmeVRva2VucykKICAgICAgICAg
bm90aWZ5X2NhbmNlbCh0b2tlbik7CiB9CiAKIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpo
b2xkT2ZmKFNlY29uZHMgc2Vjb25kcykKIHsKICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9n
ZXRfbWFpbl9xdWV1ZSgpLCBeewotICAgICAgICBfdGltZXJfZXZlbnRfc291cmNlID0gZGlzcGF0
Y2hfc291cmNlX2NyZWF0ZShESVNQQVRDSF9TT1VSQ0VfVFlQRV9USU1FUiwgMCwgMCwgZGlzcGF0
Y2hfZ2V0X21haW5fcXVldWUoKSk7Ci0gICAgICAgIGlmIChfdGltZXJfZXZlbnRfc291cmNlKSB7
Ci0gICAgICAgICAgICBkaXNwYXRjaF9zZXRfY29udGV4dChfdGltZXJfZXZlbnRfc291cmNlLCB0
aGlzKTsKKyAgICAgICAgdGltZXJFdmVudFNvdXJjZSA9IGRpc3BhdGNoX3NvdXJjZV9jcmVhdGUo
RElTUEFUQ0hfU09VUkNFX1RZUEVfVElNRVIsIDAsIDAsIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVl
KCkpOworICAgICAgICBpZiAodGltZXJFdmVudFNvdXJjZSkgeworICAgICAgICAgICAgZGlzcGF0
Y2hfc2V0X2NvbnRleHQodGltZXJFdmVudFNvdXJjZSwgdGhpcyk7CiAgICAgICAgICAgICAvLyBG
SVhNRTogVGhlIGZpbmFsIGFyZ3VtZW50IGBzX21pbmltdW1Ib2xkT2ZmVGltZS5zZWNvbmRzKClg
IHNlZW1zIHdyb25nLgogICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4MzI3NwotICAgICAgICAgICAgZGlzcGF0Y2hfc291cmNlX3NldF90aW1l
cihfdGltZXJfZXZlbnRfc291cmNlLCBkaXNwYXRjaF90aW1lKERJU1BBVENIX1RJTUVfTk9XLCBz
ZWNvbmRzLnNlY29uZHMoKSAqIE5TRUNfUEVSX1NFQyksIERJU1BBVENIX1RJTUVfRk9SRVZFUiwg
c19taW5pbXVtSG9sZE9mZlRpbWUuc2Vjb25kcygpKTsKLSAgICAgICAgICAgIGRpc3BhdGNoX3Nv
dXJjZV9zZXRfZXZlbnRfaGFuZGxlcihfdGltZXJfZXZlbnRfc291cmNlLCBeewotICAgICAgICAg
ICAgICAgIGlmIChfdGltZXJfZXZlbnRfc291cmNlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGRp
c3BhdGNoX3NvdXJjZV9jYW5jZWwoX3RpbWVyX2V2ZW50X3NvdXJjZSk7Ci0gICAgICAgICAgICAg
ICAgICAgIF90aW1lcl9ldmVudF9zb3VyY2UgPSAwOworICAgICAgICAgICAgZGlzcGF0Y2hfc291
cmNlX3NldF90aW1lcih0aW1lckV2ZW50U291cmNlLCBkaXNwYXRjaF90aW1lKERJU1BBVENIX1RJ
TUVfTk9XLCBzZWNvbmRzLnNlY29uZHMoKSAqIE5TRUNfUEVSX1NFQyksIERJU1BBVENIX1RJTUVf
Rk9SRVZFUiwgc19taW5pbXVtSG9sZE9mZlRpbWUuc2Vjb25kcygpKTsKKyAgICAgICAgICAgIGRp
c3BhdGNoX3NvdXJjZV9zZXRfZXZlbnRfaGFuZGxlcih0aW1lckV2ZW50U291cmNlLCBeeworICAg
ICAgICAgICAgICAgIGlmICh0aW1lckV2ZW50U291cmNlKSB7CisgICAgICAgICAgICAgICAgICAg
IGRpc3BhdGNoX3NvdXJjZV9jYW5jZWwodGltZXJFdmVudFNvdXJjZSk7CisgICAgICAgICAgICAg
ICAgICAgIHRpbWVyRXZlbnRTb3VyY2UgPSBudWxscHRyOwogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLmluc3RhbGwo
KTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgZGlzcGF0Y2hfcmVzdW1lKF90aW1lcl9l
dmVudF9zb3VyY2UpOworICAgICAgICAgICAgZGlzcGF0Y2hfcmVzdW1lKHRpbWVyRXZlbnRTb3Vy
Y2UpOwogICAgICAgICB9CiAgICAgfSk7CiB9CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9zcGkvZGFy
d2luL0Rpc3BhdGNoU1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvc3BpL2Rhcndp
bi9EaXNwYXRjaFNQSS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3
aW4vRGlzcGF0Y2hTUEkuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW5j
bHVkZSA8ZGlzcGF0Y2gvcHJpdmF0ZS5oPgorCisjZWxzZQorCitlbnVtIHsKKyAgICBESVNQQVRD
SF9NRU1PUllQUkVTU1VSRV9QUk9DX0xJTUlUX1dBUk4gPSAweDEwLAorICAgIERJU1BBVENIX01F
TU9SWVBSRVNTVVJFX1BST0NfTElNSVRfQ1JJVElDQUwgPSAweDIwLAorfTsKKworI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>