diff --git a/static/vcard/Benno Lorenz's public key.asc b/static/vcard/Benno Lorenz's public key.asc new file mode 100644 index 0000000..21a4527 --- /dev/null +++ b/static/vcard/Benno Lorenz's public key.asc @@ -0,0 +1,19 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Comment: 7408 C82B 3C63 D661 E4F8 6F19 FB83 5304 6D3F 2092 +Comment: Benno Lorenz + +xjMEaTIM6RYJKwYBBAHaRw8BAQdAcqWV3FP3YpEBTW++N9rp8hCuKxCMHRYelVUj +VeuMi3nNJUJlbm5vIExvcmVueiA8YmVubm9AYmVubm8tbG9yZW56LmNvbT7ClgQT +FgoAPhYhBHQIyCs8Y9Zh5PhvGfuDUwRtPyCSBQJpMgzpAhsDBQkFpEjHBQsJCAcC +BhUKCQgLAgQWAgMBAh4BAheAAAoJEPuDUwRtPyCS+6MBAItxFT0xIJjH0C6Q2Vbb +Rf6oAqRwlRQoQF1WHj7FLBmAAQCf6GL4Hi5+6i6nQAm+I9e11PirAYhfGJTs0swx +OYOCA84zBGkyE3wWCSsGAQQB2kcPAQEHQOaUdPnzAftVYchSH8bDA/XbHsAcS1sW +GVG0cx6eiJhfwn4EGBYKACYWIQR0CMgrPGPWYeT4bxn7g1MEbT8gkgUCaTITfAIb +IAUJBaOZdAAKCRD7g1MEbT8gkvbdAQCqchVmZhnisbpnog2AbmP//jEmMB7VB44v +XTnO1eneuAD/cbC5z/oFwIV54DsabM/RqQF8R/hn/fynurah9fSHoAvOOARpMgzp +EgorBgEEAZdVAQUBAQdAr8zZbpRuXM+0o4cFprGCxuN0o6f/8Ws/Kt/M43fkrA8D +AQgHwn4EGBYKACYWIQR0CMgrPGPWYeT4bxn7g1MEbT8gkgUCaTIM6QIbDAUJBaRI +xwAKCRD7g1MEbT8gkoxcAPoCxaH8DLJGiBOZmWE4k+GZRXUobt5+xWjQO7S71fx+ +OwEAx2Pe2WaykF71QPJmyMv6c0OpWq1/xjZmED71Q3/cMwQ= +=qmZI +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/static/vcard/Benno Lorenz's public key.asc:Zone.Identifier b/static/vcard/Benno Lorenz's public key.asc:Zone.Identifier new file mode 100644 index 0000000..01b9a75 Binary files /dev/null and b/static/vcard/Benno Lorenz's public key.asc:Zone.Identifier differ diff --git a/static/vcard/bennolorenz.vcf b/static/vcard/bennolorenz.vcf new file mode 100644 index 0000000..c53bb26 --- /dev/null +++ b/static/vcard/bennolorenz.vcf @@ -0,0 +1,23 @@ +BEGIN:VCARD +VERSION:3.0 +N:Lorenz;Benno;;; +FN:Benno Lorenz +ORG:RSP GmbH & Co. KG +ADR;TYPE=WORK:Zum Silberstollen 10 +07318 Saalfeld/Saale +TITLE:Software Engineer +TEL;TYPE=CELL: +TEL;TYPE=WORK: +TEL;TYPE=HOME: +TEL;TYPE=MSG: +EMAIL;TYPE=WORK:benno@benno-lorenz.com +URL;TYPE=Digital Business Card:https://benno-lorenz.com/vcard/bennolorenz +URL:benno-lorenz.com +URL;TYPE=Website:benno-lorenz.com +URL;TYPE=GitHub:https://github.com/bennolor +URL;TYPE=LinkedIn:https://linkedin.com/in/benno-lorenz-3b58212a8 +URL;TYPE=Mastodon:https://chaos.social/@BananaBen +KEY;TYPE=PGP;ENCODING=b:LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tCkNvbW1lbnQ6IDc0MDggQzgyQiAzQzYzIEQ2NjEgRTRGOCAgNkYxOSBGQjgzIDUzMDQgNkQzRiAyMDkyCkNvbW1lbnQ6IEJlbm5vIExvcmVueiA8YmVubm9AYmVubm8tbG9yZW56LmNvbT4KCnhqTUVhVElNNlJZSkt3WUJCQUhhUnc4QkFRZEFjcVdWM0ZQM1lwRUJUVysrTjlycDhoQ3VLeENNSFJZZWxWVWoKVmV1TWkzbk5KVUpsYm01dklFeHZjbVZ1ZWlBOFltVnVibTlBWW1WdWJtOHRiRzl5Wlc1NkxtTnZiVDdDbGdRVApGZ29BUGhZaEJIUUl5Q3M4WTlaaDVQaHZHZnVEVXdSdFB5Q1NCUUpwTWd6cEFoc0RCUWtGcEVqSEJRc0pDQWNDCkJoVUtDUWdMQWdRV0FnTUJBaDRCQWhlQUFBb0pFUHVEVXdSdFB5Q1MrNk1CQUl0eEZUMHhJSmpIMEM2UTJWYmIKUmY2b0FxUndsUlFvUUYxV0hqN0ZMQm1BQVFDZjZHTDRIaTUrNmk2blFBbStJOWUxMVBpckFZaGZHSlRzMHN3eApPWU9DQTg0ekJHa3lFM3dXQ1NzR0FRUUIya2NQQVFFSFFPYVVkUG56QWZ0VlljaFNIOGJEQS9YYkhzQWNTMXNXCkdWRzBjeDZlaUpoZnduNEVHQllLQUNZV0lRUjBDTWdyUEdQV1llVDRieG43ZzFNRWJUOGdrZ1VDYVRJVGZBSWIKSUFVSkJhT1pkQUFLQ1JEN2cxTUViVDhna3ZiZEFRQ3FjaFZtWmhuaXNicG5vZzJBYm1QLy9qRW1NQjdWQjQ0dgpYVG5PMWVuZXVBRC9jYkM1ei9vRndJVjU0RHNhYk0vUnFRRjhSL2huL2Z5bnVyYWg5ZlNIb0F2T09BUnBNZ3pwCkVnb3JCZ0VFQVpkVkFRVUJBUWRBcjh6WmJwUnVYTSswbzRjRnByR0N4dU4wbzZmLzhXcy9LdC9NNDNma3JBOEQKQVFnSHduNEVHQllLQUNZV0lRUjBDTWdyUEdQV1llVDRieG43ZzFNRWJUOGdrZ1VDYVRJTTZRSWJEQVVKQmFSSQp4d0FLQ1JEN2cxTUViVDhna294Y0FQb0N4YUg4RExKR2lCT1ptV0U0aytHWlJYVW9idDUreFdqUU83UzcxZngrCk93RUF4MlBlMldheWtGNzFRUEpteU12NmMwT3BXcTEveGpabUVENzFRMy9jTXdRPQo9cW1aSQotLS0tLUVORCBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0t +NOTE: +UID:EnBizCard-100782023 +END:VCARD \ No newline at end of file diff --git a/static/vcard/bennolorenz.vcf:Zone.Identifier b/static/vcard/bennolorenz.vcf:Zone.Identifier new file mode 100644 index 0000000..01b9a75 Binary files /dev/null and b/static/vcard/bennolorenz.vcf:Zone.Identifier differ diff --git a/static/vcard/index.html b/static/vcard/index.html new file mode 100644 index 0000000..a1bf85d --- /dev/null +++ b/static/vcard/index.html @@ -0,0 +1,24 @@ + Benno Lorenz's Digital Business Card
Photo

+ Benno Lorenz +

+ Software Engineer +

+ RSP GmbH & Co. KG +

+ Zum Silberstollen 10 +07318 Saalfeld/Saale +

Save Contact

+ Email +

+ Website +

\ No newline at end of file diff --git a/static/vcard/index.html:Zone.Identifier b/static/vcard/index.html:Zone.Identifier new file mode 100644 index 0000000..01b9a75 Binary files /dev/null and b/static/vcard/index.html:Zone.Identifier differ diff --git a/static/vcard/photo.jpeg b/static/vcard/photo.jpeg new file mode 100644 index 0000000..86f9052 Binary files /dev/null and b/static/vcard/photo.jpeg differ diff --git a/static/vcard/photo.jpeg:Zone.Identifier b/static/vcard/photo.jpeg:Zone.Identifier new file mode 100644 index 0000000..01b9a75 Binary files /dev/null and b/static/vcard/photo.jpeg:Zone.Identifier differ diff --git a/static/vcard/qrcode.min.js b/static/vcard/qrcode.min.js new file mode 100644 index 0000000..61c4e50 --- /dev/null +++ b/static/vcard/qrcode.min.js @@ -0,0 +1 @@ +function QR8bitByte(t){this.mode=QRMode.MODE_8BIT_BYTE,this.data=t,this.parsedData=[];for(var e=0,r=this.data.length;e65536?(o[0]=240|(1835008&n)>>>18,o[1]=128|(258048&n)>>>12,o[2]=128|(4032&n)>>>6,o[3]=128|63&n):n>2048?(o[0]=224|(61440&n)>>>12,o[1]=128|(4032&n)>>>6,o[2]=128|63&n):n>128?(o[0]=192|(1984&n)>>>6,o[1]=128|63&n):o[0]=n,this.parsedData.push(o)}this.parsedData=Array.prototype.concat.apply([],this.parsedData),this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}function QRCodeModel(t,e){this.typeNumber=t,this.errorCorrectLevel=e,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}QR8bitByte.prototype={getLength:function(t){return this.parsedData.length},write:function(t){for(var e=0,r=this.parsedData.length;e=7&&this.setupTypeNumber(t),null==this.dataCache&&(this.dataCache=QRCodeModel.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,e)},setupPositionProbePattern:function(t,e){for(var r=-1;r<=7;r++)if(!(t+r<=-1||this.moduleCount<=t+r))for(var o=-1;o<=7;o++)e+o<=-1||this.moduleCount<=e+o||(this.modules[t+r][e+o]=0<=r&&r<=6&&(0==o||6==o)||0<=o&&o<=6&&(0==r||6==r)||2<=r&&r<=4&&2<=o&&o<=4)},getBestMaskPattern:function(){for(var t=0,e=0,r=0;r<8;r++){this.makeImpl(!0,r);var o=QRUtil.getLostPoint(this);(0==r||t>o)&&(t=o,e=r)}return e},createMovieClip:function(t,e,r){var o=t.createEmptyMovieClip(e,r);this.make();for(var n=0;n>r&1);this.modules[Math.floor(r/3)][r%3+this.moduleCount-8-3]=o}for(r=0;r<18;r++)o=!t&&1==(e>>r&1),this.modules[r%3+this.moduleCount-8-3][Math.floor(r/3)]=o},setupTypeInfo:function(t,e){for(var r=this.errorCorrectLevel<<3|e,o=QRUtil.getBCHTypeInfo(r),n=0;n<15;n++){var i=!t&&1==(o>>n&1);n<6?this.modules[n][8]=i:n<8?this.modules[n+1][8]=i:this.modules[this.moduleCount-15+n][8]=i}for(n=0;n<15;n++)i=!t&&1==(o>>n&1),n<8?this.modules[8][this.moduleCount-n-1]=i:n<9?this.modules[8][15-n-1+1]=i:this.modules[8][15-n-1]=i;this.modules[this.moduleCount-8][8]=!t},mapData:function(t,e){for(var r=-1,o=this.moduleCount-1,n=7,i=0,a=this.moduleCount-1;a>0;a-=2)for(6==a&&a--;;){for(var s=0;s<2;s++)if(null==this.modules[o][a-s]){var h=!1;i>>n&1)),QRUtil.getMask(e,o,a-s)&&(h=!h),this.modules[o][a-s]=h,-1==--n&&(i++,n=7)}if((o+=r)<0||this.moduleCount<=o){o-=r,r=-r;break}}}},QRCodeModel.PAD0=236,QRCodeModel.PAD1=17,QRCodeModel.createData=function(t,e,r){for(var o=QRRSBlock.getRSBlocks(t,e),n=new QRBitBuffer,i=0;i8*s)throw new Error("code length overflow. ("+n.getLengthInBits()+">"+8*s+")");for(n.getLengthInBits()+4<=8*s&&n.put(0,4);n.getLengthInBits()%8!=0;)n.putBit(!1);for(;!(n.getLengthInBits()>=8*s||(n.put(QRCodeModel.PAD0,8),n.getLengthInBits()>=8*s));)n.put(QRCodeModel.PAD1,8);return QRCodeModel.createBytes(n,o)},QRCodeModel.createBytes=function(t,e){for(var r=0,o=0,n=0,i=new Array(e.length),a=new Array(e.length),s=0;s=0?d.get(f):0}}var c=0;for(u=0;u=0;)e^=QRUtil.G15<=0;)e^=QRUtil.G18<>>=1;return e},getPatternPosition:function(t){return QRUtil.PATTERN_POSITION_TABLE[t-1]},getMask:function(t,e,r){switch(t){case QRMaskPattern.PATTERN000:return(e+r)%2==0;case QRMaskPattern.PATTERN001:return e%2==0;case QRMaskPattern.PATTERN010:return r%3==0;case QRMaskPattern.PATTERN011:return(e+r)%3==0;case QRMaskPattern.PATTERN100:return(Math.floor(e/2)+Math.floor(r/3))%2==0;case QRMaskPattern.PATTERN101:return e*r%2+e*r%3==0;case QRMaskPattern.PATTERN110:return(e*r%2+e*r%3)%2==0;case QRMaskPattern.PATTERN111:return(e*r%3+(e+r)%2)%2==0;default:throw new Error("bad maskPattern:"+t)}},getErrorCorrectPolynomial:function(t){for(var e=new QRPolynomial([1],0),r=0;r5&&(r+=3+i-5)}for(o=0;o=256;)t-=255;return QRMath.EXP_TABLE[t]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},i=0;i<8;i++)QRMath.EXP_TABLE[i]=1<>>7-t%8&1)},put:function(t,e){for(var r=0;r>>e-r-1&1))},getLengthInBits:function(){return this.length},putBit:function(t){var e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}};var QRCodeLimitLength=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]];function QRCode(t){if(this.options={padding:4,width:256,height:256,typeNumber:4,color:"#000000",background:"#ffffff",ecl:"M"},"string"==typeof t&&(t={content:t}),t)for(var e in t)this.options[e]=t[e];if("string"!=typeof this.options.content)throw new Error("Expected 'content' as string!");if(0===this.options.content.length)throw new Error("Expected 'content' to be non-empty!");if(!(this.options.padding>=0))throw new Error("Expected 'padding' value to be non-negative!");if(!(this.options.width>0&&this.options.height>0))throw new Error("Expected 'width' or 'height' value to be higher than zero!");var r=this.options.content,o=function(t,e){for(var r=function(t){var e=encodeURI(t).toString().replace(/\%[0-9a-fA-F]{2}/g,"a");return e.length+(e.length!=t?3:0)}(t),o=1,n=0,i=0,a=QRCodeLimitLength.length;i<=a;i++){var s=QRCodeLimitLength[i];if(!s)throw new Error("Content too long: expected "+n+" but got "+r);switch(e){case"L":n=s[0];break;case"M":n=s[1];break;case"Q":n=s[2];break;case"H":n=s[3];break;default:throw new Error("Unknwon error correction level: "+e)}if(r<=n)break;o++}if(o>QRCodeLimitLength.length)throw new Error("Content too long");return o}(r,this.options.ecl),n=function(t){switch(t){case"L":return QRErrorCorrectLevel.L;case"M":return QRErrorCorrectLevel.M;case"Q":return QRErrorCorrectLevel.Q;case"H":return QRErrorCorrectLevel.H;default:throw new Error("Unknwon error correction level: "+t)}}(this.options.ecl);this.qrcode=new QRCodeModel(o,n),this.qrcode.addData(r),this.qrcode.make()}QRCode.prototype.svg=function(t){var e=this.options||{},r=this.qrcode.modules;void 0===t&&(t={container:e.container||"svg"});for(var o=void 0===e.pretty||!!e.pretty,n=o?" ":"",i=o?"\r\n":"",a=e.width,s=e.height,h=r.length,l=a/(h+2*e.padding),u=s/(h+2*e.padding),g=void 0!==e.join&&!!e.join,d=void 0!==e.swap&&!!e.swap,f=void 0===e.xmlDeclaration||!!e.xmlDeclaration,c=void 0!==e.predefined&&!!e.predefined,R=c?n+''+i:"",p=n+''+i,m="",Q="",v=0;v'+i:n+''+i}g&&(m=n+'');var T="";switch(t.container){case"svg":f&&(T+=''+i),T+=''+i,T+=R+p+m,T+="";break;case"svg-viewbox":f&&(T+=''+i),T+=''+i,T+=R+p+m,T+="";break;case"g":T+=''+i,T+=R+p+m,T+="";break;default:T+=(R+p+m).replace(/^\s+/,"")}return T},QRCode.prototype.save=function(t,e){var r=this.svg();"function"!=typeof e&&(e=function(t,e){});try{require("fs").writeFile(t,r,e)}catch(t){e(t)}},"undefined"!=typeof module&&(module.exports=QRCode); \ No newline at end of file diff --git a/static/vcard/qrcode.min.js:Zone.Identifier b/static/vcard/qrcode.min.js:Zone.Identifier new file mode 100644 index 0000000..01b9a75 Binary files /dev/null and b/static/vcard/qrcode.min.js:Zone.Identifier differ diff --git a/static/vcard/style.min.css b/static/vcard/style.min.css new file mode 100644 index 0000000..205ce96 --- /dev/null +++ b/static/vcard/style.min.css @@ -0,0 +1 @@ +body{margin:0 auto;width:100%;padding:0;max-width:30rem;color:#eee;position:relative}p{line-height:1.5;margin:0}h2,h3{margin:0}.icon{width:1.5rem;height:1.5rem}a{text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#modal{display:flex;flex-direction:column;position:absolute;z-index:1;width:100%;bottom:0;transition:top .2s ease-out,opacity .1s ease-out;transform:translateZ(0)}#close{align-self:end;padding:1rem;cursor:pointer;line-height:0}#keyView,#copyView,#qrView{display:flex;flex-direction:column;align-items:center;margin:0 1rem;text-align:center}#keyView p,#copyView p,#qrView p{margin:2rem;text-align:center}#copyURL,#dlKey{display:flex;width:100%;align-items:center;justify-content:center;border-radius:5rem;padding:1rem 1.5rem;border:none;outline:none;cursor:pointer;box-sizing:border-box}#copyURL span,#dlKey span{margin-left:.5rem}#qrView h3{margin:2rem 2rem 0}#qrView p{margin:.5rem 2rem 0}#qr{margin:2rem;padding:2rem;background:#fff;border-radius:.5rem}header{display:flex;justify-content:flex-start;flex-direction:column}.headerImgC{display:grid;grid-template-columns:auto;grid-template-rows:auto;overflow:hidden}#cover{grid-column:1;grid-row:1;width:100%;height:20rem;-o-object-position:top center;object-position:top center;-o-object-fit:cover;object-fit:cover}#logo{max-height:6rem;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;grid-column:1;grid-row:1;align-self:center;justify-self:center}#topActions{flex-direction:row-reverse;justify-content:space-between;align-items:flex-start}#topActions>div{display:flex}#topActions a{padding:1rem;cursor:pointer;line-height:0}main{padding:1rem;display:flex;flex-direction:column;align-items:center;text-align:center}#profilePhoto{width:10rem;height:10rem;border-radius:100%;box-sizing:content-box;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-top:-6rem}#info{display:flex;flex-direction:column;justify-content:center;align-items:center;margin-top:1rem;line-height:1.25;word-break:break-word}.name{font-weight:bold;font-size:1.5rem;margin:0}.pronouns{display:block;font-size:.9rem;opacity:.8;font-weight:normal;margin:0 0 .5rem}.bizname{font-size:.9rem;margin:.5rem 0 0;opacity:.8}.bizaddr{font-size:.8rem;opacity:.6}.sub,.textC{font-size:1rem;white-space:pre-line;line-height:1.5}.sub{font-size:.9rem;margin:.5rem 0 0;opacity:.8}.textC{margin:1rem}#cta{display:flex;align-items:center;border-radius:5rem;margin-top:2rem;padding:1rem 1.5rem;cursor:pointer;line-height:0;width:100%;justify-content:center;box-sizing:border-box}#cta .icon{margin-right:.5rem}#cta p{margin:0}.actions{width:100%;margin-top:2rem;display:flex;flex-wrap:wrap;justify-content:center}.actionsC{width:33.33%}.actionBtn{padding:.5rem;display:flex;flex-direction:column;align-items:center;justify-content:center}.actionBtn a{border-radius:100%;padding:1rem;line-height:0}.actionBtn p{margin:.5rem 0 0;font-size:.9rem}.secBtn{padding:1rem}.featured{display:flex;flex-direction:column;justify-content:center;margin:2rem 0 0;width:100%}.section{font-weight:bold;text-align:center;font-size:1.3rem;padding:1rem 0}.media{overflow:hidden;border-radius:1rem;margin-top:1rem}.media img{display:block;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.embedded{position:relative;padding-top:100%}.embedded iframe{position:absolute;top:0;left:0;width:100%;height:100%}.music,.video{width:100%}.mediaC{display:flex;flex-direction:column;justify-content:space-evenly;align-items:center}video{width:100%}.controls{padding:1rem;font-size:.9rem;text-align:center;width:100%;box-sizing:border-box}.pCtrl,.docDl{display:none;flex-direction:column;align-items:center;width:100%}.docDl{display:flex}.seekBar{width:100%;height:.5rem;margin:1.5rem 0 .5rem;border-radius:5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.playPause,.dlBtn{margin:1rem 0 .5rem;padding:1rem;border-radius:5rem;line-height:0;cursor:pointer}.pause{display:none}.title{font-size:1rem;font-weight:bold;margin:0}.prodInfo .sub{margin:-1rem 0 0}.price{margin:1rem 0 0;font-size:1rem;font-weight:bold}.label{display:inline-block;font-size:1rem;margin:1rem 0 .5rem;border-radius:5rem;letter-spacing:1px;padding:1rem 1.5rem}.label p{margin:0}footer{padding:4rem 1rem 2rem;font-size:.9rem;text-align:center}footer a{text-decoration:underline;color:inherit} \ No newline at end of file diff --git a/static/vcard/style.min.css:Zone.Identifier b/static/vcard/style.min.css:Zone.Identifier new file mode 100644 index 0000000..01b9a75 Binary files /dev/null and b/static/vcard/style.min.css:Zone.Identifier differ