<?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>233494</bug_id>
          
          <creation_ts>2021-11-25 06:35:33 -0800</creation_ts>
          <short_desc>[GTK][a11y] Add implementation of selection interface when building with ATSPI</short_desc>
          <delta_ts>2021-11-26 00:41:59 -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>WebKitGTK</component>
          <version>WebKit 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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>230253</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>aperez</cc>
    
    <cc>apinheiro</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1817803</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-11-25 06:35:33 -0800</bug_when>
    <thetext>Add selection interface</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817804</commentid>
    <comment_count>1</comment_count>
      <attachid>445138</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-11-25 06:38:31 -0800</bug_when>
    <thetext>Created attachment 445138
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817916</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-11-26 00:41:59 -0800</bug_when>
    <thetext>Committed r286173 (244556@main): &lt;https://commits.webkit.org/244556@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445138</attachid>
            <date>2021-11-25 06:38:31 -0800</date>
            <delta_ts>2021-11-25 10:35:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-atspi-selecion.diff</filename>
            <type>text/plain</type>
            <size>33115</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2Y2JhMzllMzFkMDguLmFmY2Y5MWYxZThlYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM0IEBACisyMDIxLTExLTI1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVthMTF5XSBBZGQgaW1wbGVtZW50YXRpb24gb2Yg
c2VsZWN0aW9uIGludGVyZmFjZSB3aGVuIGJ1aWxkaW5nIHdpdGggQVRTUEkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzQ5NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlc0dUSy50eHQ6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6OmRlZmVyU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWRJZk5lZWRlZCk6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdHNwaS9BWE9iamVjdENhY2hlQXRzcGkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9u
KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlBdHNwaS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5QXRzcGk6OnNlbGVjdGlvbkNoYW5nZWQp
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eUF0c3BpLmg6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjppbnRlcmZhY2Vz
Rm9yT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6
cGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6Om5hbWUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjpidWls
ZEludGVyZmFjZXMgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNz
aWJpbGl0eU9iamVjdEF0c3BpLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nl
c3NpYmlsaXR5T2JqZWN0U2VsZWN0aW9uQXRzcGkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6c2VsZWN0aW9uQ291bnQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjpzZWxlY3RlZENoaWxkIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6c2V0Q2hp
bGRTZWxlY3RlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0
QXRzcGk6OmRlc2VsZWN0U2VsZWN0ZWRDaGlsZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OmlzQ2hpbGRTZWxlY3RlZCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OnNlbGVjdEFsbCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OmNsZWFyU2VsZWN0aW9u
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6c2Vs
ZWN0aW9uQ2hhbmdlZCk6CisKIDIwMjEtMTEtMTkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dh
cmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW2ExMXldIEFkZCBpbXBsZW1lbnRhdGlv
biBvZiBpbWFnZSBpbnRlcmZhY2Ugd2hlbiBidWlsZGluZyB3aXRoIEFUU1BJCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNH
VEsudHh0CmluZGV4IDc3YTcxMjU2NTEyZC4uYzM3NTFlMmQ4OGY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RL
LnR4dApAQCAtNDcsNiArNDcsNyBAQCBhY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlP
YmplY3REb2N1bWVudEF0c3BpLmNwcAogYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5
T2JqZWN0SHlwZXJsaW5rQXRzcGkuY3BwCiBhY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxp
dHlPYmplY3RIeXBlcnRleHRBdHNwaS5jcHAKIGFjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJp
bGl0eU9iamVjdEltYWdlQXRzcGkuY3BwCithY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxp
dHlPYmplY3RTZWxlY3Rpb25BdHNwaS5jcHAKIGFjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJp
bGl0eU9iamVjdFRleHRBdHNwaS5jcHAKIGFjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0
eU9iamVjdFZhbHVlQXRzcGkuY3BwCiBhY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlS
b290QXRzcGkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmNwcAppbmRleCA1ZDY0MTY2NDRlZDIuLjJiNmVhZjgxN2M2ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0zNDMyLDYgKzM0MzIs
OCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmRlZmVyU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWRJZk5l
ZWRlZChFbGVtZW50JiBzZWxlY3RFbGVtZW50KQogCiAgICAgaWYgKHJlbmRlcmVyTmVlZHNEZWZl
cnJlZFVwZGF0ZSgqc2VsZWN0RWxlbWVudC5yZW5kZXJlcigpKSkgewogICAgICAgICBtX2RlZmVy
cmVkU2VsZWN0ZWRDaGlsZHJlZENoYW5nZWRMaXN0LmFkZChzZWxlY3RFbGVtZW50KTsKKyAgICAg
ICAgaWYgKCFtX3BlcmZvcm1DYWNoZVVwZGF0ZVRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAg
ICBtX3BlcmZvcm1DYWNoZVVwZGF0ZVRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIHNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKCZzZWxlY3RFbGVtZW50
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQVhPYmpl
Y3RDYWNoZUF0c3BpLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQVhP
YmplY3RDYWNoZUF0c3BpLmNwcAppbmRleCAyM2M0MDE4ZjY2YzguLmUwM2Q3NGZjNDQzYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BWE9iamVjdENhY2hl
QXRzcGkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQVhPYmpl
Y3RDYWNoZUF0c3BpLmNwcApAQCAtODQsNiArODQsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBWENvcmVPYmplY3QqIGNvcmVPYmplY3QsIEFYTm90aWZp
YwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQ6CiAg
ICAgY2FzZSBBWE1lbnVMaXN0VmFsdWVDaGFuZ2VkOgorICAgICAgICB3cmFwcGVyLT5zZWxlY3Rp
b25DaGFuZ2VkKCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQVhWYWx1ZUNoYW5nZWQ6CiAg
ICAgICAgIGlmICh3cmFwcGVyLT5pbnRlcmZhY2VzKCkuY29udGFpbnMoQWNjZXNzaWJpbGl0eU9i
amVjdEF0c3BpOjpJbnRlcmZhY2U6OlZhbHVlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eUF0c3BpLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eUF0c3BpLmNwcAppbmRleCBlNDkx
MTM1NTNhOWMuLjA1ZTQ0MjJjZWExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5QXRzcGkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eUF0c3BpLmNwcApAQCAtMjU2LDYgKzI1
NiwxOCBAQCB2b2lkIEFjY2Vzc2liaWxpdHlBdHNwaTo6dmFsdWVDaGFuZ2VkKEFjY2Vzc2liaWxp
dHlPYmplY3RBdHNwaSYgYXRzcGlPYmplY3QsIGRvdQogICAgIH0pOwogfQogCit2b2lkIEFjY2Vz
c2liaWxpdHlBdHNwaTo6c2VsZWN0aW9uQ2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkm
IGF0c3BpT2JqZWN0KQoreworICAgIFJFTEVBU0VfQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAg
ICBtX3F1ZXVlLT5kaXNwYXRjaChbdGhpcywgYXRzcGlPYmplY3QgPSBSZWYgeyBhdHNwaU9iamVj
dCB9XSB7CisgICAgICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgIGdfZGJ1c19jb25uZWN0aW9uX2VtaXRfc2lnbmFsKG1fY29ubmVjdGlvbi5nZXQo
KSwgbnVsbHB0ciwgYXRzcGlPYmplY3QtPnBhdGgoKS51dGY4KCkuZGF0YSgpLCAib3JnLmExMXku
YXRzcGkuRXZlbnQuT2JqZWN0IiwgIlNlbGVjdGlvbkNoYW5nZWQiLAorICAgICAgICAgICAgZ192
YXJpYW50X25ldygiKHNpaXZhe3N2fSkiLCAiIiwgMCwgMCwgZ192YXJpYW50X25ld19zdHJpbmco
IiIpLCBudWxscHRyKSwgbnVsbHB0cik7CisgICAgfSk7Cit9CisKIHN0cnVjdCBSb2xlTmFtZUVu
dHJ5IHsKICAgICBjb25zdCBjaGFyKiBuYW1lOwogICAgIGNvbnN0IGNoYXIqIGxvY2FsaXplZE5h
bWU7CkBAIC0zMzYsNiArMzQ4LDggQEAgc3RhdGljIGNvbnN0ZXhwciBzdGQ6OnBhaXI8QWNjZXNz
aWJpbGl0eVJvbGUsIFJvbGVOYW1lRW50cnk+IHJvbGVOYW1lc1tdID0gewogICAgIHsgQWNjZXNz
aWJpbGl0eVJvbGU6Ok1lbnVJdGVtLCB7ICJtZW51IGl0ZW0iLCBOXygibWVudSBpdGVtIikgfSB9
LAogICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVJdGVtQ2hlY2tib3gsIHsgImNoZWNrIG1l
bnUgaXRlbSIsIE5fKCJjaGVjayBtZW51IGl0ZW0iKSB9IH0sCiAgICAgeyBBY2Nlc3NpYmlsaXR5
Um9sZTo6TWVudUl0ZW1SYWRpbywgeyAicmFkaW8gbWVudSBpdGVtIiwgTl8oInJhZGlvIG1lbnUg
aXRlbSIpIH0gfSwKKyAgICB7IEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51TGlzdFBvcHVwLCB7ICJt
ZW51IiwgTl8oIm1lbnUiKSB9IH0sCisgICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUxpc3RP
cHRpb24sIHsgIm1lbnUgaXRlbSIsIE5fKCJtZW51IGl0ZW0iKSB9IH0sCiAgICAgeyBBY2Nlc3Np
YmlsaXR5Um9sZTo6TWV0ZXIsIHsgImxldmVsIGJhciIsIE5fKCJsZXZlbCBiYXIiKSB9IH0sCiAg
ICAgeyBBY2Nlc3NpYmlsaXR5Um9sZTo6T3V0bGluZSwgeyAidHJlZSIsIE5fKCJ0cmVlIikgfSB9
LAogICAgIHsgQWNjZXNzaWJpbGl0eVJvbGU6OlBhcmFncmFwaCwgeyAicGFyYWdyYXBoIiwgTl8o
InBhcmFncmFwaCIpIH0gfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvYXRzcGkvQWNjZXNzaWJpbGl0eUF0c3BpLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlBdHNwaS5oCmluZGV4IDBmYzRjYTI5OWM4YS4uMzA0MzJk
OGFmNTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0Fj
Y2Vzc2liaWxpdHlBdHNwaS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRz
cGkvQWNjZXNzaWJpbGl0eUF0c3BpLmgKQEAgLTY2LDYgKzY2LDggQEAgcHVibGljOgogCiAgICAg
dm9pZCB2YWx1ZUNoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpJiwgZG91YmxlKTsKIAor
ICAgIHZvaWQgc2VsZWN0aW9uQ2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkmKTsKKwog
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBsb2NhbGl6ZWRSb2xlTmFtZShBY2Nlc3NpYmlsaXR5Um9s
ZSk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2F0c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RBdHNwaS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RBdHNwaS5jcHAKaW5kZXggYjNkZTdh
OGEzMzM2Li5hNWM1NmIzZGQ5MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RBdHNwaS5jcHAKQEAg
LTk3LDYgKzk3LDkgQEAgT3B0aW9uU2V0PEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6SW50ZXJm
YWNlPiBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OmludGVyZmEKICAgICBpZiAoY29yZU9iamVj
dC5pc0ltYWdlKCkpCiAgICAgICAgIGludGVyZmFjZXMuYWRkKEludGVyZmFjZTo6SW1hZ2UpOwog
CisgICAgaWYgKGNvcmVPYmplY3QuY2FuSGF2ZVNlbGVjdGVkQ2hpbGRyZW4oKSkKKyAgICAgICAg
aW50ZXJmYWNlcy5hZGQoSW50ZXJmYWNlOjpTZWxlY3Rpb24pOworCiAgICAgcmV0dXJuIGludGVy
ZmFjZXM7CiB9CiAKQEAgLTQ5NSw2ICs0OTgsOCBAQCBjb25zdCBTdHJpbmcmIEFjY2Vzc2liaWxp
dHlPYmplY3RBdHNwaTo6cGF0aCgpCiAgICAgICAgICAgICBpbnRlcmZhY2VzLmFwcGVuZCh7IGNv
bnN0X2Nhc3Q8R0RCdXNJbnRlcmZhY2VJbmZvKj4oJndlYmtpdF9kb2N1bWVudF9pbnRlcmZhY2Up
LCAmc19kb2N1bWVudEZ1bmN0aW9ucyB9KTsKICAgICAgICAgaWYgKG1faW50ZXJmYWNlcy5jb250
YWlucyhJbnRlcmZhY2U6OkltYWdlKSkKICAgICAgICAgICAgIGludGVyZmFjZXMuYXBwZW5kKHsg
Y29uc3RfY2FzdDxHREJ1c0ludGVyZmFjZUluZm8qPigmd2Via2l0X2ltYWdlX2ludGVyZmFjZSks
ICZzX2ltYWdlRnVuY3Rpb25zIH0pOworICAgICAgICBpZiAobV9pbnRlcmZhY2VzLmNvbnRhaW5z
KEludGVyZmFjZTo6U2VsZWN0aW9uKSkKKyAgICAgICAgICAgIGludGVyZmFjZXMuYXBwZW5kKHsg
Y29uc3RfY2FzdDxHREJ1c0ludGVyZmFjZUluZm8qPigmd2Via2l0X3NlbGVjdGlvbl9pbnRlcmZh
Y2UpLCAmc19zZWxlY3Rpb25GdW5jdGlvbnMgfSk7CiAgICAgICAgIG1fcGF0aCA9IGF0c3BpUm9v
dC0+YXRzcGkoKS5yZWdpc3Rlck9iamVjdCgqdGhpcywgV1RGTW92ZShpbnRlcmZhY2VzKSk7CiAg
ICAgfQogCkBAIC02NTcsNiArNjYyLDEyIEBAIENTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdEF0
c3BpOjpuYW1lKCkgY29uc3QKICAgICBpZiAoIW1fYXhPYmplY3QpCiAgICAgICAgIHJldHVybiAi
IjsKIAorICAgIGlmIChtX2F4T2JqZWN0LT5yb2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6TGlzdEJveE9wdGlvbiB8fCBtX2F4T2JqZWN0LT5yb2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmls
aXR5Um9sZTo6TWVudUxpc3RPcHRpb24pIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IG1fYXhPYmpl
Y3QtPnN0cmluZ1ZhbHVlKCk7CisgICAgICAgIGlmICghdmFsdWUuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgcmV0dXJuIHZhbHVlLnV0ZjgoKTsKKyAgICB9CisKICAgICBWZWN0b3I8QWNjZXNzaWJp
bGl0eVRleHQ+IHRleHRPcmRlcjsKICAgICBtX2F4T2JqZWN0LT5hY2Nlc3NpYmlsaXR5VGV4dCh0
ZXh0T3JkZXIpOwogCkBAIC0xMTM5LDYgKzExNTAsOCBAQCB2b2lkIEFjY2Vzc2liaWxpdHlPYmpl
Y3RBdHNwaTo6YnVpbGRJbnRlcmZhY2VzKEdWYXJpYW50QnVpbGRlciogYnVpbGRlcikgY29uc3QK
ICAgICAgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKGJ1aWxkZXIsICJzIiwgd2Via2l0X2RvY3Vt
ZW50X2ludGVyZmFjZS5uYW1lKTsKICAgICBpZiAobV9pbnRlcmZhY2VzLmNvbnRhaW5zKEludGVy
ZmFjZTo6SW1hZ2UpKQogICAgICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoYnVpbGRlciwgInMi
LCB3ZWJraXRfaW1hZ2VfaW50ZXJmYWNlLm5hbWUpOworICAgIGlmIChtX2ludGVyZmFjZXMuY29u
dGFpbnMoSW50ZXJmYWNlOjpTZWxlY3Rpb24pKQorICAgICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9h
ZGQoYnVpbGRlciwgInMiLCB3ZWJraXRfc2VsZWN0aW9uX2ludGVyZmFjZS5uYW1lKTsKIH0KIAog
dm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OnNlcmlhbGl6ZShHVmFyaWFudEJ1aWxkZXIq
IGJ1aWxkZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2F0c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RBdHNwaS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuaAppbmRleCA3NzY1MDM2MzMy
ODguLmZhZmI0YjJiZGFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RBdHNwaS5oCkBAIC01MSw3ICs1
MSw4IEBAIHB1YmxpYzoKICAgICAgICAgSHlwZXJ0ZXh0ID0gMSA8PCA1LAogICAgICAgICBBY3Rp
b24gPSAxIDw8IDYsCiAgICAgICAgIERvY3VtZW50ID0gMSA8PCA3LAotICAgICAgICBJbWFnZSA9
IDEgPDwgOAorICAgICAgICBJbWFnZSA9IDEgPDwgOCwKKyAgICAgICAgU2VsZWN0aW9uID0gMSA8
PCA5CiAgICAgfTsKICAgICBjb25zdCBPcHRpb25TZXQ8SW50ZXJmYWNlPiYgaW50ZXJmYWNlcygp
IGNvbnN0IHsgcmV0dXJuIG1faW50ZXJmYWNlczsgfQogCkBAIC0xMzEsNiArMTMyLDEyIEBAIHB1
YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBkb2N1bWVudEF0dHJpYnV0ZShjb25z
dCBTdHJpbmcmKSBjb25zdDsKIAorICAgIFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIHNlbGVjdGlv
bkNvdW50KCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgQWNjZXNzaWJpbGl0eU9iamVjdEF0
c3BpKiBzZWxlY3RlZENoaWxkKHVuc2lnbmVkKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIHNldENoaWxkU2VsZWN0ZWQodW5zaWduZWQsIGJvb2wpIGNvbnN0OworICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgY2xlYXJTZWxlY3Rpb24oKSBjb25zdDsKKyAgICB2b2lkIHNlbGVjdGlvbkNo
YW5nZWQoKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRz
cGkoQVhDb3JlT2JqZWN0Kik7CiAKQEAgLTE3OCw2ICsxODUsMTAgQEAgcHJpdmF0ZToKIAogICAg
IFN0cmluZyBpbWFnZURlc2NyaXB0aW9uKCkgY29uc3Q7CiAKKyAgICBib29sIGRlc2VsZWN0U2Vs
ZWN0ZWRDaGlsZCh1bnNpZ25lZCkgY29uc3Q7CisgICAgYm9vbCBpc0NoaWxkU2VsZWN0ZWQodW5z
aWduZWQpIGNvbnN0OworICAgIGJvb2wgc2VsZWN0QWxsKCkgY29uc3Q7CisKICAgICBzdGF0aWMg
T3B0aW9uU2V0PEludGVyZmFjZT4gaW50ZXJmYWNlc0Zvck9iamVjdChBWENvcmVPYmplY3QmKTsK
IAogICAgIHN0YXRpYyBHREJ1c0ludGVyZmFjZVZUYWJsZSBzX2FjY2Vzc2libGVGdW5jdGlvbnM7
CkBAIC0xODksNiArMjAwLDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgR0RCdXNJbnRlcmZhY2VW
VGFibGUgc19hY3Rpb25GdW5jdGlvbnM7CiAgICAgc3RhdGljIEdEQnVzSW50ZXJmYWNlVlRhYmxl
IHNfZG9jdW1lbnRGdW5jdGlvbnM7CiAgICAgc3RhdGljIEdEQnVzSW50ZXJmYWNlVlRhYmxlIHNf
aW1hZ2VGdW5jdGlvbnM7CisgICAgc3RhdGljIEdEQnVzSW50ZXJmYWNlVlRhYmxlIHNfc2VsZWN0
aW9uRnVuY3Rpb25zOwogCiAgICAgQVhDb3JlT2JqZWN0KiBtX2F4T2JqZWN0IHsgbnVsbHB0ciB9
OwogICAgIEFYQ29yZU9iamVjdCogbV9jb3JlT2JqZWN0IHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0
U2VsZWN0aW9uQXRzcGkuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0U2VsZWN0aW9uQXRzcGkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMC4uN2EyZWUwMTE1ZmI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0U2VsZWN0
aW9uQXRzcGkuY3BwCkBAIC0wLDAgKzEsMjM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5
T2JqZWN0QXRzcGkuaCIKKworI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZKSAmJiBVU0UoQVRTUEkp
CisKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5Um9vdEF0c3BpLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworR0RCdXNJbnRlcmZhY2VWVGFibGUgQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjpz
X3NlbGVjdGlvbkZ1bmN0aW9ucyA9IHsKKyAgICAvLyBtZXRob2RfY2FsbAorICAgIFtdKEdEQnVz
Q29ubmVjdGlvbiosIGNvbnN0IGdjaGFyKiwgY29uc3QgZ2NoYXIqLCBjb25zdCBnY2hhciosIGNv
bnN0IGdjaGFyKiBtZXRob2ROYW1lLCBHVmFyaWFudCogcGFyYW1ldGVycywgR0RCdXNNZXRob2RJ
bnZvY2F0aW9uKiBpbnZvY2F0aW9uLCBncG9pbnRlciB1c2VyRGF0YSkgeworICAgICAgICBSRUxF
QVNFX0FTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgICAgICBhdXRvIGF0c3BpT2JqZWN0ID0g
UmVmIHsgKnN0YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaSo+KHVzZXJEYXRhKSB9
OworICAgICAgICBhdHNwaU9iamVjdC0+dXBkYXRlQmFja2luZ1N0b3JlKCk7CisKKyAgICAgICAg
aWYgKCFnX3N0cmNtcDAobWV0aG9kTmFtZSwgIkdldFNlbGVjdGVkQ2hpbGQiKSkgeworICAgICAg
ICAgICAgaW50IGluZGV4OworICAgICAgICAgICAgZ192YXJpYW50X2dldChwYXJhbWV0ZXJzLCAi
KGkpIiwgJmluZGV4KTsKKyAgICAgICAgICAgIGF1dG8qIGNoaWxkID0gaW5kZXggPj0gMCA/IGF0
c3BpT2JqZWN0LT5zZWxlY3RlZENoaWxkKGluZGV4KSA6IG51bGxwdHI7CisgICAgICAgICAgICBn
X2RidXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJuX3ZhbHVlKGludm9jYXRpb24sIGdfdmFyaWFu
dF9uZXcoIihAKHNvKSkiLCBjaGlsZCA/IGNoaWxkLT5yZWZlcmVuY2UoKSA6IGF0c3BpT2JqZWN0
LT5yb290KCktPmF0c3BpKCkubnVsbFJlZmVyZW5jZSgpKSk7CisgICAgICAgIH0gZWxzZSBpZiAo
IWdfc3RyY21wMChtZXRob2ROYW1lLCAiU2VsZWN0Q2hpbGQiKSkgeworICAgICAgICAgICAgaW50
IGluZGV4OworICAgICAgICAgICAgZ192YXJpYW50X2dldChwYXJhbWV0ZXJzLCAiKGkpIiwgJmlu
ZGV4KTsKKyAgICAgICAgICAgIGdfZGJ1c19tZXRob2RfaW52b2NhdGlvbl9yZXR1cm5fdmFsdWUo
aW52b2NhdGlvbiwgZ192YXJpYW50X25ldygiKGIpIiwgaW5kZXggPj0gMCA/IGF0c3BpT2JqZWN0
LT5zZXRDaGlsZFNlbGVjdGVkKGluZGV4LCB0cnVlKSA6IEZBTFNFKSk7CisgICAgICAgIH0gZWxz
ZSBpZiAoIWdfc3RyY21wMChtZXRob2ROYW1lLCAiRGVzZWxlY3RTZWxlY3RlZENoaWxkIikpIHsK
KyAgICAgICAgICAgIGludCBpbmRleDsKKyAgICAgICAgICAgIGdfdmFyaWFudF9nZXQocGFyYW1l
dGVycywgIihpKSIsICZpbmRleCk7CisgICAgICAgICAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRp
b25fcmV0dXJuX3ZhbHVlKGludm9jYXRpb24sIGdfdmFyaWFudF9uZXcoIihiKSIsIGluZGV4ID49
IDAgPyBhdHNwaU9iamVjdC0+ZGVzZWxlY3RTZWxlY3RlZENoaWxkKGluZGV4KSA6IEZBTFNFKSk7
CisgICAgICAgIH0gZWxzZSBpZiAoIWdfc3RyY21wMChtZXRob2ROYW1lLCAiSXNDaGlsZFNlbGVj
dGVkIikpIHsKKyAgICAgICAgICAgIGludCBpbmRleDsKKyAgICAgICAgICAgIGdfdmFyaWFudF9n
ZXQocGFyYW1ldGVycywgIihpKSIsICZpbmRleCk7CisgICAgICAgICAgICBnX2RidXNfbWV0aG9k
X2ludm9jYXRpb25fcmV0dXJuX3ZhbHVlKGludm9jYXRpb24sIGdfdmFyaWFudF9uZXcoIihiKSIs
IGluZGV4ID49IDAgPyBhdHNwaU9iamVjdC0+aXNDaGlsZFNlbGVjdGVkKGluZGV4KSA6IEZBTFNF
KSk7CisgICAgICAgIH0gZWxzZSBpZiAoIWdfc3RyY21wMChtZXRob2ROYW1lLCAiU2VsZWN0QWxs
IikpCisgICAgICAgICAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJuX3ZhbHVlKGlu
dm9jYXRpb24sIGdfdmFyaWFudF9uZXcoIihiKSIsIGF0c3BpT2JqZWN0LT5zZWxlY3RBbGwoKSkp
OworICAgICAgICBlbHNlIGlmICghZ19zdHJjbXAwKG1ldGhvZE5hbWUsICJDbGVhclNlbGVjdGlv
biIpKQorICAgICAgICAgICAgZ19kYnVzX21ldGhvZF9pbnZvY2F0aW9uX3JldHVybl92YWx1ZShp
bnZvY2F0aW9uLCBnX3ZhcmlhbnRfbmV3KCIoYikiLCBhdHNwaU9iamVjdC0+Y2xlYXJTZWxlY3Rp
b24oKSkpOworICAgICAgICBlbHNlIGlmICghZ19zdHJjbXAwKG1ldGhvZE5hbWUsICJEZXNlbGVj
dENoaWxkIikpIHsKKyAgICAgICAgICAgIGludCBpbmRleDsKKyAgICAgICAgICAgIGdfdmFyaWFu
dF9nZXQocGFyYW1ldGVycywgIihpKSIsICZpbmRleCk7CisgICAgICAgICAgICBnX2RidXNfbWV0
aG9kX2ludm9jYXRpb25fcmV0dXJuX3ZhbHVlKGludm9jYXRpb24sIGdfdmFyaWFudF9uZXcoIihi
KSIsIGluZGV4ID49IDAgPyBhdHNwaU9iamVjdC0+c2V0Q2hpbGRTZWxlY3RlZChpbmRleCwgZmFs
c2UpIDogRkFMU0UpKTsKKyAgICAgICAgfQorICAgIH0sCisgICAgLy8gZ2V0X3Byb3BlcnR5Cisg
ICAgW10oR0RCdXNDb25uZWN0aW9uKiwgY29uc3QgZ2NoYXIqLCBjb25zdCBnY2hhciosIGNvbnN0
IGdjaGFyKiwgY29uc3QgZ2NoYXIqIHByb3BlcnR5TmFtZSwgR0Vycm9yKiogZXJyb3IsIGdwb2lu
dGVyIHVzZXJEYXRhKSAtPiBHVmFyaWFudCogeworICAgICAgICBSRUxFQVNFX0FTU0VSVCghaXNN
YWluVGhyZWFkKCkpOworICAgICAgICBhdXRvIGF0c3BpT2JqZWN0ID0gUmVmIHsgKnN0YXRpY19j
YXN0PEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaSo+KHVzZXJEYXRhKSB9OworICAgICAgICBhdHNw
aU9iamVjdC0+dXBkYXRlQmFja2luZ1N0b3JlKCk7CisKKyAgICAgICAgaWYgKCFnX3N0cmNtcDAo
cHJvcGVydHlOYW1lLCAiTlNlbGVjdGVkQ2hpbGRyZW4iKSkKKyAgICAgICAgICAgIHJldHVybiBn
X3ZhcmlhbnRfbmV3X2ludDMyKGF0c3BpT2JqZWN0LT5zZWxlY3Rpb25Db3VudCgpKTsKKworICAg
ICAgICBnX3NldF9lcnJvcihlcnJvciwgR19JT19FUlJPUiwgR19JT19FUlJPUl9OT1RfU1VQUE9S
VEVELCAiVW5rbm93biBwcm9wZXJ0eSAnJXMnIiwgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgfSwKKyAgICAvLyBzZXRfcHJvcGVydHksCisgICAgbnVsbHB0ciwK
KyAgICAvLyBwYWRkaW5nCisgICAgbnVsbHB0cgorfTsKKwordW5zaWduZWQgQWNjZXNzaWJpbGl0
eU9iamVjdEF0c3BpOjpzZWxlY3Rpb25Db3VudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHk6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRocmVhZDx1bnNpZ25lZD4oW3RoaXNdKCkg
LT4gdW5zaWduZWQgeworICAgICAgICBpZiAobV9jb3JlT2JqZWN0KQorICAgICAgICAgICAgbV9j
b3JlT2JqZWN0LT51cGRhdGVCYWNraW5nU3RvcmUoKTsKKworICAgICAgICBpZiAoIW1fY29yZU9i
amVjdCkKKyAgICAgICAgICAgIHJldHVybiAwOworCisgICAgICAgIEFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBzZWxlY3RlZEl0ZW1zOworICAgICAgICBt
X2NvcmVPYmplY3QtPnNlbGVjdGVkQ2hpbGRyZW4oc2VsZWN0ZWRJdGVtcyk7CisgICAgICAgIHJl
dHVybiBzZWxlY3RlZEl0ZW1zLnNpemUoKTsKKyAgICB9KTsKK30KKworQWNjZXNzaWJpbGl0eU9i
amVjdEF0c3BpKiBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OnNlbGVjdGVkQ2hpbGQodW5zaWdu
ZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgYXV0byogd3JhcHBlciA9IEFjY2Vzc2liaWxpdHk6OnJl
dHJpZXZlVmFsdWVGcm9tTWFpblRocmVhZDxBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkqPihbdGhp
cywgaW5kZXhdKCkgLT4gQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpKiB7CisgICAgICAgIGlmICht
X2NvcmVPYmplY3QpCisgICAgICAgICAgICBtX2NvcmVPYmplY3QtPnVwZGF0ZUJhY2tpbmdTdG9y
ZSgpOworCisgICAgICAgIGlmICghbV9jb3JlT2JqZWN0KQorICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisKKyAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxk
cmVuVmVjdG9yIHNlbGVjdGVkSXRlbXM7CisgICAgICAgIG1fY29yZU9iamVjdC0+c2VsZWN0ZWRD
aGlsZHJlbihzZWxlY3RlZEl0ZW1zKTsKKyAgICAgICAgaWYgKGluZGV4ID49IHNlbGVjdGVkSXRl
bXMuc2l6ZSgpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICAgICAgcmV0dXJu
IHNlbGVjdGVkSXRlbXNbaW5kZXhdLT53cmFwcGVyKCk7CisgICAgfSk7CisKKyAgICBpZiAod3Jh
cHBlcikKKyAgICAgICAgd3JhcHBlci0+c2V0Um9vdChyb290KCkpOworCisgICAgcmV0dXJuIHdy
YXBwZXI7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjpzZXRDaGlsZFNlbGVj
dGVkKHVuc2lnbmVkIGluZGV4LCBib29sIHNlbGVjdGVkKSBjb25zdAoreworICAgIHJldHVybiBB
Y2Nlc3NpYmlsaXR5OjpyZXRyaWV2ZVZhbHVlRnJvbU1haW5UaHJlYWQ8Ym9vbD4oW3RoaXMsIGlu
ZGV4LCBzZWxlY3RlZF0oKSAtPiBib29sIHsKKyAgICAgICAgaWYgKG1fY29yZU9iamVjdCkKKyAg
ICAgICAgICAgIG1fY29yZU9iamVjdC0+dXBkYXRlQmFja2luZ1N0b3JlKCk7CisKKyAgICAgICAg
aWYgKCFtX2NvcmVPYmplY3QpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAg
Y29uc3QgYXV0byYgY2hpbGRyZW4gPSBtX2NvcmVPYmplY3QtPmNoaWxkcmVuKCk7CisgICAgICAg
IGlmIChpbmRleCA+PSBjaGlsZHJlbi5zaXplKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICAgICAgaWYgKCFjaGlsZHJlbltpbmRleF0tPmNhblNldFNlbGVjdGVkQXR0cmlidXRl
KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgY2hpbGRyZW5baW5kZXhd
LT5zZXRTZWxlY3RlZChzZWxlY3RlZCk7CisgICAgICAgIHJldHVybiBzZWxlY3RlZCA/IGNoaWxk
cmVuW2luZGV4XS0+aXNTZWxlY3RlZCgpIDogIWNoaWxkcmVuW2luZGV4XS0+aXNTZWxlY3RlZCgp
OworICAgIH0pOworfQorCitib29sIEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6ZGVzZWxlY3RT
ZWxlY3RlZENoaWxkKHVuc2lnbmVkIGluZGV4KSBjb25zdAoreworICAgIHJldHVybiBBY2Nlc3Np
YmlsaXR5OjpyZXRyaWV2ZVZhbHVlRnJvbU1haW5UaHJlYWQ8Ym9vbD4oW3RoaXMsIGluZGV4XSgp
IC0+IGJvb2wgeworICAgICAgICBpZiAobV9jb3JlT2JqZWN0KQorICAgICAgICAgICAgbV9jb3Jl
T2JqZWN0LT51cGRhdGVCYWNraW5nU3RvcmUoKTsKKworICAgICAgICBpZiAoIW1fY29yZU9iamVj
dCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Igc2VsZWN0ZWRJdGVtczsKKyAgICAgICAg
bV9jb3JlT2JqZWN0LT5zZWxlY3RlZENoaWxkcmVuKHNlbGVjdGVkSXRlbXMpOworICAgICAgICBp
ZiAoaW5kZXggPj0gc2VsZWN0ZWRJdGVtcy5zaXplKCkpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICAgICAgaWYgKCFzZWxlY3RlZEl0ZW1zW2luZGV4XS0+Y2FuU2V0U2VsZWN0ZWRB
dHRyaWJ1dGUoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBzZWxlY3Rl
ZEl0ZW1zW2luZGV4XS0+c2V0U2VsZWN0ZWQoZmFsc2UpOworICAgICAgICByZXR1cm4gIXNlbGVj
dGVkSXRlbXNbaW5kZXhdLT5pc1NlbGVjdGVkKCk7CisgICAgfSk7Cit9CisKK2Jvb2wgQWNjZXNz
aWJpbGl0eU9iamVjdEF0c3BpOjppc0NoaWxkU2VsZWN0ZWQodW5zaWduZWQgaW5kZXgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRocmVh
ZDxib29sPihbdGhpcywgaW5kZXhdKCkgLT4gYm9vbCB7CisgICAgICAgIGlmIChtX2NvcmVPYmpl
Y3QpCisgICAgICAgICAgICBtX2NvcmVPYmplY3QtPnVwZGF0ZUJhY2tpbmdTdG9yZSgpOworCisg
ICAgICAgIGlmICghbV9jb3JlT2JqZWN0KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgICAgIGNvbnN0IGF1dG8mIGNoaWxkcmVuID0gbV9jb3JlT2JqZWN0LT5jaGlsZHJlbigpOwor
ICAgICAgICBpZiAoaW5kZXggPj0gY2hpbGRyZW4uc2l6ZSgpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgICAgIHJldHVybiBjaGlsZHJlbltpbmRleF0tPmlzU2VsZWN0ZWQoKTsK
KyAgICB9KTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OnNlbGVjdEFsbCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZlVmFsdWVGcm9tTWFp
blRocmVhZDxib29sPihbdGhpc10oKSAtPiBib29sIHsKKyAgICAgICAgaWYgKG1fY29yZU9iamVj
dCkKKyAgICAgICAgICAgIG1fY29yZU9iamVjdC0+dXBkYXRlQmFja2luZ1N0b3JlKCk7CisKKyAg
ICAgICAgaWYgKCFtX2NvcmVPYmplY3QpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICAgICAgaWYgKCFtX2NvcmVPYmplY3QtPmlzTXVsdGlTZWxlY3RhYmxlKCkgfHwgIW1fY29yZU9i
amVjdC0+Y2FuU2V0U2VsZWN0ZWRDaGlsZHJlbigpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgICAgIGNvbnN0IGF1dG8mIGNoaWxkcmVuID0gbV9jb3JlT2JqZWN0LT5jaGlsZHJl
bigpOworICAgICAgICB1bnNpZ25lZCBzZWxlY3RhYmxlQ2hpbGRDb3VudCA9IDA7CisgICAgICAg
IGZvciAoY29uc3QgYXV0byYgY2hpbGQgOiBjaGlsZHJlbikgeworICAgICAgICAgICAgaWYgKGNo
aWxkLT5jYW5TZXRTZWxlY3RlZEF0dHJpYnV0ZSgpKQorICAgICAgICAgICAgICAgIHNlbGVjdGFi
bGVDaGlsZENvdW50Kys7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXNlbGVjdGFibGVDaGls
ZENvdW50KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIG1fY29yZU9iamVj
dC0+c2V0U2VsZWN0ZWRDaGlsZHJlbihjaGlsZHJlbik7CisgICAgICAgIEFjY2Vzc2liaWxpdHlP
YmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBzZWxlY3RlZEl0ZW1zOworICAgICAg
ICBtX2NvcmVPYmplY3QtPnNlbGVjdGVkQ2hpbGRyZW4oc2VsZWN0ZWRJdGVtcyk7CisgICAgICAg
IHJldHVybiBzZWxlY3RhYmxlQ2hpbGRDb3VudCA9PSBzZWxlY3RlZEl0ZW1zLnNpemUoKTsKKyAg
ICB9KTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OmNsZWFyU2VsZWN0aW9u
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVWYWx1ZUZyb21N
YWluVGhyZWFkPGJvb2w+KFt0aGlzXSgpIC0+IGJvb2wgeworICAgICAgICBpZiAobV9jb3JlT2Jq
ZWN0KQorICAgICAgICAgICAgbV9jb3JlT2JqZWN0LT51cGRhdGVCYWNraW5nU3RvcmUoKTsKKwor
ICAgICAgICBpZiAoIW1fY29yZU9iamVjdCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgICAgICBpZiAoIW1fY29yZU9iamVjdC0+Y2FuU2V0U2VsZWN0ZWRDaGlsZHJlbigpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIG1fY29yZU9iamVjdC0+c2V0U2VsZWN0
ZWRDaGlsZHJlbih7IH0pOworICAgICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpBY2Nlc3NpYmls
aXR5Q2hpbGRyZW5WZWN0b3Igc2VsZWN0ZWRJdGVtczsKKyAgICAgICAgbV9jb3JlT2JqZWN0LT5z
ZWxlY3RlZENoaWxkcmVuKHNlbGVjdGVkSXRlbXMpOworICAgICAgICByZXR1cm4gc2VsZWN0ZWRJ
dGVtcy5pc0VtcHR5KCk7CisgICAgfSk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdEF0
c3BpOjpzZWxlY3Rpb25DaGFuZ2VkKCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChpc01haW5UaHJl
YWQoKSk7CisgICAgaWYgKCFtX2lzUmVnaXN0ZXJlZC5sb2FkKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIHJvb3QoKS0+YXRzcGkoKS5zZWxlY3Rpb25DaGFuZ2VkKCp0aGlzKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEFDQ0VTU0lCSUxJVFkpICYm
IFVTRShBVFNQSSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCA0ODNlZmMyOGFhZDMuLjlmMzI3MWUxNDFiNSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTExLTI1
ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBb
R1RLXVthMTF5XSBBZGQgaW1wbGVtZW50YXRpb24gb2Ygc2VsZWN0aW9uIGludGVyZmFjZSB3aGVu
IGJ1aWxkaW5nIHdpdGggQVRTUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzMzQ5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCB0ZXN0cyBjYXNlIGZvciBzZWxlY3Rpb24gaW50ZXJmYWNlIGFuZCBX
VFIgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dEd0ay9UZXN0V2ViS2l0QWNjZXNzaWJpbGl0eS5jcHA6CisgICAgICAgICh0ZXN0U2VsZWN0aW9u
TGlzdEJveCk6CisgICAgICAgIChiZWZvcmVBbGwpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvYXRzcGkvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0c3BpLmNwcDoK
KyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZEF0SW5k
ZXggY29uc3QpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3Rl
ZENoaWxkcmVuQ291bnQgY29uc3QpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpzZXRTZWxlY3RlZENoaWxkQXRJbmRleCBjb25zdCk6CisgICAgICAgIChXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZVNlbGVjdGlvbkF0SW5kZXggY29uc3QpOgorICAgICAg
ICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjbGVhclNlbGVjdGVkQ2hpbGRyZW4gY29u
c3QpOgorCiAyMDIxLTExLTE5ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbR1RLXVthMTF5XSBBZGQgaW1wbGVtZW50YXRpb24gb2YgaW1hZ2Ug
aW50ZXJmYWNlIHdoZW4gYnVpbGRpbmcgd2l0aCBBVFNQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdFdlYktpdEFjY2Vzc2liaWxpdHkuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdFdlYktpdEFjY2Vzc2liaWxp
dHkuY3BwCmluZGV4IGVjZTcwOThlYjBjZS4uYzIzMmFiNmIwNjFiIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0V2ViS2l0QWNjZXNzaWJpbGl0eS5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdFdlYktpdEFj
Y2Vzc2liaWxpdHkuY3BwCkBAIC0yMDQ2LDYgKzIwNDYsMTM5IEBAIHN0YXRpYyB2b2lkIHRlc3RJ
bWFnZUJhc2ljKEFjY2Vzc2liaWxpdHlUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogI2VuZGlm
CiB9CiAKK3N0YXRpYyB2b2lkIHRlc3RTZWxlY3Rpb25MaXN0Qm94KEFjY2Vzc2liaWxpdHlUZXN0
KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQoreworICAgIHRlc3QtPnNob3dJbldpbmRvdyg4MDAsIDYw
MCk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiBiYXNlRGlyKGdfc3RyZHVwX3ByaW50ZigiZmlsZTov
LyVzLyIsIFRlc3Q6OmdldFJlc291cmNlc0RpcigpLmRhdGEoKSkpOworICAgIHRlc3QtPmxvYWRI
dG1sKAorICAgICAgICAiPGh0bWw+IgorICAgICAgICAiICA8Ym9keT4iCisgICAgICAgICIgICAg
PHNlbGVjdCBpZD0nc2luZ2xlJyBzaXplPSczJz4iCisgICAgICAgICIgICAgICA8b3B0aW9uPk9w
dGlvbiAxPC9vcHRpb24+IgorICAgICAgICAiICAgICAgPG9wdGlvbiBkaXNhYmxlZD5PcHRpb24g
Mjwvb3B0aW9uPiIKKyAgICAgICAgIiAgICAgIDxvcHRpb24+T3B0aW9uIDM8L29wdGlvbj4iCisg
ICAgICAgICIgICAgPC9zZWxlY3Q+IgorICAgICAgICAiICAgIDxzZWxlY3QgaWQ9J211bHRpcGxl
JyBzaXplPSczJyBtdWx0aXBsZT4iCisgICAgICAgICIgICAgICA8b3B0aW9uPk9wdGlvbiAxPC9v
cHRpb24+IgorICAgICAgICAiICAgICAgPG9wdGlvbiBzZWxlY3RlZD5PcHRpb24gMjwvb3B0aW9u
PiIKKyAgICAgICAgIiAgICAgIDxvcHRpb24+T3B0aW9uIDM8L29wdGlvbj4iCisgICAgICAgICIg
ICAgPC9zZWxlY3Q+IgorICAgICAgICAiICA8L2JvZHk+IgorICAgICAgICAiPC9odG1sPiIsCisg
ICAgICAgIGJhc2VEaXIuZ2V0KCkpOworICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hlZCgp
OworCisgICAgYXV0byB0ZXN0QXBwID0gdGVzdC0+ZmluZFRlc3RBcHBsaWNhdGlvbigpOworICAg
IGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfQUNDRVNTSUJMRSh0ZXN0QXBwLmdldCgpKSk7CisKKyAg
ICBhdXRvIGRvY3VtZW50V2ViID0gdGVzdC0+ZmluZERvY3VtZW50V2ViKHRlc3RBcHAuZ2V0KCkp
OworICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfQUNDRVNTSUJMRShkb2N1bWVudFdlYi5nZXQo
KSkpOworICAgIGdfYXNzZXJ0X2NtcGludChhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGlsZF9jb3Vu
dChkb2N1bWVudFdlYi5nZXQoKSwgbnVsbHB0ciksID09LCAxKTsKKworICAgIGF1dG8gcGFuZWwg
PSBhZG9wdEdSZWYoYXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfYXRfaW5kZXgoZG9jdW1lbnRX
ZWIuZ2V0KCksIDAsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF90cnVlKEFUU1BJX0lTX0FDQ0VT
U0lCTEUocGFuZWwuZ2V0KCkpKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoYXRzcGlfYWNjZXNzaWJs
ZV9nZXRfcm9sZShwYW5lbC5nZXQoKSwgbnVsbHB0ciksID09LCBBVFNQSV9ST0xFX1BBTkVMKTsK
KyAgICBnX2Fzc2VydF9jbXBpbnQoYXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfY291bnQocGFu
ZWwuZ2V0KCksIG51bGxwdHIpLCA9PSwgMik7CisKKyAgICB0ZXN0LT5ydW5KYXZhU2NyaXB0QW5k
V2FpdFVudGlsRmluaXNoZWQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzaW5nbGUnKS5mb2N1
cygpOyIsIG51bGxwdHIpOworCisgICAgYXV0byBsaXN0Qm94ID0gYWRvcHRHUmVmKGF0c3BpX2Fj
Y2Vzc2libGVfZ2V0X2NoaWxkX2F0X2luZGV4KHBhbmVsLmdldCgpLCAwLCBudWxscHRyKSk7Cisg
ICAgZ19hc3NlcnRfdHJ1ZShBVFNQSV9JU19TRUxFQ1RJT04obGlzdEJveC5nZXQoKSkpOworICAg
IGdfYXNzZXJ0X2NtcGludChhdHNwaV9hY2Nlc3NpYmxlX2dldF9yb2xlKGxpc3RCb3guZ2V0KCks
IG51bGxwdHIpLCA9PSwgQVRTUElfUk9MRV9MSVNUX0JPWCk7CisgICAgZ19hc3NlcnRfY21waW50
KGF0c3BpX2FjY2Vzc2libGVfZ2V0X2NoaWxkX2NvdW50KGxpc3RCb3guZ2V0KCksIG51bGxwdHIp
LCA9PSwgMyk7CisgICAgZ19hc3NlcnRfY21waW50KGF0c3BpX3NlbGVjdGlvbl9nZXRfbl9zZWxl
Y3RlZF9jaGlsZHJlbihBVFNQSV9TRUxFQ1RJT04obGlzdEJveC5nZXQoKSksIG51bGxwdHIpLCA9
PSwgMCk7CisgICAgZ19hc3NlcnRfZmFsc2UoYXRzcGlfc2VsZWN0aW9uX2lzX2NoaWxkX3NlbGVj
dGVkKEFUU1BJX1NFTEVDVElPTihsaXN0Qm94LmdldCgpKSwgMCwgbnVsbHB0cikpOworICAgIGdf
YXNzZXJ0X2ZhbHNlKGF0c3BpX3NlbGVjdGlvbl9pc19jaGlsZF9zZWxlY3RlZChBVFNQSV9TRUxF
Q1RJT04obGlzdEJveC5nZXQoKSksIDEsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF9mYWxzZShh
dHNwaV9zZWxlY3Rpb25faXNfY2hpbGRfc2VsZWN0ZWQoQVRTUElfU0VMRUNUSU9OKGxpc3RCb3gu
Z2V0KCkpLCAyLCBudWxscHRyKSk7CisgICAgZ19hc3NlcnRfZmFsc2UoYXRzcGlfc2VsZWN0aW9u
X3NlbGVjdF9jaGlsZChBVFNQSV9TRUxFQ1RJT04obGlzdEJveC5nZXQoKSksIDEsIG51bGxwdHIp
KTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoYXRzcGlfc2VsZWN0aW9uX2dldF9uX3NlbGVjdGVkX2No
aWxkcmVuKEFUU1BJX1NFTEVDVElPTihsaXN0Qm94LmdldCgpKSwgbnVsbHB0ciksID09LCAwKTsK
KyAgICBnX2Fzc2VydF9mYWxzZShhdHNwaV9zZWxlY3Rpb25faXNfY2hpbGRfc2VsZWN0ZWQoQVRT
UElfU0VMRUNUSU9OKGxpc3RCb3guZ2V0KCkpLCAxLCBudWxscHRyKSk7CisgICAgdGVzdC0+c3Rh
cnRFdmVudE1vbml0b3IobGlzdEJveC5nZXQoKSwgeyAib2JqZWN0OnNlbGVjdGlvbi1jaGFuZ2Vk
IiB9KTsKKyAgICBnX2Fzc2VydF90cnVlKGF0c3BpX3NlbGVjdGlvbl9zZWxlY3RfY2hpbGQoQVRT
UElfU0VMRUNUSU9OKGxpc3RCb3guZ2V0KCkpLCAwLCBudWxscHRyKSk7CisgICAgYXV0byBldmVu
dHMgPSB0ZXN0LT5zdG9wRXZlbnRNb25pdG9yKDEpOworICAgIGdfYXNzZXJ0X2NtcHVpbnQoZXZl
bnRzLnNpemUoKSwgPT0sIDEpOworICAgIGdfYXNzZXJ0X2NtcHN0cihldmVudHNbMF0tPnR5cGUs
ID09LCAib2JqZWN0OnNlbGVjdGlvbi1jaGFuZ2VkIik7CisgICAgZXZlbnRzID0geyB9OworICAg
IGdfYXNzZXJ0X2NtcGludChhdHNwaV9zZWxlY3Rpb25fZ2V0X25fc2VsZWN0ZWRfY2hpbGRyZW4o
QVRTUElfU0VMRUNUSU9OKGxpc3RCb3guZ2V0KCkpLCBudWxscHRyKSwgPT0sIDEpOworICAgIGdf
YXNzZXJ0X3RydWUoYXRzcGlfc2VsZWN0aW9uX2lzX2NoaWxkX3NlbGVjdGVkKEFUU1BJX1NFTEVD
VElPTihsaXN0Qm94LmdldCgpKSwgMCwgbnVsbHB0cikpOworICAgIGF1dG8gc2VsZWN0ZWRDaGls
ZCA9IGFkb3B0R1JlZihhdHNwaV9zZWxlY3Rpb25fZ2V0X3NlbGVjdGVkX2NoaWxkKEFUU1BJX1NF
TEVDVElPTihsaXN0Qm94LmdldCgpKSwgMCwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X3RydWUo
QVRTUElfSVNfQUNDRVNTSUJMRShzZWxlY3RlZENoaWxkLmdldCgpKSk7CisgICAgYXV0byBvcHRp
b24xID0gYWRvcHRHUmVmKGF0c3BpX2FjY2Vzc2libGVfZ2V0X2NoaWxkX2F0X2luZGV4KGxpc3RC
b3guZ2V0KCksIDAsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF90cnVlKHNlbGVjdGVkQ2hpbGQu
Z2V0KCkgPT0gb3B0aW9uMS5nZXQoKSk7CisgICAgdGVzdC0+c3RhcnRFdmVudE1vbml0b3IobGlz
dEJveC5nZXQoKSwgeyAib2JqZWN0OnNlbGVjdGlvbi1jaGFuZ2VkIiB9KTsKKyAgICBnX2Fzc2Vy
dF90cnVlKGF0c3BpX3NlbGVjdGlvbl9zZWxlY3RfY2hpbGQoQVRTUElfU0VMRUNUSU9OKGxpc3RC
b3guZ2V0KCkpLCAyLCBudWxscHRyKSk7CisgICAgZXZlbnRzID0gdGVzdC0+c3RvcEV2ZW50TW9u
aXRvcigxKTsKKyAgICBnX2Fzc2VydF9jbXB1aW50KGV2ZW50cy5zaXplKCksID09LCAxKTsKKyAg
ICBnX2Fzc2VydF9jbXBzdHIoZXZlbnRzWzBdLT50eXBlLCA9PSwgIm9iamVjdDpzZWxlY3Rpb24t
Y2hhbmdlZCIpOworICAgIGV2ZW50cyA9IHsgfTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoYXRzcGlf
c2VsZWN0aW9uX2dldF9uX3NlbGVjdGVkX2NoaWxkcmVuKEFUU1BJX1NFTEVDVElPTihsaXN0Qm94
LmdldCgpKSwgbnVsbHB0ciksID09LCAxKTsKKyAgICBnX2Fzc2VydF90cnVlKGF0c3BpX3NlbGVj
dGlvbl9pc19jaGlsZF9zZWxlY3RlZChBVFNQSV9TRUxFQ1RJT04obGlzdEJveC5nZXQoKSksIDIs
IG51bGxwdHIpKTsKKyAgICBzZWxlY3RlZENoaWxkID0gYWRvcHRHUmVmKGF0c3BpX3NlbGVjdGlv
bl9nZXRfc2VsZWN0ZWRfY2hpbGQoQVRTUElfU0VMRUNUSU9OKGxpc3RCb3guZ2V0KCkpLCAwLCBu
dWxscHRyKSk7CisgICAgZ19hc3NlcnRfdHJ1ZShBVFNQSV9JU19BQ0NFU1NJQkxFKHNlbGVjdGVk
Q2hpbGQuZ2V0KCkpKTsKKyAgICBhdXRvIG9wdGlvbjMgPSBhZG9wdEdSZWYoYXRzcGlfYWNjZXNz
aWJsZV9nZXRfY2hpbGRfYXRfaW5kZXgobGlzdEJveC5nZXQoKSwgMiwgbnVsbHB0cikpOworICAg
IGdfYXNzZXJ0X3RydWUoc2VsZWN0ZWRDaGlsZC5nZXQoKSA9PSBvcHRpb24zLmdldCgpKTsKKyAg
ICBnX2Fzc2VydF9mYWxzZShhdHNwaV9zZWxlY3Rpb25fZGVzZWxlY3Rfc2VsZWN0ZWRfY2hpbGQo
QVRTUElfU0VMRUNUSU9OKGxpc3RCb3guZ2V0KCkpLCAxLCBudWxscHRyKSk7CisgICAgZ19hc3Nl
cnRfY21waW50KGF0c3BpX3NlbGVjdGlvbl9nZXRfbl9zZWxlY3RlZF9jaGlsZHJlbihBVFNQSV9T
RUxFQ1RJT04obGlzdEJveC5nZXQoKSksIG51bGxwdHIpLCA9PSwgMSk7CisgICAgZ19hc3NlcnRf
dHJ1ZShhdHNwaV9zZWxlY3Rpb25fZGVzZWxlY3Rfc2VsZWN0ZWRfY2hpbGQoQVRTUElfU0VMRUNU
SU9OKGxpc3RCb3guZ2V0KCkpLCAwLCBudWxscHRyKSk7CisgICAgZ19hc3NlcnRfY21waW50KGF0
c3BpX3NlbGVjdGlvbl9nZXRfbl9zZWxlY3RlZF9jaGlsZHJlbihBVFNQSV9TRUxFQ1RJT04obGlz
dEJveC5nZXQoKSksIG51bGxwdHIpLCA9PSwgMCk7CisgICAgZ19hc3NlcnRfZmFsc2UoYXRzcGlf
c2VsZWN0aW9uX2lzX2NoaWxkX3NlbGVjdGVkKEFUU1BJX1NFTEVDVElPTihsaXN0Qm94LmdldCgp
KSwgMiwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X2ZhbHNlKGF0c3BpX3NlbGVjdGlvbl9zZWxl
Y3RfYWxsKEFUU1BJX1NFTEVDVElPTihsaXN0Qm94LmdldCgpKSwgbnVsbHB0cikpOworICAgIGdf
YXNzZXJ0X3RydWUoYXRzcGlfc2VsZWN0aW9uX3NlbGVjdF9jaGlsZChBVFNQSV9TRUxFQ1RJT04o
bGlzdEJveC5nZXQoKSksIDAsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoYXRzcGlf
c2VsZWN0aW9uX2dldF9uX3NlbGVjdGVkX2NoaWxkcmVuKEFUU1BJX1NFTEVDVElPTihsaXN0Qm94
LmdldCgpKSwgbnVsbHB0ciksID09LCAxKTsKKyAgICBnX2Fzc2VydF90cnVlKGF0c3BpX3NlbGVj
dGlvbl9pc19jaGlsZF9zZWxlY3RlZChBVFNQSV9TRUxFQ1RJT04obGlzdEJveC5nZXQoKSksIDAs
IG51bGxwdHIpKTsKKyAgICB0ZXN0LT5zdGFydEV2ZW50TW9uaXRvcihsaXN0Qm94LmdldCgpLCB7
ICJvYmplY3Q6c2VsZWN0aW9uLWNoYW5nZWQiIH0pOworICAgIGdfYXNzZXJ0X3RydWUoYXRzcGlf
c2VsZWN0aW9uX2NsZWFyX3NlbGVjdGlvbihBVFNQSV9TRUxFQ1RJT04obGlzdEJveC5nZXQoKSks
IG51bGxwdHIpKTsKKyAgICBldmVudHMgPSB0ZXN0LT5zdG9wRXZlbnRNb25pdG9yKDEpOworICAg
IGdfYXNzZXJ0X2NtcHVpbnQoZXZlbnRzLnNpemUoKSwgPT0sIDEpOworICAgIGdfYXNzZXJ0X2Nt
cHN0cihldmVudHNbMF0tPnR5cGUsID09LCAib2JqZWN0OnNlbGVjdGlvbi1jaGFuZ2VkIik7Cisg
ICAgZXZlbnRzID0geyB9OworICAgIGdfYXNzZXJ0X2NtcGludChhdHNwaV9zZWxlY3Rpb25fZ2V0
X25fc2VsZWN0ZWRfY2hpbGRyZW4oQVRTUElfU0VMRUNUSU9OKGxpc3RCb3guZ2V0KCkpLCBudWxs
cHRyKSwgPT0sIDApOworICAgIGdfYXNzZXJ0X2ZhbHNlKGF0c3BpX3NlbGVjdGlvbl9pc19jaGls
ZF9zZWxlY3RlZChBVFNQSV9TRUxFQ1RJT04obGlzdEJveC5nZXQoKSksIDAsIG51bGxwdHIpKTsK
KworICAgIHRlc3QtPnJ1bkphdmFTY3JpcHRBbmRXYWl0VW50aWxGaW5pc2hlZCgiZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ211bHRpcGxlJykuZm9jdXMoKTsiLCBudWxscHRyKTsKKworICAgIGxp
c3RCb3ggPSBhZG9wdEdSZWYoYXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfYXRfaW5kZXgocGFu
ZWwuZ2V0KCksIDEsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF90cnVlKEFUU1BJX0lTX1NFTEVD
VElPTihsaXN0Qm94LmdldCgpKSk7CisgICAgZ19hc3NlcnRfY21waW50KGF0c3BpX2FjY2Vzc2li
bGVfZ2V0X3JvbGUobGlzdEJveC5nZXQoKSwgbnVsbHB0ciksID09LCBBVFNQSV9ST0xFX0xJU1Rf
Qk9YKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoYXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfY291
bnQobGlzdEJveC5nZXQoKSwgbnVsbHB0ciksID09LCAzKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQo
YXRzcGlfc2VsZWN0aW9uX2dldF9uX3NlbGVjdGVkX2NoaWxkcmVuKEFUU1BJX1NFTEVDVElPTihs
aXN0Qm94LmdldCgpKSwgbnVsbHB0ciksID09LCAxKTsKKyAgICBnX2Fzc2VydF9mYWxzZShhdHNw
aV9zZWxlY3Rpb25faXNfY2hpbGRfc2VsZWN0ZWQoQVRTUElfU0VMRUNUSU9OKGxpc3RCb3guZ2V0
KCkpLCAwLCBudWxscHRyKSk7CisgICAgZ19hc3NlcnRfdHJ1ZShhdHNwaV9zZWxlY3Rpb25faXNf
Y2hpbGRfc2VsZWN0ZWQoQVRTUElfU0VMRUNUSU9OKGxpc3RCb3guZ2V0KCkpLCAxLCBudWxscHRy
KSk7CisgICAgZ19hc3NlcnRfZmFsc2UoYXRzcGlfc2VsZWN0aW9uX2lzX2NoaWxkX3NlbGVjdGVk
KEFUU1BJX1NFTEVDVElPTihsaXN0Qm94LmdldCgpKSwgMiwgbnVsbHB0cikpOworICAgIHNlbGVj
dGVkQ2hpbGQgPSBhZG9wdEdSZWYoYXRzcGlfc2VsZWN0aW9uX2dldF9zZWxlY3RlZF9jaGlsZChB
VFNQSV9TRUxFQ1RJT04obGlzdEJveC5nZXQoKSksIDAsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2Vy
dF90cnVlKEFUU1BJX0lTX0FDQ0VTU0lCTEUoc2VsZWN0ZWRDaGlsZC5nZXQoKSkpOworICAgIGF1
dG8gb3B0aW9uMiA9IGFkb3B0R1JlZihhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGlsZF9hdF9pbmRl
eChsaXN0Qm94LmdldCgpLCAxLCBudWxscHRyKSk7CisgICAgZ19hc3NlcnRfdHJ1ZShzZWxlY3Rl
ZENoaWxkLmdldCgpID09IG9wdGlvbjIuZ2V0KCkpOworICAgIGdfYXNzZXJ0X3RydWUoYXRzcGlf
c2VsZWN0aW9uX3NlbGVjdF9jaGlsZChBVFNQSV9TRUxFQ1RJT04obGlzdEJveC5nZXQoKSksIDAs
IG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoYXRzcGlfc2VsZWN0aW9uX2dldF9uX3Nl
bGVjdGVkX2NoaWxkcmVuKEFUU1BJX1NFTEVDVElPTihsaXN0Qm94LmdldCgpKSwgbnVsbHB0ciks
ID09LCAyKTsKKyAgICBnX2Fzc2VydF90cnVlKGF0c3BpX3NlbGVjdGlvbl9pc19jaGlsZF9zZWxl
Y3RlZChBVFNQSV9TRUxFQ1RJT04obGlzdEJveC5nZXQoKSksIDAsIG51bGxwdHIpKTsKKyAgICBn
X2Fzc2VydF90cnVlKGF0c3BpX3NlbGVjdGlvbl9pc19jaGlsZF9zZWxlY3RlZChBVFNQSV9TRUxF
Q1RJT04obGlzdEJveC5nZXQoKSksIDEsIG51bGxwdHIpKTsKKyAgICBzZWxlY3RlZENoaWxkID0g
YWRvcHRHUmVmKGF0c3BpX3NlbGVjdGlvbl9nZXRfc2VsZWN0ZWRfY2hpbGQoQVRTUElfU0VMRUNU
SU9OKGxpc3RCb3guZ2V0KCkpLCAwLCBudWxscHRyKSk7CisgICAgb3B0aW9uMSA9IGFkb3B0R1Jl
ZihhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGlsZF9hdF9pbmRleChsaXN0Qm94LmdldCgpLCAwLCBu
dWxscHRyKSk7CisgICAgZ19hc3NlcnRfdHJ1ZShzZWxlY3RlZENoaWxkLmdldCgpID09IG9wdGlv
bjEuZ2V0KCkpOworICAgIHNlbGVjdGVkQ2hpbGQgPSBhZG9wdEdSZWYoYXRzcGlfc2VsZWN0aW9u
X2dldF9zZWxlY3RlZF9jaGlsZChBVFNQSV9TRUxFQ1RJT04obGlzdEJveC5nZXQoKSksIDEsIG51
bGxwdHIpKTsKKyAgICBnX2Fzc2VydF90cnVlKHNlbGVjdGVkQ2hpbGQuZ2V0KCkgPT0gb3B0aW9u
Mi5nZXQoKSk7CisgICAgZ19hc3NlcnRfdHJ1ZShhdHNwaV9zZWxlY3Rpb25fZGVzZWxlY3RfY2hp
bGQoQVRTUElfU0VMRUNUSU9OKGxpc3RCb3guZ2V0KCkpLCAxLCBudWxscHRyKSk7CisgICAgZ19h
c3NlcnRfY21waW50KGF0c3BpX3NlbGVjdGlvbl9nZXRfbl9zZWxlY3RlZF9jaGlsZHJlbihBVFNQ
SV9TRUxFQ1RJT04obGlzdEJveC5nZXQoKSksIG51bGxwdHIpLCA9PSwgMSk7CisgICAgZ19hc3Nl
cnRfdHJ1ZShhdHNwaV9zZWxlY3Rpb25faXNfY2hpbGRfc2VsZWN0ZWQoQVRTUElfU0VMRUNUSU9O
KGxpc3RCb3guZ2V0KCkpLCAwLCBudWxscHRyKSk7CisgICAgZ19hc3NlcnRfZmFsc2UoYXRzcGlf
c2VsZWN0aW9uX2lzX2NoaWxkX3NlbGVjdGVkKEFUU1BJX1NFTEVDVElPTihsaXN0Qm94LmdldCgp
KSwgMSwgbnVsbHB0cikpOworICAgIHRlc3QtPnN0YXJ0RXZlbnRNb25pdG9yKGxpc3RCb3guZ2V0
KCksIHsgIm9iamVjdDpzZWxlY3Rpb24tY2hhbmdlZCIgfSk7CisgICAgZ19hc3NlcnRfdHJ1ZShh
dHNwaV9zZWxlY3Rpb25fc2VsZWN0X2FsbChBVFNQSV9TRUxFQ1RJT04obGlzdEJveC5nZXQoKSks
IG51bGxwdHIpKTsKKyAgICBldmVudHMgPSB0ZXN0LT5zdG9wRXZlbnRNb25pdG9yKDEpOworICAg
IGdfYXNzZXJ0X2NtcHVpbnQoZXZlbnRzLnNpemUoKSwgPT0sIDEpOworICAgIGdfYXNzZXJ0X2Nt
cHN0cihldmVudHNbMF0tPnR5cGUsID09LCAib2JqZWN0OnNlbGVjdGlvbi1jaGFuZ2VkIik7Cisg
ICAgZXZlbnRzID0geyB9OworICAgIGdfYXNzZXJ0X2NtcGludChhdHNwaV9zZWxlY3Rpb25fZ2V0
X25fc2VsZWN0ZWRfY2hpbGRyZW4oQVRTUElfU0VMRUNUSU9OKGxpc3RCb3guZ2V0KCkpLCBudWxs
cHRyKSwgPT0sIDMpOworICAgIGdfYXNzZXJ0X3RydWUoYXRzcGlfc2VsZWN0aW9uX2lzX2NoaWxk
X3NlbGVjdGVkKEFUU1BJX1NFTEVDVElPTihsaXN0Qm94LmdldCgpKSwgMCwgbnVsbHB0cikpOwor
ICAgIGdfYXNzZXJ0X3RydWUoYXRzcGlfc2VsZWN0aW9uX2lzX2NoaWxkX3NlbGVjdGVkKEFUU1BJ
X1NFTEVDVElPTihsaXN0Qm94LmdldCgpKSwgMSwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X3Ry
dWUoYXRzcGlfc2VsZWN0aW9uX2lzX2NoaWxkX3NlbGVjdGVkKEFUU1BJX1NFTEVDVElPTihsaXN0
Qm94LmdldCgpKSwgMiwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X3RydWUoYXRzcGlfc2VsZWN0
aW9uX2NsZWFyX3NlbGVjdGlvbihBVFNQSV9TRUxFQ1RJT04obGlzdEJveC5nZXQoKSksIG51bGxw
dHIpKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoYXRzcGlfc2VsZWN0aW9uX2dldF9uX3NlbGVjdGVk
X2NoaWxkcmVuKEFUU1BJX1NFTEVDVElPTihsaXN0Qm94LmdldCgpKSwgbnVsbHB0ciksID09LCAw
KTsKKyAgICBnX2Fzc2VydF9mYWxzZShhdHNwaV9zZWxlY3Rpb25faXNfY2hpbGRfc2VsZWN0ZWQo
QVRTUElfU0VMRUNUSU9OKGxpc3RCb3guZ2V0KCkpLCAwLCBudWxscHRyKSk7CisgICAgZ19hc3Nl
cnRfZmFsc2UoYXRzcGlfc2VsZWN0aW9uX2lzX2NoaWxkX3NlbGVjdGVkKEFUU1BJX1NFTEVDVElP
TihsaXN0Qm94LmdldCgpKSwgMSwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X2ZhbHNlKGF0c3Bp
X3NlbGVjdGlvbl9pc19jaGlsZF9zZWxlY3RlZChBVFNQSV9TRUxFQ1RJT04obGlzdEJveC5nZXQo
KSksIDIsIG51bGxwdHIpKTsKK30KKwogdm9pZCBiZWZvcmVBbGwoKQogewogICAgIEFjY2Vzc2li
aWxpdHlUZXN0OjphZGQoIldlYktpdEFjY2Vzc2liaWxpdHkiLCAiYWNjZXNzaWJsZS9iYXNpYy1o
aWVyYXJjaHkiLCB0ZXN0QWNjZXNzaWJsZUJhc2ljSGllcmFyY2h5KTsKQEAgLTIwNzIsNiArMjIw
NSw3IEBAIHZvaWQgYmVmb3JlQWxsKCkKICAgICBBY2Nlc3NpYmlsaXR5VGVzdDo6YWRkKCJXZWJL
aXRBY2Nlc3NpYmlsaXR5IiwgImFjdGlvbi9iYXNpYyIsIHRlc3RBY3Rpb25CYXNpYyk7CiAgICAg
QWNjZXNzaWJpbGl0eVRlc3Q6OmFkZCgiV2ViS2l0QWNjZXNzaWJpbGl0eSIsICJkb2N1bWVudC9i
YXNpYyIsIHRlc3REb2N1bWVudEJhc2ljKTsKICAgICBBY2Nlc3NpYmlsaXR5VGVzdDo6YWRkKCJX
ZWJLaXRBY2Nlc3NpYmlsaXR5IiwgImltYWdlL2Jhc2ljIiwgdGVzdEltYWdlQmFzaWMpOworICAg
IEFjY2Vzc2liaWxpdHlUZXN0OjphZGQoIldlYktpdEFjY2Vzc2liaWxpdHkiLCAic2VsZWN0aW9u
L2xpc3Rib3giLCB0ZXN0U2VsZWN0aW9uTGlzdEJveCk7CiB9CiAKIHZvaWQgYWZ0ZXJBbGwoKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdHNwaS9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRzcGkuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9hdHNwaS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRzcGkuY3BwCmluZGV4
IGRjY2UyNjlhYjdhMC4uZmVmNjM0MjYwOTQ2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL2F0c3BpL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdHNwaS5j
cHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdHNwaS9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50QXRzcGkuY3BwCkBAIC0xNjEsMTIgKzE2MSwyMCBAQCBSZWZQdHI8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93QXRJbmRl
eCh1bnNpZ25lZCBpbmRleAogCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQgaW5kZXgpIGNv
bnN0CiB7CisgICAgaWYgKCFtX2VsZW1lbnQtPmludGVyZmFjZXMoKS5jb250YWlucyhXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OkludGVyZmFjZTo6U2VsZWN0aW9uKSkKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoYXV0byogc2VsZWN0ZWRDaGlsZCA9IG1fZWxl
bWVudC0+c2VsZWN0ZWRDaGlsZChpbmRleCkpCisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpjcmVhdGUoc2VsZWN0ZWRDaGlsZCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9
CiAKIHVuc2lnbmVkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRyZW5Db3Vu
dCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIDA7CisgICAgaWYgKCFtX2VsZW1lbnQtPmludGVyZmFj
ZXMoKS5jb250YWlucyhXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OkludGVyZmFj
ZTo6U2VsZWN0aW9uKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gbV9lbGVtZW50
LT5zZWxlY3Rpb25Db3VudCgpOwogfQogCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRSb3dBdEluZGV4KHVuc2lnbmVkIGluZGV4
KQpAQCAtMTExMCwxNCArMTExOCwyNiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNl
dFNlbGVjdGVkQ2hpbGQoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCogZWxlbWVudCkgYwogCiB2b2lk
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KHVuc2lnbmVk
IGluZGV4KSBjb25zdAogeworICAgIGlmICghbV9lbGVtZW50LT5pbnRlcmZhY2VzKCkuY29udGFp
bnMoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjpJbnRlcmZhY2U6OlNlbGVjdGlv
bikpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZWxlbWVudC0+c2V0Q2hpbGRTZWxlY3RlZChp
bmRleCwgdHJ1ZSk7CiB9CiAKIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlU2Vs
ZWN0aW9uQXRJbmRleCh1bnNpZ25lZCBpbmRleCkgY29uc3QKIHsKKyAgICBpZiAoIW1fZWxlbWVu
dC0+aW50ZXJmYWNlcygpLmNvbnRhaW5zKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3RBdHNw
aTo6SW50ZXJmYWNlOjpTZWxlY3Rpb24pKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2VsZW1l
bnQtPnNldENoaWxkU2VsZWN0ZWQoaW5kZXgsIGZhbHNlKTsKIH0KIAogdm9pZCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpjbGVhclNlbGVjdGVkQ2hpbGRyZW4oKSBjb25zdAogeworICAgIGlmICgh
bV9lbGVtZW50LT5pbnRlcmZhY2VzKCkuY29udGFpbnMoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9i
amVjdEF0c3BpOjpJbnRlcmZhY2U6OlNlbGVjdGlvbikpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fZWxlbWVudC0+Y2xlYXJTZWxlY3Rpb24oKTsKIH0KIAogSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFjY2Vzc2liaWxpdHlWYWx1ZSgpIGNvbnN0Cg==
</data>
<flag name="review"
          id="470276"
          type_id="1"
          status="+"
          setter="aperez"
    />
          </attachment>
      

    </bug>

</bugzilla>