<?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>204278</bug_id>
          
          <creation_ts>2019-11-16 14:17:19 -0800</creation_ts>
          <short_desc>[iOS] [UIWKDocumentContext] Add the ability to request all marked text rects</short_desc>
          <delta_ts>2019-11-16 16:09:46 -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>HTML Editing</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>mifenton</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1590887</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-11-16 14:17:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/56527803&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590888</commentid>
    <comment_count>1</comment_count>
      <attachid>383703</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-11-16 14:29:00 -0800</bug_when>
    <thetext>Created attachment 383703
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590889</commentid>
    <comment_count>2</comment_count>
      <attachid>383704</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-11-16 14:36:49 -0800</bug_when>
    <thetext>Created attachment 383704
Fix non-internal iOS builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590891</commentid>
    <comment_count>3</comment_count>
      <attachid>383706</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-11-16 14:46:40 -0800</bug_when>
    <thetext>Created attachment 383706
Fix non-internal iOS builds (again)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590908</commentid>
    <comment_count>4</comment_count>
      <attachid>383706</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-16 16:09:44 -0800</bug_when>
    <thetext>Comment on attachment 383706
Fix non-internal iOS builds (again)

Clearing flags on attachment: 383706

Committed r252528: &lt;https://trac.webkit.org/changeset/252528&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590909</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-16 16:09:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383703</attachid>
            <date>2019-11-16 14:29:00 -0800</date>
            <delta_ts>2019-11-16 14:36:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204278-20191116142900.patch</filename>
            <type>text/plain</type>
            <size>16766</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTdkZTE0YjIwNzJiOGJm
ZjdiN2RjMDA2NWMxMGE2OGYxODhjMzc1Ni4uNzlmZjRjNzlmNzA5NTE3OGZkMWNhZDYxYzQ2YjE3
NDE2MzE0MDA0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTExLTE2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFtVSVdL
RG9jdW1lbnRDb250ZXh0XSBBZGQgdGhlIGFiaWxpdHkgdG8gcmVxdWVzdCBhbGwgbWFya2VkIHRl
eHQgcmVjdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNDI3OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTY1Mjc4MDM+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFyayBhIGNvbnN0cnVjdG9yIGFz
IFdFQkNPUkVfRVhQT1JULiBTZWUgV2ViS2l0IENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgor
CisgICAgICAgICogZWRpdGluZy9UZXh0SXRlcmF0b3IuaDoKKwogMjAxOS0xMS0xNSAgSmVyIE5v
YmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNTE4OTUp
IC0gJ3NpbmYnIGluaXQgZGF0YSBmbG93IGdlbmVyYXRlcyAnY2VuYycgc3R5bGUgZW5jcnlwdGVk
IG1lc3NhZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM5NDVlNjdjMDcwZDM0YmU2MTJkYzEyN2E1OTE2M2ViYjZk
YTVjYWQuLjc4YmU4MGJlYmU1YzVjYzgxZGMzNGQzOTc0MjIzZTE0YWRkNjUzZGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzQgQEAKKzIwMTktMTEtMTYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gW1VJV0tEb2N1bWVudENvbnRleHRdIEFkZCB0
aGUgYWJpbGl0eSB0byByZXF1ZXN0IGFsbCBtYXJrZWQgdGV4dCByZWN0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0Mjc4CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS81NjUyNzgwMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgYSBuZXcgVUlXS0RvY3VtZW50UmVxdWVzdCBv
cHRpb24gdG8gcmVxdWVzdCBjaGFyYWN0ZXIgcmVjdHMgZm9yIGVhY2ggY2hhcmFjdGVyIGluIHRo
ZSBtYXJrZWQKKyAgICAgICAgdGV4dCByYW5nZS4gVW5sZXNzIFVJV0tEb2N1bWVudFJlcXVlc3RS
ZWN0cyBpcyBhZGRpdGlvbmFsbHkgc3BlY2lmaWVkIChpbiB3aGljaCBjYXNlIHdlJ2xsIHJldHVy
biByZWN0cyBmb3IKKyAgICAgICAgZXZlcnkgc2luZ2xlIGNoYXJhY3RlciBpbiB0aGUgZWRpdGFi
bGUgcm9vdCBhbnl3YXlzKSwgdGhpcyBvcHRpb24gd2lsbCBlbnN1cmUgdGhhdCBhbGwgY2hhcmFj
dGVycyBpbiB0aGUKKyAgICAgICAgY29tcG9zaXRpb24gcmFuZ2UgKHdoaWNoIHNob3VsZCBtYXRj
aCAtW1VJV0tEb2N1bWVudENvbnRleHQgbWFya2VkVGV4dFJhbmdlXSkgd2lsbCBoYXZlIGtub3du
IGNoYXJhY3RlciByZWN0cworICAgICAgICB0aGF0IGNhbiBiZSByZXRyaWV2ZWQgdXNpbmcgLVtV
SVdLRG9jdW1lbnRDb250ZXh0IGVudW1lcmF0ZUxheW91dFJlY3RzOl0gKG9yIG9uZSBvZiB0aGUg
b3RoZXIgaGVscGVyIG1ldGhvZHMKKyAgICAgICAgdGhhdCB1dGlsaXplIC1lbnVtZXJhdGVMYXlv
dXRSZWN0czopLgorCisgICAgICAgIFRlc3Q6IFdlYktpdC5Eb2N1bWVudEVkaXRpbmdDb250ZXh0
V2l0aE1hcmtlZFRleHQKKworICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaDoK
KworICAgICAgICBBZGQgYSBzdGFnaW5nIGRlY2xhcmF0aW9uIGZvciB0aGUgbmV3IG9wdGlvbi4K
KworICAgICAgICAqIFNoYXJlZC9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICh0b1dl
YkRvY3VtZW50UmVxdWVzdE9wdGlvbnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdERvY3Vt
ZW50RWRpdGluZ0NvbnRleHQpOgorCisgICAgICAgIFJlZmFjdG9yIGxvZ2ljIHRoYXQgdXNlcyBD
aGFyYWN0ZXJJdGVyYXRvciB0byBmaW5kIHJlY3RzIGZvciBlYWNoIGNoYXJhY3RlciByYW5nZSBp
bnRvIGEgbGFtYmRhIGZ1bmN0aW9uLCBhbmQKKyAgICAgICAgdXNlIHRoaXMgbGFtYmRhIGZ1bmN0
aW9uIHRvIGhhbmRsZSBVSVdLRG9jdW1lbnRSZXF1ZXN0UmVjdHMgYW5kIHRoZSBuZXcgVUlXS0Rv
Y3VtZW50UmVxdWVzdE1hcmtlZFRleHRSZWN0cy4gVGhlCisgICAgICAgIG1hcmtlZCB0ZXh0IHJh
bmdlIGlzIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvZiB0aGUgY29udGV4dCBiZWZvcmUgdGhlIHNl
bGVjdGlvbi4KKwogMjAxOS0xMS0xNSAgQmVuamFtaW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgog
CiAgICAgICAgIEFkZCBTUEkgdG8gY2xlYXIgd2ViIHByb2Nlc3MgY2FjaGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1RleHRJdGVyYXRvci5oCmluZGV4IDVhZTgxMWE2NjliMWY0ODI0ZDYwMDE4YWI3ZDYx
NDJjNDM5ZmYzYTcuLjEwMzA0YWZmODc4ZjRmZmVjNThiOWY5MDM1ZGI5MWY0ZDA1ZDdiMjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuaApAQCAtMjQ4LDcgKzI0OCw3IEBAIHBy
aXZhdGU6CiAvLyBjaGFyYWN0ZXIgYXQgYSB0aW1lLCBvciBmYXN0ZXIsIGFzIG5lZWRlZC4gVXNl
ZnVsIGZvciBzZWFyY2hpbmcuCiBjbGFzcyBDaGFyYWN0ZXJJdGVyYXRvciB7CiBwdWJsaWM6Ci0g
ICAgZXhwbGljaXQgQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgUmFuZ2UmLCBUZXh0SXRlcmF0b3JC
ZWhhdmlvciA9IFRleHRJdGVyYXRvckRlZmF1bHRCZWhhdmlvcik7CisgICAgV0VCQ09SRV9FWFBP
UlQgZXhwbGljaXQgQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgUmFuZ2UmLCBUZXh0SXRlcmF0b3JC
ZWhhdmlvciA9IFRleHRJdGVyYXRvckRlZmF1bHRCZWhhdmlvcik7CiAgICAgV0VCQ09SRV9FWFBP
UlQgZXhwbGljaXQgQ2hhcmFjdGVySXRlcmF0b3IoUG9zaXRpb24gc3RhcnQsIFBvc2l0aW9uIGVu
ZCwgVGV4dEl0ZXJhdG9yQmVoYXZpb3IgPSBUZXh0SXRlcmF0b3JEZWZhdWx0QmVoYXZpb3IpOwog
ICAgIAogICAgIGJvb2wgYXRFbmQoKSBjb25zdCB7IHJldHVybiBtX3VuZGVybHlpbmdJdGVyYXRv
ci5hdEVuZCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3Mv
VUlLaXRTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCmlu
ZGV4IDk4MTY2Nzk1ZmExZGQ4ODkxZjk0NmNkYmY4Yzc3YTc3ZDgwYTBiYjEuLmM4OGRlOTVhNTlk
NDhiYTYxNWJhYWUyMDMxODdlMjI2NjViOWVlZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
c3BpL2lvcy9VSUtpdFNQSS5oCkBAIC0xMTEwLDYgKzExMTAsOCBAQCB0eXBlZGVmIE5TX09QVElP
TlMoTlNJbnRlZ2VyLCBVSVdLRG9jdW1lbnRSZXF1ZXN0RmxhZ3MpIHsKIAogI2VuZGlmIC8vIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspCiAKKyNkZWZpbmUgVUlXS0RvY3VtZW50UmVxdWVzdE1hcmtl
ZFRleHRSZWN0cyAoMSA8PCA1KQorCiAjaWYgSEFWRShMSU5LX1BSRVZJRVcpICYmIFVTRShVSUNP
TlRFWFRNRU5VKQogQGludGVyZmFjZSBVSUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAoSVBJKQog
QHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIFVJQ29udGV4dE1lbnVDb250ZW50UHJldmlld1By
b3ZpZGVyIHByZXZpZXdQcm92aWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0RvY3VtZW50RWRpdGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0RvY3VtZW50
RWRpdGluZ0NvbnRleHQuaAppbmRleCBjMTkzY2YzNTYyMDUzODhhZWY5MDQ2ZjM4YTllNWUyNTlj
N2VlOTg2Li45YTI0YTRkMjAwMTQyMDMzNmQ1NmJjYjM5OWM5OGRkMzU0NzFlYjRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Eb2N1bWVudEVkaXRpbmdDb250ZXh0LmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5oCkBAIC00Nyw2ICs0
Nyw3IEBAIHN0cnVjdCBEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdCB7CiAgICAgICAgIFJl
Y3RzID0gMSA8PCAyLAogICAgICAgICBTcGF0aWFsID0gMSA8PCAzLAogICAgICAgICBBbm5vdGF0
aW9uID0gMSA8PCA0LAorICAgICAgICBNYXJrZWRUZXh0UmVjdHMgPSAxIDw8IDUsCiAgICAgfTsK
IAogICAgIE9wdGlvblNldDxPcHRpb25zPiBvcHRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggMmQw
M2ZjMDcxY2JhOTY3YWY5YjYxY2YyMzkzN2E2ODQwMDdlODYwNC4uMzEyOTU5NWUwOWM5NjE2YjE1
MWFjZTQ1OTQ1OTQ5MTU4MmViYTFjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC03MTM3LDYgKzcxMzcs
OCBAQCBzdGF0aWMgaW5saW5lIE9wdGlvblNldDxXZWJLaXQ6OkRvY3VtZW50RWRpdGluZ0NvbnRl
eHRSZXF1ZXN0OjpPcHRpb25zPiB0b1dlYkRvYwogICAgICAgICBvcHRpb25zLmFkZChXZWJLaXQ6
OkRvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0OjpPcHRpb25zOjpTcGF0aWFsKTsKICAgICBp
ZiAoZmxhZ3MgJiBVSVdLRG9jdW1lbnRSZXF1ZXN0QW5ub3RhdGlvbikKICAgICAgICAgb3B0aW9u
cy5hZGQoV2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0aW9uczo6QW5u
b3RhdGlvbik7CisgICAgaWYgKGZsYWdzICYgVUlXS0RvY3VtZW50UmVxdWVzdE1hcmtlZFRleHRS
ZWN0cykKKyAgICAgICAgb3B0aW9ucy5hZGQoV2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0
UmVxdWVzdDo6T3B0aW9uczo6TWFya2VkVGV4dFJlY3RzKTsKIAogICAgIHJldHVybiBvcHRpb25z
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbQppbmRleCAzMjVhYmZhMTdjYzg0MjMyNmFhNmQxZGQ4ZTQ4ZDNhYTZhZDRlMzE5Li4z
NTgxZDFiMmI2MzNiYzQzZmU0NmI4NTI4YWY0MTM1YzIwMDA4ZjBmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMzkzNiw2
ICszOTM2LDcgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0RG9jdW1lbnRFZGl0aW5nQ29udGV4dChE
b2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdCByZXF1ZXMKIAogICAgIGJvb2wgaXNTcGF0aWFs
UmVxdWVzdCA9IHJlcXVlc3Qub3B0aW9ucy5jb250YWlucyhEb2N1bWVudEVkaXRpbmdDb250ZXh0
UmVxdWVzdDo6T3B0aW9uczo6U3BhdGlhbCk7CiAgICAgYm9vbCB3YW50c1JlY3RzID0gcmVxdWVz
dC5vcHRpb25zLmNvbnRhaW5zKERvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0OjpPcHRpb25z
OjpSZWN0cyk7CisgICAgYm9vbCB3YW50c01hcmtlZFRleHRSZWN0cyA9IHJlcXVlc3Qub3B0aW9u
cy5jb250YWlucyhEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0aW9uczo6TWFya2Vk
VGV4dFJlY3RzKTsKIAogICAgIGlmIChhdXRvIHRleHRJbnB1dENvbnRleHQgPSByZXF1ZXN0LnRl
eHRJbnB1dENvbnRleHQpIHsKICAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBlbGVt
ZW50Rm9yQ29udGV4dCgqdGV4dElucHV0Q29udGV4dCk7CkBAIC00MDQ0LDkgKzQwNDUsMTAgQEAg
dm9pZCBXZWJQYWdlOjpyZXF1ZXN0RG9jdW1lbnRFZGl0aW5nQ29udGV4dChEb2N1bWVudEVkaXRp
bmdDb250ZXh0UmVxdWVzdCByZXF1ZXMKICAgICAgICAgY29udGV4dC5zZWxlY3RlZFJhbmdlSW5N
YXJrZWRUZXh0Lmxlbmd0aCA9IFtjb250ZXh0LnNlbGVjdGVkVGV4dC5zdHJpbmcgbGVuZ3RoXTsK
ICAgICB9CiAKLSAgICBpZiAod2FudHNSZWN0cykgewotICAgICAgICBDaGFyYWN0ZXJJdGVyYXRv
ciBjb250ZXh0SXRlcmF0b3IoY29udGV4dEJlZm9yZVN0YXJ0LmRlZXBFcXVpdmFsZW50KCksIGNv
bnRleHRBZnRlckVuZC5kZWVwRXF1aXZhbGVudCgpKTsKLSAgICAgICAgdW5zaWduZWQgY3VycmVu
dExvY2F0aW9uID0gMDsKKyAgICBhdXRvIGNoYXJhY3RlclJlY3RzRm9yUmFuZ2UgPSBbJl0gKFJh
bmdlJiByYW5nZSwgdWludDY0X3QgbG9jYXRpb25PZmZzZXQpIHsKKyAgICAgICAgVmVjdG9yPERv
Y3VtZW50RWRpdGluZ0NvbnRleHQ6OlRleHRSZWN0QW5kUmFuZ2U+IHJlY3RzOworICAgICAgICBD
aGFyYWN0ZXJJdGVyYXRvciBjb250ZXh0SXRlcmF0b3IocmFuZ2UpOworICAgICAgICB1bnNpZ25l
ZCBjdXJyZW50TG9jYXRpb24gPSBsb2NhdGlvbk9mZnNldDsKICAgICAgICAgd2hpbGUgKCFjb250
ZXh0SXRlcmF0b3IuYXRFbmQoKSkgewogICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoID0gY29u
dGV4dEl0ZXJhdG9yLnRleHQoKS5sZW5ndGgoKTsKICAgICAgICAgICAgIGlmICghbGVuZ3RoKSB7
CkBAIC00MDU0LDE0ICs0MDU2LDE5IEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVzdERvY3VtZW50RWRp
dGluZ0NvbnRleHQoRG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3QgcmVxdWVzCiAgICAgICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIERvY3VtZW50
RWRpdGluZ0NvbnRleHQ6OlRleHRSZWN0QW5kUmFuZ2UgcmVjdDsKLSAgICAgICAgICAgIHJlY3Qu
cmVjdCA9IGNvbnRleHRJdGVyYXRvci5yYW5nZSgpLT5hYnNvbHV0ZUJvdW5kaW5nQm94KCk7Ci0g
ICAgICAgICAgICByZWN0LnJhbmdlID0geyBjdXJyZW50TG9jYXRpb24sIDEgfTsKLSAgICAgICAg
ICAgIGNvbnRleHQudGV4dFJlY3RzLmFwcGVuZChyZWN0KTsKLQorICAgICAgICAgICAgcmVjdHMu
YXBwZW5kKHsgY29udGV4dEl0ZXJhdG9yLnJhbmdlKCktPmFic29sdXRlQm91bmRpbmdCb3goKSwg
eyBjdXJyZW50TG9jYXRpb24sIDEgfSB9KTsKICAgICAgICAgICAgIGN1cnJlbnRMb2NhdGlvbisr
OwogICAgICAgICAgICAgY29udGV4dEl0ZXJhdG9yLmFkdmFuY2UoMSk7CiAgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIHJlY3RzOworICAgIH07CisKKyAgICBpZiAod2FudHNSZWN0cykgeworICAg
ICAgICBpZiAoYXV0byBjb250ZXh0UmFuZ2UgPSBtYWtlUmFuZ2UoY29udGV4dEJlZm9yZVN0YXJ0
LCBjb250ZXh0QWZ0ZXJFbmQpKQorICAgICAgICAgICAgY29udGV4dC50ZXh0UmVjdHMgPSBjaGFy
YWN0ZXJSZWN0c0ZvclJhbmdlKCpjb250ZXh0UmFuZ2UsIDApOworICAgIH0gZWxzZSBpZiAod2Fu
dHNNYXJrZWRUZXh0UmVjdHMgJiYgY29tcG9zaXRpb25SYW5nZSkgeworICAgICAgICBhdXRvIGNv
bXBvc2l0aW9uU3RhcnRPZmZzZXQgPSBwbGFpblRleHRSZXBsYWNpbmdOb0JyZWFrU3BhY2UoY29u
dGV4dEJlZm9yZVN0YXJ0LmRlZXBFcXVpdmFsZW50KCksIGNvbXBvc2l0aW9uUmFuZ2UtPnN0YXJ0
UG9zaXRpb24oKSkubGVuZ3RoKCk7CisgICAgICAgIGNvbnRleHQudGV4dFJlY3RzID0gY2hhcmFj
dGVyUmVjdHNGb3JSYW5nZSgqY29tcG9zaXRpb25SYW5nZSwgY29tcG9zaXRpb25TdGFydE9mZnNl
dCk7CiAgICAgfQogCiAjaWYgRU5BQkxFKFBMQVRGT1JNX0RSSVZFTl9URVhUX0NIRUNLSU5HKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDVhZGQ4
Y2Y5ODUzNmIwMDVlYWFiNTUzYzg4YjNlYjJmMzUyODVlNDguLmM1ODdiZDgzMzViNzgwMmZmYzQz
MWE2MzBiY2VjYzNmMDk0YzBiY2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOS0xMS0xNiAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBbVUlXS0RvY3VtZW50
Q29udGV4dF0gQWRkIHRoZSBhYmlsaXR5IHRvIHJlcXVlc3QgYWxsIG1hcmtlZCB0ZXh0IHJlY3Rz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQyNzgK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2NTI3ODAzPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhbiBBUEkgdGVzdCB0byBleGVyY2lzZSB0
aGUgbmV3IHJlcXVlc3Qgb3B0aW9uLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tOgorICAgICAgICAoLVtVSVdLRG9j
dW1lbnRDb250ZXh0IG1hcmtlZFRleHRSZWN0c10pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
aW9zL1VJS2l0U1BJLmg6CisKIDIwMTktMTEtMTUgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRA
YXBwbGUuY29tPgogCiAgICAgICAgIHJlc3VsdHMud2Via2l0Lm9yZzogUmVwb3J0IEpTQyB0ZXN0
cyB0byB0aGUgcmVzdWx0cyBkYXRhYmFzZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tCmlu
ZGV4IGJjMzM4Mzk5MDViMmE3Y2Q3YTg1ZjFlZDM0NGFkYmE2MDE1NWM2NDMuLjE2MWRhNzUyMTky
MTRkY2QyODhjZjk1YWQ4ZjkxNjcwY2VlNTU0ZDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RvY3VtZW50RWRpdGluZ0NvbnRl
eHQubW0KQEAgLTYyLDYgKzYyLDI1IEBAIHN0YXRpYyBVSVdLRG9jdW1lbnRSZXF1ZXN0ICptYWtl
UmVxdWVzdChVSVdLRG9jdW1lbnRSZXF1ZXN0RmxhZ3MgZmxhZ3MsIFVJVGV4dEdyCiAgICAgcmV0
dXJuIHJlcXVlc3QuYXV0b3JlbGVhc2UoKTsKIH0KIAorQGludGVyZmFjZSBVSVdLRG9jdW1lbnRD
b250ZXh0IChUZXN0UnVubmVyKQorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0Fy
cmF5PE5TVmFsdWUgKj4gKm1hcmtlZFRleHRSZWN0czsKK0BlbmQKKworQGltcGxlbWVudGF0aW9u
IFVJV0tEb2N1bWVudENvbnRleHQgKFRlc3RSdW5uZXIpCisKKy0gKE5TQXJyYXk8TlNWYWx1ZSAq
PiAqKW1hcmtlZFRleHRSZWN0cworeworICAgIC8vIFRoaXMgc2hvdWxkIGlkZWFsbHkgYmUgZXF1
aXZhbGVudCB0byBbc2VsZiBjaGFyYWN0ZXJSZWN0c0ZvckNoYXJhY3RlclJhbmdlOnNlbGYubWFy
a2VkVGV4dFJhbmdlXS4gSG93ZXZlciwgdGhlIGltcGxlbWVudGF0aW9uCisgICAgLy8gb2YgLWNo
YXJhY3RlclJlY3RzRm9yQ2hhcmFjdGVyUmFuZ2U6IGluIFVJS2l0IGRvZXNuJ3QgZ3VhcmFudGVl
IGFueSBvcmRlciB0byB0aGUgcmV0dXJuZWQgY2hhcmFjdGVyIHJlY3RzLgorICAgIE5TUmFuZ2Ug
cmFuZ2UgPSBzZWxmLm1hcmtlZFRleHRSYW5nZTsKKyAgICBOU011dGFibGVBcnJheSAqcmVjdHMg
PSBbTlNNdXRhYmxlQXJyYXkgYXJyYXlXaXRoQ2FwYWNpdHk6cmFuZ2UubGVuZ3RoXTsKKyAgICBm
b3IgKGF1dG8gbG9jYXRpb24gPSByYW5nZS5sb2NhdGlvbjsgbG9jYXRpb24gPCByYW5nZS5sb2Nh
dGlvbiArIHJhbmdlLmxlbmd0aDsgKytsb2NhdGlvbikKKyAgICAgICAgW3JlY3RzIGFkZE9iamVj
dDpbc2VsZiBjaGFyYWN0ZXJSZWN0c0ZvckNoYXJhY3RlclJhbmdlOk5TTWFrZVJhbmdlKGxvY2F0
aW9uLCAxKV0uZmlyc3RPYmplY3RdOworICAgIHJldHVybiByZWN0czsKK30KKworQGVuZAorCiBA
aW1wbGVtZW50YXRpb24gVGVzdFdLV2ViVmlldyAoU3luY2hyb25vdXNEb2N1bWVudENvbnRleHQp
CiAKIC0gKFVJV0tEb2N1bWVudENvbnRleHQgKilzeW5jaHJvbm91c2x5UmVxdWVzdERvY3VtZW50
Q29udGV4dDooVUlXS0RvY3VtZW50UmVxdWVzdCAqKXJlcXVlc3QKQEAgLTIzNCw0ICsyNTMsMTAy
IEBAIFRFU1QoV2ViS2l0LCBEb2N1bWVudEVkaXRpbmdDb250ZXh0KQogICAgIEVYUEVDVF9OU1NU
UklOR19FUSgiIHdvcmxkIiwgY29udGV4dC5jb250ZXh0QWZ0ZXIpOwogfQogCitURVNUKFdlYktp
dCwgRG9jdW1lbnRFZGl0aW5nQ29udGV4dFdpdGhNYXJrZWRUZXh0KQoreworICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFr
ZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisgICAgYXV0byAqY29udGVudFZpZXcgPSBbd2ViVmll
dyB0ZXh0SW5wdXRDb250ZW50Vmlld107CisKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9h
ZEhUTUxTdHJpbmc6QCI8Ym9keSBzdHlsZT0nLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiBub25l
OycgY29udGVudGVkaXRhYmxlPiJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpA
ImRvY3VtZW50LmJvZHkuZm9jdXMoKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBbd2Vi
VmlldyBfc3luY2hyb25vdXNseUV4ZWN1dGVFZGl0Q29tbWFuZDpAIkluc2VydFRleHQiIGFyZ3Vt
ZW50OkAiSGVsbG8gd29ybGQiXTsKKworICAgIFtjb250ZW50VmlldyBzZWxlY3RXb3JkQmFja3dh
cmRdOworICAgIFtjb250ZW50VmlldyBzZXRNYXJrZWRUZXh0OkAid29ybGQiIHNlbGVjdGVkUmFu
Z2U6TlNNYWtlUmFuZ2UoMCwgNSldOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0
aW9uVXBkYXRlXTsKKyAgICB7CisgICAgICAgIFVJV0tEb2N1bWVudENvbnRleHQgKmNvbnRleHQg
PSBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVxdWVzdERvY3VtZW50Q29udGV4dDptYWtlUmVxdWVz
dChVSVdLRG9jdW1lbnRSZXF1ZXN0VGV4dCB8IFVJV0tEb2N1bWVudFJlcXVlc3RNYXJrZWRUZXh0
UmVjdHMsIFVJVGV4dEdyYW51bGFyaXR5Q2hhcmFjdGVyLCAwKV07CisgICAgICAgIEVYUEVDVF9O
VUxMKGNvbnRleHQuY29udGV4dEJlZm9yZSk7CisgICAgICAgIEVYUEVDVF9OVUxMKGNvbnRleHQu
Y29udGV4dEFmdGVyKTsKKyAgICAgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJ3b3JsZCIsIGNvbnRl
eHQuc2VsZWN0ZWRUZXh0KTsKKyAgICAgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJ3b3JsZCIsIGNv
bnRleHQubWFya2VkVGV4dCk7CisgICAgICAgIEVYUEVDVF9FUSgwVSwgY29udGV4dC5tYXJrZWRU
ZXh0UmFuZ2UubG9jYXRpb24pOworICAgICAgICBFWFBFQ1RfRVEoNVUsIGNvbnRleHQubWFya2Vk
VGV4dFJhbmdlLmxlbmd0aCk7CisKKyAgICAgICAgTlNBcnJheTxOU1ZhbHVlICo+ICpyZWN0VmFs
dWVzID0gY29udGV4dC5tYXJrZWRUZXh0UmVjdHM7CisgICAgICAgIEVYUEVDVF9FUSg1VSwgcmVj
dFZhbHVlcy5jb3VudCk7CisgICAgICAgIGlmIChyZWN0VmFsdWVzLmNvdW50ID49IDUpIHsKKyAg
ICAgICAgICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKDQ3LCA4LCAxMywgMTkpLCBbcmVjdFZhbHVl
c1swXSBDR1JlY3RWYWx1ZV0pOworICAgICAgICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoNTks
IDgsIDksIDE5KSwgW3JlY3RWYWx1ZXNbMV0gQ0dSZWN0VmFsdWVdKTsKKyAgICAgICAgICAgIEVY
UEVDVF9FUShDR1JlY3RNYWtlKDY3LCA4LCA2LCAxOSksIFtyZWN0VmFsdWVzWzJdIENHUmVjdFZh
bHVlXSk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSg3MiwgOCwgNSwgMTkpLCBb
cmVjdFZhbHVlc1szXSBDR1JlY3RWYWx1ZV0pOworICAgICAgICAgICAgRVhQRUNUX0VRKENHUmVj
dE1ha2UoNzYsIDgsIDksIDE5KSwgW3JlY3RWYWx1ZXNbNF0gQ0dSZWN0VmFsdWVdKTsKKyAgICAg
ICAgfQorICAgIH0KKyAgICBbY29udGVudFZpZXcgdW5tYXJrVGV4dF07CisgICAgW3dlYlZpZXcg
c3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRF
eHRlbnQoZG9jdW1lbnQuYm9keS5jaGlsZE5vZGVzWzBdLCAwLCBkb2N1bWVudC5ib2R5LmNoaWxk
Tm9kZXNbMF0sIDUpIl07CisgICAgW2NvbnRlbnRWaWV3IHNldE1hcmtlZFRleHQ6QCJIZWxsbyIg
c2VsZWN0ZWRSYW5nZTpOU01ha2VSYW5nZSgwLCA1KV07CisgICAgW3dlYlZpZXcgd2FpdEZvck5l
eHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIHsKKyAgICAgICAgVUlXS0RvY3VtZW50Q29udGV4
dCAqY29udGV4dCA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0RG9jdW1lbnRDb250ZXh0
Om1ha2VSZXF1ZXN0KFVJV0tEb2N1bWVudFJlcXVlc3RUZXh0IHwgVUlXS0RvY3VtZW50UmVxdWVz
dE1hcmtlZFRleHRSZWN0cywgVUlUZXh0R3JhbnVsYXJpdHlQYXJhZ3JhcGgsIDEpXTsKKyAgICAg
ICAgRVhQRUNUX05VTEwoY29udGV4dC5jb250ZXh0QmVmb3JlKTsKKyAgICAgICAgRVhQRUNUX05T
U1RSSU5HX0VRKCIgd29ybGQiLCBjb250ZXh0LmNvbnRleHRBZnRlcik7CisgICAgICAgIEVYUEVD
VF9OU1NUUklOR19FUSgiSGVsbG8iLCBjb250ZXh0LnNlbGVjdGVkVGV4dCk7CisgICAgICAgIEVY
UEVDVF9OU1NUUklOR19FUSgiSGVsbG8iLCBjb250ZXh0Lm1hcmtlZFRleHQpOworICAgICAgICBF
WFBFQ1RfRVEoMFUsIGNvbnRleHQubWFya2VkVGV4dFJhbmdlLmxvY2F0aW9uKTsKKyAgICAgICAg
RVhQRUNUX0VRKDVVLCBjb250ZXh0Lm1hcmtlZFRleHRSYW5nZS5sZW5ndGgpOworCisgICAgICAg
IE5TQXJyYXk8TlNWYWx1ZSAqPiAqcmVjdFZhbHVlcyA9IGNvbnRleHQubWFya2VkVGV4dFJlY3Rz
OworICAgICAgICBFWFBFQ1RfRVEoNVUsIHJlY3RWYWx1ZXMuY291bnQpOworICAgICAgICBpZiAo
cmVjdFZhbHVlcy5jb3VudCA+PSA1KSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFr
ZSg4LCA4LCAxMiwgMTkpLCBbcmVjdFZhbHVlc1swXSBDR1JlY3RWYWx1ZV0pOworICAgICAgICAg
ICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMTksIDgsIDgsIDE5KSwgW3JlY3RWYWx1ZXNbMV0gQ0dS
ZWN0VmFsdWVdKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKDI2LCA4LCA2LCAx
OSksIFtyZWN0VmFsdWVzWzJdIENHUmVjdFZhbHVlXSk7CisgICAgICAgICAgICBFWFBFQ1RfRVEo
Q0dSZWN0TWFrZSgzMSwgOCwgNSwgMTkpLCBbcmVjdFZhbHVlc1szXSBDR1JlY3RWYWx1ZV0pOwor
ICAgICAgICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMzUsIDgsIDksIDE5KSwgW3JlY3RWYWx1
ZXNbNF0gQ0dSZWN0VmFsdWVdKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBbY29udGVudFZpZXcg
dW5tYXJrVGV4dF07CisgICAgW3dlYlZpZXcgc2VsZWN0QWxsOm5pbF07CisgICAgW2NvbnRlbnRW
aWV3IHNldE1hcmtlZFRleHQ6QCJmb28iIHNlbGVjdGVkUmFuZ2U6TlNNYWtlUmFuZ2UoMCwgMyld
OworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICB7Cisg
ICAgICAgIFVJV0tEb2N1bWVudENvbnRleHQgKmNvbnRleHQgPSBbd2ViVmlldyBzeW5jaHJvbm91
c2x5UmVxdWVzdERvY3VtZW50Q29udGV4dDptYWtlUmVxdWVzdChVSVdLRG9jdW1lbnRSZXF1ZXN0
VGV4dCB8IFVJV0tEb2N1bWVudFJlcXVlc3RNYXJrZWRUZXh0UmVjdHMsIFVJVGV4dEdyYW51bGFy
aXR5U2VudGVuY2UsIDEpXTsKKyAgICAgICAgRVhQRUNUX05VTEwoY29udGV4dC5jb250ZXh0QmVm
b3JlKTsKKyAgICAgICAgRVhQRUNUX05VTEwoY29udGV4dC5jb250ZXh0QWZ0ZXIpOworICAgICAg
ICBFWFBFQ1RfTlNTVFJJTkdfRVEoImZvbyIsIGNvbnRleHQuc2VsZWN0ZWRUZXh0KTsKKyAgICAg
ICAgRVhQRUNUX05TU1RSSU5HX0VRKCJmb28iLCBjb250ZXh0Lm1hcmtlZFRleHQpOworICAgICAg
ICBFWFBFQ1RfRVEoMFUsIGNvbnRleHQubWFya2VkVGV4dFJhbmdlLmxvY2F0aW9uKTsKKyAgICAg
ICAgRVhQRUNUX0VRKDNVLCBjb250ZXh0Lm1hcmtlZFRleHRSYW5nZS5sZW5ndGgpOworCisgICAg
ICAgIE5TQXJyYXk8TlNWYWx1ZSAqPiAqcmVjdFZhbHVlcyA9IGNvbnRleHQubWFya2VkVGV4dFJl
Y3RzOworICAgICAgICBFWFBFQ1RfRVEoM1UsIHJlY3RWYWx1ZXMuY291bnQpOworICAgICAgICBp
ZiAocmVjdFZhbHVlcy5jb3VudCA+PSAzKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0
TWFrZSg4LCA4LCA2LCAxOSksIFtyZWN0VmFsdWVzWzBdIENHUmVjdFZhbHVlXSk7CisgICAgICAg
ICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSgxMywgOCwgOSwgMTkpLCBbcmVjdFZhbHVlc1sxXSBD
R1JlY3RWYWx1ZV0pOworICAgICAgICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMjEsIDgsIDks
IDE5KSwgW3JlY3RWYWx1ZXNbMl0gQ0dSZWN0VmFsdWVdKTsKKyAgICAgICAgfQorICAgIH0KKyAg
ICBbY29udGVudFZpZXcgdW5tYXJrVGV4dF07CisgICAgW3dlYlZpZXcgY29sbGFwc2VUb0VuZF07
CisgICAgW2NvbnRlbnRWaWV3IHNldE1hcmtlZFRleHQ6QCJiYXIiIHNlbGVjdGVkUmFuZ2U6TlNN
YWtlUmFuZ2UoMCwgMyldOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBk
YXRlXTsKKyAgICB7CisgICAgICAgIFVJV0tEb2N1bWVudENvbnRleHQgKmNvbnRleHQgPSBbd2Vi
VmlldyBzeW5jaHJvbm91c2x5UmVxdWVzdERvY3VtZW50Q29udGV4dDptYWtlUmVxdWVzdChVSVdL
RG9jdW1lbnRSZXF1ZXN0VGV4dCB8IFVJV0tEb2N1bWVudFJlcXVlc3RNYXJrZWRUZXh0UmVjdHMs
IFVJVGV4dEdyYW51bGFyaXR5V29yZCwgMSldOworICAgICAgICBFWFBFQ1RfTlNTVFJJTkdfRVEo
ImZvbyIsIGNvbnRleHQuY29udGV4dEJlZm9yZSk7CisgICAgICAgIEVYUEVDVF9OVUxMKGNvbnRl
eHQuY29udGV4dEFmdGVyKTsKKyAgICAgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJiYXIiLCBjb250
ZXh0LnNlbGVjdGVkVGV4dCk7CisgICAgICAgIEVYUEVDVF9OU1NUUklOR19FUSgiYmFyIiwgY29u
dGV4dC5tYXJrZWRUZXh0KTsKKyAgICAgICAgRVhQRUNUX0VRKDNVLCBjb250ZXh0Lm1hcmtlZFRl
eHRSYW5nZS5sb2NhdGlvbik7CisgICAgICAgIEVYUEVDVF9FUSgzVSwgY29udGV4dC5tYXJrZWRU
ZXh0UmFuZ2UubGVuZ3RoKTsKKworICAgICAgICBOU0FycmF5PE5TVmFsdWUgKj4gKnJlY3RWYWx1
ZXMgPSBjb250ZXh0Lm1hcmtlZFRleHRSZWN0czsKKyAgICAgICAgRVhQRUNUX0VRKDNVLCByZWN0
VmFsdWVzLmNvdW50KTsKKyAgICAgICAgaWYgKHJlY3RWYWx1ZXMuY291bnQgPj0gMykgeworICAg
ICAgICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMjksIDgsIDksIDE5KSwgW3JlY3RWYWx1ZXNb
MF0gQ0dSZWN0VmFsdWVdKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKDM3LCA4
LCA4LCAxOSksIFtyZWN0VmFsdWVzWzFdIENHUmVjdFZhbHVlXSk7CisgICAgICAgICAgICBFWFBF
Q1RfRVEoQ0dSZWN0TWFrZSg0NCwgOCwgNiwgMTkpLCBbcmVjdFZhbHVlc1syXSBDR1JlY3RWYWx1
ZV0pOworICAgICAgICB9CisgICAgfQorfQorCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlM
WSkgJiYgSEFWRShVSV9XS19ET0NVTUVOVF9DT05URVhUKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9pb3MvVUlLaXRTUEkuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL1VJS2l0
U1BJLmgKaW5kZXggNmY1YzcyNWJlZDYyNzJkZjE1MjM3NTllN2RiZTNiOWZiMDZlM2E5NS4uMDc0
YTYyZjRiMTdmMTcwNmJhNjJlZWZjZTY2ZGVmYmYxNjFlNGJlNiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9pb3MvVUlLaXRTUEkuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2lv
cy9VSUtpdFNQSS5oCkBAIC0xOTQsNiArMTk0LDggQEAgSUdOT1JFX1dBUk5JTkdTX0VORAogCiAj
ZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAorI2RlZmluZSBVSVdLRG9jdW1lbnRS
ZXF1ZXN0TWFya2VkVGV4dFJlY3RzICgxIDw8IDUpCisKIEBpbnRlcmZhY2UgVUlUZXh0QXV0b2Zp
bGxTdWdnZXN0aW9uICgpCiArIChpbnN0YW5jZXR5cGUpYXV0b2ZpbGxTdWdnZXN0aW9uV2l0aFVz
ZXJuYW1lOihOU1N0cmluZyAqKXVzZXJuYW1lIHBhc3N3b3JkOihOU1N0cmluZyAqKXBhc3N3b3Jk
OwogQGVuZAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383704</attachid>
            <date>2019-11-16 14:36:49 -0800</date>
            <delta_ts>2019-11-16 14:46:39 -0800</delta_ts>
            <desc>Fix non-internal iOS builds</desc>
            <filename>bug-204278-20191116143648.patch</filename>
            <type>text/plain</type>
            <size>17119</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTdkZTE0YjIwNzJiOGJm
ZjdiN2RjMDA2NWMxMGE2OGYxODhjMzc1Ni4uNzlmZjRjNzlmNzA5NTE3OGZkMWNhZDYxYzQ2YjE3
NDE2MzE0MDA0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTExLTE2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFtVSVdL
RG9jdW1lbnRDb250ZXh0XSBBZGQgdGhlIGFiaWxpdHkgdG8gcmVxdWVzdCBhbGwgbWFya2VkIHRl
eHQgcmVjdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNDI3OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTY1Mjc4MDM+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFyayBhIGNvbnN0cnVjdG9yIGFz
IFdFQkNPUkVfRVhQT1JULiBTZWUgV2ViS2l0IENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgor
CisgICAgICAgICogZWRpdGluZy9UZXh0SXRlcmF0b3IuaDoKKwogMjAxOS0xMS0xNSAgSmVyIE5v
YmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNTE4OTUp
IC0gJ3NpbmYnIGluaXQgZGF0YSBmbG93IGdlbmVyYXRlcyAnY2VuYycgc3R5bGUgZW5jcnlwdGVk
IG1lc3NhZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM5NDVlNjdjMDcwZDM0YmU2MTJkYzEyN2E1OTE2M2ViYjZk
YTVjYWQuLjc4YmU4MGJlYmU1YzVjYzgxZGMzNGQzOTc0MjIzZTE0YWRkNjUzZGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzQgQEAKKzIwMTktMTEtMTYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gW1VJV0tEb2N1bWVudENvbnRleHRdIEFkZCB0
aGUgYWJpbGl0eSB0byByZXF1ZXN0IGFsbCBtYXJrZWQgdGV4dCByZWN0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0Mjc4CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS81NjUyNzgwMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgYSBuZXcgVUlXS0RvY3VtZW50UmVxdWVzdCBv
cHRpb24gdG8gcmVxdWVzdCBjaGFyYWN0ZXIgcmVjdHMgZm9yIGVhY2ggY2hhcmFjdGVyIGluIHRo
ZSBtYXJrZWQKKyAgICAgICAgdGV4dCByYW5nZS4gVW5sZXNzIFVJV0tEb2N1bWVudFJlcXVlc3RS
ZWN0cyBpcyBhZGRpdGlvbmFsbHkgc3BlY2lmaWVkIChpbiB3aGljaCBjYXNlIHdlJ2xsIHJldHVy
biByZWN0cyBmb3IKKyAgICAgICAgZXZlcnkgc2luZ2xlIGNoYXJhY3RlciBpbiB0aGUgZWRpdGFi
bGUgcm9vdCBhbnl3YXlzKSwgdGhpcyBvcHRpb24gd2lsbCBlbnN1cmUgdGhhdCBhbGwgY2hhcmFj
dGVycyBpbiB0aGUKKyAgICAgICAgY29tcG9zaXRpb24gcmFuZ2UgKHdoaWNoIHNob3VsZCBtYXRj
aCAtW1VJV0tEb2N1bWVudENvbnRleHQgbWFya2VkVGV4dFJhbmdlXSkgd2lsbCBoYXZlIGtub3du
IGNoYXJhY3RlciByZWN0cworICAgICAgICB0aGF0IGNhbiBiZSByZXRyaWV2ZWQgdXNpbmcgLVtV
SVdLRG9jdW1lbnRDb250ZXh0IGVudW1lcmF0ZUxheW91dFJlY3RzOl0gKG9yIG9uZSBvZiB0aGUg
b3RoZXIgaGVscGVyIG1ldGhvZHMKKyAgICAgICAgdGhhdCB1dGlsaXplIC1lbnVtZXJhdGVMYXlv
dXRSZWN0czopLgorCisgICAgICAgIFRlc3Q6IFdlYktpdC5Eb2N1bWVudEVkaXRpbmdDb250ZXh0
V2l0aE1hcmtlZFRleHQKKworICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaDoK
KworICAgICAgICBBZGQgYSBzdGFnaW5nIGRlY2xhcmF0aW9uIGZvciB0aGUgbmV3IG9wdGlvbi4K
KworICAgICAgICAqIFNoYXJlZC9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICh0b1dl
YkRvY3VtZW50UmVxdWVzdE9wdGlvbnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdERvY3Vt
ZW50RWRpdGluZ0NvbnRleHQpOgorCisgICAgICAgIFJlZmFjdG9yIGxvZ2ljIHRoYXQgdXNlcyBD
aGFyYWN0ZXJJdGVyYXRvciB0byBmaW5kIHJlY3RzIGZvciBlYWNoIGNoYXJhY3RlciByYW5nZSBp
bnRvIGEgbGFtYmRhIGZ1bmN0aW9uLCBhbmQKKyAgICAgICAgdXNlIHRoaXMgbGFtYmRhIGZ1bmN0
aW9uIHRvIGhhbmRsZSBVSVdLRG9jdW1lbnRSZXF1ZXN0UmVjdHMgYW5kIHRoZSBuZXcgVUlXS0Rv
Y3VtZW50UmVxdWVzdE1hcmtlZFRleHRSZWN0cy4gVGhlCisgICAgICAgIG1hcmtlZCB0ZXh0IHJh
bmdlIGlzIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvZiB0aGUgY29udGV4dCBiZWZvcmUgdGhlIHNl
bGVjdGlvbi4KKwogMjAxOS0xMS0xNSAgQmVuamFtaW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgog
CiAgICAgICAgIEFkZCBTUEkgdG8gY2xlYXIgd2ViIHByb2Nlc3MgY2FjaGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1RleHRJdGVyYXRvci5oCmluZGV4IDVhZTgxMWE2NjliMWY0ODI0ZDYwMDE4YWI3ZDYx
NDJjNDM5ZmYzYTcuLjEwMzA0YWZmODc4ZjRmZmVjNThiOWY5MDM1ZGI5MWY0ZDA1ZDdiMjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuaApAQCAtMjQ4LDcgKzI0OCw3IEBAIHBy
aXZhdGU6CiAvLyBjaGFyYWN0ZXIgYXQgYSB0aW1lLCBvciBmYXN0ZXIsIGFzIG5lZWRlZC4gVXNl
ZnVsIGZvciBzZWFyY2hpbmcuCiBjbGFzcyBDaGFyYWN0ZXJJdGVyYXRvciB7CiBwdWJsaWM6Ci0g
ICAgZXhwbGljaXQgQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgUmFuZ2UmLCBUZXh0SXRlcmF0b3JC
ZWhhdmlvciA9IFRleHRJdGVyYXRvckRlZmF1bHRCZWhhdmlvcik7CisgICAgV0VCQ09SRV9FWFBP
UlQgZXhwbGljaXQgQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgUmFuZ2UmLCBUZXh0SXRlcmF0b3JC
ZWhhdmlvciA9IFRleHRJdGVyYXRvckRlZmF1bHRCZWhhdmlvcik7CiAgICAgV0VCQ09SRV9FWFBP
UlQgZXhwbGljaXQgQ2hhcmFjdGVySXRlcmF0b3IoUG9zaXRpb24gc3RhcnQsIFBvc2l0aW9uIGVu
ZCwgVGV4dEl0ZXJhdG9yQmVoYXZpb3IgPSBUZXh0SXRlcmF0b3JEZWZhdWx0QmVoYXZpb3IpOwog
ICAgIAogICAgIGJvb2wgYXRFbmQoKSBjb25zdCB7IHJldHVybiBtX3VuZGVybHlpbmdJdGVyYXRv
ci5hdEVuZCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3Mv
VUlLaXRTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCmlu
ZGV4IDk4MTY2Nzk1ZmExZGQ4ODkxZjk0NmNkYmY4Yzc3YTc3ZDgwYTBiYjEuLmM4OGRlOTVhNTlk
NDhiYTYxNWJhYWUyMDMxODdlMjI2NjViOWVlZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
c3BpL2lvcy9VSUtpdFNQSS5oCkBAIC0xMTEwLDYgKzExMTAsOCBAQCB0eXBlZGVmIE5TX09QVElP
TlMoTlNJbnRlZ2VyLCBVSVdLRG9jdW1lbnRSZXF1ZXN0RmxhZ3MpIHsKIAogI2VuZGlmIC8vIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspCiAKKyNkZWZpbmUgVUlXS0RvY3VtZW50UmVxdWVzdE1hcmtl
ZFRleHRSZWN0cyAoMSA8PCA1KQorCiAjaWYgSEFWRShMSU5LX1BSRVZJRVcpICYmIFVTRShVSUNP
TlRFWFRNRU5VKQogQGludGVyZmFjZSBVSUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAoSVBJKQog
QHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIFVJQ29udGV4dE1lbnVDb250ZW50UHJldmlld1By
b3ZpZGVyIHByZXZpZXdQcm92aWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0RvY3VtZW50RWRpdGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0RvY3VtZW50
RWRpdGluZ0NvbnRleHQuaAppbmRleCBjMTkzY2YzNTYyMDUzODhhZWY5MDQ2ZjM4YTllNWUyNTlj
N2VlOTg2Li45YTI0YTRkMjAwMTQyMDMzNmQ1NmJjYjM5OWM5OGRkMzU0NzFlYjRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Eb2N1bWVudEVkaXRpbmdDb250ZXh0LmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5oCkBAIC00Nyw2ICs0
Nyw3IEBAIHN0cnVjdCBEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdCB7CiAgICAgICAgIFJl
Y3RzID0gMSA8PCAyLAogICAgICAgICBTcGF0aWFsID0gMSA8PCAzLAogICAgICAgICBBbm5vdGF0
aW9uID0gMSA8PCA0LAorICAgICAgICBNYXJrZWRUZXh0UmVjdHMgPSAxIDw8IDUsCiAgICAgfTsK
IAogICAgIE9wdGlvblNldDxPcHRpb25zPiBvcHRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggMmQw
M2ZjMDcxY2JhOTY3YWY5YjYxY2YyMzkzN2E2ODQwMDdlODYwNC4uMzEyOTU5NWUwOWM5NjE2YjE1
MWFjZTQ1OTQ1OTQ5MTU4MmViYTFjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC03MTM3LDYgKzcxMzcs
OCBAQCBzdGF0aWMgaW5saW5lIE9wdGlvblNldDxXZWJLaXQ6OkRvY3VtZW50RWRpdGluZ0NvbnRl
eHRSZXF1ZXN0OjpPcHRpb25zPiB0b1dlYkRvYwogICAgICAgICBvcHRpb25zLmFkZChXZWJLaXQ6
OkRvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0OjpPcHRpb25zOjpTcGF0aWFsKTsKICAgICBp
ZiAoZmxhZ3MgJiBVSVdLRG9jdW1lbnRSZXF1ZXN0QW5ub3RhdGlvbikKICAgICAgICAgb3B0aW9u
cy5hZGQoV2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0aW9uczo6QW5u
b3RhdGlvbik7CisgICAgaWYgKGZsYWdzICYgVUlXS0RvY3VtZW50UmVxdWVzdE1hcmtlZFRleHRS
ZWN0cykKKyAgICAgICAgb3B0aW9ucy5hZGQoV2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0
UmVxdWVzdDo6T3B0aW9uczo6TWFya2VkVGV4dFJlY3RzKTsKIAogICAgIHJldHVybiBvcHRpb25z
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbQppbmRleCAzMjVhYmZhMTdjYzg0MjMyNmFhNmQxZGQ4ZTQ4ZDNhYTZhZDRlMzE5Li4z
NTgxZDFiMmI2MzNiYzQzZmU0NmI4NTI4YWY0MTM1YzIwMDA4ZjBmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMzkzNiw2
ICszOTM2LDcgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0RG9jdW1lbnRFZGl0aW5nQ29udGV4dChE
b2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdCByZXF1ZXMKIAogICAgIGJvb2wgaXNTcGF0aWFs
UmVxdWVzdCA9IHJlcXVlc3Qub3B0aW9ucy5jb250YWlucyhEb2N1bWVudEVkaXRpbmdDb250ZXh0
UmVxdWVzdDo6T3B0aW9uczo6U3BhdGlhbCk7CiAgICAgYm9vbCB3YW50c1JlY3RzID0gcmVxdWVz
dC5vcHRpb25zLmNvbnRhaW5zKERvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0OjpPcHRpb25z
OjpSZWN0cyk7CisgICAgYm9vbCB3YW50c01hcmtlZFRleHRSZWN0cyA9IHJlcXVlc3Qub3B0aW9u
cy5jb250YWlucyhEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0aW9uczo6TWFya2Vk
VGV4dFJlY3RzKTsKIAogICAgIGlmIChhdXRvIHRleHRJbnB1dENvbnRleHQgPSByZXF1ZXN0LnRl
eHRJbnB1dENvbnRleHQpIHsKICAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBlbGVt
ZW50Rm9yQ29udGV4dCgqdGV4dElucHV0Q29udGV4dCk7CkBAIC00MDQ0LDkgKzQwNDUsMTAgQEAg
dm9pZCBXZWJQYWdlOjpyZXF1ZXN0RG9jdW1lbnRFZGl0aW5nQ29udGV4dChEb2N1bWVudEVkaXRp
bmdDb250ZXh0UmVxdWVzdCByZXF1ZXMKICAgICAgICAgY29udGV4dC5zZWxlY3RlZFJhbmdlSW5N
YXJrZWRUZXh0Lmxlbmd0aCA9IFtjb250ZXh0LnNlbGVjdGVkVGV4dC5zdHJpbmcgbGVuZ3RoXTsK
ICAgICB9CiAKLSAgICBpZiAod2FudHNSZWN0cykgewotICAgICAgICBDaGFyYWN0ZXJJdGVyYXRv
ciBjb250ZXh0SXRlcmF0b3IoY29udGV4dEJlZm9yZVN0YXJ0LmRlZXBFcXVpdmFsZW50KCksIGNv
bnRleHRBZnRlckVuZC5kZWVwRXF1aXZhbGVudCgpKTsKLSAgICAgICAgdW5zaWduZWQgY3VycmVu
dExvY2F0aW9uID0gMDsKKyAgICBhdXRvIGNoYXJhY3RlclJlY3RzRm9yUmFuZ2UgPSBbJl0gKFJh
bmdlJiByYW5nZSwgdWludDY0X3QgbG9jYXRpb25PZmZzZXQpIHsKKyAgICAgICAgVmVjdG9yPERv
Y3VtZW50RWRpdGluZ0NvbnRleHQ6OlRleHRSZWN0QW5kUmFuZ2U+IHJlY3RzOworICAgICAgICBD
aGFyYWN0ZXJJdGVyYXRvciBjb250ZXh0SXRlcmF0b3IocmFuZ2UpOworICAgICAgICB1bnNpZ25l
ZCBjdXJyZW50TG9jYXRpb24gPSBsb2NhdGlvbk9mZnNldDsKICAgICAgICAgd2hpbGUgKCFjb250
ZXh0SXRlcmF0b3IuYXRFbmQoKSkgewogICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoID0gY29u
dGV4dEl0ZXJhdG9yLnRleHQoKS5sZW5ndGgoKTsKICAgICAgICAgICAgIGlmICghbGVuZ3RoKSB7
CkBAIC00MDU0LDE0ICs0MDU2LDE5IEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVzdERvY3VtZW50RWRp
dGluZ0NvbnRleHQoRG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3QgcmVxdWVzCiAgICAgICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIERvY3VtZW50
RWRpdGluZ0NvbnRleHQ6OlRleHRSZWN0QW5kUmFuZ2UgcmVjdDsKLSAgICAgICAgICAgIHJlY3Qu
cmVjdCA9IGNvbnRleHRJdGVyYXRvci5yYW5nZSgpLT5hYnNvbHV0ZUJvdW5kaW5nQm94KCk7Ci0g
ICAgICAgICAgICByZWN0LnJhbmdlID0geyBjdXJyZW50TG9jYXRpb24sIDEgfTsKLSAgICAgICAg
ICAgIGNvbnRleHQudGV4dFJlY3RzLmFwcGVuZChyZWN0KTsKLQorICAgICAgICAgICAgcmVjdHMu
YXBwZW5kKHsgY29udGV4dEl0ZXJhdG9yLnJhbmdlKCktPmFic29sdXRlQm91bmRpbmdCb3goKSwg
eyBjdXJyZW50TG9jYXRpb24sIDEgfSB9KTsKICAgICAgICAgICAgIGN1cnJlbnRMb2NhdGlvbisr
OwogICAgICAgICAgICAgY29udGV4dEl0ZXJhdG9yLmFkdmFuY2UoMSk7CiAgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIHJlY3RzOworICAgIH07CisKKyAgICBpZiAod2FudHNSZWN0cykgeworICAg
ICAgICBpZiAoYXV0byBjb250ZXh0UmFuZ2UgPSBtYWtlUmFuZ2UoY29udGV4dEJlZm9yZVN0YXJ0
LCBjb250ZXh0QWZ0ZXJFbmQpKQorICAgICAgICAgICAgY29udGV4dC50ZXh0UmVjdHMgPSBjaGFy
YWN0ZXJSZWN0c0ZvclJhbmdlKCpjb250ZXh0UmFuZ2UsIDApOworICAgIH0gZWxzZSBpZiAod2Fu
dHNNYXJrZWRUZXh0UmVjdHMgJiYgY29tcG9zaXRpb25SYW5nZSkgeworICAgICAgICBhdXRvIGNv
bXBvc2l0aW9uU3RhcnRPZmZzZXQgPSBwbGFpblRleHRSZXBsYWNpbmdOb0JyZWFrU3BhY2UoY29u
dGV4dEJlZm9yZVN0YXJ0LmRlZXBFcXVpdmFsZW50KCksIGNvbXBvc2l0aW9uUmFuZ2UtPnN0YXJ0
UG9zaXRpb24oKSkubGVuZ3RoKCk7CisgICAgICAgIGNvbnRleHQudGV4dFJlY3RzID0gY2hhcmFj
dGVyUmVjdHNGb3JSYW5nZSgqY29tcG9zaXRpb25SYW5nZSwgY29tcG9zaXRpb25TdGFydE9mZnNl
dCk7CiAgICAgfQogCiAjaWYgRU5BQkxFKFBMQVRGT1JNX0RSSVZFTl9URVhUX0NIRUNLSU5HKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDVhZGQ4
Y2Y5ODUzNmIwMDVlYWFiNTUzYzg4YjNlYjJmMzUyODVlNDguLmM1ODdiZDgzMzViNzgwMmZmYzQz
MWE2MzBiY2VjYzNmMDk0YzBiY2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOS0xMS0xNiAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBbVUlXS0RvY3VtZW50
Q29udGV4dF0gQWRkIHRoZSBhYmlsaXR5IHRvIHJlcXVlc3QgYWxsIG1hcmtlZCB0ZXh0IHJlY3Rz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQyNzgK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2NTI3ODAzPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhbiBBUEkgdGVzdCB0byBleGVyY2lzZSB0
aGUgbmV3IHJlcXVlc3Qgb3B0aW9uLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tOgorICAgICAgICAoLVtVSVdLRG9j
dW1lbnRDb250ZXh0IG1hcmtlZFRleHRSZWN0c10pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
aW9zL1VJS2l0U1BJLmg6CisKIDIwMTktMTEtMTUgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRA
YXBwbGUuY29tPgogCiAgICAgICAgIHJlc3VsdHMud2Via2l0Lm9yZzogUmVwb3J0IEpTQyB0ZXN0
cyB0byB0aGUgcmVzdWx0cyBkYXRhYmFzZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tCmlu
ZGV4IGJjMzM4Mzk5MDViMmE3Y2Q3YTg1ZjFlZDM0NGFkYmE2MDE1NWM2NDMuLjE2MWRhNzUyMTky
MTRkY2QyODhjZjk1YWQ4ZjkxNjcwY2VlNTU0ZDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RvY3VtZW50RWRpdGluZ0NvbnRl
eHQubW0KQEAgLTYyLDYgKzYyLDI1IEBAIHN0YXRpYyBVSVdLRG9jdW1lbnRSZXF1ZXN0ICptYWtl
UmVxdWVzdChVSVdLRG9jdW1lbnRSZXF1ZXN0RmxhZ3MgZmxhZ3MsIFVJVGV4dEdyCiAgICAgcmV0
dXJuIHJlcXVlc3QuYXV0b3JlbGVhc2UoKTsKIH0KIAorQGludGVyZmFjZSBVSVdLRG9jdW1lbnRD
b250ZXh0IChUZXN0UnVubmVyKQorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0Fy
cmF5PE5TVmFsdWUgKj4gKm1hcmtlZFRleHRSZWN0czsKK0BlbmQKKworQGltcGxlbWVudGF0aW9u
IFVJV0tEb2N1bWVudENvbnRleHQgKFRlc3RSdW5uZXIpCisKKy0gKE5TQXJyYXk8TlNWYWx1ZSAq
PiAqKW1hcmtlZFRleHRSZWN0cworeworICAgIC8vIFRoaXMgc2hvdWxkIGlkZWFsbHkgYmUgZXF1
aXZhbGVudCB0byBbc2VsZiBjaGFyYWN0ZXJSZWN0c0ZvckNoYXJhY3RlclJhbmdlOnNlbGYubWFy
a2VkVGV4dFJhbmdlXS4gSG93ZXZlciwgdGhlIGltcGxlbWVudGF0aW9uCisgICAgLy8gb2YgLWNo
YXJhY3RlclJlY3RzRm9yQ2hhcmFjdGVyUmFuZ2U6IGluIFVJS2l0IGRvZXNuJ3QgZ3VhcmFudGVl
IGFueSBvcmRlciB0byB0aGUgcmV0dXJuZWQgY2hhcmFjdGVyIHJlY3RzLgorICAgIE5TUmFuZ2Ug
cmFuZ2UgPSBzZWxmLm1hcmtlZFRleHRSYW5nZTsKKyAgICBOU011dGFibGVBcnJheSAqcmVjdHMg
PSBbTlNNdXRhYmxlQXJyYXkgYXJyYXlXaXRoQ2FwYWNpdHk6cmFuZ2UubGVuZ3RoXTsKKyAgICBm
b3IgKGF1dG8gbG9jYXRpb24gPSByYW5nZS5sb2NhdGlvbjsgbG9jYXRpb24gPCByYW5nZS5sb2Nh
dGlvbiArIHJhbmdlLmxlbmd0aDsgKytsb2NhdGlvbikKKyAgICAgICAgW3JlY3RzIGFkZE9iamVj
dDpbc2VsZiBjaGFyYWN0ZXJSZWN0c0ZvckNoYXJhY3RlclJhbmdlOk5TTWFrZVJhbmdlKGxvY2F0
aW9uLCAxKV0uZmlyc3RPYmplY3RdOworICAgIHJldHVybiByZWN0czsKK30KKworQGVuZAorCiBA
aW1wbGVtZW50YXRpb24gVGVzdFdLV2ViVmlldyAoU3luY2hyb25vdXNEb2N1bWVudENvbnRleHQp
CiAKIC0gKFVJV0tEb2N1bWVudENvbnRleHQgKilzeW5jaHJvbm91c2x5UmVxdWVzdERvY3VtZW50
Q29udGV4dDooVUlXS0RvY3VtZW50UmVxdWVzdCAqKXJlcXVlc3QKQEAgLTIzNCw0ICsyNTMsMTAy
IEBAIFRFU1QoV2ViS2l0LCBEb2N1bWVudEVkaXRpbmdDb250ZXh0KQogICAgIEVYUEVDVF9OU1NU
UklOR19FUSgiIHdvcmxkIiwgY29udGV4dC5jb250ZXh0QWZ0ZXIpOwogfQogCitURVNUKFdlYktp
dCwgRG9jdW1lbnRFZGl0aW5nQ29udGV4dFdpdGhNYXJrZWRUZXh0KQoreworICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFr
ZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisgICAgYXV0byAqY29udGVudFZpZXcgPSBbd2ViVmll
dyB0ZXh0SW5wdXRDb250ZW50Vmlld107CisKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9h
ZEhUTUxTdHJpbmc6QCI8Ym9keSBzdHlsZT0nLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiBub25l
OycgY29udGVudGVkaXRhYmxlPiJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpA
ImRvY3VtZW50LmJvZHkuZm9jdXMoKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBbd2Vi
VmlldyBfc3luY2hyb25vdXNseUV4ZWN1dGVFZGl0Q29tbWFuZDpAIkluc2VydFRleHQiIGFyZ3Vt
ZW50OkAiSGVsbG8gd29ybGQiXTsKKworICAgIFtjb250ZW50VmlldyBzZWxlY3RXb3JkQmFja3dh
cmRdOworICAgIFtjb250ZW50VmlldyBzZXRNYXJrZWRUZXh0OkAid29ybGQiIHNlbGVjdGVkUmFu
Z2U6TlNNYWtlUmFuZ2UoMCwgNSldOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0
aW9uVXBkYXRlXTsKKyAgICB7CisgICAgICAgIFVJV0tEb2N1bWVudENvbnRleHQgKmNvbnRleHQg
PSBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVxdWVzdERvY3VtZW50Q29udGV4dDptYWtlUmVxdWVz
dChVSVdLRG9jdW1lbnRSZXF1ZXN0VGV4dCB8IFVJV0tEb2N1bWVudFJlcXVlc3RNYXJrZWRUZXh0
UmVjdHMsIFVJVGV4dEdyYW51bGFyaXR5Q2hhcmFjdGVyLCAwKV07CisgICAgICAgIEVYUEVDVF9O
VUxMKGNvbnRleHQuY29udGV4dEJlZm9yZSk7CisgICAgICAgIEVYUEVDVF9OVUxMKGNvbnRleHQu
Y29udGV4dEFmdGVyKTsKKyAgICAgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJ3b3JsZCIsIGNvbnRl
eHQuc2VsZWN0ZWRUZXh0KTsKKyAgICAgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJ3b3JsZCIsIGNv
bnRleHQubWFya2VkVGV4dCk7CisgICAgICAgIEVYUEVDVF9FUSgwVSwgY29udGV4dC5tYXJrZWRU
ZXh0UmFuZ2UubG9jYXRpb24pOworICAgICAgICBFWFBFQ1RfRVEoNVUsIGNvbnRleHQubWFya2Vk
VGV4dFJhbmdlLmxlbmd0aCk7CisKKyAgICAgICAgTlNBcnJheTxOU1ZhbHVlICo+ICpyZWN0VmFs
dWVzID0gY29udGV4dC5tYXJrZWRUZXh0UmVjdHM7CisgICAgICAgIEVYUEVDVF9FUSg1VSwgcmVj
dFZhbHVlcy5jb3VudCk7CisgICAgICAgIGlmIChyZWN0VmFsdWVzLmNvdW50ID49IDUpIHsKKyAg
ICAgICAgICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKDQ3LCA4LCAxMywgMTkpLCBbcmVjdFZhbHVl
c1swXSBDR1JlY3RWYWx1ZV0pOworICAgICAgICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoNTks
IDgsIDksIDE5KSwgW3JlY3RWYWx1ZXNbMV0gQ0dSZWN0VmFsdWVdKTsKKyAgICAgICAgICAgIEVY
UEVDVF9FUShDR1JlY3RNYWtlKDY3LCA4LCA2LCAxOSksIFtyZWN0VmFsdWVzWzJdIENHUmVjdFZh
bHVlXSk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSg3MiwgOCwgNSwgMTkpLCBb
cmVjdFZhbHVlc1szXSBDR1JlY3RWYWx1ZV0pOworICAgICAgICAgICAgRVhQRUNUX0VRKENHUmVj
dE1ha2UoNzYsIDgsIDksIDE5KSwgW3JlY3RWYWx1ZXNbNF0gQ0dSZWN0VmFsdWVdKTsKKyAgICAg
ICAgfQorICAgIH0KKyAgICBbY29udGVudFZpZXcgdW5tYXJrVGV4dF07CisgICAgW3dlYlZpZXcg
c3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRF
eHRlbnQoZG9jdW1lbnQuYm9keS5jaGlsZE5vZGVzWzBdLCAwLCBkb2N1bWVudC5ib2R5LmNoaWxk
Tm9kZXNbMF0sIDUpIl07CisgICAgW2NvbnRlbnRWaWV3IHNldE1hcmtlZFRleHQ6QCJIZWxsbyIg
c2VsZWN0ZWRSYW5nZTpOU01ha2VSYW5nZSgwLCA1KV07CisgICAgW3dlYlZpZXcgd2FpdEZvck5l
eHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIHsKKyAgICAgICAgVUlXS0RvY3VtZW50Q29udGV4
dCAqY29udGV4dCA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0RG9jdW1lbnRDb250ZXh0
Om1ha2VSZXF1ZXN0KFVJV0tEb2N1bWVudFJlcXVlc3RUZXh0IHwgVUlXS0RvY3VtZW50UmVxdWVz
dE1hcmtlZFRleHRSZWN0cywgVUlUZXh0R3JhbnVsYXJpdHlQYXJhZ3JhcGgsIDEpXTsKKyAgICAg
ICAgRVhQRUNUX05VTEwoY29udGV4dC5jb250ZXh0QmVmb3JlKTsKKyAgICAgICAgRVhQRUNUX05T
U1RSSU5HX0VRKCIgd29ybGQiLCBjb250ZXh0LmNvbnRleHRBZnRlcik7CisgICAgICAgIEVYUEVD
VF9OU1NUUklOR19FUSgiSGVsbG8iLCBjb250ZXh0LnNlbGVjdGVkVGV4dCk7CisgICAgICAgIEVY
UEVDVF9OU1NUUklOR19FUSgiSGVsbG8iLCBjb250ZXh0Lm1hcmtlZFRleHQpOworICAgICAgICBF
WFBFQ1RfRVEoMFUsIGNvbnRleHQubWFya2VkVGV4dFJhbmdlLmxvY2F0aW9uKTsKKyAgICAgICAg
RVhQRUNUX0VRKDVVLCBjb250ZXh0Lm1hcmtlZFRleHRSYW5nZS5sZW5ndGgpOworCisgICAgICAg
IE5TQXJyYXk8TlNWYWx1ZSAqPiAqcmVjdFZhbHVlcyA9IGNvbnRleHQubWFya2VkVGV4dFJlY3Rz
OworICAgICAgICBFWFBFQ1RfRVEoNVUsIHJlY3RWYWx1ZXMuY291bnQpOworICAgICAgICBpZiAo
cmVjdFZhbHVlcy5jb3VudCA+PSA1KSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFr
ZSg4LCA4LCAxMiwgMTkpLCBbcmVjdFZhbHVlc1swXSBDR1JlY3RWYWx1ZV0pOworICAgICAgICAg
ICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMTksIDgsIDgsIDE5KSwgW3JlY3RWYWx1ZXNbMV0gQ0dS
ZWN0VmFsdWVdKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKDI2LCA4LCA2LCAx
OSksIFtyZWN0VmFsdWVzWzJdIENHUmVjdFZhbHVlXSk7CisgICAgICAgICAgICBFWFBFQ1RfRVEo
Q0dSZWN0TWFrZSgzMSwgOCwgNSwgMTkpLCBbcmVjdFZhbHVlc1szXSBDR1JlY3RWYWx1ZV0pOwor
ICAgICAgICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMzUsIDgsIDksIDE5KSwgW3JlY3RWYWx1
ZXNbNF0gQ0dSZWN0VmFsdWVdKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBbY29udGVudFZpZXcg
dW5tYXJrVGV4dF07CisgICAgW3dlYlZpZXcgc2VsZWN0QWxsOm5pbF07CisgICAgW2NvbnRlbnRW
aWV3IHNldE1hcmtlZFRleHQ6QCJmb28iIHNlbGVjdGVkUmFuZ2U6TlNNYWtlUmFuZ2UoMCwgMyld
OworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICB7Cisg
ICAgICAgIFVJV0tEb2N1bWVudENvbnRleHQgKmNvbnRleHQgPSBbd2ViVmlldyBzeW5jaHJvbm91
c2x5UmVxdWVzdERvY3VtZW50Q29udGV4dDptYWtlUmVxdWVzdChVSVdLRG9jdW1lbnRSZXF1ZXN0
VGV4dCB8IFVJV0tEb2N1bWVudFJlcXVlc3RNYXJrZWRUZXh0UmVjdHMsIFVJVGV4dEdyYW51bGFy
aXR5U2VudGVuY2UsIDEpXTsKKyAgICAgICAgRVhQRUNUX05VTEwoY29udGV4dC5jb250ZXh0QmVm
b3JlKTsKKyAgICAgICAgRVhQRUNUX05VTEwoY29udGV4dC5jb250ZXh0QWZ0ZXIpOworICAgICAg
ICBFWFBFQ1RfTlNTVFJJTkdfRVEoImZvbyIsIGNvbnRleHQuc2VsZWN0ZWRUZXh0KTsKKyAgICAg
ICAgRVhQRUNUX05TU1RSSU5HX0VRKCJmb28iLCBjb250ZXh0Lm1hcmtlZFRleHQpOworICAgICAg
ICBFWFBFQ1RfRVEoMFUsIGNvbnRleHQubWFya2VkVGV4dFJhbmdlLmxvY2F0aW9uKTsKKyAgICAg
ICAgRVhQRUNUX0VRKDNVLCBjb250ZXh0Lm1hcmtlZFRleHRSYW5nZS5sZW5ndGgpOworCisgICAg
ICAgIE5TQXJyYXk8TlNWYWx1ZSAqPiAqcmVjdFZhbHVlcyA9IGNvbnRleHQubWFya2VkVGV4dFJl
Y3RzOworICAgICAgICBFWFBFQ1RfRVEoM1UsIHJlY3RWYWx1ZXMuY291bnQpOworICAgICAgICBp
ZiAocmVjdFZhbHVlcy5jb3VudCA+PSAzKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0
TWFrZSg4LCA4LCA2LCAxOSksIFtyZWN0VmFsdWVzWzBdIENHUmVjdFZhbHVlXSk7CisgICAgICAg
ICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSgxMywgOCwgOSwgMTkpLCBbcmVjdFZhbHVlc1sxXSBD
R1JlY3RWYWx1ZV0pOworICAgICAgICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMjEsIDgsIDks
IDE5KSwgW3JlY3RWYWx1ZXNbMl0gQ0dSZWN0VmFsdWVdKTsKKyAgICAgICAgfQorICAgIH0KKyAg
ICBbY29udGVudFZpZXcgdW5tYXJrVGV4dF07CisgICAgW3dlYlZpZXcgY29sbGFwc2VUb0VuZF07
CisgICAgW2NvbnRlbnRWaWV3IHNldE1hcmtlZFRleHQ6QCJiYXIiIHNlbGVjdGVkUmFuZ2U6TlNN
YWtlUmFuZ2UoMCwgMyldOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBk
YXRlXTsKKyAgICB7CisgICAgICAgIFVJV0tEb2N1bWVudENvbnRleHQgKmNvbnRleHQgPSBbd2Vi
VmlldyBzeW5jaHJvbm91c2x5UmVxdWVzdERvY3VtZW50Q29udGV4dDptYWtlUmVxdWVzdChVSVdL
RG9jdW1lbnRSZXF1ZXN0VGV4dCB8IFVJV0tEb2N1bWVudFJlcXVlc3RNYXJrZWRUZXh0UmVjdHMs
IFVJVGV4dEdyYW51bGFyaXR5V29yZCwgMSldOworICAgICAgICBFWFBFQ1RfTlNTVFJJTkdfRVEo
ImZvbyIsIGNvbnRleHQuY29udGV4dEJlZm9yZSk7CisgICAgICAgIEVYUEVDVF9OVUxMKGNvbnRl
eHQuY29udGV4dEFmdGVyKTsKKyAgICAgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJiYXIiLCBjb250
ZXh0LnNlbGVjdGVkVGV4dCk7CisgICAgICAgIEVYUEVDVF9OU1NUUklOR19FUSgiYmFyIiwgY29u
dGV4dC5tYXJrZWRUZXh0KTsKKyAgICAgICAgRVhQRUNUX0VRKDNVLCBjb250ZXh0Lm1hcmtlZFRl
eHRSYW5nZS5sb2NhdGlvbik7CisgICAgICAgIEVYUEVDVF9FUSgzVSwgY29udGV4dC5tYXJrZWRU
ZXh0UmFuZ2UubGVuZ3RoKTsKKworICAgICAgICBOU0FycmF5PE5TVmFsdWUgKj4gKnJlY3RWYWx1
ZXMgPSBjb250ZXh0Lm1hcmtlZFRleHRSZWN0czsKKyAgICAgICAgRVhQRUNUX0VRKDNVLCByZWN0
VmFsdWVzLmNvdW50KTsKKyAgICAgICAgaWYgKHJlY3RWYWx1ZXMuY291bnQgPj0gMykgeworICAg
ICAgICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMjksIDgsIDksIDE5KSwgW3JlY3RWYWx1ZXNb
MF0gQ0dSZWN0VmFsdWVdKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKDM3LCA4
LCA4LCAxOSksIFtyZWN0VmFsdWVzWzFdIENHUmVjdFZhbHVlXSk7CisgICAgICAgICAgICBFWFBF
Q1RfRVEoQ0dSZWN0TWFrZSg0NCwgOCwgNiwgMTkpLCBbcmVjdFZhbHVlc1syXSBDR1JlY3RWYWx1
ZV0pOworICAgICAgICB9CisgICAgfQorfQorCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlM
WSkgJiYgSEFWRShVSV9XS19ET0NVTUVOVF9DT05URVhUKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9pb3MvVUlLaXRTUEkuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL1VJS2l0
U1BJLmgKaW5kZXggNmY1YzcyNWJlZDYyNzJkZjE1MjM3NTllN2RiZTNiOWZiMDZlM2E5NS4uNTVi
NjY0NTNjYjAyNGQwMjAxZTBhNjg1YjYwODhkODBmZWMwMzAzNCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9pb3MvVUlLaXRTUEkuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2lv
cy9VSUtpdFNQSS5oCkBAIC0xMzYsNiArMTM2LDcgQEAgV1RGX0VYVEVSTl9DX0VORAogQHByb3Bl
cnR5IChub25hdG9taWMsIGNvcHkpIE5TT2JqZWN0ICptYXJrZWRUZXh0OwogQHByb3BlcnR5IChu
b25hdG9taWMsIGFzc2lnbikgTlNSYW5nZSBzZWxlY3RlZFJhbmdlSW5NYXJrZWRUZXh0OwogQHBy
b3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TQXR0cmlidXRlZFN0cmluZyAqYW5ub3RhdGVkVGV4
dDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNSYW5nZSBtYXJrZWRUZXh0UmFu
Z2U7CiAKIC0gKE5TQXJyYXk8TlNWYWx1ZSAqPiAqKWNoYXJhY3RlclJlY3RzRm9yQ2hhcmFjdGVy
UmFuZ2U6KE5TUmFuZ2UpcmFuZ2U7CiAKQEAgLTE5NCw2ICsxOTUsOCBAQCBJR05PUkVfV0FSTklO
R1NfRU5ECiAKICNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCisjZGVmaW5lIFVJ
V0tEb2N1bWVudFJlcXVlc3RNYXJrZWRUZXh0UmVjdHMgKDEgPDwgNSkKKwogQGludGVyZmFjZSBV
SVRleHRBdXRvZmlsbFN1Z2dlc3Rpb24gKCkKICsgKGluc3RhbmNldHlwZSlhdXRvZmlsbFN1Z2dl
c3Rpb25XaXRoVXNlcm5hbWU6KE5TU3RyaW5nICopdXNlcm5hbWUgcGFzc3dvcmQ6KE5TU3RyaW5n
ICopcGFzc3dvcmQ7CiBAZW5kCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383706</attachid>
            <date>2019-11-16 14:46:40 -0800</date>
            <delta_ts>2019-11-16 16:09:44 -0800</delta_ts>
            <desc>Fix non-internal iOS builds (again)</desc>
            <filename>bug-204278-20191116144639.patch</filename>
            <type>text/plain</type>
            <size>17642</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTdkZTE0YjIwNzJiOGJm
ZjdiN2RjMDA2NWMxMGE2OGYxODhjMzc1Ni4uMjA0MzZhY2IzMzI3MWUyMDNiZTM5MmM4YjkyYTU0
YzYwMjhjMTNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTExLTE2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFtVSVdL
RG9jdW1lbnRDb250ZXh0XSBBZGQgdGhlIGFiaWxpdHkgdG8gcmVxdWVzdCBhbGwgbWFya2VkIHRl
eHQgcmVjdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNDI3OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTY1Mjc4MDM+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBNYXJrIGEgY29uc3RydWN0b3IgYXMgV0VC
Q09SRV9FWFBPUlQuIFNlZSBXZWJLaXQgQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAg
ICAgICAgKiBlZGl0aW5nL1RleHRJdGVyYXRvci5oOgorCiAyMDE5LTExLTE1ICBKZXIgTm9ibGUg
IDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI1MTg5NSkgLSAn
c2luZicgaW5pdCBkYXRhIGZsb3cgZ2VuZXJhdGVzICdjZW5jJyBzdHlsZSBlbmNyeXB0ZWQgbWVz
c2FnZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggYzk0NWU2N2MwNzBkMzRiZTYxMmRjMTI3YTU5MTYzZWJiNmRhNWNh
ZC4uMjQxOTRlMTAzYzk4MjI4MjhiNGIzOWZiYjE4YTUxNjQzYzkwMTU2ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNCBAQAorMjAxOS0xMS0xNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KKworICAgICAgICBbaU9TXSBbVUlXS0RvY3VtZW50Q29udGV4dF0gQWRkIHRoZSBh
YmlsaXR5IHRvIHJlcXVlc3QgYWxsIG1hcmtlZCB0ZXh0IHJlY3RzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQyNzgKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU2NTI3ODAzPgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIGEgbmV3IFVJV0tEb2N1bWVudFJlcXVlc3Qgb3B0aW9uIHRv
IHJlcXVlc3QgY2hhcmFjdGVyIHJlY3RzIGZvciBlYWNoIGNoYXJhY3RlciBpbiB0aGUgbWFya2Vk
CisgICAgICAgIHRleHQgcmFuZ2UuIFVubGVzcyBVSVdLRG9jdW1lbnRSZXF1ZXN0UmVjdHMgaXMg
YWRkaXRpb25hbGx5IHNwZWNpZmllZCAoaW4gd2hpY2ggY2FzZSB3ZSdsbCByZXR1cm4gcmVjdHMg
Zm9yCisgICAgICAgIGV2ZXJ5IHNpbmdsZSBjaGFyYWN0ZXIgaW4gdGhlIGVkaXRhYmxlIHJvb3Qg
YW55d2F5cyksIHRoaXMgb3B0aW9uIHdpbGwgZW5zdXJlIHRoYXQgYWxsIGNoYXJhY3RlcnMgaW4g
dGhlCisgICAgICAgIGNvbXBvc2l0aW9uIHJhbmdlICh3aGljaCBzaG91bGQgbWF0Y2ggLVtVSVdL
RG9jdW1lbnRDb250ZXh0IG1hcmtlZFRleHRSYW5nZV0pIHdpbGwgaGF2ZSBrbm93biBjaGFyYWN0
ZXIgcmVjdHMKKyAgICAgICAgdGhhdCBjYW4gYmUgcmV0cmlldmVkIHVzaW5nIC1bVUlXS0RvY3Vt
ZW50Q29udGV4dCBlbnVtZXJhdGVMYXlvdXRSZWN0czpdIChvciBvbmUgb2YgdGhlIG90aGVyIGhl
bHBlciBtZXRob2RzCisgICAgICAgIHRoYXQgdXRpbGl6ZSAtZW51bWVyYXRlTGF5b3V0UmVjdHM6
KS4KKworICAgICAgICBUZXN0OiBXZWJLaXQuRG9jdW1lbnRFZGl0aW5nQ29udGV4dFdpdGhNYXJr
ZWRUZXh0CisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmg6CisKKyAgICAg
ICAgQWRkIGEgc3RhZ2luZyBkZWNsYXJhdGlvbiBmb3IgdGhlIG5ldyBvcHRpb24uCisKKyAgICAg
ICAgKiBTaGFyZWQvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAodG9XZWJEb2N1bWVu
dFJlcXVlc3RPcHRpb25zKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVlc3REb2N1bWVudEVkaXRp
bmdDb250ZXh0KToKKworICAgICAgICBSZWZhY3RvciBsb2dpYyB0aGF0IHVzZXMgQ2hhcmFjdGVy
SXRlcmF0b3IgdG8gZmluZCByZWN0cyBmb3IgZWFjaCBjaGFyYWN0ZXIgcmFuZ2UgaW50byBhIGxh
bWJkYSBmdW5jdGlvbiwgYW5kCisgICAgICAgIHVzZSB0aGlzIGxhbWJkYSBmdW5jdGlvbiB0byBo
YW5kbGUgVUlXS0RvY3VtZW50UmVxdWVzdFJlY3RzIGFuZCB0aGUgbmV3IFVJV0tEb2N1bWVudFJl
cXVlc3RNYXJrZWRUZXh0UmVjdHMuIFRoZQorICAgICAgICBtYXJrZWQgdGV4dCByYW5nZSBpcyBy
ZWxhdGl2ZSB0byB0aGUgc3RhcnQgb2YgdGhlIGNvbnRleHQgYmVmb3JlIHRoZSBzZWxlY3Rpb24u
CisKIDIwMTktMTEtMTUgIEJlbmphbWluIE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgU1BJIHRvIGNsZWFyIHdlYiBwcm9jZXNzIGNhY2hlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
ZXh0SXRlcmF0b3IuaAppbmRleCA1YWU4MTFhNjY5YjFmNDgyNGQ2MDAxOGFiN2Q2MTQyYzQzOWZm
M2E3Li4xMDMwNGFmZjg3OGY0ZmZlYzU4YjlmOTAzNWRiOTFmNGQwNWQ3YjI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmgKQEAgLTI0OCw3ICsyNDgsNyBAQCBwcml2YXRlOgog
Ly8gY2hhcmFjdGVyIGF0IGEgdGltZSwgb3IgZmFzdGVyLCBhcyBuZWVkZWQuIFVzZWZ1bCBmb3Ig
c2VhcmNoaW5nLgogY2xhc3MgQ2hhcmFjdGVySXRlcmF0b3IgewogcHVibGljOgotICAgIGV4cGxp
Y2l0IENoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFJhbmdlJiwgVGV4dEl0ZXJhdG9yQmVoYXZpb3Ig
PSBUZXh0SXRlcmF0b3JEZWZhdWx0QmVoYXZpb3IpOworICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxp
Y2l0IENoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFJhbmdlJiwgVGV4dEl0ZXJhdG9yQmVoYXZpb3Ig
PSBUZXh0SXRlcmF0b3JEZWZhdWx0QmVoYXZpb3IpOwogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxp
Y2l0IENoYXJhY3Rlckl0ZXJhdG9yKFBvc2l0aW9uIHN0YXJ0LCBQb3NpdGlvbiBlbmQsIFRleHRJ
dGVyYXRvckJlaGF2aW9yID0gVGV4dEl0ZXJhdG9yRGVmYXVsdEJlaGF2aW9yKTsKICAgICAKICAg
ICBib29sIGF0RW5kKCkgY29uc3QgeyByZXR1cm4gbV91bmRlcmx5aW5nSXRlcmF0b3IuYXRFbmQo
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJ
LmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaAppbmRleCA5ODE2
Njc5NWZhMWRkODg5MWY5NDZjZGJmOGM3N2E3N2Q4MGEwYmIxLi5jODhkZTk1YTU5ZDQ4YmE2MTVi
YWFlMjAzMTg3ZTIyNjY1YjllZWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L3NwaS9pb3MvVUlLaXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3Mv
VUlLaXRTUEkuaApAQCAtMTExMCw2ICsxMTEwLDggQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TSW50
ZWdlciwgVUlXS0RvY3VtZW50UmVxdWVzdEZsYWdzKSB7CiAKICNlbmRpZiAvLyBVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKQogCisjZGVmaW5lIFVJV0tEb2N1bWVudFJlcXVlc3RNYXJrZWRUZXh0UmVj
dHMgKDEgPDwgNSkKKwogI2lmIEhBVkUoTElOS19QUkVWSUVXKSAmJiBVU0UoVUlDT05URVhUTUVO
VSkKIEBpbnRlcmZhY2UgVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24gKElQSSkKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBjb3B5KSBVSUNvbnRleHRNZW51Q29udGVudFByZXZpZXdQcm92aWRlciBw
cmV2aWV3UHJvdmlkZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Eb2N1bWVu
dEVkaXRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Eb2N1bWVudEVkaXRpbmdD
b250ZXh0LmgKaW5kZXggYzE5M2NmMzU2MjA1Mzg4YWVmOTA0NmYzOGE5ZTVlMjU5YzdlZTk4Ni4u
OWEyNGE0ZDIwMDE0MjAzMzZkNTZiY2IzOTljOThkZDM1NDcxZWI0ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0RvY3VtZW50RWRpdGluZ0NvbnRleHQuaApAQCAtNDcsNiArNDcsNyBAQCBz
dHJ1Y3QgRG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3QgewogICAgICAgICBSZWN0cyA9IDEg
PDwgMiwKICAgICAgICAgU3BhdGlhbCA9IDEgPDwgMywKICAgICAgICAgQW5ub3RhdGlvbiA9IDEg
PDwgNCwKKyAgICAgICAgTWFya2VkVGV4dFJlY3RzID0gMSA8PCA1LAogICAgIH07CiAKICAgICBP
cHRpb25TZXQ8T3B0aW9ucz4gb3B0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDJkMDNmYzA3MWNi
YTk2N2FmOWI2MWNmMjM5MzdhNjg0MDA3ZTg2MDQuLjMxMjk1OTVlMDljOTYxNmIxNTFhY2U0NTk0
NTk0OTE1ODJlYmExYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNzEzNyw2ICs3MTM3LDggQEAgc3Rh
dGljIGlubGluZSBPcHRpb25TZXQ8V2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVz
dDo6T3B0aW9ucz4gdG9XZWJEb2MKICAgICAgICAgb3B0aW9ucy5hZGQoV2ViS2l0OjpEb2N1bWVu
dEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0aW9uczo6U3BhdGlhbCk7CiAgICAgaWYgKGZsYWdz
ICYgVUlXS0RvY3VtZW50UmVxdWVzdEFubm90YXRpb24pCiAgICAgICAgIG9wdGlvbnMuYWRkKFdl
YktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6Ok9wdGlvbnM6OkFubm90YXRpb24p
OworICAgIGlmIChmbGFncyAmIFVJV0tEb2N1bWVudFJlcXVlc3RNYXJrZWRUZXh0UmVjdHMpCisg
ICAgICAgIG9wdGlvbnMuYWRkKFdlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6
Ok9wdGlvbnM6Ok1hcmtlZFRleHRSZWN0cyk7CiAKICAgICByZXR1cm4gb3B0aW9uczsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0K
aW5kZXggMzI1YWJmYTE3Y2M4NDIzMjZhYTZkMWRkOGU0OGQzYWE2YWQ0ZTMxOS4uMzU4MWQxYjJi
NjMzYmM0M2ZlNDZiODUyOGFmNDEzNWMyMDAwOGYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTM5MzYsNiArMzkzNiw3
IEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVzdERvY3VtZW50RWRpdGluZ0NvbnRleHQoRG9jdW1lbnRF
ZGl0aW5nQ29udGV4dFJlcXVlc3QgcmVxdWVzCiAKICAgICBib29sIGlzU3BhdGlhbFJlcXVlc3Qg
PSByZXF1ZXN0Lm9wdGlvbnMuY29udGFpbnMoRG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6
Ok9wdGlvbnM6OlNwYXRpYWwpOwogICAgIGJvb2wgd2FudHNSZWN0cyA9IHJlcXVlc3Qub3B0aW9u
cy5jb250YWlucyhEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0aW9uczo6UmVjdHMp
OworICAgIGJvb2wgd2FudHNNYXJrZWRUZXh0UmVjdHMgPSByZXF1ZXN0Lm9wdGlvbnMuY29udGFp
bnMoRG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6Ok9wdGlvbnM6Ok1hcmtlZFRleHRSZWN0
cyk7CiAKICAgICBpZiAoYXV0byB0ZXh0SW5wdXRDb250ZXh0ID0gcmVxdWVzdC50ZXh0SW5wdXRD
b250ZXh0KSB7CiAgICAgICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gZWxlbWVudEZvckNv
bnRleHQoKnRleHRJbnB1dENvbnRleHQpOwpAQCAtNDA0NCw5ICs0MDQ1LDEwIEBAIHZvaWQgV2Vi
UGFnZTo6cmVxdWVzdERvY3VtZW50RWRpdGluZ0NvbnRleHQoRG9jdW1lbnRFZGl0aW5nQ29udGV4
dFJlcXVlc3QgcmVxdWVzCiAgICAgICAgIGNvbnRleHQuc2VsZWN0ZWRSYW5nZUluTWFya2VkVGV4
dC5sZW5ndGggPSBbY29udGV4dC5zZWxlY3RlZFRleHQuc3RyaW5nIGxlbmd0aF07CiAgICAgfQog
Ci0gICAgaWYgKHdhbnRzUmVjdHMpIHsKLSAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgY29udGV4
dEl0ZXJhdG9yKGNvbnRleHRCZWZvcmVTdGFydC5kZWVwRXF1aXZhbGVudCgpLCBjb250ZXh0QWZ0
ZXJFbmQuZGVlcEVxdWl2YWxlbnQoKSk7Ci0gICAgICAgIHVuc2lnbmVkIGN1cnJlbnRMb2NhdGlv
biA9IDA7CisgICAgYXV0byBjaGFyYWN0ZXJSZWN0c0ZvclJhbmdlID0gWyZdIChSYW5nZSYgcmFu
Z2UsIHVpbnQ2NF90IGxvY2F0aW9uT2Zmc2V0KSB7CisgICAgICAgIFZlY3RvcjxEb2N1bWVudEVk
aXRpbmdDb250ZXh0OjpUZXh0UmVjdEFuZFJhbmdlPiByZWN0czsKKyAgICAgICAgQ2hhcmFjdGVy
SXRlcmF0b3IgY29udGV4dEl0ZXJhdG9yKHJhbmdlKTsKKyAgICAgICAgdW5zaWduZWQgY3VycmVu
dExvY2F0aW9uID0gbG9jYXRpb25PZmZzZXQ7CiAgICAgICAgIHdoaWxlICghY29udGV4dEl0ZXJh
dG9yLmF0RW5kKCkpIHsKICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IGNvbnRleHRJdGVy
YXRvci50ZXh0KCkubGVuZ3RoKCk7CiAgICAgICAgICAgICBpZiAoIWxlbmd0aCkgewpAQCAtNDA1
NCwxNCArNDA1NiwxOSBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3REb2N1bWVudEVkaXRpbmdDb250
ZXh0KERvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0IHJlcXVlcwogICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBEb2N1bWVudEVkaXRpbmdD
b250ZXh0OjpUZXh0UmVjdEFuZFJhbmdlIHJlY3Q7Ci0gICAgICAgICAgICByZWN0LnJlY3QgPSBj
b250ZXh0SXRlcmF0b3IucmFuZ2UoKS0+YWJzb2x1dGVCb3VuZGluZ0JveCgpOwotICAgICAgICAg
ICAgcmVjdC5yYW5nZSA9IHsgY3VycmVudExvY2F0aW9uLCAxIH07Ci0gICAgICAgICAgICBjb250
ZXh0LnRleHRSZWN0cy5hcHBlbmQocmVjdCk7Ci0KKyAgICAgICAgICAgIHJlY3RzLmFwcGVuZCh7
IGNvbnRleHRJdGVyYXRvci5yYW5nZSgpLT5hYnNvbHV0ZUJvdW5kaW5nQm94KCksIHsgY3VycmVu
dExvY2F0aW9uLCAxIH0gfSk7CiAgICAgICAgICAgICBjdXJyZW50TG9jYXRpb24rKzsKICAgICAg
ICAgICAgIGNvbnRleHRJdGVyYXRvci5hZHZhbmNlKDEpOwogICAgICAgICB9CisgICAgICAgIHJl
dHVybiByZWN0czsKKyAgICB9OworCisgICAgaWYgKHdhbnRzUmVjdHMpIHsKKyAgICAgICAgaWYg
KGF1dG8gY29udGV4dFJhbmdlID0gbWFrZVJhbmdlKGNvbnRleHRCZWZvcmVTdGFydCwgY29udGV4
dEFmdGVyRW5kKSkKKyAgICAgICAgICAgIGNvbnRleHQudGV4dFJlY3RzID0gY2hhcmFjdGVyUmVj
dHNGb3JSYW5nZSgqY29udGV4dFJhbmdlLCAwKTsKKyAgICB9IGVsc2UgaWYgKHdhbnRzTWFya2Vk
VGV4dFJlY3RzICYmIGNvbXBvc2l0aW9uUmFuZ2UpIHsKKyAgICAgICAgYXV0byBjb21wb3NpdGlv
blN0YXJ0T2Zmc2V0ID0gcGxhaW5UZXh0UmVwbGFjaW5nTm9CcmVha1NwYWNlKGNvbnRleHRCZWZv
cmVTdGFydC5kZWVwRXF1aXZhbGVudCgpLCBjb21wb3NpdGlvblJhbmdlLT5zdGFydFBvc2l0aW9u
KCkpLmxlbmd0aCgpOworICAgICAgICBjb250ZXh0LnRleHRSZWN0cyA9IGNoYXJhY3RlclJlY3Rz
Rm9yUmFuZ2UoKmNvbXBvc2l0aW9uUmFuZ2UsIGNvbXBvc2l0aW9uU3RhcnRPZmZzZXQpOwogICAg
IH0KIAogI2lmIEVOQUJMRShQTEFURk9STV9EUklWRU5fVEVYVF9DSEVDS0lORykKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1YWRkOGNmOTg1MzZi
MDA1ZWFhYjU1M2M4OGIzZWIyZjM1Mjg1ZTQ4Li4wMWM3ZTA2YmUwNGI3ZmVhMjE3OWFlZWQwMzNk
MWY3YWUxMjdlMDE3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMTEtMTYgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gW1VJV0tEb2N1bWVudENvbnRleHRd
IEFkZCB0aGUgYWJpbGl0eSB0byByZXF1ZXN0IGFsbCBtYXJrZWQgdGV4dCByZWN0cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0Mjc4CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS81NjUyNzgwMz4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9y
dG9uLgorCisgICAgICAgIEFkZCBhbiBBUEkgdGVzdCB0byBleGVyY2lzZSB0aGUgbmV3IHJlcXVl
c3Qgb3B0aW9uLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9E
b2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tOgorICAgICAgICAoLVtVSVdLRG9jdW1lbnRDb250ZXh0
IG1hcmtlZFRleHRSZWN0c10pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvaW9zL1VJS2l0U1BJ
Lmg6CisKIDIwMTktMTEtMTUgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgog
CiAgICAgICAgIHJlc3VsdHMud2Via2l0Lm9yZzogUmVwb3J0IEpTQyB0ZXN0cyB0byB0aGUgcmVz
dWx0cyBkYXRhYmFzZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tCmluZGV4IGJjMzM4Mzk5
MDViMmE3Y2Q3YTg1ZjFlZDM0NGFkYmE2MDE1NWM2NDMuLjE2MWRhNzUyMTkyMTRkY2QyODhjZjk1
YWQ4ZjkxNjcwY2VlNTU0ZDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RvY3VtZW50RWRpdGluZ0NvbnRleHQubW0KQEAgLTYy
LDYgKzYyLDI1IEBAIHN0YXRpYyBVSVdLRG9jdW1lbnRSZXF1ZXN0ICptYWtlUmVxdWVzdChVSVdL
RG9jdW1lbnRSZXF1ZXN0RmxhZ3MgZmxhZ3MsIFVJVGV4dEdyCiAgICAgcmV0dXJuIHJlcXVlc3Qu
YXV0b3JlbGVhc2UoKTsKIH0KIAorQGludGVyZmFjZSBVSVdLRG9jdW1lbnRDb250ZXh0IChUZXN0
UnVubmVyKQorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0FycmF5PE5TVmFsdWUg
Kj4gKm1hcmtlZFRleHRSZWN0czsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFVJV0tEb2N1bWVu
dENvbnRleHQgKFRlc3RSdW5uZXIpCisKKy0gKE5TQXJyYXk8TlNWYWx1ZSAqPiAqKW1hcmtlZFRl
eHRSZWN0cworeworICAgIC8vIFRoaXMgc2hvdWxkIGlkZWFsbHkgYmUgZXF1aXZhbGVudCB0byBb
c2VsZiBjaGFyYWN0ZXJSZWN0c0ZvckNoYXJhY3RlclJhbmdlOnNlbGYubWFya2VkVGV4dFJhbmdl
XS4gSG93ZXZlciwgdGhlIGltcGxlbWVudGF0aW9uCisgICAgLy8gb2YgLWNoYXJhY3RlclJlY3Rz
Rm9yQ2hhcmFjdGVyUmFuZ2U6IGluIFVJS2l0IGRvZXNuJ3QgZ3VhcmFudGVlIGFueSBvcmRlciB0
byB0aGUgcmV0dXJuZWQgY2hhcmFjdGVyIHJlY3RzLgorICAgIE5TUmFuZ2UgcmFuZ2UgPSBzZWxm
Lm1hcmtlZFRleHRSYW5nZTsKKyAgICBOU011dGFibGVBcnJheSAqcmVjdHMgPSBbTlNNdXRhYmxl
QXJyYXkgYXJyYXlXaXRoQ2FwYWNpdHk6cmFuZ2UubGVuZ3RoXTsKKyAgICBmb3IgKGF1dG8gbG9j
YXRpb24gPSByYW5nZS5sb2NhdGlvbjsgbG9jYXRpb24gPCByYW5nZS5sb2NhdGlvbiArIHJhbmdl
Lmxlbmd0aDsgKytsb2NhdGlvbikKKyAgICAgICAgW3JlY3RzIGFkZE9iamVjdDpbc2VsZiBjaGFy
YWN0ZXJSZWN0c0ZvckNoYXJhY3RlclJhbmdlOk5TTWFrZVJhbmdlKGxvY2F0aW9uLCAxKV0uZmly
c3RPYmplY3RdOworICAgIHJldHVybiByZWN0czsKK30KKworQGVuZAorCiBAaW1wbGVtZW50YXRp
b24gVGVzdFdLV2ViVmlldyAoU3luY2hyb25vdXNEb2N1bWVudENvbnRleHQpCiAKIC0gKFVJV0tE
b2N1bWVudENvbnRleHQgKilzeW5jaHJvbm91c2x5UmVxdWVzdERvY3VtZW50Q29udGV4dDooVUlX
S0RvY3VtZW50UmVxdWVzdCAqKXJlcXVlc3QKQEAgLTIzNCw0ICsyNTMsMTAyIEBAIFRFU1QoV2Vi
S2l0LCBEb2N1bWVudEVkaXRpbmdDb250ZXh0KQogICAgIEVYUEVDVF9OU1NUUklOR19FUSgiIHdv
cmxkIiwgY29udGV4dC5jb250ZXh0QWZ0ZXIpOwogfQogCitURVNUKFdlYktpdCwgRG9jdW1lbnRF
ZGl0aW5nQ29udGV4dFdpdGhNYXJrZWRUZXh0KQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwg
ODAwLCA2MDApXSk7CisgICAgYXV0byAqY29udGVudFZpZXcgPSBbd2ViVmlldyB0ZXh0SW5wdXRD
b250ZW50Vmlld107CisKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6
QCI8Ym9keSBzdHlsZT0nLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiBub25lOycgY29udGVudGVk
aXRhYmxlPiJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImRvY3VtZW50LmJv
ZHkuZm9jdXMoKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBbd2ViVmlldyBfc3luY2hy
b25vdXNseUV4ZWN1dGVFZGl0Q29tbWFuZDpAIkluc2VydFRleHQiIGFyZ3VtZW50OkAiSGVsbG8g
d29ybGQiXTsKKworICAgIFtjb250ZW50VmlldyBzZWxlY3RXb3JkQmFja3dhcmRdOworICAgIFtj
b250ZW50VmlldyBzZXRNYXJrZWRUZXh0OkAid29ybGQiIHNlbGVjdGVkUmFuZ2U6TlNNYWtlUmFu
Z2UoMCwgNSldOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsK
KyAgICB7CisgICAgICAgIFVJV0tEb2N1bWVudENvbnRleHQgKmNvbnRleHQgPSBbd2ViVmlldyBz
eW5jaHJvbm91c2x5UmVxdWVzdERvY3VtZW50Q29udGV4dDptYWtlUmVxdWVzdChVSVdLRG9jdW1l
bnRSZXF1ZXN0VGV4dCB8IFVJV0tEb2N1bWVudFJlcXVlc3RNYXJrZWRUZXh0UmVjdHMsIFVJVGV4
dEdyYW51bGFyaXR5Q2hhcmFjdGVyLCAwKV07CisgICAgICAgIEVYUEVDVF9OVUxMKGNvbnRleHQu
Y29udGV4dEJlZm9yZSk7CisgICAgICAgIEVYUEVDVF9OVUxMKGNvbnRleHQuY29udGV4dEFmdGVy
KTsKKyAgICAgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJ3b3JsZCIsIGNvbnRleHQuc2VsZWN0ZWRU
ZXh0KTsKKyAgICAgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJ3b3JsZCIsIGNvbnRleHQubWFya2Vk
VGV4dCk7CisgICAgICAgIEVYUEVDVF9FUSgwVSwgY29udGV4dC5tYXJrZWRUZXh0UmFuZ2UubG9j
YXRpb24pOworICAgICAgICBFWFBFQ1RfRVEoNVUsIGNvbnRleHQubWFya2VkVGV4dFJhbmdlLmxl
bmd0aCk7CisKKyAgICAgICAgTlNBcnJheTxOU1ZhbHVlICo+ICpyZWN0VmFsdWVzID0gY29udGV4
dC5tYXJrZWRUZXh0UmVjdHM7CisgICAgICAgIEVYUEVDVF9FUSg1VSwgcmVjdFZhbHVlcy5jb3Vu
dCk7CisgICAgICAgIGlmIChyZWN0VmFsdWVzLmNvdW50ID49IDUpIHsKKyAgICAgICAgICAgIEVY
UEVDVF9FUShDR1JlY3RNYWtlKDQ3LCA4LCAxMywgMTkpLCBbcmVjdFZhbHVlc1swXSBDR1JlY3RW
YWx1ZV0pOworICAgICAgICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoNTksIDgsIDksIDE5KSwg
W3JlY3RWYWx1ZXNbMV0gQ0dSZWN0VmFsdWVdKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShDR1Jl
Y3RNYWtlKDY3LCA4LCA2LCAxOSksIFtyZWN0VmFsdWVzWzJdIENHUmVjdFZhbHVlXSk7CisgICAg
ICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSg3MiwgOCwgNSwgMTkpLCBbcmVjdFZhbHVlc1sz
XSBDR1JlY3RWYWx1ZV0pOworICAgICAgICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoNzYsIDgs
IDksIDE5KSwgW3JlY3RWYWx1ZXNbNF0gQ0dSZWN0VmFsdWVdKTsKKyAgICAgICAgfQorICAgIH0K
KyAgICBbY29udGVudFZpZXcgdW5tYXJrVGV4dF07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFs
dWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoZG9jdW1l
bnQuYm9keS5jaGlsZE5vZGVzWzBdLCAwLCBkb2N1bWVudC5ib2R5LmNoaWxkTm9kZXNbMF0sIDUp
Il07CisgICAgW2NvbnRlbnRWaWV3IHNldE1hcmtlZFRleHQ6QCJIZWxsbyIgc2VsZWN0ZWRSYW5n
ZTpOU01ha2VSYW5nZSgwLCA1KV07CisgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRp
b25VcGRhdGVdOworICAgIHsKKyAgICAgICAgVUlXS0RvY3VtZW50Q29udGV4dCAqY29udGV4dCA9
IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0RG9jdW1lbnRDb250ZXh0Om1ha2VSZXF1ZXN0
KFVJV0tEb2N1bWVudFJlcXVlc3RUZXh0IHwgVUlXS0RvY3VtZW50UmVxdWVzdE1hcmtlZFRleHRS
ZWN0cywgVUlUZXh0R3JhbnVsYXJpdHlQYXJhZ3JhcGgsIDEpXTsKKyAgICAgICAgRVhQRUNUX05V
TEwoY29udGV4dC5jb250ZXh0QmVmb3JlKTsKKyAgICAgICAgRVhQRUNUX05TU1RSSU5HX0VRKCIg
d29ybGQiLCBjb250ZXh0LmNvbnRleHRBZnRlcik7CisgICAgICAgIEVYUEVDVF9OU1NUUklOR19F
USgiSGVsbG8iLCBjb250ZXh0LnNlbGVjdGVkVGV4dCk7CisgICAgICAgIEVYUEVDVF9OU1NUUklO
R19FUSgiSGVsbG8iLCBjb250ZXh0Lm1hcmtlZFRleHQpOworICAgICAgICBFWFBFQ1RfRVEoMFUs
IGNvbnRleHQubWFya2VkVGV4dFJhbmdlLmxvY2F0aW9uKTsKKyAgICAgICAgRVhQRUNUX0VRKDVV
LCBjb250ZXh0Lm1hcmtlZFRleHRSYW5nZS5sZW5ndGgpOworCisgICAgICAgIE5TQXJyYXk8TlNW
YWx1ZSAqPiAqcmVjdFZhbHVlcyA9IGNvbnRleHQubWFya2VkVGV4dFJlY3RzOworICAgICAgICBF
WFBFQ1RfRVEoNVUsIHJlY3RWYWx1ZXMuY291bnQpOworICAgICAgICBpZiAocmVjdFZhbHVlcy5j
b3VudCA+PSA1KSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSg4LCA4LCAxMiwg
MTkpLCBbcmVjdFZhbHVlc1swXSBDR1JlY3RWYWx1ZV0pOworICAgICAgICAgICAgRVhQRUNUX0VR
KENHUmVjdE1ha2UoMTksIDgsIDgsIDE5KSwgW3JlY3RWYWx1ZXNbMV0gQ0dSZWN0VmFsdWVdKTsK
KyAgICAgICAgICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKDI2LCA4LCA2LCAxOSksIFtyZWN0VmFs
dWVzWzJdIENHUmVjdFZhbHVlXSk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSgz
MSwgOCwgNSwgMTkpLCBbcmVjdFZhbHVlc1szXSBDR1JlY3RWYWx1ZV0pOworICAgICAgICAgICAg
RVhQRUNUX0VRKENHUmVjdE1ha2UoMzUsIDgsIDksIDE5KSwgW3JlY3RWYWx1ZXNbNF0gQ0dSZWN0
VmFsdWVdKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBbY29udGVudFZpZXcgdW5tYXJrVGV4dF07
CisgICAgW3dlYlZpZXcgc2VsZWN0QWxsOm5pbF07CisgICAgW2NvbnRlbnRWaWV3IHNldE1hcmtl
ZFRleHQ6QCJmb28iIHNlbGVjdGVkUmFuZ2U6TlNNYWtlUmFuZ2UoMCwgMyldOworICAgIFt3ZWJW
aWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICB7CisgICAgICAgIFVJV0tE
b2N1bWVudENvbnRleHQgKmNvbnRleHQgPSBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVxdWVzdERv
Y3VtZW50Q29udGV4dDptYWtlUmVxdWVzdChVSVdLRG9jdW1lbnRSZXF1ZXN0VGV4dCB8IFVJV0tE
b2N1bWVudFJlcXVlc3RNYXJrZWRUZXh0UmVjdHMsIFVJVGV4dEdyYW51bGFyaXR5U2VudGVuY2Us
IDEpXTsKKyAgICAgICAgRVhQRUNUX05VTEwoY29udGV4dC5jb250ZXh0QmVmb3JlKTsKKyAgICAg
ICAgRVhQRUNUX05VTEwoY29udGV4dC5jb250ZXh0QWZ0ZXIpOworICAgICAgICBFWFBFQ1RfTlNT
VFJJTkdfRVEoImZvbyIsIGNvbnRleHQuc2VsZWN0ZWRUZXh0KTsKKyAgICAgICAgRVhQRUNUX05T
U1RSSU5HX0VRKCJmb28iLCBjb250ZXh0Lm1hcmtlZFRleHQpOworICAgICAgICBFWFBFQ1RfRVEo
MFUsIGNvbnRleHQubWFya2VkVGV4dFJhbmdlLmxvY2F0aW9uKTsKKyAgICAgICAgRVhQRUNUX0VR
KDNVLCBjb250ZXh0Lm1hcmtlZFRleHRSYW5nZS5sZW5ndGgpOworCisgICAgICAgIE5TQXJyYXk8
TlNWYWx1ZSAqPiAqcmVjdFZhbHVlcyA9IGNvbnRleHQubWFya2VkVGV4dFJlY3RzOworICAgICAg
ICBFWFBFQ1RfRVEoM1UsIHJlY3RWYWx1ZXMuY291bnQpOworICAgICAgICBpZiAocmVjdFZhbHVl
cy5jb3VudCA+PSAzKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSg4LCA4LCA2
LCAxOSksIFtyZWN0VmFsdWVzWzBdIENHUmVjdFZhbHVlXSk7CisgICAgICAgICAgICBFWFBFQ1Rf
RVEoQ0dSZWN0TWFrZSgxMywgOCwgOSwgMTkpLCBbcmVjdFZhbHVlc1sxXSBDR1JlY3RWYWx1ZV0p
OworICAgICAgICAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMjEsIDgsIDksIDE5KSwgW3JlY3RW
YWx1ZXNbMl0gQ0dSZWN0VmFsdWVdKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBbY29udGVudFZp
ZXcgdW5tYXJrVGV4dF07CisgICAgW3dlYlZpZXcgY29sbGFwc2VUb0VuZF07CisgICAgW2NvbnRl
bnRWaWV3IHNldE1hcmtlZFRleHQ6QCJiYXIiIHNlbGVjdGVkUmFuZ2U6TlNNYWtlUmFuZ2UoMCwg
MyldOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICB7
CisgICAgICAgIFVJV0tEb2N1bWVudENvbnRleHQgKmNvbnRleHQgPSBbd2ViVmlldyBzeW5jaHJv
bm91c2x5UmVxdWVzdERvY3VtZW50Q29udGV4dDptYWtlUmVxdWVzdChVSVdLRG9jdW1lbnRSZXF1
ZXN0VGV4dCB8IFVJV0tEb2N1bWVudFJlcXVlc3RNYXJrZWRUZXh0UmVjdHMsIFVJVGV4dEdyYW51
bGFyaXR5V29yZCwgMSldOworICAgICAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoImZvbyIsIGNvbnRl
eHQuY29udGV4dEJlZm9yZSk7CisgICAgICAgIEVYUEVDVF9OVUxMKGNvbnRleHQuY29udGV4dEFm
dGVyKTsKKyAgICAgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJiYXIiLCBjb250ZXh0LnNlbGVjdGVk
VGV4dCk7CisgICAgICAgIEVYUEVDVF9OU1NUUklOR19FUSgiYmFyIiwgY29udGV4dC5tYXJrZWRU
ZXh0KTsKKyAgICAgICAgRVhQRUNUX0VRKDNVLCBjb250ZXh0Lm1hcmtlZFRleHRSYW5nZS5sb2Nh
dGlvbik7CisgICAgICAgIEVYUEVDVF9FUSgzVSwgY29udGV4dC5tYXJrZWRUZXh0UmFuZ2UubGVu
Z3RoKTsKKworICAgICAgICBOU0FycmF5PE5TVmFsdWUgKj4gKnJlY3RWYWx1ZXMgPSBjb250ZXh0
Lm1hcmtlZFRleHRSZWN0czsKKyAgICAgICAgRVhQRUNUX0VRKDNVLCByZWN0VmFsdWVzLmNvdW50
KTsKKyAgICAgICAgaWYgKHJlY3RWYWx1ZXMuY291bnQgPj0gMykgeworICAgICAgICAgICAgRVhQ
RUNUX0VRKENHUmVjdE1ha2UoMjksIDgsIDksIDE5KSwgW3JlY3RWYWx1ZXNbMF0gQ0dSZWN0VmFs
dWVdKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKDM3LCA4LCA4LCAxOSksIFty
ZWN0VmFsdWVzWzFdIENHUmVjdFZhbHVlXSk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoQ0dSZWN0
TWFrZSg0NCwgOCwgNiwgMTkpLCBbcmVjdFZhbHVlc1syXSBDR1JlY3RWYWx1ZV0pOworICAgICAg
ICB9CisgICAgfQorfQorCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgSEFWRShV
SV9XS19ET0NVTUVOVF9DT05URVhUKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9p
b3MvVUlLaXRTUEkuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL1VJS2l0U1BJLmgKaW5kZXgg
NmY1YzcyNWJlZDYyNzJkZjE1MjM3NTllN2RiZTNiOWZiMDZlM2E5NS4uZDVkNzQ5ZjI5ODA5Yjky
YjY4N2ExYjYxMTY0ZjI5YjQwMjEyM2QyMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9pb3MvVUlLaXRTUEkuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9VSUtpdFNQSS5o
CkBAIC0xMzYsNiArMTM2LDcgQEAgV1RGX0VYVEVSTl9DX0VORAogQHByb3BlcnR5IChub25hdG9t
aWMsIGNvcHkpIE5TT2JqZWN0ICptYXJrZWRUZXh0OwogQHByb3BlcnR5IChub25hdG9taWMsIGFz
c2lnbikgTlNSYW5nZSBzZWxlY3RlZFJhbmdlSW5NYXJrZWRUZXh0OwogQHByb3BlcnR5IChub25h
dG9taWMsIGNvcHkpIE5TQXR0cmlidXRlZFN0cmluZyAqYW5ub3RhdGVkVGV4dDsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNSYW5nZSBtYXJrZWRUZXh0UmFuZ2U7CiAKIC0gKE5T
QXJyYXk8TlNWYWx1ZSAqPiAqKWNoYXJhY3RlclJlY3RzRm9yQ2hhcmFjdGVyUmFuZ2U6KE5TUmFu
Z2UpcmFuZ2U7CiAKQEAgLTE3MCw2ICsxNzEsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNJbnRl
Z2VyLCBVSVdLRG9jdW1lbnRSZXF1ZXN0RmxhZ3MpIHsKIC0gKHZvaWQpcGFzdGVXaXRoQ29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyOwogLSAodm9pZCly
ZXF1ZXN0QXV0b2NvcnJlY3Rpb25SZWN0c0ZvclN0cmluZzooTlNTdHJpbmcgKilpbnB1dCB3aXRo
Q29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKFVJV0tBdXRvY29ycmVjdGlvblJlY3RzICpyZWN0
c0ZvcklucHV0KSljb21wbGV0aW9uSGFuZGxlcjsKIC0gKHZvaWQpcmVxdWVzdEF1dG9jb3JyZWN0
aW9uQ29udGV4dFdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoVUlXS0F1dG9jb3JyZWN0
aW9uQ29udGV4dCAqYXV0b2NvcnJlY3Rpb25Db250ZXh0KSljb21wbGV0aW9uSGFuZGxlcjsKKy0g
KHZvaWQpc2VsZWN0V29yZEJhY2t3YXJkOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
KSBOU1N0cmluZyAqc2VsZWN0ZWRUZXh0OwogQGVuZAogCkBAIC0xOTQsNiArMTk2LDggQEAgSUdO
T1JFX1dBUk5JTkdTX0VORAogCiAjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAor
I2RlZmluZSBVSVdLRG9jdW1lbnRSZXF1ZXN0TWFya2VkVGV4dFJlY3RzICgxIDw8IDUpCisKIEBp
bnRlcmZhY2UgVUlUZXh0QXV0b2ZpbGxTdWdnZXN0aW9uICgpCiArIChpbnN0YW5jZXR5cGUpYXV0
b2ZpbGxTdWdnZXN0aW9uV2l0aFVzZXJuYW1lOihOU1N0cmluZyAqKXVzZXJuYW1lIHBhc3N3b3Jk
OihOU1N0cmluZyAqKXBhc3N3b3JkOwogQGVuZAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>