<?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>134563</bug_id>
          
          <creation_ts>2014-07-02 14:45:32 -0700</creation_ts>
          <short_desc>ProcessAssertion should also prevent UIApp suspension</short_desc>
          <delta_ts>2014-07-02 17:56:13 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mitz</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1020048</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-07-02 14:45:32 -0700</bug_when>
    <thetext>If the application suspends then the child processes will, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020050</commentid>
    <comment_count>1</comment_count>
      <attachid>234283</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-07-02 14:49:55 -0700</bug_when>
    <thetext>Created attachment 234283
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020053</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-02 14:52:04 -0700</bug_when>
    <thetext>Attachment 234283 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:38:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:52:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:81:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:105:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:111:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 5 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>1020062</commentid>
    <comment_count>3</comment_count>
      <attachid>234283</attachid>
    <who name="">mitz</who>
    <bug_when>2014-07-02 15:05:59 -0700</bug_when>
    <thetext>Comment on attachment 234283
Fix

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

Not r+ because of the Objective-C class naming issue and what I think is a logic error below.

&gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:37
&gt; +@interface ProcessAssertionBackgroundTaskManager : NSObject

All Objective-C class names in WebKit must have either the WK or _WK prefix. In this case, it should be WK (since it’s internal, not SPI).

&gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:41
&gt; +    unsigned m_needsToRunInBackgroundCount;
&gt; +    BOOL m_appIsBackground;
&gt; +    UIBackgroundTaskIdentifier m_bgTask;

Objective-C ivar names use the _ prefix rather than m_.

Finally, we normally put the ivar block in the @implementation these days.

&gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:45
&gt; +-(void)incrementNeedsToRunInBackgroundCount;
&gt; +-(void)decrementNeedsToRunInBackgroundCount;

Missing space between - and (void)

&gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:51
&gt; +-(instancetype)init

Missing space between - and (instancetype)

&gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:57
&gt; +    m_needsToRunInBackgroundCount = 0;

No need to initialize ivars to 0 in Objective-C.

&gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:68
&gt; +- (void)dealloc

Yay space!

&gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:80
&gt; +-(void)_updateBackgroundTask

No space :(

&gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:92
&gt; +    if (shouldHoldTask &amp;&amp; m_bgTask != UIBackgroundTaskInvalid) {

Shouldn’t this condition be (!shouldHoldTask &amp;&amp; m_bgTask != UIBackgroundTaskInvalid)?

&gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:104
&gt; +-(void)incrementNeedsToRunInBackgroundCount

Missing space.

&gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:110
&gt; +-(void)decrementNeedsToRunInBackgroundCount

Ditto.

&gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:136
&gt; +static ProcessAssertionBackgroundTaskManager* sharedBackgroundTaskManager()

Space goes on the other side of the * because it’s an Objective-C class.

Normally when there’s a shared instance of an Objective-C, we write a class method to return the shared instance.

&gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:138
&gt; +    static ProcessAssertionBackgroundTaskManager* shared = [ProcessAssertionBackgroundTaskManager new];

Star on the wrong side. We normally use alloc] init] but I think new] is just as good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020076</commentid>
    <comment_count>4</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-07-02 15:37:22 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 234283 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=234283&amp;action=review
&gt; 
&gt; Not r+ because of the Objective-C class naming issue and what I think is a logic error below.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:37
&gt; &gt; +@interface ProcessAssertionBackgroundTaskManager : NSObject
&gt; 
&gt; All Objective-C class names in WebKit must have either the WK or _WK prefix. In this case, it should be WK (since it’s internal, not SPI).

Done!
 
&gt; &gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:41
&gt; &gt; +    unsigned m_needsToRunInBackgroundCount;
&gt; &gt; +    BOOL m_appIsBackground;
&gt; &gt; +    UIBackgroundTaskIdentifier m_bgTask;
&gt; 
&gt; Objective-C ivar names use the _ prefix rather than m_.

Done!

&gt; Finally, we normally put the ivar block in the @implementation these days.

Done!

&gt; &gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:45
&gt; &gt; +-(void)incrementNeedsToRunInBackgroundCount;
&gt; &gt; +-(void)decrementNeedsToRunInBackgroundCount;
&gt; 
&gt; Missing space between - and (void)

Fixed!

&gt; &gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:51
&gt; &gt; +-(instancetype)init
&gt; 
&gt; Missing space between - and (instancetype)

Fixed!

&gt; &gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:57
&gt; &gt; +    m_needsToRunInBackgroundCount = 0;
&gt; 
&gt; No need to initialize ivars to 0 in Objective-C.

Removed!

&gt; &gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:68
&gt; &gt; +- (void)dealloc
&gt; 
&gt; Yay space!

Yay!

&gt; &gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:80
&gt; &gt; +-(void)_updateBackgroundTask
&gt; 
&gt; No space :(

Fixed!

&gt; &gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:92
&gt; &gt; +    if (shouldHoldTask &amp;&amp; m_bgTask != UIBackgroundTaskInvalid) {
&gt; 
&gt; Shouldn’t this condition be (!shouldHoldTask &amp;&amp; m_bgTask != UIBackgroundTaskInvalid)?

Oops, last minute refactoring. &lt;embarrassed-face-emoji&gt;

&gt; &gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:104
&gt; &gt; +-(void)incrementNeedsToRunInBackgroundCount
&gt; 
&gt; Missing space.

Fixed!

&gt; &gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:110
&gt; &gt; +-(void)decrementNeedsToRunInBackgroundCount
&gt; 
&gt; Ditto.

Fixed!

&gt; &gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:136
&gt; &gt; +static ProcessAssertionBackgroundTaskManager* sharedBackgroundTaskManager()
&gt; 
&gt; Space goes on the other side of the * because it’s an Objective-C class.

Bleh, okay. :-/

&gt; Normally when there’s a shared instance of an Objective-C, we write a class method to return the shared instance.

Okay!

&gt; &gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:138
&gt; &gt; +    static ProcessAssertionBackgroundTaskManager* shared = [ProcessAssertionBackgroundTaskManager new];
&gt; 
&gt; Star on the wrong side. We normally use alloc] init] but I think new] is just as good.

Okay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020110</commentid>
    <comment_count>5</comment_count>
      <attachid>234297</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-07-02 17:20:19 -0700</bug_when>
    <thetext>Created attachment 234297
Fix review comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020111</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-02 17:21:56 -0700</bug_when>
    <thetext>Attachment 234297 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:47:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 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>1020114</commentid>
    <comment_count>7</comment_count>
      <attachid>234297</attachid>
    <who name="">mitz</who>
    <bug_when>2014-07-02 17:35:42 -0700</bug_when>
    <thetext>Comment on attachment 234297
Fix review comments

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

&gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:33
&gt; +#import &lt;wtf/NeverDestroyed.h&gt;

Seems unused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020122</commentid>
    <comment_count>8</comment_count>
      <attachid>234297</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-02 17:45:24 -0700</bug_when>
    <thetext>Comment on attachment 234297
Fix review comments

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

&gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:50
&gt; +    UIBackgroundTaskIdentifier _bgTask;

please expand &quot;bg&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020123</commentid>
    <comment_count>9</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-07-02 17:50:53 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 234297 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=234297&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:33
&gt; &gt; +#import &lt;wtf/NeverDestroyed.h&gt;
&gt; 
&gt; Seems unused.

I just caught that too!

(In reply to comment #8)
&gt; (From update of attachment 234297 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=234297&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/ProcessAssertionIOS.mm:50
&gt; &gt; +    UIBackgroundTaskIdentifier _bgTask;
&gt; 
&gt; please expand &quot;bg&quot;

Okay!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020125</commentid>
    <comment_count>10</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-07-02 17:56:13 -0700</bug_when>
    <thetext>Transmitting file data ....
Committed revision 170737.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234283</attachid>
            <date>2014-07-02 14:49:55 -0700</date>
            <delta_ts>2014-07-02 17:20:19 -0700</delta_ts>
            <desc>Fix</desc>
            <filename>134563.1.patch</filename>
            <type>text/plain</type>
            <size>9487</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MDcyNCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE0LTA3LTAyICBHYXZpbiBC
YXJyYWNsb3VnaCAgPGJhcmFjbG91Z2hAYXBwbGUuY29tPgorCisgICAgICAgIFByb2Nlc3NBc3Nl
cnRpb24gc2hvdWxkIGFsc28gcHJldmVudCBVSUFwcCBzdXNwZW5zaW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ1NjMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0aGUgYXBwbGljYXRpb24gc3Vz
cGVuZHMgdGhlbiB0aGUgY2hpbGQgcHJvY2Vzc2VzIHdpbGwsIHRvby4KKyAgICAgICAgVXNlIGJl
Z2luQmFja2dyb3VuZFRhc2tXaXRoTmFtZTpleHBpcmF0aW9uSGFuZGxlcjogdG8gcmVxdWVzdCB0
aGF0IHRoZSBhcHBsaWNhdGlvbiByZW1haW4gcnVubmFibGUKKyAgICAgICAgd2hpbGUgd2FpdGlu
ZyBmb3IgYmFja2dyb3VuZCB0YXNrcyB0byBjb21wbGV0ZS4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fzc2VydGlv
bjo6flByb2Nlc3NBc3NlcnRpb24pOgorICAgICAgICAgICAgLSBBZGRlZCBkZXN0cnVjdG9yLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmg6CisgICAgICAgICAgICAtIEFk
ZGVkIGRlc3RydWN0b3IuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9u
SU9TLm1tOgorICAgICAgICAoLVtQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2Vy
IGluaXRdKToKKyAgICAgICAgKC1bUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdl
ciBkZWFsbG9jXSk6CisgICAgICAgICAgICAtIHJlZ2lzdGVyL3JlbW92ZSBub3RpZmljYXRpb24g
aGFuZGxlcnMuCisgICAgICAgICgtW1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFn
ZXIgX3VwZGF0ZUJhY2tncm91bmRUYXNrXSk6CisgICAgICAgICAgICAtIGlmIHdlIG5lZWQgdG8g
YmUgcnVubmFibGUgbWFrZSBzdXJlIHdlJ3JlIGhvbGRpbmcgYSBCYWNrZ3JvdW5kVGFzaywgaWYg
bm90IHJlbGVhc2UgaXQuCisgICAgICAgICgtW1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFz
a01hbmFnZXIgX2FwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kT3JXaWxsRW50ZXJGb3JlZ3Jv
dW5kOl0pOgorICAgICAgICAgICAgLSBkZXRlY3Qgd2hlbiB0aGUgYXBwIGVudGVycy9sZWF2ZXMg
Zm9yZWdyb3VuZDsgY2FsbHMgdG8gX3VwZGF0ZUJhY2tncm91bmRUYXNrLgorICAgICAgICAoLVtQ
cm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyIGluY3JlbWVudE5lZWRzVG9SdW5J
bkJhY2tncm91bmRDb3VudF0pOgorICAgICAgICAoLVtQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3Vu
ZFRhc2tNYW5hZ2VyIGRlY3JlbWVudE5lZWRzVG9SdW5JbkJhY2tncm91bmRDb3VudF0pOgorICAg
ICAgICAgICAgLSBpbnRlcmZhY2UgdG8gdXBkYXRlIHRoZSBjb3VudDsgY2FsbHMgdG8gX3VwZGF0
ZUJhY2tncm91bmRUYXNrLgorICAgICAgICAoV2ViS2l0OjpzaGFyZWRCYWNrZ3JvdW5kVGFza01h
bmFnZXIpOgorICAgICAgICAgICAgLSBzaW5nbGV0b24gUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91
bmRUYXNrTWFuYWdlci4KKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fzc2VydGlvbjo6UHJvY2Vz
c0Fzc2VydGlvbik6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246On5Qcm9jZXNz
QXNzZXJ0aW9uKToKKyAgICAgICAgICAgIC0gY291bnQgUHJvY2Vzc0Fzc2VydGlvbnMgaW4gYW5k
IG91dCBvZiBleGlzdGFuY2UuCisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246OnNl
dFN0YXRlKToKKyAgICAgICAgICAgIC0gY291bnQgd2hlbiB0aGUgc3RhdGUgY2hhbmdlcy4KKwog
MjAxNC0wNy0wMiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlc3RvcmVTZXNzaW9uIHNob3VsZCB0YWtlIGEgdmVjdG9yIG9mIEJhY2tGb3J3YXJkTGlz
dEl0ZW1TdGF0ZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0
aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUHJvY2Vzc0Fz
c2VydGlvbi5jcHAJKHJldmlzaW9uIDE3MDcxMSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsMTAgQEAg
UHJvY2Vzc0Fzc2VydGlvbjo6UHJvY2Vzc0Fzc2VydGlvbihwaWRfdAogICAgIG1fYXNzZXJ0aW9u
U3RhdGUgPSBhc3NlcnRpb25TdGF0ZTsKIH0KIAorUHJvY2Vzc0Fzc2VydGlvbjo6flByb2Nlc3NB
c3NlcnRpb24oKQoreworfQorCiB2b2lkIFByb2Nlc3NBc3NlcnRpb246OnNldFN0YXRlKEFzc2Vy
dGlvblN0YXRlIGFzc2VydGlvblN0YXRlKQogewogICAgIGlmIChtX2Fzc2VydGlvblN0YXRlID09
IGFzc2VydGlvblN0YXRlKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Byb2Nlc3NB
c3NlcnRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUHJvY2Vz
c0Fzc2VydGlvbi5oCShyZXZpc2lvbiAxNzA3MTEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUHJvY2Vzc0Fzc2VydGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIGVu
dW0gY2xhc3MgQXNzZXJ0aW9uU3RhdGUgewogY2xhc3MgUHJvY2Vzc0Fzc2VydGlvbiB7CiBwdWJs
aWM6CiAgICAgUHJvY2Vzc0Fzc2VydGlvbihwaWRfdCwgQXNzZXJ0aW9uU3RhdGUpOworICAgIH5Q
cm9jZXNzQXNzZXJ0aW9uKCk7CiAgICAgCiAgICAgQXNzZXJ0aW9uU3RhdGUgc3RhdGUoKSBjb25z
dCB7IHJldHVybiBtX2Fzc2VydGlvblN0YXRlOyB9CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCShyZXZpc2lv
biAxNzA3MTEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRp
b25JT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTI5LDEwICsyOSw5NCBAQAogI2lmIFBMQVRGT1JN
KElPUykKIAogI2ltcG9ydCA8QXNzZXJ0aW9uU2VydmljZXMvQktTUHJvY2Vzc0Fzc2VydGlvbi5o
PgorI2ltcG9ydCA8VUlLaXQvVUlBcHBsaWNhdGlvbi5oPgorI2ltcG9ydCA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CisKKyNpZiAhUExBVEZPUk0oSU9TX1NJTVVMQVRPUikKKworQGludGVyZmFjZSBQ
cm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyIDogTlNPYmplY3QKK3sKKyAgICB1
bnNpZ25lZCBtX25lZWRzVG9SdW5JbkJhY2tncm91bmRDb3VudDsKKyAgICBCT09MIG1fYXBwSXNC
YWNrZ3JvdW5kOworICAgIFVJQmFja2dyb3VuZFRhc2tJZGVudGlmaWVyIG1fYmdUYXNrOworfQor
CistKHZvaWQpaW5jcmVtZW50TmVlZHNUb1J1bkluQmFja2dyb3VuZENvdW50OworLSh2b2lkKWRl
Y3JlbWVudE5lZWRzVG9SdW5JbkJhY2tncm91bmRDb3VudDsKKworQGVuZAorCitAaW1wbGVtZW50
YXRpb24gUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlcgorCistKGluc3RhbmNl
dHlwZSlpbml0Cit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAoIXNlbGYpCisg
ICAgICAgIHJldHVybiBuaWw7CisKKyAgICBtX25lZWRzVG9SdW5JbkJhY2tncm91bmRDb3VudCA9
IDA7CisgICAgbV9hcHBJc0JhY2tncm91bmQgPSBbVUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNh
dGlvbl0uYXBwbGljYXRpb25TdGF0ZSA9PSBVSUFwcGxpY2F0aW9uU3RhdGVCYWNrZ3JvdW5kOwor
ICAgIG1fYmdUYXNrID0gVUlCYWNrZ3JvdW5kVGFza0ludmFsaWQ7CisKKyAgICBOU05vdGlmaWNh
dGlvbkNlbnRlciAqY2VudGVyID0gW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJd
OworICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2FwcGxp
Y2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kT3JXaWxsRW50ZXJGb3JlZ3JvdW5kOikgbmFtZTpVSUFw
cGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZE5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKKyAg
ICBbY2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9hcHBsaWNhdGlv
bkRpZEVudGVyQmFja2dyb3VuZE9yV2lsbEVudGVyRm9yZWdyb3VuZDopIG5hbWU6VUlBcHBsaWNh
dGlvbkRpZEVudGVyQmFja2dyb3VuZE5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKKworICAgIHJl
dHVybiBzZWxmOworfQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBOU05vdGlmaWNhdGlvbkNl
bnRlciAqY2VudGVyID0gW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdOworICAg
IFtjZW50ZXIgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOlVJQXBwbGljYXRpb25XaWxsRW50ZXJG
b3JlZ3JvdW5kTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOworICAgIFtjZW50ZXIgcmVtb3ZlT2Jz
ZXJ2ZXI6c2VsZiBuYW1lOlVJQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmROb3RpZmljYXRp
b24gb2JqZWN0Om5pbF07CisKKyAgICBpZiAobV9iZ1Rhc2sgIT0gVUlCYWNrZ3JvdW5kVGFza0lu
dmFsaWQpCisgICAgICAgIFtbVUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0gZW5kQmFj
a2dyb3VuZFRhc2s6bV9iZ1Rhc2tdOworCisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCistKHZv
aWQpX3VwZGF0ZUJhY2tncm91bmRUYXNrCit7CisgICAgYm9vbCBzaG91bGRIb2xkVGFzayA9IG1f
bmVlZHNUb1J1bkluQmFja2dyb3VuZENvdW50ICYmIG1fYXBwSXNCYWNrZ3JvdW5kOworCisgICAg
aWYgKHNob3VsZEhvbGRUYXNrICYmIG1fYmdUYXNrID09IFVJQmFja2dyb3VuZFRhc2tJbnZhbGlk
KSB7CisgICAgICAgIF9fYmxvY2sgVUlCYWNrZ3JvdW5kVGFza0lkZW50aWZpZXIgdGFzayA9IFtb
VUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0gYmVnaW5CYWNrZ3JvdW5kVGFza1dpdGhO
YW1lOkAiY29tLmFwcGxlLldlYktpdC5Qcm9jZXNzQXNzZXJ0aW9uIiBleHBpcmF0aW9uSGFuZGxl
cjpeeworICAgICAgICAgICAgTlNMb2coQCJCYWNrZ3JvdW5kIHRhc2sgZXhwaXJlZCB3aGlsZSBo
b2xkaW5nIFdlYktpdCBQcm9jZXNzQXNzZXJ0aW9uLiIpOworICAgICAgICAgICAgW1tVSUFwcGxp
Y2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXSBlbmRCYWNrZ3JvdW5kVGFzazp0YXNrXTsKKyAgICAg
ICAgfV07CisgICAgICAgIG1fYmdUYXNrID0gdGFzazsKKyAgICB9CisKKyAgICBpZiAoc2hvdWxk
SG9sZFRhc2sgJiYgbV9iZ1Rhc2sgIT0gVUlCYWNrZ3JvdW5kVGFza0ludmFsaWQpIHsKKyAgICAg
ICAgW1tVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXSBlbmRCYWNrZ3JvdW5kVGFzazpt
X2JnVGFza107CisgICAgICAgIG1fYmdUYXNrID0gVUlCYWNrZ3JvdW5kVGFza0ludmFsaWQ7Cisg
ICAgfQorfQorCistICh2b2lkKV9hcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZE9yV2lsbEVu
dGVyRm9yZWdyb3VuZDooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KK3sKKyAgICBtX2Fw
cElzQmFja2dyb3VuZCA9IFtVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXS5hcHBsaWNh
dGlvblN0YXRlID09IFVJQXBwbGljYXRpb25TdGF0ZUJhY2tncm91bmQ7CisgICAgW3NlbGYgX3Vw
ZGF0ZUJhY2tncm91bmRUYXNrXTsKK30KKworLSh2b2lkKWluY3JlbWVudE5lZWRzVG9SdW5JbkJh
Y2tncm91bmRDb3VudAoreworICAgICsrbV9uZWVkc1RvUnVuSW5CYWNrZ3JvdW5kQ291bnQ7Cisg
ICAgW3NlbGYgX3VwZGF0ZUJhY2tncm91bmRUYXNrXTsKK30KKworLSh2b2lkKWRlY3JlbWVudE5l
ZWRzVG9SdW5JbkJhY2tncm91bmRDb3VudAoreworICAgIC0tbV9uZWVkc1RvUnVuSW5CYWNrZ3Jv
dW5kQ291bnQ7CisgICAgW3NlbGYgX3VwZGF0ZUJhY2tncm91bmRUYXNrXTsKK30KKworQGVuZAog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotI2lmICFQTEFURk9STShJT1NfU0lNVUxBVE9SKQogY29u
c3QgQktTUHJvY2Vzc0Fzc2VydGlvbkZsYWdzIHN1c3BlbmRlZFRhYkZsYWdzID0gKEJLU1Byb2Nl
c3NBc3NlcnRpb25BbGxvd0lkbGVTbGVlcCk7CiBjb25zdCBCS1NQcm9jZXNzQXNzZXJ0aW9uRmxh
Z3MgYmFja2dyb3VuZFRhYkZsYWdzID0gKEJLU1Byb2Nlc3NBc3NlcnRpb25BbGxvd0lkbGVTbGVl
cCB8IEJLU1Byb2Nlc3NBc3NlcnRpb25QcmV2ZW50VGFza1N1c3BlbmQgfCBCS1NQcm9jZXNzQXNz
ZXJ0aW9uQWxsb3dTdXNwZW5kT25TbGVlcCk7CiBjb25zdCBCS1NQcm9jZXNzQXNzZXJ0aW9uRmxh
Z3MgZm9yZWdyb3VuZFRhYkZsYWdzID0gKEJLU1Byb2Nlc3NBc3NlcnRpb25BbGxvd0lkbGVTbGVl
cCB8IEJLU1Byb2Nlc3NBc3NlcnRpb25QcmV2ZW50VGFza1N1c3BlbmQgfCBCS1NQcm9jZXNzQXNz
ZXJ0aW9uQWxsb3dTdXNwZW5kT25TbGVlcCB8IEJLU1Byb2Nlc3NBc3NlcnRpb25XYW50c0ZvcmVn
cm91bmRSZXNvdXJjZVByaW9yaXR5IHwgQktTUHJvY2Vzc0Fzc2VydGlvblByZXZlbnRUYXNrVGhy
b3R0bGVEb3duKTsKQEAgLTQ4LDE1ICsxMzIsMTcgQEAgc3RhdGljIEJLU1Byb2Nlc3NBc3NlcnRp
b25GbGFncyBmbGFnc0ZvcgogICAgICAgICByZXR1cm4gZm9yZWdyb3VuZFRhYkZsYWdzOwogICAg
IH0KIH0KLSNlbmRpZgorCitzdGF0aWMgUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFu
YWdlciogc2hhcmVkQmFja2dyb3VuZFRhc2tNYW5hZ2VyKCkKK3sKKyAgICBzdGF0aWMgUHJvY2Vz
c0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlciogc2hhcmVkID0gW1Byb2Nlc3NBc3NlcnRp
b25CYWNrZ3JvdW5kVGFza01hbmFnZXIgbmV3XTsKKyAgICByZXR1cm4gc2hhcmVkOworfQogCiBQ
cm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKHBpZF90IHBpZCwgQXNzZXJ0aW9uU3Rh
dGUgYXNzZXJ0aW9uU3RhdGUpCiB7CiAgICAgbV9hc3NlcnRpb25TdGF0ZSA9IGFzc2VydGlvblN0
YXRlOwogICAgIAotI2lmIFBMQVRGT1JNKElPU19TSU1VTEFUT1IpCi0gICAgVU5VU0VEX1BBUkFN
KHBpZCk7Ci0jZWxzZQogICAgIEJLU1Byb2Nlc3NBc3NlcnRpb25BY3F1aXNpdGlvbkhhbmRsZXIg
aGFuZGxlciA9IF4oQk9PTCBhY3F1aXJlZCkgewogICAgICAgICBpZiAoIWFjcXVpcmVkKSB7CiAg
ICAgICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBhY3F1aXJlIGFzc2VydGlvbiBmb3IgcHJv
Y2VzcyAlZCIsIHBpZCk7CkBAIC02NCw3ICsxNTAsMTUgQEAgUHJvY2Vzc0Fzc2VydGlvbjo6UHJv
Y2Vzc0Fzc2VydGlvbihwaWRfdAogICAgICAgICB9CiAgICAgfTsKICAgICBtX2Fzc2VydGlvbiA9
IGFkb3B0TlMoW1tCS1NQcm9jZXNzQXNzZXJ0aW9uIGFsbG9jXSBpbml0V2l0aFBJRDpwaWQgZmxh
Z3M6ZmxhZ3NGb3JTdGF0ZShhc3NlcnRpb25TdGF0ZSkgcmVhc29uOkJLU1Byb2Nlc3NBc3NlcnRp
b25SZWFzb25FeHRlbnNpb24gbmFtZTpAIldlYiBjb250ZW50IHZpc2libGUiIHdpdGhIYW5kbGVy
OmhhbmRsZXJdKTsKLSNlbmRpZgorCisgICAgaWYgKG1fYXNzZXJ0aW9uU3RhdGUgIT0gQXNzZXJ0
aW9uU3RhdGU6OlN1c3BlbmRlZCkKKyAgICAgICAgW3NoYXJlZEJhY2tncm91bmRUYXNrTWFuYWdl
cigpIGluY3JlbWVudE5lZWRzVG9SdW5JbkJhY2tncm91bmRDb3VudF07Cit9CisKK1Byb2Nlc3NB
c3NlcnRpb246On5Qcm9jZXNzQXNzZXJ0aW9uKCkKK3sKKyAgICBpZiAobV9hc3NlcnRpb25TdGF0
ZSAhPSBBc3NlcnRpb25TdGF0ZTo6U3VzcGVuZGVkKQorICAgICAgICBbc2hhcmVkQmFja2dyb3Vu
ZFRhc2tNYW5hZ2VyKCkgZGVjcmVtZW50TmVlZHNUb1J1bkluQmFja2dyb3VuZENvdW50XTsKIH0K
IAogdm9pZCBQcm9jZXNzQXNzZXJ0aW9uOjpzZXRTdGF0ZShBc3NlcnRpb25TdGF0ZSBhc3NlcnRp
b25TdGF0ZSkKQEAgLTcyLDEyICsxNjYsMzcgQEAgdm9pZCBQcm9jZXNzQXNzZXJ0aW9uOjpzZXRT
dGF0ZShBc3NlcnRpbwogICAgIGlmIChtX2Fzc2VydGlvblN0YXRlID09IGFzc2VydGlvblN0YXRl
KQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAoKG1fYXNzZXJ0aW9uU3RhdGUgIT0gQXNzZXJ0
aW9uU3RhdGU6OlN1c3BlbmRlZCkgJiYgKGFzc2VydGlvblN0YXRlID09IEFzc2VydGlvblN0YXRl
OjpTdXNwZW5kZWQpKQorICAgICAgICBbc2hhcmVkQmFja2dyb3VuZFRhc2tNYW5hZ2VyKCkgZGVj
cmVtZW50TmVlZHNUb1J1bkluQmFja2dyb3VuZENvdW50XTsKKyAgICBpZiAoKG1fYXNzZXJ0aW9u
U3RhdGUgPT0gQXNzZXJ0aW9uU3RhdGU6OlN1c3BlbmRlZCkgJiYgKGFzc2VydGlvblN0YXRlICE9
IEFzc2VydGlvblN0YXRlOjpTdXNwZW5kZWQpKQorICAgICAgICBbc2hhcmVkQmFja2dyb3VuZFRh
c2tNYW5hZ2VyKCkgaW5jcmVtZW50TmVlZHNUb1J1bkluQmFja2dyb3VuZENvdW50XTsKKwogICAg
IG1fYXNzZXJ0aW9uU3RhdGUgPSBhc3NlcnRpb25TdGF0ZTsKLSNpZiAhUExBVEZPUk0oSU9TX1NJ
TVVMQVRPUikKICAgICBbbV9hc3NlcnRpb24gc2V0RmxhZ3M6ZmxhZ3NGb3JTdGF0ZShhc3NlcnRp
b25TdGF0ZSldOwotI2VuZGlmCiB9Ci0gICAgCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZWxzZSAvLyBQTEFURk9STShJT1NfU0lNVUxBVE9SKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
UHJvY2Vzc0Fzc2VydGlvbjo6UHJvY2Vzc0Fzc2VydGlvbihwaWRfdCwgQXNzZXJ0aW9uU3RhdGUg
YXNzZXJ0aW9uU3RhdGUpCit7CisgICAgbV9hc3NlcnRpb25TdGF0ZSA9IGFzc2VydGlvblN0YXRl
OworfQorCitQcm9jZXNzQXNzZXJ0aW9uOjp+UHJvY2Vzc0Fzc2VydGlvbigpCit7CiB9CiAKK3Zv
aWQgUHJvY2Vzc0Fzc2VydGlvbjo6c2V0U3RhdGUoQXNzZXJ0aW9uU3RhdGUgYXNzZXJ0aW9uU3Rh
dGUpCit7CisgICAgbV9hc3NlcnRpb25TdGF0ZSA9IGFzc2VydGlvblN0YXRlOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19TSU1VTEFUT1IpCisK
ICNlbmRpZiAvLyBQTEFURk9STShJT1MpCg==
</data>
<flag name="review"
          id="258823"
          type_id="1"
          status="-"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234297</attachid>
            <date>2014-07-02 17:20:19 -0700</date>
            <delta_ts>2014-07-02 17:45:24 -0700</delta_ts>
            <desc>Fix review comments</desc>
            <filename>134563.2.patch</filename>
            <type>text/plain</type>
            <size>9616</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MDczNikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE0LTA3LTAyICBHYXZpbiBC
YXJyYWNsb3VnaCAgPGJhcmFjbG91Z2hAYXBwbGUuY29tPgorCisgICAgICAgIFByb2Nlc3NBc3Nl
cnRpb24gc2hvdWxkIGFsc28gcHJldmVudCBVSUFwcCBzdXNwZW5zaW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ1NjMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0aGUgYXBwbGljYXRpb24gc3Vz
cGVuZHMgdGhlbiB0aGUgY2hpbGQgcHJvY2Vzc2VzIHdpbGwsIHRvby4KKyAgICAgICAgVXNlIGJl
Z2luQmFja2dyb3VuZFRhc2tXaXRoTmFtZTpleHBpcmF0aW9uSGFuZGxlcjogdG8gcmVxdWVzdCB0
aGF0IHRoZSBhcHBsaWNhdGlvbiByZW1haW4gcnVubmFibGUKKyAgICAgICAgd2hpbGUgd2FpdGlu
ZyBmb3IgYmFja2dyb3VuZCB0YXNrcyB0byBjb21wbGV0ZS4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fzc2VydGlv
bjo6flByb2Nlc3NBc3NlcnRpb24pOgorICAgICAgICAgICAgLSBBZGRlZCBkZXN0cnVjdG9yLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmg6CisgICAgICAgICAgICAtIEFk
ZGVkIGRlc3RydWN0b3IuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9u
SU9TLm1tOgorICAgICAgICAoK1tXS1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFn
ZXIgc2hhcmVkXSk6CisgICAgICAgICAgICAtIHNpbmdsZXRvbiBXS1Byb2Nlc3NBc3NlcnRpb25C
YWNrZ3JvdW5kVGFza01hbmFnZXIuCisgICAgICAgICgtW1dLUHJvY2Vzc0Fzc2VydGlvbkJhY2tn
cm91bmRUYXNrTWFuYWdlciBpbml0XSk6CisgICAgICAgICgtW1dLUHJvY2Vzc0Fzc2VydGlvbkJh
Y2tncm91bmRUYXNrTWFuYWdlciBkZWFsbG9jXSk6CisgICAgICAgICAgICAtIHJlZ2lzdGVyL3Jl
bW92ZSBub3RpZmljYXRpb24gaGFuZGxlcnMuCisgICAgICAgICgtW1dLUHJvY2Vzc0Fzc2VydGlv
bkJhY2tncm91bmRUYXNrTWFuYWdlciBfdXBkYXRlQmFja2dyb3VuZFRhc2tdKToKKyAgICAgICAg
ICAgIC0gaWYgd2UgbmVlZCB0byBiZSBydW5uYWJsZSBtYWtlIHN1cmUgd2UncmUgaG9sZGluZyBh
IEJhY2tncm91bmRUYXNrLCBpZiBub3QgcmVsZWFzZSBpdC4KKyAgICAgICAgKC1bV0tQcm9jZXNz
QXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyIF9hcHBsaWNhdGlvbkRpZEVudGVyQmFja2dy
b3VuZE9yV2lsbEVudGVyRm9yZWdyb3VuZDpdKToKKyAgICAgICAgICAgIC0gZGV0ZWN0IHdoZW4g
dGhlIGFwcCBlbnRlcnMvbGVhdmVzIGZvcmVncm91bmQ7IGNhbGxzIHRvIF91cGRhdGVCYWNrZ3Jv
dW5kVGFzay4KKyAgICAgICAgKC1bV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5h
Z2VyIGluY3JlbWVudE5lZWRzVG9SdW5JbkJhY2tncm91bmRDb3VudF0pOgorICAgICAgICAoLVtX
S1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFnZXIgZGVjcmVtZW50TmVlZHNUb1J1
bkluQmFja2dyb3VuZENvdW50XSk6CisgICAgICAgICAgICAtIGludGVyZmFjZSB0byB1cGRhdGUg
dGhlIGNvdW50OyBjYWxscyB0byBfdXBkYXRlQmFja2dyb3VuZFRhc2suCisgICAgICAgIChXZWJL
aXQ6OlByb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0
OjpQcm9jZXNzQXNzZXJ0aW9uOjp+UHJvY2Vzc0Fzc2VydGlvbik6CisgICAgICAgICAgICAtIGNv
dW50IFByb2Nlc3NBc3NlcnRpb25zIGluIGFuZCBvdXQgb2YgZXhpc3RhbmNlLgorICAgICAgICAo
V2ViS2l0OjpQcm9jZXNzQXNzZXJ0aW9uOjpzZXRTdGF0ZSk6CisgICAgICAgICAgICAtIGNvdW50
IHdoZW4gdGhlIHN0YXRlIGNoYW5nZXMuCisKIDIwMTQtMDctMDEgIE1hcmsgUm93ZSAgPG1yb3dl
QGFwcGxlLmNvbT4KIAogICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTM0NTIyPiBSZW1v
dmUgZHVwbGljYXRpb24gaW4gY29kZSB0aGF0IHByZXBhcmVzIHRoZSB1c2VyIGFnZW50IHN0cmlu
ZyBvbiBNYWMgYW5kIGlPUwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Byb2Nlc3NB
c3NlcnRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qcm9j
ZXNzQXNzZXJ0aW9uLmNwcAkocmV2aXNpb24gMTcwNzExKQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSwx
MCBAQCBQcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKHBpZF90CiAgICAgbV9hc3Nl
cnRpb25TdGF0ZSA9IGFzc2VydGlvblN0YXRlOwogfQogCitQcm9jZXNzQXNzZXJ0aW9uOjp+UHJv
Y2Vzc0Fzc2VydGlvbigpCit7Cit9CisKIHZvaWQgUHJvY2Vzc0Fzc2VydGlvbjo6c2V0U3RhdGUo
QXNzZXJ0aW9uU3RhdGUgYXNzZXJ0aW9uU3RhdGUpCiB7CiAgICAgaWYgKG1fYXNzZXJ0aW9uU3Rh
dGUgPT0gYXNzZXJ0aW9uU3RhdGUpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUHJv
Y2Vzc0Fzc2VydGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
cm9jZXNzQXNzZXJ0aW9uLmgJKHJldmlzaW9uIDE3MDcxMSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcg
QEAgZW51bSBjbGFzcyBBc3NlcnRpb25TdGF0ZSB7CiBjbGFzcyBQcm9jZXNzQXNzZXJ0aW9uIHsK
IHB1YmxpYzoKICAgICBQcm9jZXNzQXNzZXJ0aW9uKHBpZF90LCBBc3NlcnRpb25TdGF0ZSk7Cisg
ICAgflByb2Nlc3NBc3NlcnRpb24oKTsKICAgICAKICAgICBBc3NlcnRpb25TdGF0ZSBzdGF0ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fYXNzZXJ0aW9uU3RhdGU7IH0KICAgICAKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0JKHJl
dmlzaW9uIDE3MDcxMSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fz
c2VydGlvbklPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjksMTAgKzI5LDEwMSBAQAogI2lmIFBM
QVRGT1JNKElPUykKIAogI2ltcG9ydCA8QXNzZXJ0aW9uU2VydmljZXMvQktTUHJvY2Vzc0Fzc2Vy
dGlvbi5oPgorI2ltcG9ydCA8VUlLaXQvVUlBcHBsaWNhdGlvbi5oPgorI2ltcG9ydCA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CisKKyNpZiAhUExBVEZPUk0oSU9TX1NJTVVMQVRPUikKKworQGludGVy
ZmFjZSBXS1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFnZXIgOiBOU09iamVjdAor
CisrIChXS1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFnZXIgKilzaGFyZWQ7CisK
Ky0gKHZvaWQpaW5jcmVtZW50TmVlZHNUb1J1bkluQmFja2dyb3VuZENvdW50OworLSAodm9pZClk
ZWNyZW1lbnROZWVkc1RvUnVuSW5CYWNrZ3JvdW5kQ291bnQ7CisKK0BlbmQKKworQGltcGxlbWVu
dGF0aW9uIFdLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlcgoreworICAgIHVu
c2lnbmVkIF9uZWVkc1RvUnVuSW5CYWNrZ3JvdW5kQ291bnQ7CisgICAgQk9PTCBfYXBwSXNCYWNr
Z3JvdW5kOworICAgIFVJQmFja2dyb3VuZFRhc2tJZGVudGlmaWVyIF9iZ1Rhc2s7Cit9CisKKysg
KFdLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlciAqKXNoYXJlZAoreworICAg
IHN0YXRpYyBXS1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFnZXIgKnNoYXJlZCA9
IFtXS1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFnZXIgbmV3XTsKKyAgICByZXR1
cm4gc2hhcmVkOworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdAoreworICAgIHNlbGYgPSBbc3Vw
ZXIgaW5pdF07CisgICAgaWYgKCFzZWxmKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX2Fw
cElzQmFja2dyb3VuZCA9IFtVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXS5hcHBsaWNh
dGlvblN0YXRlID09IFVJQXBwbGljYXRpb25TdGF0ZUJhY2tncm91bmQ7CisgICAgX2JnVGFzayA9
IFVJQmFja2dyb3VuZFRhc2tJbnZhbGlkOworCisgICAgTlNOb3RpZmljYXRpb25DZW50ZXIgKmNl
bnRlciA9IFtOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXTsKKyAgICBbY2VudGVy
IGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9hcHBsaWNhdGlvbkRpZEVudGVy
QmFja2dyb3VuZE9yV2lsbEVudGVyRm9yZWdyb3VuZDopIG5hbWU6VUlBcHBsaWNhdGlvbldpbGxF
bnRlckZvcmVncm91bmROb3RpZmljYXRpb24gb2JqZWN0Om5pbF07CisgICAgW2NlbnRlciBhZGRP
YnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfYXBwbGljYXRpb25EaWRFbnRlckJhY2tn
cm91bmRPcldpbGxFbnRlckZvcmVncm91bmQ6KSBuYW1lOlVJQXBwbGljYXRpb25EaWRFbnRlckJh
Y2tncm91bmROb3RpZmljYXRpb24gb2JqZWN0Om5pbF07CisKKyAgICByZXR1cm4gc2VsZjsKK30K
KworLSAodm9pZClkZWFsbG9jCit7CisgICAgTlNOb3RpZmljYXRpb25DZW50ZXIgKmNlbnRlciA9
IFtOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXTsKKyAgICBbY2VudGVyIHJlbW92
ZU9ic2VydmVyOnNlbGYgbmFtZTpVSUFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZE5vdGlm
aWNhdGlvbiBvYmplY3Q6bmlsXTsKKyAgICBbY2VudGVyIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFt
ZTpVSUFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kTm90aWZpY2F0aW9uIG9iamVjdDpuaWxd
OworCisgICAgaWYgKF9iZ1Rhc2sgIT0gVUlCYWNrZ3JvdW5kVGFza0ludmFsaWQpCisgICAgICAg
IFtbVUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0gZW5kQmFja2dyb3VuZFRhc2s6X2Jn
VGFza107CisKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKy0gKHZvaWQpX3VwZGF0ZUJhY2tn
cm91bmRUYXNrCit7CisgICAgYm9vbCBzaG91bGRIb2xkVGFzayA9IF9uZWVkc1RvUnVuSW5CYWNr
Z3JvdW5kQ291bnQgJiYgX2FwcElzQmFja2dyb3VuZDsKKworICAgIGlmIChzaG91bGRIb2xkVGFz
ayAmJiBfYmdUYXNrID09IFVJQmFja2dyb3VuZFRhc2tJbnZhbGlkKSB7CisgICAgICAgIF9fYmxv
Y2sgVUlCYWNrZ3JvdW5kVGFza0lkZW50aWZpZXIgdGFzayA9IFtbVUlBcHBsaWNhdGlvbiBzaGFy
ZWRBcHBsaWNhdGlvbl0gYmVnaW5CYWNrZ3JvdW5kVGFza1dpdGhOYW1lOkAiY29tLmFwcGxlLldl
YktpdC5Qcm9jZXNzQXNzZXJ0aW9uIiBleHBpcmF0aW9uSGFuZGxlcjpeeworICAgICAgICAgICAg
TlNMb2coQCJCYWNrZ3JvdW5kIHRhc2sgZXhwaXJlZCB3aGlsZSBob2xkaW5nIFdlYktpdCBQcm9j
ZXNzQXNzZXJ0aW9uLiIpOworICAgICAgICAgICAgW1tVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxp
Y2F0aW9uXSBlbmRCYWNrZ3JvdW5kVGFzazp0YXNrXTsKKyAgICAgICAgfV07CisgICAgICAgIF9i
Z1Rhc2sgPSB0YXNrOworICAgIH0KKworICAgIGlmICghc2hvdWxkSG9sZFRhc2sgJiYgX2JnVGFz
ayAhPSBVSUJhY2tncm91bmRUYXNrSW52YWxpZCkgeworICAgICAgICBbW1VJQXBwbGljYXRpb24g
c2hhcmVkQXBwbGljYXRpb25dIGVuZEJhY2tncm91bmRUYXNrOl9iZ1Rhc2tdOworICAgICAgICBf
YmdUYXNrID0gVUlCYWNrZ3JvdW5kVGFza0ludmFsaWQ7CisgICAgfQorfQorCistICh2b2lkKV9h
cHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZE9yV2lsbEVudGVyRm9yZWdyb3VuZDooTlNOb3Rp
ZmljYXRpb24gKilub3RpZmljYXRpb24KK3sKKyAgICBfYXBwSXNCYWNrZ3JvdW5kID0gW1VJQXBw
bGljYXRpb24gc2hhcmVkQXBwbGljYXRpb25dLmFwcGxpY2F0aW9uU3RhdGUgPT0gVUlBcHBsaWNh
dGlvblN0YXRlQmFja2dyb3VuZDsKKyAgICBbc2VsZiBfdXBkYXRlQmFja2dyb3VuZFRhc2tdOwor
fQorCistICh2b2lkKWluY3JlbWVudE5lZWRzVG9SdW5JbkJhY2tncm91bmRDb3VudAoreworICAg
ICsrX25lZWRzVG9SdW5JbkJhY2tncm91bmRDb3VudDsKKyAgICBbc2VsZiBfdXBkYXRlQmFja2dy
b3VuZFRhc2tdOworfQorCistICh2b2lkKWRlY3JlbWVudE5lZWRzVG9SdW5JbkJhY2tncm91bmRD
b3VudAoreworICAgIC0tX25lZWRzVG9SdW5JbkJhY2tncm91bmRDb3VudDsKKyAgICBbc2VsZiBf
dXBkYXRlQmFja2dyb3VuZFRhc2tdOworfQorCitAZW5kCiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
Ci0jaWYgIVBMQVRGT1JNKElPU19TSU1VTEFUT1IpCiBjb25zdCBCS1NQcm9jZXNzQXNzZXJ0aW9u
RmxhZ3Mgc3VzcGVuZGVkVGFiRmxhZ3MgPSAoQktTUHJvY2Vzc0Fzc2VydGlvbkFsbG93SWRsZVNs
ZWVwKTsKIGNvbnN0IEJLU1Byb2Nlc3NBc3NlcnRpb25GbGFncyBiYWNrZ3JvdW5kVGFiRmxhZ3Mg
PSAoQktTUHJvY2Vzc0Fzc2VydGlvbkFsbG93SWRsZVNsZWVwIHwgQktTUHJvY2Vzc0Fzc2VydGlv
blByZXZlbnRUYXNrU3VzcGVuZCB8IEJLU1Byb2Nlc3NBc3NlcnRpb25BbGxvd1N1c3BlbmRPblNs
ZWVwKTsKIGNvbnN0IEJLU1Byb2Nlc3NBc3NlcnRpb25GbGFncyBmb3JlZ3JvdW5kVGFiRmxhZ3Mg
PSAoQktTUHJvY2Vzc0Fzc2VydGlvbkFsbG93SWRsZVNsZWVwIHwgQktTUHJvY2Vzc0Fzc2VydGlv
blByZXZlbnRUYXNrU3VzcGVuZCB8IEJLU1Byb2Nlc3NBc3NlcnRpb25BbGxvd1N1c3BlbmRPblNs
ZWVwIHwgQktTUHJvY2Vzc0Fzc2VydGlvbldhbnRzRm9yZWdyb3VuZFJlc291cmNlUHJpb3JpdHkg
fCBCS1NQcm9jZXNzQXNzZXJ0aW9uUHJldmVudFRhc2tUaHJvdHRsZURvd24pOwpAQCAtNDgsMTUg
KzEzOSwxMSBAQCBzdGF0aWMgQktTUHJvY2Vzc0Fzc2VydGlvbkZsYWdzIGZsYWdzRm9yCiAgICAg
ICAgIHJldHVybiBmb3JlZ3JvdW5kVGFiRmxhZ3M7CiAgICAgfQogfQotI2VuZGlmCiAKIFByb2Nl
c3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24ocGlkX3QgcGlkLCBBc3NlcnRpb25TdGF0ZSBh
c3NlcnRpb25TdGF0ZSkKIHsKICAgICBtX2Fzc2VydGlvblN0YXRlID0gYXNzZXJ0aW9uU3RhdGU7
CiAgICAgCi0jaWYgUExBVEZPUk0oSU9TX1NJTVVMQVRPUikKLSAgICBVTlVTRURfUEFSQU0ocGlk
KTsKLSNlbHNlCiAgICAgQktTUHJvY2Vzc0Fzc2VydGlvbkFjcXVpc2l0aW9uSGFuZGxlciBoYW5k
bGVyID0gXihCT09MIGFjcXVpcmVkKSB7CiAgICAgICAgIGlmICghYWNxdWlyZWQpIHsKICAgICAg
ICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIGFjcXVpcmUgYXNzZXJ0aW9uIGZvciBwcm9jZXNz
ICVkIiwgcGlkKTsKQEAgLTY0LDcgKzE1MSwxNSBAQCBQcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNz
QXNzZXJ0aW9uKHBpZF90CiAgICAgICAgIH0KICAgICB9OwogICAgIG1fYXNzZXJ0aW9uID0gYWRv
cHROUyhbW0JLU1Byb2Nlc3NBc3NlcnRpb24gYWxsb2NdIGluaXRXaXRoUElEOnBpZCBmbGFnczpm
bGFnc0ZvclN0YXRlKGFzc2VydGlvblN0YXRlKSByZWFzb246QktTUHJvY2Vzc0Fzc2VydGlvblJl
YXNvbkV4dGVuc2lvbiBuYW1lOkAiV2ViIGNvbnRlbnQgdmlzaWJsZSIgd2l0aEhhbmRsZXI6aGFu
ZGxlcl0pOwotI2VuZGlmCisKKyAgICBpZiAobV9hc3NlcnRpb25TdGF0ZSAhPSBBc3NlcnRpb25T
dGF0ZTo6U3VzcGVuZGVkKQorICAgICAgICBbW1dLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRU
YXNrTWFuYWdlciBzaGFyZWRdIGluY3JlbWVudE5lZWRzVG9SdW5JbkJhY2tncm91bmRDb3VudF07
Cit9CisKK1Byb2Nlc3NBc3NlcnRpb246On5Qcm9jZXNzQXNzZXJ0aW9uKCkKK3sKKyAgICBpZiAo
bV9hc3NlcnRpb25TdGF0ZSAhPSBBc3NlcnRpb25TdGF0ZTo6U3VzcGVuZGVkKQorICAgICAgICBb
W1dLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlciBzaGFyZWRdIGRlY3JlbWVu
dE5lZWRzVG9SdW5JbkJhY2tncm91bmRDb3VudF07CiB9CiAKIHZvaWQgUHJvY2Vzc0Fzc2VydGlv
bjo6c2V0U3RhdGUoQXNzZXJ0aW9uU3RhdGUgYXNzZXJ0aW9uU3RhdGUpCkBAIC03MiwxMiArMTY3
LDM3IEBAIHZvaWQgUHJvY2Vzc0Fzc2VydGlvbjo6c2V0U3RhdGUoQXNzZXJ0aW8KICAgICBpZiAo
bV9hc3NlcnRpb25TdGF0ZSA9PSBhc3NlcnRpb25TdGF0ZSkKICAgICAgICAgcmV0dXJuOwogCisg
ICAgaWYgKChtX2Fzc2VydGlvblN0YXRlICE9IEFzc2VydGlvblN0YXRlOjpTdXNwZW5kZWQpICYm
IChhc3NlcnRpb25TdGF0ZSA9PSBBc3NlcnRpb25TdGF0ZTo6U3VzcGVuZGVkKSkKKyAgICAgICAg
W1tXS1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFnZXIgc2hhcmVkXSBkZWNyZW1l
bnROZWVkc1RvUnVuSW5CYWNrZ3JvdW5kQ291bnRdOworICAgIGlmICgobV9hc3NlcnRpb25TdGF0
ZSA9PSBBc3NlcnRpb25TdGF0ZTo6U3VzcGVuZGVkKSAmJiAoYXNzZXJ0aW9uU3RhdGUgIT0gQXNz
ZXJ0aW9uU3RhdGU6OlN1c3BlbmRlZCkpCisgICAgICAgIFtbV0tQcm9jZXNzQXNzZXJ0aW9uQmFj
a2dyb3VuZFRhc2tNYW5hZ2VyIHNoYXJlZF0gaW5jcmVtZW50TmVlZHNUb1J1bkluQmFja2dyb3Vu
ZENvdW50XTsKKwogICAgIG1fYXNzZXJ0aW9uU3RhdGUgPSBhc3NlcnRpb25TdGF0ZTsKLSNpZiAh
UExBVEZPUk0oSU9TX1NJTVVMQVRPUikKICAgICBbbV9hc3NlcnRpb24gc2V0RmxhZ3M6ZmxhZ3NG
b3JTdGF0ZShhc3NlcnRpb25TdGF0ZSldOwotI2VuZGlmCiB9Ci0gICAgCisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZWxzZSAvLyBQTEFURk9STShJT1NfU0lNVUxBVE9SKQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworUHJvY2Vzc0Fzc2VydGlvbjo6UHJvY2Vzc0Fzc2VydGlvbihwaWRfdCwg
QXNzZXJ0aW9uU3RhdGUgYXNzZXJ0aW9uU3RhdGUpCit7CisgICAgbV9hc3NlcnRpb25TdGF0ZSA9
IGFzc2VydGlvblN0YXRlOworfQorCitQcm9jZXNzQXNzZXJ0aW9uOjp+UHJvY2Vzc0Fzc2VydGlv
bigpCit7CiB9CiAKK3ZvaWQgUHJvY2Vzc0Fzc2VydGlvbjo6c2V0U3RhdGUoQXNzZXJ0aW9uU3Rh
dGUgYXNzZXJ0aW9uU3RhdGUpCit7CisgICAgbV9hc3NlcnRpb25TdGF0ZSA9IGFzc2VydGlvblN0
YXRlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElP
U19TSU1VTEFUT1IpCisKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCg==
</data>
<flag name="review"
          id="258838"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>