#rstat s;libra
ry(sp);library(gg logo);windowsF
onts(Times=window sFont("Times New R
oman"));poly<-createPo lygons("\u2665",font="T
imes");text<-readChar(sy s.frame(1)$ofile,1e5);cha
rs<-unlist(strsplit(text,""));ch ars[chars=="\n"]<-";";chars<
-chars[chars!="\r"];Nx<-100;Ny<-31;d<-expand.grid(x=1:
Nx,y=Ny:1);## THE CODE IS THE ART 3 ##;d$inpoly<-a
s.logical(point.in.polygon(d$x/Nx,(d$y)/Ny,poly$x,poly$y
));rles<-by(d,-d$y,function(d)rle(d$inpoly)$lengths);vals
<-by(d,-d$y,function(d)rle(d$inpoly)$values);#quine;cu
msums<-function(chars)cumsum(strwidth(chars,unit
s="inches"));scale=sum(d$inpoly)/max(cumsums(
chars))*1.019;#rtistry;spwidth<-strwidth(" ", un
its="inches")scale.9;chars<-c(chars,rep("#
",100));getW<-function(chars,w)which(cu
msums(chars)>w/scale)[1];for(r in seq
_along(rles)){;for(i in seq_along(rle
s[[r]])){;if(vals[[r]][i]==FALSE) ca
t(paste0(rep(" ",rles[[r]][i]/sp
width),collapse=""));if(val
s[[r]][i]==TRUE){j=get
W(chars,rles[[r]][i]);
cat(paste0(char
s[1:j],collapse
=""));chars
<-chars[-
(1:j)]}}
;cat(
"\n"
)}