<?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>123619</bug_id>
          
          <creation_ts>2013-11-01 10:09:54 -0700</creation_ts>
          <short_desc>Move duplicate code in TrackPrivate classes to a common base class</short_desc>
          <delta_ts>2013-11-04 17:35:37 -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>Media</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="Brendan Long">b.long</reporter>
          <assigned_to name="Brendan Long">b.long</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>menard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>945916</commentid>
    <comment_count>0</comment_count>
    <who name="Brendan Long">b.long</who>
    <bug_when>2013-11-01 10:09:54 -0700</bug_when>
    <thetext>Move duplicate code in TrackPrivate classes to a common base class</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945923</commentid>
    <comment_count>1</comment_count>
      <attachid>215735</attachid>
    <who name="Brendan Long">b.long</who>
    <bug_when>2013-11-01 10:19:40 -0700</bug_when>
    <thetext>Created attachment 215735
Patch

Question: Was it correct to move the `WTF_MAKE_NONCOPYABLE(VideoTrackPrivate); WTF_MAKE_FAST_ALLOCATED;` to TrackPrivateBase, or does that need to stay in the derived classes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945965</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-11-01 11:34:25 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Question: Was it correct to move the `WTF_MAKE_NONCOPYABLE(VideoTrackPrivate); WTF_MAKE_FAST_ALLOCATED;` to TrackPrivateBase, or does that need to stay in the derived classes?

WTF_MAKE_NONCOPYABLE can just be in the base class. I don’t know the answer about WTF_MAKE_FAST_ALLOCATED.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946646</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-11-04 06:26:41 -0800</bug_when>
    <thetext>The patch looks good to me provided the question about WTF_MAKE_FAST_ALLOCATED gets an answer :)

Looking at the definition of the macro in Source/WTF/wtf/FastMalloc.h it seems to me that it can be used in the base class and that would be it. It&apos;d be better to confirm that with someone more familiar with that though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946933</commentid>
    <comment_count>4</comment_count>
      <attachid>215735</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-04 17:35:35 -0800</bug_when>
    <thetext>Comment on attachment 215735
Patch

Clearing flags on attachment: 215735

Committed r158626: &lt;http://trac.webkit.org/changeset/158626&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946934</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-04 17:35:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215735</attachid>
            <date>2013-11-01 10:19:40 -0700</date>
            <delta_ts>2013-11-04 17:35:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123619-20131101121939.patch</filename>
            <type>text/plain</type>
            <size>30244</size>
            <attacher name="Brendan Long">b.long</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4NDM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmNhMmFhODk0NTE4NmNm
YTI3ZWVkNDE0ZGMzMTU0ZTYzOTg4NDQ2Ni4uMDg1NDY2MzRjMjM4ZWU4ZDRiNmUzYzk0ZmEzZDg1
ODljNjlkN2U3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ2IEBACiAyMDEzLTExLTAxICBCcmVu
ZGFuIExvbmcgIDxiLmxvbmdAY2FibGVsYWJzLmNvbT4KIAorICAgICAgICBNb3ZlIGR1cGxpY2F0
ZSBjb2RlIGluIFRyYWNrUHJpdmF0ZSBjbGFzc2VzIHRvIGEgY29tbW9uIGJhc2UgY2xhc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzYxOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cyBiZWNhdXNlIHRoaXMgaXMganVzdCByZWZhY3RvcmluZy4KKworICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06IEFkZCBUcmFja1ByaXZhdGVCYXNlLgorICAgICAgICAqIFdlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2o6IFNhbWUuCisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvai5maWx0ZXJzOiBTYW1lLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajogU2FtZS4KKyAgICAgICAgKiBodG1sL3RyYWNrL0F1ZGlvVHJhY2su
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6aW5iYW5kVHJhY2tJbmRleCk6IFJl
bmFtZWQgYXVkaW9UcmFja0luZGV4KCkgdG8gdHJhY2tJbmRleCgpLgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9UcmFjazo6bGFiZWxDaGFuZ2VkKTogRmlyc3QgYXJndW1lbnQgaXMgbm93IGEgVHJh
Y2tQcml2YXRlQmFzZSouCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjpsYW5ndWFnZUNo
YW5nZWQpOiBTYW1lLgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6d2lsbFJlbW92ZSk6
IFNhbWUuCisgICAgICAgICogaHRtbC90cmFjay9BdWRpb1RyYWNrLmg6IFVwZGF0ZSBUcmFja1By
aXZhdGVCYXNlQ2xpZW50IGZ1bmN0aW9uIHNpZ25hdHVyZXMuCisgICAgICAgICogaHRtbC90cmFj
ay9JbmJhbmRUZXh0VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNr
OjppbmJhbmRUcmFja0luZGV4KTogUmVuYW1lZCB0ZXh0VHJhY2tJbmRleCgpIHRvIHRyYWNrSW5k
ZXgoKS4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6bGFiZWxDaGFuZ2VkKTog
Rmlyc3QgYXJndW1lbnQgaXMgbm93IGEgVHJhY2tQcml2YXRlQmFzZSouCisgICAgICAgIChXZWJD
b3JlOjpJbmJhbmRUZXh0VHJhY2s6Omxhbmd1YWdlQ2hhbmdlZCk6IFNhbWUuCisgICAgICAgIChX
ZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OndpbGxSZW1vdmUpOiBTYW1lLgorICAgICAgICAqIGh0
bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmg6IFVwZGF0ZSBUcmFja1ByaXZhdGVCYXNlQ2xpZW50
IGZ1bmN0aW9uIHNpZ25hdHVyZXMuCisgICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OmluYmFuZFRyYWNrSW5kZXgpOiBSZW5h
bWVkIHZpZGVvVHJhY2tJbmRleCgpIHRvIHRyYWNrSW5kZXgoKS4KKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvVHJhY2s6OmxhYmVsQ2hhbmdlZCk6IEZpcnN0IGFyZ3VtZW50IGlzIG5vdyBhIFRyYWNr
UHJpdmF0ZUJhc2UqLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6bGFuZ3VhZ2VDaGFu
Z2VkKTogU2FtZS4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OndpbGxSZW1vdmUpOiBT
YW1lLgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9UcmFjay5oOiBVcGRhdGUgVHJhY2tQcml2
YXRlQmFzZUNsaWVudCBmdW5jdGlvbiBzaWduYXR1cmVzLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmg6IFJlbW92ZSBjb2RlIHRoYXQgd2FzIG1vdmVkIHRv
IFRyYWNrUHJpdmF0ZUJhc2UuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZS5oOiBTYW1lLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0luYmFu
ZFRleHRUcmFja1ByaXZhdGVDbGllbnQuaDogU2FtZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oOiBTYW1lLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1RyYWNrUHJpdmF0ZUJhc2UuaDogUmVmYWN0b3JlZCBvdXQgZHVwbGljYXRlIGNvZGUgaW4g
QXVkaW9UcmFja1ByaXZhdGUsIEluYmFuZFRleHRUcmFja1ByaXZhdGUgYW5kIFZpZGVvVHJhY2tQ
cml2YXRlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRU
ZXh0VHJhY2tQcml2YXRlQVZGLmg6IFJlbmFtZWQgdGV4dFRyYWNrSW5kZXgoKSB0byB0cmFja0lu
ZGV4KCkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRU
cmFja1ByaXZhdGVHU3RyZWFtZXIuaDogU2FtZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuaDogUmVuYW1lZCBhdWRpb1Ry
YWNrSW5kZXgoKSB0byB0cmFja0luZGV4KCkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmg6IFJlbmFtZWQgdmlkZW9UcmFj
a0luZGV4KCkgdG8gdHJhY2tJbmRleDkwLgorCisyMDEzLTExLTAxICBCcmVuZGFuIExvbmcgIDxi
LmxvbmdAY2FibGVsYWJzLmNvbT4KKwogICAgICAgICBbR1N0cmVhbWVyXSBTdXBwb3J0IGF1ZGlv
IGFuZCB2aWRlbyB0cmFja3MKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExNzAzOQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBhM2Zk
YTFjYmY0NzcyYmY4NGU3ZWI4Njg2OGYwMDY3MTNiNGM5ZjUwLi5kMWU2ODgxZDA0OGJiYjNhZTJi
NzY1NDQ5OWRhYjg2NGJkY2NjZmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAg
LTU4MTcsNiArNTgxNyw3IEBAIHBsYXRmb3JtX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nLmggXAorCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrQmFzZVByaXZhdGUuaCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHlwZXNldHRpbmdGZWF0dXJlcy5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Vbml0QmV6aWVyLmggXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmggXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggYzk5YWY4ZjYwMzVi
ODU3OTU3YzVhOTAyYTgzNTlhN2Q5MGMwNTM1Zi4uMDdjYmVkZjliNzZjZTJhZTMxYzcxODMzYTUy
NzVhMTM3YzVkODgzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qCkBAIC0xODg2MCw2ICsxODg2MCw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xUaWxlZEJhY2tpbmdTdG9yZS5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcVGlsZWRCYWNraW5nU3RvcmVC
YWNrZW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGlj
c1xUaWxlZEJhY2tpbmdTdG9yZUNsaWVudC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5ccGxhdGZvcm1cZ3JhcGhpY3NcVHJhY2tCYXNlUHJpdmF0ZS5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcVmlkZW9UcmFja1ByaXZhdGUuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXHdpblxTaGFyZWRH
RElPYmplY3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXEhpc3Rv
Z3JhbVN1cHBvcnQuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBiNmNmNjBmZTBjNTljZjI3YmNlMWNi
YWQ4OTA4MzA0ZTBjZDhjMjdiLi5hYzk2ZjBmNDgxN2UwNjUxZWZmMzNkMGE4YTEwMTgzOGRiMDU0
OGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzCkBAIC0xMjkyNCw2ICsxMjkyNCw5IEBACiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xBdWRpb1RyYWNrUHJpdmF0ZS5oIj4KICAg
ICAgIDxGaWx0ZXI+aHRtbFx0cmFjazwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcVHJhY2tCYXNlUHJpdmF0ZS5o
Ij4KKyAgICAgIDxGaWx0ZXI+aHRtbFx0cmFjazwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcVmlkZW9UcmFja1By
aXZhdGUuaCI+CiAgICAgICA8RmlsdGVyPmh0bWxcdHJhY2s8L0ZpbHRlcj4KICAgICA8L0NsSW5j
bHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBkZWU3YjIxNzIxM2NiMWM0OWQyNmE1NzliYjEyN2ExYzM1MTQ4MGZiLi4yZTI1
NjgxOWI3OTM1ZThmMWFkOGRmZmE2MzRmOTk1ZDdiYTViMGQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01MjA4LDYgKzUyMDgs
NyBAQAogCQlCRThFRjA0QjE3MUM5MDE0MDA5QjQ4QzMgLyogSlNWaWRlb1RyYWNrLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCRThFRjA0NzE3MUM5MDE0
MDA5QjQ4QzMgLyogSlNWaWRlb1RyYWNrLmggKi87IH07CiAJCUJFOEVGMDRDMTcxQzkwMTQwMDlC
NDhDMyAvKiBKU1ZpZGVvVHJhY2tMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJFOEVGMDQ4MTcxQzkwMTQwMDlCNDhDMyAvKiBKU1ZpZGVvVHJh
Y2tMaXN0LmNwcCAqLzsgfTsKIAkJQkU4RUYwNEQxNzFDOTAxNDAwOUI0OEMzIC8qIEpTVmlkZW9U
cmFja0xpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJFOEVGMDQ5MTcxQzkwMTQwMDlCNDhDMyAvKiBKU1ZpZGVvVHJhY2tMaXN0LmggKi87IH07CisJ
CUJFOTEzRDgwMTgxRUY5MjQwMERDQjA5RSAvKiBUcmFja1ByaXZhdGVCYXNlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCRTkxM0Q3RjE4MUVGOEU1MDBE
Q0IwOUUgLyogVHJhY2tQcml2YXRlQmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUJFRjI5RUVCMTcxNUREMDkwMEM0QjRDOSAvKiBBdWRpb1Ry
YWNrUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkVGMjlFRTkxNzE1REQwOTAwQzRCNEM5IC8qIEF1ZGlvVHJhY2tQcml2YXRlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkVGMjlFRUMxNzE1
REQwOTAwQzRCNEM5IC8qIFZpZGVvVHJhY2tQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCRUYyOUVFQTE3MTVERDA5MDBDNEI0QzkgLyogVmlk
ZW9UcmFja1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlDMDQ2RTFBQzEyMDhBOUZFMDBCQTJDRjcgLyogTG9jYWxpemVkU3RyaW5ncy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMDQ2RTFB
QjEyMDhBOUZFMDBCQTJDRjcgLyogTG9jYWxpemVkU3RyaW5ncy5jcHAgKi87IH07CkBAIC0xMjE1
OSw2ICsxMjE2MCw3IEBACiAJCUJFOEVGMDQ3MTcxQzkwMTQwMDlCNDhDMyAvKiBKU1ZpZGVvVHJh
Y2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNWaWRlb1RyYWNrLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJFOEVGMDQ4MTcxQzkwMTQwMDlCNDhDMyAvKiBK
U1ZpZGVvVHJhY2tMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTVmlkZW9UcmFja0xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCRThF
RjA0OTE3MUM5MDE0MDA5QjQ4QzMgLyogSlNWaWRlb1RyYWNrTGlzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1ZpZGVvVHJhY2tMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUJFOTEzRDdGMTgxRUY4RTUwMERDQjA5RSAvKiBUcmFja1ByaXZhdGVCYXNl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRyYWNrUHJpdmF0ZUJhc2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkU5MUZDOEIwNjEzMzY2NjAwNUUzNzkwIC8q
IFBvc2l0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBvc2l0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
dXNlc1RhYnMgPSAwOyB9OwogCQlCRTkxRkM4QzA2MTMzNjY2MDA1RTM3OTAgLyogUG9zaXRpb24u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUG9zaXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVz
ZXNUYWJzID0gMDsgfTsKIAkJQkU5ODNEOTUwNTJBMkUwQTAwODkyRDg1IC8qIFdlYkNvcmVLZXli
b2FyZFVJTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJDb3JlS2V5Ym9hcmRVSU1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0xOTA5Niw2ICsxOTA5OCw3IEBACiAJ
CQkJQ0QxRTczNDYxNjdCQzc4RTAwOUE4ODVEIC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmNw
cCAqLywKIAkJCQlDREQxRTUyNTE2N0JBNTY0MDBDRTgyMEIgLyogVGV4dFRyYWNrUmVwcmVzZW50
YXRpb24uaCAqLywKIAkJCQkxQUY4OUE0MTE1MThGREVBMDBFNTQ3QjUgLyogVGlsZWRCYWNraW5n
LmggKi8sCisJCQkJQkU5MTNEN0YxODFFRjhFNTAwRENCMDlFIC8qIFRyYWNrUHJpdmF0ZUJhc2Uu
aCAqLywKIAkJCQkzN0MyOEE2NzEwRjY1OUNDMDA4Qzc4MTMgLyogVHlwZXNldHRpbmdGZWF0dXJl
cy5oICovLAogCQkJCUU0QUZDRkE0MERBRjI5QTMwMEY1RjU1QyAvKiBVbml0QmV6aWVyLmggKi8s
CiAJCQkJQkVGMjlFRUExNzE1REQwOTAwQzRCNEM5IC8qIFZpZGVvVHJhY2tQcml2YXRlLmggKi8s
CkBAIC0yNDg5MSw2ICsyNDg5NCw3IEBACiAJCQkJQ0QzRTI1MjQxODA0NkJDRDAwRTI3RjU2IC8q
IENTU0dyaWRUZW1wbGF0ZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREVGNEZENzE3RTg1
QzhGMDBBRUUyNEIgLyogR3JpZExlbmd0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RFN0ZDNDUx
ODE5MDRCMTAwMkJCQjc3IC8qIE9yZGVySXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUJF
OTEzRDgwMTgxRUY5MjQwMERDQjA5RSAvKiBUcmFja1ByaXZhdGVCYXNlLmggaW4gSGVhZGVycyAq
LywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCmluZGV4IGUyZTgyZDY1
MTg0ODMwNGIxOGRkZjdjYmNjNzhhMTJmYzI5ZDM1MWEuLjQyNjUyNDc5MmEyZjNkNjM0NTRjZGZi
ZGM5YWJhMTY3NTllMDMyZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
QXVkaW9UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNr
LmNwcApAQCAtMTU0LDcgKzE1NCw3IEBAIHZvaWQgQXVkaW9UcmFjazo6c2V0RW5hYmxlZChjb25z
dCBib29sIGVuYWJsZWQpCiBzaXplX3QgQXVkaW9UcmFjazo6aW5iYW5kVHJhY2tJbmRleCgpCiB7
CiAgICAgQVNTRVJUKG1fcHJpdmF0ZSk7Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS0+YXVkaW9UcmFj
a0luZGV4KCk7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+dHJhY2tJbmRleCgpOwogfQogCiB2b2lk
IEF1ZGlvVHJhY2s6OmVuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2tQcml2YXRlKiB0cmFja1ByaXZh
dGUsIGJvb2wgZW5hYmxlZCkKQEAgLTE2MywxOSArMTYzLDE5IEBAIHZvaWQgQXVkaW9UcmFjazo6
ZW5hYmxlZENoYW5nZWQoQXVkaW9UcmFja1ByaXZhdGUqIHRyYWNrUHJpdmF0ZSwgYm9vbCBlbmFi
bGVkKQogICAgIHNldEVuYWJsZWQoZW5hYmxlZCk7CiB9CiAKLXZvaWQgQXVkaW9UcmFjazo6bGFi
ZWxDaGFuZ2VkKEF1ZGlvVHJhY2tQcml2YXRlKiB0cmFja1ByaXZhdGUsIGNvbnN0IFN0cmluZyYg
bGFiZWwpCit2b2lkIEF1ZGlvVHJhY2s6OmxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiB0
cmFja1ByaXZhdGUsIGNvbnN0IFN0cmluZyYgbGFiZWwpCiB7CiAgICAgQVNTRVJUX1VOVVNFRCh0
cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHNldExhYmVsKGxh
YmVsKTsKIH0KIAotdm9pZCBBdWRpb1RyYWNrOjpsYW5ndWFnZUNoYW5nZWQoQXVkaW9UcmFja1By
aXZhdGUqIHRyYWNrUHJpdmF0ZSwgY29uc3QgU3RyaW5nJiBsYW5ndWFnZSkKK3ZvaWQgQXVkaW9U
cmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNrUHJpdmF0ZSwgY29u
c3QgU3RyaW5nJiBsYW5ndWFnZSkKIHsKICAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwg
dHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2UpOwog
fQogCi12b2lkIEF1ZGlvVHJhY2s6OndpbGxSZW1vdmVBdWRpb1RyYWNrUHJpdmF0ZShBdWRpb1Ry
YWNrUHJpdmF0ZSogdHJhY2tQcml2YXRlKQordm9pZCBBdWRpb1RyYWNrOjp3aWxsUmVtb3ZlKFRy
YWNrUHJpdmF0ZUJhc2UqIHRyYWNrUHJpdmF0ZSkKIHsKICAgICBBU1NFUlRfVU5VU0VEKHRyYWNr
UHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgbWVkaWFFbGVtZW50KCkt
PnJlbW92ZUF1ZGlvVHJhY2sodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0F1ZGlvVHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFj
ay5oCmluZGV4IDA0Y2E1ZmM3OWZmOWVmMDg3NGY0NzM0MzVhYTM0OTFiMzhjMWE4NTkuLjA2NGI2
NmQwMzUwZGM0MWI4NmU1YTk1Mzc3YWQ4YmJlMmRkMmExZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svQXVkaW9UcmFjay5oCkBAIC04MCw5ICs4MCw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBib29sIGlzVmFsaWRLaW5kKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0IE9WRVJSSURFOwog
CiAgICAgdmlydHVhbCB2b2lkIGVuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2tQcml2YXRlKiwgYm9v
bCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGxhYmVsQ2hhbmdlZChBdWRpb1RyYWNrUHJp
dmF0ZSosIGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBsYW5ndWFn
ZUNoYW5nZWQoQXVkaW9UcmFja1ByaXZhdGUqLCBjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZUF1ZGlvVHJhY2tQcml2YXRlKEF1ZGlvVHJhY2tQcml2
YXRlKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGxhYmVsQ2hhbmdlZChUcmFja1ByaXZh
dGVCYXNlKiwgY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGxhbmd1
YWdlQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSopIE9WRVJSSURFOwog
CiAgICAgQXRvbWljU3RyaW5nIG1faWQ7CiAgICAgYm9vbCBtX2VuYWJsZWQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAKaW5kZXggY2ExZjg5YTA4YTU4
NjhiMDcyNWQzYjhmMDVjYTc3MWRkNjNjYWQ0MS4uY2Q1N2I5YzA5MjRiNjBkNjQ5ZGYyMzFjNGIx
ODYzMjNkYWE2M2JiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJh
bmRUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4
dFRyYWNrLmNwcApAQCAtMTUzLDIyICsxNTMsMjIgQEAgYm9vbCBJbmJhbmRUZXh0VHJhY2s6Omlz
RWFzeVRvUmVhZCgpIGNvbnN0CiBzaXplX3QgSW5iYW5kVGV4dFRyYWNrOjppbmJhbmRUcmFja0lu
ZGV4KCkKIHsKICAgICBBU1NFUlQobV9wcml2YXRlKTsKLSAgICByZXR1cm4gbV9wcml2YXRlLT50
ZXh0VHJhY2tJbmRleCgpOworICAgIHJldHVybiBtX3ByaXZhdGUtPnRyYWNrSW5kZXgoKTsKIH0K
IAotdm9pZCBJbmJhbmRUZXh0VHJhY2s6OmxhYmVsQ2hhbmdlZChJbmJhbmRUZXh0VHJhY2tQcml2
YXRlKiB0cmFja1ByaXZhdGUsIGNvbnN0IFN0cmluZyYgbGFiZWwpCit2b2lkIEluYmFuZFRleHRU
cmFjazo6bGFiZWxDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNrUHJpdmF0ZSwgY29uc3Qg
U3RyaW5nJiBsYWJlbCkKIHsKICAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQ
cml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0TGFiZWwobGFiZWwpOwogfQogCi12b2lkIElu
YmFuZFRleHRUcmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKEluYmFuZFRleHRUcmFja1ByaXZhdGUqIHRy
YWNrUHJpdmF0ZSwgY29uc3QgU3RyaW5nJiBsYW5ndWFnZSkKK3ZvaWQgSW5iYW5kVGV4dFRyYWNr
OjpsYW5ndWFnZUNoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlLCBjb25zdCBT
dHJpbmcmIGxhbmd1YWdlKQogewogICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFj
a1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRMYW5ndWFnZShsYW5ndWFnZSk7CiB9CiAK
LXZvaWQgSW5iYW5kVGV4dFRyYWNrOjp3aWxsUmVtb3ZlVGV4dFRyYWNrUHJpdmF0ZShJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlKiB0cmFja1ByaXZhdGUpCit2b2lkIEluYmFuZFRleHRUcmFjazo6d2ls
bFJlbW92ZShUcmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUpCiB7CiAgICAgaWYgKCFtZWRp
YUVsZW1lbnQoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
SW5iYW5kVGV4dFRyYWNrLmgKaW5kZXggZjA4OTc0MjRlNjNjNjU0MDVjZTFlM2MyNWZjYzUwYmYx
MTU4MTBiZi4uY2Y4NzA3Njg2NjQ1MTZkMWQ0Y2JhOGE3NzYxNzIyMjk1NGU3YjUyNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5oCkBAIC01NSwxMCArNTUs
OSBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92
ZVRleHRUcmFja1ByaXZhdGUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSopIE9WRVJSSURFOwotCi0g
ICAgdmlydHVhbCB2b2lkIGxhYmVsQ2hhbmdlZChJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29u
c3QgU3RyaW5nJiBsYWJlbCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGxhbmd1YWdlQ2hh
bmdlZChJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgU3RyaW5nJiBsYW5ndWFnZSkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwg
Y29uc3QgU3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGxhbmd1YWdlQ2hhbmdl
ZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIHdpbGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSopIE9WRVJSSURFOwogCiAjaWYgVVNF
KFBMQVRGT1JNX1RFWFRfVFJBQ0tfTUVOVSkKICAgICB2aXJ0dWFsIEluYmFuZFRleHRUcmFja1By
aXZhdGUqIHByaXZhdGVUcmFjaygpIE9WRVJSSURFIHsgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAKaW5kZXggZDM2NjhhMjJl
MmZhYmVlMDAyODI5OGNhMGJhNzRjN2FjOGYxMDAxNC4uN2M0M2I4Y2RiOGY0NjdlY2U1NGYxZDhk
ZDE5NDE4ODdmZGM3NWNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9W
aWRlb1RyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2su
Y3BwCkBAIC0xNTQsNyArMTU0LDcgQEAgdm9pZCBWaWRlb1RyYWNrOjpzZXRTZWxlY3RlZChjb25z
dCBib29sIHNlbGVjdGVkKQogc2l6ZV90IFZpZGVvVHJhY2s6OmluYmFuZFRyYWNrSW5kZXgoKQog
ewogICAgIEFTU0VSVChtX3ByaXZhdGUpOwotICAgIHJldHVybiBtX3ByaXZhdGUtPnZpZGVvVHJh
Y2tJbmRleCgpOworICAgIHJldHVybiBtX3ByaXZhdGUtPnRyYWNrSW5kZXgoKTsKIH0KIAogdm9p
ZCBWaWRlb1RyYWNrOjpzZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFja1ByaXZhdGUqIHRyYWNrUHJp
dmF0ZSwgYm9vbCBzZWxlY3RlZCkKQEAgLTE2MywxOSArMTYzLDE5IEBAIHZvaWQgVmlkZW9UcmFj
azo6c2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2tQcml2YXRlKiB0cmFja1ByaXZhdGUsIGJvb2wg
c2VsZWN0ZWQpCiAgICAgc2V0U2VsZWN0ZWQoc2VsZWN0ZWQpOwogfQogCi12b2lkIFZpZGVvVHJh
Y2s6OmxhYmVsQ2hhbmdlZChWaWRlb1RyYWNrUHJpdmF0ZSogdHJhY2tQcml2YXRlLCBjb25zdCBT
dHJpbmcmIGxhYmVsKQordm9pZCBWaWRlb1RyYWNrOjpsYWJlbENoYW5nZWQoVHJhY2tQcml2YXRl
QmFzZSogdHJhY2tQcml2YXRlLCBjb25zdCBTdHJpbmcmIGxhYmVsKQogewogICAgIEFTU0VSVF9V
TlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRM
YWJlbChsYWJlbCk7CiB9CiAKLXZvaWQgVmlkZW9UcmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKFZpZGVv
VHJhY2tQcml2YXRlKiB0cmFja1ByaXZhdGUsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UpCit2b2lk
IFZpZGVvVHJhY2s6Omxhbmd1YWdlQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZh
dGUsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UpCiB7CiAgICAgQVNTRVJUX1VOVVNFRCh0cmFja1By
aXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHNldExhbmd1YWdlKGxhbmd1
YWdlKTsKIH0KIAotdm9pZCBWaWRlb1RyYWNrOjp3aWxsUmVtb3ZlVmlkZW9UcmFja1ByaXZhdGUo
VmlkZW9UcmFja1ByaXZhdGUqIHRyYWNrUHJpdmF0ZSkKK3ZvaWQgVmlkZW9UcmFjazo6d2lsbFJl
bW92ZShUcmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUpCiB7CiAgICAgQVNTRVJUX1VOVVNF
RCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIG1lZGlhRWxl
bWVudCgpLT5yZW1vdmVWaWRlb1RyYWNrKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Zp
ZGVvVHJhY2suaAppbmRleCBmYmQ0ZTE3Y2VlZjlhOTc5NTUzYTYzNzBhZTFiYjUzNjc1NmQ3NzA1
Li42NzE1ZTcwZDFlMTUzYjI1NGQ0ODJiNDA3ODg1ZjliYWQ2ZTlhNTgyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaApAQCAtODAsOSArODAsOSBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgYm9vbCBpc1ZhbGlkS2luZChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCBPVkVS
UklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFja1ByaXZh
dGUqLCBib29sKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbGFiZWxDaGFuZ2VkKFZpZGVv
VHJhY2tQcml2YXRlKiwgY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGxhbmd1YWdlQ2hhbmdlZChWaWRlb1RyYWNrUHJpdmF0ZSosIGNvbnN0IFN0cmluZyYpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlVmlkZW9UcmFja1ByaXZhdGUoVmlkZW9U
cmFja1ByaXZhdGUqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbGFiZWxDaGFuZ2VkKFRy
YWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgbGFuZ3VhZ2VDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBTdHJpbmcmKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZShUcmFja1ByaXZhdGVCYXNlKikgT1ZF
UlJJREU7CiAKICAgICBBdG9taWNTdHJpbmcgbV9pZDsKICAgICBib29sIG1fc2VsZWN0ZWQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJp
dmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZh
dGUuaAppbmRleCBhYWI2NmEwOGNjMDVhNmFiOWY5NWJiZTQ0OTU4ODE3ZWJhODFjMDI1Li5lNTBi
MGQxMWEyM2E2MzJiNzJkMTkyYWNlMmRhOTQ0MDg3ZmQ4ZWYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmgKQEAgLTI2LDEw
ICsyNiw3IEBACiAjaWZuZGVmIEF1ZGlvVHJhY2tQcml2YXRlX2gKICNkZWZpbmUgQXVkaW9UcmFj
a1ByaXZhdGVfaAogCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi90
ZXh0L0F0b21pY1N0cmluZy5oPgorI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZUJhc2UuaCIKIAogI2lm
IEVOQUJMRShWSURFT19UUkFDSykKIApAQCAtMzcsMjYgKzM0LDIwIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGU7CiAKLWNsYXNzIEF1ZGlvVHJhY2tQcml2
YXRlQ2xpZW50IHsKK2NsYXNzIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50IDogcHVibGljIFRyYWNr
UHJpdmF0ZUJhc2VDbGllbnQgewogcHVibGljOgotICAgIHZpcnR1YWwgfkF1ZGlvVHJhY2tQcml2
YXRlQ2xpZW50KCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGVuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJh
Y2tQcml2YXRlKiwgYm9vbCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBsYWJlbENoYW5nZWQoQXVk
aW9UcmFja1ByaXZhdGUqLCBjb25zdCBTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGxh
bmd1YWdlQ2hhbmdlZChBdWRpb1RyYWNrUHJpdmF0ZSosIGNvbnN0IFN0cmluZyYpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZUF1ZGlvVHJhY2tQcml2YXRlKEF1ZGlvVHJhY2tQcml2
YXRlKikgPSAwOwogfTsKIAotY2xhc3MgQXVkaW9UcmFja1ByaXZhdGUgOiBwdWJsaWMgUmVmQ291
bnRlZDxBdWRpb1RyYWNrUHJpdmF0ZT4gewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1ZGlv
VHJhY2tQcml2YXRlKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitjbGFzcyBBdWRpb1RyYWNr
UHJpdmF0ZSA6IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZT4gY3JlYXRlKCkKICAgICB7CiAgICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgQXVkaW9UcmFja1ByaXZhdGUoKSk7CiAgICAgfQotICAgIHZpcnR1
YWwgfkF1ZGlvVHJhY2tQcml2YXRlKCkgeyB9CiAKICAgICB2b2lkIHNldENsaWVudChBdWRpb1Ry
YWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9Ci0gICAgQXVk
aW9UcmFja1ByaXZhdGVDbGllbnQqIGNsaWVudCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CisgICAg
dmlydHVhbCBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gbV9jbGllbnQ7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBzZXRFbmFibGVkKGJvb2wg
ZW5hYmxlZCkKICAgICB7CkBAIC03MSwxOCArNjIsNiBAQCBwdWJsaWM6CiAgICAgZW51bSBLaW5k
IHsgQWx0ZXJuYXRpdmUsIERlc2NyaXB0aW9uLCBNYWluLCBNYWluRGVzYywgVHJhbnNsYXRpb24s
IENvbW1lbnRhcnksIE5vbmUgfTsKICAgICB2aXJ0dWFsIEtpbmQga2luZCgpIGNvbnN0IHsgcmV0
dXJuIE5vbmU7IH0KIAotICAgIHZpcnR1YWwgQXRvbWljU3RyaW5nIGlkKCkgY29uc3QgeyByZXR1
cm4gZW1wdHlBdG9tOyB9Ci0gICAgdmlydHVhbCBBdG9taWNTdHJpbmcgbGFiZWwoKSBjb25zdCB7
IHJldHVybiBlbXB0eUF0b207IH0KLSAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyBsYW5ndWFnZSgp
IGNvbnN0IHsgcmV0dXJuIGVtcHR5QXRvbTsgfQotCi0gICAgdmlydHVhbCBpbnQgYXVkaW9UcmFj
a0luZGV4KCkgY29uc3QgeyByZXR1cm4gMDsgfQotCi0gICAgdm9pZCB3aWxsQmVSZW1vdmVkKCkK
LSAgICB7Ci0gICAgICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgICAgIG1fY2xpZW50LT53aWxs
UmVtb3ZlQXVkaW9UcmFja1ByaXZhdGUodGhpcyk7Ci0gICAgfQotCiBwcm90ZWN0ZWQ6CiAgICAg
QXVkaW9UcmFja1ByaXZhdGUoKQogICAgICAgICA6IG1fY2xpZW50KDApCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRl
LmgKaW5kZXggOTI5NWFlYWQ4NTc3OTI0MzczYmIwNDlkYmQxMzc3NjA2OTNiNGEyMi4uZjNhNjBm
OGI5NTczMWM0ZjkyMGQ5NjdiMDViMmI3ZjM5OWIzMmVhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGUuaApA
QCAtMjksMjAgKzI5LDE1IEBACiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCiAjaW5jbHVkZSAi
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oIgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBJbmJhbmRUZXh0VHJhY2tQcml2YXRlIDogcHVibGljIFJlZkNvdW50ZWQ8
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluYmFu
ZFRleHRUcmFja1ByaXZhdGUpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK2NsYXNzIEluYmFu
ZFRleHRUcmFja1ByaXZhdGUgOiBwdWJsaWMgVHJhY2tQcml2YXRlQmFzZSB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSgpIHsgfQogCiAgICAgdm9pZCBzZXRD
bGllbnQoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KSB7IG1fY2xpZW50ID0g
Y2xpZW50OyB9Ci0gICAgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KCkgeyBy
ZXR1cm4gbV9jbGllbnQ7IH0KKyAgICB2aXJ0dWFsIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGll
bnQqIGNsaWVudCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKICAgICBl
bnVtIE1vZGUgewogICAgICAgICBEaXNhYmxlZCwKQEAgLTY3LDI1ICs2MiwxNCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIGNvbnRhaW5zT25seUZvcmNlZFN1YnRpdGxlcygpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzTWFpblByb2dyYW1Db250ZW50KCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0Vhc3lUb1JlYWQoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQotCi0gICAgdmlydHVhbCBBdG9taWNTdHJpbmcgbGFiZWwo
KSBjb25zdCB7IHJldHVybiBlbXB0eUF0b207IH0KLSAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyBs
YW5ndWFnZSgpIGNvbnN0IHsgcmV0dXJuIGVtcHR5QXRvbTsgfQogICAgIHZpcnR1YWwgYm9vbCBp
c0RlZmF1bHQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCBpbnQgdGV4
dFRyYWNrSW5kZXgoKSBjb25zdCB7IHJldHVybiAwOyB9Ci0KICAgICBlbnVtIEN1ZUZvcm1hdCB7
CiAgICAgICAgIEdlbmVyaWMsCiAgICAgICAgIFdlYlZUVAogICAgIH07CiAgICAgQ3VlRm9ybWF0
IGN1ZUZvcm1hdCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9ybWF0OyB9CiAKLSAgICB2b2lkIHdpbGxC
ZVJlbW92ZWQoKQotICAgIHsKLSAgICAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICAgICAgbV9j
bGllbnQtPndpbGxSZW1vdmVUZXh0VHJhY2tQcml2YXRlKHRoaXMpOwotICAgIH0KLQogcHJvdGVj
dGVkOgogICAgIEluYmFuZFRleHRUcmFja1ByaXZhdGUoQ3VlRm9ybWF0IGZvcm1hdCkKICAgICAg
ICAgOiBtX2Zvcm1hdChmb3JtYXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50LmgKaW5kZXgg
NjdiODhhNTU1ZDFmMjcwOGQ1ZjMzNzY2M2M5Nzg1YmVhMzQwZmJjMy4uNzk5OWY1ZDRmMmVjZjg1
ODQ4MjY4ZDJmMzA2YWQ3NzMwMzM3MzFhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQu
aApAQCAtMjcsOCArMjcsNyBAQAogI2RlZmluZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50
X2gKIAogI2luY2x1ZGUgIkNvbG9yLmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNsdWRlICJUcmFja1ByaXZhdGVCYXNl
LmgiCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKQEAgLTEzMSw3ICsxMzAsNyBAQCBwcml2
YXRlOgogCiBjbGFzcyBXZWJWVFRDdWVEYXRhOwogCi1jbGFzcyBJbmJhbmRUZXh0VHJhY2tQcml2
YXRlQ2xpZW50IHsKK2NsYXNzIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQgOiBwdWJsaWMg
VHJhY2tQcml2YXRlQmFzZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUNsaWVudCgpIHsgfQogCkBAIC0xNDAsMTEgKzEzOSw2IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRl
KiwgR2VuZXJpY0N1ZURhdGEqKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VXZWJWVFRD
dWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25l
ZCBsZW5ndGgpID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCBsYWJlbENoYW5nZWQoSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZSosIGNvbnN0IFN0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgbGFu
Z3VhZ2VDaGFuZ2VkKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBTdHJpbmcmKSA9IDA7
Ci0KLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZVRleHRUcmFja1ByaXZhdGUoSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZSopID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hYTE3ZjYwYTBlYWE0YzA3NjQwMzE1NzcwYmVkMzMxNTlhNDg5NTllCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2
YXRlQmFzZS5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIENhYmxl
IFRlbGV2aXNpb24gTGFicywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFRyYWNrUHJpdmF0ZUJhc2VfaAorI2RlZmluZSBUcmFja1ByaXZhdGVCYXNlX2gKKwor
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJp
bmcuaD4KKworI2lmIEVOQUJMRShWSURFT19UUkFDSykKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBUcmFja1ByaXZhdGVCYXNlOworCitjbGFzcyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50
IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5UcmFja1ByaXZhdGVCYXNlQ2xpZW50KCkgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIGxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgU3Ry
aW5nJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsYW5ndWFnZUNoYW5nZWQoVHJhY2tQcml2YXRl
QmFzZSosIGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZShU
cmFja1ByaXZhdGVCYXNlKikgPSAwOworfTsKKworY2xhc3MgVHJhY2tQcml2YXRlQmFzZSA6IHB1
YmxpYyBSZWZDb3VudGVkPFRyYWNrUHJpdmF0ZUJhc2U+IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShUcmFja1ByaXZhdGVCYXNlKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6
CisgICAgdmlydHVhbCB+VHJhY2tQcml2YXRlQmFzZSgpIHsgfQorCisgICAgdmlydHVhbCBUcmFj
a1ByaXZhdGVCYXNlQ2xpZW50KiBjbGllbnQoKSBjb25zdCA9IDA7CisKKyAgICB2aXJ0dWFsIEF0
b21pY1N0cmluZyBpZCgpIGNvbnN0IHsgcmV0dXJuIGVtcHR5QXRvbTsgfQorICAgIHZpcnR1YWwg
QXRvbWljU3RyaW5nIGxhYmVsKCkgY29uc3QgeyByZXR1cm4gZW1wdHlBdG9tOyB9CisgICAgdmly
dHVhbCBBdG9taWNTdHJpbmcgbGFuZ3VhZ2UoKSBjb25zdCB7IHJldHVybiBlbXB0eUF0b207IH0K
KworICAgIHZpcnR1YWwgaW50IHRyYWNrSW5kZXgoKSBjb25zdCB7IHJldHVybiAwOyB9CisKKyAg
ICB2b2lkIHdpbGxCZVJlbW92ZWQoKQorICAgIHsKKyAgICAgICAgaWYgKFRyYWNrUHJpdmF0ZUJh
c2VDbGllbnQqIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQorICAgICAgICAgICAgY2xpZW50LT53
aWxsUmVtb3ZlKHRoaXMpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIFRyYWNrUHJpdmF0ZUJh
c2UoKSB7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJp
dmF0ZS5oCmluZGV4IGU1ZjVmMjQyY2I2Zjg0NzY4ODY5M2JjOGVhYTIxZTM5MjA1MjFhYmYuLjk4
MWRkMDRmYjg3NjIxYjAzMmMyZjMwNzlkOTUyNDRhMjNhODEzN2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaApAQCAtMjYs
MTAgKzI2LDcgQEAKICNpZm5kZWYgVmlkZW9UcmFja1ByaXZhdGVfaAogI2RlZmluZSBWaWRlb1Ry
YWNrUHJpdmF0ZV9oCiAKLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9O
b25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3Rm
L3RleHQvQXRvbWljU3RyaW5nLmg+CisjaW5jbHVkZSAiVHJhY2tQcml2YXRlQmFzZS5oIgogCiAj
aWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCkBAIC0zNywyNiArMzQsMjAgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKIAotY2xhc3MgVmlkZW9UcmFja1By
aXZhdGVDbGllbnQgeworY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVDbGllbnQgOiBwdWJsaWMgVHJh
Y2tQcml2YXRlQmFzZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+VmlkZW9UcmFja1By
aXZhdGVDbGllbnQoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0ZWRDaGFuZ2VkKFZpZGVv
VHJhY2tQcml2YXRlKiwgYm9vbCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBsYWJlbENoYW5nZWQo
VmlkZW9UcmFja1ByaXZhdGUqLCBjb25zdCBTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IGxhbmd1YWdlQ2hhbmdlZChWaWRlb1RyYWNrUHJpdmF0ZSosIGNvbnN0IFN0cmluZyYpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZVZpZGVvVHJhY2tQcml2YXRlKFZpZGVvVHJhY2tQ
cml2YXRlKikgPSAwOwogfTsKIAotY2xhc3MgVmlkZW9UcmFja1ByaXZhdGUgOiBwdWJsaWMgUmVm
Q291bnRlZDxWaWRlb1RyYWNrUHJpdmF0ZT4gewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFZp
ZGVvVHJhY2tQcml2YXRlKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitjbGFzcyBWaWRlb1Ry
YWNrUHJpdmF0ZSA6IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlIHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZT4gY3JlYXRlKCkKICAgICB7CiAgICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgVmlkZW9UcmFja1ByaXZhdGUoKSk7CiAgICAgfQotICAgIHZp
cnR1YWwgflZpZGVvVHJhY2tQcml2YXRlKCkgeyB9CiAKICAgICB2b2lkIHNldENsaWVudChWaWRl
b1RyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9Ci0gICAg
VmlkZW9UcmFja1ByaXZhdGVDbGllbnQqIGNsaWVudCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9Cisg
ICAgdmlydHVhbCBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gbV9jbGllbnQ7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZChi
b29sIHNlbGVjdGVkKQogICAgIHsKQEAgLTcxLDE4ICs2Miw2IEBAIHB1YmxpYzoKICAgICBlbnVt
IEtpbmQgeyBBbHRlcm5hdGl2ZSwgQ2FwdGlvbnMsIE1haW4sIFNpZ24sIFN1YnRpdGxlcywgQ29t
bWVudGFyeSwgTm9uZSB9OwogICAgIHZpcnR1YWwgS2luZCBraW5kKCkgY29uc3QgeyByZXR1cm4g
Tm9uZTsgfQogCi0gICAgdmlydHVhbCBBdG9taWNTdHJpbmcgaWQoKSBjb25zdCB7IHJldHVybiBl
bXB0eUF0b207IH0KLSAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyBsYWJlbCgpIGNvbnN0IHsgcmV0
dXJuIGVtcHR5QXRvbTsgfQotICAgIHZpcnR1YWwgQXRvbWljU3RyaW5nIGxhbmd1YWdlKCkgY29u
c3QgeyByZXR1cm4gZW1wdHlBdG9tOyB9Ci0KLSAgICB2aXJ0dWFsIGludCB2aWRlb1RyYWNrSW5k
ZXgoKSBjb25zdCB7IHJldHVybiAwOyB9Ci0KLSAgICB2b2lkIHdpbGxCZVJlbW92ZWQoKQotICAg
IHsKLSAgICAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICAgICAgbV9jbGllbnQtPndpbGxSZW1v
dmVWaWRlb1RyYWNrUHJpdmF0ZSh0aGlzKTsKLSAgICB9Ci0KIHByb3RlY3RlZDoKICAgICBWaWRl
b1RyYWNrUHJpdmF0ZSgpCiAgICAgICAgIDogbV9jbGllbnQoMCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQ
cml2YXRlQVZGLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5oCmluZGV4IDAzNzI3NjZmMWRmNzE3M2U3MDg2
MjEwYTZkYzM5NTc4ZGFiNTZkOWUuLjM0MjEzYTA5NGJlN2QxM2MyYzJkOTdiMTA2Yzk5MDI2ZTJm
N2Q0NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYu
aApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0TW9kZShJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlOjpNb2RlKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgaW50
IHRleHRUcmFja0luZGV4KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9pbmRleDsgfQorICAg
IHZpcnR1YWwgaW50IHRyYWNrSW5kZXgoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2luZGV4
OyB9CiAgICAgdm9pZCBzZXRUZXh0VHJhY2tJbmRleChpbnQgaW5kZXgpIHsgbV9pbmRleCA9IGlu
ZGV4OyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRl
R1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
QXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuaAppbmRleCA2ZTQzNTdmNmZhZjc4MDhjZmE1NWI0
ODdmY2E2NDdlMjc5YmQ1MjI1Li40ODQxY2RkODRkOGMzZmIwN2EzY2VjMmFhNDg5YzU3ZThlYjZk
MjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuaApAQCAt
NDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEVuYWJsZWQoYm9vbCkg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29sIGVuYWJsZWQpIE9WRVJS
SURFIHsgc2V0RW5hYmxlZChlbmFibGVkKTsgfQogCi0gICAgdmlydHVhbCBpbnQgYXVkaW9UcmFj
a0luZGV4KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9pbmRleDsgfQorICAgIHZpcnR1YWwg
aW50IHRyYWNrSW5kZXgoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2luZGV4OyB9CiAgICAg
dmlydHVhbCB2b2lkIGxhYmVsQ2hhbmdlZChjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaAppbmRl
eCA5MDE0Nzc0ZDBjNTM2NWZjYWM0MGUyODNlNTQ0MGY5MGRkZTIxYmU1Li4yNzRhNzg0ODdkMTlm
MmU2Nzc1NjE2MmJhMjFjODc5MWM4ZjQyNmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1l
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJh
bmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgQXRvbWljU3RyaW5nIGxhbmd1YWdlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1
cm4gbV9sYW5ndWFnZTsgfQogCiAgICAgdm9pZCBzZXRJbmRleChpbnQgaW5kZXgpIHsgbV9pbmRl
eCA9ICBpbmRleDsgfQotICAgIHZpcnR1YWwgaW50IHRleHRUcmFja0luZGV4KCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gbV9pbmRleDsgfQorICAgIHZpcnR1YWwgaW50IHRyYWNrSW5kZXgoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiBtX2luZGV4OyB9CiAgICAgU3RyaW5nIHN0cmVhbUlkKCkg
Y29uc3QgeyByZXR1cm4gbV9zdHJlYW1JZDsgfQogCiAgICAgdm9pZCBoYW5kbGVTYW1wbGUoR1Jl
ZlB0cjxHc3RTYW1wbGU+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVh
bWVyLmgKaW5kZXggNmYzMjFiYjg3OGFjNGE1ZmE2MWVlYTZiNzI0ZjE1MzdlNzY2NmI5ZS4uMjE1
ZTRhMmUxNzUyMWViZTRlYWY5MDFhYjJjMmE4ZDZiZWQ2MzA0MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0
cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZChib29sKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0QWN0aXZlKGJvb2wgZW5hYmxlZCkgT1ZFUlJJREUgeyBzZXRTZWxlY3RlZChlbmFi
bGVkKTsgfQogCi0gICAgdmlydHVhbCBpbnQgdmlkZW9UcmFja0luZGV4KCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gbV9pbmRleDsgfQorICAgIHZpcnR1YWwgaW50IHRyYWNrSW5kZXgoKSBjb25z
dCBPVkVSUklERSB7IHJldHVybiBtX2luZGV4OyB9CiAgICAgdmlydHVhbCB2b2lkIGxhYmVsQ2hh
bmdlZChjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgbGFuZ3VhZ2VD
aGFuZ2VkKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>