<?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>126208</bug_id>
          
          <creation_ts>2013-12-24 03:18:17 -0800</creation_ts>
          <short_desc>Define WebProcess::usesNetworkProcess unconditionally</short_desc>
          <delta_ts>2014-01-14 18:12:26 -0800</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>
          
          <blocked>126130</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>jaepark</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>962747</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-12-24 03:18:17 -0800</bug_when>
    <thetext>Returning false when network process is not enabled like WebContext does. This way we reduce the amount of ifdefs used when checking whether network process is in use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962749</commentid>
    <comment_count>1</comment_count>
      <attachid>219961</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-12-24 03:22:38 -0800</bug_when>
    <thetext>Created attachment 219961
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962987</commentid>
    <comment_count>2</comment_count>
      <attachid>219961</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2013-12-26 02:42:00 -0800</bug_when>
    <thetext>Comment on attachment 219961
Patch

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

The patch looks sensible to me

&gt; Source/WebKit2/WebProcess/soup/WebProcessSoup.cpp:190
&gt; +        return;

Is this correct? The previous code was not early returning</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963080</commentid>
    <comment_count>3</comment_count>
      <attachid>219961</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-12-27 00:06:22 -0800</bug_when>
    <thetext>Comment on attachment 219961
Patch

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

&gt;&gt; Source/WebKit2/WebProcess/soup/WebProcessSoup.cpp:190
&gt;&gt; +        return;
&gt; 
&gt; Is this correct? The previous code was not early returning

Yes, it&apos;s correct, we don&apos;t want to initialize network features in the web process when using network process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963165</commentid>
    <comment_count>4</comment_count>
      <attachid>220071</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-12-28 02:24:19 -0800</bug_when>
    <thetext>Created attachment 220071
Updated patch

Just rebased to apply on current git master.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963791</commentid>
    <comment_count>5</comment_count>
      <attachid>220071</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-01-02 11:15:21 -0800</bug_when>
    <thetext>Comment on attachment 220071
Updated patch

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

It looks like this patch leaves a lot of call sites inside ifdefs. What are the main reasons that make this impossible? It&apos;s nice to be consistent.

E.g. CustomProtocolManager::initialize(), DownloadProxy::cancel(), most of WebPlatformStrategies.

&gt; Source/WebKit2/UIProcess/gtk/WebContextGtk.cpp:101
&gt; +    if (!usesNetworkProcess()) {

I don&apos;t think that this is correct. Even when using network process, we still do some loading in WebProcess, simply because no one has finished the migration yet (that would be a great project of medium complexity to tackle).

Some of the things that are loaded in WebProcess:
- &lt;a ping&gt; (PingLoader).
- Application Cache.
- not sure about plug-ins.

&gt; Source/WebKit2/WebProcess/soup/WebProcessSoup.cpp:190
&gt; +    if (usesNetworkProcess())
&gt; +        return;

The diff is a little convoluted. I didn&apos;t look into it very closely, but it&apos;s suspicious for the same reason.

&gt; Source/WebKit2/WebProcess/soup/WebProcessSoup.cpp:217
&gt; +    if (!usesNetworkProcess())
&gt; +        WebCore::removeLanguageChangeObserver(this);

Ditto.

&gt; Source/WebKit2/WebProcess/soup/WebProcessSoup.cpp:222
&gt; +    ASSERT(!usesNetworkProcess());

Ditto.

&gt; Source/WebKit2/WebProcess/soup/WebProcessSoup.cpp:228
&gt; +    ASSERT(!usesNetworkProcess());

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963812</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-02 11:47:13 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 220071 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=220071&amp;action=review
&gt; 
&gt; It looks like this patch leaves a lot of call sites inside ifdefs. What are the main reasons that make this impossible? It&apos;s nice to be consistent.
&gt; 
&gt; E.g. CustomProtocolManager::initialize(), DownloadProxy::cancel(), most of WebPlatformStrategies.

This only allows to avoid the ifdefs when the only thing used is usesNetworkProcess, the cases you mentioned use other API only defined inside ENABLE(NETWORK_PROCESS) blocks, like  NetworkProcessProxy in DownloadProxy::cancel() or NetworkConnectionToWebProcessMessages in platform strategies.

&gt; &gt; Source/WebKit2/UIProcess/gtk/WebContextGtk.cpp:101
&gt; &gt; +    if (!usesNetworkProcess()) {
&gt; 
&gt; I don&apos;t think that this is correct. Even when using network process, we still do some loading in WebProcess, simply because no one has finished the migration yet (that would be a great project of medium complexity to tackle).
&gt; 
&gt; Some of the things that are loaded in WebProcess:
&gt; - &lt;a ping&gt; (PingLoader).
&gt; - Application Cache.
&gt; - not sure about plug-ins.

Do we really need disk cache, or cookies for those loads? I&apos;m not sure having both the web and network process writing to the same cookies database and disk cache storage is going to work.

&gt; &gt; Source/WebKit2/WebProcess/soup/WebProcessSoup.cpp:190
&gt; &gt; +    if (usesNetworkProcess())
&gt; &gt; +        return;
&gt; 
&gt; The diff is a little convoluted. I didn&apos;t look into it very closely, but it&apos;s suspicious for the same reason.
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/soup/WebProcessSoup.cpp:217
&gt; &gt; +    if (!usesNetworkProcess())
&gt; &gt; +        WebCore::removeLanguageChangeObserver(this);
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/soup/WebProcessSoup.cpp:222
&gt; &gt; +    ASSERT(!usesNetworkProcess());
&gt; 
&gt; Ditto.

This is a message sent by the ui process to the networking process, it should never be received by the web process when using network process.

&gt; &gt; Source/WebKit2/WebProcess/soup/WebProcessSoup.cpp:228
&gt; &gt; +    ASSERT(!usesNetworkProcess());
&gt; 
&gt; Ditto.

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963834</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-01-02 12:17:44 -0800</bug_when>
    <thetext>&gt; This only allows to avoid the ifdefs when the only thing used is usesNetworkProcess, the cases you mentioned use other API only defined inside ENABLE(NETWORK_PROCESS) blocks, like  NetworkProcessProxy in DownloadProxy::cancel() or NetworkConnectionToWebProcessMessages in platform strategies.

Yes, I was asking whether these can be easily moved out of ifdefs too. It&apos;s really inconsistent to keep most of the ifdefs around, and I&apos;m not sure if this patch is much of an improvement right now.

&gt; Do we really need disk cache, or cookies for those loads?

We need cookies and http credentials for appcache for sure, otherwise it would be impossible to install an offline app from a protected site.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964029</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-03 00:01:19 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; This only allows to avoid the ifdefs when the only thing used is usesNetworkProcess, the cases you mentioned use other API only defined inside ENABLE(NETWORK_PROCESS) blocks, like  NetworkProcessProxy in DownloadProxy::cancel() or NetworkConnectionToWebProcessMessages in platform strategies.
&gt; 
&gt; Yes, I was asking whether these can be easily moved out of ifdefs too. It&apos;s really inconsistent to keep most of the ifdefs around, and I&apos;m not sure if this patch is much of an improvement right now.

I don&apos;t think it&apos;s possible. Well, the patch mainly tries to avoid these kind of things:

#if ENABLE(NETWORK_PROCESS)
    if (!m_usesNetworkProcess) {
#endif
#if ENABLE(CUSTOM_PROTOCOLS)
        for (const auto&amp; scheme : globalURLSchemesWithCustomProtocolHandlers())
            parameters.urlSchemesRegisteredForCustomProtocols.append(scheme);
#endif
#if ENABLE(NETWORK_PROCESS)
    }
#endif

I find a lot easier to read this:

if (!usesNetworkProcess) {
#if ENABLE(CUSTOM_PROTOCOLS)
        for (const auto&amp; scheme : globalURLSchemesWithCustomProtocolHandlers())
            parameters.urlSchemesRegisteredForCustomProtocols.append(scheme);
#endif
}

If you think this doesn&apos;t improve anything, feel free to close the bug and I&apos;ll focus on soup specific changes only.

&gt; &gt; Do we really need disk cache, or cookies for those loads?
&gt; 
&gt; We need cookies and http credentials for appcache for sure, otherwise it would be impossible to install an offline app from a protected site.

Ok, thanks for clarifying it. I&apos;ll make sure this still works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964109</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-01-03 08:41:54 -0800</bug_when>
    <thetext>&gt; I find a lot easier to read this:

OK, let&apos;s make this change. I still think that the code should make it clear that WebProcess still (unfortunately) does loading even with NetworkProcess enabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964138</commentid>
    <comment_count>10</comment_count>
      <attachid>220310</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-03 09:48:24 -0800</bug_when>
    <thetext>Created attachment 220310
Updated patch

Removed ifdefs in a couple places more. I&apos;m leaving the soup changes for now, because this doesn&apos;t change the behaviour, if it&apos;s wrong it should be fixed in a different bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964155</commentid>
    <comment_count>11</comment_count>
      <attachid>220310</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-01-03 10:15:59 -0800</bug_when>
    <thetext>Comment on attachment 220310
Updated patch

I sign off as a WebKit2 owner. I didn&apos;t look at Gtk and Soup specific changes closely this time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964159</commentid>
    <comment_count>12</comment_count>
      <attachid>220310</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-01-03 10:24:31 -0800</bug_when>
    <thetext>Comment on attachment 220310
Updated patch

Soup and GTK+ changes look good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964163</commentid>
    <comment_count>13</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-03 10:29:42 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 220310 [details])
&gt; I sign off as a WebKit2 owner. I didn&apos;t look at Gtk and Soup specific changes closely this time.

Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964185</commentid>
    <comment_count>14</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-03 11:10:00 -0800</bug_when>
    <thetext>Committed r161272: &lt;http://trac.webkit.org/changeset/161272&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968132</commentid>
    <comment_count>15</comment_count>
    <who name="Jae Hyun Park">jaepark</who>
    <bug_when>2014-01-14 18:12:26 -0800</bug_when>
    <thetext>*** Bug 127026 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219961</attachid>
            <date>2013-12-24 03:22:38 -0800</date>
            <delta_ts>2013-12-28 02:24:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-uses-network-process.diff</filename>
            <type>text/plain</type>
            <size>10878</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAyMGM3MjUxLi5kMjk3Y2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQg
QEAKKzIwMTMtMTItMjQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIERlZmluZSBXZWJQcm9jZXNzOjp1c2VzTmV0d29ya1Byb2Nlc3MgdW5jb25k
aXRpb25hbGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjYyMDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBSZXR1cm5pbmcgZmFsc2Ugd2hlbiBuZXR3b3JrIHByb2Nlc3MgaXMgbm90IGVuYWJsZWQgbGlr
ZQorICAgICAgICBXZWJDb250ZXh0IGRvZXMuIFRoaXMgd2F5IHdlIHJlZHVjZSB0aGUgYW1vdW50
IG9mIGlmZGVmcyB1c2VkIHdoZW4KKyAgICAgICAgY2hlY2tpbmcgd2hldGhlciBuZXR3b3JrIHBy
b2Nlc3MgaXMgaW4gdXNlLgorCisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0R3Rr
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplV2Vi
UHJvY2Vzcyk6IFJlbW92ZSAjaWZkZWYKKyAgICAgICAgYW5kIG9ubHkgc2V0dXAgbmV0d29yayBm
ZWF0dXJlcyB3aGVuIG5vdCB1c2luZyBuZXR3b3JrIHByb2Nlc3MuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmlzQXZhaWxhYmxlKTogUmVtb3ZlICNpZmRl
Zi4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjp1c2VzTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MpOiBSZW1vdmUgI2lmZGVmcy4KKyAgICAgICAgKiBXZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vz
c1NvdXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldENhY2hl
TW9kZWwpOiBSZW1vdmUgI2lmZGVmcy4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxh
dGZvcm1DbGVhclJlc291cmNlQ2FjaGVzKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOiBEaXR0by4KKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1UZXJtaW5hdGUpOiBPbmx5IHJlbW92ZSB0aGUgbGFu
Z3VhZ2UKKyAgICAgICAgb2JzZXJ2ZXIgd2hlbiBub3QgdXNpbmcgbmV0d29yayBwcm9jZXNzLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRJZ25vcmVUTFNFcnJvcnMpOiBBc3NlcnQg
d2hlbiB0aGlzIGlzCisgICAgICAgIGNhbGxlZCB3aXRoIG5ldHdvcmsgcHJvY2VzcyBlbmFibGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZp
Y2F0ZUZvckhvc3QpOiBEaXR0by4KKwogMjAxMy0xMi0yNCAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICAzMi1iaXQgTWFjIGJ1aWxkIGZpeCBhdHRlbXB0IGFmdGVy
IHIxNjEwNDUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNv
bnRleHRHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0R3Rr
LmNwcAppbmRleCAwYWEwOWFmLi5mODEyNjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9ndGsvV2ViQ29udGV4dEd0ay5jcHAKQEAgLTk4LDEzICs5OCwxNiBAQCB2b2lkIFdlYkNv
bnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYgcGFyYQogICAgICAgICBwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkQXNM
b2NhbC5hcHBlbmQoInJlc291cmNlIik7CiAgICAgfQogCi0gICAgcGFyYW1ldGVycy51cmxTY2hl
bWVzUmVnaXN0ZXJlZCA9IHN1cHBsZW1lbnQ8V2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk+KCkt
PnJlZ2lzdGVyZWRVUklTY2hlbWVzKCk7Ci0gICAgc3VwcGxlbWVudDxXZWJDb29raWVNYW5hZ2Vy
UHJveHk+KCktPmdldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKHBhcmFtZXRlcnMuY29va2llUGVy
c2lzdGVudFN0b3JhZ2VQYXRoLCBwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlw
ZSk7Ci0gICAgcGFyYW1ldGVycy5jb29raWVBY2NlcHRQb2xpY3kgPSBtX2luaXRpYWxIVFRQQ29v
a2llQWNjZXB0UG9saWN5OworICAgIGlmICghdXNlc05ldHdvcmtQcm9jZXNzKCkpIHsKKyAgICAg
ICAgcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZCA9IHN1cHBsZW1lbnQ8V2ViU291cFJl
cXVlc3RNYW5hZ2VyUHJveHk+KCktPnJlZ2lzdGVyZWRVUklTY2hlbWVzKCk7CisKKyAgICAgICAg
c3VwcGxlbWVudDxXZWJDb29raWVNYW5hZ2VyUHJveHk+KCktPmdldENvb2tpZVBlcnNpc3RlbnRT
dG9yYWdlKHBhcmFtZXRlcnMuY29va2llUGVyc2lzdGVudFN0b3JhZ2VQYXRoLCBwYXJhbWV0ZXJz
LmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZSk7CisgICAgICAgIHBhcmFtZXRlcnMuY29va2ll
QWNjZXB0UG9saWN5ID0gbV9pbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeTsKKworICAgICAg
ICBwYXJhbWV0ZXJzLmlnbm9yZVRMU0Vycm9ycyA9IG1faWdub3JlVExTRXJyb3JzOworICAgIH0K
KwogICAgIHBhcmFtZXRlcnMuc2hvdWxkVHJhY2tWaXNpdGVkTGlua3MgPSB0cnVlOwotI2lmICFF
TkFCTEUoTkVUV09SS19QUk9DRVNTKQotICAgIHBhcmFtZXRlcnMuaWdub3JlVExTRXJyb3JzID0g
bV9pZ25vcmVUTFNFcnJvcnM7Ci0jZW5kaWYKIH0KIAogdm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9y
bUludmFsaWRhdGVDb250ZXh0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApp
bmRleCAwNTNmNGI5Li41NWMxZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
Y3BwCkBAIC0zMjEsMTEgKzMyMSw3IEBAIHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpnZXRQ
bHVnaW5JbmZvKGNvbnN0IFdlYkNvcmU6OlBhZ2UqIHBhZ2UsIFZlY3RvcjxXZWJDCiBib29sIFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6aXNBdmFpbGFibGUoKSBjb25zdAogewogICAgIC8vIFNoYXJl
ZCB3b3JrZXJzIGRvIG5vdCB3b3JrIGFjcm9zcyBtdWx0aXBsZSBwcm9jZXNzZXMsIGFuZCB1c2lu
ZyBuZXR3b3JrIHByb2Nlc3MgaXMgdGllZCB0byBtdWx0aXBsZSBzZWNvbmRhcnkgcHJvY2VzcyBt
b2RlbC4gCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykgCi0gICAgcmV0dXJuICFXZWJQcm9j
ZXNzOjpzaGFyZWQoKS51c2VzTmV0d29ya1Byb2Nlc3MoKTsgCi0jZWxzZSAKLSAgICByZXR1cm4g
dHJ1ZTsgCi0jZW5kaWYKKyAgICByZXR1cm4gIVdlYlByb2Nlc3M6OnNoYXJlZCgpLnVzZXNOZXR3
b3JrUHJvY2VzcygpOwogfQogCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBiZDRlYTYxLi40MjQyOWZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTk5Myw2ICs5
OTMsMTUgQEAgdm9pZCBXZWJQcm9jZXNzOjpwb3N0SW5qZWN0ZWRCdW5kbGVNZXNzYWdlKGNvbnN0
IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UKICAgICBpbmplY3RlZEJ1bmRsZS0+ZGlk
UmVjZWl2ZU1lc3NhZ2UobWVzc2FnZU5hbWUsIG1lc3NhZ2VCb2R5LmdldCgpKTsKIH0KIAorYm9v
bCBXZWJQcm9jZXNzOjp1c2VzTmV0d29ya1Byb2Nlc3MoKSBjb25zdAoreworI2lmIEVOQUJMRShO
RVRXT1JLX1BST0NFU1MpCisgICAgcmV0dXJuIG1fdXNlc05ldHdvcmtQcm9jZXNzOworI2Vsc2UK
KyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogI2lmIEVOQUJMRShORVRXT1JLX1BST0NF
U1MpCiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24qIFdlYlByb2Nlc3M6Om5ldHdvcmtDb25uZWN0
aW9uKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggMmY4ZDA5
Ni4uNDUxNGRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTE1
MiwxMCArMTUyLDExIEBAIHB1YmxpYzoKIAogICAgIEV2ZW50RGlzcGF0Y2hlciYgZXZlbnREaXNw
YXRjaGVyKCkgeyByZXR1cm4gKm1fZXZlbnREaXNwYXRjaGVyOyB9CiAKKyAgICBib29sIHVzZXNO
ZXR3b3JrUHJvY2VzcygpIGNvbnN0OworCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAg
ICBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24qIG5ldHdvcmtDb25uZWN0aW9uKCk7CiAgICAgdm9p
ZCBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
Kik7Ci0gICAgYm9vbCB1c2VzTmV0d29ya1Byb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3VzZXNO
ZXR3b3JrUHJvY2VzczsgfQogICAgIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlciYgd2ViUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyKCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvbWFjL1dlYlByb2Nlc3NNYWMubW0KaW5kZXggODMyZjA0OS4uMzgxYmIyMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFjLm1tCkBAIC0xNjIsMTgg
KzE2MiwxNCBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3Mo
Y29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycwogCiAgICAgLy8gV2hlbiB0aGUgbmV0
d29yayBwcm9jZXNzIGlzIGVuYWJsZWQsIGVhY2ggd2ViIHByb2Nlc3Mgd2FudHMgYSBzdGFuZC1h
bG9uZQogICAgIC8vIE5TVVJMQ2FjaGUsIHdoaWNoIGl0IGNhbiBkaXNhYmxlIHRvIHNhdmUgbWVt
b3J5LgotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCi0gICAgaWYgKCFtX3VzZXNOZXR3b3Jr
UHJvY2VzcykgewotI2VuZGlmCisgICAgaWYgKCF1c2VzTmV0d29ya1Byb2Nlc3MoKSkgewogICAg
ICAgICBpZiAoIXBhcmFtZXRlcnMuZGlza0NhY2hlRGlyZWN0b3J5LmlzTnVsbCgpKSB7CiAgICAg
ICAgICAgICBbTlNVUkxDYWNoZSBzZXRTaGFyZWRVUkxDYWNoZTphZG9wdE5TKFtbTlNVUkxDYWNo
ZSBhbGxvY10KICAgICAgICAgICAgICAgICBpbml0V2l0aE1lbW9yeUNhcGFjaXR5OnBhcmFtZXRl
cnMubnNVUkxDYWNoZU1lbW9yeUNhcGFjaXR5CiAgICAgICAgICAgICAgICAgZGlza0NhcGFjaXR5
OnBhcmFtZXRlcnMubnNVUkxDYWNoZURpc2tDYXBhY2l0eQogICAgICAgICAgICAgICAgIGRpc2tQ
YXRoOnBhcmFtZXRlcnMuZGlza0NhY2hlRGlyZWN0b3J5XSkuZ2V0KCldOwogICAgICAgICB9Ci0j
aWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICB9Ci0jZW5kaWYKIAogICAgIG1fc2hvdWxk
Rm9yY2VTY3JlZW5Gb250U3Vic3RpdHV0aW9uID0gcGFyYW1ldGVycy5zaG91bGRGb3JjZVNjcmVl
bkZvbnRTdWJzdGl0dXRpb247CiAgICAgRm9udDo6c2V0RGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVy
ZXMocGFyYW1ldGVycy5zaG91bGRFbmFibGVLZXJuaW5nQW5kTGlnYXR1cmVzQnlEZWZhdWx0ID8g
S2VybmluZyB8IExpZ2F0dXJlcyA6IDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHAKaW5kZXggMzNjYzUyMS4uMDViZjNlMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwCkBA
IC05MywxNSArOTMsMTEgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9kZWwo
Q2FjaGVNb2RlbCBjYWNoZU1vZGVsKQogICAgIHVpbnQ2NF90IGRpc2tGcmVlU2l6ZSA9IDA7CiAg
ICAgU291cENhY2hlKiBjYWNoZSA9IG51bGxwdHI7CiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9D
RVNTKQotICAgIGlmICghbV91c2VzTmV0d29ya1Byb2Nlc3MpIHsKLSNlbmRpZgotICAgICAgICBT
b3VwU2Vzc2lvbiogc2Vzc2lvbiA9IFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vz
c2lvbigpOwotICAgICAgICBjYWNoZSA9IFNPVVBfQ0FDSEUoc291cF9zZXNzaW9uX2dldF9mZWF0
dXJlKHNlc3Npb24sIFNPVVBfVFlQRV9DQUNIRSkpOworICAgIGlmICghdXNlc05ldHdvcmtQcm9j
ZXNzKCkpIHsKKyAgICAgICAgY2FjaGUgPSBTT1VQX0NBQ0hFKHNvdXBfc2Vzc2lvbl9nZXRfZmVh
dHVyZShXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKSwgU09VUF9UWVBF
X0NBQ0hFKSk7CiAgICAgICAgIGRpc2tGcmVlU2l6ZSA9IGdldENhY2hlRGlza0ZyZWVTaXplKGNh
Y2hlKSAvIDEwMjQgLyAxMDI0OwotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgfQot
I2VuZGlmCisKICAgICB1aW50NjRfdCBtZW1TaXplID0gZ2V0TWVtb3J5U2l6ZSgpOwogICAgIGNh
bGN1bGF0ZUNhY2hlU2l6ZXMoY2FjaGVNb2RlbCwgbWVtU2l6ZSwgZGlza0ZyZWVTaXplLAogICAg
ICAgICAgICAgICAgICAgICAgICAgY2FjaGVUb3RhbENhcGFjaXR5LCBjYWNoZU1pbkRlYWRDYXBh
Y2l0eSwgY2FjaGVNYXhEZWFkQ2FwYWNpdHksIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2
YWwsCkBAIC0xMTEsMTYgKzEwNywxMCBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtU2V0Q2Fj
aGVNb2RlbChDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCiAgICAgV2ViQ29yZTo6bWVtb3J5Q2FjaGUo
KS0+c2V0RGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbChkZWFkRGVjb2RlZERhdGFEZWxl
dGlvbkludGVydmFsKTsKICAgICBXZWJDb3JlOjpwYWdlQ2FjaGUoKS0+c2V0Q2FwYWNpdHkocGFn
ZUNhY2hlQ2FwYWNpdHkpOwogCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLSAgICBpZiAo
IW1fdXNlc05ldHdvcmtQcm9jZXNzKSB7Ci0jZW5kaWYKKyAgICBpZiAoIXVzZXNOZXR3b3JrUHJv
Y2VzcygpKSB7CiAgICAgICAgIGlmICh1cmxDYWNoZURpc2tDYXBhY2l0eSA+IHNvdXBfY2FjaGVf
Z2V0X21heF9zaXplKGNhY2hlKSkKICAgICAgICAgICAgIHNvdXBfY2FjaGVfc2V0X21heF9zaXpl
KGNhY2hlLCB1cmxDYWNoZURpc2tDYXBhY2l0eSk7Ci0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VT
UykKICAgICB9Ci0jZW5kaWYKLSAgICBpZiAodXJsQ2FjaGVEaXNrQ2FwYWNpdHkgPiBzb3VwX2Nh
Y2hlX2dldF9tYXhfc2l6ZShjYWNoZSkpCi0gICAgICAgIHNvdXBfY2FjaGVfc2V0X21heF9zaXpl
KGNhY2hlLCB1cmxDYWNoZURpc2tDYXBhY2l0eSk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxh
dGZvcm1DbGVhclJlc291cmNlQ2FjaGVzKFJlc291cmNlQ2FjaGVzVG9DbGVhciBjYWNoZXNUb0Ns
ZWFyKQpAQCAtMTI5LDEyICsxMTksMTAgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUNsZWFy
UmVzb3VyY2VDYWNoZXMoUmVzb3VyY2VDYWNoZXNUb0NsZWFyIGNhY2hlc1RvQ2xlYXIKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgLy8gSWYgd2UncmUgdXNpbmcgdGhlIG5ldHdvcmsgcHJvY2VzcyB0
aGVuIGl0IGlzIHRoZSBvbmx5IG9uZSB0aGF0IG5lZWRzIHRvIGNsZWFyIHRoZSBkaXNrIGNhY2hl
LgotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCi0gICAgaWYgKG1fdXNlc05ldHdvcmtQcm9j
ZXNzKQorICAgIGlmICh1c2VzTmV0d29ya1Byb2Nlc3MoKSkKICAgICAgICAgcmV0dXJuOwotI2Vu
ZGlmCi0gICAgU291cFNlc3Npb24qIHNlc3Npb24gPSBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6
ZGVmYXVsdFNlc3Npb24oKTsKLSAgICBzb3VwX2NhY2hlX2NsZWFyKFNPVVBfQ0FDSEUoc291cF9z
ZXNzaW9uX2dldF9mZWF0dXJlKHNlc3Npb24sIFNPVVBfVFlQRV9DQUNIRSkpKTsKKworICAgIHNv
dXBfY2FjaGVfY2xlYXIoU09VUF9DQUNIRShzb3VwX3Nlc3Npb25fZ2V0X2ZlYXR1cmUoV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCksIFNPVVBfVFlQRV9DQUNIRSkpKTsK
IH0KIAogLy8gVGhpcyBmdW5jdGlvbiBpcyBiYXNlZCBvbiBFcGlwaGFueSBjb2RlIGluIGVwaHkt
ZW1iZWQtcHJlZnMuYy4KQEAgLTE5OCwxNiArMTg2LDE0IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxh
dGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzCiAgICAgfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotICAgIGlm
ICghbV91c2VzTmV0d29ya1Byb2Nlc3MpIHsKLSNlbmRpZgotICAgICAgICBBU1NFUlQoIXBhcmFt
ZXRlcnMuZGlza0NhY2hlRGlyZWN0b3J5LmlzRW1wdHkoKSk7Ci0gICAgICAgIEdSZWZQdHI8U291
cENhY2hlPiBzb3VwQ2FjaGUgPSBhZG9wdEdSZWYoc291cF9jYWNoZV9uZXcocGFyYW1ldGVycy5k
aXNrQ2FjaGVEaXJlY3RvcnkudXRmOCgpLmRhdGEoKSwgU09VUF9DQUNIRV9TSU5HTEVfVVNFUikp
OwotICAgICAgICBzb3VwX3Nlc3Npb25fYWRkX2ZlYXR1cmUoV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGU6OmRlZmF1bHRTZXNzaW9uKCksIFNPVVBfU0VTU0lPTl9GRUFUVVJFKHNvdXBDYWNoZS5nZXQo
KSkpOwotICAgICAgICBzb3VwX2NhY2hlX2xvYWQoc291cENhY2hlLmdldCgpKTsKLSNpZiBFTkFC
TEUoTkVUV09SS19QUk9DRVNTKQotICAgIH0KLSNlbmRpZgorICAgIGlmICh1c2VzTmV0d29ya1By
b2Nlc3MoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKCFwYXJhbWV0ZXJzLmRpc2tD
YWNoZURpcmVjdG9yeS5pc0VtcHR5KCkpOworICAgIEdSZWZQdHI8U291cENhY2hlPiBzb3VwQ2Fj
aGUgPSBhZG9wdEdSZWYoc291cF9jYWNoZV9uZXcocGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3Rv
cnkudXRmOCgpLmRhdGEoKSwgU09VUF9DQUNIRV9TSU5HTEVfVVNFUikpOworICAgIHNvdXBfc2Vz
c2lvbl9hZGRfZmVhdHVyZShXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24o
KSwgU09VUF9TRVNTSU9OX0ZFQVRVUkUoc291cENhY2hlLmdldCgpKSk7CisgICAgc291cF9jYWNo
ZV9sb2FkKHNvdXBDYWNoZS5nZXQoKSk7CisKICAgICBpZiAoIXBhcmFtZXRlcnMubGFuZ3VhZ2Vz
LmlzRW1wdHkoKSkKICAgICAgICAgc2V0U291cFNlc3Npb25BY2NlcHRMYW5ndWFnZShwYXJhbWV0
ZXJzLmxhbmd1YWdlcyk7CiAKQEAgLTIyNywxNiArMjEzLDE5IEBAIHZvaWQgV2ViUHJvY2Vzczo6
cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzCiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1UZXJtaW5hdGUoKQogewotICAgIFdl
YkNvcmU6OnJlbW92ZUxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodGhpcyk7CisgICAgaWYgKCF1c2Vz
TmV0d29ya1Byb2Nlc3MoKSkKKyAgICAgICAgV2ViQ29yZTo6cmVtb3ZlTGFuZ3VhZ2VDaGFuZ2VP
YnNlcnZlcih0aGlzKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpzZXRJZ25vcmVUTFNFcnJvcnMo
Ym9vbCBpZ25vcmVUTFNFcnJvcnMpCiB7CisgICAgQVNTRVJUKCF1c2VzTmV0d29ya1Byb2Nlc3Mo
KSk7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnNldElnbm9yZVNTTEVycm9ycyhpZ25v
cmVUTFNFcnJvcnMpOwogfQogCiB2b2lkIFdlYlByb2Nlc3M6OmFsbG93U3BlY2lmaWNIVFRQU0Nl
cnRpZmljYXRlRm9ySG9zdChjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmlj
YXRlSW5mbywgY29uc3QgU3RyaW5nJiBob3N0KQogeworICAgIEFTU0VSVCghdXNlc05ldHdvcmtQ
cm9jZXNzKCkpOwogICAgIFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzZXRDbGllbnRDZXJ0aWZp
Y2F0ZShob3N0LCBjZXJ0aWZpY2F0ZUluZm8uY2VydGlmaWNhdGUoKSk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220071</attachid>
            <date>2013-12-28 02:24:19 -0800</date>
            <delta_ts>2014-01-03 09:48:24 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>wk2-uses-network-process.diff</filename>
            <type>text/plain</type>
            <size>11576</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA4ODFhYmI1Li5mODA0MjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQg
QEAKKzIwMTMtMTItMjQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIERlZmluZSBXZWJQcm9jZXNzOjp1c2VzTmV0d29ya1Byb2Nlc3MgdW5jb25k
aXRpb25hbGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjYyMDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBSZXR1cm5pbmcgZmFsc2Ugd2hlbiBuZXR3b3JrIHByb2Nlc3MgaXMgbm90IGVuYWJsZWQgbGlr
ZQorICAgICAgICBXZWJDb250ZXh0IGRvZXMuIFRoaXMgd2F5IHdlIHJlZHVjZSB0aGUgYW1vdW50
IG9mIGlmZGVmcyB1c2VkIHdoZW4KKyAgICAgICAgY2hlY2tpbmcgd2hldGhlciBuZXR3b3JrIHBy
b2Nlc3MgaXMgaW4gdXNlLgorCisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0R3Rr
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplV2Vi
UHJvY2Vzcyk6IFJlbW92ZSAjaWZkZWYKKyAgICAgICAgYW5kIG9ubHkgc2V0dXAgbmV0d29yayBm
ZWF0dXJlcyB3aGVuIG5vdCB1c2luZyBuZXR3b3JrIHByb2Nlc3MuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmlzQXZhaWxhYmxlKTogUmVtb3ZlICNpZmRl
Zi4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjp1c2VzTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MpOiBSZW1vdmUgI2lmZGVmcy4KKyAgICAgICAgKiBXZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vz
c1NvdXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldENhY2hl
TW9kZWwpOiBSZW1vdmUgI2lmZGVmcy4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxh
dGZvcm1DbGVhclJlc291cmNlQ2FjaGVzKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOiBEaXR0by4KKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1UZXJtaW5hdGUpOiBPbmx5IHJlbW92ZSB0aGUgbGFu
Z3VhZ2UKKyAgICAgICAgb2JzZXJ2ZXIgd2hlbiBub3QgdXNpbmcgbmV0d29yayBwcm9jZXNzLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRJZ25vcmVUTFNFcnJvcnMpOiBBc3NlcnQg
d2hlbiB0aGlzIGlzCisgICAgICAgIGNhbGxlZCB3aXRoIG5ldHdvcmsgcHJvY2VzcyBlbmFibGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZp
Y2F0ZUZvckhvc3QpOiBEaXR0by4KKwogMjAxMy0xMi0yOCAgS3dhbmcgWXVsIFNlbyAgPHNreXVs
QGNvbXBhbnkxMDAubmV0PgogCiAgICAgICAgIFtXSzJdW1NPVVBdIEZpeCBoYW5kbGluZyBvZiBj
b29raWVzIHdoZW4gbmV0d29yayBwcm9jZXNzIGlzIGVuYWJsZWQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29udGV4dEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRHdGsuY3BwCmluZGV4IDBhYTA5YWYuLmY4MTI2NzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29udGV4dEd0ay5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0R3RrLmNwcApA
QCAtOTgsMTMgKzk4LDE2IEBAIHZvaWQgV2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplV2Vi
UHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAgICAgICAgIHBhcmFt
ZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0xvY2FsLmFwcGVuZCgicmVzb3VyY2UiKTsKICAg
ICB9CiAKLSAgICBwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkID0gc3VwcGxlbWVudDxX
ZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eT4oKS0+cmVnaXN0ZXJlZFVSSVNjaGVtZXMoKTsKLSAg
ICBzdXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXJQcm94eT4oKS0+Z2V0Q29va2llUGVyc2lzdGVu
dFN0b3JhZ2UocGFyYW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZVBhdGgsIHBhcmFtZXRl
cnMuY29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlKTsKLSAgICBwYXJhbWV0ZXJzLmNvb2tpZUFj
Y2VwdFBvbGljeSA9IG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3k7CisgICAgaWYgKCF1
c2VzTmV0d29ya1Byb2Nlc3MoKSkgeworICAgICAgICBwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdp
c3RlcmVkID0gc3VwcGxlbWVudDxXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eT4oKS0+cmVnaXN0
ZXJlZFVSSVNjaGVtZXMoKTsKKworICAgICAgICBzdXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXJQ
cm94eT4oKS0+Z2V0Q29va2llUGVyc2lzdGVudFN0b3JhZ2UocGFyYW1ldGVycy5jb29raWVQZXJz
aXN0ZW50U3RvcmFnZVBhdGgsIHBhcmFtZXRlcnMuY29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBl
KTsKKyAgICAgICAgcGFyYW1ldGVycy5jb29raWVBY2NlcHRQb2xpY3kgPSBtX2luaXRpYWxIVFRQ
Q29va2llQWNjZXB0UG9saWN5OworCisgICAgICAgIHBhcmFtZXRlcnMuaWdub3JlVExTRXJyb3Jz
ID0gbV9pZ25vcmVUTFNFcnJvcnM7CisgICAgfQorCiAgICAgcGFyYW1ldGVycy5zaG91bGRUcmFj
a1Zpc2l0ZWRMaW5rcyA9IHRydWU7Ci0jaWYgIUVOQUJMRShORVRXT1JLX1BST0NFU1MpCi0gICAg
cGFyYW1ldGVycy5pZ25vcmVUTFNFcnJvcnMgPSBtX2lnbm9yZVRMU0Vycm9yczsKLSNlbmRpZgog
fQogCiB2b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3JtSW52YWxpZGF0ZUNvbnRleHQoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDA1M2Y0YjkuLjU1YzFlNTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTMyMSwxMSArMzIxLDcgQEAgdm9p
ZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmdldFBsdWdpbkluZm8oY29uc3QgV2ViQ29yZTo6UGFn
ZSogcGFnZSwgVmVjdG9yPFdlYkMKIGJvb2wgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjppc0F2YWls
YWJsZSgpIGNvbnN0CiB7CiAgICAgLy8gU2hhcmVkIHdvcmtlcnMgZG8gbm90IHdvcmsgYWNyb3Nz
IG11bHRpcGxlIHByb2Nlc3NlcywgYW5kIHVzaW5nIG5ldHdvcmsgcHJvY2VzcyBpcyB0aWVkIHRv
IG11bHRpcGxlIHNlY29uZGFyeSBwcm9jZXNzIG1vZGVsLiAKLSNpZiBFTkFCTEUoTkVUV09SS19Q
Uk9DRVNTKSAKLSAgICByZXR1cm4gIVdlYlByb2Nlc3M6OnNoYXJlZCgpLnVzZXNOZXR3b3JrUHJv
Y2VzcygpOyAKLSNlbHNlIAotICAgIHJldHVybiB0cnVlOyAKLSNlbmRpZgorICAgIHJldHVybiAh
V2ViUHJvY2Vzczo6c2hhcmVkKCkudXNlc05ldHdvcmtQcm9jZXNzKCk7CiB9CiAKICNpZiBFTkFC
TEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCmluZGV4IGJkNGVhNjEuLjQyNDI5ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcApAQCAtOTkzLDYgKzk5MywxNSBAQCB2b2lkIFdlYlByb2Nlc3M6OnBv
c3RJbmplY3RlZEJ1bmRsZU1lc3NhZ2UoY29uc3QgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSYgbWVz
c2FnZQogICAgIGluamVjdGVkQnVuZGxlLT5kaWRSZWNlaXZlTWVzc2FnZShtZXNzYWdlTmFtZSwg
bWVzc2FnZUJvZHkuZ2V0KCkpOwogfQogCitib29sIFdlYlByb2Nlc3M6OnVzZXNOZXR3b3JrUHJv
Y2VzcygpIGNvbnN0Cit7CisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyAgICByZXR1cm4g
bV91c2VzTmV0d29ya1Byb2Nlc3M7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgor
fQorCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
biogV2ViUHJvY2Vzczo6bmV0d29ya0Nvbm5lY3Rpb24oKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaAppbmRleCAyZjhkMDk2Li40NTE0ZGFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMTUyLDEwICsxNTIsMTEgQEAgcHVibGljOgogCiAg
ICAgRXZlbnREaXNwYXRjaGVyJiBldmVudERpc3BhdGNoZXIoKSB7IHJldHVybiAqbV9ldmVudERp
c3BhdGNoZXI7IH0KIAorICAgIGJvb2wgdXNlc05ldHdvcmtQcm9jZXNzKCkgY29uc3Q7CisKICNp
ZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAgIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiog
bmV0d29ya0Nvbm5lY3Rpb24oKTsKICAgICB2b2lkIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkNs
b3NlZChOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24qKTsKLSAgICBib29sIHVzZXNOZXR3b3JrUHJv
Y2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fdXNlc05ldHdvcmtQcm9jZXNzOyB9CiAgICAgV2ViUmVz
b3VyY2VMb2FkU2NoZWR1bGVyJiB3ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIoKTsKICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFj
Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01hYy5tbQppbmRl
eCA4MzJmMDQ5Li4zODFiYjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L21hYy9XZWJQcm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFj
L1dlYlByb2Nlc3NNYWMubW0KQEAgLTE2MiwxOCArMTYyLDE0IEBAIHZvaWQgV2ViUHJvY2Vzczo6
cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzCiAKICAgICAvLyBXaGVuIHRoZSBuZXR3b3JrIHByb2Nlc3MgaXMgZW5hYmxlZCwgZWFj
aCB3ZWIgcHJvY2VzcyB3YW50cyBhIHN0YW5kLWFsb25lCiAgICAgLy8gTlNVUkxDYWNoZSwgd2hp
Y2ggaXQgY2FuIGRpc2FibGUgdG8gc2F2ZSBtZW1vcnkuCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJP
Q0VTUykKLSAgICBpZiAoIW1fdXNlc05ldHdvcmtQcm9jZXNzKSB7Ci0jZW5kaWYKKyAgICBpZiAo
IXVzZXNOZXR3b3JrUHJvY2VzcygpKSB7CiAgICAgICAgIGlmICghcGFyYW1ldGVycy5kaXNrQ2Fj
aGVEaXJlY3RvcnkuaXNOdWxsKCkpIHsKICAgICAgICAgICAgIFtOU1VSTENhY2hlIHNldFNoYXJl
ZFVSTENhY2hlOmFkb3B0TlMoW1tOU1VSTENhY2hlIGFsbG9jXQogICAgICAgICAgICAgICAgIGlu
aXRXaXRoTWVtb3J5Q2FwYWNpdHk6cGFyYW1ldGVycy5uc1VSTENhY2hlTWVtb3J5Q2FwYWNpdHkK
ICAgICAgICAgICAgICAgICBkaXNrQ2FwYWNpdHk6cGFyYW1ldGVycy5uc1VSTENhY2hlRGlza0Nh
cGFjaXR5CiAgICAgICAgICAgICAgICAgZGlza1BhdGg6cGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJl
Y3RvcnldKS5nZXQoKV07CiAgICAgICAgIH0KLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQog
ICAgIH0KLSNlbmRpZgogCiAgICAgbV9zaG91bGRGb3JjZVNjcmVlbkZvbnRTdWJzdGl0dXRpb24g
PSBwYXJhbWV0ZXJzLnNob3VsZEZvcmNlU2NyZWVuRm9udFN1YnN0aXR1dGlvbjsKICAgICBGb250
OjpzZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyhwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZUtl
cm5pbmdBbmRMaWdhdHVyZXNCeURlZmF1bHQgPyBLZXJuaW5nIHwgTGlnYXR1cmVzIDogMCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcApp
bmRleCBiMzAzN2Y1Li4yNTA4MTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHAKQEAgLTkzLDE1ICs5MywxMSBAQCB2b2lkIFdlYlBy
b2Nlc3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCiAgICAg
dWludDY0X3QgZGlza0ZyZWVTaXplID0gMDsKICAgICBTb3VwQ2FjaGUqIGNhY2hlID0gbnVsbHB0
cjsKIAotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCi0gICAgaWYgKCFtX3VzZXNOZXR3b3Jr
UHJvY2VzcykgewotI2VuZGlmCi0gICAgICAgIFNvdXBTZXNzaW9uKiBzZXNzaW9uID0gV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCk7Ci0gICAgICAgIGNhY2hlID0gU09V
UF9DQUNIRShzb3VwX3Nlc3Npb25fZ2V0X2ZlYXR1cmUoc2Vzc2lvbiwgU09VUF9UWVBFX0NBQ0hF
KSk7CisgICAgaWYgKCF1c2VzTmV0d29ya1Byb2Nlc3MoKSkgeworICAgICAgICBjYWNoZSA9IFNP
VVBfQ0FDSEUoc291cF9zZXNzaW9uX2dldF9mZWF0dXJlKFdlYkNvcmU6OlJlc291cmNlSGFuZGxl
OjpkZWZhdWx0U2Vzc2lvbigpLCBTT1VQX1RZUEVfQ0FDSEUpKTsKICAgICAgICAgZGlza0ZyZWVT
aXplID0gZ2V0Q2FjaGVEaXNrRnJlZVNpemUoY2FjaGUpIC8gMTAyNCAvIDEwMjQ7Ci0jaWYgRU5B
QkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICB9Ci0jZW5kaWYKKwogICAgIHVpbnQ2NF90IG1lbVNp
emUgPSBnZXRNZW1vcnlTaXplKCk7CiAgICAgY2FsY3VsYXRlQ2FjaGVTaXplcyhjYWNoZU1vZGVs
LCBtZW1TaXplLCBkaXNrRnJlZVNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVRv
dGFsQ2FwYWNpdHksIGNhY2hlTWluRGVhZENhcGFjaXR5LCBjYWNoZU1heERlYWRDYXBhY2l0eSwg
ZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCwKQEAgLTExMSwxNiArMTA3LDEwIEBAIHZv
aWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwgY2FjaGVNb2Rl
bCkKICAgICBXZWJDb3JlOjptZW1vcnlDYWNoZSgpLT5zZXREZWFkRGVjb2RlZERhdGFEZWxldGlv
bkludGVydmFsKGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwpOwogICAgIFdlYkNvcmU6
OnBhZ2VDYWNoZSgpLT5zZXRDYXBhY2l0eShwYWdlQ2FjaGVDYXBhY2l0eSk7CiAKLSNpZiBFTkFC
TEUoTkVUV09SS19QUk9DRVNTKQotICAgIGlmICghbV91c2VzTmV0d29ya1Byb2Nlc3MpIHsKLSNl
bmRpZgorICAgIGlmICghdXNlc05ldHdvcmtQcm9jZXNzKCkpIHsKICAgICAgICAgaWYgKHVybENh
Y2hlRGlza0NhcGFjaXR5ID4gc291cF9jYWNoZV9nZXRfbWF4X3NpemUoY2FjaGUpKQogICAgICAg
ICAgICAgc291cF9jYWNoZV9zZXRfbWF4X3NpemUoY2FjaGUsIHVybENhY2hlRGlza0NhcGFjaXR5
KTsKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAgIH0KLSNlbmRpZgotICAgIGlmICh1
cmxDYWNoZURpc2tDYXBhY2l0eSA+IHNvdXBfY2FjaGVfZ2V0X21heF9zaXplKGNhY2hlKSkKLSAg
ICAgICAgc291cF9jYWNoZV9zZXRfbWF4X3NpemUoY2FjaGUsIHVybENhY2hlRGlza0NhcGFjaXR5
KTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUNsZWFyUmVzb3VyY2VDYWNoZXMoUmVz
b3VyY2VDYWNoZXNUb0NsZWFyIGNhY2hlc1RvQ2xlYXIpCkBAIC0xMjksMTIgKzExOSwxMCBAQCB2
b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtQ2xlYXJSZXNvdXJjZUNhY2hlcyhSZXNvdXJjZUNhY2hl
c1RvQ2xlYXIgY2FjaGVzVG9DbGVhcgogICAgICAgICByZXR1cm47CiAKICAgICAvLyBJZiB3ZSdy
ZSB1c2luZyB0aGUgbmV0d29yayBwcm9jZXNzIHRoZW4gaXQgaXMgdGhlIG9ubHkgb25lIHRoYXQg
bmVlZHMgdG8gY2xlYXIgdGhlIGRpc2sgY2FjaGUuCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VT
UykKLSAgICBpZiAobV91c2VzTmV0d29ya1Byb2Nlc3MpCisgICAgaWYgKHVzZXNOZXR3b3JrUHJv
Y2VzcygpKQogICAgICAgICByZXR1cm47Ci0jZW5kaWYKLSAgICBTb3VwU2Vzc2lvbiogc2Vzc2lv
biA9IFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpOwotICAgIHNvdXBf
Y2FjaGVfY2xlYXIoU09VUF9DQUNIRShzb3VwX3Nlc3Npb25fZ2V0X2ZlYXR1cmUoc2Vzc2lvbiwg
U09VUF9UWVBFX0NBQ0hFKSkpOworCisgICAgc291cF9jYWNoZV9jbGVhcihTT1VQX0NBQ0hFKHNv
dXBfc2Vzc2lvbl9nZXRfZmVhdHVyZShXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNl
c3Npb24oKSwgU09VUF9UWVBFX0NBQ0hFKSkpOwogfQogCiAvLyBUaGlzIGZ1bmN0aW9uIGlzIGJh
c2VkIG9uIEVwaXBoYW55IGNvZGUgaW4gZXBoeS1lbWJlZC1wcmVmcy5jLgpAQCAtMTk4LDIyICsx
ODYsMjAgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNv
bnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMKICAgICB9CiAjZW5kaWYKIAotI2lmIEVO
QUJMRShORVRXT1JLX1BST0NFU1MpCi0gICAgaWYgKCFtX3VzZXNOZXR3b3JrUHJvY2Vzcykgewot
I2VuZGlmCi0gICAgICAgIEFTU0VSVCghcGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3RvcnkuaXNF
bXB0eSgpKTsKLSAgICAgICAgR1JlZlB0cjxTb3VwQ2FjaGU+IHNvdXBDYWNoZSA9IGFkb3B0R1Jl
Zihzb3VwX2NhY2hlX25ldyhwYXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVjdG9yeS51dGY4KCkuZGF0
YSgpLCBTT1VQX0NBQ0hFX1NJTkdMRV9VU0VSKSk7Ci0gICAgICAgIHNvdXBfc2Vzc2lvbl9hZGRf
ZmVhdHVyZShXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKSwgU09VUF9T
RVNTSU9OX0ZFQVRVUkUoc291cENhY2hlLmdldCgpKSk7Ci0gICAgICAgIHNvdXBfY2FjaGVfbG9h
ZChzb3VwQ2FjaGUuZ2V0KCkpOwotCi0gICAgICAgIGlmICghcGFyYW1ldGVycy5jb29raWVQZXJz
aXN0ZW50U3RvcmFnZVBhdGguaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBzdXBwbGVtZW50PFdl
YkNvb2tpZU1hbmFnZXI+KCktPnNldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKHBhcmFtZXRlcnMu
Y29va2llUGVyc2lzdGVudFN0b3JhZ2VQYXRoLAotICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMu
Y29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlKTsKLSAgICAgICAgfQotICAgICAgICBzdXBwbGVt
ZW50PFdlYkNvb2tpZU1hbmFnZXI+KCktPnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kocGFyYW1l
dGVycy5jb29raWVBY2NlcHRQb2xpY3kpOwotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisg
ICAgaWYgKHVzZXNOZXR3b3JrUHJvY2VzcygpKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NF
UlQoIXBhcmFtZXRlcnMuZGlza0NhY2hlRGlyZWN0b3J5LmlzRW1wdHkoKSk7CisgICAgR1JlZlB0
cjxTb3VwQ2FjaGU+IHNvdXBDYWNoZSA9IGFkb3B0R1JlZihzb3VwX2NhY2hlX25ldyhwYXJhbWV0
ZXJzLmRpc2tDYWNoZURpcmVjdG9yeS51dGY4KCkuZGF0YSgpLCBTT1VQX0NBQ0hFX1NJTkdMRV9V
U0VSKSk7CisgICAgc291cF9zZXNzaW9uX2FkZF9mZWF0dXJlKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjpkZWZhdWx0U2Vzc2lvbigpLCBTT1VQX1NFU1NJT05fRkVBVFVSRShzb3VwQ2FjaGUuZ2V0
KCkpKTsKKyAgICBzb3VwX2NhY2hlX2xvYWQoc291cENhY2hlLmdldCgpKTsKKworICAgIGlmICgh
cGFyYW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZVBhdGguaXNFbXB0eSgpKSB7CisgICAg
ICAgIHN1cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlcj4oKS0+c2V0Q29va2llUGVyc2lzdGVudFN0
b3JhZ2UocGFyYW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZVBhdGgsCisgICAgICAgICAg
ICBwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZSk7CiAgICAgfQotI2VuZGlm
CisgICAgc3VwcGxlbWVudDxXZWJDb29raWVNYW5hZ2VyPigpLT5zZXRIVFRQQ29va2llQWNjZXB0
UG9saWN5KHBhcmFtZXRlcnMuY29va2llQWNjZXB0UG9saWN5KTsKKwogICAgIGlmICghcGFyYW1l
dGVycy5sYW5ndWFnZXMuaXNFbXB0eSgpKQogICAgICAgICBzZXRTb3VwU2Vzc2lvbkFjY2VwdExh
bmd1YWdlKHBhcmFtZXRlcnMubGFuZ3VhZ2VzKTsKIApAQCAtMjI3LDE2ICsyMTMsMTkgQEAgdm9p
ZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMKIAogdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybVRlcm1pbmF0
ZSgpCiB7Ci0gICAgV2ViQ29yZTo6cmVtb3ZlTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih0aGlzKTsK
KyAgICBpZiAoIXVzZXNOZXR3b3JrUHJvY2VzcygpKQorICAgICAgICBXZWJDb3JlOjpyZW1vdmVM
YW5ndWFnZUNoYW5nZU9ic2VydmVyKHRoaXMpOwogfQogCiB2b2lkIFdlYlByb2Nlc3M6OnNldEln
bm9yZVRMU0Vycm9ycyhib29sIGlnbm9yZVRMU0Vycm9ycykKIHsKKyAgICBBU1NFUlQoIXVzZXNO
ZXR3b3JrUHJvY2VzcygpKTsKICAgICBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c2V0SWdub3Jl
U1NMRXJyb3JzKGlnbm9yZVRMU0Vycm9ycyk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6YWxsb3dT
cGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRl
SW5mbyYgY2VydGlmaWNhdGVJbmZvLCBjb25zdCBTdHJpbmcmIGhvc3QpCiB7CisgICAgQVNTRVJU
KCF1c2VzTmV0d29ya1Byb2Nlc3MoKSk7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnNl
dENsaWVudENlcnRpZmljYXRlKGhvc3QsIGNlcnRpZmljYXRlSW5mby5jZXJ0aWZpY2F0ZSgpKTsK
IH0KIAo=
</data>
<flag name="review"
          id="243736"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220310</attachid>
            <date>2014-01-03 09:48:24 -0800</date>
            <delta_ts>2014-01-03 10:24:30 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>wk2-use-network-process.diff</filename>
            <type>text/plain</type>
            <size>13418</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzYjA0YTg0Li4xZGIyMTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcg
QEAKKzIwMTQtMDEtMDMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIERlZmluZSBXZWJQcm9jZXNzOjp1c2VzTmV0d29ya1Byb2Nlc3MgdW5jb25k
aXRpb25hbGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjYyMDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBSZXR1cm5pbmcgZmFsc2Ugd2hlbiBuZXR3b3JrIHByb2Nlc3MgaXMgbm90IGVuYWJsZWQgbGlr
ZQorICAgICAgICBXZWJDb250ZXh0IGRvZXMuIFRoaXMgd2F5IHdlIHJlZHVjZSB0aGUgYW1vdW50
IG9mIGlmZGVmcyB1c2VkIHdoZW4KKyAgICAgICAgY2hlY2tpbmcgd2hldGhlciBuZXR3b3JrIHBy
b2Nlc3MgaXMgaW4gdXNlLgorCisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0R3Rr
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplV2Vi
UHJvY2Vzcyk6IFJlbW92ZSAjaWZkZWYKKyAgICAgICAgYW5kIG9ubHkgc2V0dXAgbmV0d29yayBm
ZWF0dXJlcyB3aGVuIG5vdCB1c2luZyBuZXR3b3JrIHByb2Nlc3MuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmlzQXZhaWxhYmxlKTogUmVtb3ZlICNpZmRl
Zi4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjpkb3dubG9hZE1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjpzaG91bGRUZXJtaW5hdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp1c2Vz
TmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbCk6IFJlbW92ZSAjaWZkZWYuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOiBE
aXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9kZWwpOiBEaXR0by4K
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1DbGVhclJlc291cmNlQ2FjaGVz
KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6
ZVdlYlByb2Nlc3MpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZv
cm1UZXJtaW5hdGUpOiBPbmx5IHJlbW92ZSB0aGUgbGFuZ3VhZ2UKKyAgICAgICAgb2JzZXJ2ZXIg
d2hlbiBub3QgdXNpbmcgbmV0d29yayBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjpzZXRJZ25vcmVUTFNFcnJvcnMpOiBBc3NlcnQgd2hlbiB0aGlzIGlzCisgICAgICAgIGNh
bGxlZCB3aXRoIG5ldHdvcmsgcHJvY2VzcyBlbmFibGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjphbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QpOiBEaXR0by4KKwog
MjAxNC0wMS0wMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0dUS10gQWRkIEFQSSB0byBXZWJLaXRSZXNwb25zZVBvbGljeURlY2lzaW9uIHRv
IGNoZWNrIGlmIHRoZSBNSU1FIHR5cGUgY2FuIGJlIHNob3duCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRHdGsuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0R3RrLmNwcAppbmRleCAwYWEwOWFmLi5mODEyNjcwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRHdGsuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29udGV4dEd0ay5jcHAKQEAg
LTk4LDEzICs5OCwxNiBAQCB2b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlBy
b2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogICAgICAgICBwYXJhbWV0
ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkQXNMb2NhbC5hcHBlbmQoInJlc291cmNlIik7CiAgICAg
fQogCi0gICAgcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZCA9IHN1cHBsZW1lbnQ8V2Vi
U291cFJlcXVlc3RNYW5hZ2VyUHJveHk+KCktPnJlZ2lzdGVyZWRVUklTY2hlbWVzKCk7Ci0gICAg
c3VwcGxlbWVudDxXZWJDb29raWVNYW5hZ2VyUHJveHk+KCktPmdldENvb2tpZVBlcnNpc3RlbnRT
dG9yYWdlKHBhcmFtZXRlcnMuY29va2llUGVyc2lzdGVudFN0b3JhZ2VQYXRoLCBwYXJhbWV0ZXJz
LmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZSk7Ci0gICAgcGFyYW1ldGVycy5jb29raWVBY2Nl
cHRQb2xpY3kgPSBtX2luaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5OworICAgIGlmICghdXNl
c05ldHdvcmtQcm9jZXNzKCkpIHsKKyAgICAgICAgcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0
ZXJlZCA9IHN1cHBsZW1lbnQ8V2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk+KCktPnJlZ2lzdGVy
ZWRVUklTY2hlbWVzKCk7CisKKyAgICAgICAgc3VwcGxlbWVudDxXZWJDb29raWVNYW5hZ2VyUHJv
eHk+KCktPmdldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKHBhcmFtZXRlcnMuY29va2llUGVyc2lz
dGVudFN0b3JhZ2VQYXRoLCBwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZSk7
CisgICAgICAgIHBhcmFtZXRlcnMuY29va2llQWNjZXB0UG9saWN5ID0gbV9pbml0aWFsSFRUUENv
b2tpZUFjY2VwdFBvbGljeTsKKworICAgICAgICBwYXJhbWV0ZXJzLmlnbm9yZVRMU0Vycm9ycyA9
IG1faWdub3JlVExTRXJyb3JzOworICAgIH0KKwogICAgIHBhcmFtZXRlcnMuc2hvdWxkVHJhY2tW
aXNpdGVkTGlua3MgPSB0cnVlOwotI2lmICFFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotICAgIHBh
cmFtZXRlcnMuaWdub3JlVExTRXJyb3JzID0gbV9pZ25vcmVUTFNFcnJvcnM7Ci0jZW5kaWYKIH0K
IAogdm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUludmFsaWRhdGVDb250ZXh0KCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCAwNTNmNGI5Li41NWMxZTUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC0zMjEsMTEgKzMyMSw3IEBAIHZvaWQg
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpnZXRQbHVnaW5JbmZvKGNvbnN0IFdlYkNvcmU6OlBhZ2Uq
IHBhZ2UsIFZlY3RvcjxXZWJDCiBib29sIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6aXNBdmFpbGFi
bGUoKSBjb25zdAogewogICAgIC8vIFNoYXJlZCB3b3JrZXJzIGRvIG5vdCB3b3JrIGFjcm9zcyBt
dWx0aXBsZSBwcm9jZXNzZXMsIGFuZCB1c2luZyBuZXR3b3JrIHByb2Nlc3MgaXMgdGllZCB0byBt
dWx0aXBsZSBzZWNvbmRhcnkgcHJvY2VzcyBtb2RlbC4gCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJP
Q0VTUykgCi0gICAgcmV0dXJuICFXZWJQcm9jZXNzOjpzaGFyZWQoKS51c2VzTmV0d29ya1Byb2Nl
c3MoKTsgCi0jZWxzZSAKLSAgICByZXR1cm4gdHJ1ZTsgCi0jZW5kaWYKKyAgICByZXR1cm4gIVdl
YlByb2Nlc3M6OnNoYXJlZCgpLnVzZXNOZXR3b3JrUHJvY2VzcygpOwogfQogCiAjaWYgRU5BQkxF
KE5FVFNDQVBFX1BMVUdJTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAppbmRleCAxYzA2YzFkLi5kMjU2ZjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKQEAgLTQ2OCw5ICs0NjgsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmRlc3Ry
b3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKIAogRG93bmxvYWRNYW5hZ2VyJiBXZWJQcm9jZXNz
Ojpkb3dubG9hZE1hbmFnZXIoKQogewotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCi0gICAg
QVNTRVJUKCFtX3VzZXNOZXR3b3JrUHJvY2Vzcyk7Ci0jZW5kaWYKKyAgICBBU1NFUlQoIXVzZXNO
ZXR3b3JrUHJvY2VzcygpKTsKIAogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxEb3dubG9hZE1h
bmFnZXI+IGRvd25sb2FkTWFuYWdlcih0aGlzKTsKICAgICByZXR1cm4gZG93bmxvYWRNYW5hZ2Vy
OwpAQCAtNTk3LDEyICs1OTUsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnJlbW92ZVdlYlBhZ2UodWlu
dDY0X3QgcGFnZUlEKQogYm9vbCBXZWJQcm9jZXNzOjpzaG91bGRUZXJtaW5hdGUoKQogewogICAg
IEFTU0VSVChtX3BhZ2VNYXAuaXNFbXB0eSgpKTsKLQotI2lmIEVOQUJMRShORVRXT1JLX1BST0NF
U1MpCi0gICAgQVNTRVJUKG1fdXNlc05ldHdvcmtQcm9jZXNzIHx8ICFkb3dubG9hZE1hbmFnZXIo
KS5pc0Rvd25sb2FkaW5nKCkpOwotI2Vsc2UKLSAgICBBU1NFUlQoIWRvd25sb2FkTWFuYWdlcigp
LmlzRG93bmxvYWRpbmcoKSk7Ci0jZW5kaWYKKyAgICBBU1NFUlQodXNlc05ldHdvcmtQcm9jZXNz
KCkgfHwgIWRvd25sb2FkTWFuYWdlcigpLmlzRG93bmxvYWRpbmcoKSk7CiAKICAgICAvLyBGSVhN
RTogdGhlIFNob3VsZFRlcm1pbmF0ZSBtZXNzYWdlIHNob3VsZCBhbHNvIHNlbmQgdGVybWluYXRp
b24gcGFyYW1ldGVycywgc3VjaCBhcyBhbnkgc2Vzc2lvbiBjb29raWVzIHRoYXQgbmVlZCB0byBi
ZSBwcmVzZXJ2ZWQuCiAgICAgYm9vbCBzaG91bGRUZXJtaW5hdGUgPSBmYWxzZTsKQEAgLTk5Myw2
ICs5ODYsMTUgQEAgdm9pZCBXZWJQcm9jZXNzOjpwb3N0SW5qZWN0ZWRCdW5kbGVNZXNzYWdlKGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZURhdGEKICAgICBpbmplY3RlZEJ1bmRsZS0+
ZGlkUmVjZWl2ZU1lc3NhZ2UobWVzc2FnZU5hbWUsIG1lc3NhZ2VCb2R5LmdldCgpKTsKIH0KIAor
Ym9vbCBXZWJQcm9jZXNzOjp1c2VzTmV0d29ya1Byb2Nlc3MoKSBjb25zdAoreworI2lmIEVOQUJM
RShORVRXT1JLX1BST0NFU1MpCisgICAgcmV0dXJuIG1fdXNlc05ldHdvcmtQcm9jZXNzOworI2Vs
c2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogI2lmIEVOQUJMRShORVRXT1JLX1BS
T0NFU1MpCiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24qIFdlYlByb2Nlc3M6Om5ldHdvcmtDb25u
ZWN0aW9uKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZGFm
ZWZjZi4uZjYzYTBiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAg
LTE1MiwxMCArMTUyLDExIEBAIHB1YmxpYzoKIAogICAgIEV2ZW50RGlzcGF0Y2hlciYgZXZlbnRE
aXNwYXRjaGVyKCkgeyByZXR1cm4gKm1fZXZlbnREaXNwYXRjaGVyOyB9CiAKKyAgICBib29sIHVz
ZXNOZXR3b3JrUHJvY2VzcygpIGNvbnN0OworCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykK
ICAgICBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24qIG5ldHdvcmtDb25uZWN0aW9uKCk7CiAgICAg
dm9pZCBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uKik7Ci0gICAgYm9vbCB1c2VzTmV0d29ya1Byb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3Vz
ZXNOZXR3b3JrUHJvY2VzczsgfQogICAgIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlciYgd2ViUmVz
b3VyY2VMb2FkU2NoZWR1bGVyKCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWMubW0KaW5kZXggNDJmYWZkNi4uZWI4NDM3MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFjLm1tCkBAIC0xMTIs
MTUgKzExMiwxMyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbChDYWNo
ZU1vZGVsIGNhY2hlTW9kZWwpCiAKICAgICBOU1VSTENhY2hlICpuc3VybENhY2hlID0gW05TVVJM
Q2FjaGUgc2hhcmVkVVJMQ2FjaGVdOwogCi0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAg
ICAvLyBGSVhNRTogT25jZSB0aGVyZSBpcyBubyBsb2FkaW5nIGJlaW5nIGRvbmUgaW4gdGhlIFdl
YlByb2Nlc3MsIHdlIHNob3VsZCByZW1vdmUgdGhpcywKICAgICAvLyBhcyBjYWxsaW5nIFtOU1VS
TENhY2hlIHNoYXJlZFVSTENhY2hlXSBpbml0aWFsaXplcyB0aGUgY2FjaGUsIHdoaWNoIHdlIHdv
dWxkIHJhdGhlciBub3QgZG8uCi0gICAgaWYgKG1fdXNlc05ldHdvcmtQcm9jZXNzKSB7CisgICAg
aWYgKHVzZXNOZXR3b3JrUHJvY2VzcygpKSB7CiAgICAgICAgIFtuc3VybENhY2hlIHNldE1lbW9y
eUNhcGFjaXR5OjBdOwogICAgICAgICBbbnN1cmxDYWNoZSBzZXREaXNrQ2FwYWNpdHk6MF07CiAg
ICAgICAgIHJldHVybjsKICAgICB9Ci0jZW5kaWYKIAogICAgIFtuc3VybENhY2hlIHNldE1lbW9y
eUNhcGFjaXR5OnVybENhY2hlTWVtb3J5Q2FwYWNpdHldOwogICAgIFtuc3VybENhY2hlIHNldERp
c2tDYXBhY2l0eTpzdGQ6Om1heDx1bnNpZ25lZCBsb25nPih1cmxDYWNoZURpc2tDYXBhY2l0eSwg
W25zdXJsQ2FjaGUgZGlza0NhcGFjaXR5XSldOyAvLyBEb24ndCBzaHJpbmsgYSBiaWcgZGlzayBj
YWNoZSwgc2luY2UgdGhhdCB3b3VsZCBjYXVzZSBjaHVybi4KQEAgLTE2MiwxOCArMTYwLDE0IEBA
IHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzCiAKICAgICAvLyBXaGVuIHRoZSBuZXR3b3JrIHByb2Nl
c3MgaXMgZW5hYmxlZCwgZWFjaCB3ZWIgcHJvY2VzcyB3YW50cyBhIHN0YW5kLWFsb25lCiAgICAg
Ly8gTlNVUkxDYWNoZSwgd2hpY2ggaXQgY2FuIGRpc2FibGUgdG8gc2F2ZSBtZW1vcnkuCi0jaWYg
RU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLSAgICBpZiAoIW1fdXNlc05ldHdvcmtQcm9jZXNzKSB7
Ci0jZW5kaWYKKyAgICBpZiAoIXVzZXNOZXR3b3JrUHJvY2VzcygpKSB7CiAgICAgICAgIGlmICgh
cGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3RvcnkuaXNOdWxsKCkpIHsKICAgICAgICAgICAgIFtO
U1VSTENhY2hlIHNldFNoYXJlZFVSTENhY2hlOmFkb3B0TlMoW1tOU1VSTENhY2hlIGFsbG9jXQog
ICAgICAgICAgICAgICAgIGluaXRXaXRoTWVtb3J5Q2FwYWNpdHk6cGFyYW1ldGVycy5uc1VSTENh
Y2hlTWVtb3J5Q2FwYWNpdHkKICAgICAgICAgICAgICAgICBkaXNrQ2FwYWNpdHk6cGFyYW1ldGVy
cy5uc1VSTENhY2hlRGlza0NhcGFjaXR5CiAgICAgICAgICAgICAgICAgZGlza1BhdGg6cGFyYW1l
dGVycy5kaXNrQ2FjaGVEaXJlY3RvcnldKS5nZXQoKV07CiAgICAgICAgIH0KLSNpZiBFTkFCTEUo
TkVUV09SS19QUk9DRVNTKQogICAgIH0KLSNlbmRpZgogCiAgICAgbV9zaG91bGRGb3JjZVNjcmVl
bkZvbnRTdWJzdGl0dXRpb24gPSBwYXJhbWV0ZXJzLnNob3VsZEZvcmNlU2NyZWVuRm9udFN1YnN0
aXR1dGlvbjsKICAgICBGb250OjpzZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyhwYXJhbWV0
ZXJzLnNob3VsZEVuYWJsZUtlcm5pbmdBbmRMaWdhdHVyZXNCeURlZmF1bHQgPyBLZXJuaW5nIHwg
TGlnYXR1cmVzIDogMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3Nv
dXAvV2ViUHJvY2Vzc1NvdXAuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dl
YlByb2Nlc3NTb3VwLmNwcAppbmRleCBiN2NkYzRkLi43MzMwNzhkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHAKQEAgLTkzLDE1ICs5
MywxMSBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVs
IGNhY2hlTW9kZWwpCiAgICAgdWludDY0X3QgZGlza0ZyZWVTaXplID0gMDsKICAgICBTb3VwQ2Fj
aGUqIGNhY2hlID0gbnVsbHB0cjsKIAotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCi0gICAg
aWYgKCFtX3VzZXNOZXR3b3JrUHJvY2VzcykgewotI2VuZGlmCi0gICAgICAgIFNvdXBTZXNzaW9u
KiBzZXNzaW9uID0gV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNzaW9uKCk7Ci0g
ICAgICAgIGNhY2hlID0gU09VUF9DQUNIRShzb3VwX3Nlc3Npb25fZ2V0X2ZlYXR1cmUoc2Vzc2lv
biwgU09VUF9UWVBFX0NBQ0hFKSk7CisgICAgaWYgKCF1c2VzTmV0d29ya1Byb2Nlc3MoKSkgewor
ICAgICAgICBjYWNoZSA9IFNPVVBfQ0FDSEUoc291cF9zZXNzaW9uX2dldF9mZWF0dXJlKFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpLCBTT1VQX1RZUEVfQ0FDSEUpKTsK
ICAgICAgICAgZGlza0ZyZWVTaXplID0gZ2V0Q2FjaGVEaXNrRnJlZVNpemUoY2FjaGUpIC8gMTAy
NCAvIDEwMjQ7Ci0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICB9Ci0jZW5kaWYKKwog
ICAgIHVpbnQ2NF90IG1lbVNpemUgPSBnZXRNZW1vcnlTaXplKCk7CiAgICAgY2FsY3VsYXRlQ2Fj
aGVTaXplcyhjYWNoZU1vZGVsLCBtZW1TaXplLCBkaXNrRnJlZVNpemUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICBjYWNoZVRvdGFsQ2FwYWNpdHksIGNhY2hlTWluRGVhZENhcGFjaXR5LCBjYWNo
ZU1heERlYWRDYXBhY2l0eSwgZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCwKQEAgLTEx
MSwxNiArMTA3LDEwIEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENh
Y2hlTW9kZWwgY2FjaGVNb2RlbCkKICAgICBXZWJDb3JlOjptZW1vcnlDYWNoZSgpLT5zZXREZWFk
RGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsKGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2
YWwpOwogICAgIFdlYkNvcmU6OnBhZ2VDYWNoZSgpLT5zZXRDYXBhY2l0eShwYWdlQ2FjaGVDYXBh
Y2l0eSk7CiAKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotICAgIGlmICghbV91c2VzTmV0
d29ya1Byb2Nlc3MpIHsKLSNlbmRpZgorICAgIGlmICghdXNlc05ldHdvcmtQcm9jZXNzKCkpIHsK
ICAgICAgICAgaWYgKHVybENhY2hlRGlza0NhcGFjaXR5ID4gc291cF9jYWNoZV9nZXRfbWF4X3Np
emUoY2FjaGUpKQogICAgICAgICAgICAgc291cF9jYWNoZV9zZXRfbWF4X3NpemUoY2FjaGUsIHVy
bENhY2hlRGlza0NhcGFjaXR5KTsKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAgIH0K
LSNlbmRpZgotICAgIGlmICh1cmxDYWNoZURpc2tDYXBhY2l0eSA+IHNvdXBfY2FjaGVfZ2V0X21h
eF9zaXplKGNhY2hlKSkKLSAgICAgICAgc291cF9jYWNoZV9zZXRfbWF4X3NpemUoY2FjaGUsIHVy
bENhY2hlRGlza0NhcGFjaXR5KTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUNsZWFy
UmVzb3VyY2VDYWNoZXMoUmVzb3VyY2VDYWNoZXNUb0NsZWFyIGNhY2hlc1RvQ2xlYXIpCkBAIC0x
MjksMTIgKzExOSwxMCBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtQ2xlYXJSZXNvdXJjZUNh
Y2hlcyhSZXNvdXJjZUNhY2hlc1RvQ2xlYXIgY2FjaGVzVG9DbGVhcgogICAgICAgICByZXR1cm47
CiAKICAgICAvLyBJZiB3ZSdyZSB1c2luZyB0aGUgbmV0d29yayBwcm9jZXNzIHRoZW4gaXQgaXMg
dGhlIG9ubHkgb25lIHRoYXQgbmVlZHMgdG8gY2xlYXIgdGhlIGRpc2sgY2FjaGUuCi0jaWYgRU5B
QkxFKE5FVFdPUktfUFJPQ0VTUykKLSAgICBpZiAobV91c2VzTmV0d29ya1Byb2Nlc3MpCisgICAg
aWYgKHVzZXNOZXR3b3JrUHJvY2VzcygpKQogICAgICAgICByZXR1cm47Ci0jZW5kaWYKLSAgICBT
b3VwU2Vzc2lvbiogc2Vzc2lvbiA9IFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vz
c2lvbigpOwotICAgIHNvdXBfY2FjaGVfY2xlYXIoU09VUF9DQUNIRShzb3VwX3Nlc3Npb25fZ2V0
X2ZlYXR1cmUoc2Vzc2lvbiwgU09VUF9UWVBFX0NBQ0hFKSkpOworCisgICAgc291cF9jYWNoZV9j
bGVhcihTT1VQX0NBQ0hFKHNvdXBfc2Vzc2lvbl9nZXRfZmVhdHVyZShXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZTo6ZGVmYXVsdFNlc3Npb24oKSwgU09VUF9UWVBFX0NBQ0hFKSkpOwogfQogCiAvLyBU
aGlzIGZ1bmN0aW9uIGlzIGJhc2VkIG9uIEVwaXBoYW55IGNvZGUgaW4gZXBoeS1lbWJlZC1wcmVm
cy5jLgpAQCAtMTk4LDIyICsxODYsMjAgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRp
YWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMKICAgICB9
CiAjZW5kaWYKIAotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCi0gICAgaWYgKCFtX3VzZXNO
ZXR3b3JrUHJvY2VzcykgewotI2VuZGlmCi0gICAgICAgIEFTU0VSVCghcGFyYW1ldGVycy5kaXNr
Q2FjaGVEaXJlY3RvcnkuaXNFbXB0eSgpKTsKLSAgICAgICAgR1JlZlB0cjxTb3VwQ2FjaGU+IHNv
dXBDYWNoZSA9IGFkb3B0R1JlZihzb3VwX2NhY2hlX25ldyhwYXJhbWV0ZXJzLmRpc2tDYWNoZURp
cmVjdG9yeS51dGY4KCkuZGF0YSgpLCBTT1VQX0NBQ0hFX1NJTkdMRV9VU0VSKSk7Ci0gICAgICAg
IHNvdXBfc2Vzc2lvbl9hZGRfZmVhdHVyZShXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGVmYXVs
dFNlc3Npb24oKSwgU09VUF9TRVNTSU9OX0ZFQVRVUkUoc291cENhY2hlLmdldCgpKSk7Ci0gICAg
ICAgIHNvdXBfY2FjaGVfbG9hZChzb3VwQ2FjaGUuZ2V0KCkpOwotCi0gICAgICAgIGlmICghcGFy
YW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZVBhdGguaXNFbXB0eSgpKSB7Ci0gICAgICAg
ICAgICBzdXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXI+KCktPnNldENvb2tpZVBlcnNpc3RlbnRT
dG9yYWdlKHBhcmFtZXRlcnMuY29va2llUGVyc2lzdGVudFN0b3JhZ2VQYXRoLAotICAgICAgICAg
ICAgICAgIHBhcmFtZXRlcnMuY29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlKTsKLSAgICAgICAg
fQotICAgICAgICBzdXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXI+KCktPnNldEhUVFBDb29raWVB
Y2NlcHRQb2xpY3kocGFyYW1ldGVycy5jb29raWVBY2NlcHRQb2xpY3kpOwotI2lmIEVOQUJMRShO
RVRXT1JLX1BST0NFU1MpCisgICAgaWYgKHVzZXNOZXR3b3JrUHJvY2VzcygpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBBU1NFUlQoIXBhcmFtZXRlcnMuZGlza0NhY2hlRGlyZWN0b3J5LmlzRW1w
dHkoKSk7CisgICAgR1JlZlB0cjxTb3VwQ2FjaGU+IHNvdXBDYWNoZSA9IGFkb3B0R1JlZihzb3Vw
X2NhY2hlX25ldyhwYXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVjdG9yeS51dGY4KCkuZGF0YSgpLCBT
T1VQX0NBQ0hFX1NJTkdMRV9VU0VSKSk7CisgICAgc291cF9zZXNzaW9uX2FkZF9mZWF0dXJlKFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZhdWx0U2Vzc2lvbigpLCBTT1VQX1NFU1NJT05fRkVB
VFVSRShzb3VwQ2FjaGUuZ2V0KCkpKTsKKyAgICBzb3VwX2NhY2hlX2xvYWQoc291cENhY2hlLmdl
dCgpKTsKKworICAgIGlmICghcGFyYW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZVBhdGgu
aXNFbXB0eSgpKSB7CisgICAgICAgIHN1cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlcj4oKS0+c2V0
Q29va2llUGVyc2lzdGVudFN0b3JhZ2UocGFyYW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFn
ZVBhdGgsCisgICAgICAgICAgICBwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlw
ZSk7CiAgICAgfQotI2VuZGlmCisgICAgc3VwcGxlbWVudDxXZWJDb29raWVNYW5hZ2VyPigpLT5z
ZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHBhcmFtZXRlcnMuY29va2llQWNjZXB0UG9saWN5KTsK
KwogICAgIGlmICghcGFyYW1ldGVycy5sYW5ndWFnZXMuaXNFbXB0eSgpKQogICAgICAgICBzZXRT
b3VwU2Vzc2lvbkFjY2VwdExhbmd1YWdlKHBhcmFtZXRlcnMubGFuZ3VhZ2VzKTsKIApAQCAtMjI3
LDE2ICsyMTMsMTkgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9j
ZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMKIAogdm9pZCBXZWJQcm9jZXNz
OjpwbGF0Zm9ybVRlcm1pbmF0ZSgpCiB7Ci0gICAgV2ViQ29yZTo6cmVtb3ZlTGFuZ3VhZ2VDaGFu
Z2VPYnNlcnZlcih0aGlzKTsKKyAgICBpZiAoIXVzZXNOZXR3b3JrUHJvY2VzcygpKQorICAgICAg
ICBXZWJDb3JlOjpyZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHRoaXMpOwogfQogCiB2b2lk
IFdlYlByb2Nlc3M6OnNldElnbm9yZVRMU0Vycm9ycyhib29sIGlnbm9yZVRMU0Vycm9ycykKIHsK
KyAgICBBU1NFUlQoIXVzZXNOZXR3b3JrUHJvY2VzcygpKTsKICAgICBXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZTo6c2V0SWdub3JlU1NMRXJyb3JzKGlnbm9yZVRMU0Vycm9ycyk7CiB9CiAKIHZvaWQg
V2ViUHJvY2Vzczo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFdl
YkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBjb25zdCBTdHJpbmcmIGhv
c3QpCiB7CisgICAgQVNTRVJUKCF1c2VzTmV0d29ya1Byb2Nlc3MoKSk7CiAgICAgV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGU6OnNldENsaWVudENlcnRpZmljYXRlKGhvc3QsIGNlcnRpZmljYXRlSW5m
by5jZXJ0aWZpY2F0ZSgpKTsKIH0KIAo=
</data>
<flag name="review"
          id="244010"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>