From 96f689cf928f115324a8190068d211b919d19b62 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 19 Aug 2025 07:59:07 +0000 Subject: [PATCH] Deploy to GitHub pages --- .nojekyll | 0 404.html | 34 + .../images/anchor-copy-button.svg | 8 + KDoc/pangutext-android/images/arrow_down.svg | 7 + KDoc/pangutext-android/images/burger.svg | 9 + KDoc/pangutext-android/images/copy-icon.svg | 7 + .../images/copy-successful-icon.svg | 7 + .../images/footer-go-to-link.svg | 7 + .../images/go-to-top-icon.svg | 8 + KDoc/pangutext-android/images/homepage.svg | 3 + KDoc/pangutext-android/images/logo-icon.svg | 14 + .../nav-icons/abstract-class-kotlin.svg | 26 + .../images/nav-icons/abstract-class.svg | 20 + .../images/nav-icons/annotation-kotlin.svg | 13 + .../images/nav-icons/annotation.svg | 7 + .../images/nav-icons/class-kotlin.svg | 13 + .../images/nav-icons/class.svg | 7 + .../images/nav-icons/enum-kotlin.svg | 13 + .../images/nav-icons/enum.svg | 7 + .../images/nav-icons/exception-class.svg | 7 + .../images/nav-icons/field-value.svg | 10 + .../images/nav-icons/field-variable.svg | 10 + .../images/nav-icons/function.svg | 7 + .../images/nav-icons/interface-kotlin.svg | 13 + .../images/nav-icons/interface.svg | 7 + .../images/nav-icons/object.svg | 13 + .../images/nav-icons/typealias-kotlin.svg | 13 + .../pangutext-android/images/theme-toggle.svg | 7 + KDoc/pangutext-android/index.html | 153 ++ KDoc/pangutext-android/navigation.html | 52 + .../configure-pangu-text.html | 80 + .../-pangu-text-view/index.html | 104 ++ .../after-text-changed.html | 80 + .../before-text-changed.html | 80 + .../-pangu-text-watcher/index.html | 134 ++ .../-pangu-text-watcher/on-text-changed.html | 80 + .../index.html | 118 ++ .../-pangu-text-config.html | 80 + .../index.html | 163 ++ .../inject-pangu-text.html | 80 + .../inject-real-time-pangu-text.html | 80 + .../set-hint-with-pangu.html | 80 + .../set-text-with-pangu.html | 80 + .../-companion/index.html | 104 ++ .../-companion/inject.html | 80 + .../-pangu-text-factory2/index.html | 123 ++ .../-pangu-text-factory2/on-create-view.html | 80 + .../-pangu-text-patcher/index.html | 104 ++ .../-pangu-text-patcher/patch.html | 80 + .../index.html | 118 ++ .../-pangu-text-config/cjk-spacing-ratio.html | 80 + .../-pangu-text-config/copy.html | 80 + .../-pangu-text-config/exclude-patterns.html | 80 + .../-pangu-text-config/index.html | 183 ++ .../is-auto-remeasure-text.html | 80 + .../-pangu-text-config/is-enabled.html | 80 + .../is-processed-spanned.html | 80 + .../-pangu-text/format.html | 80 + .../-pangu-text/global-config.html | 80 + .../-pangu-text/index.html | 123 ++ .../index.html | 118 ++ .../pangutext-android/package-list | 41 + KDoc/pangutext-android/scripts/clipboard.js | 56 + KDoc/pangutext-android/scripts/main.js | 44 + .../scripts/navigation-loader.js | 95 ++ KDoc/pangutext-android/scripts/pages.json | 1 + .../scripts/platform-content-handler.js | 400 +++++ KDoc/pangutext-android/scripts/prism.js | 22 + .../scripts/sourceset_dependencies.js | 1 + .../symbol-parameters-wrapper_deferred.js | 64 + .../styles/font-jb-sans-auto.css | 36 + KDoc/pangutext-android/styles/logo-styles.css | 9 + KDoc/pangutext-android/styles/main.css | 124 ++ KDoc/pangutext-android/styles/prism.css | 217 +++ KDoc/pangutext-android/styles/style.css | 1509 +++++++++++++++++ assets/404.html-6Yl8cQE3.js | 1 + assets/404.html-YkmvtGWa.js | 1 + assets/about.html-TshJpOH8.js | 1 + assets/about.html-bq8LJH03.js | 16 + assets/about.html-pwF3sebZ.js | 16 + assets/about.html-y0__MDXj.js | 1 + assets/android.html-C0sED2vr.js | 1 + assets/android.html-XQpTmuqf.js | 171 ++ assets/android.html-er-PlyuE.js | 1 + assets/android.html-qjs2U6CQ.js | 167 ++ assets/app-6WmjFGj_.js | 16 + assets/changelog.html-34En5i-H.js | 1 + assets/changelog.html-ZdZDMp0S.js | 1 + assets/changelog.html-_msERpTv.js | 1 + assets/changelog.html-qt_u2gKo.js | 1 + assets/compose.html-6IPIfrmc.js | 1 + assets/compose.html-Bw78KuUV.js | 1 + assets/compose.html-GjfF5jqY.js | 1 + assets/compose.html-ta_OKiQ7.js | 1 + assets/contacts.html--fNpIi3D.js | 1 + assets/contacts.html-8fmQuQW2.js | 1 + assets/contacts.html-KJJ9aywK.js | 1 + assets/contacts.html-Tyyrr6ry.js | 1 + assets/demo_02-Y1eWnGtu.js | 1 + assets/future.html-H3GTPPFW.js | 1 + assets/future.html-YFngAQwd.js | 1 + assets/future.html-e9RoH0aV.js | 1 + assets/future.html-zvpjuSDl.js | 1 + assets/home.html-3yl9a2Vj.js | 1 + assets/home.html-58uN4FuZ.js | 1 + assets/home.html-DfgIm_Cu.js | 1 + assets/home.html-JcaZNIqz.js | 1 + assets/index.html-EYu-iNkn.js | 1 + assets/index.html-H__tmzTP.js | 1 + assets/index.html-QUZQg0UG.js | 1 + assets/index.html-dAhbvs7X.js | 1 + assets/index.html-hmQ6cGF4.js | 1 + assets/index.html-zXy82L0K.js | 1 + assets/quick-start.html-1kKh8kqs.js | 26 + assets/quick-start.html-SQ1_-HIx.js | 28 + assets/quick-start.html-ddi7SydO.js | 1 + assets/quick-start.html-gd9ccG0P.js | 1 + assets/r8-proguard.html-69xTqe-J.js | 1 + assets/r8-proguard.html-D-RxO_Ql.js | 1 + assets/r8-proguard.html-PqTZGCA2.js | 1 + assets/r8-proguard.html-uJ-Di8s4.js | 1 + assets/style-Rgr8LWAc.css | 1 + en/about/about.html | 49 + en/about/changelog.html | 34 + en/about/contacts.html | 34 + en/about/future.html | 34 + en/config/r8-proguard.html | 34 + en/guide/home.html | 34 + en/guide/quick-start.html | 59 + en/index.html | 34 + en/library/android.html | 204 +++ en/library/compose.html | 34 + images/demo_01.png | Bin 0 -> 34646 bytes images/demo_02.gif | Bin 0 -> 152015 bytes images/demo_02.mov | Bin 0 -> 199468 bytes images/logo.png | Bin 0 -> 31546 bytes index.html | 34 + zh-cn/about/about.html | 49 + zh-cn/about/changelog.html | 34 + zh-cn/about/contacts.html | 34 + zh-cn/about/future.html | 34 + zh-cn/config/r8-proguard.html | 34 + zh-cn/guide/home.html | 34 + zh-cn/guide/quick-start.html | 61 + zh-cn/index.html | 34 + zh-cn/library/android.html | 200 +++ zh-cn/library/compose.html | 34 + 147 files changed, 7725 insertions(+) create mode 100644 .nojekyll create mode 100644 404.html create mode 100644 KDoc/pangutext-android/images/anchor-copy-button.svg create mode 100644 KDoc/pangutext-android/images/arrow_down.svg create mode 100644 KDoc/pangutext-android/images/burger.svg create mode 100644 KDoc/pangutext-android/images/copy-icon.svg create mode 100644 KDoc/pangutext-android/images/copy-successful-icon.svg create mode 100644 KDoc/pangutext-android/images/footer-go-to-link.svg create mode 100644 KDoc/pangutext-android/images/go-to-top-icon.svg create mode 100644 KDoc/pangutext-android/images/homepage.svg create mode 100644 KDoc/pangutext-android/images/logo-icon.svg create mode 100644 KDoc/pangutext-android/images/nav-icons/abstract-class-kotlin.svg create mode 100644 KDoc/pangutext-android/images/nav-icons/abstract-class.svg create mode 100644 KDoc/pangutext-android/images/nav-icons/annotation-kotlin.svg create mode 100644 KDoc/pangutext-android/images/nav-icons/annotation.svg create mode 100644 KDoc/pangutext-android/images/nav-icons/class-kotlin.svg create mode 100644 KDoc/pangutext-android/images/nav-icons/class.svg create mode 100644 KDoc/pangutext-android/images/nav-icons/enum-kotlin.svg create mode 100644 KDoc/pangutext-android/images/nav-icons/enum.svg create mode 100644 KDoc/pangutext-android/images/nav-icons/exception-class.svg create mode 100644 KDoc/pangutext-android/images/nav-icons/field-value.svg create mode 100644 KDoc/pangutext-android/images/nav-icons/field-variable.svg create mode 100644 KDoc/pangutext-android/images/nav-icons/function.svg create mode 100644 KDoc/pangutext-android/images/nav-icons/interface-kotlin.svg create mode 100644 KDoc/pangutext-android/images/nav-icons/interface.svg create mode 100644 KDoc/pangutext-android/images/nav-icons/object.svg create mode 100644 KDoc/pangutext-android/images/nav-icons/typealias-kotlin.svg create mode 100644 KDoc/pangutext-android/images/theme-toggle.svg create mode 100644 KDoc/pangutext-android/index.html create mode 100644 KDoc/pangutext-android/navigation.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android.core/-pangu-text-view/configure-pangu-text.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android.core/-pangu-text-view/index.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android.core/-pangu-text-watcher/after-text-changed.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android.core/-pangu-text-watcher/before-text-changed.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android.core/-pangu-text-watcher/index.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android.core/-pangu-text-watcher/on-text-changed.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android.core/index.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android.extension/-pangu-text-config.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android.extension/index.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android.extension/inject-pangu-text.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android.extension/inject-real-time-pangu-text.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android.extension/set-hint-with-pangu.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android.extension/set-text-with-pangu.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android.factory/-pangu-text-factory2/-companion/index.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android.factory/-pangu-text-factory2/-companion/inject.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android.factory/-pangu-text-factory2/index.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android.factory/-pangu-text-factory2/on-create-view.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android.factory/-pangu-text-patcher/index.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android.factory/-pangu-text-patcher/patch.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android.factory/index.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android/-pangu-text-config/cjk-spacing-ratio.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android/-pangu-text-config/copy.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android/-pangu-text-config/exclude-patterns.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android/-pangu-text-config/index.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android/-pangu-text-config/is-auto-remeasure-text.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android/-pangu-text-config/is-enabled.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android/-pangu-text-config/is-processed-spanned.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android/-pangu-text/format.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android/-pangu-text/global-config.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android/-pangu-text/index.html create mode 100644 KDoc/pangutext-android/pangutext-android/com.highcapable.pangutext.android/index.html create mode 100644 KDoc/pangutext-android/pangutext-android/package-list create mode 100644 KDoc/pangutext-android/scripts/clipboard.js create mode 100644 KDoc/pangutext-android/scripts/main.js create mode 100644 KDoc/pangutext-android/scripts/navigation-loader.js create mode 100644 KDoc/pangutext-android/scripts/pages.json create mode 100644 KDoc/pangutext-android/scripts/platform-content-handler.js create mode 100644 KDoc/pangutext-android/scripts/prism.js create mode 100644 KDoc/pangutext-android/scripts/sourceset_dependencies.js create mode 100644 KDoc/pangutext-android/scripts/symbol-parameters-wrapper_deferred.js create mode 100644 KDoc/pangutext-android/styles/font-jb-sans-auto.css create mode 100644 KDoc/pangutext-android/styles/logo-styles.css create mode 100644 KDoc/pangutext-android/styles/main.css create mode 100644 KDoc/pangutext-android/styles/prism.css create mode 100644 KDoc/pangutext-android/styles/style.css create mode 100644 assets/404.html-6Yl8cQE3.js create mode 100644 assets/404.html-YkmvtGWa.js create mode 100644 assets/about.html-TshJpOH8.js create mode 100644 assets/about.html-bq8LJH03.js create mode 100644 assets/about.html-pwF3sebZ.js create mode 100644 assets/about.html-y0__MDXj.js create mode 100644 assets/android.html-C0sED2vr.js create mode 100644 assets/android.html-XQpTmuqf.js create mode 100644 assets/android.html-er-PlyuE.js create mode 100644 assets/android.html-qjs2U6CQ.js create mode 100644 assets/app-6WmjFGj_.js create mode 100644 assets/changelog.html-34En5i-H.js create mode 100644 assets/changelog.html-ZdZDMp0S.js create mode 100644 assets/changelog.html-_msERpTv.js create mode 100644 assets/changelog.html-qt_u2gKo.js create mode 100644 assets/compose.html-6IPIfrmc.js create mode 100644 assets/compose.html-Bw78KuUV.js create mode 100644 assets/compose.html-GjfF5jqY.js create mode 100644 assets/compose.html-ta_OKiQ7.js create mode 100644 assets/contacts.html--fNpIi3D.js create mode 100644 assets/contacts.html-8fmQuQW2.js create mode 100644 assets/contacts.html-KJJ9aywK.js create mode 100644 assets/contacts.html-Tyyrr6ry.js create mode 100644 assets/demo_02-Y1eWnGtu.js create mode 100644 assets/future.html-H3GTPPFW.js create mode 100644 assets/future.html-YFngAQwd.js create mode 100644 assets/future.html-e9RoH0aV.js create mode 100644 assets/future.html-zvpjuSDl.js create mode 100644 assets/home.html-3yl9a2Vj.js create mode 100644 assets/home.html-58uN4FuZ.js create mode 100644 assets/home.html-DfgIm_Cu.js create mode 100644 assets/home.html-JcaZNIqz.js create mode 100644 assets/index.html-EYu-iNkn.js create mode 100644 assets/index.html-H__tmzTP.js create mode 100644 assets/index.html-QUZQg0UG.js create mode 100644 assets/index.html-dAhbvs7X.js create mode 100644 assets/index.html-hmQ6cGF4.js create mode 100644 assets/index.html-zXy82L0K.js create mode 100644 assets/quick-start.html-1kKh8kqs.js create mode 100644 assets/quick-start.html-SQ1_-HIx.js create mode 100644 assets/quick-start.html-ddi7SydO.js create mode 100644 assets/quick-start.html-gd9ccG0P.js create mode 100644 assets/r8-proguard.html-69xTqe-J.js create mode 100644 assets/r8-proguard.html-D-RxO_Ql.js create mode 100644 assets/r8-proguard.html-PqTZGCA2.js create mode 100644 assets/r8-proguard.html-uJ-Di8s4.js create mode 100644 assets/style-Rgr8LWAc.css create mode 100644 en/about/about.html create mode 100644 en/about/changelog.html create mode 100644 en/about/contacts.html create mode 100644 en/about/future.html create mode 100644 en/config/r8-proguard.html create mode 100644 en/guide/home.html create mode 100644 en/guide/quick-start.html create mode 100644 en/index.html create mode 100644 en/library/android.html create mode 100644 en/library/compose.html create mode 100644 images/demo_01.png create mode 100644 images/demo_02.gif create mode 100644 images/demo_02.mov create mode 100644 images/logo.png create mode 100644 index.html create mode 100644 zh-cn/about/about.html create mode 100644 zh-cn/about/changelog.html create mode 100644 zh-cn/about/contacts.html create mode 100644 zh-cn/about/future.html create mode 100644 zh-cn/config/r8-proguard.html create mode 100644 zh-cn/guide/home.html create mode 100644 zh-cn/guide/quick-start.html create mode 100644 zh-cn/index.html create mode 100644 zh-cn/library/android.html create mode 100644 zh-cn/library/compose.html diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..efede6e --- /dev/null +++ b/404.html @@ -0,0 +1,34 @@ + + +
+ + + + + +The PanguText config interface.
Configure the PanguText.
A TextWatcher that automatically applies PanguText to the text content.
You don't need to create it manually, use TextView.injectRealTimePanguText instead.
The PanguText config interface.
A TextWatcher that automatically applies PanguText to the text content.
Create a new instance of PanguTextConfig.
whether to copy the PanguText.globalConfig, default is true.
the configuration body.
Inject PanguText to the current text content once.
Inject PanguText to the current text content in real time.
Create a new instance of PanguTextConfig.
Use PanguText.format to format the hint text content.
Use PanguText.format to format the text content.
Inject PanguText to the current text content once.
whether to apply TextView.setHint, default is true.
the configuration of PanguText.
Inject PanguText to the current text content in real time.
Note: Repeated inject will be ignored unless the current TextView is detached.
whether to apply TextView.setHint, default is true.
the configuration of PanguText.
Use PanguText.format to format the hint text content.
the text content.
the configuration of PanguText.
Use PanguText.format to format the text content.
the text content.
the configuration of PanguText.
Inject PanguTextFactory2 to the current LayoutInflater of context.
Inject PanguTextFactory2 to the current LayoutInflater.
Inject PanguTextFactory2 to the current LayoutInflater of context.
Simple Usage:
class MainActivity : AppCompactActivity() {
val binding by lazy { ActivityMainBinding.inflate(layoutInflater) }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Inject here.
PanguTextFactory2.inject(this)
setContentView(binding.root)
}
}
Traditional Usage:
class MainActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Inject here.
PanguTextFactory2.inject(this)
setContentView(R.layout.activity_main)
}
}
Usage with BetterAndroid's AppBindingActivity:
class MainActivity : AppBindingActivity<ActivityMainBinding>() {
override fun onPrepareContentView(savedInstanceState: Bundle?): LayoutInflater {
val inflater = super.onPrepareContentView(savedInstanceState)
// Inject here.
PanguTextFactory2.inject(inflater)
return inflater
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Your code here.
}
}
the current context.
Inject PanguTextFactory2 to the current LayoutInflater.
the current inflater.
Patcher for PanguText.
Patch PanguText to the view.
Pangu text factory 2 for LayoutInflater.Factory2.
Patcher for PanguText.
The CJK spacing ratio, default is DEFAULT_CJK_SPACING_RATIO.
The larger the value, the smaller the spacing, and cannot be less than 0.1f.
It is recommended to adjust with caution, it will only affect the spacing of CJK characters.
Copy the current configuration.
the configuration body.
The regular expression for text content that needs to be excluded. PanguText processing will be skipped after matching these texts.
Usage:
val config: PanguTextConfig
// Exclude all URLs.
config.excludePatterns.add("https?://\\S+".toRegex())
// Exclude emoji symbol placeholder like "[doge]".
config.excludePatterns.add("\\[.*?]".toRegex())
The PanguText configuration.
The CJK spacing ratio, default is DEFAULT_CJK_SPACING_RATIO.
The regular expression for text content that needs to be excluded. PanguText processing will be skipped after matching these texts.
Whether to automatically re-measure the text width after processing.
Processed Spanned text (experimental).
Whether to automatically re-measure the text width after processing.
Note: PanguText after injecting text and changing the text, the width of TextView will not be calculated automatically. At this time, this feature will call TextView.setText to re-execute the measurements, which can fix every time in some dynamic layouts (such as RecyclerView
) changes in text width, but may cause performance issues, you can choose to disable this feature. To prevent unnecessary performance overhead, this feature only takes effect on TextView with maxLines
set to 1 or singleLine
.
Processed Spanned text (experimental).
Note: This feature is in experimental stage and may not be fully supported, if the text is not processed correctly, please disable this feature.
Use PanguText to format specified text.
PanguText will automatically set PanguMarginSpan for some characters in the text to achieve white space typesetting effect without actually inserting any characters or changing the length of the original text.
This function will insert a style for the current given text without actually changing the string position in the text. If the current text is of type Spannable, it will return the original unmodified object, otherwise it will return the wrapped object SpannableString after.
Note: Processed Spanned text is in experimental stage and may not be fully supported, if the text is not processed correctly, please disable PanguTextConfig.isProcessedSpanned.
the current resources.
the text size (px).
text to be formatted.
the configuration of PanguText.
Use PanguText to format the current text content.
Using this function will add extra whiteSpace as character spacing to the text, changing the length of the original text.
Note: Processed Spanned text is in experimental stage and may not be fully supported, if the text is not processed correctly, please disable PanguTextConfig.isProcessedSpanned.
text to be formatted.
the spacing character, default is 'U+200A'.
the configuration of PanguText.
The global configuration of PanguText.
The global configuration of PanguText.
Use PanguText to format the current text content.
Use PanguText to format specified text.
This document is powered by VuePress.
Apache License Version 2.0
+
+Copyright (C) 2019 HighCapable
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
Copyright © 2019 HighCapable