<?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>48985</bug_id>
          
          <creation_ts>2010-11-04 03:50:08 -0700</creation_ts>
          <short_desc>[Qt][WK2] Left over files and shared memory segments</short_desc>
          <delta_ts>2010-11-05 05:18:47 -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>PC</rep_platform>
          <op_sys>All</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="Balazs Kelemen">kbalazs</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>304569</commentid>
    <comment_count>0</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-11-04 03:50:08 -0700</bug_when>
    <thetext>On a crash we left over socket files from the beginning of our wk2 port.
Since the usage of QSharedMemory (http://trac.webkit.org/changeset/71118) the situation is even worst.
We do not delete those even on normal termination because their owner (SharedMemory) is not deleted.
This is because of the policy in WebKit to avoid destructors on exit. There is at least one shared memory
segment that we left over, namely the one that is used by VisitedLinkTable. Unix system does not clean up
those segments after the process dies or terminates. (Yesterday we were needed to shutdown our wk2 bot because
the amount of left over shared memory semaphores has reached the kernel limit). I would like to find a solution to
clean up those things on terminate and on crash as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304590</commentid>
    <comment_count>1</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-11-04 04:44:20 -0700</bug_when>
    <thetext>Test case (on Linux):
1. launch MiniBrowser and close it
2. ipcs - in the output you can see the left over segments and semaphores:
------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status
&lt;other process&apos;s staff&gt;
0x510038a6 822312969  balazs    666        4096       0 &lt;- from VisitedLinkTable
------ Semaphore Arrays --------
key        semid      owner      perms      nsems
0x510038a5 268795904  balazs    666        1

To clear them, use these commands:
ipcrm -s &lt;semid&gt;
ipcrm -m &lt;shmid&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304598</commentid>
    <comment_count>2</comment_count>
      <attachid>72928</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-11-04 05:25:36 -0700</bug_when>
    <thetext>Created attachment 72928
proposed patch

I am using signal.h on every platform. I do not really know what are the differences on Windows and Symbian
but I tried a tiny example on Windows with MinGW and it worked. After a quick googling I found that it should
work on Symbian as well. I think the definition of HAVE_SIGNAL_H in Platform.h is wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304601</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-04 05:29:49 -0700</bug_when>
    <thetext>Attachment 72928 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;WebKit2/ChangeLog&apos;, u&apos;WebKit2/Platform/qt/SharedMemoryQt.cpp&apos;, u&apos;WebKit2/Shared/qt/CrashHandler.cpp&apos;, u&apos;WebKit2/Shared/qt/CrashHandler.h&apos;, u&apos;WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp&apos;, u&apos;WebKit2/WebKit2.pro&apos;]&quot; exit_code: 1
WebKit2/Shared/qt/CrashHandler.cpp:53:  Missing space before ( in foreach(  [whitespace/parens] [5]
Total errors found: 1 in 6 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>304621</commentid>
    <comment_count>4</comment_count>
      <attachid>72928</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-11-04 06:34:26 -0700</bug_when>
    <thetext>Comment on attachment 72928
proposed patch

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

Looks good in general, some problems though:

&gt; WebKit2/Shared/qt/CrashHandler.cpp:38
&gt; +CrashHandler::CrashHandler()
&gt; +{

Missing initialization of m_inDeleteObjects!

&gt; WebKit2/Shared/qt/CrashHandler.cpp:41
&gt; +    signal(SIGABRT, &amp;CrashHandler::signalHandler);
&gt; +    signal(SIGSEGV, &amp;CrashHandler::signalHandler);
&gt; +    signal(SIGINT, &amp;CrashHandler::signalHandler);

You probably want to catch SIGFPE, SIGILL, SIGQUIT, SIGTRAP and SIGBUS as well here.

&gt; WebKit2/Shared/qt/CrashHandler.cpp:54
&gt; +    foreach(QObject* object, m_objects)
&gt; +        delete object;

qDeleteAll(m_objects);

&gt; WebKit2/Shared/qt/CrashHandler.h:48
&gt; +    void addToDeletion(QObject* object)

addToDeletion() sounds weird to me. deleteOnCrash() perhaps? markForDeletionOnCrash()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304639</commentid>
    <comment_count>5</comment_count>
      <attachid>72940</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-11-04 07:23:27 -0700</bug_when>
    <thetext>Created attachment 72940
Patch

Changed regarding to Kling&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304682</commentid>
    <comment_count>6</comment_count>
      <attachid>72940</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-11-04 08:42:01 -0700</bug_when>
    <thetext>Comment on attachment 72940
Patch

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

r=me, three small things:

&gt; WebKit2/Shared/qt/CrashHandler.cpp:30
&gt; +#include &lt;QCoreApplication&gt;

Is this include needed?

&gt; WebKit2/Shared/qt/CrashHandler.h:34
&gt; +#include &lt;QCoreApplication&gt;

Is this include needed?

&gt; WebKit2/Shared/qt/CrashHandler.h:74
&gt; +#endif // CleanupHandler_h

#endif // CrashHandler_h

&gt; WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp:119
&gt; +    // Do not leave socket files on the disk even on crash!
&gt; +    CrashHandler::instance()-&gt;markForDeletionOnCrash(this);

This call is missing a corresponding didDelete() in ~ProcessLauncherHelper()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304704</commentid>
    <comment_count>7</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-11-04 09:33:57 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 72940 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=72940&amp;action=review
&gt; 
&gt; r=me, three small things:
&gt; 
&gt; &gt; WebKit2/Shared/qt/CrashHandler.cpp:30
&gt; &gt; +#include &lt;QCoreApplication&gt;
&gt; 
&gt; Is this include needed?
No
&gt; 
&gt; &gt; WebKit2/Shared/qt/CrashHandler.h:34
&gt; &gt; +#include &lt;QCoreApplication&gt;
&gt; 
&gt; Is this include needed?
No :)
&gt; 
&gt; &gt; WebKit2/Shared/qt/CrashHandler.h:74
&gt; &gt; +#endif // CleanupHandler_h
&gt; 
&gt; #endif // CrashHandler_h
&gt; 
&gt; &gt; WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp:119
&gt; &gt; +    // Do not leave socket files on the disk even on crash!
&gt; &gt; +    CrashHandler::instance()-&gt;markForDeletionOnCrash(this);
&gt; 
&gt; This call is missing a corresponding didDelete() in ~ProcessLauncherHelper()
I omit that because ProcessLauncherHelper lives as long as the process, however
we can CRASH even after ~ProcessLauncherHelper() is called so you are right.

I will fix the issues (and do final a smoke test) before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305231</commentid>
    <comment_count>8</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-11-05 05:18:08 -0700</bug_when>
    <thetext>Committed in http://trac.webkit.org/changeset/71409</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305232</commentid>
    <comment_count>9</comment_count>
      <attachid>72940</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-11-05 05:18:47 -0700</bug_when>
    <thetext>Comment on attachment 72940
Patch

Clearing flags</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72928</attachid>
            <date>2010-11-04 05:25:36 -0700</date>
            <delta_ts>2010-11-04 07:23:21 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>land_crash_handler.diff</filename>
            <type>text/plain</type>
            <size>10112</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
NjIyOWE0YS4uYzEwOWU1ZSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMC0xMS0wNCAgQmFsYXpzIEtlbGVt
ZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW1F0XVtXSzJdIExlZnQgb3ZlciBmaWxlcyBhbmQgc2hhcmVkIG1l
bW9yeSBzZWdtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDg5ODUKKworICAgICAgICAqIFBsYXRmb3JtL3F0L1NoYXJlZE1lbW9yeVF0LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpjcmVhdGUpOiBGb3JjZSBkZWxldGlvbiBv
ZiB0aGUgUVNoYXJlZE1lbW9yeQorICAgICAgICBvYmplY3Qgb24gdGVybWluYXRlIGJ5IGNvbm5l
Y3RpbmcgUUNvcmVBcHBsaWNhdGlvbjo6YWJvdXRUb1F1aXQgd2l0aAorICAgICAgICBkZWxldGVM
YXRlci4gQWRkIHRoZSBvYmplY3QgdG8gdGhlIENyYXNoSGFuZGxlciBhcyB3ZWxsIHRvIHJlbGVh
c2UgdGhlCisgICAgICAgIHNoYXJlZCBtZW1vcnkgc2VnbWVudCBldmVuIG9uIGNyYXNoLgorICAg
ICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6On5TaGFyZWRNZW1vcnkpOgorICAgICAgICAqIFNo
YXJlZC9xdC9DcmFzaEhhbmRsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgQ3Jhc2hIYW5kbGVyIGhh
cyBhIGNvbnRhaW5lciBmb3IgUU9iamVjdHMgdGhhdCB3ZSB3YW50IHRvCisgICAgICAgIGRlc3Ry
b3kgb24gY3Jhc2guIFdoZW4gd2UgZ290IGEgc2lnbmFsIHRoYXQgd2UgaW50ZXJwcmV0IGFzCisg
ICAgICAgIGEgY3Jhc2ggdGhlbiBpdCBkZXN0cm95cyB0aG9zZSBvYmplY3RzLgorICAgICAgICAo
V2ViS2l0OjpDcmFzaEhhbmRsZXI6OkNyYXNoSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OkNy
YXNoSGFuZGxlcjo6c2lnbmFsSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OkNyYXNoSGFuZGxl
cjo6ZGVsZXRlT2JqZWN0cyk6CisgICAgICAgICogU2hhcmVkL3F0L0NyYXNoSGFuZGxlci5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6Q3Jhc2hIYW5kbGVyOjppbnN0YW5jZSk6CisgICAgICAg
IChXZWJLaXQ6OkNyYXNoSGFuZGxlcjo6YWRkVG9EZWxldGlvbik6CisgICAgICAgIChXZWJLaXQ6
OkNyYXNoSGFuZGxlcjo6ZGlkRGVsZXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIv
cXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNo
ZXJIZWxwZXI6OlByb2Nlc3NMYXVuY2hlckhlbHBlcik6CisgICAgICAgIEFkZCB0aGUgb2JqZWN0
IGl0c2VsZiB0byB0aGUgQ3Jhc2hIYW5kbGVyIHRvIGNsb3NlIHRoZSBRTG9jYWxTZXJ2ZXIKKyAg
ICAgICAgZXZlbiBvbiBjcmFzaC4gV2l0aG91dCB0aGF0IHRoZSBRTG9jYWxTZXJ2ZXIgbGVhdmVz
IG92ZXIgc29ja2V0IGZpbGVzIG9uIHRoZSBkaXNrLgorICAgICAgICAqIFdlYktpdDIucHJvOgor
CiAyMDEwLTExLTAyICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAcmltLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9T
aGFyZWRNZW1vcnlRdC5jcHAgYi9XZWJLaXQyL1BsYXRmb3JtL3F0L1NoYXJlZE1lbW9yeVF0LmNw
cAppbmRleCAwYzIzN2IwLi43MDY1M2EzIDEwMDY0NAotLS0gYS9XZWJLaXQyL1BsYXRmb3JtL3F0
L1NoYXJlZE1lbW9yeVF0LmNwcAorKysgYi9XZWJLaXQyL1BsYXRmb3JtL3F0L1NoYXJlZE1lbW9y
eVF0LmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgi
CiAjaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCisjaW5jbHVkZSAiQ3Jhc2hIYW5kbGVyLmgi
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8dW5pc3RkLmg+
CiAjaW5jbHVkZSA8UUxhdGluMVN0cmluZz4KQEAgLTkyLDEwICs5MywxNiBAQCBQYXNzUmVmUHRy
PFNoYXJlZE1lbW9yeT4gU2hhcmVkTWVtb3J5OjpjcmVhdGUoc2l6ZV90IHNpemUpCiAgICAgUVNo
YXJlZE1lbW9yeSogaW1wbCA9IG5ldyBRU2hhcmVkTWVtb3J5KGNyZWF0ZVVuaXF1ZUtleSgpKTsK
ICAgICBib29sIGNyZWF0ZWQgPSBpbXBsLT5jcmVhdGUoc2l6ZSk7CiAgICAgQVNTRVJUX1VOVVNF
RChjcmVhdGVkLCBjcmVhdGVkKTsKKwogICAgIHNoYXJlZE1lbW9yeS0+bV9pbXBsID0gaW1wbDsK
ICAgICBzaGFyZWRNZW1vcnktPm1fc2l6ZSA9IHNpemU7CiAgICAgc2hhcmVkTWVtb3J5LT5tX2Rh
dGEgPSBpbXBsLT5kYXRhKCk7CiAKKyAgICBpbXBsLT5jb25uZWN0KFFDb3JlQXBwbGljYXRpb246
Omluc3RhbmNlKCksIFNJR05BTChhYm91dFRvUXVpdCgpKSwgU0xPVChkZWxldGVMYXRlcigpKSk7
CisKKyAgICAvLyBSZWxlYXNlIHRoZSBzaGFyZWQgbWVtb3J5IHNlZ21lbnQgZXZlbiBvbiBjcmFz
aCEKKyAgICBDcmFzaEhhbmRsZXI6Omluc3RhbmNlKCktPmFkZFRvRGVsZXRpb24oaW1wbCk7CisK
ICAgICByZXR1cm4gc2hhcmVkTWVtb3J5LnJlbGVhc2UoKTsKIH0KIApAQCAtMTIxLDExICsxMjgs
MTcgQEAgUGFzc1JlZlB0cjxTaGFyZWRNZW1vcnk+IFNoYXJlZE1lbW9yeTo6Y3JlYXRlKGNvbnN0
IEhhbmRsZSYgaGFuZGxlLCBQcm90ZWN0aW9uIHAKICAgICBRU2hhcmVkTWVtb3J5KiBpbXBsID0g
bmV3IFFTaGFyZWRNZW1vcnkoUVN0cmluZyhoYW5kbGUubV9rZXkpKTsKICAgICBib29sIGF0dGFj
aGVkID0gaW1wbC0+YXR0YWNoKGFjY2Vzc01vZGUocHJvdGVjdGlvbikpOwogICAgIEFTU0VSVF9V
TlVTRUQoYXR0YWNoZWQsIGF0dGFjaGVkKTsKKwogICAgIHNoYXJlZE1lbW9yeS0+bV9pbXBsID0g
aW1wbDsKICAgICBBU1NFUlQoaGFuZGxlLm1fc2l6ZSA9PSBpbXBsLT5zaXplKCkpOwogICAgIHNo
YXJlZE1lbW9yeS0+bV9zaXplID0gaGFuZGxlLm1fc2l6ZTsKICAgICBzaGFyZWRNZW1vcnktPm1f
ZGF0YSA9IGltcGwtPmRhdGEoKTsKIAorICAgIGltcGwtPmNvbm5lY3QoUUNvcmVBcHBsaWNhdGlv
bjo6aW5zdGFuY2UoKSwgU0lHTkFMKGFib3V0VG9RdWl0KCkpLCBTTE9UKGRlbGV0ZUxhdGVyKCkp
KTsKKworICAgIC8vIFJlbGVhc2UgdGhlIHNoYXJlZCBtZW1vcnkgc2VnbWVudCBldmVuIG9uIGNy
YXNoIQorICAgIENyYXNoSGFuZGxlcjo6aW5zdGFuY2UoKS0+YWRkVG9EZWxldGlvbihpbXBsKTsK
KwogICAgIHJldHVybiBzaGFyZWRNZW1vcnkucmVsZWFzZSgpOwogfQogCkBAIC0xMzQsNiArMTQ3
LDcgQEAgU2hhcmVkTWVtb3J5Ojp+U2hhcmVkTWVtb3J5KCkKICAgICAvLyBtX2ltcGwgbXVzdCBi
ZSBub24tbnVsbCBhbmQgaXQgbXVzdCBwb2ludCB0byBhIHZhbGlkIFFTaGFyZWRNZW1vcnkgb2Jq
ZWN0LgogICAgIEFTU0VSVChxb2JqZWN0X2Nhc3Q8UVNoYXJlZE1lbW9yeSo+KG1faW1wbCkpOwog
ICAgIGRlbGV0ZSBtX2ltcGw7CisgICAgQ3Jhc2hIYW5kbGVyOjppbnN0YW5jZSgpLT5kaWREZWxl
dGUobV9pbXBsKTsKIH0KIAogYm9vbCBTaGFyZWRNZW1vcnk6OmNyZWF0ZUhhbmRsZShIYW5kbGUm
IGhhbmRsZSwgUHJvdGVjdGlvbiBwcm90ZWN0aW9uKQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFy
ZWQvcXQvQ3Jhc2hIYW5kbGVyLmNwcCBiL1dlYktpdDIvU2hhcmVkL3F0L0NyYXNoSGFuZGxlci5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2E3M2I1NQotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYktpdDIvU2hhcmVkL3F0L0NyYXNoSGFuZGxlci5jcHAKQEAgLTAsMCArMSw1
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBVbml2ZXJzaXR5IG9mIFN6ZWdlZC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIkNyYXNoSGFuZGxlci5oIgor
CisjaW5jbHVkZSA8Y3NpZ25hbD4KKyNpbmNsdWRlIDxjc3RkbGliPgorI2luY2x1ZGUgPFFDb3Jl
QXBwbGljYXRpb24+CisjaW5jbHVkZSA8d3RmL0Fsd2F5c0lubGluZS5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworQ3Jhc2hIYW5kbGVyKiBDcmFzaEhhbmRsZXI6OnRoZUluc3RhbmNlID0gMDsK
KworQ3Jhc2hIYW5kbGVyOjpDcmFzaEhhbmRsZXIoKQoreworICAgIHNpZ25hbChTSUdBQlJULCAm
Q3Jhc2hIYW5kbGVyOjpzaWduYWxIYW5kbGVyKTsKKyAgICBzaWduYWwoU0lHU0VHViwgJkNyYXNo
SGFuZGxlcjo6c2lnbmFsSGFuZGxlcik7CisgICAgc2lnbmFsKFNJR0lOVCwgJkNyYXNoSGFuZGxl
cjo6c2lnbmFsSGFuZGxlcik7Cit9CisKK05PX1JFVFVSTiB2b2lkIENyYXNoSGFuZGxlcjo6c2ln
bmFsSGFuZGxlcihpbnQpCit7CisgICAgQ3Jhc2hIYW5kbGVyOjp0aGVJbnN0YW5jZS0+ZGVsZXRl
T2JqZWN0cygpOworICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKK30KKwordm9pZCBDcmFzaEhhbmRs
ZXI6OmRlbGV0ZU9iamVjdHMoKQoreworICAgIG1faW5EZWxldGVPYmplY3RzID0gdHJ1ZTsKKyAg
ICBmb3JlYWNoKFFPYmplY3QqIG9iamVjdCwgbV9vYmplY3RzKQorICAgICAgICBkZWxldGUgb2Jq
ZWN0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdDIvU2hh
cmVkL3F0L0NyYXNoSGFuZGxlci5oIGIvV2ViS2l0Mi9TaGFyZWQvcXQvQ3Jhc2hIYW5kbGVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTNjMmRlOQotLS0gL2Rldi9udWxs
CisrKyBiL1dlYktpdDIvU2hhcmVkL3F0L0NyYXNoSGFuZGxlci5oCkBAIC0wLDAgKzEsNzQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgVW5pdmVyc2l0eSBvZiBTemVnZWQuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ3Jhc2hIYW5kbGVyX2gKKyNkZWZpbmUg
Q3Jhc2hIYW5kbGVyX2gKKworI2luY2x1ZGUgPFFMaXN0PgorI2luY2x1ZGUgPFFPYmplY3Q+Cisj
aW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisK
KyNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9uPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgQ3Jhc2hIYW5kbGVyIDogcHJpdmF0ZSBRT2JqZWN0IHsKKyAgICBRX09CSkVDVAorcHVibGlj
OgorICAgIHN0YXRpYyBDcmFzaEhhbmRsZXIqIGluc3RhbmNlKCkKKyAgICB7CisgICAgICAgIGlm
ICghdGhlSW5zdGFuY2UpCisgICAgICAgICAgICB0aGVJbnN0YW5jZSA9IG5ldyBDcmFzaEhhbmRs
ZXIoKTsKKyAgICAgICAgcmV0dXJuIHRoZUluc3RhbmNlOworICAgIH0KKworICAgIHZvaWQgYWRk
VG9EZWxldGlvbihRT2JqZWN0KiBvYmplY3QpCisgICAgeworICAgICAgICB0aGVJbnN0YW5jZS0+
bV9vYmplY3RzLmFwcGVuZChvYmplY3QpOworICAgIH0KKworICAgIHZvaWQgZGlkRGVsZXRlKFFP
YmplY3QqIG9iamVjdCkKKyAgICB7CisgICAgICAgIGlmIChtX2luRGVsZXRlT2JqZWN0cykKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdGhlSW5zdGFuY2UtPm1fb2JqZWN0cy5yZW1vdmVP
bmUob2JqZWN0KTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgc3RhdGljIHZvaWQgc2lnbmFsSGFu
ZGxlcihpbnQpOworICAgIHN0YXRpYyBDcmFzaEhhbmRsZXIqIHRoZUluc3RhbmNlOworCisgICAg
Q3Jhc2hIYW5kbGVyKCk7CisKKyAgICB2b2lkIGRlbGV0ZU9iamVjdHMoKTsKKworICAgIFFMaXN0
PFFPYmplY3QqPiBtX29iamVjdHM7CisgICAgYm9vbCBtX2luRGVsZXRlT2JqZWN0czsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gQ2xlYW51cEhhbmRsZXJfaApkaWZm
IC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQu
Y3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3Bw
CmluZGV4IDY0N2M1ODEuLmFmMTdkYmIgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvVUlQcm9jZXNzL0xh
dW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9M
YXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNs
dWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRl
ICJSdW5Mb29wLmgiCisjaW5jbHVkZSAiQ3Jhc2hIYW5kbGVyLmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzcy5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2luY2x1
ZGUgPHN0cmluZz4KQEAgLTExMyw2ICsxMTQsOSBAQCBQcm9jZXNzTGF1bmNoZXJIZWxwZXI6OlBy
b2Nlc3NMYXVuY2hlckhlbHBlcigpCiAgICAgfQogICAgIGNvbm5lY3QoJm1fc2VydmVyLCBTSUdO
QUwobmV3Q29ubmVjdGlvbigpKSwgdGhpcywgU0xPVChuZXdDb25uZWN0aW9uKCkpKTsKICAgICBj
b25uZWN0KFFDb3JlQXBwbGljYXRpb246Omluc3RhbmNlKCksIFNJR05BTChhYm91dFRvUXVpdCgp
KSwgU0xPVChkZWxldGVMYXRlcigpKSwgUXQ6OlF1ZXVlZENvbm5lY3Rpb24pOworCisgICAgLy8g
RG8gbm90IGxlYXZlIHNvY2tldCBmaWxlcyBvbiB0aGUgZGlzayBldmVuIG9uIGNyYXNoIQorICAg
IENyYXNoSGFuZGxlcjo6aW5zdGFuY2UoKS0+YWRkVG9EZWxldGlvbih0aGlzKTsKIH0KIAogUHJv
Y2Vzc0xhdW5jaGVySGVscGVyKiBQcm9jZXNzTGF1bmNoZXJIZWxwZXI6Omluc3RhbmNlKCkKZGlm
ZiAtLWdpdCBhL1dlYktpdDIvV2ViS2l0Mi5wcm8gYi9XZWJLaXQyL1dlYktpdDIucHJvCmluZGV4
IDBmMTFjNTcuLjc2ZGNmOGYgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViS2l0Mi5wcm8KKysrIGIv
V2ViS2l0Mi9XZWJLaXQyLnBybwpAQCAtMjEwLDYgKzIxMCw3IEBAIEhFQURFUlMgKz0gXAogICAg
IFNoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmggXAogICAgIFNoYXJlZC9Ob3RJbXBsZW1l
bnRlZC5oIFwKICAgICBTaGFyZWQvU3RyaW5nUGFpclZlY3Rvci5oIFwKKyAgICBTaGFyZWQvcXQv
Q3Jhc2hIYW5kbGVyLmggXAogICAgIFNoYXJlZC9xdC9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5o
IFwKICAgICBTaGFyZWQvcXQvVXBkYXRlQ2h1bmsuaCBcCiAgICAgU2hhcmVkL3F0L1dlYkV2ZW50
RmFjdG9yeVF0LmggXApAQCAtMzc1LDYgKzM3Niw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFNoYXJl
ZC9NdXRhYmxlQXJyYXkuY3BwIFwKICAgICBTaGFyZWQvTXV0YWJsZURpY3Rpb25hcnkuY3BwIFwK
ICAgICBTaGFyZWQvcXQvQmFja2luZ1N0b3JlUXQuY3BwIFwKKyAgICBTaGFyZWQvcXQvQ3Jhc2hI
YW5kbGVyLmNwcCBcCiAgICAgU2hhcmVkL3F0L05hdGl2ZVdlYktleWJvYXJkRXZlbnRRdC5jcHAg
XAogICAgIFNoYXJlZC9xdC9VcGRhdGVDaHVuay5jcHAgXAogICAgIFNoYXJlZC9xdC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnNRdC5jcHAgXAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72940</attachid>
            <date>2010-11-04 07:23:27 -0700</date>
            <delta_ts>2010-11-05 05:18:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48985-20101104152324.patch</filename>
            <type>text/plain</type>
            <size>10805</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
NjIyOWE0YTk1NWYxYTg4YmI0NDI0ZDY1MTcyZGM3Mjc4ZWUyMmU5My4uODU1NTAyMWJkZGZlNjAy
MzllYWIxNWE0ZTg2NDk3MTBiZGNkZDI3MiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMC0xMS0wNCAgQmFs
YXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XVtXSzJdIExlZnQgb3ZlciBmaWxlcyBhbmQg
c2hhcmVkIG1lbW9yeSBzZWdtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDg5ODUKKworICAgICAgICAqIFBsYXRmb3JtL3F0L1NoYXJlZE1lbW9y
eVF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpjcmVhdGUpOiBGb3JjZSBk
ZWxldGlvbiBvZiB0aGUgUVNoYXJlZE1lbW9yeQorICAgICAgICBvYmplY3Qgb24gdGVybWluYXRl
IGJ5IGNvbm5lY3RpbmcgUUNvcmVBcHBsaWNhdGlvbjo6YWJvdXRUb1F1aXQgd2l0aAorICAgICAg
ICBkZWxldGVMYXRlci4gQWRkIHRoZSBvYmplY3QgdG8gdGhlIENyYXNoSGFuZGxlciBhcyB3ZWxs
IHRvIHJlbGVhc2UgdGhlCisgICAgICAgIHNoYXJlZCBtZW1vcnkgc2VnbWVudCBldmVuIG9uIGNy
YXNoLgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6On5TaGFyZWRNZW1vcnkpOgorICAg
ICAgICAqIFNoYXJlZC9xdC9DcmFzaEhhbmRsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgQ3Jhc2hI
YW5kbGVyIGhhcyBhIGNvbnRhaW5lciBmb3IgUU9iamVjdHMgdGhhdCB3ZSB3YW50IHRvCisgICAg
ICAgIGRlc3Ryb3kgb24gY3Jhc2guIFdoZW4gd2UgZ290IGEgc2lnbmFsIHRoYXQgd2UgaW50ZXJw
cmV0IGFzCisgICAgICAgIGEgY3Jhc2ggdGhlbiBpdCBkZXN0cm95cyB0aG9zZSBvYmplY3RzLgor
ICAgICAgICAoV2ViS2l0OjpDcmFzaEhhbmRsZXI6OkNyYXNoSGFuZGxlcik6CisgICAgICAgIChX
ZWJLaXQ6OkNyYXNoSGFuZGxlcjo6c2lnbmFsSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OkNy
YXNoSGFuZGxlcjo6ZGVsZXRlT2JqZWN0cyk6CisgICAgICAgICogU2hhcmVkL3F0L0NyYXNoSGFu
ZGxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6Q3Jhc2hIYW5kbGVyOjppbnN0YW5jZSk6
CisgICAgICAgIChXZWJLaXQ6OkNyYXNoSGFuZGxlcjo6ZGlkRGVsZXRlKToKKyAgICAgICAgKFdl
YktpdDo6Q3Jhc2hIYW5kbGVyOjptYXJrRm9yRGVsZXRpb25PbkNyYXNoKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvTGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpQcm9jZXNzTGF1bmNoZXJIZWxwZXI6OlByb2Nlc3NMYXVuY2hlckhlbHBlcik6CisgICAg
ICAgIEFkZCB0aGUgb2JqZWN0IGl0c2VsZiB0byB0aGUgQ3Jhc2hIYW5kbGVyIHRvIGNsb3NlIHRo
ZSBRTG9jYWxTZXJ2ZXIKKyAgICAgICAgZXZlbiBvbiBjcmFzaC4gV2l0aG91dCB0aGF0IHRoZSBR
TG9jYWxTZXJ2ZXIgbGVhdmVzIG92ZXIgc29ja2V0IGZpbGVzIG9uIHRoZSBkaXNrLgorICAgICAg
ICAqIFdlYktpdDIucHJvOgorCiAyMDEwLTExLTAyICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAcmlt
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0Mi9QbGF0Zm9ybS9xdC9TaGFyZWRNZW1vcnlRdC5jcHAgYi9XZWJLaXQyL1BsYXRmb3JtL3F0
L1NoYXJlZE1lbW9yeVF0LmNwcAppbmRleCAwYzIzN2IwMDJlODg2YWVlZmFkNjg1NmU0OTNmOTQz
YTY5MGU0ZTMzLi5hM2M4ODY5MzJjOTA2N2IxOTI4YTBkNzRmYmY2MTg0ZWQzMjY1YmZiIDEwMDY0
NAotLS0gYS9XZWJLaXQyL1BsYXRmb3JtL3F0L1NoYXJlZE1lbW9yeVF0LmNwcAorKysgYi9XZWJL
aXQyL1BsYXRmb3JtL3F0L1NoYXJlZE1lbW9yeVF0LmNwcApAQCAtMjksNiArMjksNyBAQAogCiAj
aW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCiAjaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgi
CisjaW5jbHVkZSAiQ3Jhc2hIYW5kbGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8UUxhdGluMVN0cmluZz4KQEAg
LTkyLDEwICs5MywxNiBAQCBQYXNzUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVkTWVtb3J5Ojpj
cmVhdGUoc2l6ZV90IHNpemUpCiAgICAgUVNoYXJlZE1lbW9yeSogaW1wbCA9IG5ldyBRU2hhcmVk
TWVtb3J5KGNyZWF0ZVVuaXF1ZUtleSgpKTsKICAgICBib29sIGNyZWF0ZWQgPSBpbXBsLT5jcmVh
dGUoc2l6ZSk7CiAgICAgQVNTRVJUX1VOVVNFRChjcmVhdGVkLCBjcmVhdGVkKTsKKwogICAgIHNo
YXJlZE1lbW9yeS0+bV9pbXBsID0gaW1wbDsKICAgICBzaGFyZWRNZW1vcnktPm1fc2l6ZSA9IHNp
emU7CiAgICAgc2hhcmVkTWVtb3J5LT5tX2RhdGEgPSBpbXBsLT5kYXRhKCk7CiAKKyAgICBpbXBs
LT5jb25uZWN0KFFDb3JlQXBwbGljYXRpb246Omluc3RhbmNlKCksIFNJR05BTChhYm91dFRvUXVp
dCgpKSwgU0xPVChkZWxldGVMYXRlcigpKSk7CisKKyAgICAvLyBSZWxlYXNlIHRoZSBzaGFyZWQg
bWVtb3J5IHNlZ21lbnQgZXZlbiBvbiBjcmFzaCEKKyAgICBDcmFzaEhhbmRsZXI6Omluc3RhbmNl
KCktPm1hcmtGb3JEZWxldGlvbk9uQ3Jhc2goaW1wbCk7CisKICAgICByZXR1cm4gc2hhcmVkTWVt
b3J5LnJlbGVhc2UoKTsKIH0KIApAQCAtMTIxLDExICsxMjgsMTcgQEAgUGFzc1JlZlB0cjxTaGFy
ZWRNZW1vcnk+IFNoYXJlZE1lbW9yeTo6Y3JlYXRlKGNvbnN0IEhhbmRsZSYgaGFuZGxlLCBQcm90
ZWN0aW9uIHAKICAgICBRU2hhcmVkTWVtb3J5KiBpbXBsID0gbmV3IFFTaGFyZWRNZW1vcnkoUVN0
cmluZyhoYW5kbGUubV9rZXkpKTsKICAgICBib29sIGF0dGFjaGVkID0gaW1wbC0+YXR0YWNoKGFj
Y2Vzc01vZGUocHJvdGVjdGlvbikpOwogICAgIEFTU0VSVF9VTlVTRUQoYXR0YWNoZWQsIGF0dGFj
aGVkKTsKKwogICAgIHNoYXJlZE1lbW9yeS0+bV9pbXBsID0gaW1wbDsKICAgICBBU1NFUlQoaGFu
ZGxlLm1fc2l6ZSA9PSBpbXBsLT5zaXplKCkpOwogICAgIHNoYXJlZE1lbW9yeS0+bV9zaXplID0g
aGFuZGxlLm1fc2l6ZTsKICAgICBzaGFyZWRNZW1vcnktPm1fZGF0YSA9IGltcGwtPmRhdGEoKTsK
IAorICAgIGltcGwtPmNvbm5lY3QoUUNvcmVBcHBsaWNhdGlvbjo6aW5zdGFuY2UoKSwgU0lHTkFM
KGFib3V0VG9RdWl0KCkpLCBTTE9UKGRlbGV0ZUxhdGVyKCkpKTsKKworICAgIC8vIFJlbGVhc2Ug
dGhlIHNoYXJlZCBtZW1vcnkgc2VnbWVudCBldmVuIG9uIGNyYXNoIQorICAgIENyYXNoSGFuZGxl
cjo6aW5zdGFuY2UoKS0+bWFya0ZvckRlbGV0aW9uT25DcmFzaChpbXBsKTsKKwogICAgIHJldHVy
biBzaGFyZWRNZW1vcnkucmVsZWFzZSgpOwogfQogCkBAIC0xMzQsNiArMTQ3LDcgQEAgU2hhcmVk
TWVtb3J5Ojp+U2hhcmVkTWVtb3J5KCkKICAgICAvLyBtX2ltcGwgbXVzdCBiZSBub24tbnVsbCBh
bmQgaXQgbXVzdCBwb2ludCB0byBhIHZhbGlkIFFTaGFyZWRNZW1vcnkgb2JqZWN0LgogICAgIEFT
U0VSVChxb2JqZWN0X2Nhc3Q8UVNoYXJlZE1lbW9yeSo+KG1faW1wbCkpOwogICAgIGRlbGV0ZSBt
X2ltcGw7CisgICAgQ3Jhc2hIYW5kbGVyOjppbnN0YW5jZSgpLT5kaWREZWxldGUobV9pbXBsKTsK
IH0KIAogYm9vbCBTaGFyZWRNZW1vcnk6OmNyZWF0ZUhhbmRsZShIYW5kbGUmIGhhbmRsZSwgUHJv
dGVjdGlvbiBwcm90ZWN0aW9uKQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFyZWQvcXQvQ3Jhc2hI
YW5kbGVyLmNwcCBiL1dlYktpdDIvU2hhcmVkL3F0L0NyYXNoSGFuZGxlci5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzIxOWM1NGFkNWVjMGMyODM4ODdlNDNmZTg0OTdiYjhmYzM2YWI2NAotLS0gL2Rldi9udWxs
CisrKyBiL1dlYktpdDIvU2hhcmVkL3F0L0NyYXNoSGFuZGxlci5jcHAKQEAgLTAsMCArMSw2MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBVbml2ZXJzaXR5IG9mIFN6ZWdlZC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIkNyYXNoSGFuZGxlci5oIgorCisj
aW5jbHVkZSA8Y3NpZ25hbD4KKyNpbmNsdWRlIDxjc3RkbGliPgorI2luY2x1ZGUgPFFDb3JlQXBw
bGljYXRpb24+CisjaW5jbHVkZSA8d3RmL0Fsd2F5c0lubGluZS5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworQ3Jhc2hIYW5kbGVyKiBDcmFzaEhhbmRsZXI6OnRoZUluc3RhbmNlID0gMDsKKwor
Q3Jhc2hIYW5kbGVyOjpDcmFzaEhhbmRsZXIoKQorICAgIDogbV9pbkRlbGV0ZU9iamVjdHMoZmFs
c2UpCit7CisgICAgc2lnbmFsKFNJR0FCUlQsICZDcmFzaEhhbmRsZXI6OnNpZ25hbEhhbmRsZXIp
OworICAgIHNpZ25hbChTSUdCVVMsICZDcmFzaEhhbmRsZXI6OnNpZ25hbEhhbmRsZXIpOworICAg
IHNpZ25hbChTSUdJTEwsICZDcmFzaEhhbmRsZXI6OnNpZ25hbEhhbmRsZXIpOworICAgIHNpZ25h
bChTSUdJTlQsICZDcmFzaEhhbmRsZXI6OnNpZ25hbEhhbmRsZXIpOworICAgIHNpZ25hbChTSUdG
UEUsICZDcmFzaEhhbmRsZXI6OnNpZ25hbEhhbmRsZXIpOworICAgIHNpZ25hbChTSUdRVUlULCAm
Q3Jhc2hIYW5kbGVyOjpzaWduYWxIYW5kbGVyKTsKKyAgICBzaWduYWwoU0lHU0VHViwgJkNyYXNo
SGFuZGxlcjo6c2lnbmFsSGFuZGxlcik7CisgICAgc2lnbmFsKFNJR1RSQVAsICZDcmFzaEhhbmRs
ZXI6OnNpZ25hbEhhbmRsZXIpOworfQorCitOT19SRVRVUk4gdm9pZCBDcmFzaEhhbmRsZXI6OnNp
Z25hbEhhbmRsZXIoaW50KQoreworICAgIENyYXNoSGFuZGxlcjo6dGhlSW5zdGFuY2UtPmRlbGV0
ZU9iamVjdHMoKTsKKyAgICBleGl0KEVYSVRfRkFJTFVSRSk7Cit9CisKK3ZvaWQgQ3Jhc2hIYW5k
bGVyOjpkZWxldGVPYmplY3RzKCkKK3sKKyAgICBtX2luRGVsZXRlT2JqZWN0cyA9IHRydWU7Cisg
ICAgcURlbGV0ZUFsbChtX29iamVjdHMpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1dlYktpdDIvU2hhcmVkL3F0L0NyYXNoSGFuZGxlci5oIGIvV2ViS2l0Mi9TaGFy
ZWQvcXQvQ3Jhc2hIYW5kbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmE5ZDU4MDNhYjkzMmIyYWFmYWUxNGMw
YTNmMTNhM2ZjZWMzOTQ1NQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvU2hhcmVkL3F0L0Ny
YXNoSGFuZGxlci5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
VW5pdmVyc2l0eSBvZiBTemVnZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgQ3Jhc2hIYW5kbGVyX2gKKyNkZWZpbmUgQ3Jhc2hIYW5kbGVyX2gKKworI2luY2x1ZGUg
PFFMaXN0PgorI2luY2x1ZGUgPFFPYmplY3Q+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNp
bmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisKKyNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9u
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgQ3Jhc2hIYW5kbGVyIDogcHJpdmF0ZSBR
T2JqZWN0IHsKKyAgICBRX09CSkVDVAorcHVibGljOgorICAgIHN0YXRpYyBDcmFzaEhhbmRsZXIq
IGluc3RhbmNlKCkKKyAgICB7CisgICAgICAgIGlmICghdGhlSW5zdGFuY2UpCisgICAgICAgICAg
ICB0aGVJbnN0YW5jZSA9IG5ldyBDcmFzaEhhbmRsZXIoKTsKKyAgICAgICAgcmV0dXJuIHRoZUlu
c3RhbmNlOworICAgIH0KKworICAgIHZvaWQgbWFya0ZvckRlbGV0aW9uT25DcmFzaChRT2JqZWN0
KiBvYmplY3QpCisgICAgeworICAgICAgICB0aGVJbnN0YW5jZS0+bV9vYmplY3RzLmFwcGVuZChv
YmplY3QpOworICAgIH0KKworICAgIHZvaWQgZGlkRGVsZXRlKFFPYmplY3QqIG9iamVjdCkKKyAg
ICB7CisgICAgICAgIGlmIChtX2luRGVsZXRlT2JqZWN0cykKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgdGhlSW5zdGFuY2UtPm1fb2JqZWN0cy5yZW1vdmVPbmUob2JqZWN0KTsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgc3RhdGljIHZvaWQgc2lnbmFsSGFuZGxlcihpbnQpOworICAgIHN0
YXRpYyBDcmFzaEhhbmRsZXIqIHRoZUluc3RhbmNlOworCisgICAgQ3Jhc2hIYW5kbGVyKCk7CisK
KyAgICB2b2lkIGRlbGV0ZU9iamVjdHMoKTsKKworICAgIFFMaXN0PFFPYmplY3QqPiBtX29iamVj
dHM7CisgICAgYm9vbCBtX2luRGVsZXRlT2JqZWN0czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gQ2xlYW51cEhhbmRsZXJfaApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9V
SVByb2Nlc3MvTGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwIGIvV2ViS2l0Mi9VSVBy
b2Nlc3MvTGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwCmluZGV4IDY0N2M1ODE4YTdj
NjU4MTIwYTFiYzg0ZDUzZWY2YTMxOTQ3MTJiYjcuLjBkOGFiZWRjYjk0MTUwYzY0NzY3YzdlZjJi
YmY1ZDRiOGNlNjg3NDAgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3F0
L1Byb2Nlc3NMYXVuY2hlclF0LmNwcAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9x
dC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDb25u
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJSdW5Mb29w
LmgiCisjaW5jbHVkZSAiQ3Jhc2hIYW5kbGVyLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgog
I2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2luY2x1ZGUgPHN0cmlu
Zz4KQEAgLTExMyw2ICsxMTQsOSBAQCBQcm9jZXNzTGF1bmNoZXJIZWxwZXI6OlByb2Nlc3NMYXVu
Y2hlckhlbHBlcigpCiAgICAgfQogICAgIGNvbm5lY3QoJm1fc2VydmVyLCBTSUdOQUwobmV3Q29u
bmVjdGlvbigpKSwgdGhpcywgU0xPVChuZXdDb25uZWN0aW9uKCkpKTsKICAgICBjb25uZWN0KFFD
b3JlQXBwbGljYXRpb246Omluc3RhbmNlKCksIFNJR05BTChhYm91dFRvUXVpdCgpKSwgU0xPVChk
ZWxldGVMYXRlcigpKSwgUXQ6OlF1ZXVlZENvbm5lY3Rpb24pOworCisgICAgLy8gRG8gbm90IGxl
YXZlIHNvY2tldCBmaWxlcyBvbiB0aGUgZGlzayBldmVuIG9uIGNyYXNoIQorICAgIENyYXNoSGFu
ZGxlcjo6aW5zdGFuY2UoKS0+bWFya0ZvckRlbGV0aW9uT25DcmFzaCh0aGlzKTsKIH0KIAogUHJv
Y2Vzc0xhdW5jaGVySGVscGVyKiBQcm9jZXNzTGF1bmNoZXJIZWxwZXI6Omluc3RhbmNlKCkKZGlm
ZiAtLWdpdCBhL1dlYktpdDIvV2ViS2l0Mi5wcm8gYi9XZWJLaXQyL1dlYktpdDIucHJvCmluZGV4
IDBmMTFjNTdjOTQwODEwNzg5MGM2ZmU3N2NkYjYzODgwMmIxY2U2MjQuLjc2ZGNmOGY3NzgyNDE3
MDBkMjY2NDBkMjUxZmYzZTJkOGE3NTEzNzUgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViS2l0Mi5w
cm8KKysrIGIvV2ViS2l0Mi9XZWJLaXQyLnBybwpAQCAtMjEwLDYgKzIxMCw3IEBAIEhFQURFUlMg
Kz0gXAogICAgIFNoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmggXAogICAgIFNoYXJlZC9O
b3RJbXBsZW1lbnRlZC5oIFwKICAgICBTaGFyZWQvU3RyaW5nUGFpclZlY3Rvci5oIFwKKyAgICBT
aGFyZWQvcXQvQ3Jhc2hIYW5kbGVyLmggXAogICAgIFNoYXJlZC9xdC9QbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mby5oIFwKICAgICBTaGFyZWQvcXQvVXBkYXRlQ2h1bmsuaCBcCiAgICAgU2hhcmVkL3F0
L1dlYkV2ZW50RmFjdG9yeVF0LmggXApAQCAtMzc1LDYgKzM3Niw3IEBAIFNPVVJDRVMgKz0gXAog
ICAgIFNoYXJlZC9NdXRhYmxlQXJyYXkuY3BwIFwKICAgICBTaGFyZWQvTXV0YWJsZURpY3Rpb25h
cnkuY3BwIFwKICAgICBTaGFyZWQvcXQvQmFja2luZ1N0b3JlUXQuY3BwIFwKKyAgICBTaGFyZWQv
cXQvQ3Jhc2hIYW5kbGVyLmNwcCBcCiAgICAgU2hhcmVkL3F0L05hdGl2ZVdlYktleWJvYXJkRXZl
bnRRdC5jcHAgXAogICAgIFNoYXJlZC9xdC9VcGRhdGVDaHVuay5jcHAgXAogICAgIFNoYXJlZC9x
dC9XZWJDb3JlQXJndW1lbnRDb2RlcnNRdC5jcHAgXAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>