游客你好,登录后能编辑wiki哦!

全站通知:

用户:123855714/BwikiBatchEditor.js

来自异星工厂WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Internet Explorer或Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
  • Opera:Ctrl-F5
/*
** BwikiBatchEditor
** Author:马小萌
** Bilibili:https://space.bilibili.com/123855714
**/
"use strict";
$(function() {
    var mw=mediaWiki;
    var css=`
.BE-avatar{display: block; position: relative; box-sizing: border-box; flex-shrink: 0; color: #fff; background-image: linear-gradient(180deg,hsla(0,0%,100%,.5),hsla(0,0%,100%,0));}
.BE-avatar, .BE-avatar_image{border-radius: 100%;}
.BE-avatar_monogram{text-align: center; font-weight: 700; white-space: nowrap;}
.BE-button{display: block; visibility: visible; cursor: pointer; opacity:.1;}
.BE-button:hover{opacity:1;transition: opacity .2s ease;}
.BE-button_theme_dark.BE-button_hidden,
.BE-button_theme_light.BE-button_hidden{opacity: 0; transition-delay: 0s;}
.BE-button_theme_dark,
.BE-button_theme_light{position: relative; transition: opacity .32s ease .08s;}
.BE-button_theme_light .BE-button_container{background-color: #fff;}
.BE-button_container{display: flex; overflow: hidden; align-items: center; cursor: pointer;vertical-align: top; white-space: nowrap; padding-left: 8px; padding-right: 8px; height: 40px; max-width: 280px; transition: padding .4s ease,max-width .4s ease; transform-origin: 100% 50%; border-radius: 24px; box-sizing: border-box;}
.BE-header{position: relative;width: 100%;height: 49px;border-bottom: 1px solid #e6ebf1;background-color: #f3f5f8;visibility: hidden; display: block; transition: visibility .4s ease}
.BE-header_close{position: absolute;top: 0;right: 0;width: 48px;height: 100%;cursor: pointer;opacity: .8;background: url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M17.566 17.566a.8.8 0 000-1.132L13.13 12l4.435-4.434a.8.8 0 10-1.132-1.132L12 10.87 7.566 6.434a.8.8 0 10-1.132 1.132L10.87 12l-4.435 4.434a.8.8 0 001.132 1.132L12 13.13l4.434 4.435a.8.8 0 001.132 0z' fill='%23919CB5'/%3E%3C/svg%3E") no-repeat 50%;background-size: 50%}
.BE-header_close:hover{opacity: 1}
.BE-header_text{font-size: 16px;font-weight: 500;line-height: 48px;overflow: hidden; box-sizing: border-box;width: 100%;max-width: 100%;padding: 0 48px 0 16px;white-space: nowrap;text-overflow: ellipsis;color: #333;}
.BE-header_text h3{display:inline;font-size: 12px;background-color: red;color: #ffffff;border-radius: 12px;padding: 1px 6px;line-height: normal;margin:0;cursor: pointer;}
.BE-header_visible{visibility: visible;transition-delay: 0s}
.BE-icon{position: relative; width: 24px; height: 24px; flex: none; cursor: pointer; color: #4e66ff;margin: 0;background:transparent url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAABHoWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE5LTEwLTI0VDEyOjAwOjI5KzA4OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMjAtMDYtMjhUMDE6Mzg6NTQrMDg6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDIwLTA2LTI4VDAxOjM4OjU0KzA4OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOlRleHRMYXllcnM+CiAgICAgICAgICAgIDxyZGY6QmFnPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHBob3Rvc2hvcDpMYXllck5hbWU+QkU8L3Bob3Rvc2hvcDpMYXllck5hbWU+CiAgICAgICAgICAgICAgICAgIDxwaG90b3Nob3A6TGF5ZXJUZXh0PkJFPC9waG90b3Nob3A6TGF5ZXJUZXh0PgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6QmFnPgogICAgICAgICA8L3Bob3Rvc2hvcDpUZXh0TGF5ZXJzPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjExMmEyMDM2LTRjMGEtM2U0NC04MWQ5LWE3MWM2Y2Y0YjQ5NjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjEyM2I1NGUxLWI4OWQtMTFlYS1hYjNkLWRkZTNlMjg2NjEyYjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjNhZmQ1NTgxLWYwMzgtMmM0NC04ODUzLTM2YTMwOTU4YjFjMzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDozYWZkNTU4MS1mMDM4LTJjNDQtODg1My0zNmEzMDk1OGIxYzM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTktMTAtMjRUMTI6MDA6MjkrMDg6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE0IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6YjEzYTM5YjMtZmVjNy0xNTRmLTk2MjEtYmMxOTc4YzU0ZTJhPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE5LTExLTA4VDE0OjU4OjMyKzA4OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNCAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjMxMzNiMGQwLTUzYzYtODk0Mi05YzFjLWNkZjM1MjhiZWFmZjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAyMC0wNS0yOVQwOTo1OToyMSswODowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y29udmVydGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpwYXJhbWV0ZXJzPmZyb20gaW1hZ2UvcG5nIHRvIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3A8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5kZXJpdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpwYXJhbWV0ZXJzPmNvbnZlcnRlZCBmcm9tIGltYWdlL3BuZyB0byBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wPC9zdEV2dDpwYXJhbWV0ZXJzPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo0NGE0MTI2OC01MjE0LWJkNGItYjM2Ny1hMTc5MjdiM2FkZWE8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMjAtMDUtMjlUMDk6NTk6MjErMDg6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6MjM3ZmQ3YjItOTNmNi03NTQxLWI0YzEtMGQyMzE0MDc0YWU0PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDIwLTA2LTI4VDAxOjM4OjU0KzA4OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjExMmEyMDM2LTRjMGEtM2U0NC04MWQ5LWE3MWM2Y2Y0YjQ5Njwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAyMC0wNi0yOFQwMTozODo1NCswODowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDx4bXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxzdFJlZjppbnN0YW5jZUlEPnhtcC5paWQ6MjM3ZmQ3YjItOTNmNi03NTQxLWI0YzEtMGQyMzE0MDc0YWU0PC9zdFJlZjppbnN0YW5jZUlEPgogICAgICAgICAgICA8c3RSZWY6ZG9jdW1lbnRJRD5hZG9iZTpkb2NpZDpwaG90b3Nob3A6ZmFjOGM4ZDQtYTE0Zi0xMWVhLThjOTgtZDEzYWFiNGRmM2ZkPC9zdFJlZjpkb2N1bWVudElEPgogICAgICAgICAgICA8c3RSZWY6b3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6M2FmZDU1ODEtZjAzOC0yYzQ0LTg4NTMtMzZhMzA5NThiMWMzPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8++5n3IwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAEzElEQVR42qxX3W9URRT/nbmzu2237TaR2u1d6G1rMIYPeUAeSH1CNCTQAjHExI9SiIYP45sxkfAXGN8BH1DQhEQUQwuGlMREkwYMYqJdjJFYuia9ZV0jdLu3dO/emeMDu9v96N7dUk8yyZ2TM3N+c+bcc+ZHP3X3oJZoZoQN42UNXLNz7m8C0AR/IQYUQUQDwQ0GsMtR6rqg2qukn/OIlIOKaPRicmb4oZe71UEiqME1d9MAmojY0dqVMrDtja7YeIRoaM7zxmqBoOUiUHDOJEZP24mBVuapfU+b33msmxSzbwQMIgRJLF76296RIeo/aloTxLomiCoApc5P2dPbWxlTIzErqUDIaoXCFgxAEoFA8FgX1zOAkDAgwfh0JtGVIfQfM3tv1AIh/Jy3Me4dillJlxnpnIuc1nDzQzEjk8thQXnIqSV9Tmukcy6yzDgUs5JtjHun7OntmsRoRMpBXRFB4ed8JGbdzzLD8TxUItfMMMTj5aVZIUAgIjiehywzRmLW/XbGvTM1QIgnce4nGgwDBFEBIlIDhKjnnIhAAALCaBhIITIFEI+YMVwCQpWAoDux3j0kxNgn9l8Drcx/Vp6cABAJ6JJEW6loZrRIiWYifD6TiGaInhnp7pkg1oM0GevjL1P2m+x510diVrLg/Lnr36Jt06aqzZSzgORXX2P2w5NF3bPjV5e1BQA3lcLklhdKQAhcsBNRJeXOVzu7vxC2m72bdrMX93d23/FAxZOrjLN8eMMtMA++Bev82aIuez9Z+zpawsXrWPA8uAB2rYnG57KLF203e1cIghMxjM05sJfVqnjPXibjG9Y1O1+C7FlbPx/CLUsZTwRXK3hgL2wYmwlwBAFCA55iflQrxeJ79+O2aeH3w++U6VteHKiyvfv+B7htWmWjrPIBUMyPGPAIEGKlCaWchaXvfx9UN5eOjvI5ETR45c2oVDZd/qZKtzA9DefaeJW+7+QJ9J08UZzPx+P445XdNfcWT/pr/TN2tSE7vwRdFYDY4UMNJWE9aQhAIbHie/fDTaWK2d2+Z3fdJEwMH64PgBtEm731M9K//Fqch9atW30ECIBEYzVe9qxF+5bnfW1CllWl8zugYEAHiKQkaq5luP7jj7DVTmDLzQkEOzuL+vT3P1TZ9rz3LrbaibIRef21MjAGUbMAJANaKOZw0stNSpAMCQOFNhmKdvmedD4eL/6GsrXVv3bk64VmRkgYCIDknFKTmhEWZrBpfUcwdOByanZjAIywlNB13n0Pb/6IqbePLJXb1rCvvXNt/PELW0pIMC6lZje2B0MHzGBofVk7bsu348UneIjUa8dhKdFEhLP5dnzE7JlgrQeFo9QVg3noiGlNpAl952YS0WYitDQQiUal1Pk8oe+YaU0YzEOOUleEIMKc540J1kNHzd4bc4S+z/Igwv8DiGbDKHN+vOKFLAptshLEuZlEtGmVIOo5L6uEtUCsJBKBfHPVzA059yUmmsToaXt6eztj6mDMSnoVxIRAMIjAzNDgYrGpJCbzhP7jPsTEl5ppEqNn7MRAe56auQ1SswCJxbHU7I4H4P5jZu/KqNly5PRCcmY47eVuReqQ0wI/XmDtPiWD2/Z1mecl88rJ6WroOT8ewgyENhC4Lj3/bwA8dg4Rqli+2gAAAABJRU5ErkJggg==") no-repeat 50% 50%/cover;}
.BE-list-item{position: relative; display: flex; flex-flow: row nowrap; align-items: center; min-width: 354px;min-height:84px; color: #292c33;}
.BE-list-item:hover,
.BE-list-item:hover:after,
.BE-list-item:after{background-color: #f0f0f5;}
.BE-list-item_avatar{padding: 0 12px;}
.BE-list-item_badge{ flex: 0 0 auto;margin-left: auto;color: #919cb5; align-self: center;}
.BE-list-item_body{ display: flex; flex-flow: row nowrap; font-size: 14px; line-height: 17px;}
.BE-list-item_content{ display: flex; align-items: center; position: relative; flex: 1 1 auto; align-self: stretch; overflow: hidden;}
.BE-list-item_content textarea{display:inline;width: 100%;height: 100%;min-height:100px;padding: 7px 8px;background:transparent;border: 0;border-radius: 4px;resize: vertical;font-size: 14px;line-height: 22px; box-sizing: border-box; transition: height .3s ease-in-out; }
.BE-list-item_date{ flex-shrink: 0; color: #919cb5; font-size: 10px;}
.BE-list-item_details{position: relative; flex: 1 1 100%; min-width: 0; padding: 6px 10px 0 0; box-sizing: border-box;}
.BE-list-item_header{ display: flex; flex-flow: row nowrap; align-items: center;}
.BE-list-item_icon{ flex-shrink: 0;}
.BE-list-item_message{ flex: 1 1 auto; height: 34px; color: #919cb5; word-wrap: break-word; position: relative; overflow: hidden; }
.BE-list-item_name,
.BE-list-item_position{overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
.BE-list-item_name{ flex-grow: 1; font-size: 14px; font-weight: 500; line-height: 20px; margin-right: 8px;}
.BE-list-item_status {color: #1c70c4;font-size: 0;margin-right: 2px;}
.BE-popup{z-index: 10010; display: flex; visibility: hidden; flex-direction: column; user-select: none; opacity: 0; flex: 1 1 auto; align-items: center; justify-content: center; transition: opacity .32s ease .08s,visibility 0s ease .4s;}
.BE-popup_theme_dark.BE-popup_desktop.BE-popup_visible,
.BE-popup_theme_light.BE-popup_desktop.BE-popup_visible{transition-delay: 0s,.24s,0s;}
.BE-popup_theme_dark.BE-popup_desktop,
.BE-popup_theme_light.BE-popup_desktop{overflow: hidden; width: 100%; height: 100%; border-radius: inherit; transition-duration: .4s,.16s,0s;}
.BE-popup_theme_dark,
.BE-popup_theme_hidden.BE-popup_mobile,
.BE-popup_theme_legacy.BE-popup_mobile,
.BE-popup_theme_light{transition-timing-function: ease,ease-in,ease; transition-property: transform,opacity,visibility; transition-delay: 0s,0s,.4s;}
.BE-popup_visible{visibility: visible;opacity: 1; transition-delay: 0s; transform: translateY(0)}
.BE-popup_position_static{position: absolute; bottom: 0;}
.BE-popup:before{position: absolute; top: 0; right: 0; bottom: 0; left: 0; content: ""; background: #fff;}
.BE-widget:not(.ya-chat-widget_visible) {z-index: 999999;}
.BE-widget_theme_dark.BE-widget_desktop.BE-widget_visible,
.BE-widget_theme_light.BE-widget_desktop.BE-widget_visible{width: 666px; height: 888px; max-width: calc(100vw - 40px); max-height: calc(100vh - 70px); box-shadow: 0 10px 20px -5px rgba(0,0,0,.4), 0 0 0 1px rgba(0,0,0,.06); border-radius: 8px;}
.BE-widget_theme_dark.BE-widget_desktop,
.BE-widget_theme_light.BE-widget_desktop{max-height: calc(100vh - 40px);}
.BE-widget_theme_dark.BE-widget_desktop,
.BE-widget_theme_light.BE-widget_desktop{display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; min-width: 40px; height: 40px; box-shadow: 0 6px 20px -5px rgba(0,0,0,.1), 0 0 0 1px rgba(0,0,0,.06); border-radius: 24px; transition: min-width .4s ease,height .4s ease,max-height .4s ease,box-shadow .4s ease,border-radius .4s ease;}
.BE-widget_theme_dark,
.BE-widget_theme_light{position: fixed; top: auto; left: 20px; bottom: 20px; z-index: 999999;}
.BE-widget_mount{position: relative; flex: 1 1; width: 100%; visibility: hidden; transition: visibility .4s ease;}
.BE-widget_mount::-webkit-scrollbar{width:6px;height:6px}
.BE-widget_mount::-webkit-scrollbar-track{background-color:rgba(0,0,0,0)}
.BE-widget_mount::-webkit-scrollbar-thumb{border-radius:10px;background-color:rgba(240,240,240,.8)}
.BE-widget_mount{transform: translate3d(0px, 0px, 0px);overflow-y:scroll;}
.BE-widget_mount_visible{visibility: visible; transition-delay: 0s}
.BE-virtual-list_content .hr:before{content: ""; position: absolute; left: 0; top: 0; right: 0; height: 1px; background-color: #f0f0f5;}
.BE-virtual-list_content{backface-visibility: hidden; position: absolute; left: 0; right: 0; padding: inherit;}
#BE_Panel input[type="checkbox"].switch_1{font-size: 10px; -webkit-appearance: none; appearance: none;width: 3.5em;height: 1.5em;background: #ddd;border-radius: 3em;position: relative;cursor: pointer;outline: none;opacity:1; transition: all .2s ease-in-out;}
#BE_Panel input[type="checkbox"].switch_1:checked{background: #23da87;}
#BE_Panel input[type="checkbox"].switch_1:checked:after{left: calc(100% - 1.5em);}
#BE_Panel input[type="checkbox"].switch_1:after{position: absolute;content: "";width: 1.5em;height: 1.5em;border-radius: 50%;background: #fff; box-shadow: 0 0 .25em rgba(0,0,0,.3); transform: scale(.7);left: 0; transition: all .2s ease-in-out;}
#BE_Panel em,#BE_Panel a:link,#BE_Panel a:visited{text-decoration: none!important;border: 0px solid transparent;}
dt{line-height: 1.8;overflow: hidden;margin: .8em 0;word-wrap: break-word;word-break: break-all}
#contextmenu{display:none;background:#fff;border: 1px solid #ccc;position: fixed;box-shadow: 2px 2px 12px rgba(0,0,0,.3);padding: 3px 0;transition: all .1s ease;z-index:999999;}
#contextmenu li{list-style: none;}
#contextmenu li a{display: inline-block;text-decoration: none;color: #000;width: 100%;font-size:10px;padding: 3px 5px;text-align: center;}
#contextmenu li a:hover,
#contextmenu li a:active {background: #3b9bff;color: #fff;}
#menur li:hover a {color: #00b6ff;}
#menur [aria-expanded='true'] span {color: #0066ff;}
#menur .btn:hover span {color: #00b6ff;}
`,js=`
function attr(obj,str){
	if(obj&&obj.className.indexOf(str)>-1){
		obj.className=obj.className.replace(eval('/[ ]'+str+'/gi'),'');
	}else{
		obj.className+=' '+str
	}
}
function BEvisible(){
	attr(document.querySelector('.BE-widget'),'BE-widget_visible');
	attr(document.querySelector('.BE-button'),'BE-button_hidden');
	attr(document.querySelector('.BE-popup'),'BE-popup_visible');
	attr(document.querySelector('.BE-header'),'BE-header_visible');
	attr(document.querySelector('.BE-widget_mount'),'BE-widget_mount_visible');
}
function BE_DB(obj){
	var db=JSON.parse(window.localStorage.getItem('BE'));
	if(db){
		obj.checked==true||obj.checked==false?(db[obj.name]=obj.checked):(db[obj.name]=obj.value);
		$("#reset").css("background","red");
	}
	localStorage.setItem('BE',JSON.stringify(db));
}
function BE_Submit(){
    $("#submit").attr("disabled","disabled");
    try{
        var params = JSON.parse($("#data").val());
        var content = $("#content").val();
        let data = {
            "action":"edit",
            "title":"",
			"summary":"批量编辑 by BwikiBatchEditor",
			"text":"",
			"utf8":"",
			"format":"json",
			"token":mediaWiki.user.tokens.values.csrfToken
		};
        var count=Object.keys(params).length;
        var i=0;
        for(let param in params){
            data["title"]=param;
            data["text"]=content;
            for(let v in params[param]){
                data["text"]=data["text"].replace(new RegExp("__"+v+"__","g"),params[param][v]);
            }
            $.ajaxSettings.async = false;
            $.post(mediaWiki.config.values.wgServer+mediaWiki.config.values.wgScript.replace("index","api"),data,function(result){
                i++;
                console.log(i+"/"+count,result);
            });
        }
    }catch(e){
        console.log(e);
        alert("数据格式错误!");
    }
    $("#submit").removeAttr("disabled");
}
`,html=`
<a href="javascript:BEvisible()" target="_top" class="BE-button BE-button_theme_light">
	<div class="BE-button_container"><div class="BE-icon"></div></div>
</a>
<div class="BE-popup BE-popup_position_static BE-popup_desktop BE-popup_theme_light">
	<div class="BE-header">
		<div class="BE-header_text"><a href="https://wiki.biligame.com/factorio/User:123855714/BwikiBatchEditor" target="_blank" title="使用说明">BwikiBatchEditor</a> <h3 onclick="window.localStorage.removeItem(\'BE\');window.location.reload()">初始化</h3> <h3 id="reset" style="background-color: #ddd" onclick="window.location.reload()">刷新页面</h3> <span title="按F12打开Console可查看批量编辑进度">(按F12打开Console可查看批量编辑进度。)</span></div>
		<div class="BE-header_close" onclick="BEvisible()"></div>
	</div>
	<div class="BE-widget_mount"><div class="BE-virtual-list_content">	</div></div>
</div>
<ul id="contextmenu">
  <li><a href="#">转到页面</a></li>
  <li><a href="#">编辑页面</a></li>
  <li><a href="#" onclick="document.execCommand('cut', false, null)">剪切</a></li>
  <li><a href="#" onclick="document.execCommand('copy', false, null)">复制</a></li>
  <li><a href="#" onclick="document.execCommand('paste', false, null)">粘贴</a></li>
</ul>
`;
    var BE={
    	contextmenu:function(){
			$(document).bind("contextmenu",function(e){
				if(window.getSelection().toString()==""){
					return true;
				}else{
					$("#contextmenu").css("left",e.clientX + 'px');
					$("#contextmenu").css("top",e.clientY + 'px');
					$("#contextmenu li:eq(0) a").html(`转到 [[${window.getSelection().toString()}]]`);
					$("#contextmenu li:eq(0) a").attr("href",BE.path(window.getSelection().toString()));
					$("#contextmenu li:eq(1) a").html(`转到 [[模板:${window.getSelection().toString()}]]`);
					$("#contextmenu li:eq(1) a").attr("href",BE.path("模板:"+window.getSelection().toString()));
					$("#contextmenu").show();
					return false;
				};
			});
			$(document).mouseup(function(e){
				if(e.ctrlKey||e.altKey||e.shiftKey)return;
				if(e.button!=2){
					$("#contextmenu").hide();
				};
			});    		
    	},
        DB:{
			set:function(v){
                localStorage.setItem(BE.id,JSON.stringify(v))
            },
			get:function(){
                return JSON.parse(localStorage.getItem(BE.id))
            }
		},
        display:function(n, b){
            b?$(n).show():$(n).hide();
        },
        host:function(u){
			return window.location.href.indexOf(u)>-1
		},
		path:function(n){
			return mw.config.values.wgScriptPath+"/"+n;
		},
        id:"BE",
        init:function(){
            if(top!=self)return;
			this.DB.get()==null&&this.DB.set({
				debug:true,
                data:'',
                content:'',
				bg:true,
                catlinks:false,
                firstHeading:true,
                firstHeadingTools:true,
                biliContributors:false,
                redirectedfrom:false,
                menuleft:false,
                menuright:true,
                contextmenu:false,
                difference:true,
                preview:true
			});
			var opts=this.DB.get();
            opts.bg?{}:$("body").css("background","#fed");
            this.display("#catlinks",opts.catlinks);
            this.display("#firstHeading",opts.firstHeading);
            this.display("#firstHeadingTools",opts.firstHeadingTools);
            $("#biliContributors").css("display",opts.biliContributors?"flex":"none");
            this.display(".mw-redirectedfrom",opts.redirectedfrom);
            this.menu();
            opts.contextmenu?this.contextmenu():{};
            this.display("#menul",opts.menuleft);
            this.display("#menur",opts.menuright);
            if(opts.difference){
                $("a:contains('差别')").each(function(){
                    $(this).append($(`<img style="height:30px" src="${$(this).attr("href").replace(/^(.+=show)(.+)/,"$1img$2&thumb=1")}">`))
                });
            }
            if(opts.preview){
                $("a:contains('文件:')").each(function(){
                    if(instr($(this).attr("title"),"不存在")<=0){
                        $(this).append($(`<img style="height:30px" src="${$(this).attr("href").replace(/(.+?\/)[^\/]+?([^:]+)$/,"$1Special:Redirect/file/$2")}?thumb=1">`))
                    }
                });
            }
            this.panel(opts);
            console.log("BwikiBatchEditor:加载完成!");
        },
        menu:function(){
            var menul = $("<ul id='menul' class='menu'>").appendTo("body");
            menul.append('<li id="wiki"><a href="/wiki" target="_blank"><div style="position: relative;width:24px;height:24px;display: inline-block;vertical-align: middle;overflow: hidden; margin-right:8px"><img src="//patchwiki.biligame.com/resources/assets/images/logo/logo_wiki.png" style="position: absolute;top: -9px;left: 0px;height: 37px;max-width:inherit!important;"></div>官方聚合</a></li>');
            menul.append('<li id="bh3"><a href="/bh3" target="_blank"><img src="/wiki/Special:Redirect/file/bh3_icon.png">崩坏3</a></li>');
            menul.append('<li id="blhx"><a href="/blhx" target="_blank"><img src="/wiki/Special:Redirect/file/碧蓝航线_icon.png">碧蓝航线</a></li>');
            menul.append('<li id="alterna"><a href="/alterna" target="_blank"><img src="/wiki/Special:Redirect/file/alterna_icon.png">妃十三学园</a></li>');
            menul.append('<li id="fzzl"><a href="/fzzl" target="_blank"><img src="/wiki/Special:Redirect/file/方舟指令_icon.png">方舟指令</a></li>');
            menul.append('<li id="pcr"><a href="/pcr" target="_blank"><img src="/wiki/Special:Redirect/file/pcr_icon.png">公主连结</a></li>');
            menul.append('<li id="soulworker"><a href="/soulworker" target="_blank"><img src="/wiki/Special:Redirect/file/soulworker_icon.png">灵魂武器</a></li>');
            menul.append('<li id="oni"><a href="/oni" target="_blank"><img src="/wiki/Special:Redirect/file/oni_icon.png">缺氧</a></li>');
            menul.append('<li id="factorio"><a href="/factorio" target="_blank"><img src="/wiki/Special:Redirect/file/factorio_icon.png">异星工厂</a></li>');
            menul.append('<li id="factorio"><a href="/lol" target="_blank"><img src="/wiki/Special:Redirect/file/lol_icon.png">英雄联盟</a></li>');
            menul.append('<li id="tft"><a href="/tft" target="_blank"><img src="/wiki/Special:Redirect/file/tft_icon.png">云顶之弈</a></li>');
            menul.css("left","120px");
            menul.find("li>a>img").css({
                "width":"24px",
                "margin-right":"8px"
            });
            var menur = $(`
<div id="menur" class="btn-group-vertical" role="group">
  <div class="btn-group">
    <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" title="用户快捷菜单">
      <span class="glyphicon glyphicon-menu-hamburger" aria-hidden="true"></span> <span class="caret"></span>
    </button>
    <ul class="dropdown-menu">
      <li id="pt-user"><a href="${this.path("User:")}${UserStatus.userInfo.mid}" target="_blank" dir="auto" title="您的用户页[alt-shift-.]" accesskey="."><span class="glyphicon glyphicon-user" aria-hidden="true"></span> 用户页</a></li>
      <li id="pt-preferences"><a href="${this.path("Special:Preferences")}" target="_blank" title="您的设置"><span class="glyphicon glyphicon-cog" aria-hidden="true"></span> 参数设置</a></li>
      <li role="separator" class="divider"></li>
      <li id="pt-mycontris"><a href="${this.path("Special:用户贡献/")}${mw.config.values.wgUserName}" target="_blank" title="您的贡献的列表[alt-shift-y]" accesskey="y">贡献</a></li>
      <li id="pt-watchlist"><a href="${this.path("Special:监视列表")}" target="_blank" title="您正在监视更改的页面的列表[alt-shift-l]" accesskey="l">监视列表</a></li>
    </ul>
  </div>
  <div class="btn-group">
    <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" title="WIKI功能">
      <span class="glyphicon glyphicon-wrench" aria-hidden="true"></span> <span class="caret"></span>
    </button>
    <ul class="dropdown-menu">
      <li id="ca-delete"><a href="${this.path(mw.config.values.wgPageName+"?action=delete")}" title="删除本页[alt-shift-d]" accesskey="d"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span> 删除</a></li>
      <li id="ca-move"><a href="${this.path(mw.config.values.wgPageName+"?action=protect")}" title="保护本页[alt-shift-=]" accesskey="="><span class="glyphicon glyphicon-lock" aria-hidden="true"></span> 保护</a></li>
      <li id="ca-purge" class=""><a href="${this.path(mw.config.values.wgPageName+"?action=purge")}"><span class="glyphicon glyphicon-refresh" aria-hidden="true"></span> 刷新</a></li>
      <li id="ca-flowthreadcontrol"><a href="${this.path(mw.config.values.wgPageName+"?action=edit")}" title="编辑本页[alt-shift-e]" accesskey="e"><span class="glyphicon glyphicon-edit" aria-hidden="true"></span> 编辑</a></li>
      <li id="ca-history"><a href="${this.path(mw.config.values.wgPageName+"?action=history")}" title="本页面过去的版本[alt-shift-h]" accesskey="h">查看历史</a></li>
      <li id="ca-unwatch" class="icon mw-watchlink"><a href="${this.path(mw.config.values.wgPageName+"?action=unwatch")}" data-mw="interface" title="从您的监视列表移除本页面[alt-shift-w]" accesskey="w">取消监视</a></li>
      <li id="t-smwbrowselink"><a href="${this.path("Special:浏览/")}${mw.config.values.wgPageName}" rel="search">浏览属性</a></li>
    </ul>
  </div>
  <div class="btn-group">
    <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" title="页面工具">
      <span class="glyphicon glyphicon-file" aria-hidden="true"></span> <span class="caret"></span>
    </button>
    <ul class="dropdown-menu">
      <li id="t-short" class="btn-info"><a href="${this.path("?curid=")}${mw.config.values.wgArticleId}">本页短连接</a></li>
      <li id="t-linkin"><a href="${this.path("Special:链入页面/")}${mw.config.values.wgPageName}">链入页面</a></li>
      <li id="t-linkout"><a href="${this.path("Special:最近链出更改?hidebots=1&target=")}${mw.config.values.wgPageName}">相关更改</a></li>
      <li id="t-pagelog"><a href="${this.path("Special:日志?page=")}${mw.config.values.wgPageName}">页面日志</a></li>
      <li id="t-info"><a href="${this.path(mw.config.values.wgPageName+"?action=info")}" title="关于此页面的更多信息">页面信息</a></li>
    </ul>
  </div>
  <div class="btn-group">
    <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" title="特殊页面">
      <span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span> <span class="caret"></span>
    </button>
    <ul class="dropdown-menu">
      <li id="pt-filelist"><a href="${this.path("Special:文件列表")}" target="_blank" title="文件列表">文件列表</a></li>
      <li id="st-lastchange"><a href="${this.path("Special:最近更改")}" target="_blank">最近更改</a></li>
      <li id="st-timeless"><a href="${this.path("Special:特殊页面")}" target="_blank">特殊页面</a></li>
      <li id="pt-moderation"><a href="${this.path("Special:Moderation")}" target="_blank" title="版主审核">版主审核</a></li>
      <li id="pt-flowthread"><a href="${this.path("Special:管理FlowThread评论")}" target="_blank" title="管理评论">管理评论</a></li>
    </ul>
  </div>
  <div class="btn-group">
    <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" title="快捷链接">
      <span class="glyphicon glyphicon-link" aria-hidden="true"></span> <span class="caret"></span>
    </button>
    <ul class="dropdown-menu">
      <li id="t-css"><a href="${this.path("MediaWiki:Common.css")}" target="_blank">Common.css</a></li>
      <li id="t-js"><a href="${this.path("MediaWiki:Common.js")}" target="_blank">Common.js</a></li>
      <li id="t-sidebar"><a href="${this.path("MediaWiki:Sidebar")}" target="_blank">Sidebar</a></li>
      <li id="t-sitenotice"><a href="${this.path("MediaWiki:Sitenotice")}" target="_blank">全站公告</a></li>
      <li id="st-timeless"><a href="?useskin=timeless" target="_blank">Timeless样式</a></li>
    </ul>
  </div>
  <button id="gotop" type="button" class="btn btn-default" title="返回顶部" disabled>
      <span class="glyphicon glyphicon-triangle-top" aria-hidden="true"></span>&nbsp;
  </button>
</div>`).appendTo("body").css({
				"position":"fixed",
				"top":"350px",
				"right":parseInt($("body").width()<800?0:($("body").width()-$(".game-bg").width())/2-112),
				"background": "#ccc",
				"border-radius": "4px",
				"box-shadow": "3px 4px 12px 0px rgba(0, 0, 0, 0.3)",
				"z-index":10
			});
			$(".dropdown-menu").css({
				"top":0,
				"left":"unset",
				"right":$("#menur").width()
			});
			$("#gotop").on("click", function() {
				$("html, body").animate({
					scrollTop: 0
				}, 120);
			});
			$(window).on("scroll", function() {
				$(document).scrollTop() > 0 ? $("#gotop").removeAttr("disabled") : $("#gotop").attr("disabled","");
			}).scroll();
			$("body>.menu").css({
                "list-style":"none none",
                "background-color":"#fff",
                "position":"fixed",
                "margin":"0",
                "padding":"0",
                "border-top-width":"0",
                "box-shadow":"0 12px 24px 0 rgba(59,73,97,0.25)",
                "top":"80px",
                "width":"120px"
            });
            $("body .menu").find("a").css({
                "padding":"0.625em",
                "white-space":"nowrap",
                "color":"rgba(0,0,0,0.85)",
                "cursor":"pointer",
                "font-size":"14px",
                "height":"40px",
                "line-height":"40px",
                "min-width":"120px"
            });
            $("body .menu").find("a").hover(function(){
                $(this).css({
                    "background-color":"#47e",
                    "color":"rgba(255,255,255,0.85)"
                });
            },function(){
                $(this).css({
                    "background-color":"#fff",
                    "color":"rgba(0,0,0,0.85)"
                });
            });
        },
        panel:function(opts){
			var add=function(name,bool,type,color,hr,title,message,sele){
				var checkbox=`<div class="BE-list-item_details"><div class="BE-list-item_header"><div class="BE-list-item_name">${title}</div><div class="BE-list-item_status"></div><div class="BE-list-item_date"><input onchange="BE_DB(this)" type="checkbox" name="${name}" class="switch_1" ${(bool&&'checked')}></div></div><div class="BE-list-item_body"><div class="BE-list-item_message">${message}</div></div></div>`;
				var textarea=`<div class="BE-list-item_details"><div class="BE-list-item_header"><div class="BE-list-item_name">${title}</div></div><div class="BE-list-item_body"><textarea title="${message}" alt="${message}" onchange="BE_DB(this)" id="${name}" name="${name}" placeholder="${message}">${bool}</textarea></div></div>`;
				return `<div class="BE-list-item"><div class="BE-list-item_icon"><div class="BE-list-item_avatar"><div class="BE-avatar" style="background-color: ${color}; width: 48px; height: 48px;"><div class="BE-avatar_monogram" style="font-size: 14px; line-height: 48px;">${type}</div></div></div></div><div class="BE-list-item_content${hr}">${(sele?textarea:checkbox)}</div></div>`
			};
			var tmp =add('data'    ,opts.data     ,'JSON','#01D4C9',' hr','数据',`批量编辑的数据,只要符合JSON标准即可(不一定要格式化)\n例如:\n{\n  &quot;标题a&quot;:\n  {\n    &quot;1&quot;:&quot;页面a数据1&quot;,\n    &quot;2&quot;:&quot;页面a数据2&quot;,\n    &quot;3&quot;:&quot;页面a数据3&quot;\n  },\n  &quot;标题b&quot;:\n  {\n    &quot;1&quot;:&quot;页面b数据1&quot;,\n    &quot;2&quot;:&quot;页面b数据2&quot;,\n    &quot;3&quot;:&quot;页面b数据3&quot;\n  }\n}`,1);
                tmp+=add('content' ,opts.content  ,'TEXT','#6F6F6F',' hr','页面内容',`批量编辑的页面内容\n例如:\n==__1__==\n{{装备图鉴\n|装备名称=__2__\n|防御力=__3__\n}}`,1);
                tmp+=`<div class="BE-list-item"><div class="BE-list-item_content hr"><button id="submit" type="button" onclick="BE_Submit()" style="margin: 0 auto;">开始批量编辑</button></div></div>`;

				tmp+=add('bg'               ,opts.bg               ,'CSS','hotpink',' hr','显示/隐藏','页面背景');
				tmp+=add('catlinks'         ,opts.catlinks         ,'CSS','hotpink',' hr','显示/隐藏','分类');
				tmp+=add('firstHeading'     ,opts.firstHeading     ,'CSS','hotpink',' hr','显示/隐藏','页面标题');
				tmp+=add('firstHeadingTools',opts.firstHeadingTools,'CSS','hotpink',' hr','显示/隐藏','WIKI功能菜单');
				tmp+=add('biliContributors' ,opts.biliContributors ,'CSS','hotpink',' hr','显示/隐藏','页面贡献');
				tmp+=add('redirectedfrom'   ,opts.redirectedfrom   ,'CSS','hotpink',' hr','显示/隐藏','页面重定向');

				tmp+=add('menuleft'         ,opts.menuleft         ,'Tag','#41A373',' hr','快捷:增加','热门WIKI列表');
				tmp+=add('menuright'        ,opts.menuright        ,'Tag','#41A373',' hr','快捷:增加','快捷功能菜单');

                tmp+=add('contextmenu'      ,opts.contextmenu      ,'JS' ,'#1c70c4',' hr','扩展:增加','右键智能菜单');
                tmp+=add('difference'       ,opts.difference       ,'JS' ,'#1c70c4',' hr','扩展:增加','版主审核图片差异对比');
				tmp+=add('preview'          ,opts.preview          ,'JS' ,'#1c70c4',' hr','扩展:增加','日志记录快速预览图片');

			this.tag({
				id:this.id+'_Panel'
				,tag:'div'
				,node:0
				,dom:document.body
				,html:html
				,className:'BE-widget BE-widget_desktop BE-widget_theme_light'
			});
			this.tag({
				tag:'script'
				,node:0
				,dom:'#'+this.id+'_Panel'
				,html:js
			});
			this.tag({
				tag:'style'
				,node:0
				,dom:'#'+this.id+'_Panel'
				,html:css
			});
			this.tag({
				className:'BE-virtual-list_content'
				,tag:'div'
				,html:tmp
			})
		},
        tag:function(json){
			var _obj = json.id&&document.getElementById(json.id)||json.name&&document.getElementsByName(json.name)[0]||json.className&&document.getElementsByClassName(json.className)[0]||null,
				_new = _obj||document.createElement(json.tag),
				_dom = json.dom||document.head,
				_node= json.node,
				_html= json.html;
			json.class= json.className;
			delete json.dom;
			delete json.tag;
			delete json.node;
			delete json.html;
			delete json.className;
			for(var key in json){json[key]&&_new.setAttribute(key,json[key])}
			if(_html){_new.innerHTML=_html}
			if(!_obj){
				if(typeof _dom==='string'){_dom=document.querySelector(_dom)}
				if(typeof _node==='number'){
					_dom.insertBefore(_new, _dom.childNodes[_node] )}else{
					_dom.appendChild( _new)
				}
			}
			_new.del=function(){_new.parentNode.removeChild(_new)};
			return _new
		}
    };

    try{
        BE.init();
    }catch(e){
        window.localStorage.removeItem("BE");
        console.log("BwikiBatchEditor:数据错误,自动初始化数据!");
    }

    if(instr(window.location.pathname,"api.php")>0){
        $("body").css("background","url()");
        $("body>.menu").hide();
        $(".description dt").css("margin","0");
    }

});

function instr(str,s){
    var dotn=str.indexOf(s);
    if(dotn<0){return 0;}else{return (dotn+1);}
}