<?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>93521</bug_id>
          
          <creation_ts>2012-08-08 14:18:10 -0700</creation_ts>
          <short_desc>ASSERT(m_workerContext-&gt;isSharedWorkerContext()) in WorkerScriptController::initScript() when providing Content Security Policy to dedicated worker.</short_desc>
          <delta_ts>2012-08-08 17:16:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Thomas Sepez">tsepez</reporter>
          <assigned_to name="Thomas Sepez">tsepez</assigned_to>
          <cc>abarth</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>690723</commentid>
    <comment_count>0</comment_count>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2012-08-08 14:18:10 -0700</bug_when>
    <thetext>The assert is triggered because the m_workerContext is not a dedicated worker and is also not a shared worker.  Its essentially still the base class since the construction of the derived class has not yet finished -- a C++ gotcha as far as I know.

(gdb) i stack
#0  0x00000001022608e7 in WebCore::WorkerScriptController::initScript (this=0x108e2cb60) at /Volumes/MacintoshHD2/w9/WebKit/Source/WebCore/bindings/js/WorkerScriptController.cpp:98
#1  0x0000000102729ef6 in WebCore::WorkerScriptController::initScriptIfNeeded (this=0x108e2cb60) at WorkerScriptController.h:86
#2  0x0000000102260bd1 in WebCore::WorkerScriptController::disableEval (this=0x108e2cb60) at /Volumes/MacintoshHD2/w9/WebKit/Source/WebCore/bindings/js/WorkerScriptController.cpp:193
#3  0x000000010223b732 in WebCore::WorkerContext::disableEval (this=0x108e3f160) at /Volumes/MacintoshHD2/w9/WebKit/Source/WebCore/workers/WorkerContext.cpp:148
#4  0x0000000101a04b35 in WebCore::ContentSecurityPolicy::didReceiveHeader (this=0x109b1b1d0, header=@0x12cb4f898, type=WebCore::ContentSecurityPolicy::EnforcePolicy) at /Volumes/MacintoshHD2/w9/WebKit/Source/WebCore/page/ContentSecurityPolicy.cpp:1072
#5  0x000000010223c609 in WebCore::WorkerContext::WorkerContext (this=0x108e3f160, url=@0x12cb4f840, userAgent=@0x12cb4f878, settings=@0x135180c50, thread=0x12cb4eb00, policy=@0x12cb4f898, contentSecurityPolicyType=WebCore::ContentSecurityPolicy::EnforcePolicy) at /Volumes/MacintoshHD2/w9/WebKit/Source/WebCore/workers/WorkerContext.cpp:102
#6  0x0000000101bb7fee in WebCore::DedicatedWorkerContext::DedicatedWorkerContext (this=0x108e3f160, url=@0x12cb4f840, userAgent=@0x12cb4f878, settings=@0x135180cc0, thread=0x12cb4eb00, contentSecurityPolicy=@0x12cb4f898, contentSecurityPolicyType=WebCore::ContentSecurityPolicy::EnforcePolicy) at /Volumes/MacintoshHD2/w9/WebKit/Source/WebCore/workers/DedicatedWorkerContext.cpp:45
#7  0x0000000101bb9a2e in WebCore::DedicatedWorkerContext::create (url=@0x12cb4f840, userAgent=@0x12cb4f878, settings=@0x135180d50, thread=0x12cb4eb00, contentSecurityPolicy=@0x12cb4f898, contentSecurityPolicyType=WebCore::ContentSecurityPolicy::EnforcePolicy) at DedicatedWorkerContext.h:49
#8  0x0000000101bb94df in WebCore::DedicatedWorkerThread::createWorkerContext (this=0x12cb4eb00, url=@0x12cb4f840, userAgent=@0x12cb4f878, settings=@0x135180e20, contentSecurityPolicy=@0x12cb4f898, contentSecurityPolicyType=WebCore::ContentSecurityPolicy::EnforcePolicy) at /Volumes/MacintoshHD2/w9/WebKit/Source/WebCore/workers/DedicatedWorkerThread.cpp:59
#9  0x0000000102276072 in WebCore::WorkerThread::workerThread (this=0x12cb4eb00) at /Volumes/MacintoshHD2/w9/WebKit/Source/WebCore/workers/WorkerThread.cpp:149
#10 0x000000010227627b in WebCore::WorkerThread::workerThreadStart (thread=0x12cb4eb00) at /Volumes/MacintoshHD2/w9/WebKit/Source/WebCore/workers/WorkerThread.cpp:142
#11 0x00000001005aa76c in WTF::threadEntryPoint (contextData=0x12cb50730) at /Volumes/MacintoshHD2/w9/WebKit/Source/WTF/wtf/Threading.cpp:69
#12 0x00000001005ab34f in WTF::wtfThreadEntryPoint (param=0x12cb4c930) at /Volumes/MacintoshHD2/w9/WebKit/Source/WTF/wtf/ThreadingPthreads.cpp:157
#13 0x00007fff82cbafd6 in _pthread_start ()
#14 0x00007fff82cbae89 in thread_start ()

The test case will be attached shortly, though there are other issues which prevent it from passing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690732</commentid>
    <comment_count>1</comment_count>
      <attachid>157294</attachid>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2012-08-08 14:24:40 -0700</bug_when>
    <thetext>Created attachment 157294
Test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690739</commentid>
    <comment_count>2</comment_count>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2012-08-08 14:27:29 -0700</bug_when>
    <thetext>Added testcase, derived from work on  https://bugs.webkit.org/show_bug.cgi?id=93392 hence the naming though for the purposes of this bug, the settimeout part doesn&apos;t get reached and is of no concern.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690875</commentid>
    <comment_count>3</comment_count>
      <attachid>157323</attachid>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2012-08-08 16:13:58 -0700</bug_when>
    <thetext>Created attachment 157323
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690882</commentid>
    <comment_count>4</comment_count>
      <attachid>157323</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-08 16:17:50 -0700</bug_when>
    <thetext>Comment on attachment 157323
Proposed patch.

Can we add an ASSERT to the base class to make sure applyContentSecurityPolicyFromString is called?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690939</commentid>
    <comment_count>5</comment_count>
      <attachid>157336</attachid>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2012-08-08 16:55:44 -0700</bug_when>
    <thetext>Created attachment 157336
Patch, add assert.

Sure.  We&apos;ll postpone the creation of the CSP object until the new method is called, then we&apos;ll assert that there&apos;s a CSP.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690956</commentid>
    <comment_count>6</comment_count>
      <attachid>157336</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-08 17:02:35 -0700</bug_when>
    <thetext>Comment on attachment 157336
Patch, add assert.

Rockin&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690978</commentid>
    <comment_count>7</comment_count>
      <attachid>157336</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-08 17:16:54 -0700</bug_when>
    <thetext>Comment on attachment 157336
Patch, add assert.

Clearing flags on attachment: 157336

Committed r125120: &lt;http://trac.webkit.org/changeset/125120&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690979</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-08 17:16:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157294</attachid>
            <date>2012-08-08 14:24:40 -0700</date>
            <delta_ts>2012-08-08 16:13:58 -0700</delta_ts>
            <desc>Test case</desc>
            <filename>test_93521.txt</filename>
            <type>text/plain</type>
            <size>1548</size>
            <attacher name="Thomas Sepez">tsepez</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L3dvcmtlci1zZXQtdGltZW91dC1ibG9ja2VkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvd29ya2VyLXNl
dC10aW1lb3V0LWJsb2NrZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3dvcmtlci1zZXQtdGltZW91dC1i
bG9ja2VkLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IlgtV2ViS2l0LUNTUCIgY29udGVu
dD0ic2NyaXB0LXNyYyAnc2VsZicgJ3Vuc2FmZS1pbmxpbmUnIi8+Cis8c2NyaXB0PgoraWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdD4KK3RyeSB7CisgICAgdmFyIHdvcmtlciA9IG5ldyBXb3JrZXIoJ2h0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3dvcmtl
ci1zZXQtdGltZW91dC5qcycpOworICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZXZl
bnQpIHsKKyAgICAgICAgYWxlcnQoZXZlbnQuZGF0YSk7CisgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH07Cit9
IGNhdGNoIChlKSB7CisgICAgYWxlcnQoZSk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvcmVzb3VyY2VzL3dvcmtlci1zZXQtdGltZW91dC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9y
ZXNvdXJjZXMvd29ya2VyLXNldC10aW1lb3V0LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3dv
cmtlci1zZXQtdGltZW91dC5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3IEBACit2YXIgaWQg
PSAwOwordHJ5IHsKKyAgICBpZCA9IDE3OworICAgIHBvc3RNZXNzYWdlKCJzZXRUaW1lb3V0IGFs
bG93ZWQiKTsKK30gY2F0Y2goZSkgeworICAgIHBvc3RNZXNzYWdlKCJzZXRUaW1lb3V0IGJsb2Nr
ZWQiKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157323</attachid>
            <date>2012-08-08 16:13:58 -0700</date>
            <delta_ts>2012-08-08 16:55:44 -0700</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>patch_93521.txt</filename>
            <type>text/plain</type>
            <size>13523</size>
            <attacher name="Thomas Sepez">tsepez</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNTEwMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA4LTA4ICBUb20gU2Vw
ZXogIDx0c2VwZXpAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEF2b2lkIEFTU0VSVChtX3dvcmtl
ckNvbnRleHQtPmlzU2hhcmVkV29ya2VyQ29udGV4dCgpKSBpbiBXb3JrZXJTY3JpcHRDb250cm9s
bGVyOjppbml0U2NyaXB0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTkzNTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ2hhbmdlcyBXb3JrZXJDb250ZXh0IGFuZCBpdHMgc3ViY2xhc3NlcyBzbyB0aGF0
IHdlIGRvIG5vdCBjYWxsIGZ1bmN0aW9ucyB0aGF0IHJlbHkgdXBvbiBzdWJjbGFzcworICAgICAg
ICB2aXJ0dWFsIG1ldGhvZHMgZnJvbSB0aGUgc3VwZXJjbGFzcyBjb25zdHJ1Y3Rvci4KKworICAg
ICAgICBUZXN0OiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS93b3Jr
ZXItc2V0LXRpbWVvdXQtYmxvY2tlZC5odG1sCisKKyAgICAgICAgKiB3b3JrZXJzL0RlZGljYXRl
ZFdvcmtlckNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpEZWRpY2F0ZWRXb3JrZXJDb250ZXh0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVk
aWNhdGVkV29ya2VyQ29udGV4dDo6RGVkaWNhdGVkV29ya2VyQ29udGV4dCk6CisgICAgICAgICog
d29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJDb250ZXh0Lmg6CisgICAgICAgIChEZWRpY2F0ZWRXb3Jr
ZXJDb250ZXh0KToKKyAgICAgICAgKiB3b3JrZXJzL1NoYXJlZFdvcmtlckNvbnRleHQuY3BwOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRXb3JrZXJDb250ZXh0
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkV29ya2VyQ29udGV4dDo6U2hhcmVk
V29ya2VyQ29udGV4dCk6CisgICAgICAgICogd29ya2Vycy9TaGFyZWRXb3JrZXJDb250ZXh0Lmg6
CisgICAgICAgIChTaGFyZWRXb3JrZXJDb250ZXh0KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtl
ckNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dDo6V29ya2VyQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0OjphcHBseUNvbnRlbnRTZWN1
cml0eVBvbGljeUZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJDb250ZXh0Lmg6CisgICAgICAgIChXb3JrZXJDb250ZXh0KToKKwogMjAxMi0w
OC0wOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBB
dm9pZCBiYWNraW5nIHN0b3JlIG9uIGxheWVycyBjcmVhdGVkIGZvciBDb3JlQW5pbWF0aW9uIHBs
dWdpbnMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyQ29udGV4
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3Jr
ZXJDb250ZXh0LmNwcAkocmV2aXNpb24gMTI1MTAzKQorKysgU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9EZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsOCArNDEs
MTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1EZWRpY2F0ZWRXb3JrZXJDb250ZXh0OjpE
ZWRpY2F0ZWRXb3JrZXJDb250ZXh0KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2Vy
QWdlbnQsIFBhc3NPd25QdHI8R3JvdXBTZXR0aW5ncz4gc2V0dGluZ3MsIERlZGljYXRlZFdvcmtl
clRocmVhZCogdGhyZWFkLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29u
dGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUp
Ci0gICAgOiBXb3JrZXJDb250ZXh0KHVybCwgdXNlckFnZW50LCBzZXR0aW5ncywgdGhyZWFkLCBj
b250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpCisvLyBzdGF0
aWMKK1Bhc3NSZWZQdHI8RGVkaWNhdGVkV29ya2VyQ29udGV4dD4gRGVkaWNhdGVkV29ya2VyQ29u
dGV4dDo6Y3JlYXRlKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFBh
c3NPd25QdHI8R3JvdXBTZXR0aW5ncz4gc2V0dGluZ3MsIERlZGljYXRlZFdvcmtlclRocmVhZCog
dGhyZWFkLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3Vy
aXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpCit7CisgICAg
UmVmUHRyPERlZGljYXRlZFdvcmtlckNvbnRleHQ+IGNvbnRleHQgPSBhZG9wdFJlZihuZXcgRGVk
aWNhdGVkV29ya2VyQ29udGV4dCh1cmwsIHVzZXJBZ2VudCwgc2V0dGluZ3MsIHRocmVhZCkpOwor
ICAgIGNvbnRleHQtPmFwcGx5Q29udGVudFNlY3VyaXR5UG9saWN5RnJvbVN0cmluZyhjb250ZW50
U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpOworICAgIHJldHVybiBj
b250ZXh0LnJlbGVhc2UoKTsKK30KKworRGVkaWNhdGVkV29ya2VyQ29udGV4dDo6RGVkaWNhdGVk
V29ya2VyQ29udGV4dChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBQ
YXNzT3duUHRyPEdyb3VwU2V0dGluZ3M+IHNldHRpbmdzLCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQq
IHRocmVhZCkKKyAgICA6IFdvcmtlckNvbnRleHQodXJsLCB1c2VyQWdlbnQsIHNldHRpbmdzLCB0
aHJlYWQpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29y
a2VyQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNh
dGVkV29ya2VyQ29udGV4dC5oCShyZXZpc2lvbiAxMjUxMDMpCisrKyBTb3VyY2UvV2ViQ29yZS93
b3JrZXJzL0RlZGljYXRlZFdvcmtlckNvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsMTAg
KzQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIERlZGljYXRlZFdvcmtlckNv
bnRleHQgOiBwdWJsaWMgV29ya2VyQ29udGV4dCB7CiAgICAgcHVibGljOgogICAgICAgICB0eXBl
ZGVmIFdvcmtlckNvbnRleHQgQmFzZTsKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RGVkaWNh
dGVkV29ya2VyQ29udGV4dD4gY3JlYXRlKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIFBhc3NPd25QdHI8R3JvdXBTZXR0aW5ncz4gc2V0dGluZ3MsIERlZGljYXRlZFdv
cmtlclRocmVhZCogdGhyZWFkLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwg
Q29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5
cGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGVkaWNhdGVk
V29ya2VyQ29udGV4dCh1cmwsIHVzZXJBZ2VudCwgc2V0dGluZ3MsIHRocmVhZCwgY29udGVudFNl
Y3VyaXR5UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKSk7Ci0gICAgICAgIH0KKyAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RGVkaWNhdGVkV29ya2VyQ29udGV4dD4gY3JlYXRlKGNv
bnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgUGFzc093blB0cjxHcm91cFNldHRp
bmdzPiwgRGVkaWNhdGVkV29ya2VyVGhyZWFkKiwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJp
dHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJp
dHlQb2xpY3lUeXBlKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNEZWRpY2F0ZWRXb3JrZXJD
b250ZXh0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCkBAIC02Niw3ICs2Myw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQqIHRocmVhZCgp
OwogICAgIHByaXZhdGU6Ci0gICAgICAgIERlZGljYXRlZFdvcmtlckNvbnRleHQoY29uc3QgS1VS
TCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBQYXNzT3duUHRyPEdyb3VwU2V0dGluZ3M+LCBE
ZWRpY2F0ZWRXb3JrZXJUaHJlYWQqLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGlj
eSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlKTsKKyAgICAgICAgRGVkaWNhdGVk
V29ya2VyQ29udGV4dChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFBhc3NP
d25QdHI8R3JvdXBTZXR0aW5ncz4sIERlZGljYXRlZFdvcmtlclRocmVhZCopOwogICAgIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hh
cmVkV29ya2VyQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9TaGFyZWRXb3JrZXJDb250ZXh0LmNwcAkocmV2aXNpb24gMTI1MTAzKQorKysgU291cmNlL1dl
YkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTAsOCArNTAsMTYgQEAgUGFzc1JlZlB0cjxNZXNzYWdlRXZlbnQ+IGNyZWF0ZUNvbm5lY3RFdgog
ICAgIHJldHVybiBldmVudC5yZWxlYXNlKCk7CiB9CiAKLVNoYXJlZFdvcmtlckNvbnRleHQ6OlNo
YXJlZFdvcmtlckNvbnRleHQoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBLVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgdXNlckFnZW50LCBQYXNzT3duUHRyPEdyb3VwU2V0dGluZ3M+IHNldHRpbmdz
LCBTaGFyZWRXb3JrZXJUaHJlYWQqIHRocmVhZCwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJp
dHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJp
dHlQb2xpY3lUeXBlKQotICAgIDogV29ya2VyQ29udGV4dCh1cmwsIHVzZXJBZ2VudCwgc2V0dGlu
Z3MsIHRocmVhZCwgY29udGVudFNlY3VyaXR5UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xpY3lU
eXBlKQorLy8gc3RhdGljCitQYXNzUmVmUHRyPFNoYXJlZFdvcmtlckNvbnRleHQ+IFNoYXJlZFdv
cmtlckNvbnRleHQ6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IEtVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFBhc3NPd25QdHI8R3JvdXBTZXR0aW5ncz4gc2V0dGlu
Z3MsIFNoYXJlZFdvcmtlclRocmVhZCogdGhyZWFkLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1
cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1
cml0eVBvbGljeVR5cGUpCit7CisgICAgUmVmUHRyPFNoYXJlZFdvcmtlckNvbnRleHQ+IGNvbnRl
eHQgPSBhZG9wdFJlZihuZXcgU2hhcmVkV29ya2VyQ29udGV4dChuYW1lLCB1cmwsIHVzZXJBZ2Vu
dCwgc2V0dGluZ3MsIHRocmVhZCkpOworICAgIGNvbnRleHQtPmFwcGx5Q29udGVudFNlY3VyaXR5
UG9saWN5RnJvbVN0cmluZyhjb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBv
bGljeVR5cGUpOworICAgIHJldHVybiBjb250ZXh0LnJlbGVhc2UoKTsKK30KKworU2hhcmVkV29y
a2VyQ29udGV4dDo6U2hhcmVkV29ya2VyQ29udGV4dChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFBhc3NPd25QdHI8R3JvdXBTZXR0
aW5ncz4gc2V0dGluZ3MsIFNoYXJlZFdvcmtlclRocmVhZCogdGhyZWFkKQorICAgIDogV29ya2Vy
Q29udGV4dCh1cmwsIHVzZXJBZ2VudCwgc2V0dGluZ3MsIHRocmVhZCkKICAgICAsIG1fbmFtZShu
YW1lKQogewogfQpJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJDb250
ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJD
b250ZXh0LmgJKHJldmlzaW9uIDEyNTEwMykKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hh
cmVkV29ya2VyQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCwxMCArNDQsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgU2hhcmVkV29ya2VyQ29udGV4dCA6IHB1YmxpYyBX
b3JrZXJDb250ZXh0IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgV29ya2VyQ29udGV4
dCBCYXNlOwotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRXb3JrZXJDb250ZXh0PiBj
cmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
dXNlckFnZW50LCBQYXNzT3duUHRyPEdyb3VwU2V0dGluZ3M+IHNldHRpbmdzLCBTaGFyZWRXb3Jr
ZXJUaHJlYWQqIHRocmVhZCwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENv
bnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBl
KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNoYXJlZFdvcmtl
ckNvbnRleHQobmFtZSwgdXJsLCB1c2VyQWdlbnQsIHNldHRpbmdzLCB0aHJlYWQsIGNvbnRlbnRT
ZWN1cml0eVBvbGljeSwgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSkpOwotICAgICAgICB9Cisg
ICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZFdvcmtlckNvbnRleHQ+IGNyZWF0ZShjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgUGFz
c093blB0cjxHcm91cFNldHRpbmdzPiwgU2hhcmVkV29ya2VyVGhyZWFkKiwgY29uc3QgU3RyaW5n
JiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlw
ZSBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKTsKICAgICAgICAgdmlydHVhbCB+U2hhcmVkV29y
a2VyQ29udGV4dCgpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1NoYXJlZFdvcmtlckNvbnRl
eHQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CkBAIC02MSw4ICs1OCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgICAgICBTaGFyZWRXb3JrZXJUaHJlYWQqIHRocmVhZCgpOwogICAgIHBy
aXZhdGU6Ci0gICAgICAgIFNoYXJlZFdvcmtlckNvbnRleHQoY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFBhc3NPd25QdHI8R3JvdXBTZXR0
aW5ncz4sIFNoYXJlZFdvcmtlclRocmVhZCosIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5
UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUpOwotCisgICAgICAgIFNo
YXJlZFdvcmtlckNvbnRleHQoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBLVVJMJiwgY29uc3Qg
U3RyaW5nJiB1c2VyQWdlbnQsIFBhc3NPd25QdHI8R3JvdXBTZXR0aW5ncz4sIFNoYXJlZFdvcmtl
clRocmVhZCopOwogICAgICAgICB2aXJ0dWFsIHZvaWQgbG9nRXhjZXB0aW9uVG9Db25zb2xlKGNv
bnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgaW50IGxp
bmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CiAKICAgICAgICAgU3RyaW5n
IG1fbmFtZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcAko
cmV2aXNpb24gMTI1MTAzKQorKysgU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBib29sIGlzQ2xlYW51cFRhc2soKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiB9OwogCi1Xb3Jr
ZXJDb250ZXh0OjpXb3JrZXJDb250ZXh0KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIFBhc3NPd25QdHI8R3JvdXBTZXR0aW5ncz4gc2V0dGluZ3MsIFdvcmtlclRocmVh
ZCogdGhyZWFkLCBjb25zdCBTdHJpbmcmIHBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpI
ZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpCitXb3JrZXJDb250ZXh0OjpXb3Jr
ZXJDb250ZXh0KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFBhc3NP
d25QdHI8R3JvdXBTZXR0aW5ncz4gc2V0dGluZ3MsIFdvcmtlclRocmVhZCogdGhyZWFkKQogICAg
IDogbV91cmwodXJsKQogICAgICwgbV91c2VyQWdlbnQodXNlckFnZW50KQogICAgICwgbV9ncm91
cFNldHRpbmdzKHNldHRpbmdzKQpAQCAtOTksNyArOTksNiBAQCBXb3JrZXJDb250ZXh0OjpXb3Jr
ZXJDb250ZXh0KGNvbnN0IEtVUkwmCiB7CiAgICAgc2V0U2VjdXJpdHlPcmlnaW4oU2VjdXJpdHlP
cmlnaW46OmNyZWF0ZSh1cmwpKTsKICAgICBzZXRDb250ZW50U2VjdXJpdHlQb2xpY3koQ29udGVu
dFNlY3VyaXR5UG9saWN5OjpjcmVhdGUodGhpcykpOwotICAgIGNvbnRlbnRTZWN1cml0eVBvbGlj
eSgpLT5kaWRSZWNlaXZlSGVhZGVyKHBvbGljeSwgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSk7
CiB9CiAKIFdvcmtlckNvbnRleHQ6On5Xb3JrZXJDb250ZXh0KCkKQEAgLTExMyw2ICsxMTIsMTEg
QEAgV29ya2VyQ29udGV4dDo6fldvcmtlckNvbnRleHQoKQogICAgIHRocmVhZCgpLT53b3JrZXJS
ZXBvcnRpbmdQcm94eSgpLndvcmtlckNvbnRleHREZXN0cm95ZWQoKTsKIH0KIAordm9pZCBXb3Jr
ZXJDb250ZXh0OjphcHBseUNvbnRlbnRTZWN1cml0eVBvbGljeUZyb21TdHJpbmcoY29uc3QgU3Ry
aW5nJiBwb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2Vj
dXJpdHlQb2xpY3lUeXBlKQoreworICAgIGNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kaWRSZWNl
aXZlSGVhZGVyKHBvbGljeSwgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSk7Cit9CisKIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIFdvcmtlckNvbnRleHQ6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSBjb25zdAogewogICAgIHJldHVybiBjb25zdF9jYXN0PFdvcmtlckNvbnRleHQqPih0aGlzKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCShyZXZpc2lvbiAxMjUx
MDMpCisrKyBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaAkod29ya2luZyBj
b3B5KQpAQCAtMTM5LDcgKzEzOSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9p
ZCBub3RpZnlPYnNlcnZlcnNPZlN0b3AoKTsKIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgV29y
a2VyQ29udGV4dChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFBhc3NPd25Q
dHI8R3JvdXBTZXR0aW5ncz4sIFdvcmtlclRocmVhZCosIGNvbnN0IFN0cmluZyYgY29udGVudFNl
Y3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUpOworICAgICAg
ICBXb3JrZXJDb250ZXh0KGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgUGFz
c093blB0cjxHcm91cFNldHRpbmdzPiwgV29ya2VyVGhyZWFkKik7CisgICAgICAgIHZvaWQgYXBw
bHlDb250ZW50U2VjdXJpdHlQb2xpY3lGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgY29udGVudFNl
Y3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUpOwogCiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJv
ck1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBpbnQgbGluZU51bWJlciwgUGFzc1Jl
ZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKICAgICAgICAgdm9pZCBhZGRNZXNzYWdlVG9Xb3JrZXJD
b25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1i
ZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjUx
MDMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NCBAQAorMjAxMi0wOC0wOCAgVG9tIFNlcGV6ICA8dHNlcGV6QGNocm9taXVtLm9yZz4KKworICAg
ICAgICBBdm9pZCBBU1NFUlQobV93b3JrZXJDb250ZXh0LT5pc1NoYXJlZFdvcmtlckNvbnRleHQo
KSkgaW4gV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdCgpCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzUyMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3dvcmtlci1zZXQtdGltZW91dC5qczogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
d29ya2VyLXNldC10aW1lb3V0LWJsb2NrZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS93b3JrZXItc2V0LXRp
bWVvdXQtYmxvY2tlZC5odG1sOiBBZGRlZC4KKwogMjAxMi0wOC0wOCAgRGVhbiBKYWNrc29uICA8
ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjEyNDQxNik6IGZhc3QvZm9y
bXMvYmFzaWMtc2VsZWN0cy5odG1sIGZhaWxpbmcgb24gTGlvbiBEZWJ1ZyBUZXN0cwpJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvd29y
a2VyLXNldC10aW1lb3V0LWJsb2NrZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3dvcmtlci1z
ZXQtdGltZW91dC1ibG9ja2VkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3dvcmtlci1zZXQt
dGltZW91dC1ibG9ja2VkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyIEBA
CitBTEVSVDogc2V0VGltZW91dCBhbGxvd2VkCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3dvcmtlci1zZXQtdGltZW91dC1ibG9j
a2VkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvd29ya2VyLXNldC10aW1lb3V0LWJsb2NrZWQuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3dvcmtlci1zZXQtdGltZW91dC1ibG9ja2VkLmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0
dHAtZXF1aXY9IlgtV2ViS2l0LUNTUCIgY29udGVudD0ic2NyaXB0LXNyYyAnc2VsZicgJ3Vuc2Fm
ZS1pbmxpbmUnIi8+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit9
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK3RyeSB7CisgICAgdmFyIHdv
cmtlciA9IG5ldyBXb3JrZXIoJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3dvcmtlci1zZXQtdGltZW91dC5qcycpOworICAgIHdv
cmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgYWxlcnQoZXZlbnQu
ZGF0YSk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICAgIH07Cit9IGNhdGNoIChlKSB7CisgICAgYWxlcnQoZSk7
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3dvcmtl
ci1zZXQtdGltZW91dC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvd29ya2VyLXNldC10aW1lb3V0
LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3dvcmtlci1zZXQtdGltZW91dC5qcwkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw3IEBACit2YXIgaWQgPSAwOwordHJ5IHsKKyAgICBpZCA9IDE3OyAg
Ly8gVGVzdCBub3QgeWV0IGZ1bGx5IGVuYWJsZWQuICBTaW1wbHkgcHJldGVuZCB0aGF0IGEgY2Fs
bCB0byBzZXRUaW1lb3V0KCkgaGVyZSB3b3JrZWQuCisgICAgcG9zdE1lc3NhZ2UoInNldFRpbWVv
dXQgYWxsb3dlZCIpOworfSBjYXRjaChlKSB7CisgICAgcG9zdE1lc3NhZ2UoInNldFRpbWVvdXQg
YmxvY2tlZCIpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157336</attachid>
            <date>2012-08-08 16:55:44 -0700</date>
            <delta_ts>2012-08-08 17:16:54 -0700</delta_ts>
            <desc>Patch, add assert.</desc>
            <filename>patch_93521.txt</filename>
            <type>text/plain</type>
            <size>13921</size>
            <attacher name="Thomas Sepez">tsepez</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNTEwMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA4LTA4ICBUb20gU2Vw
ZXogIDx0c2VwZXpAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEF2b2lkIEFTU0VSVChtX3dvcmtl
ckNvbnRleHQtPmlzU2hhcmVkV29ya2VyQ29udGV4dCgpKSBpbiBXb3JrZXJTY3JpcHRDb250cm9s
bGVyOjppbml0U2NyaXB0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTkzNTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ2hhbmdlcyBXb3JrZXJDb250ZXh0IGFuZCBpdHMgc3ViY2xhc3NlcyBzbyB0aGF0
IHdlIGRvIG5vdCBjYWxsIGZ1bmN0aW9ucyB0aGF0IHJlbHkgdXBvbiBzdWJjbGFzcworICAgICAg
ICB2aXJ0dWFsIG1ldGhvZHMgZnJvbSB0aGUgc3VwZXJjbGFzcyBjb25zdHJ1Y3Rvci4KKworICAg
ICAgICBUZXN0OiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS93b3Jr
ZXItc2V0LXRpbWVvdXQtYmxvY2tlZC5odG1sCisKKyAgICAgICAgKiB3b3JrZXJzL0RlZGljYXRl
ZFdvcmtlckNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpEZWRpY2F0ZWRXb3JrZXJDb250ZXh0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVk
aWNhdGVkV29ya2VyQ29udGV4dDo6RGVkaWNhdGVkV29ya2VyQ29udGV4dCk6CisgICAgICAgICog
d29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJDb250ZXh0Lmg6CisgICAgICAgIChEZWRpY2F0ZWRXb3Jr
ZXJDb250ZXh0KToKKyAgICAgICAgKiB3b3JrZXJzL1NoYXJlZFdvcmtlckNvbnRleHQuY3BwOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRXb3JrZXJDb250ZXh0
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkV29ya2VyQ29udGV4dDo6U2hhcmVk
V29ya2VyQ29udGV4dCk6CisgICAgICAgICogd29ya2Vycy9TaGFyZWRXb3JrZXJDb250ZXh0Lmg6
CisgICAgICAgIChTaGFyZWRXb3JrZXJDb250ZXh0KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtl
ckNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dDo6V29ya2VyQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0OjphcHBseUNvbnRlbnRTZWN1
cml0eVBvbGljeUZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJDb250ZXh0Lmg6CisgICAgICAgIChXb3JrZXJDb250ZXh0KToKKwogMjAxMi0w
OC0wOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBB
dm9pZCBiYWNraW5nIHN0b3JlIG9uIGxheWVycyBjcmVhdGVkIGZvciBDb3JlQW5pbWF0aW9uIHBs
dWdpbnMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyQ29udGV4
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3Jr
ZXJDb250ZXh0LmNwcAkocmV2aXNpb24gMTI1MTAzKQorKysgU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9EZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsOCArNDEs
MTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1EZWRpY2F0ZWRXb3JrZXJDb250ZXh0OjpE
ZWRpY2F0ZWRXb3JrZXJDb250ZXh0KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2Vy
QWdlbnQsIFBhc3NPd25QdHI8R3JvdXBTZXR0aW5ncz4gc2V0dGluZ3MsIERlZGljYXRlZFdvcmtl
clRocmVhZCogdGhyZWFkLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29u
dGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUp
Ci0gICAgOiBXb3JrZXJDb250ZXh0KHVybCwgdXNlckFnZW50LCBzZXR0aW5ncywgdGhyZWFkLCBj
b250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpCisvLyBzdGF0
aWMKK1Bhc3NSZWZQdHI8RGVkaWNhdGVkV29ya2VyQ29udGV4dD4gRGVkaWNhdGVkV29ya2VyQ29u
dGV4dDo6Y3JlYXRlKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFBh
c3NPd25QdHI8R3JvdXBTZXR0aW5ncz4gc2V0dGluZ3MsIERlZGljYXRlZFdvcmtlclRocmVhZCog
dGhyZWFkLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3Vy
aXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpCit7CisgICAg
UmVmUHRyPERlZGljYXRlZFdvcmtlckNvbnRleHQ+IGNvbnRleHQgPSBhZG9wdFJlZihuZXcgRGVk
aWNhdGVkV29ya2VyQ29udGV4dCh1cmwsIHVzZXJBZ2VudCwgc2V0dGluZ3MsIHRocmVhZCkpOwor
ICAgIGNvbnRleHQtPmFwcGx5Q29udGVudFNlY3VyaXR5UG9saWN5RnJvbVN0cmluZyhjb250ZW50
U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpOworICAgIHJldHVybiBj
b250ZXh0LnJlbGVhc2UoKTsKK30KKworRGVkaWNhdGVkV29ya2VyQ29udGV4dDo6RGVkaWNhdGVk
V29ya2VyQ29udGV4dChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBQ
YXNzT3duUHRyPEdyb3VwU2V0dGluZ3M+IHNldHRpbmdzLCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQq
IHRocmVhZCkKKyAgICA6IFdvcmtlckNvbnRleHQodXJsLCB1c2VyQWdlbnQsIHNldHRpbmdzLCB0
aHJlYWQpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29y
a2VyQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNh
dGVkV29ya2VyQ29udGV4dC5oCShyZXZpc2lvbiAxMjUxMDMpCisrKyBTb3VyY2UvV2ViQ29yZS93
b3JrZXJzL0RlZGljYXRlZFdvcmtlckNvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsMTAg
KzQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIERlZGljYXRlZFdvcmtlckNv
bnRleHQgOiBwdWJsaWMgV29ya2VyQ29udGV4dCB7CiAgICAgcHVibGljOgogICAgICAgICB0eXBl
ZGVmIFdvcmtlckNvbnRleHQgQmFzZTsKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RGVkaWNh
dGVkV29ya2VyQ29udGV4dD4gY3JlYXRlKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIFBhc3NPd25QdHI8R3JvdXBTZXR0aW5ncz4gc2V0dGluZ3MsIERlZGljYXRlZFdv
cmtlclRocmVhZCogdGhyZWFkLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwg
Q29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5
cGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGVkaWNhdGVk
V29ya2VyQ29udGV4dCh1cmwsIHVzZXJBZ2VudCwgc2V0dGluZ3MsIHRocmVhZCwgY29udGVudFNl
Y3VyaXR5UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKSk7Ci0gICAgICAgIH0KKyAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RGVkaWNhdGVkV29ya2VyQ29udGV4dD4gY3JlYXRlKGNv
bnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgUGFzc093blB0cjxHcm91cFNldHRp
bmdzPiwgRGVkaWNhdGVkV29ya2VyVGhyZWFkKiwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJp
dHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJp
dHlQb2xpY3lUeXBlKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNEZWRpY2F0ZWRXb3JrZXJD
b250ZXh0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCkBAIC02Niw3ICs2Myw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQqIHRocmVhZCgp
OwogICAgIHByaXZhdGU6Ci0gICAgICAgIERlZGljYXRlZFdvcmtlckNvbnRleHQoY29uc3QgS1VS
TCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBQYXNzT3duUHRyPEdyb3VwU2V0dGluZ3M+LCBE
ZWRpY2F0ZWRXb3JrZXJUaHJlYWQqLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGlj
eSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlKTsKKyAgICAgICAgRGVkaWNhdGVk
V29ya2VyQ29udGV4dChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFBhc3NP
d25QdHI8R3JvdXBTZXR0aW5ncz4sIERlZGljYXRlZFdvcmtlclRocmVhZCopOwogICAgIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hh
cmVkV29ya2VyQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9TaGFyZWRXb3JrZXJDb250ZXh0LmNwcAkocmV2aXNpb24gMTI1MTAzKQorKysgU291cmNlL1dl
YkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTAsOCArNTAsMTYgQEAgUGFzc1JlZlB0cjxNZXNzYWdlRXZlbnQ+IGNyZWF0ZUNvbm5lY3RFdgog
ICAgIHJldHVybiBldmVudC5yZWxlYXNlKCk7CiB9CiAKLVNoYXJlZFdvcmtlckNvbnRleHQ6OlNo
YXJlZFdvcmtlckNvbnRleHQoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBLVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgdXNlckFnZW50LCBQYXNzT3duUHRyPEdyb3VwU2V0dGluZ3M+IHNldHRpbmdz
LCBTaGFyZWRXb3JrZXJUaHJlYWQqIHRocmVhZCwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJp
dHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJp
dHlQb2xpY3lUeXBlKQotICAgIDogV29ya2VyQ29udGV4dCh1cmwsIHVzZXJBZ2VudCwgc2V0dGlu
Z3MsIHRocmVhZCwgY29udGVudFNlY3VyaXR5UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xpY3lU
eXBlKQorLy8gc3RhdGljCitQYXNzUmVmUHRyPFNoYXJlZFdvcmtlckNvbnRleHQ+IFNoYXJlZFdv
cmtlckNvbnRleHQ6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IEtVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFBhc3NPd25QdHI8R3JvdXBTZXR0aW5ncz4gc2V0dGlu
Z3MsIFNoYXJlZFdvcmtlclRocmVhZCogdGhyZWFkLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1
cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1
cml0eVBvbGljeVR5cGUpCit7CisgICAgUmVmUHRyPFNoYXJlZFdvcmtlckNvbnRleHQ+IGNvbnRl
eHQgPSBhZG9wdFJlZihuZXcgU2hhcmVkV29ya2VyQ29udGV4dChuYW1lLCB1cmwsIHVzZXJBZ2Vu
dCwgc2V0dGluZ3MsIHRocmVhZCkpOworICAgIGNvbnRleHQtPmFwcGx5Q29udGVudFNlY3VyaXR5
UG9saWN5RnJvbVN0cmluZyhjb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBv
bGljeVR5cGUpOworICAgIHJldHVybiBjb250ZXh0LnJlbGVhc2UoKTsKK30KKworU2hhcmVkV29y
a2VyQ29udGV4dDo6U2hhcmVkV29ya2VyQ29udGV4dChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFBhc3NPd25QdHI8R3JvdXBTZXR0
aW5ncz4gc2V0dGluZ3MsIFNoYXJlZFdvcmtlclRocmVhZCogdGhyZWFkKQorICAgIDogV29ya2Vy
Q29udGV4dCh1cmwsIHVzZXJBZ2VudCwgc2V0dGluZ3MsIHRocmVhZCkKICAgICAsIG1fbmFtZShu
YW1lKQogewogfQpJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJDb250
ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJD
b250ZXh0LmgJKHJldmlzaW9uIDEyNTEwMykKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hh
cmVkV29ya2VyQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCwxMCArNDQsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgU2hhcmVkV29ya2VyQ29udGV4dCA6IHB1YmxpYyBX
b3JrZXJDb250ZXh0IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgV29ya2VyQ29udGV4
dCBCYXNlOwotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRXb3JrZXJDb250ZXh0PiBj
cmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
dXNlckFnZW50LCBQYXNzT3duUHRyPEdyb3VwU2V0dGluZ3M+IHNldHRpbmdzLCBTaGFyZWRXb3Jr
ZXJUaHJlYWQqIHRocmVhZCwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENv
bnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBl
KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNoYXJlZFdvcmtl
ckNvbnRleHQobmFtZSwgdXJsLCB1c2VyQWdlbnQsIHNldHRpbmdzLCB0aHJlYWQsIGNvbnRlbnRT
ZWN1cml0eVBvbGljeSwgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSkpOwotICAgICAgICB9Cisg
ICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZFdvcmtlckNvbnRleHQ+IGNyZWF0ZShjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgUGFz
c093blB0cjxHcm91cFNldHRpbmdzPiwgU2hhcmVkV29ya2VyVGhyZWFkKiwgY29uc3QgU3RyaW5n
JiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlw
ZSBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKTsKICAgICAgICAgdmlydHVhbCB+U2hhcmVkV29y
a2VyQ29udGV4dCgpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1NoYXJlZFdvcmtlckNvbnRl
eHQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CkBAIC02MSw4ICs1OCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgICAgICBTaGFyZWRXb3JrZXJUaHJlYWQqIHRocmVhZCgpOwogICAgIHBy
aXZhdGU6Ci0gICAgICAgIFNoYXJlZFdvcmtlckNvbnRleHQoY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFBhc3NPd25QdHI8R3JvdXBTZXR0
aW5ncz4sIFNoYXJlZFdvcmtlclRocmVhZCosIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5
UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUpOwotCisgICAgICAgIFNo
YXJlZFdvcmtlckNvbnRleHQoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBLVVJMJiwgY29uc3Qg
U3RyaW5nJiB1c2VyQWdlbnQsIFBhc3NPd25QdHI8R3JvdXBTZXR0aW5ncz4sIFNoYXJlZFdvcmtl
clRocmVhZCopOwogICAgICAgICB2aXJ0dWFsIHZvaWQgbG9nRXhjZXB0aW9uVG9Db25zb2xlKGNv
bnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgaW50IGxp
bmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CiAKICAgICAgICAgU3RyaW5n
IG1fbmFtZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcAko
cmV2aXNpb24gMTI1MTAzKQorKysgU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBib29sIGlzQ2xlYW51cFRhc2soKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiB9OwogCi1Xb3Jr
ZXJDb250ZXh0OjpXb3JrZXJDb250ZXh0KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIFBhc3NPd25QdHI8R3JvdXBTZXR0aW5ncz4gc2V0dGluZ3MsIFdvcmtlclRocmVh
ZCogdGhyZWFkLCBjb25zdCBTdHJpbmcmIHBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpI
ZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpCitXb3JrZXJDb250ZXh0OjpXb3Jr
ZXJDb250ZXh0KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFBhc3NP
d25QdHI8R3JvdXBTZXR0aW5ncz4gc2V0dGluZ3MsIFdvcmtlclRocmVhZCogdGhyZWFkKQogICAg
IDogbV91cmwodXJsKQogICAgICwgbV91c2VyQWdlbnQodXNlckFnZW50KQogICAgICwgbV9ncm91
cFNldHRpbmdzKHNldHRpbmdzKQpAQCAtOTgsOCArOTgsNiBAQCBXb3JrZXJDb250ZXh0OjpXb3Jr
ZXJDb250ZXh0KGNvbnN0IEtVUkwmCiAgICAgLCBtX2V2ZW50UXVldWUoV29ya2VyRXZlbnRRdWV1
ZTo6Y3JlYXRlKHRoaXMpKQogewogICAgIHNldFNlY3VyaXR5T3JpZ2luKFNlY3VyaXR5T3JpZ2lu
OjpjcmVhdGUodXJsKSk7Ci0gICAgc2V0Q29udGVudFNlY3VyaXR5UG9saWN5KENvbnRlbnRTZWN1
cml0eVBvbGljeTo6Y3JlYXRlKHRoaXMpKTsKLSAgICBjb250ZW50U2VjdXJpdHlQb2xpY3koKS0+
ZGlkUmVjZWl2ZUhlYWRlcihwb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpOwogfQog
CiBXb3JrZXJDb250ZXh0Ojp+V29ya2VyQ29udGV4dCgpCkBAIC0xMTMsNiArMTExLDEyIEBAIFdv
cmtlckNvbnRleHQ6On5Xb3JrZXJDb250ZXh0KCkKICAgICB0aHJlYWQoKS0+d29ya2VyUmVwb3J0
aW5nUHJveHkoKS53b3JrZXJDb250ZXh0RGVzdHJveWVkKCk7CiB9CiAKK3ZvaWQgV29ya2VyQ29u
dGV4dDo6YXBwbHlDb250ZW50U2VjdXJpdHlQb2xpY3lGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYg
cG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVudFNlY3VyaXR5
UG9saWN5VHlwZSkKK3sKKyAgICBzZXRDb250ZW50U2VjdXJpdHlQb2xpY3koQ29udGVudFNlY3Vy
aXR5UG9saWN5OjpjcmVhdGUodGhpcykpOworICAgIGNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5k
aWRSZWNlaXZlSGVhZGVyKHBvbGljeSwgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSk7Cit9CisK
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIFdvcmtlckNvbnRleHQ6OnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSBjb25zdAogewogICAgIHJldHVybiBjb25zdF9jYXN0PFdvcmtlckNvbnRleHQqPih0
aGlzKTsKQEAgLTIyNiw2ICsyMzAsNyBAQCB2b2lkIFdvcmtlckNvbnRleHQ6OmNsZWFySW50ZXJ2
YWwoaW50IHRpCiAKIHZvaWQgV29ya2VyQ29udGV4dDo6aW1wb3J0U2NyaXB0cyhjb25zdCBWZWN0
b3I8U3RyaW5nPiYgdXJscywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgQVNTRVJUKGNvbnRl
bnRTZWN1cml0eVBvbGljeSgpKTsKICAgICBlYyA9IDA7CiAgICAgVmVjdG9yPFN0cmluZz46OmNv
bnN0X2l0ZXJhdG9yIHVybHNFbmQgPSB1cmxzLmVuZCgpOwogICAgIFZlY3RvcjxLVVJMPiBjb21w
bGV0ZWRVUkxzOwpJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmgJKHJl
dmlzaW9uIDEyNTEwMykKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMzksNyArMTM5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICB2b2lkIG5vdGlmeU9ic2VydmVyc09mU3RvcCgpOwogCiAgICAgcHJvdGVjdGVkOgot
ICAgICAgICBXb3JrZXJDb250ZXh0KGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgUGFzc093blB0cjxHcm91cFNldHRpbmdzPiwgV29ya2VyVGhyZWFkKiwgY29uc3QgU3RyaW5n
JiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlw
ZSk7CisgICAgICAgIFdvcmtlckNvbnRleHQoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgdXNl
ckFnZW50LCBQYXNzT3duUHRyPEdyb3VwU2V0dGluZ3M+LCBXb3JrZXJUaHJlYWQqKTsKKyAgICAg
ICAgdm9pZCBhcHBseUNvbnRlbnRTZWN1cml0eVBvbGljeUZyb21TdHJpbmcoY29uc3QgU3RyaW5n
JiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlw
ZSk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGxvZ0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBT
dHJpbmcmIGVycm9yTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIGludCBsaW5lTnVt
YmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwogICAgICAgICB2b2lkIGFkZE1lc3Nh
Z2VUb1dvcmtlckNvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZl
bCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWdu
ZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKSW5kZXg6IExheW91
dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDEyNTEwMykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE0IEBACisyMDEyLTA4LTA4ICBUb20gU2VwZXogIDx0c2VwZXpAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIEF2b2lkIEFTU0VSVChtX3dvcmtlckNvbnRleHQtPmlzU2hhcmVkV29y
a2VyQ29udGV4dCgpKSBpbiBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0KCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzNTIxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvd29ya2VyLXNldC10aW1l
b3V0LmpzOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS93b3JrZXItc2V0LXRpbWVvdXQtYmxvY2tlZC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3dv
cmtlci1zZXQtdGltZW91dC1ibG9ja2VkLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA4LTA4ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTI0NDE2
KTogZmFzdC9mb3Jtcy9iYXNpYy1zZWxlY3RzLmh0bWwgZmFpbGluZyBvbiBMaW9uIERlYnVnIFRl
c3RzCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS93b3JrZXItc2V0LXRpbWVvdXQtYmxvY2tlZC1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvd29ya2VyLXNldC10aW1lb3V0LWJsb2NrZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
d29ya2VyLXNldC10aW1lb3V0LWJsb2NrZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDIgQEAKK0FMRVJUOiBzZXRUaW1vdXQgYWxsb3dlZAorCkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS93b3JrZXItc2V0LXRp
bWVvdXQtYmxvY2tlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3dvcmtlci1zZXQtdGltZW91dC1ibG9ja2Vk
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nv
bnRlbnRTZWN1cml0eVBvbGljeS93b3JrZXItc2V0LXRpbWVvdXQtYmxvY2tlZC5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBodHRwLWVxdWl2PSJYLVdlYktpdC1DU1AiIGNvbnRlbnQ9InNjcmlwdC1zcmMgJ3Nl
bGYnICd1bnNhZmUtaW5saW5lJyIvPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cit0cnkgewor
ICAgIHZhciB3b3JrZXIgPSBuZXcgV29ya2VyKCdodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy93b3JrZXItc2V0LXRpbWVvdXQuanMn
KTsKKyAgICB3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIGFs
ZXJ0KGV2ZW50LmRhdGEpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9OworfSBjYXRjaCAoZSkgeworICAg
IGFsZXJ0KGUpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291
cmNlcy93b3JrZXItc2V0LXRpbWVvdXQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3dvcmtlci1z
ZXQtdGltZW91dC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy93b3JrZXItc2V0LXRpbWVvdXQu
anMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNiBAQAordmFyIGlkID0gMDsKK3RyeSB7CisgICAg
aWQgPSAxNzsgIC8vIFRlc3Qgbm90IHlldCBmdWxseSBlbmFibGVkLiAgU2ltcGx5IHByZXRlbmQg
dGhhdCBhIGNhbGwgdG8gc2V0VGltZW91dCgpIGhlcmUgd29ya2VkLgorfSBjYXRjaChlKSB7Cit9
Citwb3N0TWVzc2FnZShpZCA9PT0gMCA/ICJzZXRUaW1lb3V0IGJsb2NrZWQiIDogInNldFRpbW91
dCBhbGxvd2VkIik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>