
    3yiJ                    >   U d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dl m!Z! d dl"m#Z#m$Z$ d dl%m&Z&m'Z' d dl(m)Z) d dl*m+Z+ d dl,m-Z- d dl.m/Z/ d dlm0Z0 ddl1m2Z2 ddl3m4Z4m5Z5m6Z6m7Z7m8Z8 ddl9m:Z: 	 d dl;m<Z<m=Z=m>Z>m?Z? d dl@m<ZA  eB       ZCdZGdeHd<   	 d dlImJZJ  G d  d!e#e2         ZNd-d"ZOd.d#ZPd.d$ZQ ej                  d%      d/d&       ZSd' ZTd0d(ZUd0d)ZVd1d*ZWd2d+ZX ej                  d,      ZZy# eD$ rZE eFeE      hZCY dZE[E{dZE[Eww xY w# eD$ r!ZEeCj                   eFeE             Y dZE[EdZE[EweL$ rZE eMeE      ZGY dZE[EdZE[Eww xY w)3    )annotationsN)Future)ThreadPoolExecutor)copy)fnmatch)sha1)unescape)BytesIO)Environment)find_undeclared_variables)Config)MkDocsConfig)PluginError)
BasePluginevent_priority)FileInclusionLevel)Page)
write_file)stdev)Lock)
SafeLoader   )SocialConfig)LayerLayoutLine
get_offsetget_size)x_filter)Image
ImageColor	ImageDraw	ImageFont)r!    strcairosvg_error)svg2pngc                      e Zd ZU dZi Zded<    fdZd Zd Zd Z	 e
d      d	        Z e
d
      d        Zd Zd Z e
d      d        ZddZddZddZddZd dZddZd!dZd"dZd"dZd#d$dZd%dZd&dZd'dZ xZS )(SocialPluginTzdict[str, str]manifestc                2    t        |   |i | d| _        y )NF)super__init__is_serve)selfargskwargs	__class__s      `/var/www/html/content_weaver/venv/lib/python3.12/site-packages/material/plugins/social/plugin.pyr.   zSocialPlugin.__init__W   s    $)&)     c                   |dk(  | _         t        | j                  j                        | _        i | _        t        | j                  j                        | _        i | _        y )Nserve)r/   r   configconcurrency	card_poolcard_pool_jobscard_layer_poolcard_layer_pool_jobs)r0   commanddirtys      r4   
on_startupzSocialPlugin.on_startupg   sO    7* ,DKK,C,CD13  2$++2I2IJ79!r5   c                H   | j                   j                  sy t        j                  j	                  | j                   j
                        }|| j                   j
                  k7  rt        j                  j                  t        j                  j                  |j                        t        j                  j                  | j                   j
                              | j                   _        t        j                  | j                   j
                  d       t        j                  j                  | j                   j
                  d      | _        t        j                  j                  | j                        rO| j                   j                  r9	 t        | j                        5 }t        j                   |      | _        d d d        t%               | _        i | _        i | _        t-               | _        t0        | j.                  j2                  d<   | j                   j4                  rHt6        j9                  d       | j:                  s'| j                   j<                  sd| j                   _        |j>                  st6        j9                  d       y y # 1 sw Y   xY w#  Y xY w)NTexist_okzmanifest.jsonxz*Debug mode is enabled for "social" plugin.FztThe "site_url" option is not set. The cards are generated, but not linked, so they won't be visible on social media.) r8   enabledospathabspath	cache_dirjoindirnameconfig_file_pathnormpathmakedirsmanifest_fileisfilecacheopenjsonloadr+   r   lockcard_layoutscard_variablesr   card_envr    filtersdebuglogwarningr/   debug_on_buildsite_url)r0   r8   rG   fs       r4   	on_configzSocialPlugin.on_configs   s   {{"" wwt{{4454;;((($&GGLL 7 78  !6!67%DKK! KK--$?  WW\\KK!!?

 77>>$,,-$++2C2C$,,- 1$(IIaLDM1 F	 02:< $%-c" ;;KKFG ==)C)C$)! KKL 51 1s$   J $J?J JJ J!c                   | j                   j                  sy |D ]H  }|j                  s|j                  j                  t	                     s4t
        j                  |_        J y N)r8   rE   abs_src_path
startswith_templates_dirpathr   EXCLUDED	inclusion)r0   filesr8   files       r4   on_fileszSocialPlugin.on_files   sX    {{""  		9D $$   ++,>,@A!/!8!8		9r5   ic               0   | j                   j                  sy | j                  |      ry | j                  d|      }| j	                  ||       | j
                  j                  | j                  |||      | j                  |j                  j                  <   y )Ncards_layout)r8   rE   _is_excluded_config_resolve_layoutr:   submit	_generater;   ri   src_uri)r0   markdownpager8   rh   names         r4   on_page_markdownzSocialPlugin.on_page_markdown   s    {{"" T" ||ND1T6* 261F1FNND$2
DII--.r5   2   c                  | j                   j                  sy | j                  |      ry | j                  |j                  j
                     }|j                         rc|j                         }| j                   j                  r;t        |t              r+t        j                  | j                   j                  |       y ||j                         }|j                          | j                  d|      }| j                  ||      \  }}	|j                  r|j                   sy t#        |      \  }
}t%        j&                  |j                   |j(                        d|
|d}|j+                  d      }dj'                  |d | dj'                  t-        |j                  | j.                  |||| j                  d|            j1                         D cg c]  \  }}|r	d| d	| d
 c}}      ||d  g      S c c}}w )Nrl   z	image/png)urltypewidthheightz</head>
cards_layout_options)rt   imagelayoutz<meta property="z" content="z" />)r8   rE   rm   r;   ri   rr   	exceptionr[   
isinstancer   	log_levelresult	copy_filern   ro   tagsr^   r   	posixpathrJ   ry   find_replacerX   items)r0   outputrt   r8   futureeri   ru   r   _r{   r|   r   atpropertycontents                   r4   on_post_pagezSocialPlugin.on_post_page   s   {{"" T" $$TYY%6%67  "A{{:a#=--q1 GDNN ||ND1((v6	 {{&// !(v>>&//488<	
 [[#yy3BKII-5T]]F#U!%.Dd!K. eg)' ") $H:]7)5I  23K
  	s   G4c                  | j                   j                  sy | j                   j                  rQt        | j                  d      5 }|j                  t        j                  | j                  dd             d d d        y y # 1 sw Y   y xY w)Nw   Tindent	sort_keys)	r8   rE   rQ   rR   rO   writerS   dumpsr+   )r0   r8   r_   s      r4   on_post_buildzSocialPlugin.on_post_build  st    {{"" ;;d((#. Q!

4==1$OPQ Q Q Qs   2B  B	c                   t         j                  j                  | j                  j                        }t         j                  j                  |      r|j                  |d       y y )NT)	recursive)rF   rG   rH   r8   cards_layout_dirisdirwatch)r0   serverr8   builderrG   s        r4   on_servezSocialPlugin.on_serve  sC    wwt{{;;<77==LL4L0 r5   c                   | j                   j                  sy | j                  | j                  fD ]8  }t        j
                  dk\  r|j                  d       )|j                          : | j                  rh| j                   j                  rQt        | j                  d      5 }|j                  t        j                  | j                  dd             d d d        y y y # 1 sw Y   y xY w)N)   	   T)cancel_futuresr   r   r   )r8   rE   r<   r:   sysversion_infoshutdownr+   rQ   rR   rO   r   rS   r   )r0   poolr_   s      r4   on_shutdownzSocialPlugin.on_shutdown$  s    {{"" ))4>>: 	 D6)t4		  ==T[[..d((#. Q!

4==1$OPQ Q /=Q Qs   #2C  C)c                   |j                   j                  }| j                  d|      sy| j                  j                  rW| j                  j                  D ]$  }t        |j                   j                  |      s$ y t        j                  d| d       y| j                  j                  D ]=  }t        |j                   j                  |      s$t        j                  d| d        y y)NcardsTFzExcluding page 'z' due to inclusion patternsz' due to exclusion patterns)
ri   src_pathrn   r8   cards_includer   rr   r[   rZ   cards_exclude)r0   rt   rG   patterns       r4   rm   zSocialPlugin._is_excluded<  s    yy!! ||GT* ;;$$;;44 !499,,g6 !
 II(.IJK {{00 	Gtyy(('2		,TF2MNO	 r5   c                   | j                  ||      \  }}i }t        |j                  |      D ]q  \  }}| j                  |g}	|D ]K  }
t	        |
| j
                        }
|	j                  |
j                  ||| j                  d|                   M ||t        |	      <   s t        |gt        |            }d}|j                  r|j                  sd}|j                  j                  j                  |d      }| j!                  ||      }| j"                  j%                  |j&                  d      }||k(  r+t(        j*                  j-                  |j.                        r|S t0        r;t3        dt5        dj7                  t9        d	 t0                          z   d
z   dz         t:        rt3        dt:        z   d
z   dz         |j=                         D ]d  \  }}t?               }|| j@                  jC                  ||      k(  s0| jD                  jG                  | jH                  |||      | j@                  |<   f tK        jL                  dtO        |            }|j=                         D ]<  \  }}|jQ                  | j@                  |   jS                         tU        ||             > | j                  jV                  r| jY                  ||      }t)        jZ                  t(        j*                  j]                  |j.                        d       |j_                  |j.                         || j"                  |j&                  <   |S )Nr~   )r8   rt   r   z.htmlz/index.html.pngr%   z4Required dependencies of "social" plugin not found:
r}   c                    d| z   S )Nz-  )rD   s    r4   <lambda>z(SocialPlugin._generate.<locals>.<lambda>  s
    dQh r5   z

z8--> Install with: pip install "mkdocs-material[imaging]"z<"cairosvg" Python module is installed, but it crashed with:
z;--> Check out the troubleshooting guide: https://t.ly/MfX6uRGBAmodesizeTrB   )0ro   ziplayersr8   _compilerX   appendrenderrn   _digestlistuse_directory_urlsis_indexri   dest_urireplace_path_to_filer+   getry   rF   rG   rP   rc   import_errorsr   r&   rJ   mapr'   r   r   r=   
setdefaultr<   rp   _renderr!   newr   alpha_compositer   r   rZ   _render_overlayrN   rK   save)r0   ru   rt   r8   r   	variablesr   layer	templatesfingerprintstemplatehashsuffixrG   ri   prevhsentinelr   s                      r4   rq   zSocialPlugin._generate\  s	    00v>	 $& #FMM9 = 	2E9 KK/L & #Hdmm<##HOO#D!\\*@$G %4 %  -2F7<()	2  .f./ $$T]]"F yy!!))&&9!!$/ }}  2.4<BGGNN4+<+<=K  Idii$6 FGHI OO  Q ! PP   
	HAuxH 444??8LL/3/C/C/J/JLL%v0))!,
	  		0@A 	HAu!!))!,3355%(	 ;;((7E 	BGGOOD$5$564H

4$$% #'dhh r5   c           
        t        j                  dt        |            }t        || j                  ||| j                  d|            }| j                  ||      }| j                  |||      }| j                  ||      }|S )Nr   r   r~   )rt   r   )	r!   r   r   r   rX   rn   _render_background_render_icon_render_typography)r0   r   rt   r8   r   s        r4   r   zSocialPlugin._render  s}    		@4==&$,,/Et"L
 ''u5!!%7''u5 r5   c                   |j                   }|j                  rt        j                  j	                  |j                        st        d|j                   d      t        |j                  d      5 }|j                         }|j                  j                  d      rt        ||j                        }d d d        t        j                  t                    j                  d      }|j                  t        ||             |j                   rF|j                   }|dk(  r|S t        j"                  d|j$                  |      }|j                  |       |S # 1 sw Y   xY w)	NzCouldn't find image ''rb.svgoutput_widthr   transparent)r   r   color)
backgroundr   rF   rG   rP   r   rR   readendswithr(   r{   r!   r
   convertr   _resize_coverr   r   r   )r0   r   inputr   r_   datar   r   s           r4   r   zSocialPlugin._render_background  s*   %%
 77>>*"2"23!$9*:J:J9K1"MNN j&&- Evvx##,,V4"4DDE JJwt}-55f=E!!-u"=> $$E% IIVEJJNE!!%( +E Es   1AEE!c           	     
   |j                   }|j                  s|S | j                  |j                  |      }|j                  rTt	        j
                  |j                        ^}}}}	|	r|	d   dz  nd}
d| d| d| d|
 d	}|j                  dd| d	      }t        j                  t        t        |j                  d
      |j                                    }|j                  t        |j                  d      |             |S )Nr      r   zrgba(, )z<svgz<svg fill=""utf-8r   r   )iconvalue_resolve_iconr   r"   getrgbr   r!   rR   r
   r(   encoder{   r   _resize_containr   )r0   r   r   r8   r   r   rgbaopacityfillr   s                r4   r   zSocialPlugin._render_icon  s    zzzzL !!$**f5::&--djj9MQ1q$%adSj1G 1#Rs"QCr'!4D<<,tfB(?@D 

7DKK(E
  	oemmF.CUKL r5   c                F   |j                   }|j                  s|S |j                  j                  }|j                  j                  }|j                  j
                  }| j                  |||      }t        ||j                  |      \  }}	t        j                  ||      }
t        j                  d|j                        }t        j                  |      }|j!                  d|
      }|j!                  d|
      }g }dgd}}t#        j$                  dt'        |j                              }|D ]i  }|j!                  ||
      }|j)                  |       |r|nd}||z   |z   |j*                  kD  r |j)                  t-        |      dz
         |}b|||z   z  }k t-        |      |d	   k7  r|j)                  t-        |             |j                  j.                  }|t-        |      dz
  k  r|j0                  }|d
k(  r1|j                  xj.                  dz  c_        | j3                  ||      S |d |dz    }|dd  \  }}t5        |||       ||z
  |z  z   }||z   |j*                  k  r|dz  }||d	<   d||dz
  <   nt-        |      dk(  r|dd  \  }}}||| ||| fD cg c]  }t-        dj7                  |             }}|||dz
   ||dz
  | fD cg c]  }t-        dj7                  |             }}t9        |      t9        |      k  r|dxx   dz  cc<   t;        |j<                        }|d   dk(  rd\  }}n+|d   dk(  rd|j*                  dz	  }}nd|j*                  dz	  }}|d   dk(  rd} n'|d   dk(  r|j>                  dz	  } n|j>                  dz	  } dj7                  tA        ||dd        D cg c]  \  }}dj7                  |||        c}}      }!|jC                  || f|!|
||	|jD                  |       |jG                  |       |S c c}w c c}w c c}}w )Nr   r    fontz...r   \s+r   shrinkr   l)leftr   mcenterrightr   r}   )r  anchorspacingr   align)$
typographyr   r  familyvariantstyle_resolve_font_metricsliner$   truetyper!   r   r   r#   Draw
textlengthresplitr	   r   r{   lenamountoverflowr   sumrJ   r   _anchorr  r|   r   textr   r   )"r0   r   r   r  r  r  r  rG   currentr  r  r   contextspaceellipsislengthsindexeswordswordlength
whitespacer  r  pqr   r	  r   r   r  r  rD   yr"  s"                                     r4   r   zSocialPlugin._render_typography  sO   %%
!!L ''//))%% !!&%9#D*//5A!!$0 		

;..' ""3t"4%%eD%9  3 **<*<!=> 	/D''T':FNN6" #*qJ#f,u{{:s7|a/0  :..	/ w<72;&NN3w<( ''CL1$$ "**H8#&&!+& ..ue<< kvz*G23<DAq '!A,'1q5E/9G!EKK/Q GBK E!a%L \QbclGAq! -2!AJE!AJ+GHaSXXa[!HAH,1!AENE!a%N+KLaSXXa[!LAL Qx%("q  ))* AY#+xuaAY#(EKKA4Eau*1EKKA4Eau AY#AaAY#ELLA4Ea49LLA4Ea yy5
Aq HHU1QZ 
  	FD## 	 	
 	e$U IL0
s   !P!P6P
c                L   | j                  dd      }t        j                  |d      }t        j                  d|j
                        }t        j                  |      }| j                  j                  }| j                  j                  rs| j                  j                  }t        d|j                  |      D ]C  }	t        d|j                  |      D ]'  }
|j                  |	dz
  |
dz
  f|	dz   |
dz   ff|       ) E t!        j"                  |      ^}}}}|d	z  |d
z  z   |dz  z   dkD  rdnd}t%        |j&                        D ]  \  }	}t)        ||      \  }}t+        |      \  }}|j-                  |||t/        ||z   |j                  dz
        t/        ||z   |j                  dz
        f       |	 d| d| }|j1                  ||f||      \  }}}}|j-                  ||||dz   |dz   f       |j3                  |dz   |dz   f|||        |j5                  |       |S )NRobotoRegular   r   r   r   r   )r   gA`"?gbX9?gv/?   blackwhite)outlinexyu    – r   r        )r   r8  r   )r  r   )r  r$   r  r!   r   r   r#   r  r8   debug_color
debug_griddebug_grid_stepranger{   r|   ellipser"   r   	enumerater   r   r   	rectanglemintextbboxr"  r   )r0   r   r   rG   r  r   r$  r   stepijr   r   r   r   r   r   rD   r/  r   r   r"  x1y1s                           r4   r   zSocialPlugin._render_overlay  s@   !!(I6!!$+ 		

;..' {{&&;;!!;;..D1ekk40 q%,,5 AOOa%Q!a%Q8# $  #))$/Aq1u9q5y01u9<sB "&--0 	JHAueU+DAqE?DAq AqAE5;;!+,AE5<<!+,4  SaS1#&D$--q!fd4-HNQ2r TArAvrAv0FGLL!a%Qd5LI)	J. 	e$r5   c                   t         j                  j                  |      \  }}|| j                  v r| j                  |   | j                  |   fS t         j                  j                  | j                  j                        t               fD ]  }t         j                  j                  || d      }t         j                  j                  |      }t         j                  j                  |      sft        |d      5 }t        |      }	 |j                  t        j                   |t"              xs i        |j)                         \  }	}
|
D ]  \  }}t*        j-                  |        |	D ]8  \  }}t         j                  j                  ||      }t'        d| d| d|        || j                  |<   g | j                  |<   |j.                  D ]{  }t1        || j2                  |      }| j                  |   j5                  |       |j6                  j9                         D ]'  \  }}|dk(  s|j6                  |   |j6                  |<   ) } 	 d d d         n || j                  vrt'        d	| d
      | j                  |   | j                  |   fS # t$        $ r9}t         j                  j                  ||      }t'        d| d| d|       d }~ww xY w# 1 sw Y   xY w)Nz.ymlz	utf-8-sigencoding)rL   zError reading layout file 'z' in 'z':
r   zCouldn't find layout 'r   )rF   rG   splitextrV   rW   relpathr8   r   re   rJ   rM   rP   rR   r   	load_dictyamlrT   r   	Exceptionr   validater[   r\   r   _extractrX   r   r   r   )r0   ru   r8   r   baserG   r_   r   r   errorswarningsr   r   r   keyr   s                   r4   ro   zSocialPlugin._resolve_layout  s   ''""4(a4$$$$$T*D,?,?,EEE
 GGOODKK889 
 4	D 77<<dm4D77##D)D 77>>$' d{3 %?q!'4!@
$$TYYq*%=%CD $*??#4 $ #DAqKKN#" DAq77??46D%5dV6$t#  +1!!$',.##D) $]] ?E (v FI''-44Y? ',jj&6&6&8 ?
U A:.4kk#.>EJJsO??=%?P i4	n t((( 6tfA>??   &(;(;D(AAAQ ! 77??46D%5dV6$t# %? %?s7   ?K-J:C6K1 K	K!4KKKK&	c                   |j                   j                  D ]  }t        j                  j	                  |d| d      }t        j                  j                  |      }t        j                  j                  |      sft        |d      5 }|j                         cd d d        c S  t        d| d      # 1 sw Y   xY w)Nz.iconsr   r   rJ  zCouldn't find icon 'r   )
themedirsrF   rG   rJ   rM   rP   rR   r   r   )r0   ru   r8   rS  rG   r_   s         r4   r   zSocialPlugin._resolve_icon)  s    LL%% 
	 D77<<h4&>D77##D)D 77>>$' dw/  1vvx   
	  0a899	   s   
B66B?	c                   t         j                  j                  | j                  j                  d|      }t         j                  j                  |      sE| j                  5  t         j                  j                  |      s| j                  |       d d d        |r| d| }t        t        j                  |            }|D ]K  }t         j                  j                  |      \  }}||k(  s+t         j                  j                  ||      c S  d}	|D ]I  }t         j                  j                  |      \  }}|	s|}	d|v s.|	rt        |      t        |	      k  sH|}	K | j                  ||	      S # 1 sw Y   xY w)Nfontsr  r%   r2  )rF   rG   rJ   r8   rI   r   rU   _fetch_font_from_google_fontssortedlistdirrL  r  r  )
r0   r  r  r  rG   r   ri   ru   r   fallbacks
             r4   r  zSocialPlugin._resolve_font=  sJ   ww||DKK117FC ww}}T" ?ww}}T*66v>?
 iq(E bjj&' 	0Dgg&&t,GD!u}ww||D$//	0  	$Dgg&&t,GD!  D 3t9s8}#<#H	$ !!&(33E? ?s   !1E33E<c           	     Z   t         j                  j                  | j                  j                  d      }d| }t        j                  |      }|j                  dk7  r)t        d| d|j                   d|j                   d      t        j                  dt        |j                              D ]  }t        j                  |      5 }|j                          t        |j                        5 }t!        j"                  |      }d d d        j%                         \  }}	d	j                  |j'                  |d
      |	g      j)                         }t         j                  j                  ||| d      }
t+        |j                  |
       d d d         y # 1 sw Y   xY w# 1 sw Y   xY w)Nr[  z.https://fonts.google.com/download/list?family=   zCouldn't find font family 'z' on Google Fonts (z: r   z\"(https:(?:.*?)\.[ot]tf)\"r  r%   z.ttf)rF   rG   rJ   r8   rI   requestsr   status_coder   reasonr  findallr&   r   raise_for_statusr
   r$   r  getnamer   stripr   )r0   r  rG   ry   resmatchr_   r  ru   r  targets              r4   r\  z*SocialPlugin._fetch_font_from_google_fontsn  su   ww||DKK117; ?vhGll3 ??c!-fX 6OO$Bszzl!5  ZZ*C,<
 	0E e$ 0$$& S[[) 1Q$--a0D1 #llnexxfb!95 ABHHJ dFtfDMB3;;/!0 0	01 10 0s%   &F!.FBF!FF!!F*	c                T   |j                   j                  di       }t        | j                  |   t        t
        t        t        f      r|j                  || j                  |         S t        | j                  |   t              r#i | j                  |   |j                  |i       S y )Nsocial)	metar   r   r8   boolr&   intfloatdict)r0   ru   rt   rn  s       r4   rn   zSocialPlugin._config  s    yy}}Xr* dkk$'$S%)@A88D$++d"344 dkk$'$0@t{{4(@DHHT2,>@@ 1r5   c                    |j                  d      sJ t        t        j                  | j                  j
                  |      | j                  j                  |j                  d      S )Nr   F)r   r   r   rJ   r8   	cards_dirrI   site_dir)r0   rG   r8   s      r4   r   zSocialPlugin._path_to_file  sP    }}V$$$NN4;;00$7KK!!OO	
 	
r5   )rt   r   )ru   r&   rt   r   r8   r   )r   r   rt   r   r8   r   )r   r   r   _Image)r   r   r   rv  r8   r   )r   r   r   rv  )ru   r&   r8   r   )r%   )r  r&   r  r&   )r  r&   )ru   r&   rt   r   )rG   r&   r8   r   )__name__
__module____qualname__supports_multiple_instancesr+   __annotations__r.   r@   r`   rj   r   rv   r   r   r   r   rm   rq   r   r   r   r   r   ro   r   r  r\  rn   r   __classcell__)r3   s   @r4   r*   r*   P   s    "&  "Hn! 	:8v9& D
 
* B8 8vQ1 DQ Q.@ph D:FR1rBBP:(,4b%0V	A
r5   r*   c                l    t        t        j                  t        |                   j	                         S rb   )r   pickler   r&   	hexdigest)r   s    r4   r   r     s#    SY'(2244r5   c           	     p   t        | t        t        f      r2| j                         D cg c]  }t	        |||      D ]  }|  c}}S t        | t
              r$| D cg c]  }t	        |||      D ]  }|  c}}S t        | t              rt        |j                  |             r| gS g S c c}}w c c}}w rb   )	r   r   rr  valuesrR  r   r&   r   parse)r   envr8   r   variables        r4   rR  rR    s     $'"&++-
 (V <
 

 	
 
D$	"&
 (V <
 

 	
 
D#	$SYYt_56M I%

s   B,B2c                d   t        | t        t        f      r6t        |       } | j	                         D ]  \  }}t        |||fi || |<    | S t        | t              r| D cg c]  }t        |||fi | c}S t        | t              r" t        | |      j                  dd|i|xs d S | S c c}w )Nr8   r   )
r   r   rr  r   r   r   r   r&   r   r   )r   r  r8   r2   rV  r   s         r4   r   r     s     $'Dz**, 	?JC V>v>DI	?" K 
D$	 "
 UC262
 	
 
D#	)xc")) 

%
 	
 K
s   !B-)maxsizec                J    |j                  t        j                  |             S rb   )from_stringhtmlr	   )r   r  s     r4   r   r     s    ??4==.//r5   c                     t         j                  j                  t         j                  j                  t         j                  j	                  t
                    d      S )Nr   )rF   rG   rJ   rK   rH   __file__r   r5   r4   re   re     s1    77<<(ABKPPr5   c                   t        |j                  | j                  z  |j                  | j                  z        }| j                  t	        | j                  |z        t	        | j                  |z        f      } | j                  | j                  |j                  z
  dz	  | j                  |j                  z
  dz	  | j                  |j                  z   dz	  | j                  |j                  z   dz	  f      S )Nr   )maxr{   r|   resizerp  crop)r   refratios      r4   r   r     s    		U[[ 

U\\!E LLEKK5 !ELL5 ! E ::syy Q&szz!Q&syy Q&szz!Q&	  r5   c                   t        |j                  | j                  z  |j                  | j                  z        }| j                  t	        | j                  |z        t	        | j                  |z        f      } t        j                  d|j                        }|j                  | |j                  | j                  z
  dz	  |j                  | j                  z
  dz	  f       |S )Nr   r   r   )	rB  r{   r|   r  rp  r!   r   r   paste)r   r  r  blanks       r4   r   r     s    		U[[ 

U\\!E LLEKK5 !ELL5 ! E IIVCHH5E	KK		U[[ Q&

U\\!Q&  Lr5   c                6   t        j                  | d      }|j                         \  }}|j                  |z  d|z  z   }||j                  dz
  |j                  dz
  z  |z  z  }d|j                  z  |z  }|j                  dz
  |z  |z  dz  }t        |      |fS )Ni  r   )r$   r  
getmetricsr  r|   rp  )	rG   r  r  r  ascender	descenderextentr   r  s	            r4   r  r  3  s    dD)D//+Hi [[8#a)m3F t{{Q4;;?3h>>F3::'D {{Q(*T1D8Gt9gr5   c                    t        j                  d|       }d|v rd}nd|v rd}n	d|v rd}nd}d|v r|d	z  }|S d
|v r|dz  }|S d|v r|dz  }|S |d	z  }|S )Nr  startr	  endr   r  r  topr   bottomd)r  r  )r   axisr  s      r4   r!  r!  N  s    88FD!D 
T	S6	T	S6	T	S6%(6 
T	6S=6 M 
T	6S=6
 M	 
T	6S=6 M "S=6 Mr5   zmkdocs.material.social)r   object)r   anyr  r   r8   r   )r   r&   r  r   )r   rv  r  rv  )rG   r&   r  r   r  rv  )r   r&   )[
__future__r   	functoolsr  rS   loggingrF   r~  r   r  rb  r   rO  concurrent.futuresr   concurrent.futures.threadr   r   r   hashlibr   r	   ior
   jinja2r   jinja2.metar   mkdocs.config.baser   mkdocs.config.defaultsr   mkdocs.exceptionsr   mkdocs.pluginsr   r   mkdocs.structure.filesr   r   mkdocs.structure.pagesr   mkdocs.utilsr   
statisticsr   	threadingr   r   r8   r   r   r   r   r   r   r   r   r    PILr!   r"   r#   r$   	PIL.Imagerv  setr   ImportErrorr   reprr'   r{  cairosvgr(   addOSErrorr&   r*   r   rR  r   	lru_cacher   re   r   r   r  r!  	getLoggerr[   r   r5   r4   <module>r     sb  * #     	   	  
  % 8       1 % / ) 5 7 ' #      = = ;;) EM  \
:l+ \
P522 t$0 %0Q086. g01O!  !WIM  d1g VNs<   E &E! E	EE!F&FF
FF