弹幕词云

bilibili弹幕词云、弹幕分析、弹幕列表

// ==UserScript==
// @license MIT
// @name         弹幕词云
// @namespace    http://tampermonkey.net/
// @version      2.6.2
// @description  bilibili弹幕词云、弹幕分析、弹幕列表
// @author       You
// @match        https://www.bilibili.com/bangumi/play/*
// @match        https://www.bilibili.com/video/*
// @grant        none
// @require      https://cdn.bootcdn.net/ajax/libs/wordcloud2.js/1.1.2/wordcloud2.min.js
// @require      https://cdn.bootcdn.net/ajax/libs/victor/1.1.0/victor.min.js
// ==/UserScript==

(function() {
    'use strict';
 function geo(){
    console.log("开始")
  //  setInterval(modi,1000);
  initBase();
  init();
  }
//======变量=======
var lastScorllEl;
var diag;
var diagCon;
var canv;
var btnTextE;
var baocun;//保存按钮
var baocun2;//保存按钮
var holder;//包裹词云
var canvP;//词云div
var title;
var hasCi = false;//词云是否显示
let s = []//弹幕
let dmlang = []//所有弹幕
let wds = []//所有
let sai = []//词频
let stageSai = [];
let dmBar;
let pao;
let fail = false;
let walkPao = false;
let tez = [0, 1]//[最大值,最小值,中位数]
let count = 350//最大词数
let reqParm = [0, 1]
let liFac = 0.5;//
let weiFac = 0.5;//字体权重
let dmCount = 0;//总弹幕数量
let colorTable = ['#9794DB', '#8240BF', '#6344C1', '#4840BF', '#444EC1', '#4461C1', '#5E90C9', '#4BABC3', '#66C7CC', '#66CCBD', '#53C69F', '#BDD071', '#C9965E', '#C15444', '#BF4640', '#D13D3D', '#FF533E']
let peiIdx = 0;
let sepei = [//背景色,高频色,低频色,遮罩
  ['#2775b6', [255, 255, 255], [73, 92, 105], '//i0.hdslb.com/bfs/article/874074999995e6981d7602a7d5a770043a10b932.png@256w_256h.webp', '景泰蓝'],
  ['#AC1F18', [28, 13, 26], [54, 41, 47], '//i0.hdslb.com/bfs/article/874074999995e6981d7602a7d5a770043a10b932.png@256w_256h.webp', '对联红'],
  ['#621d34', [226, 225, 228], [97, 113, 114], '//i0.hdslb.com/bfs/article/874074999995e6981d7602a7d5a770043a10b932.png@256w_256h.webp', '鹞冠紫'],
  ['#ed9db2', [51, 20, 30], [181, 152, 162], '//i0.hdslb.com/bfs/article/874074999995e6981d7602a7d5a770043a10b932.png@256w_256h.webp', '豇豆红'],
  ['#1ba784', [173, 213, 162], [65, 174, 60], '//i0.hdslb.com/bfs/article/874074999995e6981d7602a7d5a770043a10b932.png@256w_256h.webp', '竹绿'],
  ['#fed71a', [140, 194, 105], [140, 194, 105], '//i0.hdslb.com/bfs/article/874074999995e6981d7602a7d5a770043a10b932.png@256w_256h.webp', '佛手黄'],
  ['#f26b1f', [249, 233, 205], [240, 156, 90], '//i0.hdslb.com/bfs/article/874074999995e6981d7602a7d5a770043a10b932.png@256w_256h.webp', '金黄'],
  ['#500A16', [226, 225, 228], [97, 113, 114], '//i0.hdslb.com/bfs/article/d2bba9afdcd82302d8d387696e076da26050fb37.jpg@1320w_1760h.webp', '浪'],
]//背景+文字颜色2
let levelColor = [
  ["#7b7b7b", "#b6b6b6"],
  ["#dfd7ba", "#dfd7ba"],
  ["#8eca5e", "#dfd4ae"],
  ["#9c9c9c", "#9bff74"],
  ["#ffffff", "#43eced"],
  ["#ffffff", "#5e0eb4"],
  []
]
let levelStyle = "font-size: 12px;color:c1;background-color:c2;margin: 0 8px;"
let sepeiBtn = [];
let yuTuPic=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACVCAYAAAC6lQNMAAAAAXNSR0IArs4c6QAAIABJREFUeF7snQd0F9XWxX+TXoEk9NAh9N57kQ6CiIoFEXsBe0F8WLArCogKKPYCKqAoXXrvofdO6C2EkJDOfGvfO39EP1Tw8ZT3dNZyqfm3mTtnzj1nn332cfgfO1wojv3nDBBC63p+bNnlknBkjQNH/scu97K9HOeyPbOLODEXyj8LtV+AYnS4uhk5QRXYvu0MAQQSHuYQ6O9y5PgCkk7MgaPznROZ6y/i6/956x9YgT/bsPyBnD9wnv/vI27jsFqEVutI2plrOZpcnP1Hc5GSaR1VsB9UiYMV8fZzefJDVC7YlQClKmSQ2/9TVq18zoHDl+Jc/vmO/78Cf7ZhRbntr3+HKd+878D8P3BD/N3CjXsS5XYh0u3EiuUQ6AdlS4N/EOw5BMcTISALapeBXJGwZDUEh0LLVrDrGCxdCDhQqfIRalR5xvly1Ig/cB7/fOR3VuBPNSxXd/Thp1KZMS2UzPRhbN0wiuYsdeaQfb7zdN2XC+D0iySGSlSt0Z50v0bsOFmZIweALAgKADcTIgKhdHGIyQ9bdsLhw5CRDa0awMFDsGEXhAVCp46wYg3sPgJBYRAXCy0b3eUMHPrhP5ZyaVfgTzUsnbo7YsRQRo/rxYwpUKUxFI+Jx00az4y5K8hgBxDGNZ2as21rcapVv4l162I4keTHHhkTEBwGgUGQkgx+MlUXgvwhKwdi8kFMAdhxADJOQnReiC0A23dB2iloXx8cP5i8CBo0hcPboGgRaF+nkdN32KJLu7R/72/78w2rROBtPPzSx7z9Gezc7hlLMBTPD37+WTiBgZxIgUN7vDvjD84Z8AP8HAhUmHYG0nPAtbsa/vJcAZCt9wWAfziQAQEu5M4FqWmQegKa1IKTabB6AzSoAcWi4ZuZ0KnVNGfCjLZ/b1O4tFf/pxsWUM+d/vUM1qyP4PGXICQaMlLBzfj5lfmHguuC3xlwsuTr4IxjDehM9k+GJovT33QlAX6QlQF+fpArGM64cBrIzoYQB6KiICkLUlKgThwUjYJx86B0Gdi+vbwDWy7t8v59v+2vMCzc1x7fTI/ry/HaEHjnS7v6AcEQIO/jQlaW9UbyUv4yJj/rjWRYxrj0mryTTj/Ic1v6Yya4ORAsr5VjwjAyZYg5NsiXN8sJBMcfqsdB8hE4lQ15YyDK+cKZu+aWv68pXNor/2sMq1q5Zxg0+AWuaJ/NM88E8NJgIBX8gyHQO6WsdGtUsiI/fwt3ysByXGtYrv4gbyYj8gPtkI6QDL0/HNJknBk2BtN35ug75Nk8OKJIcdiZAEWioXSstsi1Tvy6apd2ef++3/aXGBYQ6TZvMplJkxsQFubPxPEw7GOYP9tuU9rKtLdpK/QZl/5fsZS2tTNnrHH5PJ22Qmtt9p/AM5CZ89OWGSDDkufys8YnI/QLsVtwbG4oXQqOnj7Ips01/sG2Ls3D8FcZls6+rXvXfVMZMcxeyelTMGsmLFgA8xfB7n1wKgVOnVKQ9DtX6w8BoRZ6FfwgHMvn2Xyxl4zKdWwmKcN0AiEnA+pXgvAoWLMXKpXt5sydPubSLO3f+1v+SsPSyj/mvj7sTfrc9/O7IBxq+3Y4dRK27YAde+DEKcjMhsAA8MuxRqGt8Ew67NgOm7bAqQzrtJQ5ZnsAv8km/e02ag6ft5MHdKBFHdhyBI5mQt3CVzmzl4z/e5vEpbn6v9qwcANKvsBNHZ/hoduhZo2LuCoXMpIh/RRs3QzLlsHK5TBvMew6DsH+kJNtDc3EZ/JWfnZ71CFDyxUBxQrC2s1QvOZxSq6s7sxh30WcxD9v/ZUV+MsNyzuvq9yycU/RvnU96tSG/LEQFGqzwwBtcw6knYbEJNiWAMeOgoL7PLkgIyuRnDNJBAYGk50Zy5p1dkuVNYXJmIIgTZ4uyMZnxmPp79oKFW+dgawzEFtylbN/R81/LOXSrMDlYljmamZC+ytK5etIkcodSMuJIjjUj5wchwB/h/CwY2zcPJeETescSB0MmY+AENatwFEh9i6UpXyDWkRmxlIm9h7mz4kh8VSAyQhlTL7tMFuIvS7d82iCKG7rnsTHb9/oODFTL83S/r2/5bIyLN+tUF4H5BKK5aFZOs8k+a2LuV3uinG7ePz5EsxbbXEsV5BDiA3shZwKM5ORKW5rUAuq1YT9xxawYvEsGtfez6jvp8loZcgX87v/vNfi1f9zhwsRQHMGPfYFM+fnYfIq8MtlsS8DnAqdz7RmqyUICoTwQDiZCRkeMhsTDvnC0ogteZCZ8z8GVgPzHFCa+s/xOyvwP2VYLjSgRLF2lC51FyvXFuJEojUx/7xwKtgG8gHJ1lupaK0jNBzSM+CRG6F5M7h3gI3J8qbDNhW+tUR+UKgMlC18kMKnhrJpxVBnNUn/WNevr8D/hGG5D7Tryuoj93DKacPqdba04xdht7qA0xAQAn0eh8RTMHiYLfnEFoOsZNiXZMtAfW+DV1+HVp2gSmWoVgxu6wsR0fDQnbB4PcyabNjOXNFwHxtmDeAwnzkgS/3n+MUK/FcblntfvaociXmX+DVNSNhvYQVlgQFBNuPLEaPU80zffQ6tWkOd9rB1HYx4A3JSoNdrtv5YryIsmQA33A2V46BJbWh+I5StAD98DCO+gMEfgH9uyDlm7IvWjfZQO+Yu57nx0/+xrJ+vwH+tYblN6zzN8dSn2bAx+Owl5YmwxpWSZgvPOsTfyjgNve6Foe/Ca6/AU8/C+y/C1a2h+o1wQGHTKeh/P8Rvg53boEQsTJoDcWXhyfvg449hyUaL2Au9V4U7KxPKF4G6ZV9zPp/11D/G9dMK/NcZllutdAtOB77C7v31yToNgeGQOwxyB8DJZJu/6b53aQ0nE2HKXPCPgNBgWPGDRfI79YDaVaBJVfhiBiTmeLSbNAjJAydTZJ0g6k7AGShYAI6dhLQM8BdlR7VHIfxAWrr9/yaNPnDmLrj7H+OyK/BfZVhuy3oPsfvEQHZs9TcxlMDTMxnQqAa88BQMGA6TpkBoDHw1BKLCofNtFgA9nQwd20LlcjD4K3DSICsFQsPgTJjFudKP2e8UBBGeB86chvQ0j1AYAv7yViIYqjwklkWaZaRmyZJzoE7VCSxf20Xknr+7gf1XGJbhyrdqNpY1W7pyNBGCROITJUYouj/kjoTJYy1U0KUnJCZA927wwSC4qRd8Px7CIyH1FITlgewgCFWx2oHMdMh0ITQE6teBOhVg9WqYG2+R/SqlIDIUVm2EHUfBkYF59J1s1SszITDEGq9oOm0aT3CmLej8j2H9SSvgQn2CyU2e0ArkKdKCIqWDOIPDihXZ5FNpJmk2+xNXAQsdwyu2hwuRxNUex84NLQ31RZSYLA+vFMcvM7d9Y9srYOLn8MATMOJjCMwLT9wFy+bBtNkQ6mcNIDnHbl0qXuuIFPEvCO7uDknpcDgBCsXCD7OhXHkoVQhKRlsjHviF3W7NIe+l0lCWRfENGdErTNZtPtxZNrvXn7S0l+XP/Mc8lmvzpo6E0ZqY2Bo4/nVJPQn58kFQEKzbaLeY8FDL7BR9NMiBGmU3UyhyCNfmHcfiwMLM3jaUpfENLJAZYrewiGAoGgsHDsIpkfwiIGUvPPs4NG8Ene+AFMVDOgvh9emWnSqEXaxSgaRXdYHCBWDcDBvsx4ZBwnbLoEiP8Jg6AvpzIDwE4opYaLRBfQgJgIkT4eRJyAq07FYZXpjQfX0+ADpf2d/5fuzzl+Vd/xNO6pIblpAjGtW7n6MpdxEcWNE4n+MHIC0H0ySRJxIqlLexyubNkJppt5e0MxCYbTOtQgWg9+NZbN8WyKcjIDjSwgfitCuuqVQSxo6CFSvh3gchVXRmPwgLgtYtYPYC630U6siryKhE/FOMFJgJndpA5XowZwnE74XkXVCzKDxyN6Rnw8sfQLFSULcKfDEWDu+ytyJPIWjeAJpVh9QUeGcYBibN8HheAZkQegZOZkOlavBGg8ZOh/fUyPi3Oy6pYbkhNKVew9dZsrk+GUkQGgulYqBACIQEQWKq5U2JJVqqBOQvANt22oxL21S23IniF8W+8lCCDzIg2+twNltPthrE4PoO8NTDMGE6PPUGuGHWM8nDhIXBaccG1kH6rkwbYIvgV7wgdOkI730jZoT1dnEx8PYL8OHn0LwV1K0HuxOhXjX44St4cwg0rQnTlsOhfdC8LrS/Cl5+yZ5bZohHXlVRW14y2LabXdlykTNxZqO/nVVdyqzQff6+Bxi/8G3i10JkHls/Fu0l3YtJ8kdCidKQmgq7E2zqXrCgzZ/Uvaz3G/anbkO4NQJhUWqaOJNp03tRXfR+baUZKVCuENxwHUz9EVZt9Qh9IvAFQ7rqgqIii02aYTdmJxiKlYfYwjB9KnS/AXpcB3FlYOtOaH8H3NEdnngQrrofGlSEj56G1ZugZkUYPBj6DoLKFTC1opWzvV6OcMjQiXlcL0EU2Q5EhkHjiKudKQe+/7sZ1yXxWG7Vdi05vWMG23dDjaqQyw9C9eSGw47DcOCYxZQUiwhPEtKtrU1Blv4tQ1FWpcBcheFsNT3I42R53TjyNoIBPG9muOshcEZBjwMx8lapxjGZeytmqBMObrqxUa5tDxXi4NvpsHaPhR4qlIKv3odvJ0PlulCmOLS7E2rHQZkS8M4QuKYnDHkK+r0EHRtCbBx0vBNOHrdxVrrKRTpnx7bxyyuHRUBUEKzebh+ORlU2OgvXVfrHsC5yBdz+L9/CZ1+9za71uSkcB2mJ4JcCkWoiDYawvHYLPH7EY3Tqpst6hAN56LhpOpXRKIbyMCJH5DwZm0ecUduW3q7t0nxMLshrXvWXp8v5iRrv7w+Zjn1Lrxshby6YuwZWb7OQQ597oU4taNsGut4Ok2bCj2Ng6CewYgkULgYr10Kn9rBrF8SvgNefhxOZ8NpgCFbZ6DSkqb0/GFIzoEYVKFHSEhFL5IUfZtjTE5aWP6qDs3HflItc2v/qt/9bHsu9mXKsrLmUjetym8VWB4z0FAQyKoVPTLTGI4+kX1IALSDSHF57vNqzTAeOZ1hqMjUtXAq8lW3pvfJWHqJuWr70EXkt8x/e+/V93muCJWSALWpZbGrQe5ChcwqEPrdDjdKQ7MI1XWHRKrjqVqhWBfySIX69LVpHKE47ac+5dhtoUx3e/QhOpdt2suwUKBYLUXns9p6/MIRFwqETNhNdHm/jQV1Oi+ZznJlzWvxXW8pFnvwfNix31ScduH/ocBauKEapslAsL4QG2Rux6wgcTLQ1OqX2wfImORaINIdnEObXz/mbCc71N6/hwYQtet3zcMbgZITnGJEMVf2CPxNHkjfMhrb1oVBh+OwHyJ3ftnuNeAE+HgGzN0LjJnDnbfDBeFg4HhpXh9bNYfQUiI6CsiXhu3kQkBsyD8CpJAvOCpI4kwWdr4LcEZCRYSWSVq+3caSA0127wVEDLVC5GqxfU86xbNe/xfGHDEu3l7tuO86HX+ShfjW7HRw9YQ3pWCIcFf6j1F6gpGprXjuWr6lBhmWKHl4zqqxJhifv5TMa3RAFwIrH5J1MLHMGcjzmgjyh2UJlpyrtiNPuGWCAyjABdgu8qg0sXgm7DkLKaeh7JxQvAPcJYlKdMQaCVcdOg149oGQRCM0PC5ZDy7rw0UgYP84+DLn0+0pKAu1Dct21NgvdtNZmi3XrQ7nSsHkXLFtpydJ7j9ou74KlH3T2bXznb2FVfzQrdDs07s+MFc+ZgLpAJJw8YptJlY2dkA6DAiO5EC9GUqzkUczNZ2Qo8jTBQqxzwEBO2kKzrYczcb3XsOpzaiZb9LZF48k8SEJMA5VmZJxG4sEUgEBxlgrGZYrC6TOw65C9wWWi4emHYfISGDUdgvPA9W3hhvZwYC/06w89boWFP0L9mpbRsHylTRxCsu255ThQrATkywtbtkLHdnBzd0vZmTQNGlSC4V/aeDNhHxw9DlXjhjlrt/T+x7B+ZQXcFu1asnPrDPbshOgYKFgIQgNtD+Ch45Ca7sVFXieyb+uTNzLhlDyZAnvJD8kIcuC0tBU8YQ95LtmMeOlnwzFvC/R1RxshEG8X9YVZ+n5DZ/EZn7ydYjqvHhwUbj2bWsZkbCVKwYINEBcH93SD1fMs9jVpEZxMglL5bK1w5RYIC4F0UZmz7Xcofgzyg/x54IlHoUEjmL8MNidAyTKQtBPGzoTieW11YO1qaNn6oDNzeinsY/Q/f1zUVuhCHirUXsOmNcWoXBryhEBSNiQo4xNQ6JX4BBOYrcozpizPo5ggXamacClhA6IGy8hUlhH0oOYGzxBMmcQTADFB+i/8qxEE8QzOGKLvPfqMB1SaLVRbqRer6XeUSCg+EgqvwrS8yk2dID0dvpkKrorUOjeh6LnsOWWdtFuxZJGkFeF6n/v4LbiuK7w1DGo1gvZX2vNcORV6PgrhuSAzE1ZvhHJVYfPyYg7s/Z+3qovdCt2GzT5n0dwehBeA2HA4lADJ2r5y23gqS7GVWAfe/uUzW3PTdUMzLJpepjA0rgmJp2HqAkhLsYZmxD3kaWRkhg5qPY7ZOr2WLWMoHvjp+5shivoCfEX/Xv+gvKC2UPUT+rLKABWy1auogN9Tp1H2WagoHDkFp4X0p0PevBBXHlJOwbrV1rua7TjEvqdDB/j4DRg7yYKuQvFPJEONYlC7JvTrB8O+gCZ1YHa8hV0is9s7O3b/LdrLLthjuQ1rdWTX8YlGelH3TuwAhVLS/hRmJGPQ4itGkjEYEFoeQ9uIvL8rgTO4uRs0UbZWAvq9CK+/BTlZEJXberiMTAssqmZoMj59pzqYfX0NMiz9lgxDwbTAVnmiQBC6ry1KjlO/L5E1SUbKUIwQW7CNBQXK6vxN7VHfLQBW27E/xERBZCQ0bAjHDlmDnbnAFr/1W/5ipKbA6G9sfPnGRxZyyBcK4+fBkcPQvjnULAuDhkLTqrB4HaSEQI+Ow513RvwtWA8XZFjuZw1imVd+Hx99YlVaHN05QQPeP8rcFBvJ0PRUm+xPaLpuYBaULAl9HoLbb4KgfHYn2LoEru1tvUFsfogrBes2QWaW9TAyNl/N0IdXGbUZn6KMQNAMT+ADKFrYao4ajlYu2L4PlqyCzNMQGgol8lvP6OPGG+cT+hN0kDfKqgoKiyqiUMiBxKO2cL5uM+SkWsUaGVpsCRj5PnzwCYz8GJ58BF4bBENegoeVbWZDm2ZWb8IvDXbtg+NZ0LXFKGfMlO7/bIXeCrht6/Zh/trXTdYljMYEyhIy09Puw6RU1zNKadYL6IYGhsJt18OT90OpWvbbNm+B8RNhxlyYPd/yodo0gJUi0u2CEFmnQhztb14cZZyfti9tp/JmntGVLgFxxSBQsZw/HEqC1ZttSahSKejSDqpVtDW7krE27tt3CL6fDF9/Byd1jiLpiWGRBTUr2NLMiXQ4LU+XDSeSbEHZCJF4D1CL1tDtJnisH5xOhBvawlM94a334Mtpdk0K5rHQyInjNm7Ug1K3/Chn2eZ/DMuLlKJoUv8g85cEmxRe7kiBtmADYUWmCVQ31mNzSk5ImVfxUjDgFbi2M/iFWmNZtQpeHJxOsaKJbNtTmMmjoXVtywaYMMcGy8rn5eUk3mGck7ZCD3nXliURj7AA2LwHisRAowYQkRuOJsOKdZYDf1M3uKMblC7/k3M4tR8O7re1vCJlYdtm+NcLMPY7CA+zW3hGmoURjiRaAxZbQkaioN0Uw73qQZf2ULYRvPEOOClwJhVyK8bUwxZut1ppzWf5Q6oSBW3Xp6BWqU+d+J23/eOxdF+7dPiQHybfYThR8kKqyYm5mRVsyyQCLQNlDDIA0UVSofUV8O5AKFvd8ptUsB03Df712KKNm9f3rDjx7RK8NHo6WzZDuzqwfgOk+MHRJJuRGaNSrOZRXeQJRfI7fRry54er29rzOHUa1u2DVRoUIFpyF+j3CNRuau/dllUWHD2cCDG5IT3FGouSgbz5oVINeOstGPU5qMNH27lIfyIeSolZLlpbr5Gr9GW4LnRtDRSA78dC42rQsgkmTDgqIwuw26sQep23rl//zkmG6iVHOqt33fy3Nyy3bYfb2LDxY47ttwVlGZawIjE9dWjL0RalvynDElJ+w00wcCAU9GIpve/LqTg92qv3TsrErluJG9gV8hXFykFBsT+TbcC9bj0Ei5UgnSttH15GKA8gHSsxFMbNhqRkqFoJ4irDrMU2dnrxGeh9lz2v+OWwcL5thKhRE1JPQ7JUbs9AvkCIiYA96TAnHmpXh3kL4fPPvexTgb7nLT1hQQuBeLLfOpemYpFGwZQpcO+90KMNXH8v7DvqqdqozilNCD0YcsKi+2RA+VIDnE07nvw7GtbZoMa9o05L5mdMZOv2EHIrUPYaQAVoKuU3Gb3Q6EA4rbapCHj8IXjqCcv4VJyVkg6ff8aK+3t/X4ecq30L6rapOYBpq56gWBwUzm3FZaf8aOOkQLXCKyOUYfkAERcKRMOVraBqBdh9EOasghVLoXwNUDNqhcrWoGYttHFgrfLQqgVMnQ2vDoVNh+HUUcgXBPlj4IknoWx5ePllqF8DJs+EuTOtp3GFwwlTUxao6pTnOXW9MpRcuaFTJ1i0ApIOWdbowWSbxRrUw6MHKelI9nRMogpD3drzmbN6JBkJqjmIuP/R/6qRnTcrdKEOFUrPZNOOSEIivfhCQhoeh8qUThRMB1ooIX8u+PAL6KTmFL0YCAkH4LkX4NP3X3LgmXMX0G3dfDEzl9Y3BL5WzUEUmTlzwU9tWB5hTv/29Guttrtrtxh1KReOheR0KFYM+vaFfNEw7nvYmwiVqkL3Dhbm6N8XXh0EWfKC2VCkmI355i+G+HnwwstwdXt47WUIyQVqaD5x2JaWDNThLY+8jzE0L7aUxT//GCQchI9G2UvznaMeOD0cOYIngApl4cqOUKmKVRyUQ9y1E2b92N/ZvPZ/lhP/M8NyZz5QmltGd+OM/1McPBBpYimjWKxA3QtCdYPF8faVSmqUh/eGQN02llgnAt623fDIowyYNO66J2HsL59Kt0a1TazaUJ7cuW3j6K4dFgtavcWjw6h04oGkvpqhhNO0NeVE2FJSz87Qoyvs3G0ByOgilqpsQMws+GA43P2Q/X8lD5lp8M6LcP/TkHYUunSDaXNgxHBoXAceegm2H4CE5R7DQpiu4iWfyK6H5psHyg+qlbYx1d4kGxMaXC8QMrwaaZk46HoV3NkT4sQ49bMDE4Z8AoeOTHVGf9T+f9Vb6bp8GHkj6le/l5CILsSvjeBUKgQHWtU8HdoCtP0ZzpQoMJK0DoLbb4EnH4Tipa0HE/V3217o/wKM+rCrA6IF/Oww3TuVq2xg/bpShgOlQ9BCTDQsWGxb4pUVyospITD1Rf1+oPUaorAULwdRasooAgNfhCWLrbjtFSaEg8N7oM3VtkanKxR/SmyEfr3hpXdtO32bTjB9LtRtCLPGwYtfwOuvQthJ62kyle0qOfEUmRXvGa6YR+0xZR8devpkN1JlPg1h4dCzOzzQGypU/YkWpMRh2VJLNtyVcIS3XrvHgf9ZyrLjlqk0luRj1xjE+OwhLMlzZgap9ji/8hj5oy0p7q7boGtXSwEW1VeNoBu2wwMPEzt70lUH4LwisS7EUqnaWjauiaZuddudkzsPrFoJp9NtZ7KaSLV1nS0qK+X3pB1V64sqaCkviSnQrQNUygfN6kCtDvYKZsyALj0gVcF0DkQIAgmAiFwWVzt2HEaOsVtb3jywcBbsEB7VDVzJUAom8IrgKv2YwQOCDxQWefVQlXwioyypURns8ZNQpwY8dA906OLJiXsVCNVKFaeti4cJk21j7arVHJv6w1X5fmWd/mpv5uZr3I6cE22IiPCrkbA0aTVIjP/khZ6X497V26VIAVi1GLZvhiMn4aR00jUiJBdkC7n2hwoloVF9WyMTrTdQDRPiPckIA2HqDHh36MGik7+/Yx/8Kg3XhZo0ahHP4tlQVEOVikJkDCycA6XLwr593ggUDxsznlI4kAPR0dCgHhQtiNG+mrcKw7KIiYE3+8OtYqU4MGYM3PQgZJ8A0ZZzh0CU9BdOW766tiVN/8o5aYl6s2fBoVQbd82cBPNXghtqg3eJ5Cq7lEFpndqI+14UQ8MWPKFzEyGwYIxF5DUb0VQi1GXklaT08AiWObADRo+BNZugfM3RTJr+uLN82uVUlA5wy/h3wL/sPRzL6kCtyvB0H7u+A4cd5eMhtzsw8UKMSxtON/+333qPW7tHkZUNO/Zaot6RYxCYBTGhdpuKKwl5Yn/6TqHSepp1CGQc+MpWZ0n8FcD+3/phY1j1WsSzdLZ9m+YIHpeYxwmIzmMJcqaxVGi4oRTa0pHoKsVLQnAuOLAbSuWFapWsvtWspbbN/um+8OBDEL8EGl0NGSfsVlSkMLz+DExbBJ99BEGRNk6SYanxYcEymLkLti+HBROtFlaAeswUsKdCycJw83VQpQIcOA7TF8LJU1C8sJ2H2KQxfKIHWmxSqdComK4CuDA+sSPEns2A8Ahr2MM+hA8//dLZuaXHhdykP+M97tOP92fxqpuI3xxH0n644w4Y/jYEah2UcByAgW/gDH2rGBfA0PAF763cp595l3t6lzNP5dlDKY6PYefl/qKRpPtBuEQT0+DVN1n86rPjGoJAJLmD3zyM6l7dZotYNtfuts1awp69ULqYzZb2yi69eTqmU8ejxiiGM32HQMFSULkMBGdb5ub6PbbYTCS88KQN6u97DKZOskakss1d3WDDVpg+zRquYiPFkNe3hFr14a0f4OAucE9BQKRH30mFDldAr7thzx4Y9b3lyNeqBk8+BiWLQUd1XadD/LdQrpo1IJNweLBDiGJPj8qjxObLz2z5au/edc7YrxSE/WWHkDngKq5qfz1z4q+xKjunoeu18O1wu55z50GFKpC/ICyYBY89O8ZZtrDb7530uVlhhFu12lc80edKOney00l/61CsMHchzsBXngVe/L1w/qGqAAAgAElEQVQf8r3uoqGW1Vazdk2AMazSlSEiEgrng7lzLXKvuEg3R0ZsWr28AFrbiTE0wRyqWWpEbwXrucTz2rILlqyAK5tBXGn4agycOm7Rb9mdllH1xkx5K2V3OVabQfSfkzn2miVdpPqgIvhX+kKLxvD8OzBV+K5rSzUSbbvlQXhrCDzaD+q3gSnDIbcmmUnWyCuWK15MSYXEY1C0gIUg0vzgzWHw1XfXOttWfHuh63Yp32fi3Gvuacrhzc8S7JQn5QwsXWTj5eIxsHgSFCxvH7yFS+wDd+Ot9hQe6Y/z1gsKcn9z7PH5cKxObserX6dd2wpUrWq1Fkw9MBiSU2DtBlizFoZ/ONHJPvwysORiLtqFaMpXXM/mjYUsbSUIGjayCYIC+AL5IfGw5acbuNbXjePVDEX/VTOqbnyBvFCuJKQmw/Ekj0vlQmIy5M1nb7IMVd0yymS1Penzxp14CYKB3YLs76hoLhRfmd27L0KJKLivL2w+ABF5LN9MgXqcKgblLUB7ch9cdyuMFtZp0knvnIPgtAujvoQrGkGp4jZr3HQARo2HV5683oHRF7N2/+57XajINTc/za59VxNXIoRFS6BZbQsiawpaRiLce4d9QAoUhnvusOzZjz+EchWgUSMruPL4c32dU/te/63z+TXajCIbdQpUP9+H34H5D/xGgP57C+CWjtvAjm0VjRaotrBmrawxJSdBpUoWhfcxRM3MQo+KY2AHNT6IxqwGDI+UpwBbAKW+S8XjcHXVqJDtceONgSrLk6cSXKDYx5traLg+MizpY52EqtXggyG2//DqGzFPsyEFahpZjq00qE9WuFVwAZutfj4Iul5nt2oTE3oMjZdGQK4QePAWe67ylu9/kcVzAw5weNtTDplf/d5aXYrX3YJUpMJV/Ug+fCPxSxzToFuuCOw8CMViYMKPdk2rl4BOXeB5bYNS13kVHu0Fs+fCug3w4N2weRP0eWGtM2Hsb05KuyA+1qW4uHO/w61ddw0rllU1xqAO6GZN4dAhKJLfBu3zllpgVh7AdOE4XqOEBzv4oBCjrKcb5kPIvX8bNSEh9fq8jMKbzCrD0iFSn6n/eTGb/iYv1K6NbQerWgO++dLqkeq3tGUaQqu/pVIrY1ZpS9jUXb1gxFDPWxl9b9vA+sHHsPswKFII9kpCAlDXbcueVrXsv9rCEOve/nOHG0t1KrR4kGOpN7N6rVqLrMFcezXs3wqhee12t3S9pQg9dbvV0Xh/kmVp5HFg/JdQoy4MGQY9pNBTBJ54PtkZ9Fp9YNOvnf1fY1gdrviEybNvNcCl7m29urbps2JxC2puP2JZDkrlfVCDr2/QeIRzIjYzVdVMZrJPncHcfuN++bwfeSxnqnQRaFoPru8G1ep4Xywr8oevJsLQwbBkjkc6jLDlGp1T5nFoWR+aiy1aHarWg8MpsGMLLFsBkcHw0AOQK9reTDVoLFgKm7dlOo8/pKd983/KpNymDaqQlPYYgaG3EL/cFnYDpEsuPYlgaFXPdnfXbwCzV8Dhk5a69Ow9MH48LNoEIXkh+5TVsnjvPRgyFBrVhdp1TcLm/OuJ64QHXF6GVYzrOBgw2qDrmYFQprS9sJqlYcFC2JvsifyLJeBpNhgv5QfaCY1xeB05ojKb17wmDP9IGyjnyW0pxgUKQmyspRwLrc+l9FlQQBTEFoRq5e17zeF9l9F/kCAbkHAMVsyxrfbSoBAQumETVC4KnZrZG3b9PdD1JqhQEY4m2BtwTQevM1td4CGwbiV88o3l0icntHNef1f7zyU73CiKEVOsGWlBnQkJuZYd683cdsJFb/IRFYMt5la5OGzeC1VKw9c/2rWsVRvaNoc3X7FgsA49zJUrwcLp8OM8SzSQ7MDwD3B63d0RkD75eY+/xmP1qtiYRenzWLfTMXQceYG80dCyOsyZD/tOeWUdr6FVGZwyQ4Nv+TQfRIMRAJ8PSpaAejUhriiUKgIVa0GhfBYVV2bmw2LOtwSKybSlKgbTobqfylbaNhXUa6i5+GQ6so5D7yehcGmoWgU+GwwBueDHeGu4IjfmUoVAoLKYEFkQFm0bTbTVi2qjDPjYoWR2J4zhZJYfh7fMqQo5a6vUakW9BkWICI+e9dYb21tyZo4LI8+nI++6M4sz9KUI7p8dQp18ZYgufh1H02pz+HRx9mt4mahMIXZuozJsPcCKP7U7tGwGIWfsGmsI6OS59sG8rgNEFcfMj/RZhZakeHGY9JVVQty4G+64GT4biXPrzZehYcnndGu4h9GLiphmDHHJ5V26NrbMg52aCOHtbrrBmuts3JRql2HWCzWsIPU/aNoUKlaB6ILe9PpzrccbUm76ET3a9NlHyevOUA3RcOoV0Pv2WJ8+vGImT+1bxe5XXoIvR0PzhpCq7DDaNmwsWwWP3AYDPoDDh7z27By49lpLwQ7Kgk5XwLgfITwvtGkP46fA0aNw561W60uy3zpPg+YHwOLl8M23h9i8dwkFYzJJik/ieFIytZrXpmS5phw45McG4WHqlPKkotTo4QOXVefUQyO3o2TFKIhnQ8f2kHTY9lDmjYTp8+3S9rsZViXBxEmewK95kuwDM2W0jcf03kd6w4ef4Nx1++VnWDpl97YrBjFy3iOg8XFnPKiuPqxYC7uEIwka8DI5lZUkidSoOlx/N9StBRWLQKBvC/OIeAbz8vAvfdbQXbxFVdan18xQTA+81I00wKqMKhBOHIOkJIiKsXJLqoHuPwbT5sHqtZYxqtpi/6egdRu7hV5zDaxfZYV0+w6A9efEs40bwZoNFqO7tgOMGge58oP+npwKXa6Edi0tXdoAbTJoz5iPnoQOne0Q0Gs7wVfvQu97YNws2LrNe3r0wHkUOiOSIshTD4JH8TFj9DxFZ1+PZjsZVoL1nidOwNqtEBkCQ56G0TNhilRyBMkoYcmxeveTv7VMjnVbodedMOBtnCcfUhPlpMtqKzSGJZCudtXdrNgcYNvzs6B1NViyBhLFHVezaKItrVzZFm7qDFe2gdBzKwO/vCxfe/TZ6P7XYxjPFs3WZzK8LNi6CyZMsR5UyUPKCUhPtYt7U1eY8B1MnwmDP4SoYjB+NIz52Aa0iSchYa81SGFh0spSy76wsZQciF9ta4iqJfa4Cp57GmKUlWkr1rapZEW06BDYdxAmz4fdO2D1Uli/Hk6nWgXnXUch4ahlmugcTS+LGKrC6XQtEt31hoDq2nyFfNPelhfaNrMdUhWrwvLVsO+4rQW+8RKM/BxmihcXaEtegmz0EI/7DqbNhMhouOZKeOo1nNf+pUr7D5edYRnjalHjPWavugcn1BZ7yxaHw8fhiPQfTlnV4n6P2fQ4NMo+RdIyNR07Ho3nvFf2O4bliRubJ9wo26hMlQ4hCuzFm9oFh8U2LQDFJCEQBMd2Wo9yIg1mxcP2FKicF25sA3uOWsnvHjdAwSK2OK/3CnZQTfGzL2CSVJhrWCzrlacgJr+lC2UEQqisQ1w2GYq/bQwRTadwXqvf2r4bLN/gJSjyTKpAeDid6YzyQN8gdZh78gNGYMXTzJAnV1G8YCxU12iXeRZamT4HjpyAqCjo9wR8+RWsX2txu2xJd6ZAz9vgow9hwGAbdtStCo8/m+28PUAYp07q8gnefWfiQjnKlN3IjgQ/czGqR4nKcniHFdl4sR+UqGAJhCrsatE1Ek7vNVCEj5T+y2u7GMPygnafmIg8mYJ+cyjgVbuZiMQnYcVi6yEKFZF6DOyVR1luH4abekCxIphpGWYLzrKCIz+Oh9VL4LruUKqSZbQWKQI9utlEViwcyTxpzJ0o2RIwEYYkY9aDtHoxXHMH7NwKgfns9TtCaD2umrJXVS8M4iLD8h4WGZVZBhmaDCUAiqmBpBQsXA5XdYBJM0BbrhQMb7sB3vsMjopsIbA51Bb2v/8GqteEt4ZqWKi9tgcfW+6MG13317eDn+L/33rPf/Q1t3u3qYwc3dZMklerlJDt/o/Ck4/adnZDsFM26GtQ8DyMaZb1GcBFGtZZyxZw6dGODcLv6TyY+6F6pZB8SVuK8CcnlA4L5qmAbKk+GiEsrlfLdlAoL6RIhdBj2ooaPXcW3HkvvPI8XHejtaIfF8LMxTCgnzfaTgCszwMJfgmwN1vKgmpimTwZwnLb5GSqCveKm1Ityi9qtPoVdThhnjarZMhlqJ4+hTJqI8uZA2VjbWVB3vP6zjBpLhw+AlXi4KZrYfD7kHTExrMq3z3yMAwaDJoHqiL8Q3fB2HHQp8+Xzq7tv8nM+EvghnPNwF0ytAWDpo9n9PcRFCwKb74M3XXOHiIqzSszatdTptHebxbS0806X5h1MVfla+syrWZeq5f5vMe519P+M1BW9pEOCYegVDHrNX0Zl2qSpgogcPVruPdhSD4OvR6Coc/Z70z0t5qmt/aEepVtR5KpY2q7kg6GiumbYeECzHzsRfMhIsCSEJ94Feo3gno1YGW87RNQg0hEEOw+Cit2QHIipHujFEMjLcQg+QE11taLg6oN4bvJ0O0q+HYaHDkE5TRC70YY8TXs32uv74om8M0oyFsEXn0XGtSB5vVg4GCcxx9tB/wmDncxt+A/4rlcKMiD927kyJEo0zFTSk2mYmp6YmoKOhVTGGlSI5lsMyETtF5AkH7esz4nyPcZ1rlezNfSb7yZR0X2wHhThJan1O8bOW8lGh5vSxSd7OPwwqvw8hDracXREqdt4Ugo18Ce/5DhsHk7DB9oExTT+OsrR4mEKEVeRTBr4bNPoHsXyB8O73wFfZ+zmWzvXrB1g41Ly8VZ4mLZKnD0IBzZB0uXwOJVkOYNWVdgX7U01KsHY6ZAl87wwwQ4dhiKFoJH7rOSmiJaKklSnbBsTfhmsk0enu9jy2dPP5PmDHijNHDwctsKJYzQyr26Z1PyF2xLlfJ52b8biuaHwgWhVhUoIiaA11ltaDJe3dAYmyd+a4rU/85z4SH1vhtq0nEvbjF256s/et7SxDSelzSov9JxH/7lceGXq/PndZg43XLwxd8XoJuZCHdfD+8Ps7jY0VTo/Rj0uQ9qN/zp/ghYVSy0ZCGsWwWHj0Gz5tCqDXz6Dqzbvp6BQwrR9roYpo21yYawKTn3116CNk3gpZehW2eoXHY/fe59kb2hTQmJ6cTypZEUjYbWTeHrqdDlalg01UqjR+aCtwbCzGlWmlxboKQ1582HaXPh1putqvTKFfzQos34LslJV/2el/l37szvffevvV7K7dhkMBlOIzNP/FhaGkVLJXLoQAQB2aUY9R6UUGblod3K1oS6iwlhdkcPKffhMj7E3FyJRwzUf/o02H5mfGf/aN/gQUA/93zelujzhiam8W5ellgVXve32R695CHphPVC74yA43vsnHTTSZ1hGzkEZ6RkwsihcNO9dl2++ATmL4fHHsEMnlJBe/UGWL3Tbk0NylqDkodTUf7Rhw448Utj3ZdeW87TfWsbjx7uZ+PSex+B4YPg+RehvzrKNHLlqg+c8aPNmDsXipOfxrS7ujdhBerx3sd+tOwKGl20aovdHd54G3p1tZUC8dcmToa12+DO7jYzVi12+FCcXvd35TxNMr+82X+FYZ1/c7rizre5pskD9LrFBq3z5sH+/dDlOihY2AKYBnvyvIMJsM/5Kh90YCZbeHRm87LXC2n3Tu9DPrVAX3nIi4vOGqE4/9m2E+nsIQPzgi0Fw0bHApg1A/q/CvNneaCuJ5NpykTaNtW2prawFKhYBiaMhlJVbWLQ804YNQpyRUHjBvDGIBg4BFq0gBu72G1tzA/s6NtnYZlTp250FSMUiN3D4f0RtjUtW237x/l8wnNEF7qHjq2rsGY95MoFXes/73w6sf95QtCqEH0/V3e+nt1rcxkOnK77lttsiUoJU2KSLVI3aWEVeXQo7nuszwFn0oSiPxVmf923XD6G1anHGgb3r8rqeFi7GZYthzZN4ZHH7dn76ndaBG8Xs5Sac92Tt115mm1ncSoZlynpCLLwvIz5Dk9417SuKRbxESMyzlZy2Lnf4kEFo0A0Y03UOJ5mVfq+/Q4mTYLjh6wRCpfS+Rhn66nunJGhKTgX7z0Lut9i6ck6kk/ArXdaAFI6puO/tzXFgcOF6p/h48+mObu3fA2YD7h1G3zEssW3G06aHiQF+61rfORMi7/TJVdbAtOmmuy5kMbhnejgTPvNppYC1GnwMAf29jX1xY4d4bvPrEeWsIo8lLqSBNimZMEzz+G8M0CiFTN+3Zx+euXyMaxG7VfS5/4a2sdNw4QW7ZnH4che2KOJFw1sDc1sX952pf/xdSmbeqBXtlGQb+zHi5nOXQlzxUK6FcMpC/NRboSR6WYLAc+ww6S++wru7wchIVC9lGWRqotJ9Tl1eqccs+UPqdHIOxkqtWdURtNCv6Pt0Ju4oalgTiR8/J7FsXQ80AfefQPCo+H70Zb736cfztgxapKc5jt199OBnRk08ls2rgk4S9dWt1BcehtnZsJ0F8Qd/sQ8EUXzqnegtgNSS/nNw21QtAtp0YPYfbgkk6ZCQzF6ztkVDhyBIYNpPOC1+xbCe7/3fb7XLx/DatDwNOl+A5nyYyzvDLyN9m1sQfWVV6BDa7jbi03MmasrWYahjMxTejub3XkezYw9+eWsU18g7o2BMyGXbr7X8GA8ozSzwmDJNOh2u5XT1kKr5HRWS94IOtjWMnXhaBUNMOlpocpLGc/oudZgz2OlawSdAyXKwBfvwJRpMOQj+xBJ+ql5a6k6L3E+HKUo/4tzb6L78ANf89bw662yjxgUWdCs81bm/lDBNJlVrz2HNRuaGfgibwEIO9rESchecCGG4JaKKkZ6/nGUKV+Tl562mNzGrbZENeG7ZGfa5Ft+q3xzvt+4XAwrwq0UN8DZsK2XCxV4+ImNFI3NIn7VbiLzxPFQL6s0I0aoYgszMlfxj7/1ZrmCIUqEOm8+itmS5M28mTxnY3YPlTahli/m8rqk5VlU39MxbTLc/SDs2QV+eaBCLFQrBVlBsGgdJosV/UU0Gmn1ylhk2GKqykhN9uoVcRV8Gw6i/t+TNdLrkvJOSrRIun63Sv1tLJ/35Pm6x802WKXmPNatbGK2WcETREGRuk84eya9+ch1hA7aX2M3izbnN+evqRoN6j7pTJ8y4EIMy3y/xXHuJl/RGxanpdAgX6wfrt83zu61311Iu9cvf+dyMSytlImy60HckmtuWMe3X6tHcR0PPbmJJx+JNTMMFQO9PgjaN4MateD5VyzyfdetkDvKYjC7d9lA2Oc9fEH22Sv3BWg+j+LBF8btnLB6Wf3ftUOlhEsp5og4Y0mBIflg72GIDoeSRa2Y2vLltv3LaDyoSVXeylPwMxPMvBKRDFn4U9WKtjFFInQ6KpfMoEz0IObGv+6cOH+nsRtWsQYFnJXs2WYRdQHGRapksW9dLQfWuRPIy7Nx61m1t4D57jMpUL/Z987iWWcVfi7UwC7V+y4Xwzr3euLckIBYJz17jmhm7kuDtnDXrcGcPGYlHr+blsqg58PZswO+Hg+39rCSkAqE737YNr0OE51cppoJ27fb14TYR2hgUgHIndejp+hNmV4WOt9qis5YYPEpAYl7j8Dhw9C8OtStaxkXYi6ImfLZNxAZDklH4fgpW54xMkbeFA1TDpLkk0et12PTroWdXDH8UyhcEsoUmcye2Y87236dO+7qS+u3HMWS+TcQmgfSj9swoG7Tnc6yeQIq5W1yUa3cRtbsijUPgjx6tXqHWLM0zgE1C/7px+VoWL5F0LlVdPu/vp59e7Y6Hw4Tv3q++/bXA8kfWJHJ4z4jIF8xbr62hWlcnTwVpi+ypY+OrWDOLFi4FNastNJECqa1fZUpByWKQZhuQCCmSXPTBpi/wHoCZVzyKjIADe1Uo8d2cZbyW/BSMUz+MMtMHfO91YFQnJbmKQHq7A0M4iUH+m8lBXXqQtvWsGiulJW/xf/0UGfNfq8d/Nfvu9vu1jokrF1mxqpIt0KZpQrcTeoOcuYve8wzrACqVN3GunUlTElIHUV58kFwZhfncNKvUlv+k9b2VxiWIg5Vxn9vpK3TF3q+Wq9Jd2fpfLWiSZAiyr2rTyJ+Saud90fUcK+95V/Ur/aymY9YuChs3mcD13eHw4p5P62b6Xz2WsEMov6ziU4/vU+xjjLJqpVtdlitMrRqBAOGwLYD1rjEi5ImQ+WCkHzSdoNr2Kf4XIqhJCiiUo5Ry/EK5lIuvOv2Pew7sLnF+wP7zoHVF3pT3VrNRhA/7y7DuDBxWoiVZIrlPmf/T1maW772DjavKHW2MC9v2b7lJiYXr+c4H4sO8acef7phmYZVwl53OP2gR1z6rQuu68JxB3aYJ7PbTf9i76HOzuJZnQCla53cx58dxID+MThZUSxbAy++DVO/tsG00HqJ/ZvDo92YvkRpK8gQxDYVluWpB2rfCvM0VgtUgGuvg3VLYNU6C5jdfBNsSoDvRlng89orYfNWS3sR5LB0syf/JKjBk9aMiIFy1R8kfsqnEiW4mLvrlupUB799y9guLQlloSr5+EG+gtA27nbns7mf+L7PbdJtM/PHlbOVCa9jXCOMb7lmoDP0Cw8MvJhf//fe+2cZlnKn4sJv5Q+o2fRdapbexIefSO3vYtRW5O18zYC+ggyu627i7SHljRy2xrlpto8aGVTykJD/wZOwyfsZsSqVlQWHWAwsTYK93pAopW/RAVa6u2YTW+v7cASUrQAvPgL1KsCSrfDoi7B9l6UbnzhpyzeJB2x/Xi51QAv9l+SkGmAbvOWsXfzIH7lNbrOOXzF35g0Eib6tYZ/ipeWI43+UjetqOqDOCXO4pdoPZufMhy0onAWhEgNOh+qVoVJmXWfk1uV/5Bz+6Gf+FMNya1d/wlmxWvTM593GlfsRU/4lwwzYuuI9Z+f++/7oybsugbzWsRkLz0xk4tRgk/uLCiwOl6r5tSraaRWKttdss21QGreiNq4ExV0qEAuL8jRV5eVqV4bYAla448oOMHYyHFfTww3wdC9YvQs+mgAzJ0Dv2y0xb/YCOLAVUtNskpDqMTp7dl7NZ2OUuflS0Qu+VPetpx9j0Mg32bvPNnmYWY8er6pGjR3OqlVlzv0yl+Ld8TvypZUNFxnSH4I0pPMU1KlwiKe73e507venTXn9Mwwr2L2y0zYC0z5n3IxX6H1HAqnEsHYTVCh2xhn5dRwg3u9FH+7XQ77k3U+7s0Cpexj4ScMqD5wOh7RkKJAPShSypL0Tp6GAyjJKBENg9iI7QVWHb5qGQE6p7eQKtR3BlavArPn2PeVrQosGNhsMjYAmFaFDC/hmvKWnZClbDLBFYZWIrmy7iAaTuzr9fls843wX7S5uWoG3wjaaoVHGQISRyRF58WGj2u8481colDh7uNe/ciXLP59gmKYiDippUM+jGKanTkCNCic4lnWDs3f7WTT/ohf8Ij7wnzCss1sUUNNt2OAF2l1dn4qlw1k16zThMdEsWQtxxaFpQ/Xpve3s2/3QRZyz0usY2tR/jkUbHjBqLqKPSD6odD5oUg3mbbTdNEUq2qHi5WPhQCKsWwtLF0DCKa/1Pt3O7vHxvQwC79oBBWJeqnumZiVL6tueYMsu/uFWjO7ZXpCwE+JXQUhumDHLwhkSLLmyyQq+n9pEahAXc11nt7VrW3/H2OlXE+7NIVKyIO+qbytZHFL21HMOseznHuuNcBr/sI4FC0qajNd06oiSrA4oAbOZGJXq2o2f4btPBggW/iPndqGfuaSG5UJrNXEDQmsbuP2fmsOjTwUxZqItKheKhO43wMOPwduvQMly0Oe1DOfNFyQKf0GBrTuscSlm5Z/K2Blx5jGW/oOaEEQbbt0MAqVS4wetOsKw72wPYuJ+2/BQsTw0rgQjv4HEU7aoLHBTNT0Zlxkq5Q0PEHVEW2StspbpqW0lR7t5COzYaUU+pDajh0OFanGoFOC3uTqbhO8KOpt/XyvsvN4quOQDBKe/bRR0QtXw6kliyutKF7VxjR0sWFX5fEbrVit9N1sT3rcSAMpQvb5CNc/q3DTGRa3zd1y1lB8+6OHsw9dHdqH2csHvu7SGVafZF1St4ZJ4fASVi0+kb9/cZmFUHlHR9tvPYdVy2LoZbr/D7kGvDcN5qncrYObvnbULRWnVYgnz1hQmMxjClM6f9rAdVfVjoVCgHdeb5Ni5Nod3QcPGsOOgpYPkOaMt2Hqh1BTbmqXAWLC+4IFQeSTdUBWey8He3dYLmoliQRbOWL4GNu2B3NKTKmnpw5J7at4UgqLmOyPf80Zj/N4V/fx1N1/F+zmd9o4xKrFoe3SCvIVg6Jfe0KpTauod7ny34LwTxIxwcLO6u5i7rCAhMbaL219CxeLSK0v2Yi49kE2bpZM/8jXGTnzBk4m7uJP9nXdfSsOKdB/oe4CGTSOIXwoP3AHFilr0+dG+UL0B3NoVjh203b7RGgGXG6bMhTeHfOnMGveb5Hy3UcVilKgzh/GTSpKmQFaB0Snb2SLFPi1WoRioXtbOZh450Wo+1SsHd3eD76WR+hGULA+dmsOYsVCtAmw9ZGWyFSArxtK2agZpnoEq5aBoUdi03oqn1awHh47Z2uCW3Xa7yZSeVj4YM8zq1Le/72mHPdINu6jDDS30MEFZg02FIV95KJP/O4b0/oYf1r3Cy+9IlhpKREOZ3TWdGXj1oP//E2731vcyecFwTqg4ngv8kyBEY2QczLqpyUNAsIBezcMunG8dXTvvJzD1Haf/0F/VYrioi/k3ub0/+y23xRWf0+rqHmZrkRhaz2u8WTQ5dnhSybIQGQGhHo9ImZtu4v4j8HCfBc7Yz5r82skrV6PlVVM5eDgGJ93W65K1c6ZDmERo06FqCTtEXFyi4Gj4RgMqy8LLD0Hr8rBKis4DYeNa6HGNLUJrOPrMpbaHUHGMT5xN4KaCXsUlPj37fLmgclU7aGBnAmzZYnsEpVHaur0tXL//Idz74lMOCa9dxI0o5v3jc6YAACAASURBVF7/wPOsW34rIVmnCXRms2PvCOfYYaM67d517xw++LoZJEmVeZSzfNVvTg/ToBWua7mCMTOrKhQlRPrzqRakMdqoatrw2Bkq/0iHVYzXauUg89hcggPGsXqbZNT3/jue7JJ4LJfwmxg6aKSZiWyoLv286VdqhPDKEEGehqn2/jBfP6Cfnen38mvZzsBXKsL593w3tswS9m+vZ1Dl5rUtZ1yaIIo5jh2wlJM61Wxv3pHjtnQyZiYcPQI3XwW3dYXvNdJkrVVAFjtT2vDb9tixw6Zo7E1blWfQ9HmFJ2Zaiadfb5ir3vgS/VlxmaHquHDHrUbPgGcGwksDejgc+fIiDEvbZjcXvgHWO6YS/tPhXtFxKbMm1aVCrW1siq/3y9fPG6cpzq1WcyFrVlbBLxr8ku2gdHlaqfuoMG+knzwOv26HZCx10bKIkiWziC68iQNJrzsHNnijNy7iii6Rx4p0H3pyG/37FeCO3tCkETx8j+3oMHwFtU9JucWb/yfeuLIU0x8hnlMAPP8mTv8nJOS19Jen77qbqjBi2goe6Bdk1F861rYMU21pkrmeMwOCc9vFEn1GI+Y0+FI6A+pRLF7EFqYXL4C8aszsBnn84cMvQcS7Q2qDVxYohT+v+8ckVd6MatUTfSxQJVJik/p4cHry9b4nesGAd+CevgecEa+XvJSCam7JCgcJCs3PlpWVnAvT1DK0DQEntG2/lx+n2MYOrb8OI1UhrMsnlOIl8aZhxYMzBC7LyDT/p3Kd75n/w73O72iO/vK+XQqP1dP9YdKndO5gZaZr1YTa1WwDgU7eQIOeNoNuimpppryip0ONCRJ7fR/niXs1KVMEbHO40I7aVZ5i9LD8HE4uz9NvwaIFcKeqOcE2GJdO1cGjdjKZnkDx4oVMa/JYq8ZwIAH2J9hxuxL7l3rdTV1g4reWZ56UBfOkVSDD91ipalGXIYlKLC+brU5j30xqb8F990Dt8eKzS2H4iivhhgcXOZNHNrq4Z/s33x3p1qj7LjuSvnGSt150/OO+36sxH875gOUbyyPdMGNyKpbrgZYytYeP+fjURrMhy5t/HWybKtTM0rbdZhoV7OY8+6lqWxd0/NuG5XZs9z7/evZuGjaA44k2NlFJxddVYwzLm4pl5HS8gZGGWuZ1Q7zwNs5zD501LBfiKFRyFUVLhXNNK3jzDds4qRF0N7eDESOtOJsgA3kpaSTIE5rRLAEQItDDz4qflSrhBeR+sHINzF4Khw5DlzYwYSYkaUK9VwaRkRvhXLPXWUOVQIjvUTcdxroZnoRlhup2+SF+PGw8BO1uuschZcQFrfyFvUlZifLRc9uLLuyTPz2g0TSu+zkrEzpyWhJLfla4RNSaczuZDBtXdVRpamneomZr6+GXyEm6ZjROckZPl8LMBR1/2LBckKBTbl5+YRa9e0eYsSVnj3Mmrhp6sNcgKsPSHqhCqoBIn3Zonxe4+o3nan8P8e4duaIJuHYRI6eVIyUDIiV+dtrqNN3TFVKOw+TZEFnckuw0oE2GocBUZSJBAOrY1ZBMlVcSj9gxLYqtVDPcpWkUEkNLs2N8zbwcr/FU25pgA6n8nc6EHYes7ryUYNStYmS6fBQZTWTNgSvbw9hh8M1MnJ53nnc7v6A78R9+k5u78OPUKNOfOfNsN6zqj2JLqPRlAnqtn0KBIE+1RjoQQvClh6+KRm7YffKCePSeK/ljV+TCtwx8uyuRAXCXyn0+XSCfeL7HBfexVEz7uicQqyDS17Yu13zfozgj3hNIesxt12E0foHXmVRY7U/R6kiRnkESlCkA8RsgVqo0ybBU5RZ5KHlBNTOIZZBtyzhFy9gh4VERUKmsHYaZmgmLV1vK8llOvLydYidPWVBGmDfIar4fS7XesEJ1SEm0HcEydp2PtlUZ3IAX4L6b4e4nNjhfjdHUqT/sXf7YnbjwT7mVKU3zG4ewNqE9C1f6mYBdmhniz6vqoDUU+0MPs4aeppy0mhDCClX+b97gI2f64jsv5Bf/uMeq3OhLSpXqTpua0PthT1XYW1OfjQkt9hV4FG/5WtPPlbE6kQBPvgC3dB3Ehx+5rNj1mBHbaFUXCkTatisFydOWw/otdiutp6moi715y8HWmDIkfaSBTNLc1NgRlTK0SCF2nqGIeTsSbC+eEVyT2Jq2zzNQrow9N014rVIZGlaGooUtrBASDTNVrgmxsMT+o54eVTpE5Ye5alPfz/ErOj+TF166kEX/q9/jlqA8oRW6ExB6H+u2x5jzCQi3mKN7AuJioecddij80qUQrFEuKRAV+oNzIk26WL97/HHDGvzxp3w+pietK8Lrb3pyPPo9LyA0XG8vfTVZ1Pkkh1zYtwU++xpaXgE39YTIghbkXLfYKqGUKQOZqbDvJBxUodeF0ynW+wnV1wi8PNFwY0s4kQIT5tnMR5iUQE8lDCLGGXEMxRZBHgFPHsfPDoYSVKG51MVL2PijRGGvlSzYsiC0FcybZn9XY3jlGdXN0/lqGP0VfDQ8x+n9iGjCaoP+rznc5teVgaOPszfhHlOmcqIsNJE/CL4eA2Uqwa23WTE27Titmh+mXXxl5/FTx37vIv+4Yd1871iCI66hVB74Vz9b0jRVdQ/BNoZ1Thu76fvzbY/KvLxWrPVLYMI02LQbvhZBT53DinmEzueFmlUhzLHeQ2PrlM2kehNQ1VZVvjw89pDVIJdw2J3/suQ9X0+hERVRaOd15RjoQA09mlKfDTUbQoyqAA50uxFeewt27LIJiETTNGCzTlXYsgKOHref0VYoeOLdwdD9RihZZJKTZJ5kL6f/vWW/vF537yjahZn+I9h9IJ+Bf6SZOviVI9zz+BZ2xjehVRfYtQ963JjDrUHlnJafGeLlbx1/3LA6df6Gbtd1Y0083HkXlKvoyfB4refyUqbFynfI0nxCHOIXaZimP2a83LOvw+zV4J9sDSfNsRiUGZgkzxRpdeBVMhGzQJlbnhLwQE944k6ILGw9Zd8n4fWBHmXEi/WMAXtGZfQePC8qqEPaV4qtJEh2Q0cbsH/xvW2SFTtUHu27aZbIp/avpEwIC7IwxfEjsGWZKUg7Tds8JVmO31vsy/l194HXu7J43resmOEV8Ru850yfdZ/rzmtEp0FPMnFSJxpVed9ZuPLcBs9fvaQ/blg3X/8VDzxyA0f2WAmdNldaw/IJZegnzxqWL571cC3FNcK5BE18+Tn0kHaFgucQi7PIy5gOZ3mmbMt/Cg+H4yn2tbr14I3+KqTajNHQZoDuPWHs5/Zi9eT5BEP+n5F75yZookxJqF4bYqPh0zEQmgv63AJNasH8FfDwKxCSB9rWsuWgWrVgx36I9oPRo+HtL046ffoKFP0ZYn45G9GvnZv7xIBnGfV2f/b/X3vnAV1VmbX/3yEkkAQICSUJHUJP6CC9dwEpCmMdQQQdywiMBcdRses4MlZUxI6FJlWq9Cq9994TCCWhhQD3W8+7z/VjHIEY/TvOf31nLVxCbu4995x93nfvZz/7eVI87rr7A++jIUFRkSTa3rSOaaPre1n0Tsp+YJUsOZEZUzpSTknuASgpScegWIa/7f04sH4ATLWKqBILgTdfh4cesWFTaaar9FcPUEBd0ElebqoyPU87Crc+AEMGQVQ+ePsDc/x69UVD4bv/AWb6bsHBlsuPv2Hw7wpQSSTWrAKrt0KLBjB6uuVjj/WEu2+HXYfgmSEweRL0621itIs3wOaN8PVr1la665GXvJ3b//rfGEg/dc6B1g0n8/2u9qTl7+2x8SM/a5YyiKAGn/V47W+bncDScP/OhvDAgtUrXjRfZ3GFfF0FrQKuEgxuQf6pOVl1v2Wiik1b3KZlsHKRWfE+/BJsXme5kKZlRK91CHc4pPsj8S8MhEefsdd8/Drc1R+69YXR78PWvdCjO6xdZgHrvlkQ7Lzsa+p/tT0KoyleFOIKwoYd0KkVzF1h/ofVE6HbjTB8tOm4l4uDO7rCiNkwax78sQt8+o7U7S55Dw+S+oovTH/tC/57f0WgUlwHcpeZxKpF1TxYm93zzU5gJdWCv6yAaYGvRw7jD90jHR6ivEdAWy5fZ9w1OC87Lb8H7fAr584aBp9/AIkloGZb2LoOnn0Gvgha+Gk0XS0a8bfzwOAn4EGxccNgyNNw/7P25oPfNlH7uRIT+wOcTPPH6/0Pd20MF9X/q0zj6OP+CL7OI0oan5EmS304DfbuhTANI1ww966+t0NmJoxfAEVLwMjBcGA79HpgjLd+i0bT/r85AtCA7rd8waivqv7cqaLLL0J2AotA6xYfUTrpDg4dzGDAPZE0a2nItlYKZ+frr1YOZvA/IuhI79RdPDgqCZ/eZk3S81Zo2MzaDZOGw3ODze1BR/Gq8PRA6C11lhD48m24/UGDIUWZmTUF6jaFSd9AJ1F1/CNoFKBcLtg0DmJqLv/TqibaiEbiL0J0JNzQztRjjmtO8AxERdiWSxSMmwEJRWH4UChRAvr0PuIN+1iuTr8XiEEAs+Y1p155cDJL8d8sULFaeW/zml/UmspWYGm0IPDMK5tcH04i+5072+CCmJfObPIn9EEd81fJuxL8UPj4Q7jrAetNSXehc0u4vw9c1wzOH4Z3PoONB00QrFFVK/FHfgl39rHmqH6vXg2z4tXs3pAP4P6+1sl3lnH+Fhz8hk7a6DL4Q+eiQQU3XOpB9XKwYT10uh5KlYIz6cYfE19s1mo4LsXkr6FKXRj5MWzauNEb9I9E/4MuD9ks3b3/By/qFbi9Z09v+CdNf+F7a8RIF/AXQSfZDSwCJStN5vOP29O4rrmYutzK1y5w7RsfEA1ylrQ6BLcjNX47dYUFs21sXNuMXhddBjo0hrtugOYtbaUIHtKOurWXQRGRYWZO/kR/eH6wXYM77jZBM3eLI/xhCfVvFUB+C8mJtym4/apTxYTwLuVbTZOMYrN5t9l7qG0kPtehYxATAf94BW68GWZMNtnq957d45WUc+Tv4+gFb31UtMJG78AWuVj+x49sB9YSKFf31tum06dXKeo3gFy+pKBsONxwQlDcLKhFparPnx6R/90DD9sYush5OgtRUOSrIzJd3nCoXx1qyNGrDETnh4GDYNtOCCsAF9NsfnDUu9DxVpMD6n4HfL8Q8ucE6VAdU/c+w5xQ3REUyL3CNdcOHh8DadoCZaTUFhrUg0jRnSva0Or8uXBnX9h1QJM4Z4i/+BYfzPhYROX/9J0MtGy1m6MXB3hrZmuQ5T9+ZDuw/I2mDb3vn0hcfJjjQEkbXJMwgh3cyhAUxvBHkZxN2xFo2wXmLfKpKb5YbYb4VLmMpqLmbnDgWfGmFSPZd3pQT1BwREJVWDQSCpezFVPIfGaaSQ6JDLl4GxzYZpYesimRtpamcoQqK+idF7TPB8uTz/p+St5LFzMbudj8kJRkUzk6ho2C/g/CqWSjJ0uvQUeleufxDn7ClgMTuHhxqob2f+u7GoCK1Gz4irdy4TXVjH+rc/slgZUj0KLze5Sp0IfCBczWo29PuKGDQQVOBc/XK9e3cdtPCHw7CTp3s6FOkf1E3dBZiE3qSIBqKWisSzNxst7Qe2kVFM3D79Mp8ArFw4sPw/VtIV4zr8E0R6o9mkD70REczPc7Olm6wKI5L10JoybAyC8g46SN5oepwX0R0nw3XAFaMm0qEreVVs1TeH/+7d65Rb9JUi/yEbfdO5Kjxyp700ZKJP93cfySwFLoVCSu8mP069uTW7patXT5sXs3bNoKBw/Ajh1b8cJimfZdFOtX+3Yi2gp9uWon1O8n91oxlKfJQkSHe40v1O98YwRrSHgjAAmV7E98FHRub/BESrLfz5MxkWQTw6FcCUg5AeFREJ3bWBCy9ghyxbTQnDoD0txUwi5Ma9YcWLMGzibbWJjSWpHehHNFFIXVq+FMMoSq5aRzFWIaBnXqHmLZvOa/9hYZgMIQ147iMbewb1sokWE5KBAbC5GVuRQIcGL/PE6dSKdYmRxEFFjzzdZlo2+8jJX7W0bcLwqsy060Z+D5QU/ihcYQHhFKJpdIO3WevftWeZ8PlT6TKK1zA717Psa4eS9zXA+zjAEULD5vXIGjlUCJuPQQxGBUAGlUTIOjThnGT7bFp3I8dU0H++2iWvXt70dPQK506NndTIhOiFd0FvrealYeC5ZCw5qwdbs5QJxVjuc7ZZ06Bbv2wqFUy7WUo2m+UD+PjrIVVK2l/NGwPgVyppuzRIYMkMrB6aPmTnb6GNRqksyKeRp++FVWrgA8RfGy/cgTGU1MPqhTHfLksVaWmLHKX8XKkA+iRtNSUuDiadkVf0+1pL/z5egpGgD7rYLr1wosna+eZ+19/pCfU5Lz/XXt6wSeeqA//xw7mPQDFixOWFaqwwJDZTyuqWQgtqAR86TkIpBU+ZEC0Y3AC4j1YQPBChWrWfBVrmAY1LdzID4SRrwBRYrAsDHwupzYyxoPfuhQSCpnegvHdIo/qqoFa+iriGGhtpLOTY5ZRUrB9+sgOh/Ur2d5m4Zhxas/LfzuEiSWhO83wCl1DlLlGT3emzgnS/ylK93wABShfpuJ7N1Zk563QI8uRu8RCzZ4DPo7Lh25r7eNxYmVIe+c7+fBky9CdCHod0d/r9dfXv9vDKxrnnOgdMFn2XX0SfdCefQ5pwd/8jhw2gYeqtew4nD9OjP2dsaOmpTxx5eUv2mKJFzVXya0aoUb8qxf28DM976EVu2gQwOoWgH6Pw/fzYd6GvKoBNNnW8tozwHrFihmNcCp/3EB6490BRkRmjJq3wR27DZmg+zXtu6AdRtg216IyA9tWsHsyWZyvnyDibY5t63iF1m/XePw2XasD0TRnZPhI537xJuD7EHTobVHuGHeUHjwSTMNeEE918uPC/DhR3D3PZAj70DvUvor17xJv9ILfs0V65qnFChfchhb92i23nQ83QRMJNSsZM3nHQehQW3YvcVWofR0Q8HLVoTYAjBnsVWL4ppLPVmzgOUl/agt4Bi0agqfjLYpG0EQHdrA9v2wYQM0rQaRIfDdUuv/5fK3Ya16QUA1yEV0/j3K5XwIRX+vXslki5Yth5HjjYSoJ0AVYpM6ZjD5zVg4fMBvsOeFE1oRvR4e50dd8+Jc4QUBuJ7QmG8di7NpDbizG9SuBwXibI+QBr1WaWGBzevAln1mQnBsH8yaCvM3m5bqxTx/89j3sye0s3ve2Q0sAYMFAyVr5mPPllByF4ijSORtaTs3bYwCmbn8FIXECzRru4w502q5Ci53ADLEc2psPnrrlhlFOKk87D8O+w7Ckd1QIMroKzd2gOWbYdcOW8V06OYL6VefT3mHnCzWbYNVy42vLgC5YBS0bgwNa5nT6cqdcDHMqjutfELk9R7ih7l0zb8kztVLcXzKVoM6NexnK3dD0WKQVArmTzEr4RMZcN/tMHE0RIXajd161Phc7VrM8qZOFdqbrSMAXckV9Y3Td1cOqGhS41+WdqqONbamFVjU4f0psO8k7FdPPFgG6zrlgQY1X/YWzBNv7Dc5shRYgcN3FKbByPycL9aZ9LTrSCzbkR3bcztBV5HgmjUz5qV8ZYa8d4CTKdvZv+8AmYzxTHlG9yyUlu2PM3NKJPlCLOnUwGjlcrBzk1FeGjeGMeNgxiybItF7t21m26BWLlmxHTpoP3NCHp5pmqunlyC/5J3Qph0sWQaHj5t3jcb9BXyOm2jiIRLvnzYPN/yqfM2pHSuINMSp8TEVCaIe54TIUChbAFJOwfWtLChXLYWmTWHIczirkLfHwLylcO/NkH4Mls0xja2x823esXqdZFYvKCmWfXbuaKBU6J0kh31ibq9i5+p8r6VA5BMBhNlJDESU7G4tn/S+nvybcfKzFlj97pnGyl1tWLwGMjXrLzRbmua+0GqJojBqsvkFv/lPeGiAebAI24nMN5uw9PcoWuwIh45NZevqMLdaSZhfHKpAmqnoNboe1myCjesgX8DG34VpxZWyHuKCOWYUpAA4eMjs1ILqxHKTr9sANm+BNLEbwu2JLlwQCkXDiqVwLM0IgtJc2Lj5f02WtK3qfbStaHpIUJowt4vhUCgPVC0Ju47Cg3+CCd/ZyNmAPtBL+qQH4PaHrfrSVqtA2rIBoi7Ahn324JSqsYPdiytnV48qkI/bOB853G3Xaj0pPoNNBK2w7nxVWfvit2qoOzwwFEI1gaS8MSe0bfNXb+rkl7IT3Nn5nWsGVqDRdU+zZs0g0iX8Gmc6Caqq9FAsXWS+N/q3tp1g6mjYvxs6/MFKXqHpEjsunwAdb7jAiMk5OLDNLEnVI5QruhijylGO5YR1OyDiDDx3Hxw9Cot3wZTl0LERxIdbVRYVDksWGUovGMEl2Vpd8kJMDOxQQMr2QyJpHpQrDydPwgkp0+SwbUqluVpPqvgk6q+dVVufFgJ1C/Rz0X80/VMrCfYchpatDPj9YDgkJshECSo1ga/GQql8UFjFcEFYON88m/XQSbcktvwmL3mtdCmydQQiuJvMXB84Tr4mi9x5X8Zf0AqrwlY4oMsQtArrBSqMgqImYdD1pke8sV/+I1snkY1fumpgBaAGD/db6XIgCbpmKprOmeSidNBT02DbDmMCRIbDpK+hcVvo0w+GvWNLsPIgaX+qohILNDXVtjhtQ82bmRHj9U0hLcyIddUSYMK7ZmFy30sw7GtoWAU6N4QvppoJt5xHBZq6GT+fV+XcTHwg9cJZgwVqV7dxrS3brLco9T4l/c71y5+jE/alClPbrSabg1PbeeR7o/cPsVaP6Mtiy44ZD4clxSQYJDckFIdbm+MGdgcNMc0tCXA47feLULTyJu/AuuwHVh7+REauIW7iSHpXyqscO9bn7iuY9HGqbv1WrNmuSCbAFzvJm18FykPe2bQ3sxEj2fqVawXWU/S46RlGfAR33QEfj4eYwoZyiyZTvDSMnWQDj8KdHrofXn8b3nwf+vf3VX7VdNC4urhP/iyfBiWUnzVpAoclz1PZcs3Pv4aON0Lt8hBXEt4bBSsXQ8VYqFEZ5q03ZF0VoHIsR+BzWbzPBVOw6N99EX8Fr/ImbQUOrtIWrMlffW1fk8G5RwiQVQKvQVS9xjdV0iqm86xS1VpIslmTVe6oUVCouOFX7epC4/LwzpeQKgpQBGzbYNuR8rc61+32li0WJz5bRyAmvB8n+ecPmvFq3Dutet+/WtNGejg0yeyocL45u1IRpwKoh6ygzqu/t3vv7wPHCvS4cQMjx1Tm7fehdQVo1gOSz0OHprBtK2yXJq0vrSgrkOp1YdFk2JkCTbvA0S2+SbhLBGx1qVzJhku3qboqDlFxpjjXuR28/q4t49LYqtHYqqBz++zmbT8Ii9Za4qoL5vIgX6BfF1pbl2OnyqUriOr7RENRod20jq/X5lpHKiCCAXUWypaxCemtOw1o1aogpqvQ9zKSi2wI306BmFC/JVTAMKw8Adi1CfIUNad5UaPlmiWcWNtWk3pjvHmLss0yDRSIepSTma+4qtCJ2/pbtboQSuT1724A2O9OuIdHq1Uu0w3TH7lV3NGtv/fJF1kKrIAIg/Xq3UhE/voc2gVbt4SQO+YCJZJWsmmeFACvOThyxRXLDcRXSdzJvpQS5FFV9SZ8NQVeGwK5ZKotDU+R6tQoVmmvpDI3jP4COneBFt1hzlifTCdMSHlPBJSqZNvU8pWQLlGwKKhY2hy2RHGZv8o0FoRRFS0Nj/YG7wy89r7hU/K2UbtHK5MCy11r9Q31xx/v0s+CLvcO4Fdyq3nAoEm5Gt66MVpJ/fcSabF0HMxdYgrM7r2FlylnUXWYaMore5Xn5TE1PE1ZFysO6xVYUdYpOJriGxIo5wmD0rlu9TYf/ypby5XiJTp6ICfPvURu3yNbIr5i6uq6Oflvn0USFF/Rw6WHzE1CSSLSlwjv1GKAN2aqLFT/7QjkpQD/ePpRho+MJv1SdY5l1GG/DEBzQKfmhiEuWoNzby1U9iD5ct3B9j8v8bx7/qWzcvkbXy2wClCi2EYuUthJ/nRsCi1awJ0PmIdxbm0h2tJyQYUy1uQdNxYGPAqvvQJPvwDP/s1AyXMq7TUVEwMlq8BJBdRZw6eKVYAaScZZb9cMJ9OtvEZbjoZRha7PngUly1gVOXOmEf2cp4wvhSQNK9ekVqUaYgozgif27Pc5YL5Zkr6tKj9Hk/Y1orRF69+EB93SGmYvhn3icikPFJwi9oXyM78JLucK9RxLJEGVilZhblUO5yvTeGLRnrVEO6lSBombEr0R5qyRnSNQKPoJjpx93q3GIkNqqujYcdh10LoWgRN+khUsFT0bl8ufD06eMDVpNewrJv3ZW7HireA5OIeQWsVuI7JgPS7mbMe23TGk+APOetjUdP/bABhwH4SEw6kTMHEWPCunujB4+619vP7cEGbOLE6JygVJz4igYqVIZo3/s2cCcj99BCCJ+o1Ws3NriEsKVZa/+hSM/Q4mTrRVQziPku7EalCiCEz6FurUhrnfwMSp8Me7jP8kFT89QWULQ81mMFKDD9fBinWwJw0aNTAXrc2bjQtVqjCcPQbVqsP6o5A/1lY7SV6LRuP6jJfpRGjFypvXfG6SKpqN7uYdFlwCPxWIuuHKAz2ZGGlb9PW7nNKKrsE5uL+bjXxN1qolNoOSdwWWEvmc1jvUVivU/lw+n28meEMVZJjx590U92m7Xl0bjfXGLpA5d7aPQHTUQI5nvGQiJhegRnm4/z6nKcaeZKiWCAU0k+mrrCiQtIq1am2Fxsz5JnByXfMn+W7CFzSuegsHLzQmNHddDhyKJv2QnZuqdOXKQUPPxMrw7VgoKVEh/9i/DZ54ET4bAQnlrKjau38Dh1PPEJbvIvnzJXvzpsqFY9fVAqs7iZVHulI9qTLs2gOly1k1+MYQS4DlQqWRq7OhxhevXc7ykLmTITYeWraFLRI+84csVKaXKgljvoXEUtC4Dnz+rdm1ReSD5L128yQGUkRC/jGwPQX2J5tWvLGCQwAAFztJREFUgmAAyew4JUC/eaxtr24NiCsK06cbc0Er0NE0SD0NKfuhcBRUr2YrpHJBqdOc88f8lbhrPxUuVrUs3NAShoy0RrL0OfVzERedqIlvHafVTIHm8AkfJxLbQsm6Y84CRRMgfn1Nb/mVhWizEm2BwnFPczJ9kLlNRJgxwmP3mu78hLn23QvmNKBYvU89xMLuDh4UVQl2HjbopW+vE3wzLifrN+X5gbqmWFQ+6VS7ndSfFQD63+s7w7jhEJrH6ERvvQ7zZkOlmrBtPaxdf5wzma29o4d+0h74aoF1H0UKv+P4SSql5Qiqi9mlNXw+0lBmPb1VqpnMs7r8sflgxRp44Tn46yPQuRVMWOADqRlmaH3xKEzVigA0bwQ1Ek22MU1it7mNBSqFGXG7du6BI2mWjDobE31xP7FWzibj7zKlzdpE5t/yzalfA7YdtoCWbHaVBDghtF4rTDSsXugLvgliUPIr1oRWLX3GWeh/l1Gb3x1qQrya1nb+O5fNSrrE2f+7K/0dU9G2YmdNEoDm7ed5s6f80sEGAtGxz5N24gnnC9SgMYQXhDMp0L4h7Ew16KVZLdgu3FDT36HQvjnMmQefyf1Xzmix0KaNERblUiFRPK1+7jvp1DVU4o9QBKeaNEPwybtWUT/3CuzeBAPuhaR6MOyf8MTzZ0k5U9njnOSj/+24YmCthz6J5UoPdfxvlbK7tllTWBPCW7bC3IXGUDgXbkm72AmqqlSS39QTRn0Erw2ER161CktYSqOGsGGxKceowatV6L4/Qs4zMOQrS5K1EiqAdDMFMgrUVPWjm+Z0rMJ9yza/SlL7JP0EtGhthpVTpljgarVT4AnVb1HdwNfv1hidRFubynRHLtQwhYLDb2oXCId7ekHKQRg/yXIl0Xb0EOkI2qME2TbK0YJOqqI+i/BXrAjUKXGjN3bJL+afB2rVfZ0VKx9SPUFCaTifz8Tm3n8Kho2261WxGAx6FfIWtNXlsYdNjuCNV62yLRkPrTrC2Mlw3FeIVnXtmByXDb0Et0HloLfcBkOHWCNq4zaDgGT8JJhm/EfQbxDs3tfTg09/VmAVhD5HisUP5dhpiCsGUblg505oWt/ATrmbal/PEWV6VJIXVJgqqS5TE1aPh2kToPu9ZrWmSkpaoEdOXuYwL4zpAvyxM0RpgPUbSJZuuhrEBtDbUxWcqhF1Rr0Xoc96OhVsGVAh0Xxv1KAWHUYNZ3nlnBPF5jwMvNc4SsO/gYQkWL3C1GKUX2n1CX6QepBK6vOr0ZsIG3dD6nHT1HLVpY9xOX7YZUZkDsn3qe7hIdC4zXmmTymqDTkr293VXhNo02YoM+f0cVigtmBJOt3d07C/ex6FvndD20bwxidm8yIQ9eZbYOIMGPWxrTglCkLrTjBygmGAzvpaD4ovnKLtW4WBqyR9sLVGbdBkVGxRf5JK4mu6IZEw7jP4699lINrbAzeG/+PjagBpn0DJEkOdUIcS5jPHTY2lYjloUB0++9omhdWsdQp5GXZTLkbanN+0jy3Cb+gJB3eAJIfOKhgcX8aXONIKp+3tErSuA3USYclqmL3C8hW1i5xImrOFsHPXGeuJ1dKdN8Ia0qLVuOJhiQ1WfPKMnZPoxd9MgCSR/BrCd6oo88HGLZajBFs5Om+X/IZChnIOBZx6on51pLxMFYyqYLdl6Kb45yNBNvHxZcVbPwnatodlW097rz2d55cGlXum4osO5mhqf/cQSHe+bhV49yV47jUYO0M9QIgrDLOWmR6riJOOISKWh7SCw6BIQWjRAUaPgxPJBlhfPvPhBl982CKYY+n3nn8G/jrQl0ENPoCSW/8nvDUsk8NbmnogLtPPDKwCMUPJG6UhAUuWxQVXM/emdjBjBuxL9YHEi1C9NFRMgBHLIcc5eHoAPP4UtOsKM6eYLJG2VHc/hJT7s4fahlzieA7qVoR61xmJbcVqA2BlrevaLBE+ou5jS6IUiw6zO8UcMFrWhcFf2lP77pOytjVBj3+8A3Hx0KQqrPveDMTFpZK3jqpLp94sPEvXOjec1lOZAfmlmSUN0+P+jKKCSo96DiMQloqFuAJQowaUrAoVqkIp+e0Af3r4AosmPcKGLSJtbfHgJxPcrAReIL74YI4f7U+mxuIKwGuDoFRBWCIGrFaRMFi1xX6mnUTQZeQFuLUxDBkKM5ZZl6RNV5gwzmyMFViuKvaB1SBVSCuWkyTQf0TJBp74C/z5bigoqSht9elQt4tac0e8w2tjrySNecUV62Xo81hs4aGkCifRyarMjjEMauADMGs2zF9qGImS7hoVjA/+7XKjN/a5HYZ+DjffCiO+sm1HN/CCb0CpCkvB5br2Mg/SjfSZBdXk2lUe8kfCkaOwYSvs3GeKfVqy3TYo/ZMqZjcihLtHC2ur5C9gzIZ61XF2c99MNZ13kQk1DqYm9JkzPq9e4K4CSwCu3x4SC7Vm2fW0b5uX3UdLckNbO3eBs3K9EHxRvoyJiQQPncvq/XBoK3wzHkaMgDjfVPNifkjPWEWRnNOZs04uqz+LTRpo2moIC2f/yTEtEutAqaJQJAo278RRlZUj/fWfNtp2dy94eTgUjoQPJKAyECYvhsKFoEcPGDsBDh0ykTnlsG6QJFh8+NhecCZU90MArEDreg3htu6WcixZB089Jkr4+97m5VfUyrpaVXg/RWPfdm2LYgmQsQc27TSu9yMPmR7nZ19aVLdqYlLOS+abSP+OzdC9A3w5HvoNgHfeMolsVR9qZOuLCaoQbiLlvgpJxsRcuQ7CJARy2io2ed0kVbL8TDKNsm3bth/274Odu8yWt1xFk9R+tA/MXQZzVtrsn7bjojK9PADdu9qWO2KMJd/K6874AKv7hwyILwblKiwiR+hQb87UTwODB/di2+GPuLmzwRPOZcxvcquZrWa6ttT1O8xYc8t22LfJVl4R736wDL5sXapZ+RJVKs0mb9Rr3tsfZcmUMnB9x6+ZPfMPxOcxwTfdiwfvgMdeMnXnv/WHT8f74rPi9M8yeOW+1vDQX2D9TgusO2+GkeNgjypkPSiOEuFr7vsq1m7F8iUSBL9oukm9U0ka6N8joky1unLVA2xcUe9yh9cs51gB6EFSpRGOFxUVL76oBcHhs9D0OpsW/nC4ic3HFja1u0Y1cFvnyLHQtK7lN59+AQP6QYyU8LRPaC7PV+kVhFCusE3ApGTCvmO2eqkqFLtBI+6XTpsYWmyU6VlpMFYXTmNY8irUiiOAVIQ+tWk+nw5HfKlH5T9ytRf6L0139TmPHLHJGiHlxUtqxT0Cx0cRm/KxNwctt1YvVGj0DttX3EdYHmuRKHfT6uyoKUKzBVfI2UJ7j5/MaxVWC8ip/qnPqFX4JJSWuVJ1IxjqHBMqQ7FSTzF33IvXGnAN1K/7HstW3OMeBqV216n70QEeeQ3i4uCdx+HLMZY71qsLn84x2KdPG3j8aZxPtoZTbuoK46dYOuMq4qBYiipjny2h4sRxu/w8Ulum2CRq250TPecUJFQ5QdypG7yFu66qlXXlFSuBslB5HfsO5aZgHkg57CPOmWIjQvFy8N4XJt2o6FbfUNuI5KulsV69DswbAzO+g9tut+RYXsnKaWoUhwJl4LtFUL8SlCtlT3/yJXPsupRuQSrb2lXrDUnXNnlK/CJ52YdCGSkd+za9Z9MNCjkTgJMKzExoWNsU/1LOnWXi+BAql85B9Wo5mL7oMAcOTqUYKazaPhrY8GPvv0BEyRrkD19O6o4cLvgOJtv26ZgEPv5VvzIInf5wjIGMTqPCb467QR+9TpPWGVAiHmpcB1O/sypUUktqmdzeeaD3wZdXHXAI3NJjKl+NbOu+v/DYmk2hZ3v426uQUAJefRye/wccPw8PPmhidIKBtJI98SqsXQFFoqFLR5gwzx7eUK3WKrb8YWH3JGklF0boT0FpdxHQrAddu0hi1QwKR3/FtGkvZ2Ve8mpbYW4qVtvLrl2FSErwcaQzhoInloNGLeCNYdY308mIeKcTVdmtpnTdljDxU/h+KfzxdstpdLIC+pqLrbAHEkpB3apwMBWOHYEZCyGxujWgtdWo0lqwxOg3Qe8XfYZYCWqjKD/QKiGoQxdAxaOGRzOPa9TrCC/9qaNX57ZdPlMpLNCTXHzCEc9ZaV35CNRo/Qar5v6ZIoWgSXUYO83E9bXyuVnGHKYRIT35QrGwYJmtnMqGXRHg0yjE56pV0UBTIefKG6VpKms36ahXrHOEzcuKXY1dGri37zLeG1o7KGtB7Sbwx47w9CsmAfXiQJgvwbgTUCjKmuAxUdCyGTz2IuzcaCvY7XfA6GnGzHUwi9pVPp6jLV4ruB4QpQZn/MsjFaCypVOJyT2MGYve8uBAVgqOYPF+xdcGut20iG/G1HerkfZkbQUSmC+eAF3awfufmZKwc02X0LxAS2FHGvCMh67SmwqBz4aZSoz8CYVmC+GWjVmXlrBiI0xeaCtCeF5f0qixFQkT5Voq6odWRa0GvjJMsK2jElPy3O4p0+0RmClUOS+UKtDX27X1g6xeiMvy8HCqttnH2nkF3Goj29/YIrBgneWFyk9kRLVxqzFTNQk0Q05j6hlq68hpuJ6qXfXfCuY1vE1bp3qMEhTRMIf6ijr/pEr9vPUr3rjSeQZ691rEhx/XdwGrLUkqzglxlu/mF306L2zcZfJNCghdXxVR8SWt8j13AkLOQ697Ye48G1tTJencV/2KWPiYKxGdZrntIPGFltCkwQqef/W5n2vQdO3AqlKmP+sODKZ8eQMH5RSh5D2+NPTtBsNHGKIuAG7cZGMWaEvQTdaW0ab1OaLz7WH35kzCo8swY2aEeyKEIFcsYiS6NduNxZCcCtsl2pITbmoNFSvB21+Zu+mSpZCuilBLt0/aU6BrawpqXulGiq2q3Kth1wXewrFX9D+86mrVpNpdzNv9oVOYKR4J67dBu8YwfIyvy5UTWtU2HGxXirFMIyVmonPR3b9kW48S353J9jDoYXP2ehkQLUq1+qEVcEMlFy9M9bZsbH/FwLqn5xLe/6SuK5LUXgr2KIXxSalHnosKKtea0YOmhyyXpQWO8KhuRQ64sxcsWwlr9YD4kErwQ0UELFf2DCHebopHTOL48lHejJM/5Js/9+G8dmBFU5XcZVeQeiCnW3YjImC/9uhoeOgmCyxtSYWEeeQ0lFrVmkrf9EwoUXapt3tLXbeF9ylanYI9xvDpyDKOwCfNz0UbrVV0vyZ8bzIO/Zjphh7f1AnmLzOjSV0slc3yNtZWpFxZAaWVWxdcD1pIPjijwYx6F1h/opx3TkJXP/8INKw+mYUb2pNUxlaEBattpTG42ufxK3n3tw6h8MobtTOr66Bt77ZOZlj+wViIURNXvCj/IdC1kX+18C+J5WaGpDNzeQXPWc/++xHofediPvy0niteBbNoRXa8M8E1Us7xhYSD/UtHR/a3Ygd2Kv+NgMf7w4dfw97tkL+kiqFzFI1L4+jhD1krnz4WemSf3vPjM78a8m7VUWK179mw5jqXHygg9CRExMDt18PEKTb/d/4YtO1g84ArFhv0r+W+dPVV3valNX/YZroTwii6Ub9SR9p1qcc7o8o7Xa1n74FbboIpI6Df83AE6HOrddF37IPYMKMlC9B0SbLus89O0CqlBrLm/8pWzCR5c0svPevqvj++IIGyRSeyJ7Wji15tfZLiPn/epqVVJam9IyaDKmSBxs7cSHyvAJQVizQGVm+ylpB8fGYusIkfXRMVOUolEksb+0DDTgXiYfv68t6VTEDvuG0hn3/RwAWuCIvntSuoxaV8zl+VdD0UdDoXZfgORdDWC6RdMEpR/7syWbp2E9OXTyKx8kHWfT9d3kVZYYP+/MfzX+Vnf/L3AyWi+pKS8T6FY82tQdQMXbwOrS2wWjSBKeNhs0h1UUYzLpUXNiVDQvW13rblUln+qSM+AO/RqOMNbiVKSICYcHjzE2sFXScK8ymYLTaCGsT+QKnTkle1JWEQIeXSqcqp8a9kVqzq4V04MS87F+KH4C9WYiL7D3R0giGqntQF0Pnkj7DqsFY1c7YXP1/dBAWVAlttpzpJ1j5Rzigaj4YvFiy3pNgZSV2CfPmhdII5PfzhBpg6E2/TGsn0iM/8b0ega8fJjJ3U3gYlLqMfO877ZepNajdp9RJY7FImKfLIuV4m42HQqtb73sSFWRL//yXXL/i7116x5NRZtdI+Uo5AfKwh4LVrQJtOMPgtUxU+ngon/aovPh90qwFvj4bCpRd6ybsaXe1EA1RsS+7Um4mKagKBMo6R0LWDsTC/+trUYJS5CktSMEk4RH9UEQq7KRan+cHPmb9goPcryGIHIgtN5GxmR7cNHjtkT35sHHRpC6OnmFtGbIyNhGmVUI4jtoToKipUVNFqRRNvXyBvHk3IaPXzdVPVZxSLo3wNyHcBoiOOezMWaNhCzcl/D6yqSRPYuKWT2++VRwa3PqepqmdKweZDGyIZOvqOFi49eH4nQzhh8+Yve6PG/s4moWslfsP2w10dBfnYMbU8oHojeOo1G9Z0emm5LTdyant5TLMqM3yBN3tOlpJoOQWKoeWy326tyxOa/wVWr7Xt94CqXJ8hGZkbypY8z9693xMZuoke8V97gzfM/jWeMrf1F4idTiqtaVobMpINv1NbK2+IVcNiMij30z7jNB60DeoCaJtyyKLp7Wj07aQvGuf2pEzQSJkMyytUMZ2uaRMh4eKT3ne7rjihHKiUOIZt27s5zvtpNex91NypT+tQeuAXNJpAUu6pgBKnTCNvTjgkDO7902veyy8//Gtdp2u9zzVXLHexmzeqxdqDy0nVBIsHf+4OOSLhtY8NgtCTqQdSq1fDpsY21ch7dPRU7/MvrljxXOPkOgRCQsK5oV0pNm3JSyA0hANHMskVuoPUQ8uyAtJd68v/5ApRu1JvVqUOcxVWg2qmCZErw1nHucEJUZu/nQXpyruCA30+ZUYItmJM/U8xYvV60WjUqxQmpIdPW+vx07BwtmjcE7xlcyXveBl351/PKlC0REfyRk5k8ybzvhZGqNzOTW5fTlLwG/tOYNgn7ompwWkpUV8kJnczb+rUBdm5Jtn5nawFVoBQ/tJrFO993NkpXo1+C0ZOh5GTbPDBEf1l2RsB9RrA9m0GTZC7i3cmWcJr/1VHoH7Lx9l39EX2r4HcEtHTXF6kVYLCqQoWNKhE7Q7FhJP21vaj8t83ynR8MgGPAnQzYXuycc3S1AI6A6WrjmfXih4+OHrFwHIPdr2ynciVfwzzV4Y6zpRWO8EcTr9CfH71MfV50vPS4ugL+qoV1rzZDuZP7+mln/vNgspfR7N+zwMPNH2FhQfvp2a1SBaut+GHHw5RHPWFAiLgB8g8/bh3cL/aFVe9aFn/9N/2lQFC61KzaW9yXrieY8cLkZ6ek8zzOVwfU4Ju6kOqwhO7wDnHCsDNNEKhMDf5KErD1An1Kh8saF6IXNrB0QOazfPdpLL2vQKzXu7Bs6OacyGyM3sPxbs+qVQHHbPVZ2aItq3RutLFMwm5MJ3U5HFs3fOlUvisfcqv96osrVh+guPOPgAFX4fW/UILtaJEuUg4E0aYHo2cIZxISaVZrf3eV19KazwoUf1fGVjBSxyAPLIuHw15brTsJQftu9YkZ+4YJn4lOoPPXHS/cZGShYrSpn1Ddu/xOKeSMVcIpYrlJHBhda/hI2Z8YlhRtm+0G9uCeKRH2rVzJ46kFSAjRwiXzmdSouBpxo4dB2y+GvPg1wufK79TVgPrx+8gamedQP7GeTixOTdRhaLJGRJC6pYUnrhnn/fCW/60xG/xFX77zwiIVRdVKZ93cqn6kNoPgxLcgm8L88KAKnw3VRjfRbyYnDSslpNS57d6g77V6PivdgQaVa3L4TP5OZsnJ2dPnqdxudPe+OnSOf+PH9kNrP/4if/fCfy+r8D/Bdbv+/78157d/wXWf+2t+32f+P8Am4VzOTjfQwgAAAAASUVORK5CYII=`
let styleSheet = ` .blura{
animation: 1s animatea 1 linear;
}
.blura:hover{
animation: 2s animateb 1 linear;
}
@keyframes animatea{
0%{ text-shadow: 0 0 0 white; }
50%{
color: rgba(238, 235, 235, 0.8);
text-shadow: 0 0 30px rgb(216, 227, 243);
}
100%{ text-shadow: 0 0 40px white; }
}
@keyframes animateb{
0%{ text-shadow: 0 0 0px rgba(255,255,255,0); }
50%{
  color: rgba(255, 255, 255, 0.925);
  text-shadow: 0 0 10px rgb(184, 245, 242);
}
100%{ text-shadow: 0 0 0 white; }
}
@keyframes ac{
0%{ color: rgba(33, 33, 33, 0.9); }
50%{color: rgba(238, 235, 235, 0.5);}
100%{ color: rgba(238, 235, 235, 1); }
}
@keyframes ad{
0%{ color: rgba(238, 235, 235, 1); }
50%{color: rgba(238, 235, 235, 0.5);}
100%{ color: rgba(33, 33, 33, 0.9); }
}
.btnBg{
position:relative;top:-17px;
/*background: linear-gradient(45deg , #e5c0ff, skyblue);*/
background: linear-gradient(45deg , #df4b4b, #ebda87);
border-radius: 4px;filter: blur(15px);width: 100%;height: 100%;
}
.blr-btn{
color: #fb8561;
user-select:none;overflow:hidden;position:fixed;top:56px;z-index:999;left:10px;width: 54px;height: 26px;border-radius: 3px;font-size: 18px;padding: 5px;cursor: pointer;
width:fit-content;
padding-top: 15px;
width:-webkit-fit-content;
width:-moz-fit-content;
animation: 0.5s ad 1 linear;
transition:.5s;
}
.blr-btn:hover{
animation: 0.5s ac 1 linear;
}
.blr-btn-on{
  border-bottom: 4px solid #07ff7abd;
}
.fEl{
width: 100%;
height: 25px;
padding: 1px 0px;
transition:.5s;
color: cornsilk;
}
.bar-indicator{
height: 100%;
background-color: rgb(76 173 104);
width: 80%;
}
.fEl:hover{
background-color: rgba(96, 160, 243, 0.363);
cursor: pointer;
}
.frequency{
width: 10%;
float: right;
font-size: 14px;
padding: 0px 5px 0 0;
text-align: right;
text-shadow: -2px -1px 8px #bdfa9d;
}
.msgBox{
  width: 550px;
  height: 200px;
  background-color: rgb(249 0 0 / 55%);
  position: fixed;
  /* background: linear-gradient(45deg , #e32e2e99, #ffd60b54); */
  border-radius: 5px;
  z-index: 999999;
  border: 4px solid #ffffffb8;
  backdrop-filter: blur(20px);
  box-shadow: 1px 1px 10px 0px #767676bd;
  display: flex;
  justify-content: center;
}
.msgBox>span{
  font-size: 30px;
  color: #fff6b4;
  line-height: 200px;
  text-align: center;
  font-weight: bolder;
  text-shadow: 0px 0px 7px #ffc800;
}
.danmu-word{
padding: 5px;
font-size: 12px;
line-height: 15px;
position: relative;
top: -22px;
}
.hid{
opacity: 0;
transition: 0.5s;
}
:root{
--rds: 0px;
}
*{
border-radius: var(--rds) !important;
}
*:after{
border-radius: var(--rds) !important;
}
.roll-entry-btn{
    position: absolute;
    right: 5px;
    background-color: rgb(245 250 255);
    top: -5px;
    padding: 0 4px;
    cursor: pointer;
    color: #7c7c7c;
}
.slow-dh{
  transition:1s;
}
.roll-entry-btn:hover{
  background-color: rgb(219 224 255);
}

.mc-duihua-neirong{
  color: #696969;
  padding: 10px 10px 5px 10px;
  margin:0 45px;
  border-radius: 3px;
  box-shadow: 1px 1px 7px 0px #bababac7;
  border: 1px solid #88888852;
  font-size: 14px;
}
.mc-duihua-neirong:hover{
  box-shadow: 1px 1px 7px 0px #ffa40061;
}
.mc-user-face{
  float: left;
  border-radius: 22px;
}
.mc-flow-right{
  float: right;
  clear: both;
}
.mc-comment-info{
  color: #99a2aa;
  line-height: 14px;
  font-size: 12px;
}
.mc-link{
  background-color: #dedede;
  color: #ddd;
  padding: 2px;
  font-size: 14px;
  font-family: fangsong,serif;
  transition: 0.5s;
}
.mc-link:link {
  color: #c9acac;
  text-decoration:none;
}

.mc-link:visited {
  color: #a1b8a1;
  text-decoration:none;
}
.mc-link:hover {
  color: #ffffff;
  text-decoration:none;
}

.mc-link:active {
  color:#FFFFFF;
  text-decoration:none;
}
.mc-duihua-wrap{
  width: 400px;
  margin: 10px 0;
}
.mc-user-info{
  height: 16px;
  font-size: 14px;
  color: #ff4b00;
  margin: 0 45px;
  padding: 5px;
  font-family: monospace;
  font-weight: 900;
}
.mc-dh{
  transition: 0.5s;
}
.mc-divider{
  border-top: 1px solid #d4d4d4;
  width: 100%;
  margin: 5px 0;
}
.mc-red{
  background-color: red;
  cursor: pointer;
}
.mc-red:hover{
  background-color: #fe4d6d;
  color: #d4d4d4;
}
.scrollDiag{
  position: relative;
  transition: 0.2s;
  width:600px;
}
.mc-comment-info>.like i{
  background-position: -153px -25px;
}
.mc-comment-info i{
  display: inline-block;
  width: 14px;
  height: 14px;
  vertical-align: text-top;
  margin-right: 5px;
  background: url(//s1.hdslb.com/bfs/seed/jinkela/commentpc/./img/icons-comment.2f36fc5.png) no-repeat;
}
.hate i{
    background-position: -153px -153px;
}
.mc-comment-info>span{
  cursor: pointer;
  margin-right: 10px;
}
.mc-duihua-neirong img{
  vertical-align: text-bottom;
  padding: 0 1px;
  width: 30px;
  height: 30px;
}
.send-box{
  width:100%;
  height:65px;
  border:1px solid #333;
}
`
//======基础======
var mbox;
function initBase() {
  mbox = document.createElement("div");
  var m = [window.innerHeight / 2 - 100, window.innerWidth / 2 - 275]
  mbox.style = "top:" + m[0] + "px;left:" + m[1] + "px;"
  mbox.classList.add('msgBox','hid')
  mbox.hidden = true;
  document.body.append(mbox)
}
function msg(t) {
  mbox.hidden = false;
  mbox.innerHTML = "";
  let txt = document.createElement('span');
  let image=document.createElement('img')
  image.style='position: absolute;left: -80px;height: 150px;top: -60px;'
  image.setAttribute('src',yuTuPic);
  if (t.length > 23) t = t.substr(0, 23) + "..."
  else if (t.length < 6) txt.style.fontSize = '50px'
  txt.innerText = t;
  mbox.append(txt)
  mbox.append(image)
  mbox.classList.remove('hid')
  var outTime = t.length / 6 * 1000
  setTimeout(() => { mbox.classList.add('hid') }, outTime)
  setTimeout(() => { mbox.hidden = true }, outTime + 500)
}
//======函数======
let linkRegex = /((http[s]?:\/\/)|(ftp)|((?<!\/)www\.)).*?(?=\s)/g
function newEl(tag, parent, classList) {
  let el = document.createElement(tag ? tag : "div");
  if (classList) {
    classList.forEach(x => el.classList.add(x))
  }
  if (parent) parent.append(el)
  return el;
}
//时间戳转换方法    date:时间戳数字
function formatDate(date) {
  let lag = new Date().getTime() - date;
  if (lag < 1000 * 3600) return parseInt(lag / 1000 / 60) + "分钟前"
  if (lag < 1000 * 3600 * 12) return parseInt(lag / 3600 / 1000) + "小时前";
  var date = new Date(date);
  var YY = date.getFullYear() + '-';
  var MM = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
  var DD = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate());
  var hh = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
  var mm = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
  var ss = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
  return YY + MM + DD + " " + hh + mm + ss;
}
function duiY(data, left) {
  let root = newEl("div");
  root.classList.add("dh", "mc-duihua-wrap");

  let userFace = newEl("div", root, ["mc-user-face"]);
  let userFaceLink = newEl("a", userFace)
  userFaceLink.href = data.link;
  userFaceLink.target = "_blank";
  let userFaceImg = newEl("img", userFaceLink);
  userFaceImg.height = 38; userFaceImg.width = 38;
  userFaceImg.src = data.userFaceImg;

  let userInfo = newEl("div", root, ["mc-user-info"]);
  newEl("span", userInfo).innerText = data.userName;
  let userLevel = newEl("span", userInfo)
  userLevel.style = levelStyle.replace("c1", levelColor[data.lv - 1][0]).replace("c2", levelColor[data.lv - 1][1])
  userLevel.innerText = "lv" + data.lv;

  let content = newEl("div", root, ["mc-duihua-neirong", "mc-dh"]);
  let contentTxt = newEl("div", content);
  let contentTxtDe = data.contentMsg;
  //处理内容链接
  let cap = linkRegex.exec(data.contentMsg);
  while (cap) {
    let link = newEl("a", undefined, ["mc-link"]);
    link.href = cap[0];
    link.target = "_blank";
    link.innerText = "前往链接"
    contentTxtDe = contentTxtDe.replaceAll(cap[0], link.outerHTML);
    cap = linkRegex.exec(data.contentMsg);
  }
  if (data.emote) {
    for (let i in data.emote) {
      let x = data.emote[i];
      let emj = document.createElement("img");
      emj.src = x.url; emj.alt = x.text
      contentTxtDe = contentTxtDe.replaceAll(x.text, emj.outerHTML);
    }
  }
  contentTxt.innerHTML = contentTxtDe;
  newEl("div", content, ["mc-divider"])
  let commentInfo;
  if (!left) {
    root.classList.add("mc-flow-right");
    userFace.classList.add("mc-flow-right");
    userInfo.style.textAlign = "right";
    commentInfo = newEl("div", content, ["mc-comment-info"]);
  } else {
    let comment = newEl("div", content)
    comment.style.height = "14px";
    commentInfo = newEl("div", comment, ["mc-comment-info", "mc-flow-right"])
  }
  newEl("span", commentInfo, ["time"]).innerText = data.time
  let commentLike = newEl("span", commentInfo, ["like"]);
  newEl("i", commentLike)
  let commentLikeNum = newEl("span", commentLike);
  commentLikeNum.innerText = data.likeNum;
  newEl("i", newEl("span", commentInfo, ["hate"]))
  newEl("span", commentInfo, ["reply"]).innerText = "回复"

  return root;
}

//------------------------------------
function drag(obj) {
  obj.onmousedown = function (e) {
    // 鼠标点击物体那一刻相对于物体左侧边框的距离=点击时的位置相对于浏览器
    // 最左边的距离-物体左边框相对于浏览器最左边的距离,纵向同理
    var divX = e.clientX - this.offsetLeft;
    var divY = e.clientY - this.offsetTop;

    document.onmousemove = function (e) {
      var disX = e.clientX - divX;
      var disY = e.clientY - divY;

      // 移动时重新得到物体的距离,解决拖动时出现晃动现象
      obj.style.top = disY + "px";
      obj.style.left = disX + "px";
      document.onmouseup = function () {    // 鼠标抬起时不再移动
        // 预防鼠标弹起来后还会循环(即预防鼠标放上去的时候还会移动)
        document.onmousedown = document.onmousemove = null;
      }
    }
  }
}
var init = () => {
    
  var sty = document.createElement("style");
  sty.innerHTML = styleSheet
  document.head.append(sty)
  //按钮
  let cibtn = newBtn(document.body, ciw, 10, 54, '词云');
  btnTextE = cibtn.tx;
  let saveBtn = newBtn(document.body, () => {
    saveDiv(holder)
  }, 10, 100, '保存')
  let saveBtn2 = newBtn(document.body, () => {
    saveDiv(canvP)
  }, 10, 140, '仅文字保存')

  sepei.forEach((v, i) => {
    let themBtn = newBtn(document.body, () => {
      peiIdx = i; doWordCloud();
    }, 10, 240 + i * 50, v[4])
    // themBtn.bt.style.background='linear-gradient(45deg , #e5c0ff, '+v[0]+')'
    themBtn.bt.style.background = v[0]
    themBtn.bt.style.display = 'none'
    themBtn.tx.style.color = 'rgb(' + v[1][0] + ',' + v[1][1] + ',' + v[1][2] + ')'
    themBtn.bt.style.textAlign = 'center'; themBtn.bt.style.width = '70px'
    sepeiBtn[i] = themBtn.bt;
  })


  let dmBarBtn = newBtn(document.body, () => {
    if (sai.length == 0) msg('请先生成词云(>_<)')
    if (dmBar.hidden) {
      dmBar.hidden = false
      dmBar.style.display = 'block'
      dmBar.children.forEach((e,i) => {
        setTimeout(()=>fadeIn(e),i*10)
      })
    }
    else {
      setTimeout(()=>{
        dmBar.style.display = 'none';
        dmBar.hidden = true;
    },200)
      dmBar.children.forEach((e,i) => {
          setTimeout(()=>fadeOut(e),10)
      })
    }
  }, 60, 54, '列表')

  let paopaoBtn = newBtn(document.body, () => {
    if (!pao.hidden) { pao.hidden = true; return }
    pao.hidden = false
  }, 110, 54, '小球')

  baocun = saveBtn.bt
  baocun.style.display = 'none'
  baocun2 = saveBtn2.bt
  baocun2.style.display = 'none'
  //词云画布
  canv = document.createElement("div");
  canvP = document.createElement("div");//背景
  canvP.append(canv);
  canv.style = "height: 100%;width: 100%;"

  //渐变
  // canvP.style="opacity:0.96;border: 5px solid rgb(237 237 237 / 74%);height: 700px;width: 1200px;position:fixed;top:50px;left:60px;z-index:999999;background:linear-gradient(311deg, rgb(234 229 229), rgb(233 241 227), rgb(218 231 230));";
  //单色background-image: url(https://i0.hdslb.com/bfs/album/d16f34b89e59174bd066a27101bf6b9c92d16615.jpg);
  canvP.style = "background-image: url(//i0.hdslb.com/bfs/article/874074999995e6981d7602a7d5a770043a10b932.png@256w_256h.webp);opacity:0.96;border: 5px solid rgb(237 237 237 / 74%);height: 700px;width: 1200px;background-color: rgb(236, 43, 36);";
  holder = document.createElement('div')
  holder.style = "position:fixed;top:40px;left:115px;z-index:999;"
  holder.setAttribute("hidden", true);
  title = document.createElement("span")
  title.style = "font-size:10px;color:rgb(225,235,215);position:absolute;z-index:10;background-color:#888"
  holder.append(canvP)
  holder.append(title)
  document.body.append(holder)
  drag(holder)

  //弹幕列表
  dmBar = document.createElement('div')
  dmBar.style = 'background-color: rgb(255 255 255 / 96%);position: absolute;z-index: 998;width: 350px;box-shadow: rgba(113, 113, 113, 0.23) 1px 2px 8px 2px;border: 4px solid rgb(225 225 225);top: 120px;right: 30px;display: block;'
  dmBar.style.display = 'none'
  dmBar.hidden = true
  //泡泡图
  pao = document.createElement('div')
  pao.style = 'pointer-events: none;position: fixed;z-index: 999999;width: ' + window.innerWidth + 'px;height:' + window.innerHeight + 'px;top:0px;'
  let qiuCanvas = document.createElement('canvas');
  qiuCanvas.height = window.innerHeight
  qiuCanvas.width = window.innerWidth
  qiuCanvas.setAttribute('id', 'qiuCanvas')
  pao.append(qiuCanvas);
  document.body.append(pao)
  initQiuWorld();
  //对话回放板
  diag = document.createElement("div");
  diag.style.width = '80%'
  diag.style.zIndex = '9999';
  diag.style.position = 'fixed';
  diag.style.backgroundColor = '#fffffff2'
  diag.style.boxShadow = '0px -1px 9px 0px #79787891'
  diag.style.height = '80vh'; diag.style.top = '50px'; diag.style.left = '50px'
  diag.innerHTML =
    ` <div style="width: 100%;height: 22px">
      <div class="mc-dh mc-red" id="closeDiag" style="font-size: 14px;float: right;height:22px;width: 44px;padding: 5px;text-align: center">关闭</div>
    </div>`
  let diagConCov = newEl("div", diag); diagConCov.style.overflow = 'hidden'; diagConCov.style.height = '500px'
  diagCon = newEl("div", diagConCov)
  diagCon.classList.add("scrollDiag")
  document.body.append(diag)
  diag.style.display = 'none';
  document.getElementById("closeDiag").onclick = () => {
    diag.style.display = 'none';
  }
  mcDrag(document.getElementById("closeDiag").parentNode, diag, 1)
  let sendBox = newEl("div", diag, ["send-box"]);
  diag.onmousewheel = (e) => {
    if (diagCon.children.length == 0) return
    let speed = 100
    let t = new Number(diagCon.style.top.replace("px", ""))
    let min = diagCon.parentNode.offsetHeight - (diagCon.lastChild.offsetTop + diagCon.lastChild.clientHeight + 40)
    if (min > 0) return;
    if (e.wheelDelta < 0 && t > min) {
      if (t - speed < min) diagCon.style.top = min + "px";
      else diagCon.style.top = t - speed + "px";
    } else if (e.wheelDelta > 0 && t < 0) {
      if (speed + t > 0) diagCon.style.top = "0px";
      else diagCon.style.top = (t + speed) + "px";
    }
  }
  let today=new Date().getTime();
  if(today<1675612800000){
    let days=16-Math.ceil((1675612800000-today)/3600/24/1000)
    if(days>-1&&days<16){
      let dayCn=['一', '二', '三', '四', '五', '六', '七', '八', '九','十']
      let todayFest='除夕';
      if(days==15){
        todayFest='元宵';
      }else if(days>10){
        todayFest='十'+dayCn[days-11]
      }else if(days>0){
        todayFest='初'+dayCn[days-1]
      }
      msg(todayFest+'玉兔迎春,祝您兔年新春快乐!')
    }
  }
}
function fadeOut(el){
  el.style.displayX=el.style.display
  setTimeout(()=>{
    el.style.opacity=0
  },5)
  setTimeout(()=>{
    el.style.display='none'
  },500)
}
/**
 * 淡入
 */
function fadeIn(el){
  el.style.display='';
  el.style.opacity=0
  el.removeAttribute("hidden")
  setTimeout(()=>{
    el.style.opacity=1
  },5)
}
//产生词云
async function ciw() {
  if (hasCi) {
    holder.setAttribute("hidden", true);
    // $(baocun, baocun2).fadeOut(1000, 'linear', () => {
    // })
    // $(baocun2).fadeOut(1000, 'linear')
    // $(sepeiBtn).fadeOut(1000, 'linear')
    fadeOut(baocun)
    fadeOut(baocun2)
    sepeiBtn.forEach(x=>fadeOut(x))
    btnTextE.innerText = '词云'
    hasCi = false;
    return;
  };
  console.log('生成词云');
  let pid = reqParm[0]
  loadParam();
  if (sai.length == 0 || pid != reqParm[0]) analysi();
  else afterTask.a();
}
let afterTask = {
  a: function () {
    // peiIdx=peiIdx==sepei.length-1?0:peiIdx+1 改为按钮切换
    holder.removeAttribute("hidden");
    setTimeout(() => { btnTextE.innerText = '^_^' }, 100)
    doWordCloud()
    hasCi = true;
    btnTextE.innerText = '关闭'
    // $(baocun).fadeIn(1000, 'linear')
    // $(baocun2).fadeIn(1000, 'linear')
    // $(sepeiBtn).fadeIn(1000, 'linear')
    fadeIn(baocun)
    fadeIn(baocun2)
    sepeiBtn.forEach(x=>fadeIn(x))
    // pao.hidden=true;
  },
  b: function () {
    //实际获取弹幕总数
    dmCount=dmlang.length
    wds.forEach(e => {
      if (e[1] >= 1) {
        sai.push(e)
      }
    })
    wds = []
    let sTime=new Date().getTime();
    sai.sort((a, b) => b[1] - a[1]);//降序
    //取前30个或者取数量大于 总弹幕数的0.02倍的生成球
    console.log("排序耗时:",new Date().getTime()-sTime+"ms")
    setTimeout(() => {
      let unit = 0.2;
      window.clearQiu();
      let qiuCount=sai.length<30?sai.length:30
      let minR=sai[qiuCount-1][1]
      for (let i = 0; i<qiuCount; i++) {
        // if(a[i][1]>=unit*dmCount){
        //   if(qiuses[i]){
        //     //添加Qiu
        //     qiuses[i].r=a[i][1]*20/(unit*dmCount)
        //   }else {
        //     qiuses[i]=window.addQiu(a[i][0],a[i][1]*20/(unit*dmCount))
        //   }
        // }
        //最大直径为窗口1/5+20
        let r=(sai[i][1]-minR)/(sai[0][1]-minR)*(window.innerWidth*.1)
        setTimeout(() => { window.addQiu(sai[i][0],r+20) }, 150*i)
      }
    }, 50)
    //计算weiFac
    if (sai.length > count) sai.splice(count)
    let siz = 0;
    sai.forEach(e => siz += e[0].length * e[1] * e[1])
    let bgSize = canvP.style.height.replace("px", "") * canvP.style.width.replace("px", "")
    weiFac = Math.sqrt(bgSize / siz)

    tez[0] = sai[0][1]
    tez[1] = sai.slice(-1)[0][1]
    tez[2] = sai[parseInt(sai.length / 2)][1]

    console.log(dmlang)
    console.log("大小中", tez)
    console.log("筛选结果:", sai)
    dmLiebiao()//
  }
}
let doWordCloud = () => {
  backgroundImag()
  WordCloud([canv],
    {
      list: sai,
      color: colorw, //'random-light'
      backgroundColor: '',
      gridSize: 18,
      weightFactor: weiFac,//200/tez[0],//被除数为最大字号
      fontFamily: '楷体',
      rotateRatio: 0.5,
      classes: "blura",
      rotationSteps: 2
    });
}
//上色
let colorw = (wd, weight) => {
  //tez[0]红色 #ff0000
  //1=>蓝色 #0000ff
  // console.log(wd,weight,tez[0])
  let i = sai.findIndex(e => e[0] == wd);
  let v = i / sai.length;

  // let v=parseInt(colorTable.length*i/sai.length)
  // return colorTable[v];
  let s = sepei[peiIdx][1]
  let e = sepei[peiIdx][2]
  let colo = 'rgb('
  for (let x in s) {
    colo += (parseInt(s[x] + v * (e[x] - s[x]))) + ','
  }
  return colo.substr(0, colo.lastIndexOf(',')) + ')'
}
//获取弹幕并分析
let analysi = () => {
  //清空
  s = [];
  sai = [];
  reCalcFac()
  console.log("等待弹幕获取完成")
  btnTextE.innerText = '>_<';
  pao.hidden = false
  setTimeout(() => {
   getOneSeg(1)
  }, 20);
}
async function getOneSeg(seg) {
  let regex = /:.(.*?)[�@]/
  await fetch('https://api.bilibili.com/x/v2/dm/web/seg.so?type=1&oid=' + reqParm[0] + '&pid=' + reqParm[1] + '&segment_index=' + seg,{
  "body": null,
  "method": "GET",
  "mode": "cors",
  "credentials": "include"
  }).then(x=>x.text())
  .catch(err=>{
    console.log("失败点:", seg)
    fail = true
    afterTask.b();
    afterTask.a();
    return;
  })
  .then(re=>{
    let ss = re.split('\n');
    ss.forEach(e => {
      let dm = regex.exec(e);
      if (dm && dm[1]) {
        s.push(dm[1]);
        dmlang.push([dm[1], 1])
      }
    })
    console.log(s);
    if(s.length<1){
      console.log("失败点:", seg)
      fail = true
      afterTask.b();
      afterTask.a();
      return;
    }
    //分析进行
    let t1 = new Date().getTime();
    cia()
    //清空s
    s = []
    wds.sort((a, b) => b[1] - a[1]);//降序
    stageSai[stageSai.length] = wds.slice()
    if (wds.length > count) stageSai[stageSai.length - 1].splice(count)
    //如果弹幕总数超过1.2万就停止
    if(dmlang.length>12000){
      console.log("弹幕总数已超过1.2万:",dmlang.length,'停止获取于', seg)
      fail = true
      afterTask.b();
      afterTask.a();
      return;
    }

    let t2 = 500 - (new Date().getTime() - t1)
    if (t2 > 0) sleep(t2)
    getOneSeg(seg + 1)
  })

}
// 弹幕数量过大时,通过promise缓慢执行
function ciaWait(){
  
  console.log('分析弹幕...')
  // let wds=[]
  s.forEach(async e => {
    //去特殊符号
    // e=e.replace(/[\ |\~|\`|\!|\@|\#|\$|\%|\^|\&|\*|\(|\)|\-|\_|\+|\=|\||\\|\[|\]|\{|\}|\;|\:|\"|\'|\,|\<|\.|\>|\/|\?]/g,"");
    // ctin(wds,e)
    
  //异步执行
  let ctinSpare= new Promise((resolve, reject) => {
    setTimeout(() => {
      ctin(wds, e)
      if (1) {
        resolve("ok");
      } else {
        reject(new Error("I am sad"));
      }
    }, 20);
  });
  await ctinSpare
    //展示泡泡
  });
  
}
//分析
function cia() {
 
  console.log('分析弹幕...')
  // let wds=[]
  s.forEach(e => {
    //去特殊符号
    // e=e.replace(/[\ |\~|\`|\!|\@|\#|\$|\%|\^|\&|\*|\(|\)|\-|\_|\+|\=|\||\\|\[|\]|\{|\}|\;|\:|\"|\'|\,|\<|\.|\>|\/|\?]/g,"");
    // ctin(wds,e)
    ctin(wds, e)
    //展示泡泡
  });
}
// function dmFenxi(dm) {
//   let join = true
//   let dmf = [dm, 1]
//   for (let i in wds) {
//     if (wds[i][0] == dm) {
//       join = false;
//       wds[i][1] += 1
//     } else {
//       jiaQuan(wds[i], dmf)
//     }
//   }
//   if (join == true) {
//     wds.push(dmf);
//   }
// }
// function jiaQuan(a, b) {
//   if (a[0].indexOf(b[0]) > -1) {
//     a[1] += b[0].length / a[0].length
//     b[1] += b[0].length / a[0].length
//   } else if (b[0].indexOf(a[0]) > -1) {
//     b[1] += a[0].length / b[0].length
//     a[1] += a[0].length / b[0].length
//   }
// }

function ctin(a, b) {
  var h = true;
  for (let i in a) {
    if (ditIn(a[i], b)) {
      a[i][1] += 1;
      h = false;
      break;
    }
  }
  if (h) {
    a.push([b, 0])
  }
}
let ditIn = (A, b) => {
  if (liFac == 1) {
    if (A[0].indexOf(b) < 0 && b.indexOf(A[0]) < 0) return false;
  } else if (!xiangsi(A[0], b)) return false;
  // if(A[0].length>b.length&&b.length>1) A[0]=b;//选择少的
  if (b.length == 2 || b.length == 4) A[0] = b;//选择2字4字
  return true;
}
//判断 a b是否相似
let xiangsi = (a, b) => {
  if (xiangsi0(a, b) || xiangsi0(b, a)) return true;
  return false;
}
//判断 a b 是否相似
let xiangsi0 = (a, b) => {
  let m = a.split('')
  let c = 0;
  m.forEach(e => {
    if (b.indexOf(e) > -1) c++;
  })
  if (c / m.length >= liFac) return true;
  return false;
}
//找aid和cid
let loadParam = () => {
  reqParm = [window.cid, window.aid]
  if (reqParm[0] == undefined) {
    let x = document.querySelector("#app").__vue__
    if(x.cid==undefined){
      x=window.__INITIAL_STATE__.epInfo
    }
    if(x.cid==undefined){
      x=window.__INITIAL_STATE__
    }
    if(x.cid) reqParm = [x.cid, x.aid]
    else reqParm = [x.cidMap[x.aid].cids[1], x.aid]
  }
  console.log('找到参数:', reqParm)
}
//设置词云宽高和筛选因子
let reCalcFac = () => {
  let m = 0
  
  m=window?.__INITIAL_STATE__?.videoData?.stat?.danmaku
  if(m==undefined)
  try {
    m = parseInt(document.querySelector('.bilibili-player-video-info-danmaku-number').innerText);
  } catch (error) {
    try {
      m = parseInt(document.querySelector('.bpx-player-video-info-dm-number').innerText);
    } catch (error) {
      try {
        m = parseInt(document.querySelector("#viewbox_report > div > span.dm.item").innerText)
      } catch (error) {
        m = parseInt(
          document.querySelector('#bilibili-player > div > div > div.bpx-player-primary-area > div.bpx-player-sending-area > div > div.bpx-player-video-info > div.bpx-player-video-info-dm')
            .innerText.replace('已装填', '').replace('条弹幕', '')
        );
      }
    }
  }
  dmCount = m;
  console.log('弹幕预估总计:',dmCount,'条')
  let titleEl = document.querySelector('#media_module > div > a')
  if (!titleEl) titleEl = document.querySelector('#viewbox_report > h1 > span')
  if (!titleEl) titleEl = document.querySelector('#viewbox_report > h1')
  title.innerText = "视频标题:" + titleEl.innerText + "   " + new Date()
  if (m < 1000) {
    liFac = 0.5
  } else {
    liFac = 0.5 + (m - 1000) / 10000;//上限10000条
    if (liFac > 1) liFac = 1;
  }
  let w = window.innerWidth - 160;
  let h = window.innerHeight - 70;
  canvP.style.width = w + 'px'
  canvP.style.height = h + 'px'
  pao.style.width = w + 'px'
  pao.style.height = h + 'px'
  holder.style.width = (10 + w) + 'px'
  holder.style.height = (10 + h + 17.6) + 'px'
}
let dmLiebiao = () => {
  dmBar.innerHTML = ''//
  if (null == dmBar.parent) {
    let p = document.querySelector('#app > div.v-wrap > div.r-con');
    if (null == p) p = document.querySelector('#app > div.plp-r');
    if (null == p) p = document.querySelector('#playerAuxiliary > div > div.player-auxiliary-collapse.bui.bui-collapse > div');
    if (null == p) p = document.querySelector('#app > div.video-container-v1');
    p.append(dmBar)
    drag(dmBar)
    // mcDrag(p, dmBar, 1)
  }
  let h = 360 * Math.random();
  let b = 360 - h;
  sai.forEach((e,i) => {
    let fe = document.createElement('div');
    fe.style.display='none'
    fe.className = 'fEl';
    let dw = document.createElement('span');
    dw.className = 'danmu-word';
    dw.innerHTML = e[0]
    if (e[0].length > 21) {
      dw.innerText = e[0].substr(0, 21) + "..."
    }
    let f = document.createElement('div');
    f.className = "frequency";
    f.innerText = parseInt(e[1])
    let bi = document.createElement('div');
    bi.className = 'bar-indicator'
    bi.style = 'width:' + (Math.round(80 * e[1] / tez[0])) + '%'
    bi.style.backgroundColor =  colorTool.hsla(h, 50*e[1] / sai[0][1]+50, 60, 0.75)
    fe.append(f)
    fe.append(bi)
    fe.append(dw)
    dmBar.append(fe)
  })
  dmBar.style.backgroundColor =colorTool.hsla(b, 70, 60, 0.7);
}

let backgroundImag = () => {
  console.log("主题更改:", sepei[peiIdx][4])
  // msg("更改主题:"+sepei[peiIdx][4])
  canvP.style.backgroundImage = 'url("' + sepei[peiIdx][3] + '")'
  canvP.style.backgroundColor = sepei[peiIdx][0]
  // $.ajax({
  //   url:'http://zhongguose.com/img/texture.png',
  //   type:'get',
  //   success:(data)=>{
  //     console.log(daata)
  //     var img=new Blob([data],{type:"png"})
  //     var url=URL.createObjectURL(img);
  //     canvP.style.backgroundImage='url("'+url+'")'
  //   }
  // })
}
//----------------------------------------------------------------
function initQiuWorld() {
  var c = pao.firstElementChild
  // c.width=window.innerWidth;c.height=window.innerHeight;
  let w = c.width, h = c.height;
  var ctx = c.getContext("2d");
  let xFac = 1; //x方向每米多少像素
  let yFac = 1;
  let domain = [];
  let ins = window.ins = [];
  let hand = { x: 0, y: 0, flowIn: false, strength: 20 }
  window.onload = function () {
    let dpi = getDPI();
    xFac = dpi[0] / 0.0254 / 8
    yFac = dpi[1] / 0.0254 / 8
    let windBox = {
      x1: 6 * w / 10, y1: 0, x2: 8 * w / 10, y2: h, eff: function (obj, dt) {
        //简单效果
        if (this.x1 < obj.x && obj.x < this.x2) {
          obj.vY += (2 * obj.y / (h / 9.98) * yFac) * dt
        }
      }, draw: function () {
        let grd = ctx.createLinearGradient(0, 0, 0, h);
        grd.addColorStop(0, "#7e6cff33");
        grd.addColorStop(1, "#7e6cffaa");
        ctx.fillStyle = grd;
        ctx.fillRect(this.x1, this.y1, this.x2 - this.x1, this.y2 - this.y1);
      }
    }
    let windBox2 = {
      x1: 8 * w / 10, y1: 0, x2: 9 * w / 10, y2: h, eff: function (obj, dt) {
        //简单效果 在鼠标吸引时可暂时关闭
        if (hand.flowIn) return
        if (this.x1 < obj.x && obj.x < this.x2) {
          obj.vY -= (2.5 * obj.y / (h / 9.98) * yFac) * dt
        }
      }, draw: function () {
        let grd = ctx.createLinearGradient(0, 0, 0, h);
        grd.addColorStop(0, "#ff2b2b33");
        grd.addColorStop(1, "#f51c1caa");
        ctx.fillStyle = grd;
        ctx.fillRect(this.x1, this.y1, this.x2 - this.x1, this.y2 - this.y1);
      }
      , moveTo: function (x) {
        this.x1 = x - 1 / 20 * w; this.x2 = x + 1 / 20 * w;
      }
    }
    let handEffect = {
      eff: function (obj, dt) {
        //鼠标吸引力
        if (hand.flowIn) {
          let F = new Victor(hand.x - obj.x, hand.y - obj.y).norm().multiply(new Victor(hand.strength, hand.strength))
          let compose = new Victor(obj.vX, obj.vY).add(F);
          obj.vX = compose.x; obj.vY = compose.y
        }
      }, draw: function () {

      }
    }
    domain.push(windBox)
    domain.push(windBox2);
    domain.push(handEffect);
    window.renderQiu = () => {
      ctx.clearRect(0, 0, w, h);
      ins.forEach((x, i) => {
        for (let j = i + 1; j < ins.length; j++) {
          qiuPz(x, ins[j])
        }
        x.positionUpdate()
      })
    }
    window.clearQiu=() => {
      ins=[]
    }
    window.addEventListener('mousemove', (e) => {
      windBox2.moveTo(e.clientX)
    });
    (function run() {
      window.renderQiu()
      // domain.forEach(x=>x.draw())
      requestAnimationFrame(run);
    })()
  }

  function Qiu() {
    this.x = 100;
    this.y = 100;
    this.vX = 1; //一像素
    this.vY = 0;
    this.r = 20;
    this.sT = new Date().getTime();
    this.cT = new Date().getTime();
    this.density = 1;
    this.text = '春风';
    this.textColor = ["magenta", "blue", "red"];
    this.rv = 0.1;
    this.rs = [10, 20];
  }
  Qiu.prototype.born = function () {
    this.x = w-this.r;
    this.y = h;
    this.vX = -2 * xFac;
    this.vY = - 3*xFac;
    this.draw();
  }
  Qiu.prototype.draw = function () {
    var radial = ctx.createRadialGradient(this.x, this.y-this.r*.2, 0.75 * this.r, this.x, this.y, this.r);
    radial.addColorStop(.2, '#ffffff00');
    radial.addColorStop(.9, this.textColor[1]);
    radial.addColorStop(1, this.textColor[2].replace(/%,\.\d{1,2}\)/, "%,.1)"));
    ctx.fillStyle = radial;
    ctx.beginPath();
    ctx.arc(this.x, this.y, this.r, 0, Math.PI * 2);
    ctx.fill();
    ctx.closePath();

    ctx.font = this.r * 2 / 3 + "px Verdana";
    // Create gradient
    var gradient = ctx.createLinearGradient(this.x - this.r, this.y, this.x + this.r, this.y);
    gradient.addColorStop("0", this.textColor[0]);
    gradient.addColorStop("0.5", this.textColor[1]);
    gradient.addColorStop("1.0", this.textColor[2]);
    // Fill with gradient
    ctx.fillStyle = gradient;
    ctx.textAlign = 'center';
    ctx.fillText(this.text, this.x,this.y );
    //绘制连线
    if (hand.flowIn) {
      ctx.strokeStyle = this.textColor[1];
      ctx.lineWidth = .5; ctx.beginPath(); ctx.moveTo(this.x, this.y);
      ctx.lineTo(hand.x, hand.y); ctx.stroke(); ctx.closePath();
    }
  }
  Qiu.prototype.erase = function () {
    // ctx.clearRect(this.x-this.r-2,this.y-this.r-2,this.x+this.r+2,this.y+this.y+2);
    ctx.clearRect(0, 0, w, h);
  }
  Qiu.prototype.speedUpdate = function (dt) {//dt 毫秒
    dt = dt / 1000
    if ((this.y >= h - this.r && this.vY > 0) || (this.y <= 0 + this.r && this.vY < 0)) this.vY = -this.vY
    if ((this.x >= w - this.r && this.vX > 0) || (this.x <= 0 + this.r && this.vX < 0)) this.vX = -this.vX
    speedFun1(this, dt)
  }
  Qiu.prototype.positionUpdate = function () {
    let dT = new Date().getTime() - this.cT;
    this.x += this.vX * dT / 1000;
    this.y += this.vY * dT / 1000;
    if (this.y > h - this.r) this.y = h - this.r
    this.draw();
    this.speedUpdate(dT);
    if (this.r <= this.rs[1]) this.r += this.rv;
    this.cT += dT;
  }

  function speedFun1(obj, dt) {
    // if(obj.y+(obj.vY*dt)<h-obj.r){
    //     obj.vY+=dt*(9.98*yFac)
    // }
    domain.forEach(x => {
      x.eff(obj, dt)
    })
    if (obj.vY != 0) {
      let dy = Math.abs(obj.vY) * 0.98;
      if (dy < 1) dy = 0
      obj.vY = Math.sign(obj.vY) * dy;
    }
    if (obj.vX != 0) {
      let dx = Math.abs(obj.vX) * 0.99;
      if (dx < 1) dx = 0;
      obj.vX = Math.sign(obj.vX) * dx;
    }
  }
  function qiuPz(q1, q2) {
    let dis = Math.sqrt(Math.pow(q1.x - q2.x, 2) + Math.pow(q1.y - q2.y, 2))
    if (dis < q1.r + q2.r) {
      let s = new Victor(q1.x - q2.x, q1.y - q2.y).normalize();
      let v1 = new Victor(q1.vX, q1.vY)
      let v2 = new Victor(q2.vX, q2.vY)
      if (v1.clone().subtract(v2).dot(s) < 0) {
        collide(q1, q2)
      }
    }
  }
  function willCollide(q1, q2, dt) {
    let a = q1.x + dt * q1.vX - q2.x
    let b = q1.y + q1.vY * dt - q2.y
    let dis = Math.sqrt(Math.pow(a, 2) + Math.pow(b, 2))
    if (dis < q1.r + q2.r) {
      return true;
    }
  }
  function collide(q1, q2) {
    let m1 = q1.density; let m2 = q2.density;
    let s = new Victor(q1.x - q2.x, q1.y - q2.y).normalize();
    let v1 = new Victor(q1.vX, q1.vY)
    let v2 = new Victor(q2.vX, q2.vY)
    let v1s = v1.dot(s.clone().invert());
    let v2s = v2.dot(s);
    let v1sc = (v1s * (m1 - m2) + 2 * m2 * v2s) / (m1 + m2);
    let v2sc = (v2s * (m2 - m1) + 2 * m1 * v1s) / (m1 + m2);
    let v1n = v1.dot(s.clone().invert().rotate(Math.PI / 2))
    let v2n = v2.dot(s.clone().rotate(Math.PI / 2))
    let vv1 = s.clone().multiply(new Victor(v1sc, v1sc)).add(s.clone().rotate(-Math.PI / 2).multiply(new Victor(v1n, v1n)))
    let vv2 = s.clone().invert().multiply(new Victor(v2sc, v2sc)).add(s.clone().rotate(-Math.PI / 2).multiply(new Victor(v2n, v2n)))
    q1.vX = vv1.x
    q1.vY = vv1.y
    q2.vX = vv2.x
    q2.vY = vv2.y
  }

  function colorWalk2() {
    let hue = Math.random() * 360;
    return ['hsla(' + (hue - 45) + ',90%,70%,.8)', 'hsla(' + (hue) + ',90%,90%,.9)', 'hsla(' + (hue + 30) + ',90%,70%,.8)']
  }
  function getDPI() {
    var arrDPI = new Array();
    if (window.screen.deviceXDPI != undefined) {
      arrDPI[0] = window.screen.deviceXDPI;
      arrDPI[1] = window.screen.deviceYDPI;
    }
    else {
      var tmpNode = document.createElement("DIV");
      tmpNode.style.cssText = "width:1in;height:1in;position:absolute;left:0px;top:0px;z-index:99;visibility:hidden";
      document.body.appendChild(tmpNode);
      arrDPI[0] = parseInt(tmpNode.offsetWidth);
      arrDPI[1] = parseInt(tmpNode.offsetHeight);
      tmpNode.parentNode.removeChild(tmpNode);
    }
    return arrDPI;
  }
  window.addQiu = (text, r) => {
    let q1 = new Qiu()
    q1.born();
    q1.textColor = colorWalk2();
    q1.text = text
    q1.r = r
    ins.push(q1);
    return q1;
  }
  window.addEventListener('mousemove', (e) => {
    hand.x = e.clientX; hand.y = e.clientY;
  });
  window.addEventListener('mousedown', (e) => {
    hand.flowIn = true;
  });
  window.addEventListener('mouseup', (e) => {
    hand.flowIn = false;
  });
  //----------------------------------------------------------------
  // window.onclick = function(){
  //     let q1=new Qiu()
  //     q1.born();
  //     q1.textColor=colorWalk2();
  //     ins.push(q1);
  // }
}
//----------------------------------------------------------------

//保存div内容为png
function saveDiv(div) {
  //1.将div转成svg
  var divContent = div.innerHTML;
  let w = div.offsetWidth;
  let h = div.offsetHeight
  if (w == 0 || h == 0) {
    w = div.firstElementChild.offsetWidth
    h = div.firstElementChild.offsetHeight
  }
  var data = "data:image/svg+xml," +
    "<svg xmlns='http://www.w3.org/2000/svg' width='" + w + "' height='" + h + "'>" +
    "<foreignObject width='100%' height='100%'>" +
    "<div xmlns='http://www.w3.org/1999/xhtml' style='font-size:16px;font-family:Helvetica'>" +
    divContent +
    "</div>" +
    "</foreignObject>" +
    "</svg>";
  var img = new Image();
  //2.svg转成canvas
  var canvas = document.createElement('canvas');  //准备空画布
  document.body.appendChild(img);
  img.onload = () => {
    var dpr = window.devicePixelRatio;
    canvas.width = img.width;
    canvas.height = img.height;
    canvas.style.width = dpr * w + "px"
    canvas.style.height = dpr * h + "px"
    var context = canvas.getContext('2d');  //取得画布的2d绘图上下文
    context.drawImage(img, 0, 0);
    var a = document.createElement('a');
    let url = canvas.toDataURL('image/png');
    window.open(url, '_blank');
    console.log(url)

    a.href = url;  //将画布内的信息导出为png图片数据
    let titleEl = title
    a.download = titleEl.innerText + (new Date()).getTime() + ".png";  //设定下载名称
    a.click()
    document.body.removeChild(img)
  }
  img.src = data;



}
let colorTool = {
  hsla: function (h, s, l, a) {
    return "hsla(" + h + "," + s + "%," + l + "%," + a + ")";
  }
}
//生产按钮
function newBtn(p, f, left, top, word) {
  var cibtn = document.createElement("div");
  var cibtnBg = document.createElement("div");
  cibtnBg.className = 'btnBg'
  let TextE = document.createElement('span')
  TextE.innerText = word
  cibtn.append(TextE)
  cibtn.className = 'blr-btn'
  cibtn.append(cibtnBg);
  cibtn.style.left = left + 'px';
  cibtn.style.top = top + 'px';
  
  cibtn.onclick = f;
  p.append(cibtn)
  return { bt: cibtn, bg: cibtnBg, tx: TextE }
}
function sleep(numberMillis) {
  var now = new Date();
  var exitTime = now.getTime() + numberMillis;
  while (true) {
    now = new Date();
    if (now.getTime() > exitTime)
      return;
  }
}
//----------------------------------------------------------------
//----------------------------------------------------------------


var ban,unattach = !0;function mcDrag(b,c,k){b.onmousedown=function(m){if(!k||m.target==b){var e=c.style.transition;c.style.transition="unset";var d=m.clientX-c.offsetLeft,a=m.clientY-c.offsetTop;document.onmousemove=function(f){var n=f.clientX-d;c.style.top=f.clientY-a+"px";c.style.left=n+"px";document.onmouseup=function(){document.onmousedown=document.onmousemove=null;c.style.transition=e}}}}}
function tuoyi(b,c,k,m,e,d){var a=(new Date).getTime();b.onmousedown=function(f){var n=f.clientX,q=f.clientY;a=(new Date).getTime();var r=m();e&&e();document.onmousemove=function(h){var p=h.clientX-n,t=h.clientY-q;200<(new Date).getTime()-a&&c(p,t,r);document.onmouseup=function(){document.onmousemove=null;200>(new Date).getTime()-a&&k(h);d&&d()}}}}function g(b){return document.createElement(b)}
function bujie(b){b.classList.add("mc-bujie");setTimeout(function(){b.classList.remove("mc-bujie")},1E3)}function shantishi(b,c,k){b.classList.add(c);setTimeout(function(){b.classList.remove(c)},k)}var LX={wuxian:1,prop:2,bl:3,wb:4};
function MiCan(b,c,k,m){unattach && attachStyle();ban=document.createElement("div");ban.classList.add("mc-b");ban.style.top="200px";ban.style.left="200px";document.body.append(ban);var e=g("div"),d=g("div");d.style.width="100%";ban.append(e);ban.append(d);ban.ti=d;e.classList.add("mc-tou");e.innerText=m;b.forEach(function(a){a[2]==LX.prop?sx(a[0],a[1],k,c,a[3],a[4],a[5]):a[2]==LX.wuxian?wxsx(a[0],a[1],k,c,a[3],a[4]):a[2]==LX.wb?wz(a[0],a[1],k,c):a[2]==LX.bl&&sf(a[0],a[1],k,c)});mcDrag(e,ban,1);return ban}
function sx(b,c,k,m,e,d,a){var f=g("div");f.classList.add("mc-sx");ban.ti.append(f);var n=g("div");n.classList.add("mc-title","mc-dh");n.innerText=b;f.append(n);b=g("div");b.style="float: left;width: 170px;height: 30px;";f.append(b);var q=g("div");q.classList.add("mc-sx-op");b.append(q);var r=g("div");r.classList.add("mc-sx-bar");q.append(r);var h=g("input");h.classList.add("mc-sx-input","mc-input","mc-dh");h.value=k(c);b.append(h);var p=g("div");p.classList.add("mc-slider","mc-dh");b.append(p);var t=
function(){var l=h.value;l>d?(l=d,bujie(n)):l<e&&(l=e,bujie(n));a&&(l=parseInt(l));h.value=l;r.style.width=q.clientWidth*(l-e)/(d-e)+"px";m(c,l)};tuoyi(p,function(l,v,u){h.value=e+(u+l)/q.clientWidth*(d-e);t()},function(){p.style.display="none";setTimeout(function(){h.focus()},1)},function(){return r.clientWidth},function(){p.classList.add("mc-faguang")},function(){p.classList.remove("mc-faguang")});t();h.onblur=function(){p.style.display="block";t()};return f}
function wxsx(b,c,k,m,e,d){function a(l){d&&(l=l.parseInt);h.value=l;m(c,l)}var f=g("div");f.classList.add("mc-sx");ban.ti.append(f);var n=g("div");n.classList.add("mc-title","mc-dh");n.innerText=b;f.append(n);b=g("div");b.style="float: left;width: 170px;height: 30px;";f.append(b);var q=g("div");q.classList.add("mc-sx-op");b.append(q);var r=g("div");r.classList.add("mc-jiantou","mc-z","mc-dh");r.innerText="<";q.append(r);var h=g("input");h.classList.add("mc-sx-input","mc-input","mc-dh");h.style.width=
"100px";h.style.top="0px";h.value=k(c);q.append(h);var p=g("div");p.classList.add("mc-jiantou","mc-y","mc-dh");p.innerText=">";q.append(p);var t=g("div");t.classList.add("mc-huakuai-zj","mc-dh");b.append(t);h.onblur=function(){t.style.display="block";a(h.value)};r.onclick=function(){a(h.value-e);shantishi(this,"mc-huodong",500)};p.onclick=function(){a(new Number(h.value)+e);shantishi(this,"mc-huodong",500)};tuoyi(t,function(l,v,u){a(u- -l*e);0>l?(r.classList.add("mc-huodong"),p.classList.remove("mc-huodong")):
(p.classList.add("mc-huodong"),r.classList.remove("mc-huodong"))},function(){t.style.display="none";setTimeout(function(){h.focus()},1)},function(){return h.value},function(){q.classList.add("mc-faguang")},function(){q.classList.remove("mc-faguang");r.classList.remove("mc-huodong");p.classList.remove("mc-huodong")})}
function wz(b,c,k,m){function e(n){m(c,n);f.value=n}var d=g("div");ban.ti.append(d);d.classList.add("mc-sx");var a=g("div");a.classList.add("mc-title","mc-dh");a.innerText=b;d.append(a);b=g("div");b.style.float="left";b.style.height="100%";d.append(b);d=g("div");d.innerText="\ud83d\udd8a";d.classList.add("mc-tubiao","mc-dh");b.append(d);var f=g("input");f.classList.add("mc-input","mc-dh","mc-bj-danhuang");f.style.width="260px";f.style.textAlign="left";f.value=k(c);b.append(f);f.onblur=function(){m(c,
f.value)};d.onclick=function(n){wbsr.hd=e;wbsr.main||initWbsr();xianshi(wbsr.main);wbsr.in.value=f.value}}
function sf(b,c,k,m){var e=g("div");e.classList.add("mc-sx");ban.ti.append(e);var d=g("div");d.classList.add("mc-title","mc-dh");d.innerText=b;e.append(d);var a=g("div");a.style="float: left";a.classList.add("mc-title","mc-dh","mc-blue");a.innerText="\u662f";k(c)||(a.innerText="\u5426",a.classList.add("mc-red"),a.classList.remove("mc-blue"));e.append(a);a.onclick=function(){k(c)?(a.classList.add("mc-red"),a.classList.remove("mc-blue"),a.innerText="\u5426",m(c,!1)):(a.classList.remove("mc-red"),a.classList.add("mc-blue"),
a.innerText="\u662f",m(c,!0))}}var wbsr={};function xiaoshi(b){b.classList.add("mc-touming");setTimeout(function(){b.classList.add("mc-yincang")},500)}function xianshi(b){b.classList.remove("mc-yincang");b.classList.remove("mc-touming")}
function initWbsr(){wbsr.main=g("div");wbsr.main.classList.add("mc-tanchu","mc-dh","mc-yincang","mc-touming");document.body.append(wbsr.main);wbsr.in=g("textarea");wbsr.in.classList.add("mc-wenben");wbsr.main.append(wbsr.in);wbsr.btp=g("div");wbsr.main.append(wbsr.btp);wbsr.quxiao=g("div");wbsr.quxiao.innerText="\u53d6\u6d88";wbsr.quxiao.classList.add("mc-aniu","mc-red");wbsr.quxiao.style.float="left";wbsr.btp.append(wbsr.quxiao);wbsr.queren=g("div");wbsr.queren.innerText="\u786e\u8ba4";wbsr.queren.classList.add("mc-aniu",
"mc-blue");wbsr.queren.style.float="right";wbsr.btp.append(wbsr.queren);wbsr.quxiao.onclick=function(){xiaoshi(wbsr.main)};wbsr.queren.onclick=function(){wbsr.hd(wbsr.in.value);xiaoshi(wbsr.main)};mcDrag(wbsr.main,wbsr.main,1)};
function attachStyle(){var a=g("style");document.head.append(a);a.innerText="\n    .mc-sx{margin:5px;height:30px;float:left}.mc-tou{width:100%;background-color:rgb(4 4 45);height:25px;text-align:center;line-height:25px;color:cornsilk;font-size:15px}.mc-input{height:24px;color:cornsilk;background-color:inherit;display:block;background:transparent;border:none;padding:3px 10px;text-align:center;font-size:16px}.mc-bj-danhuang{background-color:rgb(68 56 115)}.mc-sx-input{width:150px;float:left;position:relative;top:-30px}.mc-input:focus{border:0px;outline:none;background:rgba(42,165,104,0.425)}.mc-sx-bar{margin: unset;background-color:rgb(163,85,241);width:30px;height:100%}.mc-b{position:fixed;width:800px;background-color:#0a043adb;margin:0;box-shadow:0px 0px 9px 2px#3c35357a;transition:0.5s}.mc-title{background-color:rgb(58 55 110);float:left;line-height:30px;font-size:18px;padding:0px 10px;color:#857cc2}.mc-sx-op{background-color:rgb(86 71 146);height:30px;width:170px}.mc-slider{position:relative;top:-30px;width:170px;height:30px;user-select:none}.mc-huakuai-zj{position:relative;top:-30px;left:25px;width:120px;height:30px;user-select:none}.mc-huakuai-zj:hover{cursor:e-resize}.mc-dh{transition:0.5s linear}.mc-slider:hover{cursor:e-resize}.mc-faguang{box-shadow:0px 0px 8px 3px#ffffffd6}.mc-bujie{background-color:red}.mc-jiantou{background-color:rgb(128,83,173);width:25px;height:100%;font-size:30px;color:#d1c1e0;line-height:26px;cursor:pointer;user-select:none}.mc-z{float:left}.mc-y{float:right}.mc-huodong{background-color:rgb(219,165,245);color:cornsilk}.mc-wenben{border:0;background-color:rgba(233,233,233,0.98);width:355px;height:100px;padding:10px;resize:both;font-size:15px;color:rgb(66,66,64)}.mc-wenben:focus{border:none;outline:none}.mc-tubiao{float:left;height:100%;width:30px;background-color:rgb(89,82,147);color:cornsilk;font-size:18px;line-height:30px;text-align:center;transition:0.5s}.mc-tubiao:hover{cursor:pointer;background-color:rgb(156,127,238)}.mc-aniu{height:30px;line-height:30px;font-size:16px;transition:.4s linear;cursor:pointer;padding:3px 10px;margin:5px;color:cornsilk;user-select:none}.mc-red{cursor:pointer;background-color:rgb(224,68,128)}.mc-blue{cursor:pointer;background-color:rgb(35,245,193)}.mc-red:hover{background-color:rgb(255,0,98)}.mc-blue:hover{background-color:rgb(0,102,255)}.mc-tanchu{position:fixed;background-color:rgba(233,230,218,0.801);top:100px;left:200px;z-index:99}.mc-yincang{display:none}.mc-touming{opacity:0}\n    "};


geo();
})();