<?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>52911</bug_id>
          
          <creation_ts>2011-01-21 12:12:27 -0800</creation_ts>
          <short_desc>[v8] Refactoring: extract IntrusiveDOMWrapperMap into a seprate class and files.</short_desc>
          <delta_ts>2011-01-24 12:22:42 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit 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="anton muhin">antonm</reporter>
          <assigned_to name="anton muhin">antonm</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>338242</commentid>
    <comment_count>0</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-01-21 12:12:27 -0800</bug_when>
    <thetext>[v8] Refactoring: extract IntrusiveDOMWrapperMap into a seprate class and files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338251</commentid>
    <comment_count>1</comment_count>
      <attachid>79773</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-01-21 12:18:54 -0800</bug_when>
    <thetext>Created attachment 79773
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338253</commentid>
    <comment_count>2</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-01-21 12:20:22 -0800</bug_when>
    <thetext>It violates style rule about indentation in namespaces.  I&apos;d ask for waiver as it&apos;s a common style under bindings/v8.  But I can easily adjust</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338254</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-21 12:21:41 -0800</bug_when>
    <thetext>Attachment 79773 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/bindings/v8/IntrusiveDOMWrapperMap.h:39:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338261</commentid>
    <comment_count>4</comment_count>
      <attachid>79773</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-01-21 12:27:27 -0800</bug_when>
    <thetext>Comment on attachment 79773
Patch

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

I&apos;d be inclined to just go ahead and fix the namespace indent.  Start this file off confirming to style guide and all that :)

&gt; Source/WebCore/bindings/v8/IntrusiveDOMWrapperMap.cpp:36
&gt; +bool IntrusiveDOMWrapperMap::removeIfPresent(Node* obj, v8::Persistent&lt;v8::Object&gt; value)

Is there something special about this function that it&apos;s the only one implemented in the cpp?  Just seems a weird split between the .h and the .cpp to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338268</commentid>
    <comment_count>5</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-01-21 12:33:54 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 79773 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=79773&amp;action=review
&gt; 
&gt; I&apos;d be inclined to just go ahead and fix the namespace indent.  Start this file off confirming to style guide and all that :)

Ok, np.

&gt; 
&gt; &gt; Source/WebCore/bindings/v8/IntrusiveDOMWrapperMap.cpp:36
&gt; &gt; +bool IntrusiveDOMWrapperMap::removeIfPresent(Node* obj, v8::Persistent&lt;v8::Object&gt; value)
&gt; 
&gt; Is there something special about this function that it&apos;s the only one implemented in the cpp?  Just seems a weird split between the .h and the .cpp to me.

I don&apos;t remember---something tells me it was missing class definitions, but I am not sure.  I&apos;ll give a try next week.  It&apos;s not performance critical though, so keeping it in .cpp might be a good thing code-size-wise.

Thanks a lot for feedback, Nate!  And have a nice weekend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339060</commentid>
    <comment_count>6</comment_count>
      <attachid>79935</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-01-24 09:33:24 -0800</bug_when>
    <thetext>Created attachment 79935
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339062</commentid>
    <comment_count>7</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-01-24 09:34:49 -0800</bug_when>
    <thetext>Nate, I&apos;ve uploaded new version which fixes style violation and brings removeIfPresent method into the header.  May you have another look?

(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 79773 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=79773&amp;action=review
&gt; &gt; 
&gt; &gt; I&apos;d be inclined to just go ahead and fix the namespace indent.  Start this file off confirming to style guide and all that :)
&gt; 
&gt; Ok, np.
&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/bindings/v8/IntrusiveDOMWrapperMap.cpp:36
&gt; &gt; &gt; +bool IntrusiveDOMWrapperMap::removeIfPresent(Node* obj, v8::Persistent&lt;v8::Object&gt; value)
&gt; &gt; 
&gt; &gt; Is there something special about this function that it&apos;s the only one implemented in the cpp?  Just seems a weird split between the .h and the .cpp to me.
&gt; 
&gt; I don&apos;t remember---something tells me it was missing class definitions, but I am not sure.  I&apos;ll give a try next week.  It&apos;s not performance critical though, so keeping it in .cpp might be a good thing code-size-wise.
&gt; 
&gt; Thanks a lot for feedback, Nate!  And have a nice weekend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339147</commentid>
    <comment_count>8</comment_count>
      <attachid>79935</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-01-24 11:43:24 -0800</bug_when>
    <thetext>Comment on attachment 79935
Patch

Thanks a lot, Nate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339193</commentid>
    <comment_count>9</comment_count>
      <attachid>79935</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-24 12:22:36 -0800</bug_when>
    <thetext>Comment on attachment 79935
Patch

Clearing flags on attachment: 79935

Committed r76541: &lt;http://trac.webkit.org/changeset/76541&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339194</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-24 12:22:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79773</attachid>
            <date>2011-01-21 12:18:54 -0800</date>
            <delta_ts>2011-01-24 09:33:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52911-20110121231852.patch</filename>
            <type>text/plain</type>
            <size>20446</size>
            <attacher name="anton muhin">antonm</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1ZTkzMGQwODU4NWIwY2MzMTMyODI2MDA2YTRmNWYwNGY0NmM1NzNlLi5j
MzE1MjNlNThjZTYyMzgxN2ZhNzJmOGU0MGRjMjk2OGQxNmE4YWNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDUgKzEsMzkgQEAKIDIwMTEtMDEtMjEgIEFudG9uIE11aGluICA8YW50b25tQGNocm9taXVtLm9y
Zz4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbdjhd
IFJlZmFjdG9yaW5nOiBleHRyYWN0IEludHJ1c2l2ZURPTVdyYXBwZXJNYXAgaW50byBhIHNlcHJh
dGUgY2xhc3MgYW5kIGZpbGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTI5MTEKKworICAgICAgICBQbGFpbiByZWZhY3RvcmluZywgY292ZXJlZCBi
eSB0aGUgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IEFkZGVkIElu
dHJ1c2l2ZURPTVdyYXBwZXJNYXAuKgorICAgICAgICAqIGJpbmRpbmdzL3Y4L0RPTURhdGFTdG9y
ZS5jcHA6IGNsYXNzIEludHJ1c2l2ZURPTVdyYXBwZXJNYXAgbW92ZWQgb3V0IG9mIGl0LgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L0RPTURhdGFTdG9yZS5oOiBjbGFzcyBJbnRydXNpdmVET01XcmFw
cGVyTWFwIG1vdmVkIG91dCBvZiBpdC4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9JbnRydXNpdmVE
T01XcmFwcGVyTWFwLmNwcDogZnJlc2ggLmNwcCBmb3IgSW50cnVzaXZlRE9NV3JhcHBlck1hcC4K
KyAgICAgICAgKFdlYkNvcmU6OkludHJ1c2l2ZURPTVdyYXBwZXJNYXA6OnJlbW92ZUlmUHJlc2Vu
dCk6IG1vdmVkIGZyb20gRE9NRGF0YVN0b3JlLmNwcAorICAgICAgICAqIGJpbmRpbmdzL3Y4L0lu
dHJ1c2l2ZURPTVdyYXBwZXJNYXAuaDogZnJlc2ggLmggZm9yIEludHJ1c2l2ZURPTVdyYXBwZXJN
YXAuCisgICAgICAgIChXZWJDb3JlOjpDaHVua2VkVGFibGU6OkNodW5rZWRUYWJsZSk6IG1vdmVk
IGZyb20gRE9NRGF0YVN0b3JlLmgKKyAgICAgICAgKFdlYkNvcmU6OkNodW5rZWRUYWJsZTo6YWRk
KTogZGl0dG8KKyAgICAgICAgKFdlYkNvcmU6OkNodW5rZWRUYWJsZTo6cmVtb3ZlKTogZGl0dG8K
KyAgICAgICAgKFdlYkNvcmU6OkNodW5rZWRUYWJsZTo6Y2xlYXIpOiBkaXR0bworICAgICAgICAo
V2ViQ29yZTo6Q2h1bmtlZFRhYmxlOjp2aXNpdCk6IGRpdHRvCisgICAgICAgIChXZWJDb3JlOjpD
aHVua2VkVGFibGU6OkNodW5rOjpDaHVuayk6IGRpdHRvCisgICAgICAgIChXZWJDb3JlOjpDaHVu
a2VkVGFibGU6OmNsZWFyRW50cmllcyk6IGRpdHRvCisgICAgICAgIChXZWJDb3JlOjpDaHVua2Vk
VGFibGU6OnZpc2l0RW50cmllcyk6IGRpdHRvCisgICAgICAgIChXZWJDb3JlOjpJbnRydXNpdmVE
T01XcmFwcGVyTWFwOjpJbnRydXNpdmVET01XcmFwcGVyTWFwKTogZGl0dG8KKyAgICAgICAgKFdl
YkNvcmU6OkludHJ1c2l2ZURPTVdyYXBwZXJNYXA6OmdldCk6IGRpdHRvCisgICAgICAgIChXZWJD
b3JlOjpJbnRydXNpdmVET01XcmFwcGVyTWFwOjpzZXQpOiBkaXR0bworICAgICAgICAoV2ViQ29y
ZTo6SW50cnVzaXZlRE9NV3JhcHBlck1hcDo6Y29udGFpbnMpOiBkaXR0bworICAgICAgICAoV2Vi
Q29yZTo6SW50cnVzaXZlRE9NV3JhcHBlck1hcDo6dmlzaXQpOiBkaXR0bworICAgICAgICAoV2Vi
Q29yZTo6SW50cnVzaXZlRE9NV3JhcHBlck1hcDo6Y2xlYXIpOiBkaXR0bworICAgICAgICAoV2Vi
Q29yZTo6SW50cnVzaXZlRE9NV3JhcHBlck1hcDo6Q2h1bmtlZFRhYmxlVHJhaXRzOjptb3ZlKTog
ZGl0dG8KKyAgICAgICAgKFdlYkNvcmU6OkludHJ1c2l2ZURPTVdyYXBwZXJNYXA6OkNodW5rZWRU
YWJsZVRyYWl0czo6Y2xlYXIpOiBkaXR0bworICAgICAgICAoV2ViQ29yZTo6SW50cnVzaXZlRE9N
V3JhcHBlck1hcDo6Q2h1bmtlZFRhYmxlVHJhaXRzOjp2aXNpdCk6IGRpdHRvCisgICAgICAgICog
YmluZGluZ3MvdjgvU3RhdGljRE9NRGF0YVN0b3JlLmg6IGluY2x1ZGUgYWRkZWQuCisKKzIwMTEt
MDEtMjEgIEFudG9uIE11aGluICA8YW50b25tQGNocm9taXVtLm9yZz4KKwogICAgICAgICBSZXZp
ZXdlZCBieSBOYXRlIENoYXBpbi4KIAogICAgICAgICBbdjhdIFByb3Blcmx5IGRlYWwgd2l0aCB0
aGUgY2FzZSB3aGVuIGNvbnZlcnNpb24gdG8gc3RyaW5nIHRocm93cyBhbiBleGNlcHRpb24gZm9y
IEhUTUxDb2xsZWN0aW9uIGFjY2Vzc29ycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDAzNDhjMDY3YTMy
NTczNzE2MDdjMWI4MWY1MGYzY2YwMDA3M2IwNzcuLmQzZDdiNzk1NDk3ZDhlMmYzMGMwMjEwZTJh
ZWY2ZThhMWZkOTI3M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTg5Myw2ICs4OTMsOCBAQAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L0RPTURhdGFTdG9yZS5oJywKICAgICAgICAgICAgICdiaW5k
aW5ncy92OC9ET01XcmFwcGVyV29ybGQuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9E
T01XcmFwcGVyV29ybGQuaCcsCisgICAgICAgICAgICAnYmluZGluZ3MvdjgvSW50cnVzaXZlRE9N
V3JhcHBlck1hcC5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L0ludHJ1c2l2ZURPTVdy
YXBwZXJNYXAuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvSXNvbGF0ZWRXb3JsZC5jcHAn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L0lzb2xhdGVkV29ybGQuaCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvdjgvSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAnLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L0RPTURhdGFTdG9yZS5jcHAKaW5kZXggNTM5M2JkOTcxNzMzZDgzNjU0YWNj
ZGI0ZTAzMjAxMWY5ZWQyOTc3My4uMjFiNDdhNDljYWVmNDQ4ZThjYTIyOGQ0MzU5YzQyNmE3MmU0
Mzc4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NRGF0YVN0b3Jl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01EYXRhU3RvcmUuY3BwCkBA
IC0xNzMsMjAgKzE3Myw2IEBAIHZvaWQgRE9NRGF0YVN0b3JlOjp3ZWFrTm9kZUNhbGxiYWNrKHY4
OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT4gdmFsdWUsIHZvaWQqIGRvbU9iCiAgICAgbm9kZS0+ZGVy
ZWYoKTsgLy8gTm9ib2R5IG92ZXJyaWRlcyBOb2RlOjpkZXJlZiBzbyBpdCdzIHNhZmUKIH0KIAot
Ym9vbCBET01EYXRhU3RvcmU6OkludHJ1c2l2ZURPTVdyYXBwZXJNYXA6OnJlbW92ZUlmUHJlc2Vu
dChOb2RlKiBvYmosIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHZhbHVlKQotewotICAgIEFT
U0VSVChvYmopOwotICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiBlbnRyeSA9IG9iai0+
d3JhcHBlcigpOwotICAgIGlmICghZW50cnkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBp
ZiAoKmVudHJ5ICE9IHZhbHVlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgb2JqLT5jbGVh
cldyYXBwZXIoKTsKLSAgICBtX3RhYmxlLnJlbW92ZShlbnRyeSk7Ci0gICAgdmFsdWUuRGlzcG9z
ZSgpOwotICAgIHJldHVybiB0cnVlOwotfQotCiAjaWYgRU5BQkxFKFNWRykKIAogdm9pZCBET01E
YXRhU3RvcmU6OndlYWtTVkdFbGVtZW50SW5zdGFuY2VDYWxsYmFjayh2ODo6UGVyc2lzdGVudDx2
ODo6VmFsdWU+IHY4T2JqZWN0LCB2b2lkKiBkb21PYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9ET01EYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L0RPTURhdGFTdG9yZS5oCmluZGV4IGRiZWFkOWNiYTA5ZTU3MjNkNGI0MWFlMmEzNWRl
ZDBmZjRhODMzNDEuLmZmYjlkZjVhZDZjZjZkNjNhNzQ2NWEzOTJjMTI0NGMwY2M3ODc2YzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTURhdGFTdG9yZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTURhdGFTdG9yZS5oCkBAIC01MSw5NSArNTEs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICB0eXBlZGVmIFdURjo6VmVjdG9yPERPTURh
dGFTdG9yZSo+IERPTURhdGFMaXN0OwogCi0gICAgdGVtcGxhdGUgPGNsYXNzIFQsIGludCBDSFVO
S19TSVpFLCBjbGFzcyBUcmFpdHM+Ci0gICAgY2xhc3MgQ2h1bmtlZFRhYmxlIHsKLSAgICAgIHB1
YmxpYzoKLSAgICAgICAgQ2h1bmtlZFRhYmxlKCkgOiBtX2NodW5rcygwKSwgbV9jdXJyZW50KDAp
LCBtX2xhc3QoMCkgeyB9Ci0KLSAgICAgICAgVCogYWRkKFQgZWxlbWVudCkKLSAgICAgICAgewot
ICAgICAgICAgICAgaWYgKG1fY3VycmVudCA9PSBtX2xhc3QpIHsKLSAgICAgICAgICAgICAgICBt
X2NodW5rcyA9IG5ldyBDaHVuayhtX2NodW5rcyk7Ci0gICAgICAgICAgICAgICAgbV9jdXJyZW50
ID0gbV9jaHVua3MtPm1fZW50cmllczsKLSAgICAgICAgICAgICAgICBtX2xhc3QgPSBtX2N1cnJl
bnQgKyBDSFVOS19TSVpFOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgQVNTRVJUKChtX2No
dW5rcy0+bV9lbnRyaWVzIDw9IG1fY3VycmVudCkgJiYgKG1fY3VycmVudCA8IG1fbGFzdCkpOwot
ICAgICAgICAgICAgVCogcCA9IG1fY3VycmVudCsrOwotICAgICAgICAgICAgKnAgPSBlbGVtZW50
OwotICAgICAgICAgICAgcmV0dXJuIHA7Ci0gICAgICAgIH0KLQotICAgICAgICB2b2lkIHJlbW92
ZShUKiBlbGVtZW50KQotICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQoZWxlbWVudCk7Ci0g
ICAgICAgICAgICBBU1NFUlQobV9jdXJyZW50ID4gbV9jaHVua3MtPm1fZW50cmllcyk7Ci0gICAg
ICAgICAgICBtX2N1cnJlbnQtLTsKLSAgICAgICAgICAgIGlmIChlbGVtZW50ICE9IG1fY3VycmVu
dCkKLSAgICAgICAgICAgICAgICBUcmFpdHM6Om1vdmUoZWxlbWVudCwgbV9jdXJyZW50KTsKLSAg
ICAgICAgICAgIGlmIChtX2N1cnJlbnQgPT0gbV9jaHVua3MtPm1fZW50cmllcykgewotICAgICAg
ICAgICAgICAgIENodW5rKiB0b0RlbGV0ZSA9IG1fY2h1bmtzOwotICAgICAgICAgICAgICAgIG1f
Y2h1bmtzID0gdG9EZWxldGUtPm1fcHJldmlvdXM7Ci0gICAgICAgICAgICAgICAgbV9jdXJyZW50
ID0gbV9sYXN0ID0gbV9jaHVua3MgPyBtX2NodW5rcy0+bV9lbnRyaWVzICsgQ0hVTktfU0laRSA6
IDA7Ci0gICAgICAgICAgICAgICAgZGVsZXRlIHRvRGVsZXRlOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgQVNTRVJUKCFtX2NodW5rcyB8fCAoKG1fY2h1bmtzLT5tX2VudHJpZXMgPCBtX2N1
cnJlbnQpICYmIChtX2N1cnJlbnQgPD0gbV9sYXN0KSkpOwotICAgICAgICB9Ci0KLSAgICAgICAg
dm9pZCBjbGVhcigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICghbV9jaHVua3MpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBjbGVhckVudHJpZXMobV9jaHVua3Mt
Pm1fZW50cmllcywgbV9jdXJyZW50KTsKLSAgICAgICAgICAgIENodW5rKiBsYXN0ID0gbV9jaHVu
a3M7Ci0gICAgICAgICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICAgICAgICAgIENodW5rKiBw
cmV2aW91cyA9IGxhc3QtPm1fcHJldmlvdXM7Ci0gICAgICAgICAgICAgICAgaWYgKCFwcmV2aW91
cykKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgZGVsZXRlIGxh
c3Q7Ci0gICAgICAgICAgICAgICAgY2xlYXJFbnRyaWVzKHByZXZpb3VzLT5tX2VudHJpZXMsIHBy
ZXZpb3VzLT5tX2VudHJpZXMgKyBDSFVOS19TSVpFKTsKLSAgICAgICAgICAgICAgICBsYXN0ID0g
cHJldmlvdXM7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG1fY2h1bmtzID0gbGFzdDsK
LSAgICAgICAgICAgIG1fY3VycmVudCA9IG1fY2h1bmtzLT5tX2VudHJpZXM7Ci0gICAgICAgICAg
ICBtX2xhc3QgPSBtX2N1cnJlbnQgKyBDSFVOS19TSVpFOwotICAgICAgICB9Ci0KLSAgICAgICAg
dm9pZCB2aXNpdChET01EYXRhU3RvcmUqIHN0b3JlLCB0eXBlbmFtZSBUcmFpdHM6OlZpc2l0b3Iq
IHZpc2l0b3IpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICghbV9jaHVua3MpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICB2aXNpdEVudHJpZXMoc3RvcmUsIG1fY2h1
bmtzLT5tX2VudHJpZXMsIG1fY3VycmVudCwgdmlzaXRvcik7Ci0gICAgICAgICAgICBmb3IgKENo
dW5rKiBjaHVuayA9IG1fY2h1bmtzLT5tX3ByZXZpb3VzOyBjaHVuazsgY2h1bmsgPSBjaHVuay0+
bV9wcmV2aW91cykKLSAgICAgICAgICAgICAgICB2aXNpdEVudHJpZXMoc3RvcmUsIGNodW5rLT5t
X2VudHJpZXMsIGNodW5rLT5tX2VudHJpZXMgKyBDSFVOS19TSVpFLCB2aXNpdG9yKTsKLSAgICAg
ICAgfQotCi0gICAgICBwcml2YXRlOgotICAgICAgICBzdHJ1Y3QgQ2h1bmsgewotICAgICAgICAg
ICAgZXhwbGljaXQgQ2h1bmsoQ2h1bmsqIHByZXZpb3VzKSA6IG1fcHJldmlvdXMocHJldmlvdXMp
IHsgfQotICAgICAgICAgICAgQ2h1bmsqIGNvbnN0IG1fcHJldmlvdXM7Ci0gICAgICAgICAgICBU
IG1fZW50cmllc1tDSFVOS19TSVpFXTsKLSAgICAgICAgfTsKLQotICAgICAgICBzdGF0aWMgdm9p
ZCBjbGVhckVudHJpZXMoVCogZmlyc3QsIFQqIGxhc3QpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IGZvciAoVCogZW50cnkgPSBmaXJzdDsgZW50cnkgPCBsYXN0OyBlbnRyeSsrKQotICAgICAgICAg
ICAgICAgIFRyYWl0czo6Y2xlYXIoZW50cnkpOwotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdGlj
IHZvaWQgdmlzaXRFbnRyaWVzKERPTURhdGFTdG9yZSogc3RvcmUsIFQqIGZpcnN0LCBUKiBsYXN0
LCB0eXBlbmFtZSBUcmFpdHM6OlZpc2l0b3IqIHZpc2l0b3IpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGZvciAoVCogZW50cnkgPSBmaXJzdDsgZW50cnkgPCBsYXN0OyBlbnRyeSsrKQotICAgICAg
ICAgICAgICAgIFRyYWl0czo6dmlzaXQoc3RvcmUsIGVudHJ5LCB2aXNpdG9yKTsKLSAgICAgICAg
fQotCi0gICAgICAgIENodW5rKiBtX2NodW5rczsKLSAgICAgICAgVCogbV9jdXJyZW50OwotICAg
ICAgICBUKiBtX2xhc3Q7Ci0gICAgfTsKLQogICAgIC8vIERPTURhdGFTdG9yZQogICAgIC8vCiAg
ICAgLy8gRE9NRGF0YVN0b3JlIGlzIHRoZSBiYWNraW5nIHN0b3JlIHRoYXQgaG9sZHMgdGhlIG1h
cHMgYmV0d2VlbiBET00gb2JqZWN0cwpAQCAtMTYxLDc5ICs3Miw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICNlbmRpZgogICAgICAgICB9OwogCi0gICAgICAgIGNsYXNzIEludHJ1c2l2ZURPTVdy
YXBwZXJNYXAgOiBwdWJsaWMgQWJzdHJhY3RXZWFrUmVmZXJlbmNlTWFwPE5vZGUsIHY4OjpPYmpl
Y3Q+IHsKLSAgICAgICAgcHVibGljOgotICAgICAgICAgICAgSW50cnVzaXZlRE9NV3JhcHBlck1h
cCh2ODo6V2Vha1JlZmVyZW5jZUNhbGxiYWNrIGNhbGxiYWNrKQotICAgICAgICAgICAgICAgIDog
QWJzdHJhY3RXZWFrUmVmZXJlbmNlTWFwPE5vZGUsIHY4OjpPYmplY3Q+KGNhbGxiYWNrKSB7IH0K
LQotICAgICAgICAgICAgdmlydHVhbCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiBnZXQoTm9k
ZSogb2JqKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4
OjpPYmplY3Q+KiB3cmFwcGVyID0gb2JqLT53cmFwcGVyKCk7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIHdyYXBwZXIgPyAqd3JhcHBlciA6IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KCk7Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXQoTm9kZSogb2JqLCB2
ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVyKQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIEFTU0VSVChvYmopOwotICAgICAgICAgICAgICAgIEFTU0VSVCghb2JqLT53cmFw
cGVyKCkpOwotICAgICAgICAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiBlbnRy
eSA9IG1fdGFibGUuYWRkKHdyYXBwZXIpOwotICAgICAgICAgICAgICAgIG9iai0+c2V0V3JhcHBl
cihlbnRyeSk7Ci0gICAgICAgICAgICAgICAgd3JhcHBlci5NYWtlV2VhayhvYmosIHdlYWtSZWZl
cmVuY2VDYWxsYmFjaygpKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmlydHVhbCBi
b29sIGNvbnRhaW5zKE5vZGUqIG9iaikKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gb2JqLT53cmFwcGVyKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZpcnR1
YWwgdm9pZCB2aXNpdChET01EYXRhU3RvcmUqIHN0b3JlLCBWaXNpdG9yKiB2aXNpdG9yKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIG1fdGFibGUudmlzaXQoc3RvcmUsIHZpc2l0b3Ip
OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2aXJ0dWFsIGJvb2wgcmVtb3ZlSWZQcmVz
ZW50KE5vZGUqLCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pik7Ci0KLSAgICAgICAgICAgIHZp
cnR1YWwgdm9pZCBjbGVhcigpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgbV90YWJs
ZS5jbGVhcigpOwotICAgICAgICAgICAgfQotCi0gICAgICAgIHByaXZhdGU6Ci0gICAgICAgICAg
ICBzdGF0aWMgaW50IGNvbnN0IG51bWJlck9mRW50cmllcyA9ICgxIDw8IDEwKSAtIDE7Ci0KLSAg
ICAgICAgICAgIHN0cnVjdCBDaHVua2VkVGFibGVUcmFpdHMgewotICAgICAgICAgICAgICAgIHR5
cGVkZWYgSW50cnVzaXZlRE9NV3JhcHBlck1hcDo6VmlzaXRvciBWaXNpdG9yOwotCi0gICAgICAg
ICAgICAgICAgc3RhdGljIHZvaWQgbW92ZSh2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiogdGFy
Z2V0LCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Piogc291cmNlKQotICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgKnRhcmdldCA9ICpzb3VyY2U7Ci0gICAgICAgICAgICAg
ICAgICAgIE5vZGUqIG5vZGUgPSBWOE5vZGU6OnRvTmF0aXZlKCp0YXJnZXQpOwotICAgICAgICAg
ICAgICAgICAgICBBU1NFUlQobm9kZSk7Ci0gICAgICAgICAgICAgICAgICAgIG5vZGUtPnNldFdy
YXBwZXIodGFyZ2V0KTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBzdGF0
aWMgdm9pZCBjbGVhcih2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiogZW50cnkpCi0gICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBOb2RlKiBub2RlID0gVjhOb2RlOjp0b05h
dGl2ZSgqZW50cnkpOwotICAgICAgICAgICAgICAgICAgICBBU1NFUlQobm9kZS0+d3JhcHBlcigp
ID09IGVudHJ5KTsKLQotICAgICAgICAgICAgICAgICAgICBub2RlLT5jbGVhcldyYXBwZXIoKTsK
LSAgICAgICAgICAgICAgICAgICAgZW50cnktPkRpc3Bvc2UoKTsKLSAgICAgICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdChET01EYXRhU3RvcmUqIHN0b3Jl
LCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiogZW50cnksIFZpc2l0b3IqIHZpc2l0b3IpCi0g
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBOb2RlKiBub2RlID0gVjhOb2Rl
Ojp0b05hdGl2ZSgqZW50cnkpOwotICAgICAgICAgICAgICAgICAgICBBU1NFUlQobm9kZS0+d3Jh
cHBlcigpID09IGVudHJ5KTsKLQotICAgICAgICAgICAgICAgICAgICB2aXNpdG9yLT52aXNpdERP
TVdyYXBwZXIoc3RvcmUsIG5vZGUsICplbnRyeSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgfTsKLQotICAgICAgICAgICAgdHlwZWRlZiBDaHVua2VkVGFibGU8djg6OlBlcnNpc3Rl
bnQ8djg6Ok9iamVjdD4sIG51bWJlck9mRW50cmllcywgQ2h1bmtlZFRhYmxlVHJhaXRzPiBUYWJs
ZTsKLSAgICAgICAgICAgIFRhYmxlIG1fdGFibGU7Ci0gICAgICAgIH07Ci0KICAgICAgICAgRE9N
RGF0YVN0b3JlKERPTURhdGEqKTsKICAgICAgICAgdmlydHVhbCB+RE9NRGF0YVN0b3JlKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0ludHJ1c2l2ZURPTVdyYXBw
ZXJNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSW50cnVzaXZlRE9NV3JhcHBl
ck1hcC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDllMzY4ZDFjOGQ2OWZhYWE4NzVhYTUyMGI1YjAxNzY3ZTNj
MDkwZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0ludHJ1
c2l2ZURPTVdyYXBwZXJNYXAuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiSW50cnVzaXZlRE9NV3JhcHBlck1hcC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2Jvb2wgSW50cnVzaXZlRE9NV3JhcHBlck1hcDo6cmVtb3ZlSWZQcmVzZW50KE5vZGUq
IG9iaiwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gdmFsdWUpCit7CisgICAgQVNTRVJUKG9i
aik7CisgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4qIGVudHJ5ID0gb2JqLT53cmFwcGVy
KCk7CisgICAgaWYgKCFlbnRyeSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICgqZW50
cnkgIT0gdmFsdWUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBvYmotPmNsZWFyV3JhcHBl
cigpOworICAgIG1fdGFibGUucmVtb3ZlKGVudHJ5KTsKKyAgICB2YWx1ZS5EaXNwb3NlKCk7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0ludHJ1c2l2ZURPTVdyYXBwZXJNYXAuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0ludHJ1c2l2ZURPTVdyYXBwZXJNYXAuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mNTQzMzRkNjdkNzgwYjc2MmJhZDJjY2YxZmEzZDZkNzM2ZTQ4OWNjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSW50cnVzaXZlRE9NV3JhcHBlck1h
cC5oCkBAIC0wLDAgKzEsMjA0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJbnRydXNpdmVET01XcmFwcGVyTWFwX2gKKyNk
ZWZpbmUgSW50cnVzaXZlRE9NV3JhcHBlck1hcF9oCisKKyNpbmNsdWRlICJET01EYXRhU3RvcmUu
aCIKKyNpbmNsdWRlICJWOE5vZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgdGVt
cGxhdGUgPGNsYXNzIFQsIGludCBDSFVOS19TSVpFLCBjbGFzcyBUcmFpdHM+CisgICAgY2xhc3Mg
Q2h1bmtlZFRhYmxlIHsKKyAgICAgIHB1YmxpYzoKKyAgICAgICAgQ2h1bmtlZFRhYmxlKCkgOiBt
X2NodW5rcygwKSwgbV9jdXJyZW50KDApLCBtX2xhc3QoMCkgeyB9CisKKyAgICAgICAgVCogYWRk
KFQgZWxlbWVudCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG1fY3VycmVudCA9PSBtX2xh
c3QpIHsKKyAgICAgICAgICAgICAgICBtX2NodW5rcyA9IG5ldyBDaHVuayhtX2NodW5rcyk7Cisg
ICAgICAgICAgICAgICAgbV9jdXJyZW50ID0gbV9jaHVua3MtPm1fZW50cmllczsKKyAgICAgICAg
ICAgICAgICBtX2xhc3QgPSBtX2N1cnJlbnQgKyBDSFVOS19TSVpFOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgQVNTRVJUKChtX2NodW5rcy0+bV9lbnRyaWVzIDw9IG1fY3VycmVudCkgJiYg
KG1fY3VycmVudCA8IG1fbGFzdCkpOworICAgICAgICAgICAgVCogcCA9IG1fY3VycmVudCsrOwor
ICAgICAgICAgICAgKnAgPSBlbGVtZW50OworICAgICAgICAgICAgcmV0dXJuIHA7CisgICAgICAg
IH0KKworICAgICAgICB2b2lkIHJlbW92ZShUKiBlbGVtZW50KQorICAgICAgICB7CisgICAgICAg
ICAgICBBU1NFUlQoZWxlbWVudCk7CisgICAgICAgICAgICBBU1NFUlQobV9jdXJyZW50ID4gbV9j
aHVua3MtPm1fZW50cmllcyk7CisgICAgICAgICAgICBtX2N1cnJlbnQtLTsKKyAgICAgICAgICAg
IGlmIChlbGVtZW50ICE9IG1fY3VycmVudCkKKyAgICAgICAgICAgICAgICBUcmFpdHM6Om1vdmUo
ZWxlbWVudCwgbV9jdXJyZW50KTsKKyAgICAgICAgICAgIGlmIChtX2N1cnJlbnQgPT0gbV9jaHVu
a3MtPm1fZW50cmllcykgeworICAgICAgICAgICAgICAgIENodW5rKiB0b0RlbGV0ZSA9IG1fY2h1
bmtzOworICAgICAgICAgICAgICAgIG1fY2h1bmtzID0gdG9EZWxldGUtPm1fcHJldmlvdXM7Cisg
ICAgICAgICAgICAgICAgbV9jdXJyZW50ID0gbV9sYXN0ID0gbV9jaHVua3MgPyBtX2NodW5rcy0+
bV9lbnRyaWVzICsgQ0hVTktfU0laRSA6IDA7CisgICAgICAgICAgICAgICAgZGVsZXRlIHRvRGVs
ZXRlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQVNTRVJUKCFtX2NodW5rcyB8fCAoKG1f
Y2h1bmtzLT5tX2VudHJpZXMgPCBtX2N1cnJlbnQpICYmIChtX2N1cnJlbnQgPD0gbV9sYXN0KSkp
OworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBjbGVhcigpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGlmICghbV9jaHVua3MpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAg
ICBjbGVhckVudHJpZXMobV9jaHVua3MtPm1fZW50cmllcywgbV9jdXJyZW50KTsKKyAgICAgICAg
ICAgIENodW5rKiBsYXN0ID0gbV9jaHVua3M7CisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgewor
ICAgICAgICAgICAgICAgIENodW5rKiBwcmV2aW91cyA9IGxhc3QtPm1fcHJldmlvdXM7CisgICAg
ICAgICAgICAgICAgaWYgKCFwcmV2aW91cykKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgZGVsZXRlIGxhc3Q7CisgICAgICAgICAgICAgICAgY2xlYXJFbnRyaWVz
KHByZXZpb3VzLT5tX2VudHJpZXMsIHByZXZpb3VzLT5tX2VudHJpZXMgKyBDSFVOS19TSVpFKTsK
KyAgICAgICAgICAgICAgICBsYXN0ID0gcHJldmlvdXM7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIG1fY2h1bmtzID0gbGFzdDsKKyAgICAgICAgICAgIG1fY3VycmVudCA9IG1fY2h1bmtz
LT5tX2VudHJpZXM7CisgICAgICAgICAgICBtX2xhc3QgPSBtX2N1cnJlbnQgKyBDSFVOS19TSVpF
OworICAgICAgICB9CisKKyAgICAgICAgdm9pZCB2aXNpdChET01EYXRhU3RvcmUqIHN0b3JlLCB0
eXBlbmFtZSBUcmFpdHM6OlZpc2l0b3IqIHZpc2l0b3IpCisgICAgICAgIHsKKyAgICAgICAgICAg
IGlmICghbV9jaHVua3MpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICB2
aXNpdEVudHJpZXMoc3RvcmUsIG1fY2h1bmtzLT5tX2VudHJpZXMsIG1fY3VycmVudCwgdmlzaXRv
cik7CisgICAgICAgICAgICBmb3IgKENodW5rKiBjaHVuayA9IG1fY2h1bmtzLT5tX3ByZXZpb3Vz
OyBjaHVuazsgY2h1bmsgPSBjaHVuay0+bV9wcmV2aW91cykKKyAgICAgICAgICAgICAgICB2aXNp
dEVudHJpZXMoc3RvcmUsIGNodW5rLT5tX2VudHJpZXMsIGNodW5rLT5tX2VudHJpZXMgKyBDSFVO
S19TSVpFLCB2aXNpdG9yKTsKKyAgICAgICAgfQorCisgICAgICBwcml2YXRlOgorICAgICAgICBz
dHJ1Y3QgQ2h1bmsgeworICAgICAgICAgICAgZXhwbGljaXQgQ2h1bmsoQ2h1bmsqIHByZXZpb3Vz
KSA6IG1fcHJldmlvdXMocHJldmlvdXMpIHsgfQorICAgICAgICAgICAgQ2h1bmsqIGNvbnN0IG1f
cHJldmlvdXM7CisgICAgICAgICAgICBUIG1fZW50cmllc1tDSFVOS19TSVpFXTsKKyAgICAgICAg
fTsKKworICAgICAgICBzdGF0aWMgdm9pZCBjbGVhckVudHJpZXMoVCogZmlyc3QsIFQqIGxhc3Qp
CisgICAgICAgIHsKKyAgICAgICAgICAgIGZvciAoVCogZW50cnkgPSBmaXJzdDsgZW50cnkgPCBs
YXN0OyBlbnRyeSsrKQorICAgICAgICAgICAgICAgIFRyYWl0czo6Y2xlYXIoZW50cnkpOworICAg
ICAgICB9CisKKyAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRFbnRyaWVzKERPTURhdGFTdG9yZSog
c3RvcmUsIFQqIGZpcnN0LCBUKiBsYXN0LCB0eXBlbmFtZSBUcmFpdHM6OlZpc2l0b3IqIHZpc2l0
b3IpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZvciAoVCogZW50cnkgPSBmaXJzdDsgZW50cnkg
PCBsYXN0OyBlbnRyeSsrKQorICAgICAgICAgICAgICAgIFRyYWl0czo6dmlzaXQoc3RvcmUsIGVu
dHJ5LCB2aXNpdG9yKTsKKyAgICAgICAgfQorCisgICAgICAgIENodW5rKiBtX2NodW5rczsKKyAg
ICAgICAgVCogbV9jdXJyZW50OworICAgICAgICBUKiBtX2xhc3Q7CisgICAgfTsKKworCisgICAg
Y2xhc3MgSW50cnVzaXZlRE9NV3JhcHBlck1hcCA6IHB1YmxpYyBBYnN0cmFjdFdlYWtSZWZlcmVu
Y2VNYXA8Tm9kZSwgdjg6Ok9iamVjdD4geworICAgIHB1YmxpYzoKKyAgICAgICAgSW50cnVzaXZl
RE9NV3JhcHBlck1hcCh2ODo6V2Vha1JlZmVyZW5jZUNhbGxiYWNrIGNhbGxiYWNrKQorICAgICAg
ICAgICAgOiBBYnN0cmFjdFdlYWtSZWZlcmVuY2VNYXA8Tm9kZSwgdjg6Ok9iamVjdD4oY2FsbGJh
Y2spIHsgfQorCisgICAgICAgIHZpcnR1YWwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gZ2V0
KE5vZGUqIG9iaikKKyAgICAgICAgeworICAgICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9i
amVjdD4qIHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKTsKKyAgICAgICAgICAgIHJldHVybiB3cmFw
cGVyID8gKndyYXBwZXIgOiB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PigpOworICAgICAgICB9
CisKKyAgICAgICAgdmlydHVhbCB2b2lkIHNldChOb2RlKiBvYmosIHY4OjpQZXJzaXN0ZW50PHY4
OjpPYmplY3Q+IHdyYXBwZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVChvYmopOwor
ICAgICAgICAgICAgQVNTRVJUKCFvYmotPndyYXBwZXIoKSk7CisgICAgICAgICAgICB2ODo6UGVy
c2lzdGVudDx2ODo6T2JqZWN0PiogZW50cnkgPSBtX3RhYmxlLmFkZCh3cmFwcGVyKTsKKyAgICAg
ICAgICAgIG9iai0+c2V0V3JhcHBlcihlbnRyeSk7CisgICAgICAgICAgICB3cmFwcGVyLk1ha2VX
ZWFrKG9iaiwgd2Vha1JlZmVyZW5jZUNhbGxiYWNrKCkpOworICAgICAgICB9CisKKyAgICAgICAg
dmlydHVhbCBib29sIGNvbnRhaW5zKE5vZGUqIG9iaikKKyAgICAgICAgeworICAgICAgICAgICAg
cmV0dXJuIG9iai0+d3JhcHBlcigpOworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCB2b2lk
IHZpc2l0KERPTURhdGFTdG9yZSogc3RvcmUsIFZpc2l0b3IqIHZpc2l0b3IpCisgICAgICAgIHsK
KyAgICAgICAgICAgIG1fdGFibGUudmlzaXQoc3RvcmUsIHZpc2l0b3IpOworICAgICAgICB9CisK
KyAgICAgICAgdmlydHVhbCBib29sIHJlbW92ZUlmUHJlc2VudChOb2RlKiwgdjg6OlBlcnNpc3Rl
bnQ8djg6Ok9iamVjdD4pOworCisgICAgICAgIHZpcnR1YWwgdm9pZCBjbGVhcigpCisgICAgICAg
IHsKKyAgICAgICAgICAgIG1fdGFibGUuY2xlYXIoKTsKKyAgICAgICAgfQorCisgICAgcHJpdmF0
ZToKKyAgICAgICAgc3RhdGljIGludCBjb25zdCBudW1iZXJPZkVudHJpZXMgPSAoMSA8PCAxMCkg
LSAxOworCisgICAgICAgIHN0cnVjdCBDaHVua2VkVGFibGVUcmFpdHMgeworICAgICAgICAgICAg
dHlwZWRlZiBJbnRydXNpdmVET01XcmFwcGVyTWFwOjpWaXNpdG9yIFZpc2l0b3I7CisKKyAgICAg
ICAgICAgIHN0YXRpYyB2b2lkIG1vdmUodjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4qIHRhcmdl
dCwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4qIHNvdXJjZSkKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAqdGFyZ2V0ID0gKnNvdXJjZTsKKyAgICAgICAgICAgICAgICBOb2RlKiBu
b2RlID0gVjhOb2RlOjp0b05hdGl2ZSgqdGFyZ2V0KTsKKyAgICAgICAgICAgICAgICBBU1NFUlQo
bm9kZSk7CisgICAgICAgICAgICAgICAgbm9kZS0+c2V0V3JhcHBlcih0YXJnZXQpOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBzdGF0aWMgdm9pZCBjbGVhcih2ODo6UGVyc2lzdGVudDx2
ODo6T2JqZWN0PiogZW50cnkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgTm9kZSog
bm9kZSA9IFY4Tm9kZTo6dG9OYXRpdmUoKmVudHJ5KTsKKyAgICAgICAgICAgICAgICBBU1NFUlQo
bm9kZS0+d3JhcHBlcigpID09IGVudHJ5KTsKKworICAgICAgICAgICAgICAgIG5vZGUtPmNsZWFy
V3JhcHBlcigpOworICAgICAgICAgICAgICAgIGVudHJ5LT5EaXNwb3NlKCk7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0KERPTURhdGFTdG9yZSogc3RvcmUs
IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiBlbnRyeSwgVmlzaXRvciogdmlzaXRvcikKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBOb2RlKiBub2RlID0gVjhOb2RlOjp0b05hdGl2
ZSgqZW50cnkpOworICAgICAgICAgICAgICAgIEFTU0VSVChub2RlLT53cmFwcGVyKCkgPT0gZW50
cnkpOworCisgICAgICAgICAgICAgICAgdmlzaXRvci0+dmlzaXRET01XcmFwcGVyKHN0b3JlLCBu
b2RlLCAqZW50cnkpOworICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIHR5cGVk
ZWYgQ2h1bmtlZFRhYmxlPHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+LCBudW1iZXJPZkVudHJp
ZXMsIENodW5rZWRUYWJsZVRyYWl0cz4gVGFibGU7CisgICAgICAgIFRhYmxlIG1fdGFibGU7Cisg
ICAgfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1N0YXRpY0RPTURhdGFTdG9yZS5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvU3RhdGljRE9NRGF0YVN0b3JlLmgKaW5kZXggZmI2YWE0MjQ3YjE0
NjA5MmUwMmU2NjMyNmJhYmI0NWQzMmZhYTAzZC4uOTQwNjQ2ZTgzYTFjOTllMWYxMjcyMmUyMTNk
ZGRlZDViNTFlNzIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU3Rh
dGljRE9NRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU3RhdGlj
RE9NRGF0YVN0b3JlLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNkZWZpbmUgU3RhdGljRE9NRGF0YVN0
b3JlX2gKIAogI2luY2x1ZGUgIkRPTURhdGFTdG9yZS5oIgorI2luY2x1ZGUgIkludHJ1c2l2ZURP
TVdyYXBwZXJNYXAuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79935</attachid>
            <date>2011-01-24 09:33:24 -0800</date>
            <delta_ts>2011-01-24 12:22:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52911-20110124203322.patch</filename>
            <type>text/plain</type>
            <size>17430</size>
            <attacher name="anton muhin">antonm</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1ZTkzMGQwODU4NWIwY2MzMTMyODI2MDA2YTRmNWYwNGY0NmM1NzNlLi5i
MDk5YjgwOWM3ZjBjMThhY2M4OWNjYmZmZjQyZDZjNDgxOTAzZjI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzYgQEAKKzIwMTEtMDEtMjQgIEFudG9uIE11aGluICA8YW50b25tQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbdjhd
IFJlZmFjdG9yaW5nOiBleHRyYWN0IEludHJ1c2l2ZURPTVdyYXBwZXJNYXAgaW50byBhIHNlcHJh
dGUgY2xhc3MgYW5kIGZpbGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTI5MTEKKworICAgICAgICBQbGFpbiByZWZhY3RvcmluZywgY292ZXJlZCBi
eSB0aGUgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IEludHJ1c2l2
ZURPTVdyYXBwZXJNYXAuaCBhZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9ET01EYXRhU3Rv
cmUuY3BwOiBJbnRydXNpdmVET01XcmFwcGVyTWFwIGlzIG1vdmVkIG91dCBvZiBET01EYXRhU3Rv
cmUgY2xhc3MuCisgICAgICAgICogYmluZGluZ3MvdjgvRE9NRGF0YVN0b3JlLmg6IEludHJ1c2l2
ZURPTVdyYXBwZXJNYXAgaXMgbW92ZWQgb3V0IG9mIERPTURhdGFTdG9yZSBjbGFzcy4KKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9JbnRydXNpdmVET01XcmFwcGVyTWFwLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6Q2h1bmtlZFRhYmxlOjpDaHVua2VkVGFibGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2h1bmtlZFRhYmxlOjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6Q2h1bmtlZFRhYmxlOjpy
ZW1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2h1bmtlZFRhYmxlOjpjbGVhcik6CisgICAgICAg
IChXZWJDb3JlOjpDaHVua2VkVGFibGU6OnZpc2l0KToKKyAgICAgICAgKFdlYkNvcmU6OkNodW5r
ZWRUYWJsZTo6Q2h1bms6OkNodW5rKToKKyAgICAgICAgKFdlYkNvcmU6OkNodW5rZWRUYWJsZTo6
Y2xlYXJFbnRyaWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNodW5rZWRUYWJsZTo6dmlzaXRFbnRy
aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkludHJ1c2l2ZURPTVdyYXBwZXJNYXA6OkludHJ1c2l2
ZURPTVdyYXBwZXJNYXApOgorICAgICAgICAoV2ViQ29yZTo6SW50cnVzaXZlRE9NV3JhcHBlck1h
cDo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkludHJ1c2l2ZURPTVdyYXBwZXJNYXA6OnNldCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnRydXNpdmVET01XcmFwcGVyTWFwOjpjb250YWlucyk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRydXNpdmVET01XcmFwcGVyTWFwOjp2aXNpdCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnRydXNpdmVET01XcmFwcGVyTWFwOjpyZW1vdmVJZlByZXNlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW50cnVzaXZlRE9NV3JhcHBlck1hcDo6Y2xlYXIpOgorICAgICAgICAo
V2ViQ29yZTo6SW50cnVzaXZlRE9NV3JhcHBlck1hcDo6Q2h1bmtlZFRhYmxlVHJhaXRzOjptb3Zl
KToKKyAgICAgICAgKFdlYkNvcmU6OkludHJ1c2l2ZURPTVdyYXBwZXJNYXA6OkNodW5rZWRUYWJs
ZVRyYWl0czo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6SW50cnVzaXZlRE9NV3JhcHBlck1h
cDo6Q2h1bmtlZFRhYmxlVHJhaXRzOjp2aXNpdCk6CisgICAgICAgICogYmluZGluZ3MvdjgvU3Rh
dGljRE9NRGF0YVN0b3JlLmg6IGluY2x1ZGUgYWRkZWQuCisKIDIwMTEtMDEtMjEgIEFudG9uIE11
aGluICA8YW50b25tQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBOYXRlIENo
YXBpbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAwMzQ4YzA2N2EzMjU3MzcxNjA3YzFiODFmNTBmM2Nm
MDAwNzNiMDc3Li42OTEyNGJlYjYxZjg1NmFkNWY0N2UxYzMwNjU1ZGJmYzYyMTYyOTk4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC04OTMsNiArODkzLDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92
OC9ET01EYXRhU3RvcmUuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvRE9NV3JhcHBlcldv
cmxkLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvRE9NV3JhcHBlcldvcmxkLmgnLAor
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L0ludHJ1c2l2ZURPTVdyYXBwZXJNYXAuaCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvdjgvSXNvbGF0ZWRXb3JsZC5jcHAnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL3Y4L0lzb2xhdGVkV29ybGQuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvSmF2
YVNjcmlwdENhbGxGcmFtZS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvRE9NRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTURh
dGFTdG9yZS5jcHAKaW5kZXggNTM5M2JkOTcxNzMzZDgzNjU0YWNjZGI0ZTAzMjAxMWY5ZWQyOTc3
My4uMjFiNDdhNDljYWVmNDQ4ZThjYTIyOGQ0MzU5YzQyNmE3MmU0Mzc4MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9ET01EYXRhU3RvcmUuY3BwCkBAIC0xNzMsMjAgKzE3Myw2IEBA
IHZvaWQgRE9NRGF0YVN0b3JlOjp3ZWFrTm9kZUNhbGxiYWNrKHY4OjpQZXJzaXN0ZW50PHY4OjpW
YWx1ZT4gdmFsdWUsIHZvaWQqIGRvbU9iCiAgICAgbm9kZS0+ZGVyZWYoKTsgLy8gTm9ib2R5IG92
ZXJyaWRlcyBOb2RlOjpkZXJlZiBzbyBpdCdzIHNhZmUKIH0KIAotYm9vbCBET01EYXRhU3RvcmU6
OkludHJ1c2l2ZURPTVdyYXBwZXJNYXA6OnJlbW92ZUlmUHJlc2VudChOb2RlKiBvYmosIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHZhbHVlKQotewotICAgIEFTU0VSVChvYmopOwotICAgIHY4
OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiBlbnRyeSA9IG9iai0+d3JhcHBlcigpOwotICAgIGlm
ICghZW50cnkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoKmVudHJ5ICE9IHZhbHVl
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgb2JqLT5jbGVhcldyYXBwZXIoKTsKLSAgICBt
X3RhYmxlLnJlbW92ZShlbnRyeSk7Ci0gICAgdmFsdWUuRGlzcG9zZSgpOwotICAgIHJldHVybiB0
cnVlOwotfQotCiAjaWYgRU5BQkxFKFNWRykKIAogdm9pZCBET01EYXRhU3RvcmU6OndlYWtTVkdF
bGVtZW50SW5zdGFuY2VDYWxsYmFjayh2ODo6UGVyc2lzdGVudDx2ODo6VmFsdWU+IHY4T2JqZWN0
LCB2b2lkKiBkb21PYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9ET01EYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTURhdGFTdG9y
ZS5oCmluZGV4IGRiZWFkOWNiYTA5ZTU3MjNkNGI0MWFlMmEzNWRlZDBmZjRhODMzNDEuLmZmYjlk
ZjVhZDZjZjZkNjNhNzQ2NWEzOTJjMTI0NGMwY2M3ODc2YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L0RPTURhdGFTdG9yZS5oCkBAIC01MSw5NSArNTEsNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICAgICB0eXBlZGVmIFdURjo6VmVjdG9yPERPTURhdGFTdG9yZSo+IERPTURhdGFM
aXN0OwogCi0gICAgdGVtcGxhdGUgPGNsYXNzIFQsIGludCBDSFVOS19TSVpFLCBjbGFzcyBUcmFp
dHM+Ci0gICAgY2xhc3MgQ2h1bmtlZFRhYmxlIHsKLSAgICAgIHB1YmxpYzoKLSAgICAgICAgQ2h1
bmtlZFRhYmxlKCkgOiBtX2NodW5rcygwKSwgbV9jdXJyZW50KDApLCBtX2xhc3QoMCkgeyB9Ci0K
LSAgICAgICAgVCogYWRkKFQgZWxlbWVudCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKG1f
Y3VycmVudCA9PSBtX2xhc3QpIHsKLSAgICAgICAgICAgICAgICBtX2NodW5rcyA9IG5ldyBDaHVu
ayhtX2NodW5rcyk7Ci0gICAgICAgICAgICAgICAgbV9jdXJyZW50ID0gbV9jaHVua3MtPm1fZW50
cmllczsKLSAgICAgICAgICAgICAgICBtX2xhc3QgPSBtX2N1cnJlbnQgKyBDSFVOS19TSVpFOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgQVNTRVJUKChtX2NodW5rcy0+bV9lbnRyaWVzIDw9
IG1fY3VycmVudCkgJiYgKG1fY3VycmVudCA8IG1fbGFzdCkpOwotICAgICAgICAgICAgVCogcCA9
IG1fY3VycmVudCsrOwotICAgICAgICAgICAgKnAgPSBlbGVtZW50OwotICAgICAgICAgICAgcmV0
dXJuIHA7Ci0gICAgICAgIH0KLQotICAgICAgICB2b2lkIHJlbW92ZShUKiBlbGVtZW50KQotICAg
ICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQoZWxlbWVudCk7Ci0gICAgICAgICAgICBBU1NFUlQo
bV9jdXJyZW50ID4gbV9jaHVua3MtPm1fZW50cmllcyk7Ci0gICAgICAgICAgICBtX2N1cnJlbnQt
LTsKLSAgICAgICAgICAgIGlmIChlbGVtZW50ICE9IG1fY3VycmVudCkKLSAgICAgICAgICAgICAg
ICBUcmFpdHM6Om1vdmUoZWxlbWVudCwgbV9jdXJyZW50KTsKLSAgICAgICAgICAgIGlmIChtX2N1
cnJlbnQgPT0gbV9jaHVua3MtPm1fZW50cmllcykgewotICAgICAgICAgICAgICAgIENodW5rKiB0
b0RlbGV0ZSA9IG1fY2h1bmtzOwotICAgICAgICAgICAgICAgIG1fY2h1bmtzID0gdG9EZWxldGUt
Pm1fcHJldmlvdXM7Ci0gICAgICAgICAgICAgICAgbV9jdXJyZW50ID0gbV9sYXN0ID0gbV9jaHVu
a3MgPyBtX2NodW5rcy0+bV9lbnRyaWVzICsgQ0hVTktfU0laRSA6IDA7Ci0gICAgICAgICAgICAg
ICAgZGVsZXRlIHRvRGVsZXRlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgQVNTRVJUKCFt
X2NodW5rcyB8fCAoKG1fY2h1bmtzLT5tX2VudHJpZXMgPCBtX2N1cnJlbnQpICYmIChtX2N1cnJl
bnQgPD0gbV9sYXN0KSkpOwotICAgICAgICB9Ci0KLSAgICAgICAgdm9pZCBjbGVhcigpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGlmICghbV9jaHVua3MpCi0gICAgICAgICAgICAgICAgcmV0dXJu
OwotCi0gICAgICAgICAgICBjbGVhckVudHJpZXMobV9jaHVua3MtPm1fZW50cmllcywgbV9jdXJy
ZW50KTsKLSAgICAgICAgICAgIENodW5rKiBsYXN0ID0gbV9jaHVua3M7Ci0gICAgICAgICAgICB3
aGlsZSAodHJ1ZSkgewotICAgICAgICAgICAgICAgIENodW5rKiBwcmV2aW91cyA9IGxhc3QtPm1f
cHJldmlvdXM7Ci0gICAgICAgICAgICAgICAgaWYgKCFwcmV2aW91cykKLSAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgZGVsZXRlIGxhc3Q7Ci0gICAgICAgICAgICAg
ICAgY2xlYXJFbnRyaWVzKHByZXZpb3VzLT5tX2VudHJpZXMsIHByZXZpb3VzLT5tX2VudHJpZXMg
KyBDSFVOS19TSVpFKTsKLSAgICAgICAgICAgICAgICBsYXN0ID0gcHJldmlvdXM7Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIG1fY2h1bmtzID0gbGFzdDsKLSAgICAgICAgICAgIG1fY3Vy
cmVudCA9IG1fY2h1bmtzLT5tX2VudHJpZXM7Ci0gICAgICAgICAgICBtX2xhc3QgPSBtX2N1cnJl
bnQgKyBDSFVOS19TSVpFOwotICAgICAgICB9Ci0KLSAgICAgICAgdm9pZCB2aXNpdChET01EYXRh
U3RvcmUqIHN0b3JlLCB0eXBlbmFtZSBUcmFpdHM6OlZpc2l0b3IqIHZpc2l0b3IpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIGlmICghbV9jaHVua3MpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwot
Ci0gICAgICAgICAgICB2aXNpdEVudHJpZXMoc3RvcmUsIG1fY2h1bmtzLT5tX2VudHJpZXMsIG1f
Y3VycmVudCwgdmlzaXRvcik7Ci0gICAgICAgICAgICBmb3IgKENodW5rKiBjaHVuayA9IG1fY2h1
bmtzLT5tX3ByZXZpb3VzOyBjaHVuazsgY2h1bmsgPSBjaHVuay0+bV9wcmV2aW91cykKLSAgICAg
ICAgICAgICAgICB2aXNpdEVudHJpZXMoc3RvcmUsIGNodW5rLT5tX2VudHJpZXMsIGNodW5rLT5t
X2VudHJpZXMgKyBDSFVOS19TSVpFLCB2aXNpdG9yKTsKLSAgICAgICAgfQotCi0gICAgICBwcml2
YXRlOgotICAgICAgICBzdHJ1Y3QgQ2h1bmsgewotICAgICAgICAgICAgZXhwbGljaXQgQ2h1bmso
Q2h1bmsqIHByZXZpb3VzKSA6IG1fcHJldmlvdXMocHJldmlvdXMpIHsgfQotICAgICAgICAgICAg
Q2h1bmsqIGNvbnN0IG1fcHJldmlvdXM7Ci0gICAgICAgICAgICBUIG1fZW50cmllc1tDSFVOS19T
SVpFXTsKLSAgICAgICAgfTsKLQotICAgICAgICBzdGF0aWMgdm9pZCBjbGVhckVudHJpZXMoVCog
Zmlyc3QsIFQqIGxhc3QpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvciAoVCogZW50cnkgPSBm
aXJzdDsgZW50cnkgPCBsYXN0OyBlbnRyeSsrKQotICAgICAgICAgICAgICAgIFRyYWl0czo6Y2xl
YXIoZW50cnkpOwotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRFbnRyaWVz
KERPTURhdGFTdG9yZSogc3RvcmUsIFQqIGZpcnN0LCBUKiBsYXN0LCB0eXBlbmFtZSBUcmFpdHM6
OlZpc2l0b3IqIHZpc2l0b3IpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvciAoVCogZW50cnkg
PSBmaXJzdDsgZW50cnkgPCBsYXN0OyBlbnRyeSsrKQotICAgICAgICAgICAgICAgIFRyYWl0czo6
dmlzaXQoc3RvcmUsIGVudHJ5LCB2aXNpdG9yKTsKLSAgICAgICAgfQotCi0gICAgICAgIENodW5r
KiBtX2NodW5rczsKLSAgICAgICAgVCogbV9jdXJyZW50OwotICAgICAgICBUKiBtX2xhc3Q7Ci0g
ICAgfTsKLQogICAgIC8vIERPTURhdGFTdG9yZQogICAgIC8vCiAgICAgLy8gRE9NRGF0YVN0b3Jl
IGlzIHRoZSBiYWNraW5nIHN0b3JlIHRoYXQgaG9sZHMgdGhlIG1hcHMgYmV0d2VlbiBET00gb2Jq
ZWN0cwpAQCAtMTYxLDc5ICs3Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogICAg
ICAgICB9OwogCi0gICAgICAgIGNsYXNzIEludHJ1c2l2ZURPTVdyYXBwZXJNYXAgOiBwdWJsaWMg
QWJzdHJhY3RXZWFrUmVmZXJlbmNlTWFwPE5vZGUsIHY4OjpPYmplY3Q+IHsKLSAgICAgICAgcHVi
bGljOgotICAgICAgICAgICAgSW50cnVzaXZlRE9NV3JhcHBlck1hcCh2ODo6V2Vha1JlZmVyZW5j
ZUNhbGxiYWNrIGNhbGxiYWNrKQotICAgICAgICAgICAgICAgIDogQWJzdHJhY3RXZWFrUmVmZXJl
bmNlTWFwPE5vZGUsIHY4OjpPYmplY3Q+KGNhbGxiYWNrKSB7IH0KLQotICAgICAgICAgICAgdmly
dHVhbCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiBnZXQoTm9kZSogb2JqKQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiB3cmFwcGVy
ID0gb2JqLT53cmFwcGVyKCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXIgPyAqd3Jh
cHBlciA6IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KCk7Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXQoTm9kZSogb2JqLCB2ODo6UGVyc2lzdGVudDx2ODo6
T2JqZWN0PiB3cmFwcGVyKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEFTU0VSVChv
YmopOwotICAgICAgICAgICAgICAgIEFTU0VSVCghb2JqLT53cmFwcGVyKCkpOwotICAgICAgICAg
ICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiBlbnRyeSA9IG1fdGFibGUuYWRkKHdy
YXBwZXIpOwotICAgICAgICAgICAgICAgIG9iai0+c2V0V3JhcHBlcihlbnRyeSk7Ci0gICAgICAg
ICAgICAgICAgd3JhcHBlci5NYWtlV2VhayhvYmosIHdlYWtSZWZlcmVuY2VDYWxsYmFjaygpKTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmlydHVhbCBib29sIGNvbnRhaW5zKE5vZGUq
IG9iaikKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gb2JqLT53cmFwcGVy
KCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZpcnR1YWwgdm9pZCB2aXNpdChET01E
YXRhU3RvcmUqIHN0b3JlLCBWaXNpdG9yKiB2aXNpdG9yKQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIG1fdGFibGUudmlzaXQoc3RvcmUsIHZpc2l0b3IpOwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICB2aXJ0dWFsIGJvb2wgcmVtb3ZlSWZQcmVzZW50KE5vZGUqLCB2ODo6UGVy
c2lzdGVudDx2ODo6T2JqZWN0Pik7Ci0KLSAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBjbGVhcigp
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgbV90YWJsZS5jbGVhcigpOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgIHByaXZhdGU6Ci0gICAgICAgICAgICBzdGF0aWMgaW50IGNvbnN0
IG51bWJlck9mRW50cmllcyA9ICgxIDw8IDEwKSAtIDE7Ci0KLSAgICAgICAgICAgIHN0cnVjdCBD
aHVua2VkVGFibGVUcmFpdHMgewotICAgICAgICAgICAgICAgIHR5cGVkZWYgSW50cnVzaXZlRE9N
V3JhcHBlck1hcDo6VmlzaXRvciBWaXNpdG9yOwotCi0gICAgICAgICAgICAgICAgc3RhdGljIHZv
aWQgbW92ZSh2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiogdGFyZ2V0LCB2ODo6UGVyc2lzdGVu
dDx2ODo6T2JqZWN0Piogc291cmNlKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgKnRhcmdldCA9ICpzb3VyY2U7Ci0gICAgICAgICAgICAgICAgICAgIE5vZGUqIG5vZGUg
PSBWOE5vZGU6OnRvTmF0aXZlKCp0YXJnZXQpOwotICAgICAgICAgICAgICAgICAgICBBU1NFUlQo
bm9kZSk7Ci0gICAgICAgICAgICAgICAgICAgIG5vZGUtPnNldFdyYXBwZXIodGFyZ2V0KTsKLSAg
ICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBzdGF0aWMgdm9pZCBjbGVhcih2ODo6
UGVyc2lzdGVudDx2ODo6T2JqZWN0PiogZW50cnkpCi0gICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICBOb2RlKiBub2RlID0gVjhOb2RlOjp0b05hdGl2ZSgqZW50cnkpOwotICAg
ICAgICAgICAgICAgICAgICBBU1NFUlQobm9kZS0+d3JhcHBlcigpID09IGVudHJ5KTsKLQotICAg
ICAgICAgICAgICAgICAgICBub2RlLT5jbGVhcldyYXBwZXIoKTsKLSAgICAgICAgICAgICAgICAg
ICAgZW50cnktPkRpc3Bvc2UoKTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAg
ICBzdGF0aWMgdm9pZCB2aXNpdChET01EYXRhU3RvcmUqIHN0b3JlLCB2ODo6UGVyc2lzdGVudDx2
ODo6T2JqZWN0PiogZW50cnksIFZpc2l0b3IqIHZpc2l0b3IpCi0gICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICBOb2RlKiBub2RlID0gVjhOb2RlOjp0b05hdGl2ZSgqZW50cnkp
OwotICAgICAgICAgICAgICAgICAgICBBU1NFUlQobm9kZS0+d3JhcHBlcigpID09IGVudHJ5KTsK
LQotICAgICAgICAgICAgICAgICAgICB2aXNpdG9yLT52aXNpdERPTVdyYXBwZXIoc3RvcmUsIG5v
ZGUsICplbnRyeSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfTsKLQotICAgICAg
ICAgICAgdHlwZWRlZiBDaHVua2VkVGFibGU8djg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4sIG51
bWJlck9mRW50cmllcywgQ2h1bmtlZFRhYmxlVHJhaXRzPiBUYWJsZTsKLSAgICAgICAgICAgIFRh
YmxlIG1fdGFibGU7Ci0gICAgICAgIH07Ci0KICAgICAgICAgRE9NRGF0YVN0b3JlKERPTURhdGEq
KTsKICAgICAgICAgdmlydHVhbCB+RE9NRGF0YVN0b3JlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0ludHJ1c2l2ZURPTVdyYXBwZXJNYXAuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L0ludHJ1c2l2ZURPTVdyYXBwZXJNYXAuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
YzA2NmYwMTAxMzdiZWVkN2E0ZmQzYzNjYTMzMzlmOWIwOTE0MGJmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSW50cnVzaXZlRE9NV3JhcHBlck1hcC5oCkBA
IC0wLDAgKzEsMjE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBJbnRydXNpdmVET01XcmFwcGVyTWFwX2gKKyNkZWZpbmUg
SW50cnVzaXZlRE9NV3JhcHBlck1hcF9oCisKKyNpbmNsdWRlICJET01EYXRhU3RvcmUuaCIKKyNp
bmNsdWRlICJWOE5vZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0ZW1wbGF0ZSA8Y2xh
c3MgVCwgaW50IENIVU5LX1NJWkUsIGNsYXNzIFRyYWl0cz4KK2NsYXNzIENodW5rZWRUYWJsZSB7
CisgIHB1YmxpYzoKKyAgICBDaHVua2VkVGFibGUoKSA6IG1fY2h1bmtzKDApLCBtX2N1cnJlbnQo
MCksIG1fbGFzdCgwKSB7IH0KKworICAgIFQqIGFkZChUIGVsZW1lbnQpCisgICAgeworICAgICAg
ICBpZiAobV9jdXJyZW50ID09IG1fbGFzdCkgeworICAgICAgICAgICAgbV9jaHVua3MgPSBuZXcg
Q2h1bmsobV9jaHVua3MpOworICAgICAgICAgICAgbV9jdXJyZW50ID0gbV9jaHVua3MtPm1fZW50
cmllczsKKyAgICAgICAgICAgIG1fbGFzdCA9IG1fY3VycmVudCArIENIVU5LX1NJWkU7CisgICAg
ICAgIH0KKyAgICAgICAgQVNTRVJUKChtX2NodW5rcy0+bV9lbnRyaWVzIDw9IG1fY3VycmVudCkg
JiYgKG1fY3VycmVudCA8IG1fbGFzdCkpOworICAgICAgICBUKiBwID0gbV9jdXJyZW50Kys7Cisg
ICAgICAgICpwID0gZWxlbWVudDsKKyAgICAgICAgcmV0dXJuIHA7CisgICAgfQorCisgICAgdm9p
ZCByZW1vdmUoVCogZWxlbWVudCkKKyAgICB7CisgICAgICAgIEFTU0VSVChlbGVtZW50KTsKKyAg
ICAgICAgQVNTRVJUKG1fY3VycmVudCA+IG1fY2h1bmtzLT5tX2VudHJpZXMpOworICAgICAgICBt
X2N1cnJlbnQtLTsKKyAgICAgICAgaWYgKGVsZW1lbnQgIT0gbV9jdXJyZW50KQorICAgICAgICAg
ICAgVHJhaXRzOjptb3ZlKGVsZW1lbnQsIG1fY3VycmVudCk7CisgICAgICAgIGlmIChtX2N1cnJl
bnQgPT0gbV9jaHVua3MtPm1fZW50cmllcykgeworICAgICAgICAgICAgQ2h1bmsqIHRvRGVsZXRl
ID0gbV9jaHVua3M7CisgICAgICAgICAgICBtX2NodW5rcyA9IHRvRGVsZXRlLT5tX3ByZXZpb3Vz
OworICAgICAgICAgICAgbV9jdXJyZW50ID0gbV9sYXN0ID0gbV9jaHVua3MgPyBtX2NodW5rcy0+
bV9lbnRyaWVzICsgQ0hVTktfU0laRSA6IDA7CisgICAgICAgICAgICBkZWxldGUgdG9EZWxldGU7
CisgICAgICAgIH0KKyAgICAgICAgQVNTRVJUKCFtX2NodW5rcyB8fCAoKG1fY2h1bmtzLT5tX2Vu
dHJpZXMgPCBtX2N1cnJlbnQpICYmIChtX2N1cnJlbnQgPD0gbV9sYXN0KSkpOworICAgIH0KKwor
ICAgIHZvaWQgY2xlYXIoKQorICAgIHsKKyAgICAgICAgaWYgKCFtX2NodW5rcykKKyAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICBjbGVhckVudHJpZXMobV9jaHVua3MtPm1fZW50cmllcywg
bV9jdXJyZW50KTsKKyAgICAgICAgQ2h1bmsqIGxhc3QgPSBtX2NodW5rczsKKyAgICAgICAgd2hp
bGUgKHRydWUpIHsKKyAgICAgICAgICAgIENodW5rKiBwcmV2aW91cyA9IGxhc3QtPm1fcHJldmlv
dXM7CisgICAgICAgICAgICBpZiAoIXByZXZpb3VzKQorICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgZGVsZXRlIGxhc3Q7CisgICAgICAgICAgICBjbGVhckVudHJpZXMocHJldmlv
dXMtPm1fZW50cmllcywgcHJldmlvdXMtPm1fZW50cmllcyArIENIVU5LX1NJWkUpOworICAgICAg
ICAgICAgbGFzdCA9IHByZXZpb3VzOworICAgICAgICB9CisKKyAgICAgICAgbV9jaHVua3MgPSBs
YXN0OworICAgICAgICBtX2N1cnJlbnQgPSBtX2NodW5rcy0+bV9lbnRyaWVzOworICAgICAgICBt
X2xhc3QgPSBtX2N1cnJlbnQgKyBDSFVOS19TSVpFOworICAgIH0KKworICAgIHZvaWQgdmlzaXQo
RE9NRGF0YVN0b3JlKiBzdG9yZSwgdHlwZW5hbWUgVHJhaXRzOjpWaXNpdG9yKiB2aXNpdG9yKQor
ICAgIHsKKyAgICAgICAgaWYgKCFtX2NodW5rcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICB2aXNpdEVudHJpZXMoc3RvcmUsIG1fY2h1bmtzLT5tX2VudHJpZXMsIG1fY3VycmVudCwg
dmlzaXRvcik7CisgICAgICAgIGZvciAoQ2h1bmsqIGNodW5rID0gbV9jaHVua3MtPm1fcHJldmlv
dXM7IGNodW5rOyBjaHVuayA9IGNodW5rLT5tX3ByZXZpb3VzKQorICAgICAgICAgICAgdmlzaXRF
bnRyaWVzKHN0b3JlLCBjaHVuay0+bV9lbnRyaWVzLCBjaHVuay0+bV9lbnRyaWVzICsgQ0hVTktf
U0laRSwgdmlzaXRvcik7CisgICAgfQorCisgIHByaXZhdGU6CisgICAgc3RydWN0IENodW5rIHsK
KyAgICAgICAgZXhwbGljaXQgQ2h1bmsoQ2h1bmsqIHByZXZpb3VzKSA6IG1fcHJldmlvdXMocHJl
dmlvdXMpIHsgfQorICAgICAgICBDaHVuayogY29uc3QgbV9wcmV2aW91czsKKyAgICAgICAgVCBt
X2VudHJpZXNbQ0hVTktfU0laRV07CisgICAgfTsKKworICAgIHN0YXRpYyB2b2lkIGNsZWFyRW50
cmllcyhUKiBmaXJzdCwgVCogbGFzdCkKKyAgICB7CisgICAgICAgIGZvciAoVCogZW50cnkgPSBm
aXJzdDsgZW50cnkgPCBsYXN0OyBlbnRyeSsrKQorICAgICAgICAgICAgVHJhaXRzOjpjbGVhcihl
bnRyeSk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgdmlzaXRFbnRyaWVzKERPTURhdGFTdG9y
ZSogc3RvcmUsIFQqIGZpcnN0LCBUKiBsYXN0LCB0eXBlbmFtZSBUcmFpdHM6OlZpc2l0b3IqIHZp
c2l0b3IpCisgICAgeworICAgICAgICBmb3IgKFQqIGVudHJ5ID0gZmlyc3Q7IGVudHJ5IDwgbGFz
dDsgZW50cnkrKykKKyAgICAgICAgICAgIFRyYWl0czo6dmlzaXQoc3RvcmUsIGVudHJ5LCB2aXNp
dG9yKTsKKyAgICB9CisKKyAgICBDaHVuayogbV9jaHVua3M7CisgICAgVCogbV9jdXJyZW50Owor
ICAgIFQqIG1fbGFzdDsKK307CisKKworY2xhc3MgSW50cnVzaXZlRE9NV3JhcHBlck1hcCA6IHB1
YmxpYyBBYnN0cmFjdFdlYWtSZWZlcmVuY2VNYXA8Tm9kZSwgdjg6Ok9iamVjdD4geworcHVibGlj
OgorICAgIEludHJ1c2l2ZURPTVdyYXBwZXJNYXAodjg6OldlYWtSZWZlcmVuY2VDYWxsYmFjayBj
YWxsYmFjaykKKyAgICAgICAgOiBBYnN0cmFjdFdlYWtSZWZlcmVuY2VNYXA8Tm9kZSwgdjg6Ok9i
amVjdD4oY2FsbGJhY2spIHsgfQorCisgICAgdmlydHVhbCB2ODo6UGVyc2lzdGVudDx2ODo6T2Jq
ZWN0PiBnZXQoTm9kZSogb2JqKQorICAgIHsKKyAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9i
amVjdD4qIHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKTsKKyAgICAgICAgcmV0dXJuIHdyYXBwZXIg
PyAqd3JhcHBlciA6IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KCk7CisgICAgfQorCisgICAg
dmlydHVhbCB2b2lkIHNldChOb2RlKiBvYmosIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdy
YXBwZXIpCisgICAgeworICAgICAgICBBU1NFUlQob2JqKTsKKyAgICAgICAgQVNTRVJUKCFvYmot
PndyYXBwZXIoKSk7CisgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiBlbnRyeSA9
IG1fdGFibGUuYWRkKHdyYXBwZXIpOworICAgICAgICBvYmotPnNldFdyYXBwZXIoZW50cnkpOwor
ICAgICAgICB3cmFwcGVyLk1ha2VXZWFrKG9iaiwgd2Vha1JlZmVyZW5jZUNhbGxiYWNrKCkpOwor
ICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCBjb250YWlucyhOb2RlKiBvYmopCisgICAgeworICAg
ICAgICByZXR1cm4gb2JqLT53cmFwcGVyKCk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIHZp
c2l0KERPTURhdGFTdG9yZSogc3RvcmUsIFZpc2l0b3IqIHZpc2l0b3IpCisgICAgeworICAgICAg
ICBtX3RhYmxlLnZpc2l0KHN0b3JlLCB2aXNpdG9yKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIGJv
b2wgcmVtb3ZlSWZQcmVzZW50KE5vZGUqIG9iaiwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4g
dmFsdWUpCisgICAgeworICAgICAgICBBU1NFUlQob2JqKTsKKyAgICAgICAgdjg6OlBlcnNpc3Rl
bnQ8djg6Ok9iamVjdD4qIGVudHJ5ID0gb2JqLT53cmFwcGVyKCk7CisgICAgICAgIGlmICghZW50
cnkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICgqZW50cnkgIT0gdmFs
dWUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG9iai0+Y2xlYXJXcmFwcGVy
KCk7CisgICAgICAgIG1fdGFibGUucmVtb3ZlKGVudHJ5KTsKKyAgICAgICAgdmFsdWUuRGlzcG9z
ZSgpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKworICAgIHZpcnR1YWwgdm9pZCBj
bGVhcigpCisgICAgeworICAgICAgICBtX3RhYmxlLmNsZWFyKCk7CisgICAgfQorCitwcml2YXRl
OgorICAgIHN0YXRpYyBpbnQgY29uc3QgbnVtYmVyT2ZFbnRyaWVzID0gKDEgPDwgMTApIC0gMTsK
KworICAgIHN0cnVjdCBDaHVua2VkVGFibGVUcmFpdHMgeworICAgICAgICB0eXBlZGVmIEludHJ1
c2l2ZURPTVdyYXBwZXJNYXA6OlZpc2l0b3IgVmlzaXRvcjsKKworICAgICAgICBzdGF0aWMgdm9p
ZCBtb3ZlKHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+KiB0YXJnZXQsIHY4OjpQZXJzaXN0ZW50
PHY4OjpPYmplY3Q+KiBzb3VyY2UpCisgICAgICAgIHsKKyAgICAgICAgICAgICp0YXJnZXQgPSAq
c291cmNlOworICAgICAgICAgICAgTm9kZSogbm9kZSA9IFY4Tm9kZTo6dG9OYXRpdmUoKnRhcmdl
dCk7CisgICAgICAgICAgICBBU1NFUlQobm9kZSk7CisgICAgICAgICAgICBub2RlLT5zZXRXcmFw
cGVyKHRhcmdldCk7CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgdm9pZCBjbGVhcih2ODo6
UGVyc2lzdGVudDx2ODo6T2JqZWN0PiogZW50cnkpCisgICAgICAgIHsKKyAgICAgICAgICAgIE5v
ZGUqIG5vZGUgPSBWOE5vZGU6OnRvTmF0aXZlKCplbnRyeSk7CisgICAgICAgICAgICBBU1NFUlQo
bm9kZS0+d3JhcHBlcigpID09IGVudHJ5KTsKKworICAgICAgICAgICAgbm9kZS0+Y2xlYXJXcmFw
cGVyKCk7CisgICAgICAgICAgICBlbnRyeS0+RGlzcG9zZSgpOworICAgICAgICB9CisKKyAgICAg
ICAgc3RhdGljIHZvaWQgdmlzaXQoRE9NRGF0YVN0b3JlKiBzdG9yZSwgdjg6OlBlcnNpc3RlbnQ8
djg6Ok9iamVjdD4qIGVudHJ5LCBWaXNpdG9yKiB2aXNpdG9yKQorICAgICAgICB7CisgICAgICAg
ICAgICBOb2RlKiBub2RlID0gVjhOb2RlOjp0b05hdGl2ZSgqZW50cnkpOworICAgICAgICAgICAg
QVNTRVJUKG5vZGUtPndyYXBwZXIoKSA9PSBlbnRyeSk7CisKKyAgICAgICAgICAgIHZpc2l0b3It
PnZpc2l0RE9NV3JhcHBlcihzdG9yZSwgbm9kZSwgKmVudHJ5KTsKKyAgICAgICAgfQorICAgIH07
CisKKyAgICB0eXBlZGVmIENodW5rZWRUYWJsZTx2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Piwg
bnVtYmVyT2ZFbnRyaWVzLCBDaHVua2VkVGFibGVUcmFpdHM+IFRhYmxlOworICAgIFRhYmxlIG1f
dGFibGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU3RhdGljRE9NRGF0YVN0b3JlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TdGF0aWNET01EYXRhU3RvcmUuaAppbmRleCBmYjZhYTQy
NDdiMTQ2MDkyZTAyZTY2MzI2YmFiYjQ1ZDMyZmFhMDNkLi45NDA2NDZlODNhMWM5OWUxZjEyNzIy
ZTIxM2RkZGVkNWI1MWU3MjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9TdGF0aWNET01EYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9T
dGF0aWNET01EYXRhU3RvcmUuaApAQCAtMzIsNiArMzIsNyBAQAogI2RlZmluZSBTdGF0aWNET01E
YXRhU3RvcmVfaAogCiAjaW5jbHVkZSAiRE9NRGF0YVN0b3JlLmgiCisjaW5jbHVkZSAiSW50cnVz
aXZlRE9NV3JhcHBlck1hcC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>