Closed moleus closed 5 months ago
i test docker
domru:devel-new-implementation
and see error when use login/password (in web - not console)
failed to login with password: auth password request: failed to decode response. Body: '<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>..</title> <meta http-equiv="refresh" content="10;URL=/ciez2a" /> </head> <body> <script type="text/javascript"> // // !function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i(t.t={})}(this,function(t){"use strict";var e="0123456789abcdefghijklmnopqrstuvwxyz";function a(t){return e.charAt(t)}function i(t,i){return t&i}function u(t,i){return t|i}function r(t,i){return t^i}function n(t,
and two slash
in link https://myhome.proptech.ru/auth/v2/auth//password
Oh, thx. I haven't checked login/password authentication yet. Will take a look in a week or so
html is returned by Varity server. It's a bot protection software. User guide - https://disk.yandex.ru/i/RVPkZX1EOVGSeA
Currently I don't know how to overcome it. When I send request using curl or go, it always returns html page instead of json.
As far as I understand this software checks headers, SSL handshake etc. Body is not processed.
curl -X POST 'https://myhome.proptech.ru/auth/v2/auth/{account_id}/password' \
-H 'User-Agent: Google sdkgphone64x8664 | Android 14 | erth | 8.9.2 (8090200) | | null | 10c99d90-9899-4a25-926f-067b34bc4a7f | null' \
-H 'Content-Type: application/json; charset=UTF-8' \
-H 'Connection: Keep-Alive' \
-H 'Accept-Encoding: gzip'
If Variti
checks pass then the request is sent to nginx server which returns json with credentials
i will try sniffing first req for password use https://requestly.com/blog/modify-http-traffic-from-android-apps/
i will try sniffing first req for password use https://requestly.com/blog/modify-http-traffic-from-android-apps/
I have already sniffed traffic using mitmproxy from domru application running emulator. I suspect that the Variti
software is looking at TLS handshake and blocks based on TLS Fingerprint.
Currently, I'm trying to modify Client Hello using utls library to make Hello Message from go look like android's one
Golang's ClientHello has a very unique fingerprint, which especially sticks out on mobile clients, where Golang is not too popular yet. Some members of anti-censorship community are concerned that their tools could be trivially blocked based on ClientHello with relatively small collateral damage. There are multiple solutions to this issue.
Here is the client hello from android application:
Here is the POST request to get token:
I don't think this is the main problem.
authorization via SMS works and everything else works
but I could be wrong...
I don't think this is the main problem.
Maybe, you are right. I can't prove that TLS fingerprint is checked (but i've managed to construct custom Client Hello which is the same as an Android's one).
I've found that there is an issue with headers order: if I change the order of headers in mitmproxy's replay feature, I get the html page from Variti
, if I move headers back - I get response from nginx
and valid tokens.
It's a common practice to detect bots and block them based on headers order. So I've noticed that Go sends request with headers ordered differently then Android does...
Currently, there is no easy way to order headers in http request (issue), but I'll try to find a solution or a workaround
@twocolors Hi! Finally, I've managed to defeat bot protection and random errors. Also, updated README.
May I ask you to check that it works in your setup?
warning on run
dietpi@kubik3:~$ sudo docker compose logs -f --tail=150 domru
domru | 2024/06/02 16:32:21 Credentials file is not set
domru | Usage of /ko-app/domru:
domru | --credentials string credentials file path (i.e: /usr/domofon/credentials.yaml
domru | --login int dom.ru login or phone (i.e: 71231234567)
domru | --operator int operator id
domru | --port int listen port (default 18000)
domru | --refresh string dom.ru refresh token
domru | --token string dom.ru token
domru | 2024/06/02 16:32:21 Operator id is not set. Set your value
domru | Usage of /ko-app/domru:
domru | --credentials string credentials file path (i.e: /usr/domofon/credentials.yaml
domru | --login int dom.ru login or phone (i.e: 71231234567)
domru | --operator int operator id
domru | --port int listen port (default 18000)
domru | --refresh string dom.ru refresh token
domru | --token string dom.ru token
domru | 2024/06/02 16:32:21 Listening on %!s(int=18000)
?"("+this.sub.length+" elem)":this.stream.R(i,i+n,t);case 4:return this.sub?"("+this.sub.length+" elem)":this.stream.q(i,i+n,t);case 6:return this.stream.D(i,i+n,t);case 16:case 17:return null!==this.sub?"("+this.sub.length+" elem)":"(no elem)";case 12:return E(this.stream.S(i,i+n),t);case 18:case 19:case 20:case 21:case 22:case 26:return E(this.stream.I(i,i+n),t);case 30:return E(this.stream.T(i,i+n),t);case 23:case 24:return this.stream.A(i,i+n,23==this.tag.L)}}return null},c.prototype.toString=function(){return this.N()+"@"+this.stream.p+"[header:"+this._+",length:"+this.length+",sub:"+(null===this.sub?"null":this.sub.length)+"]"},c.prototype.C=function(t){var i=(t=void 0===t?"":t)+this.N()+" @"+this.stream.p;if(0<=this.length&&(i+="+"),i+=this.length,this.tag.Z?i+=" (constructed)":!this.tag.k()||3!=this.tag.L&&4!=this.tag.L||null===this.sub||(i+=" (encapsulates)"),i+="\n",null!==this.sub){t+=" ";for(var n=0,s=this.sub.length;n<s;++n)i+=this.sub[n].C(t)}return i},c.prototype.F=function(){return this.stream.p},c.prototype.U=function(){return this.stream.p+this._},c.prototype.G=function(){return this.stream.p+this._+Math.abs(this.length)},c.prototype.Y=function(){return this.stream.m(this.F(),this.G(),!0)},c.$=function(t){var i=t.get(),n=127&i;if(n==i)return n;if(6<n)throw new Error("Length over 48 bits not supported at position "+(t.p-1));if(0===n)return null;for(var s=i=0;s<n;++s)i=256*i+t.get();return i},c.prototype.P=function(){var t=this.Y(),i=2*this._,n=2*this.length;return t.substr(i,n)},c.decode=function(t){var s=t instanceof D?t:new D(t,0),i=new D(s),n=new R(s),r=c.$(s),h=s.p,e=h-i.p,u=null,o=function(){var t=[];if(null!==r){for(var i=h+r;s.p<i;)t[t.length]=c.decode(s);if(s.p!=i)throw new Error("Content size is not correct for container starting at offset "+h)}else try{for(;;){var n=c.decode(s);if(n.tag.K())break;t[t.length]=n}r=h-s.p}catch(t){throw new Error("Exception while decoding undefined length content: "+t)}return t};if(n.Z)u=o();else if(n.k()&&(3==n.L||4==n.L))try{if(3==n.L&&0!=s.get())throw new Error("BIT STRINGs with unused bits cannot encapsulate.");for(var u=o(),f=0;f<u.length;++f)if(u[f].tag.K())throw new Error("EOC is not supposed to be actual content.")}catch(t){u=null}if(null===u){if(null===r)throw new Error("We can't skip over an invalid tag with undefined length at offset "+h);s.p=h+Math.abs(r)}return new c(i,e,r,n,u)},c}(),R=function(){function t(t){var i=t.get();if(this.j=i>>6,this.Z=0!=(32&i),this.L=31&i,31==this.L){for(var n=new y;i=t.get(),n.o(128,127&i),128&i;);this.L=n.v()}}return t.prototype.k=function(){return 0===this.j},t.prototype.K=function(){return 0===this.j&&0===this.L},t}(),B=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],A=(1<<26)/B[B.length-1],O=function(){function p(t,i,n){null!=t&&("number"==typeof t?this.V(t,i,n):null==i&&"string"!=typeof t?this.H(t,256):this.H(t,i))}return p.prototype.toString=function(t){if(this.s<0)return"-"+this.W().toString(t);var i;if(16==t)i=4;else if(8==t)i=3;else if(2==t)i=1;else if(32==t)i=5;else{if(4!=t)return this.X(t);i=2}var n,s=(1<<i)-1,r=!1,h="",e=this.J,u=this.tt-e*this.tt%i;if(0<e--)for(u<this.tt&&0<(n=this[e]>>u)&&(r=!0,h=a(n));0<=e;)u<i?(n=(this[e]&(1<<u)-1)<<i-u,n|=this[--e]>>(u+=this.tt-i)):(n=this[e]>>(u-=i)&s,u<=0&&(u+=this.tt,--e)),(r=0<n||r)&&(h+=a(n));return r?h:"0"},p.prototype.W=function(){var t=M();return p.ZERO.it(this,t),t},p.prototype.abs=function(){return this.s<0?this.W():this},p.prototype.nt=function(t){var i=this.s-t.s;if(0!=i)return i;var n=this.J;if(0!=(i=n-t.J))return this.s<0?-i:i;for(;0<=--n;)if(0!=(i=this[n]-t[n]))return i;return 0},p.prototype.st=function(){return this.J<=0?0:this.tt*(this.J-1)+U(this[this.J-1]^this.s&this.rt)},p.prototype.ht=function(t){var i=M();return this.abs().et(t,null,i),this.s<0&&0<i.nt(p.ZERO)&&t.it(i,i),i},p.prototype.ut=function(t,i){i=new(t<256||i.ot()?I:N)(i);return this.exp(t,i)},p.prototype.clone=function(){var t=M();return this.ft(t),t},p.prototype.ct=function(){if(this.s<0){if(1==this.J)return this[0]-this.vt;if(0==this.J)return-1}else{if(1==this.J)return this[0];if(0==this.J)return 0}return(this[1]&(1<<32-this.tt)-1)<<this.tt|this[0]},p.prototype.lt=function(){return 0==this.J?this.s:this[0]<<24>>24},p.prototype.wt=function(){return 0==this.J?this.s:this[0]<<16>>16},p.prototype.dt=function(){return this.s<0?-1:this.J<=0||1==this.J&&this[0]<=0?0:1},p.prototype.gt=function(){var t=this.J,i=[];i[0]=this.s;var n,s=this.tt-t*this.tt%8,r=0;if(0<t--)for(s<this.tt&&(n=this[t]>>s)!=(this.s&this.rt)>>s&&(i[r++]=n|this.s<<this.tt-s);0<=t;)s<8?(n=(this[t]&(1<<s)-1)<<8-s,n|=this[--t]>>(s+=this.tt-8)):(n=this[t]>>(s-=8)&255,s<=0&&(s+=this.tt,--t)),0!=(128&n)&&(n|=-256),0==r&&(128&this.s)!=(128&n)&&++r,(0<r||n!=this.s)&&(i[r++]=n);return i},p.prototype.equals=function(t){return 0==this.nt(t)},p.prototype.min=function(t){return this.nt(t)<0?this:t},p.prototype.max=function(t){return 0<this.nt(t)?this:t},p.prototype.and=function(t){var n=M();return this.Et(t,i,n),n},p.prototype.or=function(t){var i=M();return this.Et(t,u,i),i},p.prototype.xor=function(t){var i=M();return this.Et(t,r,i),i},p.prototype.Mt=function(t){var i=M();return this.Et(t,n,i),i},p.prototype.bt=function(){for(var t=M(),i=0;i<this.J;++i)t[i]=this.rt&~this[i];return t.J=this.J,t.s=~this.s,t},p.prototype.shiftLeft=function(t){var i=M();return t<0?this.Ot(-t,i):this.yt(t,i),i},p.prototype.It=function(t){var i=M();return t<0?this.yt(-t,i):this.Ot(t,i),i},p.prototype.St=function(){for(var t=0;t<this.J;++t)if(0!=this[t])return t*this.tt+s(this[t]);return this.s<0?this.J*this.tt:-1},p.prototype.Tt=function(){for(var t=0,i=this.s&this.rt,n=0;n<this.J;++n)t+=o(this[n]^i);return t},p.prototype.At=function(t){var i=Math.floor(t/this.tt);return i>=this.J?0!=this.s:0!=(this[i]&1<<t%this.tt)},p.prototype.Bt=function(t){return this.Rt(t,u)},p.prototype.qt=function(t){return this.Rt(t,n)},p.prototype.xt=function(t){return this.Rt(t,r)},p.prototype.add=function(t){var i=M();return this.Dt(t,i),i},p.prototype._t=function(t){var i=M();return this.it(t,i),i},p.prototype.multiply=function(t){var i=M();return this.Nt(t,i),i},p.prototype.jt=function(t){var i=M();return this.et(t,i,null),i},p.prototype.Lt=function(t){var i=M();return this.et(t,null,i),i},p.prototype.Ut=function(t){var i=M(),n=M();return this.et(t,i,n),[i,n]},p.prototype.kt=function(t,i){var n=t.st(),s=F(1);if(n<=0)return s;var r=n<18?1:n<48?3:n<144?4:n<768?5:6,h=new(n<8?I:i.ot()?P:N)(i),e=[],u=3,o=r-1,f=(1<<r)-1;if(e[1]=h.Ct(this),1<r){var c=M();for(h.Zt(e[1],c);u<=f;)e[u]=M(),h.Ft(c,e[u-2],e[u]),u+=2}for(var a,v,l=t.J-1,w=!0,d=M(),n=U(t[l])-1;0<=l;){for(o<=n?a=t[l]>>n-o&f:(a=(t[l]&(1<<n+1)-1)<<o-n,0<l&&(a|=t[l-1]>>this.tt+n-o)),u=r;0==(1&a);)a>>=1,--u;if((n-=u)<0&&(n+=this.tt,--l),w)e[a].ft(s),w=!1;else{for(;1<u;)h.Zt(s,d),h.Zt(d,s),u-=2;0<u?h.Zt(s,d):(v=s,s=d,d=v),h.Ft(d,e[a],s)}for(;0<=l&&0==(t[l]&1<<n);)h.Zt(s,d),v=s,s=d,d=v,--n<0&&(n=this.tt-1,--l)}return h.Gt(s)},p.prototype.Yt=function(t){var i=t.ot();if(this.ot()&&i||0==t.dt())return p.ZERO;for(var n=t.clone(),s=this.clone(),r=F(1),h=F(0),e=F(0),u=F(1);0!=n.dt();){for(;n.ot();)n.Ot(1,n),i?(r.ot()&&h.ot()||(r.Dt(this,r),h.it(t,h)),r.Ot(1,r)):h.ot()||h.it(t,h),h.Ot(1,h);for(;s.ot();)s.Ot(1,s),i?(e.ot()&&u.ot()||(e.Dt(this,e),u.it(t,u)),e.Ot(1,e)):u.ot()||u.it(t,u),u.Ot(1,u);0<=n.nt(s)?(n.it(s,n),i&&r.it(e,r),h.it(u,h)):(s.it(n,s),i&&e.it(r,e),u.it(h,u))}return 0!=s.nt(p.ONE)?p.ZERO:0<=u.nt(t)?u._t(t):u.dt()<0&&(u.Dt(t,u),u.dt()<0)?u.add(t):u},p.prototype.pow=function(t){return this.exp(t,new V)},p.prototype.$t=function(t){var i=this.s<0?this.W():this.clone(),n=t.s<0?t.W():t.clone(),s=(i.nt(n)<0&&(t=i,i=n,n=t),i.St()),t=n.St();if(t<0)return i;for(0<(t=s<t?s:t)&&(i.Ot(t,i),n.Ot(t,n));0<i.dt();)0<(s=i.St())&&i.Ot(s,i),0<(s=n.St())&&n.Ot(s,n),0<=i.nt(n)?(i.it(n,i),i.Ot(1,i)):(n.it(i,n),n.Ot(1,n));return 0<t&&n.yt(t,n),n},p.prototype.Pt=function(t){var i,n=this.abs();if(1==n.J&&n[0]<=B[B.length-1]){for(i=0;i<B.length;++i)if(n[0]==B[i])return!0;return!1}if(n.ot())return!1;for(i=1;i<B.length;){for(var s=B[i],r=i+1;r<B.length&&s<A;)s*=B[r++];for(s=n.Kt(s);i<r;)if(s%B[i++]==0)return!1}return n.zt(t)},p.prototype.ft=function(t){for(var i=this.J-1;0<=i;--i)t[i]=this[i];t.J=this.J,t.s=this.s},p.prototype.Vt=function(t){this.J=1,this.s=t<0?-1:0,0<t?this[0]=t:t<-1?this[0]=t+this.vt:this.J=0},p.prototype.H=function(t,i){var n;if(16==i)n=4;else if(8==i)n=3;else if(256==i)n=8;else if(2==i)n=1;else if(32==i)n=5;else{if(4!=i)return void this.Ht(t,i);n=2}this.J=0,this.s=0;for(var s=t.length,r=!1,h=0;0<=--s;){var e=8==n?255&+t[s]:C(t,s);e<0?"-"==t.charAt(s)&&(r=!0):(r=!1,0==h?this[this.J++]=e:h+n>this.tt?(this[this.J-1]|=(e&(1<<this.tt-h)-1)<<h,this[this.J++]=e>>this.tt-h):this[this.J-1]|=e<<h,(h+=n)>=this.tt&&(h-=this.tt))}8==n&&0!=(128&+t[0])&&(this.s=-1,0<h)&&(this[this.J-1]|=(1<<this.tt-h)-1<<h),this.Wt(),r&&p.ZERO.it(this,this)},p.prototype.Wt=function(){for(var t=this.s&this.rt;0<this.J&&this[this.J-1]==t;)--this.J},p.prototype.Xt=function(t,i){for(var n=this.J-1;0<=n;--n)i[n+t]=this[n];for(n=t-1;0<=n;--n)i[n]=0;i.J=this.J+t,i.s=this.s},p.prototype.Jt=function(t,i){for(var n=t;n<this.J;++n)i[n-t]=this[n];i.J=Math.max(this.J-t,0),i.s=this.s},p.prototype.yt=function(t,i){for(var n=t%this.tt,s=this.tt-n,r=(1<<s)-1,h=Math.floor(t/this.tt),e=this.s<<n&this.rt,u=this.J-1;0<=u;--u)i[u+h+1]=this[u]>>s|e,e=(this[u]&r)<<n;for(u=h-1;0<=u;--u)i[u]=0;i[h]=e,i.J=this.J+h+1,i.s=this.s,i.Wt()},p.prototype.Ot=function(t,i){i.s=this.s;var n=Math.floor(t/this.tt);if(n>=this.J)i.J=0;else{var s=t%this.tt,r=this.tt-s,h=(1<<s)-1;i[0]=this[n]>>s;for(var e=n+1;e<this.J;++e)i[e-n-1]|=(this[e]&h)<<r,i[e-n]=this[e]>>s;0<s&&(i[this.J-n-1]|=(this.s&h)<<r),i.J=this.J-n,i.Wt()}},p.prototype.it=function(t,i){for(var n=0,s=0,r=Math.min(t.J,this.J);n<r;)s+=this[n]-t[n],i[n++]=s&this.rt,s>>=this.tt;if(t.J<this.J){for(s-=t.s;n<this.J;)s+=this[n],i[n++]=s&this.rt,s>>=this.tt;s+=this.s}else{for(s+=this.s;n<t.J;)s-=t[n],i[n++]=s&this.rt,s>>=this.tt;s-=t.s}i.s=s<0?-1:0,s<-1?i[n++]=this.vt+s:0<s&&(i[n++]=s),i.J=n,i.Wt()},p.prototype.Nt=function(t,i){var n=this.abs(),s=t.abs(),r=n.J;for(i.J=r+s.J;0<=--r;)i[r]=0;for(r=0;r<s.J;++r)i[r+n.J]=n.Qt(0,s[r],i,r,0,n.J);i.s=0,i.Wt(),this.s!=t.s&&p.ZERO.it(i,i)},p.prototype.ti=function(t){for(var i=this.abs(),n=t.J=2*i.J;0<=--n;)t[n]=0;for(n=0;n<i.J-1;++n){var s=i.Qt(n,i[n],t,2*n,0,1);(t[n+i.J]+=i.Qt(n+1,2*i[n],t,2*n+1,s,i.J-n-1))>=i.vt&&(t[n+i.J]-=i.vt,t[n+i.J+1]=1)}0<t.J&&(t[t.J-1]+=i.Qt(n,i[n],t,2*n,0,1)),t.s=0,t.Wt()},p.prototype.et=function(t,i,n){var s=t.abs();if(!(s.J<=0)){var r=this.abs();if(r.J<s.J)null!=i&&i.Vt(0),void(null!=n&&this.ft(n));else{null==n&&(n=M());var h=M(),e=this.s,t=t.s,u=this.tt-U(s[s.J-1]),o=(0<u?(s.yt(u,h),r.yt(u,n)):(s.ft(h),r.ft(n)),h.J),f=h[o-1];if(0!=f){var s=f*(1<<this.ii)+(1<o?h[o-2]>>this.ni:0),c=this.si/s,a=(1<<this.ii)/s,v=1<<this.ni,l=n.J,w=l-o,d=null==i?M():i;for(h.Xt(w,d),0<=n.nt(d)&&(n[n.J++]=1,n.it(d,n)),p.ONE.Xt(o,d),d.it(h,h);h.J<o;)h[h.J++]=0;for(;0<=--w;){var g=n[--l]==f?this.rt:Math.floor(n[l]*c+(n[l-1]+v)*a);if((n[l]+=h.Qt(0,g,n,w,0,o))<g)for(h.Xt(w,d),n.it(d,n);n[l]<--g;)n.it(d,n)}null!=i&&(n.Jt(o,i),e!=t)&&p.ZERO.it(i,i),n.J=o,n.Wt(),0<u&&n.Ot(u,n),e<0&&p.ZERO.it(n,n)}}}},p.prototype.ri=function(){var t,i;return this.J<1||0==(1&(t=this[0]))?0:0<(i=(i=(i=(i=(i=3&t)*(2-(15&t)*i)&15)*(2-(255&t)*i)&255)*(2-((65535&t)*i&65535))&65535)*(2-t*i%this.vt)%this.vt)?this.vt-i:-i},p.prototype.ot=function(){return 0==(0<this.J?1&this[0]:this.s)},p.prototype.exp=function(t,i){if(4294967295<t||t<1)return p.ONE;var n,s=M(),r=M(),h=i.Ct(this),e=U(t)-1;for(h.ft(s);0<=--e;)i.Zt(s,r),0<(t&1<<e)?i.Ft(r,h,s):(n=s,s=r,r=n);return i.Gt(s)},p.prototype.hi=function(t){return Math.floor(Math.LN2*this.tt/Math.log(t))},p.prototype.X=function(t){if(null==t&&(t=10),0==this.dt()||t<2||36<t)return"0";var i=this.hi(t),n=Math.pow(t,i),s=F(n),r=M(),h=M(),e="";for(this.et(s,r,h);0<r.dt();)e=(n+h.ct()).toString(t).substr(1)+e,r.et(s,r,h);return h.ct().toString(t)+e},p.prototype.Ht=function(t,i){this.Vt(0);for(var n=this.hi(i=null==i?10:i),s=Math.pow(i,n),r=!1,h=0,e=0,u=0;u<t.length;++u){var o=C(t,u);o<0?"-"==t.charAt(u)&&0==this.dt()&&(r=!0):(e=i*e+o,++h>=n&&(this.ei(s),this.ui(e,0),e=h=0))}0<h&&(this.ei(Math.pow(i,h)),this.ui(e,0)),r&&p.ZERO.it(this,this)},p.prototype.V=function(t,i,n){if("number"==typeof i)if(t<2)this.Vt(1);else for(this.V(t,n),this.At(t-1)||this.Et(p.ONE.shiftLeft(t-1),u,this),this.ot()&&this.ui(1,0);!this.Pt(i);)this.ui(2,0),this.st()>t&&this.it(p.ONE.shiftLeft(t-1),this);else{var n=[],s=7&t;n.length=1+(t>>3),i.oi(n),0<s?n[0]&=(1<<s)-1:n[0]=0,this.H(n,256)}},p.prototype.Et=function(t,i,n){for(var s,r=Math.min(t.J,this.J),h=0;h<r;++h)n[h]=i(this[h],t[h]);if(t.J<this.J){for(s=t.s&this.rt,h=r;h<this.J;++h)n[h]=i(this[h],s);n.J=this.J}else{for(s=this.s&this.rt,h=r;h<t.J;++h)n[h]=i(s,t[h]);n.J=t.J}n.s=i(this.s,t.s),n.Wt()},p.prototype.Rt=function(t,i){t=p.ONE.shiftLeft(t);return this.Et(t,i,t),t},p.prototype.Dt=function(t,i){for(var n=0,s=0,r=Math.min(t.J,this.J);n<r;)s+=this[n]+t[n],i[n++]=s&this.rt,s>>=this.tt;if(t.J<this.J){for(s+=t.s;n<this.J;)s+=this[n],i[n++]=s&this.rt,s>>=this.tt;s+=this.s}else{for(s+=this.s;n<t.J;)s+=t[n],i[n++]=s&this.rt,s>>=this.tt;s+=t.s}i.s=s<0?-1:0,0<s?i[n++]=s:s<-1&&(i[n++]=this.vt+s),i.J=n,i.Wt()},p.prototype.ei=function(t){this[this.J]=this.Qt(0,t-1,this,0,0,this.J),++this.J,this.Wt()},p.prototype.ui=function(t,i){if(0!=t){for(;this.J<=i;)this[this.J++]=0;for(this[i]+=t;this[i]>=this.vt;)this[i]-=this.vt,++i>=this.J&&(this[this.J++]=0),++this[i]}},p.prototype.fi=function(t,i,n){var s=Math.min(this.J+t.J,i);for(n.s=0,n.J=s;0<s;)n[--s]=0;for(var r=n.J-this.J;s<r;++s)n[s+this.J]=this.Qt(0,t[s],n,s,0,this.J);for(r=Math.min(t.J,i);s<r;++s)this.Qt(0,t[s],n,s,0,i-s);n.Wt()},p.prototype.ci=function(t,i,n){var s=n.J=this.J+t.J- --i;for(n.s=0;0<=--s;)n[s]=0;for(s=Math.max(i-this.J,0);s<t.J;++s)n[this.J+s-i]=this.Qt(i-s,t[s],n,0,0,this.J+s-i);n.Wt(),n.Jt(1,n)},p.prototype.Kt=function(t){if(t<=0)return 0;var i=this.vt%t,n=this.s<0?t-1:0;if(0<this.J)if(0==i)n=this[0]%t;else for(var s=this.J-1;0<=s;--s)n=(i*n+this[s])%t;return n},p.prototype.zt=function(t){var i=this._t(p.ONE),n=i.St();if(n<=0)return!1;var s=i.It(n);B.length<(t=t+1>>1)&&(t=B.length);for(var r=M(),h=0;h<t;++h){r.Vt(B[Math.floor(Math.random()*B.length)]);var e=r.kt(s,this);if(0!=e.nt(p.ONE)&&0!=e.nt(i)){for(var u=1;u++<n&&0!=e.nt(i);)if(0==(e=e.ut(2,this)).nt(p.ONE))return!1;if(0!=e.nt(i))return!1}}return!0},p.prototype.ai=function(){var t=M();return this.ti(t),t},p.prototype.vi=function(t,i){var n,s=this.s<0?this.W():this.clone(),r=t.s<0?t.W():t.clone(),h=(s.nt(r)<0&&(t=s,s=r,r=t),s.St()),e=r.St();e<0?i(s):(0<(e=h<e?h:e)&&(s.Ot(e,s),r.Ot(e,r)),n=function(){0<(h=s.St())&&s.Ot(h,s),0<(h=r.St())&&r.Ot(h,r),0<=s.nt(r)?(s.it(r,s),s.Ot(1,s)):(r.it(s,r),r.Ot(1,r)),0<s.dt()?setTimeout(n,0):(0<e&&r.yt(e,r),setTimeout(function(){i(r)},0))},setTimeout(n,10))},p.prototype.li=function(t,i,n,s){var r,h,e;"number"==typeof i?t<2?this.Vt(1):(this.V(t,n),this.At(t-1)||this.Et(p.ONE.shiftLeft(t-1),u,this),this.ot()&&this.ui(1,0),r=this,h=function(){r.ui(2,0),r.st()>t&&r.it(p.ONE.shiftLeft(t-1),r),r.Pt(i)?setTimeout(function(){s()},0):setTimeout(h,0)},setTimeout(h,0)):(n=7&t,(e=[]).length=1+(t>>3),i.oi(e),0<n?e[0]&=(1<<n)-1:e[0]=0,this.H(e,256))},p}(),V=function(){function t(){}return t.prototype.Ct=function(t){return t},t.prototype.Gt=function(t){return t},t.prototype.Ft=function(t,i,n){t.Nt(i,n)},t.prototype.Zt=function(t,i){t.ti(i)},t}(),I=function(){function t(t){this.wi=t}return t.prototype.Ct=function(t){return t.s<0||0<=t.nt(this.wi)?t.ht(this.wi):t},t.prototype.Gt=function(t){return t},t.prototype.reduce=function(t){t.et(this.wi,null,t)},t.prototype.Ft=function(t,i,n){t.Nt(i,n),this.reduce(n)},t.prototype.Zt=function(t,i){t.ti(i),this.reduce(i)},t}(),N=function(){function t(t){this.wi=t,this.di=t.ri(),this.gi=32767&this.di,this.pi=this.di>>15,this.Ei=(1<<t.tt-15)-1,this.Mi=2*t.J}return t.prototype.Ct=function(t){var i=M();return t.abs().Xt(this.wi.J,i),i.et(this.wi,null,i),t.s<0&&0<i.nt(O.ZERO)&&this.wi.it(i,i),i},t.prototype.Gt=function(t){var i=M();return t.ft(i),this.reduce(i),i},t.prototype.reduce=function(t){for(;t.J<=this.Mi;)t[t.J++]=0;for(var i=0;i<this.wi.J;++i){var n=32767&t[i],s=n*this.gi+((n*this.pi+(t[i]>>15)*this.gi&this.Ei)<<15)&t.rt;for(t[n=i+this.wi.J]+=this.wi.Qt(0,s,t,i,0,this.wi.J);t[n]>=t.vt;)t[n]-=t.vt,t[++n]++}t.Wt(),t.Jt(this.wi.J,t),0<=t.nt(this.wi)&&t.it(this.wi,t)},t.prototype.Ft=function(t,i,n){t.Nt(i,n),this.reduce(n)},t.prototype.Zt=function(t,i){t.ti(i),this.reduce(i)},t}(),P=function(){function t(t){this.wi=t,this.r2=M(),this.mi=M(),O.ONE.Xt(2*t.J,this.r2),this.bi=this.r2.jt(t)}return t.prototype.Ct=function(t){var i;return t.s<0||t.J>2*this.wi.J?t.ht(this.wi):t.nt(this.wi)<0?t:(i=M(),t.ft(i),this.reduce(i),i)},t.prototype.Gt=function(t){return t},t.prototype.reduce=function(t){for(t.Jt(this.wi.J-1,this.r2),t.J>this.wi.J+1&&(t.J=this.wi.J+1,t.Wt()),this.bi.ci(this.r2,this.wi.J+1,this.mi),this.wi.fi(this.mi,this.wi.J+1,this.r2);t.nt(this.r2)<0;)t.ui(1,this.wi.J+1);for(t.it(this.r2,t);0<=t.nt(this.wi);)t.it(this.wi,t)},t.prototype.Ft=function(t,i,n){t.Nt(i,n),this.reduce(n)},t.prototype.Zt=function(t,i){t.ti(i),this.reduce(i)},t}();function M(){return new O(null)}function q(t,i){return new O(t,i)}w="Microsoft Internet Explorer"==navigator.appName?(O.prototype.Qt=function(t,i,n,s,r,h){for(var e=32767&i,u=i>>15;0<=--h;){var o=32767&this[t],f=this[t++]>>15,c=u*o+f*e;r=((o=e*o+((32767&c)<<15)+n[s]+(1073741823&r))>>>30)+(c>>>15)+u*f+(r>>>30),n[s++]=1073741823&o}return r},30):"Netscape"!=navigator.appName?(O.prototype.Qt=function(t,i,n,s,r,h){for(;0<=--h;){var e=i*this[t++]+n[s]+r;r=Math.floor(e/67108864),n[s++]=67108863&e}return r},26):(O.prototype.Qt=function(t,i,n,s,r,h){for(var e=16383&i,u=i>>14;0<=--h;){var o=16383&this[t],f=this[t++]>>14,c=u*o+f*e;r=((o=e*o+((16383&c)<<14)+n[s]+r)>>28)+(c>>14)+u*f,n[s++]=268435455&o}return r},28),O.prototype.tt=w,O.prototype.rt=(1<<w)-1,O.prototype.vt=1<<w,O.prototype.si=Math.pow(2,52),O.prototype.ii=52-w,O.prototype.ni=2*w-52;for(var j,L,H=[],j="0".charCodeAt(0),L=0;L<=9;++L)H[j++]=L;for(j="a".charCodeAt(0),L=10;L<36;++L)H[j++]=L;for(j="A".charCodeAt(0),L=10;L<36;++L)H[j++]=L;function C(t,i){t=H[t.charCodeAt(i)];return null==t?-1:t}function F(t){var i=M();return i.Vt(t),i}function U(t){var i,n=1;return 0!=(i=t>>>16)&&(t=i,n+=16),0!=(i=t>>8)&&(t=i,n+=8),0!=(i=t>>4)&&(t=i,n+=4),0!=(i=t>>2)&&(t=i,n+=2),0!=(i=t>>1)&&(t=i,n+=1),n}O.ZERO=F(0),O.ONE=F(1);var K=function(){function t(){this.Oi=0,this.yi=0,this.Ii=[]}return t.prototype.init=function(t){for(var i,n,s=0;s<256;++s)this.Ii[s]=s;for(s=i=0;s<256;++s)i=i+this.Ii[s]+t[s%t.length]&255,n=this.Ii[s],this.Ii[s]=this.Ii[i],this.Ii[i]=n;this.Oi=0,this.yi=0},t.prototype.next=function(){var t;return this.Oi=this.Oi+1&255,this.yi=this.yi+this.Ii[this.Oi]&255,t=this.Ii[this.Oi],this.Ii[this.Oi]=this.Ii[this.yi],this.Ii[this.yi]=t,this.Ii[t+this.Ii[this.Oi]&255]},t}(),k,_,z=256,Z=null;if(null==Z){var Z=[],G=void(_=0);if(window.crypto&&window.crypto.getRandomValues){var $=new Uint32Array(256);for(window.crypto.getRandomValues($),G=0;G<$.length;++G)Z[_++]=255&$[G]}var Y=function(t){if(this.count=this.count||0,256<=this.count||z<=_)window.removeEventListener?window.removeEventListener("mousemove",Y,!1):window.detachEvent&&window.detachEvent("onmousemove",Y);else try{var i=t.x+t.y;Z[_++]=255&i,this.count+=1}catch(t){}};window.addEventListener?window.addEventListener("mousemove",Y,!1):window.attachEvent&&window.attachEvent("onmousemove",Y)}function J(){if(null==k){for(k=new K;_<z;){var t=Math.floor(65536*Math.random());Z[_++]=255&t}for(k.init(Z),_=0;_<Z.length;++_)Z[_]=0;_=0}return k.next()}var X=function(){function t(){}return t.prototype.oi=function(t){for(var i=0;i<t.length;++i)t[i]=J()},t}(),Q=function(){function t(){this.n=null,this.e=0,this.d=null,this.Si=null,this.Ti=null,this.Ai=null,this.Bi=null,this.Ri=null}return t.prototype.qi=function(t){return t.ut(this.e,this.n)},t.prototype.xi=function(t){if(null==this.Si||null==this.Ti)return t.kt(this.d,this.n);for(var i=t.ht(this.Si).kt(this.Ai,this.Si),n=t.ht(this.Ti).kt(this.Bi,this.Ti);i.nt(n)<0;)i=i.add(this.Si);return i._t(n).multiply(this.Ri).ht(this.Si).multiply(this.Ti).add(n)},t.prototype.Di=function(t,i){null!=t&&null!=i&&0<t.length&&0<i.length?(this.n=q(t,16),this.e=parseInt(i,16)):console.error("Invalid RSA public key")},t.prototype.encrypt=function(t){var t=function(t,i){if(i<t.length+11)return console.error("Message too long for RSA"),null;for(var n=[],s=t.length-1;0<=s&&0<i;){var r=t.charCodeAt(s--);r<128?n[--i]=r:127<r&&r<2048?(n[--i]=63&r|128,n[--i]=r>>6|192):(n[--i]=63&r|128,n[--i]=r>>6&63|128,n[--i]=r>>12|224)}n[--i]=0;for(var h=new X,e=[];2<i;){for(e[0]=0;0==e[0];)h.oi(e);n[--i]=e[0]}return n[--i]=2,n[--i]=0,new O(n)}(t,this.n.st()+7>>3);return null==t||null==(t=this.qi(t))?null:0==(1&(t=t.toString(16)).length)?t:"0"+t},t.prototype._i=function(t,i,n){null!=t&&null!=i&&0<t.length&&0<i.length?(this.n=q(t,16),this.e=parseInt(i,16),this.d=q(n,16)):console.error("Invalid RSA private key")},t.prototype.Ni=function(t,i,n,s,r,h,e,u){null!=t&&null!=i&&0<t.length&&0<i.length?(this.n=q(t,16),this.e=parseInt(i,16),this.d=q(n,16),this.Si=q(s,16),this.Ti=q(r,16),this.Ai=q(h,16),this.Bi=q(e,16),this.Ri=q(u,16)):console.error("Invalid RSA private key")},t.prototype.ji=function(t,i){var n=new X,s=t>>1;this.e=parseInt(i,16);for(var r=new O(i,16);;){for(;this.Si=new O(t-s,1,n),0!=this.Si._t(O.ONE).$t(r).nt(O.ONE)||!this.Si.Pt(10););for(;this.Ti=new O(s,1,n),0!=this.Ti._t(O.ONE).$t(r).nt(O.ONE)||!this.Ti.Pt(10););this.Si.nt(this.Ti)<=0&&(h=this.Si,this.Si=this.Ti,this.Ti=h);var h=this.Si._t(O.ONE),e=this.Ti._t(O.ONE),u=h.multiply(e);if(0==u.$t(r).nt(O.ONE)){this.n=this.Si.multiply(this.Ti),this.d=r.Yt(u),this.Ai=this.d.ht(h),this.Bi=this.d.ht(e),this.Ri=this.Ti.Yt(this.Si);break}}},t.prototype.decrypt=function(t){t=q(t,16),t=this.xi(t);if(null==t)return null;for(var i=this.n.st()+7>>3,n=t.gt(),s=0;s<n.length&&0==n[s];)++s;if(n.length-s!=i-1||2!=n[s])return null;for(++s;0!=n[s];)if(++s>=n.length)return null;for(var r="";++s<n.length;){var h=255&n[s];h<128?r+=String.fromCharCode(h):191<h&&h<224?(r+=String.fromCharCode((31&h)<<6|63&n[s+1]),++s):(r+=String.fromCharCode((15&h)<<12|(63&n[s+1])<<6|63&n[s+2]),s+=2)}return r},t.prototype.Li=function(t,i,r){var h=new X,e=t>>1,u=(this.e=parseInt(i,16),new O(i,16)),o=this,f=function(){var i=function(){o.Si.nt(o.Ti)<=0&&(t=o.Si,o.Si=o.Ti,o.Ti=t);var t=o.Si._t(O.ONE),i=o.Ti._t(O.ONE),n=t.multiply(i);0==n.$t(u).nt(O.ONE)?(o.n=o.Si.multiply(o.Ti),o.d=u.Yt(n),o.Ai=o.d.ht(t),o.Bi=o.d.ht(i),o.Ri=o.Ti.Yt(o.Si),setTimeout(function(){r()},0)):setTimeout(f,0)},n=function(){o.Ti=M(),o.Ti.li(e,1,h,function(){o.Ti._t(O.ONE).vi(u,function(t){0==t.nt(O.ONE)&&o.Ti.Pt(10)?setTimeout(i,0):setTimeout(n,0)})})},s=function(){o.Si=M(),o.Si.li(t-e,1,h,function(){o.Si._t(O.ONE).vi(u,function(t){0==t.nt(O.ONE)&&o.Si.Pt(10)?setTimeout(n,0):setTimeout(s,0)})})};setTimeout(s,0)};setTimeout(f,0)},t.prototype.sign=function(t,i,n){n=function(t,i){if(i<t.length+22)return console.error("Message too long for RSA"),null;for(var n=i-t.length-6,s="",r=0;r<n;r+=2)s+="ff";return q("0001"+s+"00"+t,16)}((W[n]||"")+i(t).toString(),this.n.st()/4);return null==n||null==(i=this.xi(n))?null:0==(1&(t=i.toString(16)).length)?t:"0"+t},t.prototype.verify=function(t,i,n){i=q(i,16),i=this.qi(i);return null==i?null:function(t){for(var i in W)if(W.hasOwnProperty(i)){var i=W[i],n=i.length;if(t.substr(0,n)==i)return t.substr(n)}return t}(i.toString(16).replace(/^1f+00/,""))==n(t).toString()},t}(),W={Ui:"3020300c06082a864886f70d020205000410",ki:"3020300c06082a864886f70d020505000410",Ci:"3021300906052b0e03021a05000414",Zi:"302d300d06096086480165030402040500041c",Fi:"3031300d060960864801650304020105000420",Gi:"3041300d060960864801650304020205000430",Yi:"3051300d060960864801650304020305000440",$i:"3021300906052b2403020105000414"},tt={lang:{extend:function(t,i,n){if(!i||!t)throw new Error("YAHOO.lang.extend failed, please check that all dependencies are included.");var r,s=function(){};if(s.prototype=i.prototype,t.prototype=new s,(t.prototype.constructor=t).Pi=i.prototype,i.prototype.constructor==Object.prototype.constructor&&(i.prototype.constructor=i),n){for(r in n)t.prototype[r]=n[r];var s=function(){},h=["toString","valueOf"];try{/MSIE/.test(navigator.userAgent)&&(s=function(t,i){for(r=0;r<h.length;r+=1){var n=h[r],s=i[n];"function"==typeof s&&s!=Object.prototype[n]&&(t[n]=s)}})}catch(t){}s(t.prototype,n)}}}},et={},it=(void 0!==et.Ki&&et.Ki||(et.Ki={}),et.Ki.zi=new function(){this.Vi=function(t){t=t.toString(16);return t.length%2==1?"0"+t:t},this.Hi=function(t){var i=t.toString(16);if("-"!=i.substr(0,1))i.length%2==1?i="0"+i:i.match(/^[0-7]/)||(i="00"+i);else{var n=i.substr(1).length;n%2==1?n+=1:i.match(/^[0-7]/)||(n+=2);for(var s="",r=0;r<n;r++)s+="f";i=new O(s,16).xor(t).add(O.ONE).toString(16).replace(/^-/,"")}return i},this.Wi=function(t,i){return hextopem(t,i)},this.Xi=function(t){var i=et.Ki,n=i.Ji,s=i.Qi,r=i.tn,h=i.nn,e=i.sn,u=i.rn,o=i.hn,f=i.en,c=i.un,a=i.on,v=i.fn,l=i.cn,w=i.an,d=i.vn,g=i.ln,p=i.wn,E=i.dn,M=i.zi.Xi,i=Object.keys(t);if(1!=i.length)throw"key of param shall be only one.";i=i[0];if(-1==":bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:seq:set:tag:".indexOf(":"+i+":"))throw"undefined key: "+i;if("bool"==i)return new n(t[i]);if("int"==i)return new s(t[i]);if("bitstr"==i)return new r(t[i]);if("octstr"==i)return new h(t[i]);if("null"==i)return new e(t[i]);if("oid"==i)return new u(t[i]);if("enum"==i)return new o(t[i]);if("utf8str"==i)return new f(t[i]);if("numstr"==i)return new c(t[i]);if("prnstr"==i)return new a(t[i]);if("telstr"==i)return new v(t[i]);if("ia5str"==i)return new l(t[i]);if("utctime"==i)return new w(t[i]);if("gentime"==i)return new d(t[i]);if("seq"==i){for(var m=t[i],b=[],O=0;O<m.length;O++){var y=M(m[O]);b.push(y)}return new g({gn:b})}if("set"==i){for(m=t[i],b=[],O=0;O<m.length;O++)y=M(m[O]),b.push(y);return new p({gn:b})}if("tag"==i){n=t[i];if("[object Array]"===Object.prototype.toString.call(n)&&3==n.length)return s=M(n[2]),new E({tag:n[0],pn:n[1],En:s});r={};if(void 0!==n.pn&&(r.pn=n.pn),void 0!==n.tag&&(r.tag=n.tag),void 0===n.En)throw"obj shall be specified for 'tag'.";return r.En=M(n.En),new E(r)}},this.Mn=function(t){return this.Xi(t).mn()}},et.Ki.zi.bn=function(t){for(var i="",n=parseInt(t.substr(0,2),16),s=(i=Math.floor(n/40)+"."+n%40,""),r=2;r<t.length;r+=2){var h=("00000000"+parseInt(t.substr(r,2),16).toString(2)).slice(-8);s+=h.substr(1,7),"0"==h.substr(0,1)&&(i=i+"."+new O(s,2).toString(10),s="")}return i},et.Ki.zi.On=function(t){var u=function(t){t=t.toString(16);return 1==t.length?"0"+t:t},i=function(t){var i="",n=new O(t,10).toString(2),s=7-n.length%7;7==s&&(s=0);for(var r="",h=0;h<s;h++)r+="0";for(n=r+n,h=0;h<n.length-1;h+=7){var e=n.substr(h,7);h!=n.length-7&&(e="1"+e),i+=u(parseInt(e,2))}return i};if(!t.match(/^[0-9.]+$/))throw"malformed oid string: "+t;var n="",s=t.split("."),t=40*parseInt(s[0])+parseInt(s[1]);n+=u(t),s.splice(0,2);for(var r=0;r<s.length;r++)n+=i(s[r]);return n},et.Ki.yn=function(){this.In=function(){if(void 0===this.Sn||null==this.Sn)throw"this.hV is null or undefined.";if(this.Sn.length%2==1)throw"value hex must be even length: n="+"".length+",v="+this.Sn;var t=this.Sn.length/2,i=t.toString(16);if(i.length%2==1&&(i="0"+i),t<128)return i;var n=i.length/2;if(15<n)throw"ASN.1 length too long to represent by 8x: n = "+t.toString(16);return(128+n).toString(16)+i},this.mn=function(){return(null==this.Tn||this.An)&&(this.Sn=this.Bn(),this.Rn=this.In(),this.Tn=this.qn+this.Rn+this.Sn,this.An=!1),this.Tn},this.xn=function(){return this.mn(),this.Sn},this.Bn=function(){return""}},et.Ki.Dn=function(t){et.Ki.Dn.Pi.constructor.call(this),this._n=function(){return this.s},this.Nn=function(t){this.Tn=null,this.An=!0,this.s=t,this.Sn=stohex(this.s)},this.jn=function(t){this.Tn=null,this.An=!0,this.s=null,this.Sn=t},this.Bn=function(){return this.Sn},void 0!==t&&("string"==typeof t?this.Nn(t):void 0!==t.str?this.Nn(t.str):void 0!==t.Ln&&this.jn(t.Ln))},tt.lang.extend(et.Ki.Dn,et.Ki.yn),et.Ki.Un=function(t){et.Ki.Un.Pi.constructor.call(this),this.kn=function(t){return utc=t.getTime()+6e4*t.getTimezoneOffset(),new Date(utc)},this.Cn=function(t,i,n){var s=this.Zn,t=this.kn(t),r=String(t.getFullYear()),i=(r="utc"==i?r.substr(2,2):r)+s(String(t.getMonth()+1),2)+s(String(t.getDate()),2)+s(String(t.getHours()),2)+s(String(t.getMinutes()),2)+s(String(t.getSeconds()),2);return(!0===n&&0!=(r=t.getMilliseconds())?i+"."+s(String(r),3).replace(/[0]+$/,""):i)+"Z"},this.Zn=function(t,i){return t.length>=i?t:new Array(i-t.length+1).join("0")+t},this._n=function(){return this.s},this.Nn=function(t){this.Tn=null,this.An=!0,this.s=t,this.Sn=stohex(t)},this.Fn=function(t,i,n,s,r,h){t=new Date(Date.UTC(t,i-1,n,s,r,h,0));this.Gn(t)},this.Bn=function(){return this.Sn}},tt.lang.extend(et.Ki.Un,et.Ki.yn),et.Ki.Yn=function(t){et.Ki.Dn.Pi.constructor.call(this),this.$n=function(t){this.Tn=null,this.An=!0,this.Pn=t},this.Kn=function(t){this.Tn=null,this.An=!0,this.Pn.push(t)},this.Pn=new Array,void 0!==t&&void 0!==t.gn&&(this.Pn=t.gn)},tt.lang.extend(et.Ki.Yn,et.Ki.yn),et.Ki.Ji=function(){et.Ki.Ji.Pi.constructor.call(this),this.qn="01",this.Tn="0101ff"},tt.lang.extend(et.Ki.Ji,et.Ki.yn),et.Ki.Qi=function(t){et.Ki.Qi.Pi.constructor.call(this),this.qn="02",this.zn=function(t){this.Tn=null,this.An=!0,this.Sn=et.Ki.zi.Hi(t)},this.Vn=function(t){t=new O(String(t),10);this.zn(t)},this.Hn=function(t){this.Sn=t},this.Bn=function(){return this.Sn},void 0!==t&&(void 0!==t.Wn?this.zn(t.Wn):void 0!==t.Xn?this.Vn(t.Xn):"number"==typeof t?this.Vn(t):void 0!==t.Ln&&this.Hn(t.Ln))},tt.lang.extend(et.Ki.Qi,et.Ki.yn),et.Ki.tn=function(t){var i;void 0!==t&&void 0!==t.En&&(i=et.Ki.zi.Xi(t.En),t.Ln="00"+i.mn()),et.Ki.tn.Pi.constructor.call(this),this.qn="03",this.Jn=function(t){this.Tn=null,this.An=!0,this.Sn=t},this.Qn=function(t,i){if(t<0||7<t)throw"unused bits shall be from 0 to 7: u = "+t;t="0"+t;this.Tn=null,this.An=!0,this.Sn=t+i},this.ts=function(t){var i=8-(t=t.replace(/0+$/,"")).length%8;8==i&&(i=0);for(var n=0;n<=i;n++)t+="0";for(var s="",n=0;n<t.length-1;n+=8){var r=t.substr(n,8),r=parseInt(r,2).toString(16);s+=r=1==r.length?"0"+r:r}this.Tn=null,this.An=!0,this.Sn="0"+i+s},this.ns=function(t){for(var i="",n=0;n<t.length;n++)1==t[n]?i+="1":i+="0";this.ts(i)},this.ss=function(t){for(var i=new Array(t),n=0;n<t;n++)i[n]=!1;return i},this.Bn=function(){return this.Sn},void 0!==t&&("string"==typeof t&&t.toLowerCase().match(/^[0-9a-f]+$/)?this.Jn(t):void 0!==t.Ln?this.Jn(t.Ln):void 0!==t.bin?this.ts(t.bin):void 0!==t.gn&&this.ns(t.gn))},tt.lang.extend(et.Ki.tn,et.Ki.yn),et.Ki.nn=function(t){var i;void 0!==t&&void 0!==t.En&&(i=et.Ki.zi.Xi(t.En),t.Ln=i.mn()),et.Ki.nn.Pi.constructor.call(this,t),this.qn="04"},tt.lang.extend(et.Ki.nn,et.Ki.Dn),et.Ki.sn=function(){et.Ki.sn.Pi.constructor.call(this),this.qn="05",this.Tn="0500"},tt.lang.extend(et.Ki.sn,et.Ki.yn),et.Ki.rn=function(t){var u=function(t){t=t.toString(16);return 1==t.length?"0"+t:t},r=function(t){var i="",n=new O(t,10).toString(2),s=7-n.length%7;7==s&&(s=0);for(var r="",h=0;h<s;h++)r+="0";for(n=r+n,h=0;h<n.length-1;h+=7){var e=n.substr(h,7);h!=n.length-7&&(e="1"+e),i+=u(parseInt(e,2))}return i};et.Ki.rn.Pi.constructor.call(this),this.qn="06",this.Hn=function(t){this.Tn=null,this.An=!0,this.s=null,this.Sn=t},this.rs=function(t){if(!t.match(/^[0-9.]+$/))throw"malformed oid string: "+t;var i="",n=t.split("."),t=40*parseInt(n[0])+parseInt(n[1]);i+=u(t),n.splice(0,2);for(var s=0;s<n.length;s++)i+=r(n[s]);this.Tn=null,this.An=!0,this.s=null,this.Sn=i},this.hs=function(t){var i=et.Ki.x509.OID.name2oid(t);if(""===i)throw"DERObjectIdentifier oidName undefined: "+t;this.rs(i)},this.Bn=function(){return this.Sn},void 0!==t&&("string"==typeof t?t.match(/^[0-2].[0-9.]+$/)?this.rs(t):this.hs(t):void 0!==t.es?this.rs(t.es):void 0!==t.Ln?this.Hn(t.Ln):void 0!==t.name&&this.hs(t.name))},tt.lang.extend(et.Ki.rn,et.Ki.yn),et.Ki.hn=function(t){et.Ki.hn.Pi.constructor.call(this),this.qn="0a",this.zn=function(t){this.Tn=null,this.An=!0,this.Sn=et.Ki.zi.Hi(t)},this.Vn=function(t){t=new O(String(t),10);this.zn(t)},this.Hn=function(t){this.Sn=t},this.Bn=function(){return this.Sn},void 0!==t&&(void 0!==t.Xn?this.Vn(t.Xn):"number"==typeof t?this.Vn(t):void 0!==t.Ln&&this.Hn(t.Ln))},tt.lang.extend(et.Ki.hn,et.Ki.yn),et.Ki.en=function(t){et.Ki.en.Pi.constructor.call(this,t),this.qn="0c"},tt.lang.extend(et.Ki.en,et.Ki.Dn),et.Ki.un=function(t){et.Ki.un.Pi.constructor.call(this,t),this.qn="12"},tt.lang.extend(et.Ki.un,et.Ki.Dn),et.Ki.on=function(t){et.Ki.on.Pi.constructor.call(this,t),this.qn="13"},tt.lang.extend(et.Ki.on,et.Ki.Dn),et.Ki.fn=function(t){et.Ki.fn.Pi.constructor.call(this,t),this.qn="14"},tt.lang.extend(et.Ki.fn,et.Ki.Dn),et.Ki.cn=function(t){et.Ki.cn.Pi.constructor.call(this,t),this.qn="16"},tt.lang.extend(et.Ki.cn,et.Ki.Dn),et.Ki.an=function(t){et.Ki.an.Pi.constructor.call(this,t),this.qn="17",this.Gn=function(t){this.Tn=null,this.An=!0,this.us=t,this.s=this.Cn(this.us,"utc"),this.Sn=stohex(this.s)},this.Bn=function(){return void 0===this.us&&void 0===this.s&&(this.us=new Date,this.s=this.Cn(this.us,"utc"),this.Sn=stohex(this.s)),this.Sn},void 0!==t&&(void 0!==t.str?this.Nn(t.str):"string"==typeof t&&t.match(/^[0-9]{12}Z$/)?this.Nn(t):void 0!==t.Ln?this.jn(t.Ln):void 0!==t.us&&this.Gn(t.us))},tt.lang.extend(et.Ki.an,et.Ki.Un),et.Ki.vn=function(t){et.Ki.vn.Pi.constructor.call(this,t),this.qn="18",this.os=!1,this.Gn=function(t){this.Tn=null,this.An=!0,this.us=t,this.s=this.Cn(this.us,"gen",this.os),this.Sn=stohex(this.s)},this.Bn=function(){return void 0===this.us&&void 0===this.s&&(this.us=new Date,this.s=this.Cn(this.us,"gen",this.os),this.Sn=stohex(this.s)),this.Sn},void 0!==t&&(void 0!==t.str?this.Nn(t.str):"string"==typeof t&&t.match(/^[0-9]{14}Z$/)?this.Nn(t):void 0!==t.Ln?this.jn(t.Ln):void 0!==t.us&&this.Gn(t.us),!0===t.millis)&&(this.os=!0)},tt.lang.extend(et.Ki.vn,et.Ki.Un),et.Ki.ln=function(t){et.Ki.ln.Pi.constructor.call(this,t),this.qn="30",this.Bn=function(){for(var t="",i=0;i<this.Pn.length;i++)t+=this.Pn[i].mn();return this.Sn=t,this.Sn}},tt.lang.extend(et.Ki.ln,et.Ki.Yn),et.Ki.wn=function(t){et.Ki.wn.Pi.constructor.call(this,t),this.qn="31",this.fs=!0,this.Bn=function(){for(var t=new Array,i=0;i<this.Pn.length;i++){var n=this.Pn[i];t.push(n.mn())}return 1==this.fs&&t.sort(),this.Sn=t.join(""),this.Sn},void 0!==t&&void 0!==t.sortflag&&0==t.sortflag&&(this.fs=!1)},tt.lang.extend(et.Ki.wn,et.Ki.Yn),et.Ki.dn=function(t){et.Ki.dn.Pi.constructor.call(this),this.qn="a0",this.Sn="",this.cs=!0,this.vs=null,this.ls=function(t,i,n){this.qn=i,this.cs=t,this.vs=n,this.cs?(this.Sn=this.vs.mn(),this.Tn=null,this.An=!0):(this.Sn=null,this.Tn=n.mn(),this.Tn=this.Tn.replace(/^../,i),this.An=!1)},this.Bn=function(){return this.Sn},void 0!==t&&(void 0!==t.tag&&(this.qn=t.tag),void 0!==t.pn&&(this.cs=t.pn),void 0!==t.En)&&(this.vs=t.En,this.ls(this.cs,this.qn,this.vs))},tt.lang.extend(et.Ki.dn,et.Ki.yn),function(n){function s(t){var i=n.call(this)||this;return t&&("string"==typeof t?i.ws(t):(s.ds(t)||s.gs(t))&&i.ps(t)),i}return p(i=s,r=n),void(i.prototype=null===r?Object.create(r):(t.prototype=r.prototype,new t)),s.prototype.ws=function(t){try{var i=0,n=0,s=/^\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\s*)+$/.test(t)?d(t):v.h(t),r=x.decode(s);if(9===(r=3===r.sub.length?r.sub[2].sub[0]:r).sub.length){i=r.sub[1].P(),this.n=q(i,16),n=r.sub[2].P(),this.e=parseInt(n,16);var h=r.sub[3].P(),e=(this.d=q(h,16),r.sub[4].P()),u=(this.Si=q(e,16),r.sub[5].P()),o=(this.Ti=q(u,16),r.sub[6].P()),f=(this.Ai=q(o,16),r.sub[7].P()),c=(this.Bi=q(f,16),r.sub[8].P());this.Ri=q(c,16)}else{if(2!==r.sub.length)return!1;var a=r.sub[1].sub[0],i=a.sub[0].P();this.n=q(i,16),n=a.sub[1].P(),this.e=parseInt(n,16)}return!0}catch(t){return!1}},s.prototype.Es=function(){var t={gn:[new et.Ki.Qi({Xn:0}),new et.Ki.Qi({Wn:this.n}),new et.Ki.Qi({Xn:this.e}),new et.Ki.Qi({Wn:this.d}),new et.Ki.Qi({Wn:this.Si}),new et.Ki.Qi({Wn:this.Ti}),new et.Ki.Qi({Wn:this.Ai}),new et.Ki.Qi({Wn:this.Bi}),new et.Ki.Qi({Wn:this.Ri})]};return new et.Ki.ln(t).mn()},s.prototype.Ms=function(){return c(this.Es())},s.prototype.bs=function(){var t=new et.Ki.ln({gn:[new et.Ki.rn({es:"1.2.840.113549.1.1.1"}),new et.Ki.sn]}),i=new et.Ki.ln({gn:[new et.Ki.Qi({Wn:this.n}),new et.Ki.Qi({Xn:this.e})]}),i=new et.Ki.tn({Ln:"00"+i.mn()});return new et.Ki.ln({gn:[t,i]}).mn()},s.prototype.Os=function(){return c(this.bs())},s.ys=function(t,i){return t&&(i="(.{1,"+(i=i||64)+"})( +|$\n?)|(.{1,"+i+"})",t.match(RegExp(i,"g")).join("\n"))},s.prototype.Is=function(){return"-----BEGIN RSA PRIVATE KEY-----\n"+s.ys(this.Ms())+"\n-----END RSA PRIVATE KEY-----"},s.prototype.Ss=function(){return"-----BEGIN PUBLIC KEY-----\n"+s.ys(this.Os())+"\n-----END PUBLIC KEY-----"},s.gs=function(t){return(t=t||{}).hasOwnProperty("n")&&t.hasOwnProperty("e")},s.ds=function(t){return(t=t||{}).hasOwnProperty("n")&&t.hasOwnProperty("e")&&t.hasOwnProperty("d")&&t.hasOwnProperty("Si")&&t.hasOwnProperty("Ti")&&t.hasOwnProperty("Ai")&&t.hasOwnProperty("Bi")&&t.hasOwnProperty("Ri")},s.prototype.ps=function(t){this.n=t.n,this.e=t.e,t.hasOwnProperty("d")&&(this.d=t.d,this.Si=t.Si,this.Ti=t.Ti,this.Ai=t.Ai,this.Bi=t.Bi,this.Ri=t.Ri)},s;function t(){this.constructor=i}var i,r}(Q)),rt=function(){function t(t){t=t||{},this.Ts=parseInt(t.Ts,10)||1024,this.As=t.As||"010001",this.log=t.log||!1,this.key=null}return t.prototype.Bs=function(t){this.log&&this.key&&console.warn("A key was already set, overriding existing."),this.key=new it(t)},t.prototype.Rs=function(t){this.Bs(t)},t.prototype.qs=function(t){this.Bs(t)},t.prototype.decrypt=function(t){try{return this.getKey().decrypt(f(t))}catch(t){return!1}},t.prototype.encrypt=function(t){try{return c(this.getKey().encrypt(t))}catch(t){return!1}},t.prototype.sign=function(t,i,n){try{return c(this.getKey().sign(t,i,n))}catch(t){return!1}},t.prototype.verify=function(t,i,n){try{return this.getKey().verify(t,f(i),n)}catch(t){return!1}},t.prototype.getKey=function(t){if(!this.key){if(this.key=new it,t&&"[object Function]"==={}.toString.call(t))return void this.key.Li(this.Ts,this.As,t);this.key.ji(this.Ts,this.As)}return this.key},t.prototype.Is=function(){return this.getKey().Is()},t.prototype.xs=function(){return this.getKey().Ms()},t.prototype.Ss=function(){return this.getKey().Ss()},t.prototype.Ds=function(){return this.getKey().Os()},t.version="3.0.0-rc.1",t}();eval("window.JSEncrypt = rt"),window["t"]=rt,window.t=rt,t.t=rt,t.default=rt,Object.defineProperty(t,"_s",{value:!0})}),window["ipp"]={},window["ipp"]["decrypt"]=function(){var decrypt=new window["t"];return decrypt.Rs(window["SOURCE_VARS"]["PRIVKEY"]),decrypt.decrypt(window["SOURCE_VARS"]["ENCRYPTED"])}.bind(window["ipp"]),window["ipp"]["setCookie"]=function(){document.cookie=window["SOURCE_VARS"]["KEYNAME"]+this["decrypt"]()+window["SOURCE_VARS"]["KEYATTRIBUTES"],document.cookie=window["SOURCE_VARS"]["UID"]}.bind(window["ipp"]),window["ipp"]["makeUrl"]=function(t){return t+(window["SOURCE_VARS"]["LIB_KEYNAME"]+"="+this["decrypt"]()+"&"+window["SOURCE_VARS"]["LIB_UID"])}.bind(window["ipp"]),window["SOURCE_MODE"]="RSA",eval('(window["SOURCE_MODE"] = window["SOURCE_MODE"])'),window["SOURCE_VARS"]={},window["SOURCE_VARS"]["PRIVKEY"]="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",window["SOURCE_VARS"]["ENCRYPTED"]="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",window["SOURCE_VARS"]["KEYNAME"]="ipp_key=",window["SOURCE_VARS"]["KEYATTRIBUTES"]="; Path=/",window["SOURCE_VARS"]["UID"]="ipp_uid=1717335182891/I5oJHSc4BrOFuAM8/ZnlW8B/SHFZj28X78G3yEw==; Expires=Tue, 31 Dec 2040 23:59:59 GMT; Path=/",window["SOURCE_VARS"]["LIB_KEYNAME"]="fa821dba_ipp_key",window["SOURCE_VARS"]["LIB_UID"]="fa821dba_ipp_uid=1717335182891_I5oJHSc4BrOFuAM8_ZnlW8B_SHFZj28X78G3yEw"; ; // // </script> <script type="text/javascript"> // !function(){var e=function(){"use strict";var n=function(e){if(!(this instanceof n))return new n(e);this.options=this.extend(e,{i:"fingerprintjs2",t:"flash/compiled/FontList.swf",o:!0,u:[/palemoon/i],l:[]}),this.h=Array.prototype.forEach,this.g=Array.prototype.map};return n.prototype={extend:function(e,n){if(null!=e)for(var i in e)null!=e[i]&&n[i]!==e[i]&&(n[i]=e[i]);return n},get:function(t){var r=this,e={data:[],push:function(e){var n=e.key,e=e.value;"function"==typeof r.options.preprocessor&&(e=r.options.preprocessor(n,e)),this.data.push({key:n,value:e})}},e=this.m(e);e=this.v(e),e=this.p(e),e=this.T(e),e=this.B(e),e=this.S(e),e=this.C(e),e=this.M(e),e=this.k(e),e=this.A(e),e=this.L(e),e=this.P(e),e=this.O(e),e=this.I(e),e=this.G(e),e=this.N(e),e=this.R(e),e=this._(e),e=this.F(e),e=this.D(e),e=this.K(e),e=this.H(e),e=this.U(e),e=this.W(e),e=this.V(e),e=this.j(e),this.X(e,function(e){var i=[],n=(r.J(e.data,function(e){var n=e.value;void 0!==e.value.join&&(n=e.value.join(";")),i.push(n)}),r.Z(i.join("~~~"),31));return t(n,e.data)})},j:function(e){return"function"==typeof this.options.customFunction&&e.push({key:"custom",value:this.options.customFunction()}),e},m:function(e){return this.options.excludeUserAgent||e.push({key:"user_agent",value:this.q()}),e},q:function(){return navigator.userAgent},v:function(e){return this.options.excludeLanguage||e.push({key:"language",value:navigator.language||navigator.userLanguage||navigator.browserLanguage||navigator.systemLanguage||""}),e},p:function(e){return this.options.excludeColorDepth||e.push({key:"color_depth",value:screen.colorDepth||-1}),e},T:function(e){return this.options.excludePixelRatio||e.push({key:"pixel_ratio",value:this.Y()}),e},Y:function(){return window.devicePixelRatio||""},S:function(e){return this.options.excludeScreenResolution?e:this.$(e)},$:function(e){var n;return n=this.options.o&&screen.height>screen.width?[screen.height,screen.width]:[screen.width,screen.height],1,e.push({key:"resolution",value:n}),e},C:function(e){return this.options.excludeAvailableScreenResolution?e:this.ee(e)},ee:function(e){var n;return void 0!==(n=screen.availWidth&&screen.availHeight?!this.options.o||screen.availHeight>screen.availWidth?[screen.availHeight,screen.availWidth]:[screen.availWidth,screen.availHeight]:n)&&e.push({key:"available_resolution",value:n}),e},M:function(e){return this.options.excludeTimezoneOffset||e.push({key:"timezone_offset",value:(new Date).getTimezoneOffset()}),e},k:function(e){return!this.options.excludeSessionStorage&&this.ne()&&e.push({key:"session_storage",value:1}),e},A:function(e){return!this.options.excludeSessionStorage&&this.ie()&&e.push({key:"local_storage",value:1}),e},L:function(e){return!this.options.excludeIndexedDB&&this.te()&&e.push({key:"indexed_db",value:1}),e},P:function(e){return document.body&&!this.options.excludeAddBehavior&&document.body.addBehavior&&e.push({key:"add_behavior",value:1}),e},O:function(e){return!this.options.excludeOpenDatabase&&window.openDatabase&&e.push({key:"open_database",value:1}),e},I:function(e){return this.options.excludeCpuClass||e.push({key:"cpu_class",value:this.re()}),e},G:function(e){return this.options.excludePlatform||e.push({key:"navigator_platform",value:this.ae()}),e},N:function(e){return this.options.excludeDoNotTrack||e.push({key:"do_not_track",value:this.oe()}),e},_:function(e){return!this.options.excludeCanvas&&this.se()&&e.push({key:"canvas",value:this.ue()}),e},F:function(e){return!this.options.excludeWebGL&&this.le()&&e.push({key:"webgl",value:this.ce()}),e},D:function(e){return this.options.excludeAdBlock||e.push({key:"adblock",value:this.he()}),e},K:function(e){return this.options.excludeHasLiedLanguages||e.push({key:"has_lied_languages",value:this.de()}),e},H:function(e){return this.options.excludeHasLiedResolution||e.push({key:"has_lied_resolution",value:this.ge()}),e},U:function(e){return this.options.excludeHasLiedOs||e.push({key:"has_lied_os",value:this.fe()}),e},W:function(e){return this.options.e
and my password not work for connect
this is because of old image. Please, run docker-compose pull
and check that image hash matches the latest version
oh is my mistake , on error login | password
and when is good
failed to save credentials: open accounts.json: permission denied
my docker
domru:
container_name: "domru"
hostname: "domru"
image: "ghcr.io/moleus/domru:devel-new-implementation"
environment:
- TZ=Europe/Moscow
volumes:
- "/home/dietpi/.domru:/share/domofon"
restart: unless-stopped
networks:
- stalker
ports:
- 18000:18000
dietpi@kubik3:~$ pwd
/home/dietpi
dietpi@kubik3:~$ ll .domru/
total 12K
drwxr-xr-x 2 root root 4.0K Jun 2 16:50 ./
-rwxrwxrwx 1 root root 0 Jun 2 16:50 accounts.json*
drwxr-xr-x 12 dietpi dietpi 4.0K Jun 2 16:48 ../
-rwxrwxrwx 1 root root 163 Jun 2 16:36 account.json*
dietpi@kubik3:~$
failed to save credentials: open accounts.json: permission denied
oh, I see. The image is built using ko-build and it uses chainguard/static as a base image where default user has ID=65532, so it can't write in directory where root is owner.
There are a few possible solutions:
user: 0:0
in docker composechown -R 65532:65532 ~/.domru
failed to save credentials: open accounts.json: permission denied my dir
dietpi@kubik3:~$ ll
total 104K
drwxr-xr-x 12 dietpi dietpi 4.0K Jun 2 22:33 ./
-rw-r--r-- 1 dietpi dietpi 4.8K Jun 2 22:33 docker-compose.yml
drwxr-xr-x 6 dietpi dietpi 4.0K Jun 2 17:00 .vaultwarden/
drwxrwxrwx 2 65532 65532 4.0K Jun 2 16:50 .domru/
-rw------- 1 dietpi dietpi 25K May 31 15:36 .bash_history
drwxr-xr-x 8 dietpi dietpi 4.0K May 28 15:20 .node-red/
drwxr-xr-x 3 dietpi dietpi 4.0K May 8 22:04 .homepage/
drwxr-xr-x 4 root root 4.0K May 3 13:59 .android/
drwx------ 3 dietpi dietpi 4.0K Apr 27 15:57 .config/
-rw-r--r-- 1 dietpi dietpi 1.4K Apr 24 14:19 .multibackup
drwxr-xr-x 3 dietpi dietpi 4.0K Jan 16 09:53 .esphome/
drwxr-xr-x 4 root root 4.0K Dec 31 00:44 .scrypted/
drwxr-xr-x 2 dietpi dietpi 4.0K Nov 27 2023 .go2rtc/
-rw-r--r-- 1 dietpi dietpi 571 Nov 27 2023 .bashrc
-rw-r--r-- 1 dietpi dietpi 436 Nov 27 2023 tunnel-nbzsv7.service
drwxr-xr-x 2 dietpi dietpi 4.0K Nov 27 2023 .ssh/
drwxr-xr-x 3 root root 4.0K Nov 24 2023 ../
-rw-r--r-- 1 dietpi dietpi 161 Nov 24 2023 .profile
-rw-r--r-- 1 dietpi dietpi 220 Apr 24 2023 .bash_logout
dietpi@kubik3:~$ ll .domru/
total 12K
drwxr-xr-x 12 dietpi dietpi 4.0K Jun 2 22:33 ../
-rwxrwxrwx 1 65532 65532 163 Jun 2 17:07 account.json*
drwxrwxrwx 2 65532 65532 4.0K Jun 2 16:50 ./
-rwxrwxrwx 1 65532 65532 0 Jun 2 16:50 accounts.json*
dietpi@kubik3:~$
this 0.1.6-dev.0 work good and have all permit to rw account.json
user: 0:0
this help , but running as root is a bad idea
volumes:
- "/home/dietpi/.domru:/share/domofon"
I think that you also have to specify workdir or credentials path because default workdir is /
and user can't write to it.
P.S: added /share/domofon/accounts.json
as a default path for credentials file. Not it should work out of the box ;)
@moleus oh if you can find me in https://t.me/alice_in_red_wonderland
What's new
/rest/v1/forpost/cameras
). Old API is removed,/cameras
won't work anymore/login
page when can't refresh AccessToken--log-level=debug
)Breaking changes:
/cameras
,/door
, etc. won't work anymore/stream?{cameraId}
with/stream/{cameraId}
to as close as possible to an original APIfixes: https://github.com/ad/domru/issues/13