<?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>31171</bug_id>
          
          <creation_ts>2009-11-05 10:32:08 -0800</creation_ts>
          <short_desc>[V8] Need better design to solve the duplicate error message reporting problem.</short_desc>
          <delta_ts>2010-04-26 02:43:35 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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="Jian Li">jianli</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>caseq</cc>
    
    <cc>dimich</cc>
    
    <cc>jianli</cc>
    
    <cc>levin</cc>
    
    <cc>pfeldman</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>160867</commentid>
    <comment_count>0</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2009-11-05 10:32:08 -0800</bug_when>
    <thetext>We need to come up with better design to solve the duplicate error message reporting problem, instead of relying on checking ScriptExecutionContext to avoid duplicate messages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201830</commentid>
    <comment_count>1</comment_count>
      <attachid>51150</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-03-19 06:24:18 -0700</bug_when>
    <thetext>Created attachment 51150
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201832</commentid>
    <comment_count>2</comment_count>
      <attachid>51150</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-03-19 06:30:32 -0700</bug_when>
    <thetext>Comment on attachment 51150
patch

This looks sane from the v8 message handling perspective. Could you get lg from the workers guys prior to landing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201951</commentid>
    <comment_count>3</comment_count>
      <attachid>51173</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-03-19 11:31:43 -0700</bug_when>
    <thetext>Created attachment 51173
patch

- Added test
- v8MessageHandler is not reentarable otherwise it gets into an infinite recursion if there is an exception in onerror handler</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201978</commentid>
    <comment_count>4</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-03-19 12:19:18 -0700</bug_when>
    <thetext>&gt; diff --git a/WebCore/bindings/v8/WorkerContextExecutionProxy.cpp b/WebCore/bindings/v8/WorkerContextExecutionProxy.cpp
&gt; +static void v8MessageHandler(v8::Handle&lt;v8::Message&gt; message, v8::Handle&lt;v8::Value&gt; data)
&gt; +{
&gt; +    static bool isReportingException = false;
Do we need to say &quot;static bool&quot; since we are already in a static function?
&gt; +    // Exceptions that occur in error handler should be ignored since  in that case
An extra space after &quot;since&quot;.
&gt; +    // WorkerContext::reportException will send the exception to the worker object.
&gt; +    if (isReportingException)
&gt; +        return;
&gt; +    isReportingException = true;
&gt; +
&gt; +    String errorMessage = toWebCoreString(message-&gt;Get());
Do we want to check if the message is empty? Previously we got a reliability build break in chromium due to that the exception can be thrown without setting a message.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202420</commentid>
    <comment_count>5</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-03-22 02:15:48 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; diff --git a/WebCore/bindings/v8/WorkerContextExecutionProxy.cpp b/WebCore/bindings/v8/WorkerContextExecutionProxy.cpp
&gt; &gt; +static void v8MessageHandler(v8::Handle&lt;v8::Message&gt; message, v8::Handle&lt;v8::Value&gt; data)
&gt; &gt; +{
&gt; &gt; +    static bool isReportingException = false;
&gt; Do we need to say &quot;static bool&quot; since we are already in a static function?
Yes, because we want it to be a static variable.

&gt; &gt; +    // Exceptions that occur in error handler should be ignored since  in that case
&gt; An extra space after &quot;since&quot;.
Fixed.

&gt; &gt; +    // WorkerContext::reportException will send the exception to the worker object.
&gt; &gt; +    if (isReportingException)
&gt; &gt; +        return;
&gt; &gt; +    isReportingException = true;
&gt; &gt; +
&gt; &gt; +    String errorMessage = toWebCoreString(message-&gt;Get());
&gt; Do we want to check if the message is empty? Previously we got a reliability
&gt; build break in chromium due to that the exception can be thrown without setting
&gt; a message.
Previously the message was pulled from v8::TryCatch that has SetCaptureMessage method that allows to disable message capturing. In MessageHandler add with v8::AddMessageHandler the message handle can be empty only if the exception was thrown when v8 bootstrapper is active which should never happen in normal conditions that&apos;s why there is no IsEmpty() check in V8ConsoleMessage::hanler where uncaught exceptions from Page are reporte.d</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202421</commentid>
    <comment_count>6</comment_count>
      <attachid>51271</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-03-22 02:16:19 -0700</bug_when>
    <thetext>Created attachment 51271
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202426</commentid>
    <comment_count>7</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-03-22 02:46:51 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	A	LayoutTests/fast/workers/resources/worker-exception-in-timeout-callback.js
	M	LayoutTests/fast/workers/worker-script-error-expected.txt
	M	LayoutTests/fast/workers/worker-script-error.html
	M	WebCore/ChangeLog
	M	WebCore/bindings/v8/V8AbstractEventListener.cpp
	M	WebCore/bindings/v8/V8Utilities.cpp
	M	WebCore/bindings/v8/V8Utilities.h
	M	WebCore/bindings/v8/WorkerContextExecutionProxy.cpp
Committed r56329</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203585</commentid>
    <comment_count>8</comment_count>
      <attachid>51150</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-24 14:31:09 -0700</bug_when>
    <thetext>Comment on attachment 51150
patch

Cleared Pavel Feldman&apos;s review+ from obsolete attachment 51150 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51150</attachid>
            <date>2010-03-19 06:24:18 -0700</date>
            <delta_ts>2010-03-24 14:31:09 -0700</delta_ts>
            <desc>patch</desc>
            <filename>worker-exception-reporting.patch</filename>
            <type>text/plain</type>
            <size>7213</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZGQ2MmFjZS4uMmZmZjM3MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wMy0xOSAgWXVyeSBTZW1pa2hh
dHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBIYW5kbGUgd29ya2VyIGV4Y2VwdGlvbnMgaW4gVjhNZXNzYWdl
SGFuZGxlciBsaWtlIGl0J3MgZG9uZSBpbiByZWd1bGFyIGRvY3VtZW50cy4gVGhpcyB3YXkgYWxs
IHdvcmtlciBleGNlcHRpb25zIHdpbGwgYmUgbG9nZ2VkIGluIHRoZSBjb25zb2xlIG5vdCBvbmx5
IHRob3NlIHdoaWNoIGhhcHBlbiBpbiBldmVudCBsaXN0ZW5lcnMuIAorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTE3MQorCisgICAgICAgICogYmlu
ZGluZ3MvdjgvVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VjhBYnN0cmFjdEV2ZW50TGlzdGVuZXI6Omludm9rZUV2ZW50SGFuZGxlcik6IFJlbW92ZWQgZXhw
bGljaXQgY2FsbCB0byByZXBvcnRFeGNlcHRpb24uCisgICAgICAgICogYmluZGluZ3MvdjgvVjhV
dGlsaXRpZXMuY3BwOiByZXBvcnRFeGNlcHRpb24gZnVuY3Rpb24gd2FzIHJlbW92ZWQgc2luY2Ug
aXQncyBub3QgdXNlZC4KKyAgICAgICAgKFdlYkNvcmU6OmdldFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmg6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnY4TWVzc2FnZUhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dEV4
ZWN1dGlvblByb3h5Ojppbml0Q29udGV4dElmTmVlZGVkKTogU2V0dXAgbWVzc2FnZSBoYW5kbGVy
IHdoZW4gZmlyc3Qgd29ya2VyIGNvbnRleHQgaXMgY3JlYXRlZC4KKwogMjAxMC0wMy0xOCAgRW5y
aWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNp
bW9uIEZyYXNlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhBYnN0cmFjdEV2
ZW50TGlzdGVuZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEFic3RyYWN0RXZlbnRMaXN0
ZW5lci5jcHAKaW5kZXggYmVhZGFiOS4uNmRjMmIyOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOEFic3RyYWN0RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOEFic3RyYWN0RXZlbnRMaXN0ZW5lci5jcHAKQEAgLTE0NSwxMSArMTQ1LDggQEAgdm9p
ZCBWOEFic3RyYWN0RXZlbnRMaXN0ZW5lcjo6aW52b2tlRXZlbnRIYW5kbGVyKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQKICAgICAgICAgaWYgKCF0cnlDYXRjaC5DYW5Db250aW51ZSgp
KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIC8vIElmIGFuIGVycm9yIG9jY3VycyB3
aGlsZSBoYW5kbGluZyB0aGUgZXZlbnQsIGl0IHNob3VsZCBiZSByZXBvcnRlZC4KLSAgICAgICAg
aWYgKHRyeUNhdGNoLkhhc0NhdWdodCgpKSB7Ci0gICAgICAgICAgICByZXBvcnRFeGNlcHRpb24o
MCwgdHJ5Q2F0Y2gpOwotICAgICAgICAgICAgdHJ5Q2F0Y2guUmVzZXQoKTsKLSAgICAgICAgfQor
ICAgICAgICAvLyBJZiBhbiBlcnJvciBvY2N1cnMgd2hpbGUgaGFuZGxpbmcgdGhlIGV2ZW50LCBp
dCBzaG91bGQgYmUgcmVwb3J0ZWQgaW4gYSByZWd1bGFyIHdheS4KKyAgICAgICAgdHJ5Q2F0Y2gu
UmVzZXQoKTsKIAogICAgICAgICAvLyBSZXN0b3JlIHRoZSBvbGQgZXZlbnQuIFRoaXMgbXVzdCBi
ZSBkb25lIGZvciBhbGwgZXhpdCBwYXRocyB0aHJvdWdoIHRoaXMgbWV0aG9kLgogICAgICAgICBp
ZiAoc2F2ZWRFdmVudC5Jc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4VXRpbGl0aWVzLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwCmlu
ZGV4IGM3MzE0ZjEuLjAzNWI5ODMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhV
dGlsaXRpZXMuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwCkBA
IC0xMjUsNyArMTI1LDcgQEAgdm9pZCBuYXZpZ2F0ZUlmQWxsb3dlZChGcmFtZSogZnJhbWUsIGNv
bnN0IEtVUkwmIHVybCwgYm9vbCBsb2NrSGlzdG9yeSwgYm9vbCBsb2MKICAgICAgICAgZnJhbWUt
PnJlZGlyZWN0U2NoZWR1bGVyKCktPnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UodXJsLnN0cmluZygp
LCBjYWxsaW5nRnJhbWUtPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCksIGxvY2tIaXN0b3J5
LCBsb2NrQmFja0ZvcndhcmRMaXN0LCBwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSk7CiB9CiAKLVNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoU2NyaXB0U3Rh
dGUqIHNjcmlwdFN0YXRlKQorU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogZ2V0U2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpCiB7CiAjaWYgRU5BQkxFKFdPUktFUlMpCiAgICAgV29ya2VyQ29udGV4dEV4
ZWN1dGlvblByb3h5KiBwcm94eSA9IFdvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eTo6cmV0cmll
dmUoKTsKQEAgLTEzMyw0NiArMTMzLDExIEBAIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGdldFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlKQogICAgICAgICBy
ZXR1cm4gcHJveHktPndvcmtlckNvbnRleHQoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwog
I2VuZGlmCiAKLSAgICBGcmFtZSogZnJhbWU7Ci0gICAgaWYgKHNjcmlwdFN0YXRlKSB7Ci0gICAg
ICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKLSAgICAgICAgZnJhbWUgPSBWOFByb3h5
OjpyZXRyaWV2ZUZyYW1lKHNjcmlwdFN0YXRlLT5jb250ZXh0KCkpOwotICAgIH0gZWxzZQotICAg
ICAgICBmcmFtZSA9IFY4UHJveHk6OnJldHJpZXZlRnJhbWVGb3JDdXJyZW50Q29udGV4dCgpOwot
CisgICAgRnJhbWUqIGZyYW1lID0gVjhQcm94eTo6cmV0cmlldmVGcmFtZUZvckN1cnJlbnRDb250
ZXh0KCk7CiAgICAgaWYgKGZyYW1lKQogICAgICAgICByZXR1cm4gZnJhbWUtPmRvY3VtZW50KCkt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKIAogICAgIHJldHVybiAwOwogfQogCi12b2lkIHJl
cG9ydEV4Y2VwdGlvbihTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGUsIHY4OjpUcnlDYXRjaCYgZXhj
ZXB0aW9uQ2F0Y2hlcikKLXsKLSAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwotICAgIGludCBsaW5l
TnVtYmVyID0gMDsKLSAgICBTdHJpbmcgc291cmNlVVJMOwotCi0gICAgLy8gVGhlcmUgY2FuIGJl
IGEgc2l0dWF0aW9uIHRoYXQgYW4gZXhjZXB0aW9uIGlzIHRocm93biB3aXRob3V0IHNldHRpbmcg
YSBtZXNzYWdlLgotICAgIHY4OjpMb2NhbDx2ODo6TWVzc2FnZT4gbWVzc2FnZSA9IGV4Y2VwdGlv
bkNhdGNoZXIuTWVzc2FnZSgpOwotICAgIGlmIChtZXNzYWdlLklzRW1wdHkoKSkgewotICAgICAg
ICB2ODo6TG9jYWw8djg6OlN0cmluZz4gZXhjZXB0aW9uU3RyaW5nID0gZXhjZXB0aW9uQ2F0Y2hl
ci5FeGNlcHRpb24oKS0+VG9TdHJpbmcoKTsKLSAgICAgICAgLy8gQ29udmVyc2lvbiBvZiB0aGUg
ZXhjZXB0aW9uIG9iamVjdCB0byBzdHJpbmcgY2FuIGZhaWwgaWYgYW4KLSAgICAgICAgLy8gZXhj
ZXB0aW9uIGlzIHRocm93biBkdXJpbmcgY29udmVyc2lvbi4KLSAgICAgICAgaWYgKCFleGNlcHRp
b25TdHJpbmcuSXNFbXB0eSgpKQotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gdG9XZWJDb3Jl
U3RyaW5nKGV4Y2VwdGlvblN0cmluZyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNz
YWdlID0gdG9XZWJDb3JlU3RyaW5nKG1lc3NhZ2UtPkdldCgpKTsKLSAgICAgICAgbGluZU51bWJl
ciA9IG1lc3NhZ2UtPkdldExpbmVOdW1iZXIoKTsKLSAgICAgICAgc291cmNlVVJMID0gdG9XZWJD
b3JlU3RyaW5nKG1lc3NhZ2UtPkdldFNjcmlwdFJlc291cmNlTmFtZSgpKTsKLSAgICB9Ci0KLSAg
ICAvLyBEbyBub3QgcmVwb3J0IHRoZSBleGNlcHRpb24gaWYgdGhlIGN1cnJlbnQgZXhlY3V0aW9u
IGNvbnRleHQgaXMgRG9jdW1lbnQgYmVjYXVzZSB3ZSBkbyBub3Qgd2FudCB0byBsZWFkIHRvIGR1
cGxpY2F0ZSBlcnJvciBtZXNzYWdlcyBpbiB0aGUgY29uc29sZS4KLSAgICAvLyBGSVhNRSAoMzEx
NzEpOiBuZWVkIGJldHRlciBkZXNpZ24gdG8gc29sdmUgdGhlIGR1cGxpY2F0ZSBlcnJvciBtZXNz
YWdlIHJlcG9ydGluZyBwcm9ibGVtLgotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQgPSBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KHNjcmlwdFN0YXRlKTsKLSAgICAvLyBEdXJp
bmcgdGhlIGZyYW1lIHRlYXJkb3duLCB0aGVyZSBtYXkgbm90IGJlIGEgdmFsaWQgY29udGV4dC4K
LSAgICBpZiAoY29udGV4dCAmJiAhY29udGV4dC0+aXNEb2N1bWVudCgpKQotICAgICAgICBjb250
ZXh0LT5yZXBvcnRFeGNlcHRpb24oZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwp
OwotICAgIGV4Y2VwdGlvbkNhdGNoZXIuUmVzZXQoKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFV0aWxpdGllcy5oIGIvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOFV0aWxpdGllcy5oCmluZGV4IDk0NDgyM2EuLmNiZTdhN2IgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuaAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmgKQEAgLTU0LDEyICs1NCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBLVVJMIGNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgcmVsYXRpdmVVUkwp
OwogICAgIHZvaWQgbmF2aWdhdGVJZkFsbG93ZWQoRnJhbWUqLCBjb25zdCBLVVJMJiwgYm9vbCBs
b2NrSGlzdG9yeSwgYm9vbCBsb2NrQmFja0ZvcndhcmRMaXN0KTsKIAotICAgIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoU2NyaXB0U3RhdGUqKTsKLSAg
ICBpbmxpbmUgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpIHsKLSAgICAgICAgcmV0dXJuIGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoMCk7Ci0gICAg
fQotCi0gICAgdm9pZCByZXBvcnRFeGNlcHRpb24oU2NyaXB0U3RhdGUqLCB2ODo6VHJ5Q2F0Y2gm
KTsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0
KCk7CiAKICAgICBjbGFzcyBBbGxvd0FsbG9jYXRpb24gewogICAgIHB1YmxpYzoKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcCBi
L1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcAppbmRl
eCAzZWQ5MjZjLi5hZGY5NjI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtl
ckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3Jr
ZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAi
U2hhcmVkV29ya2VyLmgiCiAjaW5jbHVkZSAiU2hhcmVkV29ya2VyQ29udGV4dC5oIgogI2luY2x1
ZGUgIlY4QmluZGluZy5oIgorI2luY2x1ZGUgIlY4Q29uc29sZU1lc3NhZ2UuaCIKICNpbmNsdWRl
ICJWOERPTU1hcC5oIgogI2luY2x1ZGUgIlY4RGVkaWNhdGVkV29ya2VyQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIlY4UHJveHkuaCIKQEAgLTU4LDYgKzU5LDE4IEBAIHN0YXRpYyB2b2lkIHJlcG9ydEZh
dGFsRXJyb3JJblY4KGNvbnN0IGNoYXIqIGxvY2F0aW9uLCBjb25zdCBjaGFyKiBtZXNzYWdlKQog
ICAgIENSQVNIKCk7CiB9CiAKK3N0YXRpYyB2b2lkIHY4TWVzc2FnZUhhbmRsZXIodjg6OkhhbmRs
ZTx2ODo6TWVzc2FnZT4gbWVzc2FnZSwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGRhdGEpCit7Cisg
ICAgU3RyaW5nIGVycm9yTWVzc2FnZSA9IHRvV2ViQ29yZVN0cmluZyhtZXNzYWdlLT5HZXQoKSk7
CisgICAgaW50IGxpbmVOdW1iZXIgPSBtZXNzYWdlLT5HZXRMaW5lTnVtYmVyKCk7CisgICAgU3Ry
aW5nIHNvdXJjZVVSTCA9IHRvV2ViQ29yZVN0cmluZyhtZXNzYWdlLT5HZXRTY3JpcHRSZXNvdXJj
ZU5hbWUoKSk7CisKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gZ2V0U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIC8vIER1cmluZyB0aGUgZnJhbWUgdGVhcmRvd24s
IHRoZXJlIG1heSBub3QgYmUgYSB2YWxpZCBjb250ZXh0LgorICAgIGlmIChjb250ZXh0KQorICAg
ICAgICBjb250ZXh0LT5yZXBvcnRFeGNlcHRpb24oZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBz
b3VyY2VVUkwpOworfQorCiBXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHk6OldvcmtlckNvbnRl
eHRFeGVjdXRpb25Qcm94eShXb3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXh0KQogICAgIDogbV93
b3JrZXJDb250ZXh0KHdvcmtlckNvbnRleHQpCiAgICAgLCBtX3JlY3Vyc2lvbigwKQpAQCAtMTI3
LDYgKzE0MCwxMiBAQCB2b2lkIFdvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eTo6aW5pdENvbnRl
eHRJZk5lZWRlZCgpCiAgICAgaWYgKCFtX2NvbnRleHQuSXNFbXB0eSgpKQogICAgICAgICByZXR1
cm47CiAKKyAgICAvLyBTZXR1cCB0aGUgc2VjdXJpdHkgaGFuZGxlcnMgYW5kIG1lc3NhZ2UgbGlz
dGVuZXIuIFRoaXMgb25seSBoYXMKKyAgICAvLyB0byBiZSBkb25lIG9uY2UuCisgICAgc3RhdGlj
IGJvb2wgaXNWOEluaXRpYWxpemVkID0gZmFsc2U7CisgICAgaWYgKCFpc1Y4SW5pdGlhbGl6ZWQp
CisgICAgICAgIHY4OjpWODo6QWRkTWVzc2FnZUxpc3RlbmVyKCZ2OE1lc3NhZ2VIYW5kbGVyKTsK
KwogICAgIC8vIENyZWF0ZSBhIG5ldyBlbnZpcm9ubWVudAogICAgIHY4OjpQZXJzaXN0ZW50PHY4
OjpPYmplY3RUZW1wbGF0ZT4gZ2xvYmFsVGVtcGxhdGU7CiAgICAgbV9jb250ZXh0ID0gdjg6OkNv
bnRleHQ6Ok5ldygwLCBnbG9iYWxUZW1wbGF0ZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51173</attachid>
            <date>2010-03-19 11:31:43 -0700</date>
            <delta_ts>2010-03-22 02:16:19 -0700</delta_ts>
            <desc>patch</desc>
            <filename>worker-exception-reporting2.patch</filename>
            <type>text/plain</type>
            <size>10611</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiYTY0M2E3Li5iNmNmZmNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDMt
MTkgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCB0aGF0IHVuY2F1Z2h0IGV4
Y2VwdGlvbiB0aHJvd24gZnJvbSBzZXRUaW1lb3V0IGNhbGxiYWNrIGluIGEgV29ya2VyIGlzIHJl
cG9ydGVkIHRvIHRoZSB3b3JrZXIgb2JqZWN0LgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTE3MQorCisgICAgICAgICogZmFzdC93b3JrZXJzL3Jl
c291cmNlcy93b3JrZXItZXhjZXB0aW9uLWluLXRpbWVvdXQtY2FsbGJhY2suanM6IEFkZGVkLgor
ICAgICAgICAqIGZhc3Qvd29ya2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci5odG1sOgorCiAyMDEw
LTAzLTE4ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3Jr
ZXJzL3Jlc291cmNlcy93b3JrZXItZXhjZXB0aW9uLWluLXRpbWVvdXQtY2FsbGJhY2suanMgYi9M
YXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtlci1leGNlcHRpb24taW4tdGlt
ZW91dC1jYWxsYmFjay5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43N2Ji
ZGI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNl
cy93b3JrZXItZXhjZXB0aW9uLWluLXRpbWVvdXQtY2FsbGJhY2suanMKQEAgLTAsMCArMSwzIEBA
CitzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgIHRocm93ICJFeGNlcHRpb24gaW4gc2V0VGlt
ZW91dCBjYWxsYmFjayI7Cit9LCAwKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29y
a2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
d29ya2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4dAppbmRleCA5ZmIzY2MwLi5k
NTM1ZTdkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlw
dC1lcnJvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtl
ci1zY3JpcHQtZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC04LDUgKzgsNiBAQCBQQVNTOiBvbmVycm9y
IGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJy
b3I6IENhbid0CiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNj
cmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZvbycgYXQg
bGluZSA3LgogUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3Jp
cHQgZXJyb3IgJ1JlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBmb28nIGF0IGxp
bmUgNy4KIFBBU1M6IG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSBXb3JrZXJHbG9iYWxTY29wZS5vbmVy
cm9yOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAn
UmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZvbycgYXQgbGluZSA3LgorUEFT
Uzogb25lcnJvciBpbnZva2VkIGZvciBhbiBleGNlcHRpb24gaW4gc2V0VGltZW91dCBjYWxsYmFj
ay4KIERPTkUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1z
Y3JpcHQtZXJyb3IuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItc2NyaXB0
LWVycm9yLmh0bWwKaW5kZXggMGMyZTdlMy4uYWQ5NmY3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC93b3JrZXJzL3dvcmtlci1zY3JpcHQtZXJyb3IuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci5odG1sCkBAIC0xNSw2ICsxNSw3IEBA
IHZhciB0ZXN0Q2FzZXMgPSBbCiAgICAgInRlc3RTY3JpcHRFcnJvckJ1YmJsZWRBbmRIYW5kbGVk
SW5Xb3JrZXIiLAogICAgICJ0ZXN0U2NyaXB0RXJyb3JCdWJibGVkQW5kUmVwb3J0ZWRUb1VzZXIi
LAogICAgICJ0ZXN0U2NyaXB0RXJyb3JIYW5kbGVkIiwKKyAgICAidGVzdEV4Y2VwdGlvbkluVGlt
ZW91dENhbGxiYWNrIiwKIF07CiB2YXIgdGVzdEluZGV4ID0gMDsKIApAQCAtMTQwLDYgKzE0MSwy
MSBAQCBmdW5jdGlvbiB0ZXN0U2NyaXB0RXJyb3JIYW5kbGVkKCkKICAgICB9CiB9CiAKK2Z1bmN0
aW9uIHRlc3RFeGNlcHRpb25JblRpbWVvdXRDYWxsYmFjaygpCit7CisgICAgdHJ5IHsKKyAgICAg
ICAgdmFyIHdvcmtlciA9IG5ldyBXb3JrZXIoInJlc291cmNlcy93b3JrZXItZXhjZXB0aW9uLWlu
LXRpbWVvdXQtY2FsbGJhY2suanMiKTsKKyAgICAgICAgd29ya2VyLm9uZXJyb3IgPSBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIGxvZygiUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhbiBleGNl
cHRpb24gaW4gc2V0VGltZW91dCBjYWxsYmFjay4iKTsKKyAgICAgICAgICAgIHJ1bk5leHRUZXN0
KCk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9IGNhdGNoIChl
eCkgeworICAgICAgICBsb2coIkZBSUw6IHVuZXhwZWN0ZWQgZXhjZXB0aW9uICIgKyBleCk7Cisg
ICAgICAgIHJ1bk5leHRUZXN0KCk7CisgICAgfQorfQorCiBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGQ2MmFjZS4uMmZmZjM3MSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMCBAQAorMjAxMC0wMy0xOSAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBIYW5kbGUgd29ya2VyIGV4Y2VwdGlvbnMgaW4gVjhNZXNzYWdlSGFuZGxlciBsaWtlIGl0J3Mg
ZG9uZSBpbiByZWd1bGFyIGRvY3VtZW50cy4gVGhpcyB3YXkgYWxsIHdvcmtlciBleGNlcHRpb25z
IHdpbGwgYmUgbG9nZ2VkIGluIHRoZSBjb25zb2xlIG5vdCBvbmx5IHRob3NlIHdoaWNoIGhhcHBl
biBpbiBldmVudCBsaXN0ZW5lcnMuIAorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zMTE3MQorCisgICAgICAgICogYmluZGluZ3MvdjgvVjhBYnN0cmFj
dEV2ZW50TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhBYnN0cmFjdEV2ZW50TGlz
dGVuZXI6Omludm9rZUV2ZW50SGFuZGxlcik6IFJlbW92ZWQgZXhwbGljaXQgY2FsbCB0byByZXBv
cnRFeGNlcHRpb24uCisgICAgICAgICogYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwOiByZXBv
cnRFeGNlcHRpb24gZnVuY3Rpb24gd2FzIHJlbW92ZWQgc2luY2UgaXQncyBub3QgdXNlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OmdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvV29ya2VyQ29u
dGV4dEV4ZWN1dGlvblByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnY4TWVzc2FnZUhhbmRs
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5Ojppbml0
Q29udGV4dElmTmVlZGVkKTogU2V0dXAgbWVzc2FnZSBoYW5kbGVyIHdoZW4gZmlyc3Qgd29ya2Vy
IGNvbnRleHQgaXMgY3JlYXRlZC4KKwogMjAxMC0wMy0xOCAgRW5yaWNhIENhc3VjY2kgIDxlbnJp
Y2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIuY3BwIGIv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOEFic3RyYWN0RXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggYmVh
ZGFiOS4uNmRjMmIyOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEFic3RyYWN0
RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEFic3RyYWN0RXZl
bnRMaXN0ZW5lci5jcHAKQEAgLTE0NSwxMSArMTQ1LDggQEAgdm9pZCBWOEFic3RyYWN0RXZlbnRM
aXN0ZW5lcjo6aW52b2tlRXZlbnRIYW5kbGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQKICAgICAgICAgaWYgKCF0cnlDYXRjaC5DYW5Db250aW51ZSgpKQogICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgIC8vIElmIGFuIGVycm9yIG9jY3VycyB3aGlsZSBoYW5kbGluZyB0aGUg
ZXZlbnQsIGl0IHNob3VsZCBiZSByZXBvcnRlZC4KLSAgICAgICAgaWYgKHRyeUNhdGNoLkhhc0Nh
dWdodCgpKSB7Ci0gICAgICAgICAgICByZXBvcnRFeGNlcHRpb24oMCwgdHJ5Q2F0Y2gpOwotICAg
ICAgICAgICAgdHJ5Q2F0Y2guUmVzZXQoKTsKLSAgICAgICAgfQorICAgICAgICAvLyBJZiBhbiBl
cnJvciBvY2N1cnMgd2hpbGUgaGFuZGxpbmcgdGhlIGV2ZW50LCBpdCBzaG91bGQgYmUgcmVwb3J0
ZWQgaW4gYSByZWd1bGFyIHdheS4KKyAgICAgICAgdHJ5Q2F0Y2guUmVzZXQoKTsKIAogICAgICAg
ICAvLyBSZXN0b3JlIHRoZSBvbGQgZXZlbnQuIFRoaXMgbXVzdCBiZSBkb25lIGZvciBhbGwgZXhp
dCBwYXRocyB0aHJvdWdoIHRoaXMgbWV0aG9kLgogICAgICAgICBpZiAoc2F2ZWRFdmVudC5Jc0Vt
cHR5KCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcCBi
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwCmluZGV4IGM3MzE0ZjEuLjAzNWI5
ODMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwCkBAIC0xMjUsNyArMTI1LDcgQEAg
dm9pZCBuYXZpZ2F0ZUlmQWxsb3dlZChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9v
bCBsb2NrSGlzdG9yeSwgYm9vbCBsb2MKICAgICAgICAgZnJhbWUtPnJlZGlyZWN0U2NoZWR1bGVy
KCktPnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UodXJsLnN0cmluZygpLCBjYWxsaW5nRnJhbWUtPmxv
YWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCksIGxvY2tIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRM
aXN0LCBwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSk7CiB9CiAKLVNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlKQor
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpCiB7CiAj
aWYgRU5BQkxFKFdPUktFUlMpCiAgICAgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5KiBwcm94
eSA9IFdvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eTo6cmV0cmlldmUoKTsKQEAgLTEzMyw0NiAr
MTMzLDExIEBAIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlKQogICAgICAgICByZXR1cm4gcHJveHktPndvcmtl
ckNvbnRleHQoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogI2VuZGlmCiAKLSAgICBGcmFt
ZSogZnJhbWU7Ci0gICAgaWYgKHNjcmlwdFN0YXRlKSB7Ci0gICAgICAgIHY4OjpIYW5kbGVTY29w
ZSBoYW5kbGVTY29wZTsKLSAgICAgICAgZnJhbWUgPSBWOFByb3h5OjpyZXRyaWV2ZUZyYW1lKHNj
cmlwdFN0YXRlLT5jb250ZXh0KCkpOwotICAgIH0gZWxzZQotICAgICAgICBmcmFtZSA9IFY4UHJv
eHk6OnJldHJpZXZlRnJhbWVGb3JDdXJyZW50Q29udGV4dCgpOwotCisgICAgRnJhbWUqIGZyYW1l
ID0gVjhQcm94eTo6cmV0cmlldmVGcmFtZUZvckN1cnJlbnRDb250ZXh0KCk7CiAgICAgaWYgKGZy
YW1lKQogICAgICAgICByZXR1cm4gZnJhbWUtPmRvY3VtZW50KCktPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKIAogICAgIHJldHVybiAwOwogfQogCi12b2lkIHJlcG9ydEV4Y2VwdGlvbihTY3Jp
cHRTdGF0ZSogc2NyaXB0U3RhdGUsIHY4OjpUcnlDYXRjaCYgZXhjZXB0aW9uQ2F0Y2hlcikKLXsK
LSAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwotICAgIGludCBsaW5lTnVtYmVyID0gMDsKLSAgICBT
dHJpbmcgc291cmNlVVJMOwotCi0gICAgLy8gVGhlcmUgY2FuIGJlIGEgc2l0dWF0aW9uIHRoYXQg
YW4gZXhjZXB0aW9uIGlzIHRocm93biB3aXRob3V0IHNldHRpbmcgYSBtZXNzYWdlLgotICAgIHY4
OjpMb2NhbDx2ODo6TWVzc2FnZT4gbWVzc2FnZSA9IGV4Y2VwdGlvbkNhdGNoZXIuTWVzc2FnZSgp
OwotICAgIGlmIChtZXNzYWdlLklzRW1wdHkoKSkgewotICAgICAgICB2ODo6TG9jYWw8djg6OlN0
cmluZz4gZXhjZXB0aW9uU3RyaW5nID0gZXhjZXB0aW9uQ2F0Y2hlci5FeGNlcHRpb24oKS0+VG9T
dHJpbmcoKTsKLSAgICAgICAgLy8gQ29udmVyc2lvbiBvZiB0aGUgZXhjZXB0aW9uIG9iamVjdCB0
byBzdHJpbmcgY2FuIGZhaWwgaWYgYW4KLSAgICAgICAgLy8gZXhjZXB0aW9uIGlzIHRocm93biBk
dXJpbmcgY29udmVyc2lvbi4KLSAgICAgICAgaWYgKCFleGNlcHRpb25TdHJpbmcuSXNFbXB0eSgp
KQotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gdG9XZWJDb3JlU3RyaW5nKGV4Y2VwdGlvblN0
cmluZyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gdG9XZWJDb3JlU3Ry
aW5nKG1lc3NhZ2UtPkdldCgpKTsKLSAgICAgICAgbGluZU51bWJlciA9IG1lc3NhZ2UtPkdldExp
bmVOdW1iZXIoKTsKLSAgICAgICAgc291cmNlVVJMID0gdG9XZWJDb3JlU3RyaW5nKG1lc3NhZ2Ut
PkdldFNjcmlwdFJlc291cmNlTmFtZSgpKTsKLSAgICB9Ci0KLSAgICAvLyBEbyBub3QgcmVwb3J0
IHRoZSBleGNlcHRpb24gaWYgdGhlIGN1cnJlbnQgZXhlY3V0aW9uIGNvbnRleHQgaXMgRG9jdW1l
bnQgYmVjYXVzZSB3ZSBkbyBub3Qgd2FudCB0byBsZWFkIHRvIGR1cGxpY2F0ZSBlcnJvciBtZXNz
YWdlcyBpbiB0aGUgY29uc29sZS4KLSAgICAvLyBGSVhNRSAoMzExNzEpOiBuZWVkIGJldHRlciBk
ZXNpZ24gdG8gc29sdmUgdGhlIGR1cGxpY2F0ZSBlcnJvciBtZXNzYWdlIHJlcG9ydGluZyBwcm9i
bGVtLgotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBnZXRTY3JpcHRFeGVj
dXRpb25Db250ZXh0KHNjcmlwdFN0YXRlKTsKLSAgICAvLyBEdXJpbmcgdGhlIGZyYW1lIHRlYXJk
b3duLCB0aGVyZSBtYXkgbm90IGJlIGEgdmFsaWQgY29udGV4dC4KLSAgICBpZiAoY29udGV4dCAm
JiAhY29udGV4dC0+aXNEb2N1bWVudCgpKQotICAgICAgICBjb250ZXh0LT5yZXBvcnRFeGNlcHRp
b24oZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOwotICAgIGV4Y2VwdGlvbkNh
dGNoZXIuUmVzZXQoKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOFV0aWxpdGllcy5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OFV0aWxpdGllcy5oCmluZGV4IDk0NDgyM2EuLmNiZTdhN2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRp
bGl0aWVzLmgKQEAgLTU0LDEyICs1NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBLVVJM
IGNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgcmVsYXRpdmVVUkwpOwogICAgIHZvaWQgbmF2aWdh
dGVJZkFsbG93ZWQoRnJhbWUqLCBjb25zdCBLVVJMJiwgYm9vbCBsb2NrSGlzdG9yeSwgYm9vbCBs
b2NrQmFja0ZvcndhcmRMaXN0KTsKIAotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGdldFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoU2NyaXB0U3RhdGUqKTsKLSAgICBpbmxpbmUgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIHsKLSAgICAgICAgcmV0
dXJuIGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoMCk7Ci0gICAgfQotCi0gICAgdm9pZCByZXBv
cnRFeGNlcHRpb24oU2NyaXB0U3RhdGUqLCB2ODo6VHJ5Q2F0Y2gmKTsKKyAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAKICAgICBjbGFzcyBB
bGxvd0FsbG9jYXRpb24gewogICAgIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mv
djgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcAppbmRleCAzZWQ5MjZjLi5hYTM2OGZm
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Q
cm94eS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9u
UHJveHkuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiU2hhcmVkV29ya2VyLmgiCiAj
aW5jbHVkZSAiU2hhcmVkV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgor
I2luY2x1ZGUgIlY4Q29uc29sZU1lc3NhZ2UuaCIKICNpbmNsdWRlICJWOERPTU1hcC5oIgogI2lu
Y2x1ZGUgIlY4RGVkaWNhdGVkV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIlY4UHJveHkuaCIK
QEAgLTU4LDYgKzU5LDI3IEBAIHN0YXRpYyB2b2lkIHJlcG9ydEZhdGFsRXJyb3JJblY4KGNvbnN0
IGNoYXIqIGxvY2F0aW9uLCBjb25zdCBjaGFyKiBtZXNzYWdlKQogICAgIENSQVNIKCk7CiB9CiAK
K3N0YXRpYyB2b2lkIHY4TWVzc2FnZUhhbmRsZXIodjg6OkhhbmRsZTx2ODo6TWVzc2FnZT4gbWVz
c2FnZSwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGRhdGEpCit7CisgICAgc3RhdGljIGJvb2wgaXNS
ZXBvcnRpbmdFeGNlcHRpb24gPSBmYWxzZTsKKyAgICAvLyBFeGNlcHRpb25zIHRoYXQgb2NjdXIg
aW4gZXJyb3IgaGFuZGxlciBzaG91bGQgYmUgaWdub3JlZCBzaW5jZSAgaW4gdGhhdCBjYXNlCisg
ICAgLy8gV29ya2VyQ29udGV4dDo6cmVwb3J0RXhjZXB0aW9uIHdpbGwgc2VuZCB0aGUgZXhjZXB0
aW9uIHRvIHRoZSB3b3JrZXIgb2JqZWN0LgorICAgIGlmIChpc1JlcG9ydGluZ0V4Y2VwdGlvbikK
KyAgICAgICAgcmV0dXJuOworICAgIGlzUmVwb3J0aW5nRXhjZXB0aW9uID0gdHJ1ZTsKKworICAg
IFN0cmluZyBlcnJvck1lc3NhZ2UgPSB0b1dlYkNvcmVTdHJpbmcobWVzc2FnZS0+R2V0KCkpOwor
ICAgIGludCBsaW5lTnVtYmVyID0gbWVzc2FnZS0+R2V0TGluZU51bWJlcigpOworICAgIFN0cmlu
ZyBzb3VyY2VVUkwgPSB0b1dlYkNvcmVTdHJpbmcobWVzc2FnZS0+R2V0U2NyaXB0UmVzb3VyY2VO
YW1lKCkpOworCisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IGdldFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICAvLyBEdXJpbmcgdGhlIGZyYW1lIHRlYXJkb3duLCB0
aGVyZSBtYXkgbm90IGJlIGEgdmFsaWQgY29udGV4dC4KKyAgICBpZiAoY29udGV4dCkKKyAgICAg
ICAgY29udGV4dC0+cmVwb3J0RXhjZXB0aW9uKGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291
cmNlVVJMKTsKKworICAgIGlzUmVwb3J0aW5nRXhjZXB0aW9uID0gZmFsc2U7Cit9CisKIFdvcmtl
ckNvbnRleHRFeGVjdXRpb25Qcm94eTo6V29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5KFdvcmtl
ckNvbnRleHQqIHdvcmtlckNvbnRleHQpCiAgICAgOiBtX3dvcmtlckNvbnRleHQod29ya2VyQ29u
dGV4dCkKICAgICAsIG1fcmVjdXJzaW9uKDApCkBAIC0xMjcsNiArMTQ5LDEyIEBAIHZvaWQgV29y
a2VyQ29udGV4dEV4ZWN1dGlvblByb3h5Ojppbml0Q29udGV4dElmTmVlZGVkKCkKICAgICBpZiAo
IW1fY29udGV4dC5Jc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIC8vIFNldHVwIHRo
ZSBzZWN1cml0eSBoYW5kbGVycyBhbmQgbWVzc2FnZSBsaXN0ZW5lci4gVGhpcyBvbmx5IGhhcwor
ICAgIC8vIHRvIGJlIGRvbmUgb25jZS4KKyAgICBzdGF0aWMgYm9vbCBpc1Y4SW5pdGlhbGl6ZWQg
PSBmYWxzZTsKKyAgICBpZiAoIWlzVjhJbml0aWFsaXplZCkKKyAgICAgICAgdjg6OlY4OjpBZGRN
ZXNzYWdlTGlzdGVuZXIoJnY4TWVzc2FnZUhhbmRsZXIpOworCiAgICAgLy8gQ3JlYXRlIGEgbmV3
IGVudmlyb25tZW50CiAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdFRlbXBsYXRlPiBnbG9i
YWxUZW1wbGF0ZTsKICAgICBtX2NvbnRleHQgPSB2ODo6Q29udGV4dDo6TmV3KDAsIGdsb2JhbFRl
bXBsYXRlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51271</attachid>
            <date>2010-03-22 02:16:19 -0700</date>
            <delta_ts>2010-03-22 02:29:50 -0700</delta_ts>
            <desc>patch</desc>
            <filename>worker-exception-reporting3.patch</filename>
            <type>text/plain</type>
            <size>10679</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjZGM2NmIzLi5jNDEzZGIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDMt
MTkgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCB0aGF0IHVuY2F1Z2h0IGV4
Y2VwdGlvbiB0aHJvd24gZnJvbSBzZXRUaW1lb3V0IGNhbGxiYWNrIGluIGEgV29ya2VyIGlzIHJl
cG9ydGVkIHRvIHRoZSB3b3JrZXIgb2JqZWN0LgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTE3MQorCisgICAgICAgICogZmFzdC93b3JrZXJzL3Jl
c291cmNlcy93b3JrZXItZXhjZXB0aW9uLWluLXRpbWVvdXQtY2FsbGJhY2suanM6IEFkZGVkLgor
ICAgICAgICAqIGZhc3Qvd29ya2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci5odG1sOgorCiAyMDEw
LTAzLTIxICBEbWl0cnkgR29yYmlrICA8c29ja2V0LmhAZ21haWwuY29tPgogCiAgICAgICAgIDxo
dHRwOi8vd2Via2l0Lm9yZy9iLzE0ODU4PiA8Y29sPiB3aWR0aCBpZ25vcmVkIHdoZW4gbm90IHRp
ZWQgdG8gYSBzaW5nbGUgY2VsbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJz
L3Jlc291cmNlcy93b3JrZXItZXhjZXB0aW9uLWluLXRpbWVvdXQtY2FsbGJhY2suanMgYi9MYXlv
dXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtlci1leGNlcHRpb24taW4tdGltZW91
dC1jYWxsYmFjay5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43N2JiZGI3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNlcy93
b3JrZXItZXhjZXB0aW9uLWluLXRpbWVvdXQtY2FsbGJhY2suanMKQEAgLTAsMCArMSwzIEBACitz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgIHRocm93ICJFeGNlcHRpb24gaW4gc2V0VGltZW91
dCBjYWxsYmFjayI7Cit9LCAwKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vy
cy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvd29y
a2Vycy93b3JrZXItc2NyaXB0LWVycm9yLWV4cGVjdGVkLnR4dAppbmRleCA5ZmIzY2MwLi5kNTM1
ZTdkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1l
cnJvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1z
Y3JpcHQtZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC04LDUgKzgsNiBAQCBQQVNTOiBvbmVycm9yIGlu
dm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6
IENhbid0CiBQQVNTOiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlw
dCBlcnJvciAnUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZvbycgYXQgbGlu
ZSA3LgogUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhIHNjcmlwdCB0aGF0IGhhcyBzY3JpcHQg
ZXJyb3IgJ1JlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBmb28nIGF0IGxpbmUg
Ny4KIFBBU1M6IG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSBXb3JrZXJHbG9iYWxTY29wZS5vbmVycm9y
OiBvbmVycm9yIGludm9rZWQgZm9yIGEgc2NyaXB0IHRoYXQgaGFzIHNjcmlwdCBlcnJvciAnUmVm
ZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZvbycgYXQgbGluZSA3LgorUEFTUzog
b25lcnJvciBpbnZva2VkIGZvciBhbiBleGNlcHRpb24gaW4gc2V0VGltZW91dCBjYWxsYmFjay4K
IERPTkUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1zY3Jp
cHQtZXJyb3IuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItc2NyaXB0LWVy
cm9yLmh0bWwKaW5kZXggMGMyZTdlMy4uYWQ5NmY3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC93b3JrZXJzL3dvcmtlci1zY3JpcHQtZXJyb3IuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3dvcmtlcnMvd29ya2VyLXNjcmlwdC1lcnJvci5odG1sCkBAIC0xNSw2ICsxNSw3IEBAIHZh
ciB0ZXN0Q2FzZXMgPSBbCiAgICAgInRlc3RTY3JpcHRFcnJvckJ1YmJsZWRBbmRIYW5kbGVkSW5X
b3JrZXIiLAogICAgICJ0ZXN0U2NyaXB0RXJyb3JCdWJibGVkQW5kUmVwb3J0ZWRUb1VzZXIiLAog
ICAgICJ0ZXN0U2NyaXB0RXJyb3JIYW5kbGVkIiwKKyAgICAidGVzdEV4Y2VwdGlvbkluVGltZW91
dENhbGxiYWNrIiwKIF07CiB2YXIgdGVzdEluZGV4ID0gMDsKIApAQCAtMTQwLDYgKzE0MSwyMSBA
QCBmdW5jdGlvbiB0ZXN0U2NyaXB0RXJyb3JIYW5kbGVkKCkKICAgICB9CiB9CiAKK2Z1bmN0aW9u
IHRlc3RFeGNlcHRpb25JblRpbWVvdXRDYWxsYmFjaygpCit7CisgICAgdHJ5IHsKKyAgICAgICAg
dmFyIHdvcmtlciA9IG5ldyBXb3JrZXIoInJlc291cmNlcy93b3JrZXItZXhjZXB0aW9uLWluLXRp
bWVvdXQtY2FsbGJhY2suanMiKTsKKyAgICAgICAgd29ya2VyLm9uZXJyb3IgPSBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIGxvZygiUEFTUzogb25lcnJvciBpbnZva2VkIGZvciBhbiBleGNlcHRp
b24gaW4gc2V0VGltZW91dCBjYWxsYmFjay4iKTsKKyAgICAgICAgICAgIHJ1bk5leHRUZXN0KCk7
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9IGNhdGNoIChleCkg
eworICAgICAgICBsb2coIkZBSUw6IHVuZXhwZWN0ZWQgZXhjZXB0aW9uICIgKyBleCk7CisgICAg
ICAgIHJ1bk5leHRUZXN0KCk7CisgICAgfQorfQorCiBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWU1OWNiYy4uMWY3ZjlmMiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxMC0wMy0xOSAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBI
YW5kbGUgd29ya2VyIGV4Y2VwdGlvbnMgaW4gVjhNZXNzYWdlSGFuZGxlciBsaWtlIGl0J3MgZG9u
ZSBpbiByZWd1bGFyIGRvY3VtZW50cy4gVGhpcyB3YXkgYWxsIHdvcmtlciBleGNlcHRpb25zIHdp
bGwgYmUgbG9nZ2VkIGluIHRoZSBjb25zb2xlIG5vdCBvbmx5IHRob3NlIHdoaWNoIGhhcHBlbiBp
biBldmVudCBsaXN0ZW5lcnMuIAorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zMTE3MQorCisgICAgICAgICogYmluZGluZ3MvdjgvVjhBYnN0cmFjdEV2
ZW50TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhBYnN0cmFjdEV2ZW50TGlzdGVu
ZXI6Omludm9rZUV2ZW50SGFuZGxlcik6IFJlbW92ZWQgZXhwbGljaXQgY2FsbCB0byByZXBvcnRF
eGNlcHRpb24uCisgICAgICAgICogYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwOiByZXBvcnRF
eGNlcHRpb24gZnVuY3Rpb24gd2FzIHJlbW92ZWQgc2luY2UgaXQncyBub3QgdXNlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L1Y4VXRpbGl0aWVzLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvV29ya2VyQ29udGV4
dEV4ZWN1dGlvblByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnY4TWVzc2FnZUhhbmRsZXIp
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5Ojppbml0Q29u
dGV4dElmTmVlZGVkKTogU2V0dXAgbWVzc2FnZSBoYW5kbGVyIHdoZW4gZmlyc3Qgd29ya2VyIGNv
bnRleHQgaXMgY3JlYXRlZC4KKwogMjAxMC0wMy0yMiAgTGVhbmRybyBQZXJlaXJhICA8bGVhbmRy
b0Bwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIu
Y3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEFic3RyYWN0RXZlbnRMaXN0ZW5lci5jcHAKaW5k
ZXggYmVhZGFiOS4uNmRjMmIyOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEFi
c3RyYWN0RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEFic3Ry
YWN0RXZlbnRMaXN0ZW5lci5jcHAKQEAgLTE0NSwxMSArMTQ1LDggQEAgdm9pZCBWOEFic3RyYWN0
RXZlbnRMaXN0ZW5lcjo6aW52b2tlRXZlbnRIYW5kbGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQKICAgICAgICAgaWYgKCF0cnlDYXRjaC5DYW5Db250aW51ZSgpKQogICAgICAgICAg
ICAgcmV0dXJuOwogCi0gICAgICAgIC8vIElmIGFuIGVycm9yIG9jY3VycyB3aGlsZSBoYW5kbGlu
ZyB0aGUgZXZlbnQsIGl0IHNob3VsZCBiZSByZXBvcnRlZC4KLSAgICAgICAgaWYgKHRyeUNhdGNo
Lkhhc0NhdWdodCgpKSB7Ci0gICAgICAgICAgICByZXBvcnRFeGNlcHRpb24oMCwgdHJ5Q2F0Y2gp
OwotICAgICAgICAgICAgdHJ5Q2F0Y2guUmVzZXQoKTsKLSAgICAgICAgfQorICAgICAgICAvLyBJ
ZiBhbiBlcnJvciBvY2N1cnMgd2hpbGUgaGFuZGxpbmcgdGhlIGV2ZW50LCBpdCBzaG91bGQgYmUg
cmVwb3J0ZWQgaW4gYSByZWd1bGFyIHdheS4KKyAgICAgICAgdHJ5Q2F0Y2guUmVzZXQoKTsKIAog
ICAgICAgICAvLyBSZXN0b3JlIHRoZSBvbGQgZXZlbnQuIFRoaXMgbXVzdCBiZSBkb25lIGZvciBh
bGwgZXhpdCBwYXRocyB0aHJvdWdoIHRoaXMgbWV0aG9kLgogICAgICAgICBpZiAoc2F2ZWRFdmVu
dC5Jc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVz
LmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwCmluZGV4IGM3MzE0ZjEu
LjAzNWI5ODMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3Bw
CisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwCkBAIC0xMjUsNyArMTI1
LDcgQEAgdm9pZCBuYXZpZ2F0ZUlmQWxsb3dlZChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVy
bCwgYm9vbCBsb2NrSGlzdG9yeSwgYm9vbCBsb2MKICAgICAgICAgZnJhbWUtPnJlZGlyZWN0U2No
ZWR1bGVyKCktPnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UodXJsLnN0cmluZygpLCBjYWxsaW5nRnJh
bWUtPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCksIGxvY2tIaXN0b3J5LCBsb2NrQmFja0Zv
cndhcmRMaXN0LCBwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSk7CiB9CiAKLVNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoU2NyaXB0U3RhdGUqIHNjcmlwdFN0
YXRlKQorU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
CiB7CiAjaWYgRU5BQkxFKFdPUktFUlMpCiAgICAgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5
KiBwcm94eSA9IFdvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eTo6cmV0cmlldmUoKTsKQEAgLTEz
Myw0NiArMTMzLDExIEBAIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGdldFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlKQogICAgICAgICByZXR1cm4gcHJveHkt
PndvcmtlckNvbnRleHQoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogI2VuZGlmCiAKLSAg
ICBGcmFtZSogZnJhbWU7Ci0gICAgaWYgKHNjcmlwdFN0YXRlKSB7Ci0gICAgICAgIHY4OjpIYW5k
bGVTY29wZSBoYW5kbGVTY29wZTsKLSAgICAgICAgZnJhbWUgPSBWOFByb3h5OjpyZXRyaWV2ZUZy
YW1lKHNjcmlwdFN0YXRlLT5jb250ZXh0KCkpOwotICAgIH0gZWxzZQotICAgICAgICBmcmFtZSA9
IFY4UHJveHk6OnJldHJpZXZlRnJhbWVGb3JDdXJyZW50Q29udGV4dCgpOwotCisgICAgRnJhbWUq
IGZyYW1lID0gVjhQcm94eTo6cmV0cmlldmVGcmFtZUZvckN1cnJlbnRDb250ZXh0KCk7CiAgICAg
aWYgKGZyYW1lKQogICAgICAgICByZXR1cm4gZnJhbWUtPmRvY3VtZW50KCktPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKTsKIAogICAgIHJldHVybiAwOwogfQogCi12b2lkIHJlcG9ydEV4Y2VwdGlv
bihTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGUsIHY4OjpUcnlDYXRjaCYgZXhjZXB0aW9uQ2F0Y2hl
cikKLXsKLSAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwotICAgIGludCBsaW5lTnVtYmVyID0gMDsK
LSAgICBTdHJpbmcgc291cmNlVVJMOwotCi0gICAgLy8gVGhlcmUgY2FuIGJlIGEgc2l0dWF0aW9u
IHRoYXQgYW4gZXhjZXB0aW9uIGlzIHRocm93biB3aXRob3V0IHNldHRpbmcgYSBtZXNzYWdlLgot
ICAgIHY4OjpMb2NhbDx2ODo6TWVzc2FnZT4gbWVzc2FnZSA9IGV4Y2VwdGlvbkNhdGNoZXIuTWVz
c2FnZSgpOwotICAgIGlmIChtZXNzYWdlLklzRW1wdHkoKSkgewotICAgICAgICB2ODo6TG9jYWw8
djg6OlN0cmluZz4gZXhjZXB0aW9uU3RyaW5nID0gZXhjZXB0aW9uQ2F0Y2hlci5FeGNlcHRpb24o
KS0+VG9TdHJpbmcoKTsKLSAgICAgICAgLy8gQ29udmVyc2lvbiBvZiB0aGUgZXhjZXB0aW9uIG9i
amVjdCB0byBzdHJpbmcgY2FuIGZhaWwgaWYgYW4KLSAgICAgICAgLy8gZXhjZXB0aW9uIGlzIHRo
cm93biBkdXJpbmcgY29udmVyc2lvbi4KLSAgICAgICAgaWYgKCFleGNlcHRpb25TdHJpbmcuSXNF
bXB0eSgpKQotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gdG9XZWJDb3JlU3RyaW5nKGV4Y2Vw
dGlvblN0cmluZyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZXJyb3JNZXNzYWdlID0gdG9XZWJD
b3JlU3RyaW5nKG1lc3NhZ2UtPkdldCgpKTsKLSAgICAgICAgbGluZU51bWJlciA9IG1lc3NhZ2Ut
PkdldExpbmVOdW1iZXIoKTsKLSAgICAgICAgc291cmNlVVJMID0gdG9XZWJDb3JlU3RyaW5nKG1l
c3NhZ2UtPkdldFNjcmlwdFJlc291cmNlTmFtZSgpKTsKLSAgICB9Ci0KLSAgICAvLyBEbyBub3Qg
cmVwb3J0IHRoZSBleGNlcHRpb24gaWYgdGhlIGN1cnJlbnQgZXhlY3V0aW9uIGNvbnRleHQgaXMg
RG9jdW1lbnQgYmVjYXVzZSB3ZSBkbyBub3Qgd2FudCB0byBsZWFkIHRvIGR1cGxpY2F0ZSBlcnJv
ciBtZXNzYWdlcyBpbiB0aGUgY29uc29sZS4KLSAgICAvLyBGSVhNRSAoMzExNzEpOiBuZWVkIGJl
dHRlciBkZXNpZ24gdG8gc29sdmUgdGhlIGR1cGxpY2F0ZSBlcnJvciBtZXNzYWdlIHJlcG9ydGlu
ZyBwcm9ibGVtLgotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBnZXRTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KHNjcmlwdFN0YXRlKTsKLSAgICAvLyBEdXJpbmcgdGhlIGZyYW1l
IHRlYXJkb3duLCB0aGVyZSBtYXkgbm90IGJlIGEgdmFsaWQgY29udGV4dC4KLSAgICBpZiAoY29u
dGV4dCAmJiAhY29udGV4dC0+aXNEb2N1bWVudCgpKQotICAgICAgICBjb250ZXh0LT5yZXBvcnRF
eGNlcHRpb24oZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOwotICAgIGV4Y2Vw
dGlvbkNhdGNoZXIuUmVzZXQoKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFV0aWxpdGllcy5oIGIvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOFV0aWxpdGllcy5oCmluZGV4IDk0NDgyM2EuLmNiZTdhN2IgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4VXRpbGl0aWVzLmgKQEAgLTU0LDEyICs1NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBLVVJMIGNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgcmVsYXRpdmVVUkwpOwogICAgIHZvaWQg
bmF2aWdhdGVJZkFsbG93ZWQoRnJhbWUqLCBjb25zdCBLVVJMJiwgYm9vbCBsb2NrSGlzdG9yeSwg
Ym9vbCBsb2NrQmFja0ZvcndhcmRMaXN0KTsKIAotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoU2NyaXB0U3RhdGUqKTsKLSAgICBpbmxpbmUgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIHsKLSAgICAg
ICAgcmV0dXJuIGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoMCk7Ci0gICAgfQotCi0gICAgdm9p
ZCByZXBvcnRFeGNlcHRpb24oU2NyaXB0U3RhdGUqLCB2ODo6VHJ5Q2F0Y2gmKTsKKyAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAKICAgICBj
bGFzcyBBbGxvd0FsbG9jYXRpb24gewogICAgIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcCBiL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcAppbmRleCAzZWQ5MjZjLi5j
MTdlNzg1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVj
dXRpb25Qcm94eS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhl
Y3V0aW9uUHJveHkuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiU2hhcmVkV29ya2Vy
LmgiCiAjaW5jbHVkZSAiU2hhcmVkV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIlY4QmluZGlu
Zy5oIgorI2luY2x1ZGUgIlY4Q29uc29sZU1lc3NhZ2UuaCIKICNpbmNsdWRlICJWOERPTU1hcC5o
IgogI2luY2x1ZGUgIlY4RGVkaWNhdGVkV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIlY4UHJv
eHkuaCIKQEAgLTU4LDYgKzU5LDI2IEBAIHN0YXRpYyB2b2lkIHJlcG9ydEZhdGFsRXJyb3JJblY4
KGNvbnN0IGNoYXIqIGxvY2F0aW9uLCBjb25zdCBjaGFyKiBtZXNzYWdlKQogICAgIENSQVNIKCk7
CiB9CiAKK3N0YXRpYyB2b2lkIHY4TWVzc2FnZUhhbmRsZXIodjg6OkhhbmRsZTx2ODo6TWVzc2Fn
ZT4gbWVzc2FnZSwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGRhdGEpCit7CisgICAgc3RhdGljIGJv
b2wgaXNSZXBvcnRpbmdFeGNlcHRpb24gPSBmYWxzZTsKKyAgICAvLyBFeGNlcHRpb25zIHRoYXQg
b2NjdXIgaW4gZXJyb3IgaGFuZGxlciBzaG91bGQgYmUgaWdub3JlZCBzaW5jZSAgaW4gdGhhdCBj
YXNlCisgICAgLy8gV29ya2VyQ29udGV4dDo6cmVwb3J0RXhjZXB0aW9uIHdpbGwgc2VuZCB0aGUg
ZXhjZXB0aW9uIHRvIHRoZSB3b3JrZXIgb2JqZWN0LgorICAgIGlmIChpc1JlcG9ydGluZ0V4Y2Vw
dGlvbikKKyAgICAgICAgcmV0dXJuOworICAgIGlzUmVwb3J0aW5nRXhjZXB0aW9uID0gdHJ1ZTsK
KworICAgIC8vIER1cmluZyB0aGUgZnJhbWUgdGVhcmRvd24sIHRoZXJlIG1heSBub3QgYmUgYSB2
YWxpZCBjb250ZXh0LgorICAgIGlmIChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0g
Z2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSB7CisgICAgICAgIFN0cmluZyBlcnJvck1lc3Nh
Z2UgPSB0b1dlYkNvcmVTdHJpbmcobWVzc2FnZS0+R2V0KCkpOworICAgICAgICBpbnQgbGluZU51
bWJlciA9IG1lc3NhZ2UtPkdldExpbmVOdW1iZXIoKTsKKyAgICAgICAgU3RyaW5nIHNvdXJjZVVS
TCA9IHRvV2ViQ29yZVN0cmluZyhtZXNzYWdlLT5HZXRTY3JpcHRSZXNvdXJjZU5hbWUoKSk7Cisg
ICAgICAgIGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIs
IHNvdXJjZVVSTCk7CisgICAgfQorCisgICAgaXNSZXBvcnRpbmdFeGNlcHRpb24gPSBmYWxzZTsK
K30KKwogV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5OjpXb3JrZXJDb250ZXh0RXhlY3V0aW9u
UHJveHkoV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4dCkKICAgICA6IG1fd29ya2VyQ29udGV4
dCh3b3JrZXJDb250ZXh0KQogICAgICwgbV9yZWN1cnNpb24oMCkKQEAgLTEyNyw2ICsxNDgsMTIg
QEAgdm9pZCBXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHk6OmluaXRDb250ZXh0SWZOZWVkZWQo
KQogICAgIGlmICghbV9jb250ZXh0LklzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
Ly8gU2V0dXAgdGhlIHNlY3VyaXR5IGhhbmRsZXJzIGFuZCBtZXNzYWdlIGxpc3RlbmVyLiBUaGlz
IG9ubHkgaGFzCisgICAgLy8gdG8gYmUgZG9uZSBvbmNlLgorICAgIHN0YXRpYyBib29sIGlzVjhJ
bml0aWFsaXplZCA9IGZhbHNlOworICAgIGlmICghaXNWOEluaXRpYWxpemVkKQorICAgICAgICB2
ODo6Vjg6OkFkZE1lc3NhZ2VMaXN0ZW5lcigmdjhNZXNzYWdlSGFuZGxlcik7CisKICAgICAvLyBD
cmVhdGUgYSBuZXcgZW52aXJvbm1lbnQKICAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0VGVt
cGxhdGU+IGdsb2JhbFRlbXBsYXRlOwogICAgIG1fY29udGV4dCA9IHY4OjpDb250ZXh0OjpOZXco
MCwgZ2xvYmFsVGVtcGxhdGUpOwo=
</data>
<flag name="review"
          id="34493"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>