123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385 |
- ######share_token1
- if(getVar("url").length>1&&getVar("url")!="null"){
- if(getVar("url").indexOf("aliyundrive.com/s/")!=-1||getVar("url").indexOf("share_id-")!=-1){
- if(getVar("url").indexOf("aliyundrive.com/s/")!=-1){
- var share_id=getVar("url").match(/\.com\/s\/([0-9a-zA-Z]+)/)[1];
- }else if(getVar("url").indexOf("share_id-")!=-1){
- var share_id=getVar("url").split("$$")[0].split("share_id-")[1];
- }
- if(getVar("pwd")!="null"&&getVar("pwd").length>1){
- var pwd=getVar("pwd");
- }else{
- if(getVar("url").split("$$")[2]){
- var pwd=getVar("url").split("$$")[2];
- }else{
- var pwd="";
- }
- }
- if(getVar("share_token")!="null"){
- getVar("share_token");
- }else{
- JSON.parse(getHttp(JSON.stringify({url:"https://api.aliyundrive.com/v2/share_link/get_share_token",postJson:JSON.stringify({share_pwd:pwd,share_id:share_id})}))).share_token;
- }
- }else if(getVar("url").indexOf("$$")!=-1){
- "";
- }else{
- alert("ce请输入完整的阿里云盘分享链接,比如https://www.aliyundrive.com/s/wUFXj7116uS");
- }
- }else{
- "";
- }
- ######目录重组数据root2
- if(getVar("url").length>1&&getVar("url")!="null"){
- if(getVar("url").indexOf("aliyundrive.com/s/")!=-1){
- var xxx_id="share_id-"+getVar("url").match(/\.com\/s\/([0-9a-zA-Z]+)/)[1];
- var file_id="root";
- }else if(getVar("url").indexOf("$$")!=-1){
- var xxx_id=getVar("url").split("$$")[0];
- var file_id=getVar("url").split("$$")[1];
- }
- if(getVar("pwd")!="null"&&getVar("pwd").length>1){
- var pwd=getVar("pwd");
- }else{
- if(getVar("url").split("$$")[2]){
- var pwd=getVar("url").split("$$")[2];
- }else{
- var pwd="";
- }
- }
- }else{
- //我的云盘
- var cm=android.webkit.CookieManager.getInstance();
- var ALICOOKIE=cm.getCookie("www.aliyundrive.com");
- if(ALICOOKIE.indexOf("access_token")!=-1&&ALICOOKIE.indexOf("refresh_token")!=-1){
- var refresh_token=ALICOOKIE.match(/refresh_token=(.*?)[\s;]/)[1];
- var code=getHttp(JSON.stringify({url:"https://auth.aliyundrive.com/v2/account/token",postJson:JSON.stringify({refresh_token:refresh_token,grant_type:"refresh_token"})}));
- if(JSON.parse(code).access_token){
- var access_token=JSON.parse(code).access_token;
- var xxx_id="drive_id-"+ALICOOKIE.match(/drive_id=(.*?)[\s;]/)[1];
- var file_id="root";
- }else{
- alert("登陆已过期,请重新在m浏览器登陆");
- }
- }else{
- alert("请重新登陆阿里云盘网页");
- }
- }
- if(xxx_id.indexOf("share_id")!=-1){
- var HEAD=JSON.stringify({"X-Share-Token":getVar("share_token")});
- var data=JSON.stringify({share_id:xxx_id.split("-")[1],parent_file_id:file_id,limit: 100,image_thumbnail_process:"image/resize,w_160/format,jpeg",image_url_process:"image/resize,w_1920/format,jpeg",video_thumbnail_process:"video/snapshot,t_1000,f_jpg,ar_auto,w_300",order_by:"name",order_direction:"ASC"});
- }else if(xxx_id.indexOf("drive_id")!=-1){
- var cm=android.webkit.CookieManager.getInstance();
- var ALICOOKIE=cm.getCookie("www.aliyundrive.com");
- if(ALICOOKIE.indexOf("access_token")!=-1&&ALICOOKIE.indexOf("refresh_token")!=-1){
- var refresh_token=ALICOOKIE.match(/refresh_token=(.*?)[\s;]/)[1];
- var code=getHttp(JSON.stringify({url:"https://auth.aliyundrive.com/v2/account/token",postJson:JSON.stringify({refresh_token:refresh_token,grant_type:"refresh_token"})}));
- if(JSON.parse(code).access_token){
- var access_token=JSON.parse(code).access_token;
- }else{
- alert("登陆已过期,请重新在m浏览器登陆");
- }
- }else{
- alert("请重新登陆阿里云盘网页");
- }
- var HEAD=JSON.stringify({"Authorization":access_token});
- var data=JSON.stringify({drive_id:xxx_id.split("-")[1],parent_file_id:file_id,limit: 100,image_thumbnail_process:"image/resize,w_160/format,jpeg",image_url_process:"image/resize,w_1920/format,jpeg",video_thumbnail_process:"video/snapshot,t_1000,f_jpg,ar_auto,w_300",order_by:"name",order_direction:"ASC"});
- }
- var 目录数据=getHttp(JSON.stringify({url:"https://api.aliyundrive.com/adrive/v3/file/list",head:JSON.parse(HEAD),postJson:data}));
- var items=JSON.parse(目录数据).items;
- if(JSON.parse(目录数据).items){
- if(xxx_id.indexOf("share_id")!=-1){
- for(var i in items){
- if(items[i].category=="video"||items[i].category=="doc"||items[i].category=="image"){
- items[i].url="q:"+items[i].category+"?url=share_id-"+items[i].share_id+"$$"+items[i].file_id+"$$"+pwd+"$$"+getVar("url").split("$$")[3];
- items[i].文件类型="<font color='red'><b>["+items[i].file_extension+"文件]</b></font>";
- }else if(items[i].type=="folder"){
- if(file_id=="root"){
- FNAME=";";
- }else{
- FNAME=getVar("url").split("$$")[3];
- }
- items[i].url="q:root?url=share_id-"+items[i].share_id+"$$"+items[i].file_id+"$$"+pwd+"$$"+FNAME+items[i].name+";";
- items[i].文件类型="<font color='red'><b>[文件夹]</b></font>";
- }else{
- items[i].url="q:video?url=share_id-"+items[i].share_id+"$$"+items[i].file_id+"$$"+pwd;
- items[i].文件类型="<font color='red'><b>["+items[i].file_extension+"文件]</b></font>";
- }
- }
- }else if(xxx_id.indexOf("drive_id")!=-1){
- for(var i in items){
- if(items[i].category=="video"||items[i].category=="doc"||items[i].category=="image"){
- items[i].url="q:"+items[i].category+"?url=drive_id-"+items[i].drive_id+"$$"+items[i].file_id+"$$"+getVar("url").split("$$")[2];
- items[i].文件类型="<font color='red'><b>["+items[i].file_extension+"文件]</b></font>";
- }else if(items[i].type=="folder"){
- if(file_id=="root"){
- FNAME=";";
- }else{
- FNAME=getVar("url").split("$$")[2];
- }
- items[i].url="q:root?url=drive_id-"+items[i].drive_id+"$$"+items[i].file_id+"$$"+FNAME+items[i].name+";";
- items[i].文件类型="<font color='red'><b>[文件夹]</b></font>";
- }else{
- items[i].url="q:video?url=drive_id-"+items[i].drive_id+"$$"+items[i].file_id;
- items[i].文件类型="<font color='red'><b>["+items[i].file_extension+"文件]</b></font>";
- }
- }
- }
- JSON.stringify(items);
- }else if(JSON.parse(目录数据).code=="ShareLinkTokenInvalid"){
- alert("来晚了,该分享已失效");
- }
- ######历史记录3
- if(getVar("QJS")&&getVar("QJS")!="null"){
- eval(getVar("QJS"));
- }else{
- eval(e2Rex(getHttp('https://egwang186.coding.net/p/egwang186/d/iptv/git/raw/master/aliyun/QJS.js'),'.dn64()'));
- }
- var filename='阿里云历史记录.txt';
- var 记录=[];
- if(getVar("name")!='null'&&getVar("url").indexOf("$$root")==-1){
- var title=getVar("name");
- var url="q:root?url="+getVar("url");
- 记录.push({title:title,url:url});
- if(_.read(filename)){
- var 新记录=记录.concat(JSON.parse(_.read(filename)).filter(d=>d.url!=记录[0].url));
- }else{
- var 新记录=记录;
- }
- _.write(JSON.stringify(新记录),filename);
- }
- ######读取历史4
- if(getVar("QJS")&&getVar("QJS")!="null"){
- eval(getVar("QJS"));
- }else{
- eval(e2Rex(getHttp('https://egwang186.coding.net/p/egwang186/d/iptv/git/raw/master/aliyun/QJS.js'),'.dn64()'));
- }
- var filename='阿里云历史记录.txt';
- _.read(filename);
- ######alicookie5
- alert("快去首页安装新版吧");
- ######过滤非视频6
- var 过滤=JSON.parse(getVar("目录重组数据")).filter(item=>item.category=="video"||item.category=="audio");
- for(var i in 过滤){
- if(过滤[i].download_url){
- 过滤[i].url="http://ip111.cn/?wd="+过滤[i].download_url+"###"+过滤[i].drive_id+"###"+过滤[i].file_id;
- }else{
- 过滤[i].url="http://ip111.cn/?wd="+过滤[i].thumbnail+"$$"+过滤[i].share_id+"$$"+过滤[i].file_id+"$$"+过滤[i].file_extension+"$$"+过滤[i].category+"$$"+getVar("url").split("$$")[2]+"$$"+getVar("url").split("$$")[3]+"$$"+过滤[i].parent_file_id+"$$"+过滤[i].name;
- }
- }
- JSON.stringify(过滤);
- ######视频地址7
- if(getVar("QJS")&&getVar("QJS")!="null"){
- eval(getVar("QJS"));
- }else{
- eval(e2Rex(getHttp('https://egwang186.coding.net/p/egwang186/d/iptv/git/raw/master/aliyun/QJS.js'),'.dn64()'));
- }
- if(getVar("url").indexOf("$$")!=-1){
- var cm=android.webkit.CookieManager.getInstance();
- var ALICOOKIE=cm.getCookie("www.aliyundrive.com");
- if(ALICOOKIE&&ALICOOKIE!="null"&&ALICOOKIE.indexOf("access_token")!=-1&&ALICOOKIE.indexOf("refresh_token")!=-1){
- //
- var pwd=getVar("url").split("?wd=")[1].split("$$")[5];
- var share_id=getVar("url").split("?wd=")[1].split("$$")[1];
- var refresh_token=ALICOOKIE.match(/refresh_token=(.*?)[\s;]/)[1];
- var d = [];
- var A=JSON.stringify({url:"https://auth.aliyundrive.com/v2/account/token",postJson:JSON.stringify({refresh_token:refresh_token,grant_type:"refresh_token"})});
- var S=JSON.stringify({url:"https://api.aliyundrive.com/v2/share_link/get_share_token",postJson:JSON.stringify({share_pwd:pwd,share_id:share_id})});
- var urls = []; //网址列表
- urls[0]=A;urls[1]=S;
- for (let index = 0; index < urls.length; index++) {
- function fn(i) {
- return function () {
- //这里改成你想要进行的操作
- var code = getHttp(urls[i]);
- return code //这里改成你自己想要的返回 没有返回删掉这行就行
- };
- }
- d.push(fn(index));
- }
- var result = []; //result为每个线程运行后返回的结果集
- var s = _.submit(d, 2); //n 改为你想开启的线程数
- for (let i = 0; i < s.length; i++) {
- for (let z of s[i].get()) {
- result.push(z);
- }
- }
- //
- var Acode=result[0];var Scode=result[1];
- var share_token=JSON.parse(Scode).share_token;
- if(JSON.parse(Acode).access_token){
- var access_token=JSON.parse(Acode).access_token;
- }else{
- alert("登陆已过期,请重新在m浏览器登陆");
- }
- }else{
- alert("COOKIE被清除了,请重新登陆阿里云盘网页");
- }
- var file_id=getVar("url").split("?wd=")[1].split("$$")[2];
- var 后缀=getVar("url").split("?wd=")[1].split("$$")[3];
- var 类型=getVar("url").split("?wd=")[1].split("$$")[4];
- var u=getVar("url").split("?wd=")[1].split("$$")[0];
- if(类型=="audio"){
- var code=getHttp(JSON.stringify({url:"https://api.aliyundrive.com/v2/file/get_share_link_download_url",head:{"Authorization":access_token,"X-Share-Token":share_token},postJson:JSON.stringify({share_id:share_id,get_audio_play_info:true,file_id:file_id})}));
- }else{
- var code=getHttp(JSON.stringify({url:"https://api.aliyundrive.com/v2/file/get_share_link_download_url",head:{"Authorization":access_token,"X-Share-Token":share_token},postJson:JSON.stringify({share_id:share_id,file_id:file_id,expire_sec:600})}));
- }
- if(JSON.parse(code).code){
- alert("登陆已过期,请重新在m浏览器登陆");
- }else{
- if(JSON.parse(code).audio_template_list){
- var resp=JZ(JSON.stringify({url:JSON.parse(code).audio_template_list[JSON.parse(code).audio_template_list.length-1].url,redirect:false,head:{"Referer":"https://www.aliyundrive.com/"}}));
- JSON.stringify({url:resp.head.location,head:{"User-Agent":"Lavf/58.12.100","Connection":"keep-alive","Referer":"https://www.aliyundrive.com/"}});
- }else{
- //var resp=JZ(JSON.stringify({url:JSON.parse(code).download_url,redirect:false,head:{"Referer":"https://www.aliyundrive.com/"}}));
- var file_data={};
- var 路径=getVar("url").split("?wd=")[1].split("$$")[6];
- var 最后文件夹名=路径.split(";")[路径.split(';').length-2];
- file_data.parent_name=路径+最后文件夹名;
- file_data.folder_id=getVar("url").split("?wd=")[1].split("$$")[7];
- file_data.file_id=file_id;file_data.share_id=share_id;file_data.share_pwd=pwd;file_data.expiration="";
- file_data.file_name=getVar("url").split("?wd=")[1].split("$$")[8];
- var _d=e2Rex(encodeURI(JSON.stringify(file_data)),".en64()").replace(/\//g,"$");
- var 转码1080='http://116.85.31.19:3000/apis/yun-play/'+_d+'/'+access_token+'/'+share_token+'/FHD/index.m3u8';
- var 转码720='http://116.85.31.19:3000/apis/yun-play/'+_d+'/'+access_token+'/'+share_token+'/HD/index.m3u8';
- JSON.stringify([{name:"原始文件播放",url:JSON.parse(code).download_url,head:{"Referer":"https://www.aliyundrive.com/"}},{name:"转码1080P可投屏",url:转码1080,head:{"Referer":"https://www.aliyundrive.com/"}},{name:"转码720P可投屏",url:转码720,head:{"Referer":"https://www.aliyundrive.com/"}}]);
- }
- }
- }else{
- var cm=android.webkit.CookieManager.getInstance();
- var ALICOOKIE=cm.getCookie("www.aliyundrive.com");
- if(ALICOOKIE.indexOf("access_token")!=-1&&ALICOOKIE.indexOf("refresh_token")!=-1){
- var refresh_token=ALICOOKIE.match(/refresh_token=(.*?)[\s;]/)[1];
- var code=getHttp(JSON.stringify({url:"https://auth.aliyundrive.com/v2/account/token",postJson:JSON.stringify({refresh_token:refresh_token,grant_type:"refresh_token"})}));
- if(JSON.parse(code).access_token){
- var access_token=JSON.parse(code).access_token;
- }else{
- alert("登陆已过期,请重新在m浏览器登陆");
- }
- }else{
- alert("请重新登陆阿里云盘网页");
- }
- var file_id=getVar("url").split("?wd=")[1].split("###")[2];
- var drive_id=getVar("url").split("?wd=")[1].split("###")[1];
- var u=getVar("url").split("?wd=")[1].split("###")[0];
- var 转码1080='http://116.85.31.19:3000/apis/my-yun-play/'+file_id+'/'+drive_id+'/'+access_token+'/FHD/index.m3u8';
- var 转码720='http://116.85.31.19:3000/apis/my-yun-play/'+file_id+'/'+drive_id+'/'+access_token+'/HD/index.m3u8';
- JSON.stringify([{name:"原始文件播放",url:u,head:{"Referer":"https://www.aliyundrive.com/"}},{name:"转码1080P可投屏",url:转码1080,head:{"Referer":"https://www.aliyundrive.com/"}},{name:"转码720P可投屏",url:转码720,head:{"Referer":"https://www.aliyundrive.com/"}}]);
- }
- ######文档预览8
- var cm=android.webkit.CookieManager.getInstance();
- var ALICOOKIE=cm.getCookie("www.aliyundrive.com");
- if(ALICOOKIE.indexOf("access_token")!=-1&&ALICOOKIE.indexOf("refresh_token")!=-1){
- var refresh_token=ALICOOKIE.match(/refresh_token=(.*?)[\s;]/)[1];
- var Acode=getHttp(JSON.stringify({url:"https://auth.aliyundrive.com/v2/account/token",postJson:JSON.stringify({refresh_token:refresh_token,grant_type:"refresh_token"})}));
- if(JSON.parse(Acode).access_token){
- var access_token=JSON.parse(Acode).access_token;
- }else{
- alert("登陆已过期,请重新在m浏览器登陆");
- }
- }else{
- alert("请重新登陆阿里云盘网页");
- }
- var xxx_id=getVar("url").split("$$")[0];
- var file_id=getVar("url").split("$$")[1];
- if(xxx_id.indexOf("share_id")!=-1){
- var HEAD=JSON.stringify({"Authorization":access_token,"X-Share-Token":getVar("share_token")});
- var data=JSON.stringify({share_id:xxx_id.split("-")[1],file_id:file_id});
- }else if(xxx_id.indexOf("drive_id")!=-1){
- var HEAD=JSON.stringify({"Authorization":access_token});
- var data=JSON.stringify({drive_id:xxx_id.split("-")[1],file_id:file_id});
- }
- var code=getHttp(JSON.stringify({url:"https://api.aliyundrive.com/v2/file/get_office_preview_url",head:JSON.parse(HEAD),postJson:data}));
- if(JSON.parse(code).code){
- if(JSON.parse(code).code=="NotSupportedFileType"){
- alert("此文档格式不支持预览");
- }else{
- alert("登陆已过期,请重新在m浏览器登陆");
- }
- }else{
- var url=JSON.parse(code).preview_url+"??"+JSON.parse(code).access_token;
- var name=getVar("name");
- JSON.stringify([{name:name,url:url}]);
- }
- ######搜索链接9
- [
- {"title":"阿里盘搜","url":"https://www.alipansou.com/search?k="},
- {"title":"奈斯搜索","url":"https://www.niceso.fun/search/?q="},
- {"title":"阿里云搜","url":"https://aliyunso.cn/search?page=1&type=&keyword="},
- {"title":"UP云搜","url":"https://www.upyunso.com/search.html?page=1&keyword="},
- {"title":"云盘资源网","url":"https://www.yunpanziyuan.com/fontsearch.htm?fontname="},
- {"title":"云盘资源分享社区","url":"https://alyunpan.com/?q="},
- {"title":"阿里小站","url":"https://www.pan666.cn/?q="},
- {"title":"霸王龙影库","url":"https://t-rex.tzfile.com/?s="},
- {"title":"TG_云盘资源发布","url":"https://tx.me/s/sharealiyun?q="},
- {"title":"TG_云盘盘","url":"https://tx.me/s/yunpanpan?q="},
- {"title":"TG_云盘影视共享","url":"https://tx.me/s/alypysgx?q="},
- {"title":"TG_V云盘","url":"https://tx.me/s/aliyun69?q="},
- {"title":"TG_云盘资源共享","url":"https://tx.me/s/aliyunziyuanfenxiang?q="},
- {"title":"TG_WAYOU资源","url":"https://tx.me/s/wayouziyuan?q="},
- {"title":"TG_影视必应阁","url":"https://tx.me/s/moviebyg?q="},
- {"title":"小纸条","url":"https://u.gitcafe.net/?wd="}
- ]
- ######多链接10
- if(getVar("url")!="null"){
- if(getVar("url").indexOf("aliyundrive.com/s/")!=-1){
- var list=getVar("url").match(/[\s\S]*?https:\/\/www\.aliyundrive\.com\/s\/.*/g);
- var items=[];
- for(var i in list){
- var title=list[i].replace(/\s/g,"").replace(/<.+?>/g,"").split("https://")[0]||"加个标题吧,能从历史记录找到我";
- var share_id=list[i].match(/aliyundrive\.com\/s\/([0-9a-zA-Z]+)/)[1];
- if(list[i].indexOf("提取码")!=-1){
- var pwd=list[i].match(/提取码.*?([0-9a-zA-Z]+)/)[1];
- }else if(list[i].indexOf("密码")!=-1){
- var pwd=list[i].match(/密码.*?([0-9a-zA-Z]+)/)[1];
- }else{
- var pwd="";
- }
- var url="q:root?url=share_id-"+share_id+"$$root$$"+pwd;
- items.push({name:title,url:url,detail:url});
- }
- JSON.stringify(items);
- }else{
- alert("请输入完整阿里云盘分享链接");
- }
- }else{
- alert("请输入阿里云盘分享链接");
- }
- ######图片预览11
- var cm=android.webkit.CookieManager.getInstance();
- var ALICOOKIE=cm.getCookie("www.aliyundrive.com");
- if(ALICOOKIE.indexOf("access_token")!=-1&&ALICOOKIE.indexOf("refresh_token")!=-1){
- var refresh_token=ALICOOKIE.match(/refresh_token=(.*?)[\s;]/)[1];
- var Acode=getHttp(JSON.stringify({url:"https://auth.aliyundrive.com/v2/account/token",postJson:JSON.stringify({refresh_token:refresh_token,grant_type:"refresh_token"})}));
- if(JSON.parse(Acode).access_token){
- var access_token=JSON.parse(Acode).access_token;
- }else{
- alert("登陆已过期,请重新在m浏览器登陆");
- }
- }else{
- alert("请重新登陆阿里云盘网页");
- }
- var xxx_id=getVar("url").split("$$")[0];
- var file_id=getVar("url").split("$$")[1];
- if(xxx_id.indexOf("share_id")!=-1){
- var HEAD=JSON.stringify({"Authorization":access_token,"X-Share-Token":getVar("share_token")});
- var data=JSON.stringify({share_id:xxx_id.split("-")[1],file_id:file_id,expire_sec:600});
- var code=getHttp(JSON.stringify({url:"https://api.aliyundrive.com/v2/file/get_share_link_download_url",head:JSON.parse(HEAD),postJson:data}));
- if(JSON.parse(code).code){
- alert(JSON.parse(code).code)
- }else{
- var resp=JZ(JSON.stringify({url:JSON.parse(code).download_url,redirect:false,head:{"Referer":"https://www.aliyundrive.com/"}}));
- var url=resp.head.location+'@{"Referer":"https://www.aliyundrive.com/"}';
- JSON.stringify([{url:url}]);
- }
- }else if(xxx_id.indexOf("drive_id")!=-1){
- var 过滤=JSON.parse(getVar("目录重组数据")).filter(item=>item.category=="image");
- var items=[];
- for(var i in 过滤){
- var url=过滤[i].download_url+'@{"Referer":"https://www.aliyundrive.com/"}';
- items.push({url:url});
- }
- JSON.stringify(items);
- }
- ######QJS12
- ZXZhbChmdW5jdGlvbihlLGYsYSxkLGMsZyl7Yz1mdW5jdGlvbihiKXtyZXR1cm4oYjxmPyIiOmMocGFyc2VJbnQoYi9mKSkpKygzNTwoYiU9Zik/U3RyaW5nLmZyb21DaGFyQ29kZShiKzI5KTpiLnRvU3RyaW5nKDM2KSl9O2lmKCEiIi5yZXBsYWNlKC9eLyxTdHJpbmcpKXtmb3IoO2EtLTspZ1tjKGEpXT1kW2FdfHxjKGEpO2Q9W2Z1bmN0aW9uKGIpe3JldHVybiBnW2JdfV07Yz1mdW5jdGlvbigpe3JldHVybiJcXHcrIn07YT0xfWZvcig7YS0tOylkW2FdJiYoZT1lLnJlcGxhY2UobmV3IFJlZ0V4cCgiXFxiIitjKGEpKyJcXGIiLCJnIiksZFthXSkpO3JldHVybiBlfSgiKDUoKXszIDY9e307MyBtPTEuMDszIHE9Ui4xdi4xdy4xeC4xeTszIHI9Ui4xdi4xdy4xeC4xeSgpLmMuMjc7MyBzPTF6LjI4LjI5LjJhKCk7MyB0PVMuMmI7MyB1PVMuMUE7MyB2PXQuVC4yYzszIHc9MUIoKSt2KycyZCcrditFKCkuVS5WKDAsNCkrJyQkJCcrRSgpLjE4K3Y7SD0oMUMpPT4xRCAxQz09PScyZSc7NSAxOShhKXsyZiAxYT0xRCBhOzcgYSE9SSYmKDFhPT0nMmcnfHwxYT09JzUnKX0zIHk9Uy4yaC4yaTszIHo9OCB5LjJqLjJrKCk7NSBXKGEpezFFPXsxRjo1KCl7NyBhKCl9LH07MyBiPTggeS4ybCgxRSk7ei5YKGIpOzcgYn01IFkoYSxiKXtKIEs9MDtKIDFiPVtdO0woSzxhLkQpezFiLjFjKGEuMm0oSyxLK2IpKTtLKz1ifTcgMWIuMm4oKG8pPT5vLkQ+MCl9NSBYKGwsbil7Yz1bXTtaPVkobCxsLkQvbik7MyBuPTA7TChuPFouRCl7NSBsKHgpezcgNSBvKCl7MyBhPVtdOzFkKEogaT0wO2k8Wlt4XS5EO2krKyl7YS4xYyhaW3hdW2ldKCkpfTcgYX19Yy4xYyhXKGwobikpKTtuKyt9NyBjfTUgMTAoZil7MyBhPWYuMm8oKTs5KCFhLjFHKCkpYS4xMCgpfTUgRihhLGIpezMgYz04IHQuVCh3KydcdTY1NzBcdTYzNmUnK3YrYik7MTAoYyk7MyBkPTggdC4ycChjLDFlKTtkLkYoYSk7ZC5NKCl9NSBOKGEpezMgYj04IHQuVCh3KydcdTY1NzBcdTYzNmUnK3YrYSk7MyBjPTA7OSghYi4xRygpfHwoYz1iLkQoKSk9PTApNycnOzMgZD11LjFILjFJLjFKKHUuMUsuMUwsYyk7MyBlPTggdC4ycShiKTtlLk4oZCk7ZS5NKCk7NyA4IHUuMnIoZCl9MyBBPVIuMnMuMnQ7MyBCPUEuMnUuMnY7NSAxMShvKXtKezFmLEcsTywxZywxMiwxaH09bzszIGE9QS4ydy4yeCgxZik7YS4yeSgxMyk7YS4yeigyQSk7MWg9PT0xZT9hLjFNKDFoKTphLjFNKDEzKTs5KDE5KEcpKTFkKHggMU4gRylhLkcoeCxHW3hdKTs5KDE5KE8pKXs5KDFnPT09MTMpYS4yQihPKTsxTyAxZChwIDFOIE8pYS4yQyhwLE9bcF0pfTMgYjs5KDFnPT09MTN8fDEyPT0nMkQnKWI9YS4xMihCLjJFKS4xUCgpOzFPIGI9YS4xMihCLjJGKS4xUCgpOzcgYn01IDFRKGEsYil7YS4yRyhiKTs3IGEuMkgoKX01IDFSKGEsYil7NyBiKyc9JythLjJJKGIpfTUgMVMoYSl7MyBiPScnOzMgYz1hLjJKKCkuMVQoKS4xVSgpO0woYy4xVigpKXszIGQ9Yy4xVygpO2IrPWQuMVgoKSsnPScrZC4xWSgpKyc7J303IGJ9NSAxWihhLGIpezcgYS5HKGIpfTUgMjAoYSl7MyBiPScnOzMgYz1hLjJLKCkuMVQoKS4xVSgpO0woYy4xVigpKXszIGQ9Yy4xVygpO2IrPWQuMVgoKSsnPScrZC4xWSgpKyc7J303IGJ9NSAxaShhKXszIGI9YS4xaignLycpOzkoYS5EKCk9PWIrMSl7YT1hLlYoMCxiKTs3IDFpKGEpfTcgYS5WKDAsYS4xaignLicpKX01IDFrKG8pezJMe0p7MWwsMjF9PW87MyBhPTExKG8pOzMgYj0xaShhLjFmKCkuMjIoKSk7MyBjPXMuMk0oYS4yTigpLjJPKCc7JylbMF0pOzMgZD1iLlYoYi4xaignLycpKzEpKycuJytjO1A9SCgxbCk/MWwrditkOncrJ1x1NGUwYlx1OGY3ZCcrditkOzMgZj1hLjJQKCk7MyBnPTggdS4xSC4xSS4xSih1LjFLLjFMLDJRKTszIGg9MDszIGk9OCB0LjJSKCk7TCgoaD1mLk4oZykpIT0tMSl7aS5GKGcsMCxoKX0zIGo9OCB0LlQoUCk7MTAoaik7MyBrPTggdC4yUyhqKTtrLkYoaS4yVCgpKTs5KDIxPT09MWUpNyBQO1EoJ1x1NGUwYlx1OGY3ZFx1NjIxMFx1NTI5Zlx1ZmYwY1x1OGRlZlx1NWY4NDonK1ApOzcgUH0yVShlKXsxNChlKTtRKCdcdTRlMGJcdThmN2RcdTU5MzFcdThkMjUsXHU4YmY3XHU2MjUzXHU1ZjAwXHU4YzAzXHU4YmQ1XHU1M2YwXHU2N2U1XHU3NzBiXHU1MTc3XHU0ZjUzXHU1ZjAyXHU1ZTM4XHU0ZmUxXHU2MDZmJyl9MlZ7OShpIT1JKWkuTSgpOzkoayE9SSlrLk0oKTs5KGYhPUkpZi5NKCl9fTMgQz1yLjJXKEUoKS5VLHIuMlgpOzUgMW0oYSxiKXszIGM9Qy4xbigpO2MuMlkoYSxiKTtjLjFvKCl9NSAxcChhLGIpezcgQy4yWihhLGIpfTUgMXEoYSl7MyBjPUMuMW4oKTtjLjMwKGEpO2MuMW8oKX01IDIzKCl7MyBjPUMuMW4oKTtjLjMxKCk7Yy4xbygpfTUgJCgpezMgYT0xNS5EOzMyKGEpezI0IDE6NyAxNigxNVswXSk7MjQgMjo3IDMzKDE1WzBdLDE1WzFdKTszNDo3IDM1KCl9fTUgMTQoZSl7SChlKT9cdTYyYTVcdTk1MTkoZSk6XHU2MmE1XHU5NTE5KGUuMjIoKSl9NSBRKGEpe3EuaC5iKGEpfTUgMXIoKXs4IFIuMXouMzYuMzcoKS4zOCg0KX01IDFCKCl7NyByLjM5KEkpLjNhKCl9NSAxNyhhKXtTLjFBLjNiLjE3KGEpfTUgRSgpe289e307by5VPTFzKDE2KCcxdCcpLCcuMXUoVSkudCgpJyk7by4yNT0xcygxNignMXQnKSwnLjF1KDI1KS50KCknKTtvLjE4PTFzKDE2KCcxdCcpLCcuMXUoMTgpLnQoKScpOzcgb302LjNjPW07Ni5OPU47Ni5GPUY7Ni4xNz0xNzs2Llc9Vzs2Llg9WDs2Llk9WTs2LjFyPTFyOzYuSD1IOzYuMTE9MTE7Ni4zZD0xUTs2LjNlPTFSOzYuM2Y9MVM7Ni4zZz0xWjs2LjNoPTIwOzYuMWs9MWs7Ni5FPUU7Ni5RPVE7Ni4xND0xNDs2LjFtPTFtOzYuMXA9MXA7Ni4xcT0xcTs2LjNpPTIzOzYuJD0kOzI2LjY9Nn0uMUYoMjYpKTsiLAo2MiwyMDUsIiAgIHZhciAgZnVuY3Rpb24gXyByZXR1cm4gbmV3IGlmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoIGluZm8gd3JpdGUgaGVhZGVyIGlzU3RyaW5nIG51bGwgbGV0IGluZGV4IHdoaWxlIGNsb3NlIHJlYWQgcGFyYW1zIHNhdmVwYXRoIHRvYXN0IFBhY2thZ2VzIGphdmEgRmlsZSBzaWduIHN1YnN0cmluZyB0aHJlYWQgc3VibWl0IGNodW5rIGxpc3QgbWtkaXJzIGh0dHAgbWV0aG9kIHRydWUgZXJyb3IgYXJndW1lbnRzIGdldFZhciBzbGVlcCBuYW1lIGlzT2JqZWN0IHR5cGUgcmVzIHB1c2ggZm9yIGZhbHNlIHVybCBqc29uIHJlIHRyaW1VIGxhc3RJbmRleE9mIGRvd25sb2FkIHNldHBhdGggcHV0U3AgZWRpdCBjb21taXQgZ2V0U3AgY2xlYXJTcCBiYWNrIGUyUmV4IFFNSU5GTyBnZXQgY24gbWJyb3dzZXIgY29uZmlnIEFwcCBhbmRyb2lkIGxhbmcgcGF0aCB2YWwgdHlwZW9mIG9iaiBjYWxsIGV4aXN0cyByZWZsZWN0IEFycmF5IG5ld0luc3RhbmNlIEJ5dGUgVFlQRSBmb2xsb3dSZWRpcmVjdHMgaW4gZWxzZSBleGVjdXRlIGh0dHBCb2R5IGh0dHBDb29raWUgaHR0cENvb2tpZXMgZW50cnlTZXQgaXRlcmF0b3IgaGFzTmV4dCBuZXh0IGdldEtleSBnZXRWYWx1ZSBodHRwSGVhZGVyIGh0dHBIZWFkZXJzIHRpcHMgdG9TdHJpbmcgcmVtb3ZlU3AgY2FzZSB2ZXJzaW9uIHRoaXMgYXBwbGljYXRpb25Db250ZXh0IHdlYmtpdCBNaW1lVHlwZU1hcCBnZXRTaW5nbGV0b24gaW8gc2VwYXJhdG9yIHFtIHN0cmluZyBjb25zdCBvYmplY3QgdXRpbCBjb25jdXJyZW50IEV4ZWN1dG9ycyBuZXdDYWNoZWRUaHJlYWRQb29sIEZ1dHVyZVRhc2sgc2xpY2UgZmlsdGVyIGdldFBhcmVudEZpbGUgRmlsZVdyaXRlciBGaWxlSW5wdXRTdHJlYW0gU3RyaW5nIG9yZyBqc291cCBDb25uZWN0aW9uIE1ldGhvZCBKc291cCBjb25uZWN0IGlnbm9yZUNvbnRlbnRUeXBlIG1heEJvZHlTaXplIDEwNDg1NzYwMDAgcmVxdWVzdEJvZHkgZGF0YSBwb3N0IFBPU1QgR0VUIGNoYXJzZXQgYm9keSBjb29raWUgY29va2llcyBoZWFkZXJzIHRyeSBnZXRFeHRlbnNpb25Gcm9tTWltZVR5cGUgY29udGVudFR5cGUgc3BsaXQgYm9keVN0cmVhbSA0MDk2IEJ5dGVBcnJheU91dHB1dFN0cmVhbSBGaWxlT3V0cHV0U3RyZWFtIHRvQnl0ZUFycmF5IGNhdGNoIGZpbmFsbHkgZ2V0U2hhcmVkUHJlZmVyZW5jZXMgTU9ERV9QUklWQVRFIHB1dFN0cmluZyBnZXRTdHJpbmcgcmVtb3ZlIGNsZWFyIHN3aXRjaCBwdXRWYXIgZGVmYXVsdCBnZXRDb2RlIGFwcCBJbnN0cnVtZW50YXRpb24gc2VuZEtleURvd25VcFN5bmMgZ2V0RXh0ZXJuYWxGaWxlc0RpciBnZXRQYXRoIFRocmVhZCBWRVJTSU9OIGJkIGNrIGNrcyBoZCBoZHMgZGVsU3AiLnNwbGl0KCIgIiksCjAse30pKTs=
|