Hex Artifact Content
Not logged in

Artifact d69560c5c0d0f11c7070339aa05f41498663d4d2:


0000: 3b 3b 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20  ;;.;; Copyright 
0010: 32 30 31 36 20 41 6c 64 6f 20 4e 69 63 6f 6c 61  2016 Aldo Nicola
0020: 73 20 42 72 75 6e 6f 0a 3b 3b 0a 3b 3b 20 4c 69  s Bruno.;;.;; Li
0030: 63 65 6e 73 65 64 20 75 6e 64 65 72 20 74 68 65  censed under the
0040: 20 41 70 61 63 68 65 20 4c 69 63 65 6e 73 65 2c   Apache License,
0050: 20 56 65 72 73 69 6f 6e 20 32 2e 30 20 28 74 68   Version 2.0 (th
0060: 65 20 22 4c 69 63 65 6e 73 65 22 29 3b 0a 3b 3b  e "License");.;;
0070: 20 79 6f 75 20 6d 61 79 20 6e 6f 74 20 75 73 65   you may not use
0080: 20 74 68 69 73 20 66 69 6c 65 20 65 78 63 65 70   this file excep
0090: 74 20 69 6e 20 63 6f 6d 70 6c 69 61 6e 63 65 20  t in compliance 
00a0: 77 69 74 68 20 74 68 65 20 4c 69 63 65 6e 73 65  with the License
00b0: 2e 0a 3b 3b 20 59 6f 75 20 6d 61 79 20 6f 62 74  ..;; You may obt
00c0: 61 69 6e 20 61 20 63 6f 70 79 20 6f 66 20 74 68  ain a copy of th
00d0: 65 20 4c 69 63 65 6e 73 65 20 61 74 0a 3b 3b 0a  e License at.;;.
00e0: 3b 3b 20 20 20 20 20 68 74 74 70 3a 2f 2f 77 77  ;;     http://ww
00f0: 77 2e 61 70 61 63 68 65 2e 6f 72 67 2f 6c 69 63  w.apache.org/lic
0100: 65 6e 73 65 73 2f 4c 49 43 45 4e 53 45 2d 32 2e  enses/LICENSE-2.
0110: 30 0a 3b 3b 0a 3b 3b 20 55 6e 6c 65 73 73 20 72  0.;;.;; Unless r
0120: 65 71 75 69 72 65 64 20 62 79 20 61 70 70 6c 69  equired by appli
0130: 63 61 62 6c 65 20 6c 61 77 20 6f 72 20 61 67 72  cable law or agr
0140: 65 65 64 20 74 6f 20 69 6e 20 77 72 69 74 69 6e  eed to in writin
0150: 67 2c 20 73 6f 66 74 77 61 72 65 0a 3b 3b 20 64  g, software.;; d
0160: 69 73 74 72 69 62 75 74 65 64 20 75 6e 64 65 72  istributed under
0170: 20 74 68 65 20 4c 69 63 65 6e 73 65 20 69 73 20   the License is 
0180: 64 69 73 74 72 69 62 75 74 65 64 20 6f 6e 20 61  distributed on a
0190: 6e 20 22 41 53 20 49 53 22 20 42 41 53 49 53 2c  n "AS IS" BASIS,
01a0: 0a 3b 3b 20 57 49 54 48 4f 55 54 20 57 41 52 52  .;; WITHOUT WARR
01b0: 41 4e 54 49 45 53 20 4f 52 20 43 4f 4e 44 49 54  ANTIES OR CONDIT
01c0: 49 4f 4e 53 20 4f 46 20 41 4e 59 20 4b 49 4e 44  IONS OF ANY KIND
01d0: 2c 20 65 69 74 68 65 72 20 65 78 70 72 65 73 73  , either express
01e0: 20 6f 72 20 69 6d 70 6c 69 65 64 2e 0a 3b 3b 20   or implied..;; 
01f0: 53 65 65 20 74 68 65 20 4c 69 63 65 6e 73 65 20  See the License 
0200: 66 6f 72 20 74 68 65 20 73 70 65 63 69 66 69 63  for the specific
0210: 20 6c 61 6e 67 75 61 67 65 20 67 6f 76 65 72 6e   language govern
0220: 69 6e 67 20 70 65 72 6d 69 73 73 69 6f 6e 73 20  ing permissions 
0230: 61 6e 64 0a 3b 3b 20 6c 69 6d 69 74 61 74 69 6f  and.;; limitatio
0240: 6e 73 20 75 6e 64 65 72 20 74 68 65 20 4c 69 63  ns under the Lic
0250: 65 6e 73 65 2e 0a 0a 23 21 63 68 65 7a 73 63 68  ense...#!chezsch
0260: 65 6d 65 0a 0a 28 6c 69 62 72 61 72 79 0a 20 28  eme..(library. (
0270: 63 61 69 72 6f 29 0a 20 28 65 78 70 6f 72 74 20  cairo). (export 
0280: 0a 20 20 63 61 69 72 6f 2d 6c 69 62 72 61 72 79  .  cairo-library
0290: 2d 69 6e 69 74 0a 20 20 63 61 69 72 6f 2d 76 65  -init.  cairo-ve
02a0: 72 73 69 6f 6e 20 63 61 69 72 6f 2d 76 65 72 73  rsion cairo-vers
02b0: 69 6f 6e 2d 73 74 72 69 6e 67 20 63 61 69 72 6f  ion-string cairo
02c0: 2d 63 72 65 61 74 65 20 0a 20 20 3b 3b 63 61 69  -create .  ;;cai
02d0: 72 6f 2d 72 65 66 65 72 65 6e 63 65 20 63 61 69  ro-reference cai
02e0: 72 6f 2d 64 65 73 74 72 6f 79 20 63 61 69 72 6f  ro-destroy cairo
02f0: 2d 67 65 74 2d 72 65 66 65 72 65 6e 63 65 2d 63  -get-reference-c
0300: 6f 75 6e 74 20 0a 20 20 63 61 69 72 6f 2d 67 65  ount .  cairo-ge
0310: 74 2d 75 73 65 72 2d 64 61 74 61 0a 20 20 63 61  t-user-data.  ca
0320: 69 72 6f 2d 73 65 74 2d 75 73 65 72 2d 64 61 74  iro-set-user-dat
0330: 61 20 63 61 69 72 6f 2d 73 61 76 65 20 63 61 69  a cairo-save cai
0340: 72 6f 2d 72 65 73 74 6f 72 65 20 63 61 69 72 6f  ro-restore cairo
0350: 2d 70 75 73 68 2d 67 72 6f 75 70 0a 20 20 63 61  -push-group.  ca
0360: 69 72 6f 2d 70 75 73 68 2d 67 72 6f 75 70 2d 77  iro-push-group-w
0370: 69 74 68 2d 63 6f 6e 74 65 6e 74 20 63 61 69 72  ith-content cair
0380: 6f 2d 70 6f 70 2d 67 72 6f 75 70 0a 20 20 63 61  o-pop-group.  ca
0390: 69 72 6f 2d 70 6f 70 2d 67 72 6f 75 70 2d 74 6f  iro-pop-group-to
03a0: 2d 73 6f 75 72 63 65 20 63 61 69 72 6f 2d 73 65  -source cairo-se
03b0: 74 2d 6f 70 65 72 61 74 6f 72 20 63 61 69 72 6f  t-operator cairo
03c0: 2d 73 65 74 2d 73 6f 75 72 63 65 0a 20 20 63 61  -set-source.  ca
03d0: 69 72 6f 2d 73 65 74 2d 73 6f 75 72 63 65 2d 72  iro-set-source-r
03e0: 67 62 20 63 61 69 72 6f 2d 73 65 74 2d 73 6f 75  gb cairo-set-sou
03f0: 72 63 65 2d 72 67 62 61 20 63 61 69 72 6f 2d 73  rce-rgba cairo-s
0400: 65 74 2d 73 6f 75 72 63 65 2d 73 75 72 66 61 63  et-source-surfac
0410: 65 0a 20 20 63 61 69 72 6f 2d 73 65 74 2d 74 6f  e.  cairo-set-to
0420: 6c 65 72 61 6e 63 65 20 63 61 69 72 6f 2d 73 65  lerance cairo-se
0430: 74 2d 61 6e 74 69 61 6c 69 61 73 20 63 61 69 72  t-antialias cair
0440: 6f 2d 73 65 74 2d 66 69 6c 6c 2d 72 75 6c 65 0a  o-set-fill-rule.
0450: 20 20 63 61 69 72 6f 2d 73 65 74 2d 6c 69 6e 65    cairo-set-line
0460: 2d 77 69 64 74 68 20 63 61 69 72 6f 2d 73 65 74  -width cairo-set
0470: 2d 6c 69 6e 65 2d 63 61 70 20 63 61 69 72 6f 2d  -line-cap cairo-
0480: 73 65 74 2d 6c 69 6e 65 2d 6a 6f 69 6e 0a 20 20  set-line-join.  
0490: 63 61 69 72 6f 2d 73 65 74 2d 64 61 73 68 20 63  cairo-set-dash c
04a0: 61 69 72 6f 2d 73 65 74 2d 6d 69 74 65 72 2d 6c  airo-set-miter-l
04b0: 69 6d 69 74 20 63 61 69 72 6f 2d 74 72 61 6e 73  imit cairo-trans
04c0: 6c 61 74 65 20 63 61 69 72 6f 2d 73 63 61 6c 65  late cairo-scale
04d0: 0a 20 20 63 61 69 72 6f 2d 72 6f 74 61 74 65 20  .  cairo-rotate 
04e0: 63 61 69 72 6f 2d 74 72 61 6e 73 66 6f 72 6d 20  cairo-transform 
04f0: 63 61 69 72 6f 2d 73 65 74 2d 6d 61 74 72 69 78  cairo-set-matrix
0500: 20 63 61 69 72 6f 2d 69 64 65 6e 74 69 74 79 2d   cairo-identity-
0510: 6d 61 74 72 69 78 0a 20 20 63 61 69 72 6f 2d 75  matrix.  cairo-u
0520: 73 65 72 2d 74 6f 2d 64 65 76 69 63 65 20 63 61  ser-to-device ca
0530: 69 72 6f 2d 75 73 65 72 2d 74 6f 2d 64 65 76 69  iro-user-to-devi
0540: 63 65 2d 64 69 73 74 61 6e 63 65 0a 20 20 63 61  ce-distance.  ca
0550: 69 72 6f 2d 64 65 76 69 63 65 2d 74 6f 2d 75 73  iro-device-to-us
0560: 65 72 20 63 61 69 72 6f 2d 64 65 76 69 63 65 2d  er cairo-device-
0570: 74 6f 2d 75 73 65 72 2d 64 69 73 74 61 6e 63 65  to-user-distance
0580: 20 63 61 69 72 6f 2d 6e 65 77 2d 70 61 74 68 0a   cairo-new-path.
0590: 20 20 63 61 69 72 6f 2d 6d 6f 76 65 2d 74 6f 20    cairo-move-to 
05a0: 63 61 69 72 6f 2d 6e 65 77 2d 73 75 62 2d 70 61  cairo-new-sub-pa
05b0: 74 68 20 63 61 69 72 6f 2d 6c 69 6e 65 2d 74 6f  th cairo-line-to
05c0: 20 63 61 69 72 6f 2d 63 75 72 76 65 2d 74 6f 0a   cairo-curve-to.
05d0: 20 20 63 61 69 72 6f 2d 61 72 63 20 63 61 69 72    cairo-arc cair
05e0: 6f 2d 61 72 63 2d 6e 65 67 61 74 69 76 65 20 63  o-arc-negative c
05f0: 61 69 72 6f 2d 72 65 6c 2d 6d 6f 76 65 2d 74 6f  airo-rel-move-to
0600: 0a 0a 20 20 63 61 69 72 6f 2d 72 65 6c 2d 6c 69  ..  cairo-rel-li
0610: 6e 65 2d 74 6f 20 63 61 69 72 6f 2d 72 65 6c 2d  ne-to cairo-rel-
0620: 63 75 72 76 65 2d 74 6f 20 63 61 69 72 6f 2d 72  curve-to cairo-r
0630: 65 63 74 61 6e 67 6c 65 0a 20 20 63 61 69 72 6f  ectangle.  cairo
0640: 2d 63 6c 6f 73 65 2d 70 61 74 68 20 63 61 69 72  -close-path cair
0650: 6f 2d 70 61 74 68 2d 65 78 74 65 6e 74 73 20 63  o-path-extents c
0660: 61 69 72 6f 2d 70 61 69 6e 74 0a 20 20 63 61 69  airo-paint.  cai
0670: 72 6f 2d 70 61 69 6e 74 2d 77 69 74 68 2d 61 6c  ro-paint-with-al
0680: 70 68 61 20 63 61 69 72 6f 2d 6d 61 73 6b 20 63  pha cairo-mask c
0690: 61 69 72 6f 2d 6d 61 73 6b 2d 73 75 72 66 61 63  airo-mask-surfac
06a0: 65 20 63 61 69 72 6f 2d 73 74 72 6f 6b 65 0a 20  e cairo-stroke. 
06b0: 20 63 61 69 72 6f 2d 73 74 72 6f 6b 65 2d 70 72   cairo-stroke-pr
06c0: 65 73 65 72 76 65 20 63 61 69 72 6f 2d 66 69 6c  eserve cairo-fil
06d0: 6c 20 63 61 69 72 6f 2d 66 69 6c 6c 2d 70 72 65  l cairo-fill-pre
06e0: 73 65 72 76 65 20 63 61 69 72 6f 2d 63 6f 70 79  serve cairo-copy
06f0: 2d 70 61 67 65 0a 20 20 63 61 69 72 6f 2d 73 68  -page.  cairo-sh
0700: 6f 77 2d 70 61 67 65 20 63 61 69 72 6f 2d 69 6e  ow-page cairo-in
0710: 2d 73 74 72 6f 6b 65 20 63 61 69 72 6f 2d 69 6e  -stroke cairo-in
0720: 2d 66 69 6c 6c 20 63 61 69 72 6f 2d 69 6e 2d 63  -fill cairo-in-c
0730: 6c 69 70 0a 20 20 63 61 69 72 6f 2d 73 74 72 6f  lip.  cairo-stro
0740: 6b 65 2d 65 78 74 65 6e 74 73 20 63 61 69 72 6f  ke-extents cairo
0750: 2d 66 69 6c 6c 2d 65 78 74 65 6e 74 73 20 63 61  -fill-extents ca
0760: 69 72 6f 2d 72 65 73 65 74 2d 63 6c 69 70 20 63  iro-reset-clip c
0770: 61 69 72 6f 2d 63 6c 69 70 0a 20 20 63 61 69 72  airo-clip.  cair
0780: 6f 2d 63 6c 69 70 2d 70 72 65 73 65 72 76 65 20  o-clip-preserve 
0790: 63 61 69 72 6f 2d 63 6c 69 70 2d 65 78 74 65 6e  cairo-clip-exten
07a0: 74 73 20 63 61 69 72 6f 2d 63 6f 70 79 2d 63 6c  ts cairo-copy-cl
07b0: 69 70 2d 72 65 63 74 61 6e 67 6c 65 2d 6c 69 73  ip-rectangle-lis
07c0: 74 0a 09 09 09 09 09 3b 63 61 69 72 6f 2d 72 65  t......;cairo-re
07d0: 63 74 61 6e 67 6c 65 2d 6c 69 73 74 2d 64 65 73  ctangle-list-des
07e0: 74 72 6f 79 20 0a 20 20 63 61 69 72 6f 2d 67 6c  troy .  cairo-gl
07f0: 79 70 68 2d 61 6c 6c 6f 63 61 74 65 20 63 61 69  yph-allocate cai
0800: 72 6f 2d 67 6c 79 70 68 2d 66 72 65 65 0a 20 20  ro-glyph-free.  
0810: 63 61 69 72 6f 2d 74 65 78 74 2d 63 6c 75 73 74  cairo-text-clust
0820: 65 72 2d 61 6c 6c 6f 63 61 74 65 20 63 61 69 72  er-allocate cair
0830: 6f 2d 74 65 78 74 2d 63 6c 75 73 74 65 72 2d 66  o-text-cluster-f
0840: 72 65 65 0a 20 20 63 61 69 72 6f 2d 66 6f 6e 74  ree.  cairo-font
0850: 2d 6f 70 74 69 6f 6e 73 2d 63 72 65 61 74 65 20  -options-create 
0860: 63 61 69 72 6f 2d 66 6f 6e 74 2d 6f 70 74 69 6f  cairo-font-optio
0870: 6e 73 2d 63 6f 70 79 0a 09 09 09 09 09 3b 63 61  ns-copy......;ca
0880: 69 72 6f 2d 66 6f 6e 74 2d 6f 70 74 69 6f 6e 73  iro-font-options
0890: 2d 64 65 73 74 72 6f 79 20 0a 20 20 63 61 69 72  -destroy .  cair
08a0: 6f 2d 66 6f 6e 74 2d 6f 70 74 69 6f 6e 73 2d 73  o-font-options-s
08b0: 74 61 74 75 73 0a 20 20 63 61 69 72 6f 2d 66 6f  tatus.  cairo-fo
08c0: 6e 74 2d 6f 70 74 69 6f 6e 73 2d 6d 65 72 67 65  nt-options-merge
08d0: 20 63 61 69 72 6f 2d 66 6f 6e 74 2d 6f 70 74 69   cairo-font-opti
08e0: 6f 6e 73 2d 65 71 75 61 6c 0a 20 20 63 61 69 72  ons-equal.  cair
08f0: 6f 2d 66 6f 6e 74 2d 6f 70 74 69 6f 6e 73 2d 68  o-font-options-h
0900: 61 73 68 20 63 61 69 72 6f 2d 66 6f 6e 74 2d 6f  ash cairo-font-o
0910: 70 74 69 6f 6e 73 2d 73 65 74 2d 61 6e 74 69 61  ptions-set-antia
0920: 6c 69 61 73 0a 20 20 63 61 69 72 6f 2d 66 6f 6e  lias.  cairo-fon
0930: 74 2d 6f 70 74 69 6f 6e 73 2d 67 65 74 2d 61 6e  t-options-get-an
0940: 74 69 61 6c 69 61 73 20 63 61 69 72 6f 2d 66 6f  tialias cairo-fo
0950: 6e 74 2d 6f 70 74 69 6f 6e 73 2d 73 65 74 2d 73  nt-options-set-s
0960: 75 62 70 69 78 65 6c 2d 6f 72 64 65 72 0a 20 20  ubpixel-order.  
0970: 63 61 69 72 6f 2d 66 6f 6e 74 2d 6f 70 74 69 6f  cairo-font-optio
0980: 6e 73 2d 67 65 74 2d 73 75 62 70 69 78 65 6c 2d  ns-get-subpixel-
0990: 6f 72 64 65 72 0a 20 20 63 61 69 72 6f 2d 66 6f  order.  cairo-fo
09a0: 6e 74 2d 6f 70 74 69 6f 6e 73 2d 73 65 74 2d 68  nt-options-set-h
09b0: 69 6e 74 2d 73 74 79 6c 65 20 63 61 69 72 6f 2d  int-style cairo-
09c0: 66 6f 6e 74 2d 6f 70 74 69 6f 6e 73 2d 67 65 74  font-options-get
09d0: 2d 68 69 6e 74 2d 73 74 79 6c 65 0a 20 20 63 61  -hint-style.  ca
09e0: 69 72 6f 2d 66 6f 6e 74 2d 6f 70 74 69 6f 6e 73  iro-font-options
09f0: 2d 73 65 74 2d 68 69 6e 74 2d 6d 65 74 72 69 63  -set-hint-metric
0a00: 73 0a 20 20 63 61 69 72 6f 2d 66 6f 6e 74 2d 6f  s.  cairo-font-o
0a10: 70 74 69 6f 6e 73 2d 67 65 74 2d 68 69 6e 74 2d  ptions-get-hint-
0a20: 6d 65 74 72 69 63 73 20 63 61 69 72 6f 2d 73 65  metrics cairo-se
0a30: 6c 65 63 74 2d 66 6f 6e 74 2d 66 61 63 65 0a 20  lect-font-face. 
0a40: 20 63 61 69 72 6f 2d 73 65 74 2d 66 6f 6e 74 2d   cairo-set-font-
0a50: 73 69 7a 65 20 63 61 69 72 6f 2d 73 65 74 2d 66  size cairo-set-f
0a60: 6f 6e 74 2d 6d 61 74 72 69 78 20 63 61 69 72 6f  ont-matrix cairo
0a70: 2d 67 65 74 2d 66 6f 6e 74 2d 6d 61 74 72 69 78  -get-font-matrix
0a80: 0a 20 20 63 61 69 72 6f 2d 73 65 74 2d 66 6f 6e  .  cairo-set-fon
0a90: 74 2d 6f 70 74 69 6f 6e 73 20 63 61 69 72 6f 2d  t-options cairo-
0aa0: 67 65 74 2d 66 6f 6e 74 2d 6f 70 74 69 6f 6e 73  get-font-options
0ab0: 20 63 61 69 72 6f 2d 73 65 74 2d 66 6f 6e 74 2d   cairo-set-font-
0ac0: 66 61 63 65 0a 20 20 63 61 69 72 6f 2d 67 65 74  face.  cairo-get
0ad0: 2d 66 6f 6e 74 2d 66 61 63 65 20 63 61 69 72 6f  -font-face cairo
0ae0: 2d 73 65 74 2d 73 63 61 6c 65 64 2d 66 6f 6e 74  -set-scaled-font
0af0: 20 63 61 69 72 6f 2d 67 65 74 2d 73 63 61 6c 65   cairo-get-scale
0b00: 64 2d 66 6f 6e 74 0a 20 20 63 61 69 72 6f 2d 73  d-font.  cairo-s
0b10: 68 6f 77 2d 74 65 78 74 20 63 61 69 72 6f 2d 73  how-text cairo-s
0b20: 68 6f 77 2d 67 6c 79 70 68 73 20 63 61 69 72 6f  how-glyphs cairo
0b30: 2d 73 68 6f 77 2d 74 65 78 74 2d 67 6c 79 70 68  -show-text-glyph
0b40: 73 0a 20 20 63 61 69 72 6f 2d 74 65 78 74 2d 70  s.  cairo-text-p
0b50: 61 74 68 20 63 61 69 72 6f 2d 67 6c 79 70 68 2d  ath cairo-glyph-
0b60: 70 61 74 68 20 63 61 69 72 6f 2d 74 65 78 74 2d  path cairo-text-
0b70: 65 78 74 65 6e 74 73 0a 20 20 63 61 69 72 6f 2d  extents.  cairo-
0b80: 67 6c 79 70 68 2d 65 78 74 65 6e 74 73 20 63 61  glyph-extents ca
0b90: 69 72 6f 2d 66 6f 6e 74 2d 65 78 74 65 6e 74 73  iro-font-extents
0ba0: 20 0a 09 09 09 09 09 3b 63 61 69 72 6f 2d 66 6f   ......;cairo-fo
0bb0: 6e 74 2d 66 61 63 65 2d 72 65 66 65 72 65 6e 63  nt-face-referenc
0bc0: 65 20 63 61 69 72 6f 2d 66 6f 6e 74 2d 66 61 63  e cairo-font-fac
0bd0: 65 2d 64 65 73 74 72 6f 79 20 63 61 69 72 6f 2d  e-destroy cairo-
0be0: 66 6f 6e 74 2d 66 61 63 65 2d 67 65 74 2d 72 65  font-face-get-re
0bf0: 66 65 72 65 6e 63 65 2d 63 6f 75 6e 74 0a 20 20  ference-count.  
0c00: 63 61 69 72 6f 2d 66 6f 6e 74 2d 66 61 63 65 2d  cairo-font-face-
0c10: 73 74 61 74 75 73 20 63 61 69 72 6f 2d 66 6f 6e  status cairo-fon
0c20: 74 2d 66 61 63 65 2d 67 65 74 2d 74 79 70 65 0a  t-face-get-type.
0c30: 20 20 63 61 69 72 6f 2d 66 6f 6e 74 2d 66 61 63    cairo-font-fac
0c40: 65 2d 67 65 74 2d 75 73 65 72 2d 64 61 74 61 20  e-get-user-data 
0c50: 63 61 69 72 6f 2d 66 6f 6e 74 2d 66 61 63 65 2d  cairo-font-face-
0c60: 73 65 74 2d 75 73 65 72 2d 64 61 74 61 0a 20 20  set-user-data.  
0c70: 63 61 69 72 6f 2d 73 63 61 6c 65 64 2d 66 6f 6e  cairo-scaled-fon
0c80: 74 2d 63 72 65 61 74 65 20 0a 09 09 09 09 09 3b  t-create ......;
0c90: 63 61 69 72 6f 2d 73 63 61 6c 65 64 2d 66 6f 6e  cairo-scaled-fon
0ca0: 74 2d 72 65 66 65 72 65 6e 63 65 20 63 61 69 72  t-reference cair
0cb0: 6f 2d 73 63 61 6c 65 64 2d 66 6f 6e 74 2d 64 65  o-scaled-font-de
0cc0: 73 74 72 6f 79 20 63 61 69 72 6f 2d 73 63 61 6c  stroy cairo-scal
0cd0: 65 64 2d 66 6f 6e 74 2d 67 65 74 2d 72 65 66 65  ed-font-get-refe
0ce0: 72 65 6e 63 65 2d 63 6f 75 6e 74 0a 20 20 63 61  rence-count.  ca
0cf0: 69 72 6f 2d 73 63 61 6c 65 64 2d 66 6f 6e 74 2d  iro-scaled-font-
0d00: 73 74 61 74 75 73 20 63 61 69 72 6f 2d 73 63 61  status cairo-sca
0d10: 6c 65 64 2d 66 6f 6e 74 2d 67 65 74 2d 74 79 70  led-font-get-typ
0d20: 65 0a 20 20 63 61 69 72 6f 2d 73 63 61 6c 65 64  e.  cairo-scaled
0d30: 2d 66 6f 6e 74 2d 67 65 74 2d 75 73 65 72 2d 64  -font-get-user-d
0d40: 61 74 61 20 63 61 69 72 6f 2d 73 63 61 6c 65 64  ata cairo-scaled
0d50: 2d 66 6f 6e 74 2d 73 65 74 2d 75 73 65 72 2d 64  -font-set-user-d
0d60: 61 74 61 0a 20 20 63 61 69 72 6f 2d 73 63 61 6c  ata.  cairo-scal
0d70: 65 64 2d 66 6f 6e 74 2d 65 78 74 65 6e 74 73 20  ed-font-extents 
0d80: 63 61 69 72 6f 2d 73 63 61 6c 65 64 2d 66 6f 6e  cairo-scaled-fon
0d90: 74 2d 74 65 78 74 2d 65 78 74 65 6e 74 73 0a 20  t-text-extents. 
0da0: 20 63 61 69 72 6f 2d 73 63 61 6c 65 64 2d 66 6f   cairo-scaled-fo
0db0: 6e 74 2d 67 6c 79 70 68 2d 65 78 74 65 6e 74 73  nt-glyph-extents
0dc0: 20 63 61 69 72 6f 2d 73 63 61 6c 65 64 2d 66 6f   cairo-scaled-fo
0dd0: 6e 74 2d 74 65 78 74 2d 74 6f 2d 67 6c 79 70 68  nt-text-to-glyph
0de0: 73 0a 20 20 63 61 69 72 6f 2d 73 63 61 6c 65 64  s.  cairo-scaled
0df0: 2d 66 6f 6e 74 2d 67 65 74 2d 66 6f 6e 74 2d 66  -font-get-font-f
0e00: 61 63 65 20 63 61 69 72 6f 2d 73 63 61 6c 65 64  ace cairo-scaled
0e10: 2d 66 6f 6e 74 2d 67 65 74 2d 66 6f 6e 74 2d 6d  -font-get-font-m
0e20: 61 74 72 69 78 0a 20 20 63 61 69 72 6f 2d 73 63  atrix.  cairo-sc
0e30: 61 6c 65 64 2d 66 6f 6e 74 2d 67 65 74 2d 63 74  aled-font-get-ct
0e40: 6d 20 63 61 69 72 6f 2d 73 63 61 6c 65 64 2d 66  m cairo-scaled-f
0e50: 6f 6e 74 2d 67 65 74 2d 73 63 61 6c 65 2d 6d 61  ont-get-scale-ma
0e60: 74 72 69 78 0a 20 20 63 61 69 72 6f 2d 73 63 61  trix.  cairo-sca
0e70: 6c 65 64 2d 66 6f 6e 74 2d 67 65 74 2d 66 6f 6e  led-font-get-fon
0e80: 74 2d 6f 70 74 69 6f 6e 73 20 63 61 69 72 6f 2d  t-options cairo-
0e90: 74 6f 79 2d 66 6f 6e 74 2d 66 61 63 65 2d 63 72  toy-font-face-cr
0ea0: 65 61 74 65 0a 20 20 63 61 69 72 6f 2d 74 6f 79  eate.  cairo-toy
0eb0: 2d 66 6f 6e 74 2d 66 61 63 65 2d 67 65 74 2d 66  -font-face-get-f
0ec0: 61 6d 69 6c 79 20 63 61 69 72 6f 2d 74 6f 79 2d  amily cairo-toy-
0ed0: 66 6f 6e 74 2d 66 61 63 65 2d 67 65 74 2d 73 6c  font-face-get-sl
0ee0: 61 6e 74 0a 20 20 63 61 69 72 6f 2d 74 6f 79 2d  ant.  cairo-toy-
0ef0: 66 6f 6e 74 2d 66 61 63 65 2d 67 65 74 2d 77 65  font-face-get-we
0f00: 69 67 68 74 20 63 61 69 72 6f 2d 75 73 65 72 2d  ight cairo-user-
0f10: 66 6f 6e 74 2d 66 61 63 65 2d 63 72 65 61 74 65  font-face-create
0f20: 0a 20 20 63 61 69 72 6f 2d 75 73 65 72 2d 66 6f  .  cairo-user-fo
0f30: 6e 74 2d 66 61 63 65 2d 73 65 74 2d 69 6e 69 74  nt-face-set-init
0f40: 2d 66 75 6e 63 0a 20 20 63 61 69 72 6f 2d 75 73  -func.  cairo-us
0f50: 65 72 2d 66 6f 6e 74 2d 66 61 63 65 2d 73 65 74  er-font-face-set
0f60: 2d 72 65 6e 64 65 72 2d 67 6c 79 70 68 2d 66 75  -render-glyph-fu
0f70: 6e 63 0a 20 20 63 61 69 72 6f 2d 75 73 65 72 2d  nc.  cairo-user-
0f80: 66 6f 6e 74 2d 66 61 63 65 2d 73 65 74 2d 74 65  font-face-set-te
0f90: 78 74 2d 74 6f 2d 67 6c 79 70 68 73 2d 66 75 6e  xt-to-glyphs-fun
0fa0: 63 0a 20 20 63 61 69 72 6f 2d 75 73 65 72 2d 66  c.  cairo-user-f
0fb0: 6f 6e 74 2d 66 61 63 65 2d 73 65 74 2d 75 6e 69  ont-face-set-uni
0fc0: 63 6f 64 65 2d 74 6f 2d 67 6c 79 70 68 2d 66 75  code-to-glyph-fu
0fd0: 6e 63 0a 20 20 63 61 69 72 6f 2d 75 73 65 72 2d  nc.  cairo-user-
0fe0: 66 6f 6e 74 2d 66 61 63 65 2d 67 65 74 2d 69 6e  font-face-get-in
0ff0: 69 74 2d 66 75 6e 63 0a 20 20 63 61 69 72 6f 2d  it-func.  cairo-
1000: 75 73 65 72 2d 66 6f 6e 74 2d 66 61 63 65 2d 67  user-font-face-g
1010: 65 74 2d 72 65 6e 64 65 72 2d 67 6c 79 70 68 2d  et-render-glyph-
1020: 66 75 6e 63 0a 20 20 63 61 69 72 6f 2d 75 73 65  func.  cairo-use
1030: 72 2d 66 6f 6e 74 2d 66 61 63 65 2d 67 65 74 2d  r-font-face-get-
1040: 74 65 78 74 2d 74 6f 2d 67 6c 79 70 68 73 2d 66  text-to-glyphs-f
1050: 75 6e 63 0a 20 20 63 61 69 72 6f 2d 75 73 65 72  unc.  cairo-user
1060: 2d 66 6f 6e 74 2d 66 61 63 65 2d 67 65 74 2d 75  -font-face-get-u
1070: 6e 69 63 6f 64 65 2d 74 6f 2d 67 6c 79 70 68 2d  nicode-to-glyph-
1080: 66 75 6e 63 20 63 61 69 72 6f 2d 67 65 74 2d 6f  func cairo-get-o
1090: 70 65 72 61 74 6f 72 0a 20 20 63 61 69 72 6f 2d  perator.  cairo-
10a0: 67 65 74 2d 73 6f 75 72 63 65 20 63 61 69 72 6f  get-source cairo
10b0: 2d 67 65 74 2d 74 6f 6c 65 72 61 6e 63 65 20 63  -get-tolerance c
10c0: 61 69 72 6f 2d 67 65 74 2d 61 6e 74 69 61 6c 69  airo-get-antiali
10d0: 61 73 0a 20 20 63 61 69 72 6f 2d 68 61 73 2d 63  as.  cairo-has-c
10e0: 75 72 72 65 6e 74 2d 70 6f 69 6e 74 20 63 61 69  urrent-point cai
10f0: 72 6f 2d 67 65 74 2d 63 75 72 72 65 6e 74 2d 70  ro-get-current-p
1100: 6f 69 6e 74 20 63 61 69 72 6f 2d 67 65 74 2d 66  oint cairo-get-f
1110: 69 6c 6c 2d 72 75 6c 65 0a 20 20 63 61 69 72 6f  ill-rule.  cairo
1120: 2d 67 65 74 2d 6c 69 6e 65 2d 77 69 64 74 68 20  -get-line-width 
1130: 63 61 69 72 6f 2d 67 65 74 2d 6c 69 6e 65 2d 63  cairo-get-line-c
1140: 61 70 20 63 61 69 72 6f 2d 67 65 74 2d 6c 69 6e  ap cairo-get-lin
1150: 65 2d 6a 6f 69 6e 0a 20 20 63 61 69 72 6f 2d 67  e-join.  cairo-g
1160: 65 74 2d 6d 69 74 65 72 2d 6c 69 6d 69 74 20 63  et-miter-limit c
1170: 61 69 72 6f 2d 67 65 74 2d 64 61 73 68 2d 63 6f  airo-get-dash-co
1180: 75 6e 74 20 63 61 69 72 6f 2d 67 65 74 2d 64 61  unt cairo-get-da
1190: 73 68 0a 20 20 63 61 69 72 6f 2d 67 65 74 2d 6d  sh.  cairo-get-m
11a0: 61 74 72 69 78 20 63 61 69 72 6f 2d 67 65 74 2d  atrix cairo-get-
11b0: 74 61 72 67 65 74 20 63 61 69 72 6f 2d 67 65 74  target cairo-get
11c0: 2d 67 72 6f 75 70 2d 74 61 72 67 65 74 0a 20 20  -group-target.  
11d0: 63 61 69 72 6f 2d 63 6f 70 79 2d 70 61 74 68 20  cairo-copy-path 
11e0: 63 61 69 72 6f 2d 63 6f 70 79 2d 70 61 74 68 2d  cairo-copy-path-
11f0: 66 6c 61 74 20 63 61 69 72 6f 2d 61 70 70 65 6e  flat cairo-appen
1200: 64 2d 70 61 74 68 0a 09 09 09 09 09 3b 63 61 69  d-path......;cai
1210: 72 6f 2d 70 61 74 68 2d 64 65 73 74 72 6f 79 20  ro-path-destroy 
1220: 0a 20 20 63 61 69 72 6f 2d 73 74 61 74 75 73 20  .  cairo-status 
1230: 63 61 69 72 6f 2d 73 74 61 74 75 73 2d 74 6f 2d  cairo-status-to-
1240: 73 74 72 69 6e 67 0a 09 09 09 09 09 3b 63 61 69  string......;cai
1250: 72 6f 2d 64 65 76 69 63 65 2d 72 65 66 65 72 65  ro-device-refere
1260: 6e 63 65 20 0a 20 20 63 61 69 72 6f 2d 64 65 76  nce .  cairo-dev
1270: 69 63 65 2d 67 65 74 2d 74 79 70 65 20 63 61 69  ice-get-type cai
1280: 72 6f 2d 64 65 76 69 63 65 2d 73 74 61 74 75 73  ro-device-status
1290: 0a 20 20 63 61 69 72 6f 2d 64 65 76 69 63 65 2d  .  cairo-device-
12a0: 61 63 71 75 69 72 65 20 63 61 69 72 6f 2d 64 65  acquire cairo-de
12b0: 76 69 63 65 2d 72 65 6c 65 61 73 65 20 63 61 69  vice-release cai
12c0: 72 6f 2d 64 65 76 69 63 65 2d 66 6c 75 73 68 0a  ro-device-flush.
12d0: 20 20 63 61 69 72 6f 2d 64 65 76 69 63 65 2d 66    cairo-device-f
12e0: 69 6e 69 73 68 20 0a 09 09 09 09 09 3b 63 61 69  inish ......;cai
12f0: 72 6f 2d 64 65 76 69 63 65 2d 64 65 73 74 72 6f  ro-device-destro
1300: 79 20 63 61 69 72 6f 2d 64 65 76 69 63 65 2d 67  y cairo-device-g
1310: 65 74 2d 72 65 66 65 72 65 6e 63 65 2d 63 6f 75  et-reference-cou
1320: 6e 74 20 0a 20 20 63 61 69 72 6f 2d 64 65 76 69  nt .  cairo-devi
1330: 63 65 2d 67 65 74 2d 75 73 65 72 2d 64 61 74 61  ce-get-user-data
1340: 0a 20 20 63 61 69 72 6f 2d 64 65 76 69 63 65 2d  .  cairo-device-
1350: 73 65 74 2d 75 73 65 72 2d 64 61 74 61 20 63 61  set-user-data ca
1360: 69 72 6f 2d 73 75 72 66 61 63 65 2d 63 72 65 61  iro-surface-crea
1370: 74 65 2d 73 69 6d 69 6c 61 72 0a 20 20 63 61 69  te-similar.  cai
1380: 72 6f 2d 73 75 72 66 61 63 65 2d 63 72 65 61 74  ro-surface-creat
1390: 65 2d 73 69 6d 69 6c 61 72 2d 69 6d 61 67 65 20  e-similar-image 
13a0: 63 61 69 72 6f 2d 73 75 72 66 61 63 65 2d 6d 61  cairo-surface-ma
13b0: 70 2d 74 6f 2d 69 6d 61 67 65 0a 20 20 63 61 69  p-to-image.  cai
13c0: 72 6f 2d 73 75 72 66 61 63 65 2d 75 6e 6d 61 70  ro-surface-unmap
13d0: 2d 69 6d 61 67 65 20 63 61 69 72 6f 2d 73 75 72  -image cairo-sur
13e0: 66 61 63 65 2d 63 72 65 61 74 65 2d 66 6f 72 2d  face-create-for-
13f0: 72 65 63 74 61 6e 67 6c 65 0a 20 20 63 61 69 72  rectangle.  cair
1400: 6f 2d 73 75 72 66 61 63 65 2d 63 72 65 61 74 65  o-surface-create
1410: 2d 6f 62 73 65 72 76 65 72 0a 20 20 63 61 69 72  -observer.  cair
1420: 6f 2d 73 75 72 66 61 63 65 2d 6f 62 73 65 72 76  o-surface-observ
1430: 65 72 2d 61 64 64 2d 70 61 69 6e 74 2d 63 61 6c  er-add-paint-cal
1440: 6c 62 61 63 6b 0a 20 20 63 61 69 72 6f 2d 73 75  lback.  cairo-su
1450: 72 66 61 63 65 2d 6f 62 73 65 72 76 65 72 2d 61  rface-observer-a
1460: 64 64 2d 6d 61 73 6b 2d 63 61 6c 6c 62 61 63 6b  dd-mask-callback
1470: 0a 20 20 63 61 69 72 6f 2d 73 75 72 66 61 63 65  .  cairo-surface
1480: 2d 6f 62 73 65 72 76 65 72 2d 61 64 64 2d 66 69  -observer-add-fi
1490: 6c 6c 2d 63 61 6c 6c 62 61 63 6b 0a 20 20 63 61  ll-callback.  ca
14a0: 69 72 6f 2d 73 75 72 66 61 63 65 2d 6f 62 73 65  iro-surface-obse
14b0: 72 76 65 72 2d 61 64 64 2d 73 74 72 6f 6b 65 2d  rver-add-stroke-
14c0: 63 61 6c 6c 62 61 63 6b 0a 20 20 63 61 69 72 6f  callback.  cairo
14d0: 2d 73 75 72 66 61 63 65 2d 6f 62 73 65 72 76 65  -surface-observe
14e0: 72 2d 61 64 64 2d 67 6c 79 70 68 73 2d 63 61 6c  r-add-glyphs-cal
14f0: 6c 62 61 63 6b 0a 20 20 63 61 69 72 6f 2d 73 75  lback.  cairo-su
1500: 72 66 61 63 65 2d 6f 62 73 65 72 76 65 72 2d 61  rface-observer-a
1510: 64 64 2d 66 6c 75 73 68 2d 63 61 6c 6c 62 61 63  dd-flush-callbac
1520: 6b 0a 20 20 63 61 69 72 6f 2d 73 75 72 66 61 63  k.  cairo-surfac
1530: 65 2d 6f 62 73 65 72 76 65 72 2d 61 64 64 2d 66  e-observer-add-f
1540: 69 6e 69 73 68 2d 63 61 6c 6c 62 61 63 6b 0a 20  inish-callback. 
1550: 20 63 61 69 72 6f 2d 73 75 72 66 61 63 65 2d 6f   cairo-surface-o
1560: 62 73 65 72 76 65 72 2d 70 72 69 6e 74 20 63 61  bserver-print ca
1570: 69 72 6f 2d 73 75 72 66 61 63 65 2d 6f 62 73 65  iro-surface-obse
1580: 72 76 65 72 2d 65 6c 61 70 73 65 64 0a 20 20 63  rver-elapsed.  c
1590: 61 69 72 6f 2d 64 65 76 69 63 65 2d 6f 62 73 65  airo-device-obse
15a0: 72 76 65 72 2d 70 72 69 6e 74 20 63 61 69 72 6f  rver-print cairo
15b0: 2d 64 65 76 69 63 65 2d 6f 62 73 65 72 76 65 72  -device-observer
15c0: 2d 65 6c 61 70 73 65 64 0a 20 20 63 61 69 72 6f  -elapsed.  cairo
15d0: 2d 64 65 76 69 63 65 2d 6f 62 73 65 72 76 65 72  -device-observer
15e0: 2d 70 61 69 6e 74 2d 65 6c 61 70 73 65 64 20 63  -paint-elapsed c
15f0: 61 69 72 6f 2d 64 65 76 69 63 65 2d 6f 62 73 65  airo-device-obse
1600: 72 76 65 72 2d 6d 61 73 6b 2d 65 6c 61 70 73 65  rver-mask-elapse
1610: 64 0a 20 20 63 61 69 72 6f 2d 64 65 76 69 63 65  d.  cairo-device
1620: 2d 6f 62 73 65 72 76 65 72 2d 66 69 6c 6c 2d 65  -observer-fill-e
1630: 6c 61 70 73 65 64 0a 20 20 63 61 69 72 6f 2d 64  lapsed.  cairo-d
1640: 65 76 69 63 65 2d 6f 62 73 65 72 76 65 72 2d 73  evice-observer-s
1650: 74 72 6f 6b 65 2d 65 6c 61 70 73 65 64 0a 20 20  troke-elapsed.  
1660: 63 61 69 72 6f 2d 64 65 76 69 63 65 2d 6f 62 73  cairo-device-obs
1670: 65 72 76 65 72 2d 67 6c 79 70 68 73 2d 65 6c 61  erver-glyphs-ela
1680: 70 73 65 64 20 0a 09 09 09 09 09 3b 63 61 69 72  psed ......;cair
1690: 6f 2d 73 75 72 66 61 63 65 2d 72 65 66 65 72 65  o-surface-refere
16a0: 6e 63 65 0a 20 20 63 61 69 72 6f 2d 73 75 72 66  nce.  cairo-surf
16b0: 61 63 65 2d 66 69 6e 69 73 68 20 0a 09 09 09 09  ace-finish .....
16c0: 09 3b 63 61 69 72 6f 2d 73 75 72 66 61 63 65 2d  .;cairo-surface-
16d0: 64 65 73 74 72 6f 79 20 0a 20 20 63 61 69 72 6f  destroy .  cairo
16e0: 2d 73 75 72 66 61 63 65 2d 67 65 74 2d 64 65 76  -surface-get-dev
16f0: 69 63 65 0a 09 09 09 09 09 3b 63 61 69 72 6f 2d  ice......;cairo-
1700: 73 75 72 66 61 63 65 2d 67 65 74 2d 72 65 66 65  surface-get-refe
1710: 72 65 6e 63 65 2d 63 6f 75 6e 74 20 0a 20 20 63  rence-count .  c
1720: 61 69 72 6f 2d 73 75 72 66 61 63 65 2d 73 74 61  airo-surface-sta
1730: 74 75 73 0a 20 20 63 61 69 72 6f 2d 73 75 72 66  tus.  cairo-surf
1740: 61 63 65 2d 67 65 74 2d 74 79 70 65 20 63 61 69  ace-get-type cai
1750: 72 6f 2d 73 75 72 66 61 63 65 2d 67 65 74 2d 63  ro-surface-get-c
1760: 6f 6e 74 65 6e 74 0a 20 20 63 61 69 72 6f 2d 73  ontent.  cairo-s
1770: 75 72 66 61 63 65 2d 77 72 69 74 65 2d 74 6f 2d  urface-write-to-
1780: 70 6e 67 20 63 61 69 72 6f 2d 73 75 72 66 61 63  png cairo-surfac
1790: 65 2d 77 72 69 74 65 2d 74 6f 2d 70 6e 67 2d 73  e-write-to-png-s
17a0: 74 72 65 61 6d 0a 20 20 63 61 69 72 6f 2d 73 75  tream.  cairo-su
17b0: 72 66 61 63 65 2d 67 65 74 2d 75 73 65 72 2d 64  rface-get-user-d
17c0: 61 74 61 20 63 61 69 72 6f 2d 73 75 72 66 61 63  ata cairo-surfac
17d0: 65 2d 73 65 74 2d 75 73 65 72 2d 64 61 74 61 0a  e-set-user-data.
17e0: 20 20 63 61 69 72 6f 2d 73 75 72 66 61 63 65 2d    cairo-surface-
17f0: 67 65 74 2d 6d 69 6d 65 2d 64 61 74 61 20 63 61  get-mime-data ca
1800: 69 72 6f 2d 73 75 72 66 61 63 65 2d 73 65 74 2d  iro-surface-set-
1810: 6d 69 6d 65 2d 64 61 74 61 0a 20 20 63 61 69 72  mime-data.  cair
1820: 6f 2d 73 75 72 66 61 63 65 2d 73 75 70 70 6f 72  o-surface-suppor
1830: 74 73 2d 6d 69 6d 65 2d 74 79 70 65 20 63 61 69  ts-mime-type cai
1840: 72 6f 2d 73 75 72 66 61 63 65 2d 67 65 74 2d 66  ro-surface-get-f
1850: 6f 6e 74 2d 6f 70 74 69 6f 6e 73 0a 20 20 63 61  ont-options.  ca
1860: 69 72 6f 2d 73 75 72 66 61 63 65 2d 66 6c 75 73  iro-surface-flus
1870: 68 20 63 61 69 72 6f 2d 73 75 72 66 61 63 65 2d  h cairo-surface-
1880: 6d 61 72 6b 2d 64 69 72 74 79 0a 20 20 63 61 69  mark-dirty.  cai
1890: 72 6f 2d 73 75 72 66 61 63 65 2d 6d 61 72 6b 2d  ro-surface-mark-
18a0: 64 69 72 74 79 2d 72 65 63 74 61 6e 67 6c 65 20  dirty-rectangle 
18b0: 63 61 69 72 6f 2d 73 75 72 66 61 63 65 2d 73 65  cairo-surface-se
18c0: 74 2d 64 65 76 69 63 65 2d 73 63 61 6c 65 0a 20  t-device-scale. 
18d0: 20 63 61 69 72 6f 2d 73 75 72 66 61 63 65 2d 67   cairo-surface-g
18e0: 65 74 2d 64 65 76 69 63 65 2d 73 63 61 6c 65 20  et-device-scale 
18f0: 63 61 69 72 6f 2d 73 75 72 66 61 63 65 2d 73 65  cairo-surface-se
1900: 74 2d 64 65 76 69 63 65 2d 6f 66 66 73 65 74 0a  t-device-offset.
1910: 20 20 63 61 69 72 6f 2d 73 75 72 66 61 63 65 2d    cairo-surface-
1920: 67 65 74 2d 64 65 76 69 63 65 2d 6f 66 66 73 65  get-device-offse
1930: 74 20 63 61 69 72 6f 2d 73 75 72 66 61 63 65 2d  t cairo-surface-
1940: 73 65 74 2d 66 61 6c 6c 62 61 63 6b 2d 72 65 73  set-fallback-res
1950: 6f 6c 75 74 69 6f 6e 0a 20 20 63 61 69 72 6f 2d  olution.  cairo-
1960: 73 75 72 66 61 63 65 2d 67 65 74 2d 66 61 6c 6c  surface-get-fall
1970: 62 61 63 6b 2d 72 65 73 6f 6c 75 74 69 6f 6e 20  back-resolution 
1980: 63 61 69 72 6f 2d 73 75 72 66 61 63 65 2d 63 6f  cairo-surface-co
1990: 70 79 2d 70 61 67 65 0a 20 20 63 61 69 72 6f 2d  py-page.  cairo-
19a0: 73 75 72 66 61 63 65 2d 73 68 6f 77 2d 70 61 67  surface-show-pag
19b0: 65 20 63 61 69 72 6f 2d 73 75 72 66 61 63 65 2d  e cairo-surface-
19c0: 68 61 73 2d 73 68 6f 77 2d 74 65 78 74 2d 67 6c  has-show-text-gl
19d0: 79 70 68 73 0a 20 20 63 61 69 72 6f 2d 69 6d 61  yphs.  cairo-ima
19e0: 67 65 2d 73 75 72 66 61 63 65 2d 63 72 65 61 74  ge-surface-creat
19f0: 65 20 63 61 69 72 6f 2d 66 6f 72 6d 61 74 2d 73  e cairo-format-s
1a00: 74 72 69 64 65 2d 66 6f 72 2d 77 69 64 74 68 0a  tride-for-width.
1a10: 20 20 63 61 69 72 6f 2d 69 6d 61 67 65 2d 73 75    cairo-image-su
1a20: 72 66 61 63 65 2d 63 72 65 61 74 65 2d 66 6f 72  rface-create-for
1a30: 2d 64 61 74 61 20 63 61 69 72 6f 2d 69 6d 61 67  -data cairo-imag
1a40: 65 2d 73 75 72 66 61 63 65 2d 67 65 74 2d 64 61  e-surface-get-da
1a50: 74 61 0a 20 20 63 61 69 72 6f 2d 69 6d 61 67 65  ta.  cairo-image
1a60: 2d 73 75 72 66 61 63 65 2d 67 65 74 2d 66 6f 72  -surface-get-for
1a70: 6d 61 74 20 63 61 69 72 6f 2d 69 6d 61 67 65 2d  mat cairo-image-
1a80: 73 75 72 66 61 63 65 2d 67 65 74 2d 77 69 64 74  surface-get-widt
1a90: 68 0a 20 20 63 61 69 72 6f 2d 69 6d 61 67 65 2d  h.  cairo-image-
1aa0: 73 75 72 66 61 63 65 2d 67 65 74 2d 68 65 69 67  surface-get-heig
1ab0: 68 74 20 63 61 69 72 6f 2d 69 6d 61 67 65 2d 73  ht cairo-image-s
1ac0: 75 72 66 61 63 65 2d 67 65 74 2d 73 74 72 69 64  urface-get-strid
1ad0: 65 0a 20 20 63 61 69 72 6f 2d 69 6d 61 67 65 2d  e.  cairo-image-
1ae0: 73 75 72 66 61 63 65 2d 63 72 65 61 74 65 2d 66  surface-create-f
1af0: 72 6f 6d 2d 70 6e 67 0a 20 20 63 61 69 72 6f 2d  rom-png.  cairo-
1b00: 69 6d 61 67 65 2d 73 75 72 66 61 63 65 2d 63 72  image-surface-cr
1b10: 65 61 74 65 2d 66 72 6f 6d 2d 70 6e 67 2d 73 74  eate-from-png-st
1b20: 72 65 61 6d 0a 20 20 63 61 69 72 6f 2d 72 65 63  ream.  cairo-rec
1b30: 6f 72 64 69 6e 67 2d 73 75 72 66 61 63 65 2d 63  ording-surface-c
1b40: 72 65 61 74 65 20 63 61 69 72 6f 2d 72 65 63 6f  reate cairo-reco
1b50: 72 64 69 6e 67 2d 73 75 72 66 61 63 65 2d 69 6e  rding-surface-in
1b60: 6b 2d 65 78 74 65 6e 74 73 0a 20 20 63 61 69 72  k-extents.  cair
1b70: 6f 2d 72 65 63 6f 72 64 69 6e 67 2d 73 75 72 66  o-recording-surf
1b80: 61 63 65 2d 67 65 74 2d 65 78 74 65 6e 74 73 20  ace-get-extents 
1b90: 63 61 69 72 6f 2d 70 61 74 74 65 72 6e 2d 63 72  cairo-pattern-cr
1ba0: 65 61 74 65 2d 72 61 73 74 65 72 2d 73 6f 75 72  eate-raster-sour
1bb0: 63 65 0a 20 20 63 61 69 72 6f 2d 72 61 73 74 65  ce.  cairo-raste
1bc0: 72 2d 73 6f 75 72 63 65 2d 70 61 74 74 65 72 6e  r-source-pattern
1bd0: 2d 73 65 74 2d 63 61 6c 6c 62 61 63 6b 2d 64 61  -set-callback-da
1be0: 74 61 0a 20 20 63 61 69 72 6f 2d 72 61 73 74 65  ta.  cairo-raste
1bf0: 72 2d 73 6f 75 72 63 65 2d 70 61 74 74 65 72 6e  r-source-pattern
1c00: 2d 67 65 74 2d 63 61 6c 6c 62 61 63 6b 2d 64 61  -get-callback-da
1c10: 74 61 0a 20 20 63 61 69 72 6f 2d 72 61 73 74 65  ta.  cairo-raste
1c20: 72 2d 73 6f 75 72 63 65 2d 70 61 74 74 65 72 6e  r-source-pattern
1c30: 2d 73 65 74 2d 61 63 71 75 69 72 65 0a 20 20 63  -set-acquire.  c
1c40: 61 69 72 6f 2d 72 61 73 74 65 72 2d 73 6f 75 72  airo-raster-sour
1c50: 63 65 2d 70 61 74 74 65 72 6e 2d 67 65 74 2d 61  ce-pattern-get-a
1c60: 63 71 75 69 72 65 0a 20 20 63 61 69 72 6f 2d 72  cquire.  cairo-r
1c70: 61 73 74 65 72 2d 73 6f 75 72 63 65 2d 70 61 74  aster-source-pat
1c80: 74 65 72 6e 2d 73 65 74 2d 73 6e 61 70 73 68 6f  tern-set-snapsho
1c90: 74 0a 20 20 63 61 69 72 6f 2d 72 61 73 74 65 72  t.  cairo-raster
1ca0: 2d 73 6f 75 72 63 65 2d 70 61 74 74 65 72 6e 2d  -source-pattern-
1cb0: 67 65 74 2d 73 6e 61 70 73 68 6f 74 0a 20 20 63  get-snapshot.  c
1cc0: 61 69 72 6f 2d 72 61 73 74 65 72 2d 73 6f 75 72  airo-raster-sour
1cd0: 63 65 2d 70 61 74 74 65 72 6e 2d 73 65 74 2d 63  ce-pattern-set-c
1ce0: 6f 70 79 0a 20 20 63 61 69 72 6f 2d 72 61 73 74  opy.  cairo-rast
1cf0: 65 72 2d 73 6f 75 72 63 65 2d 70 61 74 74 65 72  er-source-patter
1d00: 6e 2d 67 65 74 2d 63 6f 70 79 0a 20 20 63 61 69  n-get-copy.  cai
1d10: 72 6f 2d 72 61 73 74 65 72 2d 73 6f 75 72 63 65  ro-raster-source
1d20: 2d 70 61 74 74 65 72 6e 2d 73 65 74 2d 66 69 6e  -pattern-set-fin
1d30: 69 73 68 0a 20 20 63 61 69 72 6f 2d 72 61 73 74  ish.  cairo-rast
1d40: 65 72 2d 73 6f 75 72 63 65 2d 70 61 74 74 65 72  er-source-patter
1d50: 6e 2d 67 65 74 2d 66 69 6e 69 73 68 20 63 61 69  n-get-finish cai
1d60: 72 6f 2d 70 61 74 74 65 72 6e 2d 63 72 65 61 74  ro-pattern-creat
1d70: 65 2d 72 67 62 0a 20 20 63 61 69 72 6f 2d 70 61  e-rgb.  cairo-pa
1d80: 74 74 65 72 6e 2d 63 72 65 61 74 65 2d 72 67 62  ttern-create-rgb
1d90: 61 20 63 61 69 72 6f 2d 70 61 74 74 65 72 6e 2d  a cairo-pattern-
1da0: 63 72 65 61 74 65 2d 66 6f 72 2d 73 75 72 66 61  create-for-surfa
1db0: 63 65 0a 20 20 63 61 69 72 6f 2d 70 61 74 74 65  ce.  cairo-patte
1dc0: 72 6e 2d 63 72 65 61 74 65 2d 6c 69 6e 65 61 72  rn-create-linear
1dd0: 20 63 61 69 72 6f 2d 70 61 74 74 65 72 6e 2d 63   cairo-pattern-c
1de0: 72 65 61 74 65 2d 72 61 64 69 61 6c 0a 20 20 63  reate-radial.  c
1df0: 61 69 72 6f 2d 70 61 74 74 65 72 6e 2d 63 72 65  airo-pattern-cre
1e00: 61 74 65 2d 6d 65 73 68 20 0a 09 09 09 09 09 3b  ate-mesh ......;
1e10: 63 61 69 72 6f 2d 70 61 74 74 65 72 6e 2d 72 65  cairo-pattern-re
1e20: 66 65 72 65 6e 63 65 20 63 61 69 72 6f 2d 70 61  ference cairo-pa
1e30: 74 74 65 72 6e 2d 64 65 73 74 72 6f 79 20 63 61  ttern-destroy ca
1e40: 69 72 6f 2d 70 61 74 74 65 72 6e 2d 67 65 74 2d  iro-pattern-get-
1e50: 72 65 66 65 72 65 6e 63 65 2d 63 6f 75 6e 74 0a  reference-count.
1e60: 20 20 63 61 69 72 6f 2d 70 61 74 74 65 72 6e 2d    cairo-pattern-
1e70: 73 74 61 74 75 73 20 63 61 69 72 6f 2d 70 61 74  status cairo-pat
1e80: 74 65 72 6e 2d 67 65 74 2d 75 73 65 72 2d 64 61  tern-get-user-da
1e90: 74 61 0a 20 20 63 61 69 72 6f 2d 70 61 74 74 65  ta.  cairo-patte
1ea0: 72 6e 2d 73 65 74 2d 75 73 65 72 2d 64 61 74 61  rn-set-user-data
1eb0: 20 63 61 69 72 6f 2d 70 61 74 74 65 72 6e 2d 67   cairo-pattern-g
1ec0: 65 74 2d 74 79 70 65 0a 20 20 63 61 69 72 6f 2d  et-type.  cairo-
1ed0: 70 61 74 74 65 72 6e 2d 61 64 64 2d 63 6f 6c 6f  pattern-add-colo
1ee0: 72 2d 73 74 6f 70 2d 72 67 62 20 63 61 69 72 6f  r-stop-rgb cairo
1ef0: 2d 70 61 74 74 65 72 6e 2d 61 64 64 2d 63 6f 6c  -pattern-add-col
1f00: 6f 72 2d 73 74 6f 70 2d 72 67 62 61 0a 20 20 63  or-stop-rgba.  c
1f10: 61 69 72 6f 2d 6d 65 73 68 2d 70 61 74 74 65 72  airo-mesh-patter
1f20: 6e 2d 62 65 67 69 6e 2d 70 61 74 63 68 20 63 61  n-begin-patch ca
1f30: 69 72 6f 2d 6d 65 73 68 2d 70 61 74 74 65 72 6e  iro-mesh-pattern
1f40: 2d 65 6e 64 2d 70 61 74 63 68 0a 20 20 63 61 69  -end-patch.  cai
1f50: 72 6f 2d 6d 65 73 68 2d 70 61 74 74 65 72 6e 2d  ro-mesh-pattern-
1f60: 63 75 72 76 65 2d 74 6f 20 63 61 69 72 6f 2d 6d  curve-to cairo-m
1f70: 65 73 68 2d 70 61 74 74 65 72 6e 2d 6c 69 6e 65  esh-pattern-line
1f80: 2d 74 6f 0a 20 20 63 61 69 72 6f 2d 6d 65 73 68  -to.  cairo-mesh
1f90: 2d 70 61 74 74 65 72 6e 2d 6d 6f 76 65 2d 74 6f  -pattern-move-to
1fa0: 20 63 61 69 72 6f 2d 6d 65 73 68 2d 70 61 74 74   cairo-mesh-patt
1fb0: 65 72 6e 2d 73 65 74 2d 63 6f 6e 74 72 6f 6c 2d  ern-set-control-
1fc0: 70 6f 69 6e 74 0a 20 20 63 61 69 72 6f 2d 6d 65  point.  cairo-me
1fd0: 73 68 2d 70 61 74 74 65 72 6e 2d 73 65 74 2d 63  sh-pattern-set-c
1fe0: 6f 72 6e 65 72 2d 63 6f 6c 6f 72 2d 72 67 62 0a  orner-color-rgb.
1ff0: 20 20 63 61 69 72 6f 2d 6d 65 73 68 2d 70 61 74    cairo-mesh-pat
2000: 74 65 72 6e 2d 73 65 74 2d 63 6f 72 6e 65 72 2d  tern-set-corner-
2010: 63 6f 6c 6f 72 2d 72 67 62 61 20 63 61 69 72 6f  color-rgba cairo
2020: 2d 70 61 74 74 65 72 6e 2d 73 65 74 2d 6d 61 74  -pattern-set-mat
2030: 72 69 78 0a 20 20 63 61 69 72 6f 2d 70 61 74 74  rix.  cairo-patt
2040: 65 72 6e 2d 67 65 74 2d 6d 61 74 72 69 78 20 63  ern-get-matrix c
2050: 61 69 72 6f 2d 70 61 74 74 65 72 6e 2d 73 65 74  airo-pattern-set
2060: 2d 65 78 74 65 6e 64 0a 20 20 63 61 69 72 6f 2d  -extend.  cairo-
2070: 70 61 74 74 65 72 6e 2d 67 65 74 2d 65 78 74 65  pattern-get-exte
2080: 6e 64 20 63 61 69 72 6f 2d 70 61 74 74 65 72 6e  nd cairo-pattern
2090: 2d 73 65 74 2d 66 69 6c 74 65 72 0a 20 20 63 61  -set-filter.  ca
20a0: 69 72 6f 2d 70 61 74 74 65 72 6e 2d 67 65 74 2d  iro-pattern-get-
20b0: 66 69 6c 74 65 72 20 63 61 69 72 6f 2d 70 61 74  filter cairo-pat
20c0: 74 65 72 6e 2d 67 65 74 2d 72 67 62 61 0a 20 20  tern-get-rgba.  
20d0: 63 61 69 72 6f 2d 70 61 74 74 65 72 6e 2d 67 65  cairo-pattern-ge
20e0: 74 2d 73 75 72 66 61 63 65 20 63 61 69 72 6f 2d  t-surface cairo-
20f0: 70 61 74 74 65 72 6e 2d 67 65 74 2d 63 6f 6c 6f  pattern-get-colo
2100: 72 2d 73 74 6f 70 2d 72 67 62 61 0a 20 20 63 61  r-stop-rgba.  ca
2110: 69 72 6f 2d 70 61 74 74 65 72 6e 2d 67 65 74 2d  iro-pattern-get-
2120: 63 6f 6c 6f 72 2d 73 74 6f 70 2d 63 6f 75 6e 74  color-stop-count
2130: 20 63 61 69 72 6f 2d 70 61 74 74 65 72 6e 2d 67   cairo-pattern-g
2140: 65 74 2d 6c 69 6e 65 61 72 2d 70 6f 69 6e 74 73  et-linear-points
2150: 0a 20 20 63 61 69 72 6f 2d 70 61 74 74 65 72 6e  .  cairo-pattern
2160: 2d 67 65 74 2d 72 61 64 69 61 6c 2d 63 69 72 63  -get-radial-circ
2170: 6c 65 73 20 63 61 69 72 6f 2d 6d 65 73 68 2d 70  les cairo-mesh-p
2180: 61 74 74 65 72 6e 2d 67 65 74 2d 70 61 74 63 68  attern-get-patch
2190: 2d 63 6f 75 6e 74 0a 20 20 63 61 69 72 6f 2d 6d  -count.  cairo-m
21a0: 65 73 68 2d 70 61 74 74 65 72 6e 2d 67 65 74 2d  esh-pattern-get-
21b0: 70 61 74 68 20 63 61 69 72 6f 2d 6d 65 73 68 2d  path cairo-mesh-
21c0: 70 61 74 74 65 72 6e 2d 67 65 74 2d 63 6f 72 6e  pattern-get-corn
21d0: 65 72 2d 63 6f 6c 6f 72 2d 72 67 62 61 0a 20 20  er-color-rgba.  
21e0: 63 61 69 72 6f 2d 6d 65 73 68 2d 70 61 74 74 65  cairo-mesh-patte
21f0: 72 6e 2d 67 65 74 2d 63 6f 6e 74 72 6f 6c 2d 70  rn-get-control-p
2200: 6f 69 6e 74 20 63 61 69 72 6f 2d 6d 61 74 72 69  oint cairo-matri
2210: 78 2d 69 6e 69 74 0a 20 20 63 61 69 72 6f 2d 6d  x-init.  cairo-m
2220: 61 74 72 69 78 2d 69 6e 69 74 2d 69 64 65 6e 74  atrix-init-ident
2230: 69 74 79 20 63 61 69 72 6f 2d 6d 61 74 72 69 78  ity cairo-matrix
2240: 2d 69 6e 69 74 2d 74 72 61 6e 73 6c 61 74 65 0a  -init-translate.
2250: 20 20 63 61 69 72 6f 2d 6d 61 74 72 69 78 2d 69    cairo-matrix-i
2260: 6e 69 74 2d 73 63 61 6c 65 20 63 61 69 72 6f 2d  nit-scale cairo-
2270: 6d 61 74 72 69 78 2d 69 6e 69 74 2d 72 6f 74 61  matrix-init-rota
2280: 74 65 0a 20 20 63 61 69 72 6f 2d 6d 61 74 72 69  te.  cairo-matri
2290: 78 2d 74 72 61 6e 73 6c 61 74 65 20 63 61 69 72  x-translate cair
22a0: 6f 2d 6d 61 74 72 69 78 2d 73 63 61 6c 65 20 63  o-matrix-scale c
22b0: 61 69 72 6f 2d 6d 61 74 72 69 78 2d 72 6f 74 61  airo-matrix-rota
22c0: 74 65 0a 20 20 63 61 69 72 6f 2d 6d 61 74 72 69  te.  cairo-matri
22d0: 78 2d 69 6e 76 65 72 74 20 63 61 69 72 6f 2d 6d  x-invert cairo-m
22e0: 61 74 72 69 78 2d 6d 75 6c 74 69 70 6c 79 0a 20  atrix-multiply. 
22f0: 20 63 61 69 72 6f 2d 6d 61 74 72 69 78 2d 74 72   cairo-matrix-tr
2300: 61 6e 73 66 6f 72 6d 2d 64 69 73 74 61 6e 63 65  ansform-distance
2310: 20 63 61 69 72 6f 2d 6d 61 74 72 69 78 2d 74 72   cairo-matrix-tr
2320: 61 6e 73 66 6f 72 6d 2d 70 6f 69 6e 74 0a 20 20  ansform-point.  
2330: 63 61 69 72 6f 2d 72 65 67 69 6f 6e 2d 63 72 65  cairo-region-cre
2340: 61 74 65 20 63 61 69 72 6f 2d 72 65 67 69 6f 6e  ate cairo-region
2350: 2d 63 72 65 61 74 65 2d 72 65 63 74 61 6e 67 6c  -create-rectangl
2360: 65 0a 20 20 63 61 69 72 6f 2d 72 65 67 69 6f 6e  e.  cairo-region
2370: 2d 63 72 65 61 74 65 2d 72 65 63 74 61 6e 67 6c  -create-rectangl
2380: 65 73 20 63 61 69 72 6f 2d 72 65 67 69 6f 6e 2d  es cairo-region-
2390: 63 6f 70 79 0a 09 09 09 09 09 3b 63 61 69 72 6f  copy......;cairo
23a0: 2d 72 65 67 69 6f 6e 2d 72 65 66 65 72 65 6e 63  -region-referenc
23b0: 65 20 63 61 69 72 6f 2d 72 65 67 69 6f 6e 2d 64  e cairo-region-d
23c0: 65 73 74 72 6f 79 20 0a 20 20 63 61 69 72 6f 2d  estroy .  cairo-
23d0: 72 65 67 69 6f 6e 2d 65 71 75 61 6c 0a 20 20 63  region-equal.  c
23e0: 61 69 72 6f 2d 72 65 67 69 6f 6e 2d 73 74 61 74  airo-region-stat
23f0: 75 73 20 63 61 69 72 6f 2d 72 65 67 69 6f 6e 2d  us cairo-region-
2400: 67 65 74 2d 65 78 74 65 6e 74 73 0a 20 20 63 61  get-extents.  ca
2410: 69 72 6f 2d 72 65 67 69 6f 6e 2d 6e 75 6d 2d 72  iro-region-num-r
2420: 65 63 74 61 6e 67 6c 65 73 20 63 61 69 72 6f 2d  ectangles cairo-
2430: 72 65 67 69 6f 6e 2d 67 65 74 2d 72 65 63 74 61  region-get-recta
2440: 6e 67 6c 65 0a 20 20 63 61 69 72 6f 2d 72 65 67  ngle.  cairo-reg
2450: 69 6f 6e 2d 69 73 2d 65 6d 70 74 79 20 63 61 69  ion-is-empty cai
2460: 72 6f 2d 72 65 67 69 6f 6e 2d 63 6f 6e 74 61 69  ro-region-contai
2470: 6e 73 2d 72 65 63 74 61 6e 67 6c 65 0a 20 20 63  ns-rectangle.  c
2480: 61 69 72 6f 2d 72 65 67 69 6f 6e 2d 63 6f 6e 74  airo-region-cont
2490: 61 69 6e 73 2d 70 6f 69 6e 74 20 63 61 69 72 6f  ains-point cairo
24a0: 2d 72 65 67 69 6f 6e 2d 74 72 61 6e 73 6c 61 74  -region-translat
24b0: 65 0a 20 20 63 61 69 72 6f 2d 72 65 67 69 6f 6e  e.  cairo-region
24c0: 2d 73 75 62 74 72 61 63 74 20 63 61 69 72 6f 2d  -subtract cairo-
24d0: 72 65 67 69 6f 6e 2d 73 75 62 74 72 61 63 74 2d  region-subtract-
24e0: 72 65 63 74 61 6e 67 6c 65 0a 20 20 63 61 69 72  rectangle.  cair
24f0: 6f 2d 72 65 67 69 6f 6e 2d 69 6e 74 65 72 73 65  o-region-interse
2500: 63 74 20 63 61 69 72 6f 2d 72 65 67 69 6f 6e 2d  ct cairo-region-
2510: 69 6e 74 65 72 73 65 63 74 2d 72 65 63 74 61 6e  intersect-rectan
2520: 67 6c 65 0a 20 20 63 61 69 72 6f 2d 72 65 67 69  gle.  cairo-regi
2530: 6f 6e 2d 75 6e 69 6f 6e 20 63 61 69 72 6f 2d 72  on-union cairo-r
2540: 65 67 69 6f 6e 2d 75 6e 69 6f 6e 2d 72 65 63 74  egion-union-rect
2550: 61 6e 67 6c 65 20 63 61 69 72 6f 2d 72 65 67 69  angle cairo-regi
2560: 6f 6e 2d 78 6f 72 0a 20 20 63 61 69 72 6f 2d 72  on-xor.  cairo-r
2570: 65 67 69 6f 6e 2d 78 6f 72 2d 72 65 63 74 61 6e  egion-xor-rectan
2580: 67 6c 65 20 63 61 69 72 6f 2d 64 65 62 75 67 2d  gle cairo-debug-
2590: 72 65 73 65 74 2d 73 74 61 74 69 63 2d 64 61 74  reset-static-dat
25a0: 61 0a 20 20 63 61 69 72 6f 2d 70 64 66 2d 73 75  a.  cairo-pdf-su
25b0: 72 66 61 63 65 2d 63 72 65 61 74 65 20 63 61 69  rface-create cai
25c0: 72 6f 2d 70 64 66 2d 73 75 72 66 61 63 65 2d 63  ro-pdf-surface-c
25d0: 72 65 61 74 65 2d 66 6f 72 2d 73 74 72 65 61 6d  reate-for-stream
25e0: 0a 20 20 63 61 69 72 6f 2d 70 64 66 2d 73 75 72  .  cairo-pdf-sur
25f0: 66 61 63 65 2d 72 65 73 74 72 69 63 74 2d 74 6f  face-restrict-to
2600: 2d 76 65 72 73 69 6f 6e 20 63 61 69 72 6f 2d 70  -version cairo-p
2610: 64 66 2d 67 65 74 2d 76 65 72 73 69 6f 6e 73 0a  df-get-versions.
2620: 20 20 63 61 69 72 6f 2d 70 64 66 2d 76 65 72 73    cairo-pdf-vers
2630: 69 6f 6e 2d 74 6f 2d 73 74 72 69 6e 67 20 63 61  ion-to-string ca
2640: 69 72 6f 2d 70 64 66 2d 73 75 72 66 61 63 65 2d  iro-pdf-surface-
2650: 73 65 74 2d 73 69 7a 65 0a 0a 20 20 63 61 69 72  set-size..  cair
2660: 6f 2d 73 65 74 2d 73 6f 75 72 63 65 2d 63 6f 6c  o-set-source-col
2670: 6f 72 0a 20 20 63 6f 6c 6f 72 2d 72 20 63 6f 6c  or.  color-r col
2680: 6f 72 2d 67 20 63 6f 6c 6f 72 2d 62 20 63 6f 6c  or-g color-b col
2690: 6f 72 2d 61 0a 20 20 6d 61 6b 65 2d 63 6f 6c 6f  or-a.  make-colo
26a0: 72 20 63 6f 6c 6f 72 3f 0a 20 20 0a 20 20 75 6e  r color?.  .  un
26b0: 73 69 67 6e 65 64 2d 38 2a 0a 20 20 63 61 69 72  signed-8*.  cair
26c0: 6f 2d 62 6f 6f 6c 2d 74 0a 20 20 63 61 69 72 6f  o-bool-t.  cairo
26d0: 2d 74 0a 20 20 63 61 69 72 6f 2d 73 75 72 66 61  -t.  cairo-surfa
26e0: 63 65 2d 74 0a 20 20 63 61 69 72 6f 2d 73 75 72  ce-t.  cairo-sur
26f0: 66 61 63 65 2d 74 2a 0a 20 20 63 61 69 72 6f 2d  face-t*.  cairo-
2700: 64 65 76 69 63 65 2d 74 0a 20 20 63 61 69 72 6f  device-t.  cairo
2710: 2d 6d 61 74 72 69 78 2d 74 0a 20 20 63 61 69 72  -matrix-t.  cair
2720: 6f 2d 70 61 74 74 65 72 6e 2d 74 0a 20 20 63 61  o-pattern-t.  ca
2730: 69 72 6f 2d 64 65 73 74 72 6f 79 2d 66 75 6e 63  iro-destroy-func
2740: 2d 74 0a 20 20 63 61 69 72 6f 2d 75 73 65 72 2d  -t.  cairo-user-
2750: 64 61 74 61 2d 6b 65 79 2d 74 0a 20 20 63 61 69  data-key-t.  cai
2760: 72 6f 2d 73 74 61 74 75 73 2d 74 0a 20 20 63 61  ro-status-t.  ca
2770: 69 72 6f 2d 63 6f 6e 74 65 6e 74 2d 74 0a 20 20  iro-content-t.  
2780: 63 61 69 72 6f 2d 66 6f 72 6d 61 74 2d 74 0a 20  cairo-format-t. 
2790: 20 63 61 69 72 6f 2d 77 72 69 74 65 2d 66 75 6e   cairo-write-fun
27a0: 63 2d 74 0a 20 20 63 61 69 72 6f 2d 72 65 61 64  c-t.  cairo-read
27b0: 2d 66 75 6e 63 2d 74 0a 20 20 63 61 69 72 6f 2d  -func-t.  cairo-
27c0: 72 65 63 74 61 6e 67 6c 65 2d 69 6e 74 2d 74 0a  rectangle-int-t.
27d0: 20 20 63 61 69 72 6f 2d 6f 70 65 72 61 74 6f 72    cairo-operator
27e0: 2d 74 0a 20 20 63 61 69 72 6f 2d 61 6e 74 69 61  -t.  cairo-antia
27f0: 6c 69 61 73 2d 74 0a 20 20 63 61 69 72 6f 2d 66  lias-t.  cairo-f
2800: 69 6c 6c 2d 72 75 6c 65 2d 74 0a 20 20 63 61 69  ill-rule-t.  cai
2810: 72 6f 2d 6c 69 6e 65 2d 63 61 70 2d 74 0a 20 20  ro-line-cap-t.  
2820: 63 61 69 72 6f 2d 6c 69 6e 65 2d 6a 6f 69 6e 2d  cairo-line-join-
2830: 74 0a 20 20 64 6f 75 62 6c 65 2d 61 72 72 61 79  t.  double-array
2840: 0a 20 20 63 61 69 72 6f 2d 72 65 63 74 61 6e 67  .  cairo-rectang
2850: 6c 65 2d 74 0a 20 20 63 61 69 72 6f 2d 72 65 63  le-t.  cairo-rec
2860: 74 61 6e 67 6c 65 2d 6c 69 73 74 2d 74 0a 20 20  tangle-list-t.  
2870: 63 61 69 72 6f 2d 73 63 61 6c 65 64 2d 66 6f 6e  cairo-scaled-fon
2880: 74 2d 74 0a 20 20 63 61 69 72 6f 2d 66 6f 6e 74  t-t.  cairo-font
2890: 2d 66 61 63 65 2d 74 0a 20 20 63 61 69 72 6f 2d  -face-t.  cairo-
28a0: 67 6c 79 70 68 2d 74 0a 20 20 63 61 69 72 6f 2d  glyph-t.  cairo-
28b0: 67 6c 79 70 68 2d 74 2a 0a 20 20 63 61 69 72 6f  glyph-t*.  cairo
28c0: 2d 74 65 78 74 2d 63 6c 75 73 74 65 72 2d 74 0a  -text-cluster-t.
28d0: 20 20 63 61 69 72 6f 2d 74 65 78 74 2d 63 6c 75    cairo-text-clu
28e0: 73 74 65 72 2d 74 2a 0a 20 20 63 61 69 72 6f 2d  ster-t*.  cairo-
28f0: 74 65 78 74 2d 63 6c 75 73 74 65 72 2d 66 6c 61  text-cluster-fla
2900: 67 73 2d 74 0a 20 20 63 61 69 72 6f 2d 74 65 78  gs-t.  cairo-tex
2910: 74 2d 65 78 74 65 6e 74 73 2d 74 0a 20 20 63 61  t-extents-t.  ca
2920: 69 72 6f 2d 66 6f 6e 74 2d 65 78 74 65 6e 74 73  iro-font-extents
2930: 2d 74 0a 20 20 63 61 69 72 6f 2d 66 6f 6e 74 2d  -t.  cairo-font-
2940: 73 6c 61 6e 74 2d 74 0a 20 20 63 61 69 72 6f 2d  slant-t.  cairo-
2950: 66 6f 6e 74 2d 77 65 69 67 68 74 2d 74 0a 20 20  font-weight-t.  
2960: 63 61 69 72 6f 2d 73 75 62 70 69 78 65 6c 2d 6f  cairo-subpixel-o
2970: 72 64 65 72 2d 74 0a 20 20 63 61 69 72 6f 2d 68  rder-t.  cairo-h
2980: 69 6e 74 2d 73 74 79 6c 65 2d 74 0a 20 20 63 61  int-style-t.  ca
2990: 69 72 6f 2d 68 69 6e 74 2d 6d 65 74 72 69 63 73  iro-hint-metrics
29a0: 2d 74 0a 20 20 63 61 69 72 6f 2d 66 6f 6e 74 2d  -t.  cairo-font-
29b0: 6f 70 74 69 6f 6e 73 2d 74 0a 20 20 63 61 69 72  options-t.  cair
29c0: 6f 2d 66 6f 6e 74 2d 74 79 70 65 2d 74 0a 20 20  o-font-type-t.  
29d0: 63 61 69 72 6f 2d 75 73 65 72 2d 73 63 61 6c 65  cairo-user-scale
29e0: 64 2d 66 6f 6e 74 2d 69 6e 69 74 2d 66 75 6e 63  d-font-init-func
29f0: 2d 74 0a 20 20 63 61 69 72 6f 2d 75 73 65 72 2d  -t.  cairo-user-
2a00: 73 63 61 6c 65 64 2d 66 6f 6e 74 2d 72 65 6e 64  scaled-font-rend
2a10: 65 72 2d 67 6c 79 70 68 2d 66 75 6e 63 2d 74 0a  er-glyph-func-t.
2a20: 20 20 63 61 69 72 6f 2d 75 73 65 72 2d 73 63 61    cairo-user-sca
2a30: 6c 65 64 2d 66 6f 6e 74 2d 74 65 78 74 2d 74 6f  led-font-text-to
2a40: 2d 67 6c 79 70 68 73 2d 66 75 6e 63 2d 74 0a 20  -glyphs-func-t. 
2a50: 20 63 61 69 72 6f 2d 75 73 65 72 2d 73 63 61 6c   cairo-user-scal
2a60: 65 64 2d 66 6f 6e 74 2d 75 6e 69 63 6f 64 65 2d  ed-font-unicode-
2a70: 74 6f 2d 67 6c 79 70 68 2d 66 75 6e 63 2d 74 0a  to-glyph-func-t.
2a80: 20 20 63 61 69 72 6f 2d 70 61 74 68 2d 64 61 74    cairo-path-dat
2a90: 61 2d 74 79 70 65 2d 74 0a 20 20 63 61 69 72 6f  a-type-t.  cairo
2aa0: 2d 70 61 74 68 2d 64 61 74 61 2d 74 0a 20 20 63  -path-data-t.  c
2ab0: 61 69 72 6f 2d 70 61 74 68 2d 74 0a 20 20 63 61  airo-path-t.  ca
2ac0: 69 72 6f 2d 64 65 76 69 63 65 2d 74 79 70 65 2d  iro-device-type-
2ad0: 74 0a 20 20 63 61 69 72 6f 2d 73 75 72 66 61 63  t.  cairo-surfac
2ae0: 65 2d 6f 62 73 65 72 76 65 72 2d 6d 6f 64 65 2d  e-observer-mode-
2af0: 74 0a 20 20 63 61 69 72 6f 2d 73 75 72 66 61 63  t.  cairo-surfac
2b00: 65 2d 6f 62 73 65 72 76 65 72 2d 63 61 6c 6c 62  e-observer-callb
2b10: 61 63 6b 2d 74 0a 20 20 63 61 69 72 6f 2d 73 75  ack-t.  cairo-su
2b20: 72 66 61 63 65 2d 74 79 70 65 2d 74 0a 20 20 63  rface-type-t.  c
2b30: 61 69 72 6f 2d 72 61 73 74 65 72 2d 73 6f 75 72  airo-raster-sour
2b40: 63 65 2d 61 63 71 75 69 72 65 2d 66 75 6e 63 2d  ce-acquire-func-
2b50: 74 0a 20 20 63 61 69 72 6f 2d 72 61 73 74 65 72  t.  cairo-raster
2b60: 2d 73 6f 75 72 63 65 2d 61 63 71 75 69 72 65 2d  -source-acquire-
2b70: 66 75 6e 63 2d 74 2a 0a 20 20 63 61 69 72 6f 2d  func-t*.  cairo-
2b80: 72 61 73 74 65 72 2d 73 6f 75 72 63 65 2d 72 65  raster-source-re
2b90: 6c 65 61 73 65 2d 66 75 6e 63 2d 74 0a 20 20 63  lease-func-t.  c
2ba0: 61 69 72 6f 2d 72 61 73 74 65 72 2d 73 6f 75 72  airo-raster-sour
2bb0: 63 65 2d 72 65 6c 65 61 73 65 2d 66 75 6e 63 2d  ce-release-func-
2bc0: 74 2a 0a 20 20 63 61 69 72 6f 2d 72 61 73 74 65  t*.  cairo-raste
2bd0: 72 2d 73 6f 75 72 63 65 2d 73 6e 61 70 73 68 6f  r-source-snapsho
2be0: 74 2d 66 75 6e 63 2d 74 0a 20 20 63 61 69 72 6f  t-func-t.  cairo
2bf0: 2d 72 61 73 74 65 72 2d 73 6f 75 72 63 65 2d 63  -raster-source-c
2c00: 6f 70 79 2d 66 75 6e 63 2d 74 0a 20 20 63 61 69  opy-func-t.  cai
2c10: 72 6f 2d 72 61 73 74 65 72 2d 73 6f 75 72 63 65  ro-raster-source
2c20: 2d 66 69 6e 69 73 68 2d 66 75 6e 63 2d 74 0a 20  -finish-func-t. 
2c30: 20 63 61 69 72 6f 2d 70 61 74 74 65 72 6e 2d 74   cairo-pattern-t
2c40: 79 70 65 2d 74 0a 20 20 63 61 69 72 6f 2d 65 78  ype-t.  cairo-ex
2c50: 74 65 6e 64 2d 74 0a 20 20 63 61 69 72 6f 2d 66  tend-t.  cairo-f
2c60: 69 6c 74 65 72 2d 74 0a 20 20 63 61 69 72 6f 2d  ilter-t.  cairo-
2c70: 72 65 67 69 6f 6e 2d 74 0a 20 20 63 61 69 72 6f  region-t.  cairo
2c80: 2d 72 65 67 69 6f 6e 2d 6f 76 65 72 6c 61 70 2d  -region-overlap-
2c90: 74 0a 20 20 63 61 69 72 6f 2d 70 64 66 2d 76 65  t.  cairo-pdf-ve
2ca0: 72 73 69 6f 6e 2d 74 0a 20 20 63 61 69 72 6f 2d  rsion-t.  cairo-
2cb0: 70 64 66 2d 76 65 72 73 69 6f 6e 2d 74 2a 0a 09  pdf-version-t*..
2cc0: 09 09 09 09 3b 65 6e 75 6d 73 0a 20 20 63 61 69  ....;enums.  cai
2cd0: 72 6f 2d 73 74 61 74 75 73 2d 65 6e 75 6d 0a 20  ro-status-enum. 
2ce0: 20 63 61 69 72 6f 2d 66 6f 72 6d 61 74 0a 20 20   cairo-format.  
2cf0: 63 61 69 72 6f 2d 6f 70 65 72 61 74 6f 72 0a 20  cairo-operator. 
2d00: 20 63 61 69 72 6f 2d 61 6e 74 69 61 6c 69 61 73   cairo-antialias
2d10: 0a 20 20 63 61 69 72 6f 2d 66 69 6c 6c 2d 72 75  .  cairo-fill-ru
2d20: 6c 65 0a 20 20 63 61 69 72 6f 2d 6c 69 6e 65 2d  le.  cairo-line-
2d30: 63 61 70 0a 20 20 63 61 69 72 6f 2d 6c 69 6e 65  cap.  cairo-line
2d40: 2d 6a 6f 69 6e 0a 20 20 63 61 69 72 6f 2d 74 65  -join.  cairo-te
2d50: 78 74 2d 63 6c 75 73 74 65 72 2d 66 6c 61 67 0a  xt-cluster-flag.
2d60: 20 20 63 61 69 72 6f 2d 66 6f 6e 74 2d 73 6c 61    cairo-font-sla
2d70: 6e 74 0a 20 20 63 61 69 72 6f 2d 66 6f 6e 74 2d  nt.  cairo-font-
2d80: 77 65 69 67 68 74 0a 20 20 63 61 69 72 6f 2d 73  weight.  cairo-s
2d90: 75 62 70 69 78 65 6c 2d 6f 72 64 65 72 0a 20 20  ubpixel-order.  
2da0: 63 61 69 72 6f 2d 68 69 6e 74 2d 73 74 79 6c 65  cairo-hint-style
2db0: 0a 20 20 63 61 69 72 6f 2d 68 69 6e 74 2d 6d 65  .  cairo-hint-me
2dc0: 74 72 69 63 73 0a 20 20 63 61 69 72 6f 2d 66 6f  trics.  cairo-fo
2dd0: 6e 74 2d 74 79 70 65 0a 20 20 63 61 69 72 6f 2d  nt-type.  cairo-
2de0: 70 61 74 68 2d 64 61 74 61 2d 74 79 70 65 0a 20  path-data-type. 
2df0: 20 63 61 69 72 6f 2d 64 65 76 69 63 65 2d 74 79   cairo-device-ty
2e00: 70 65 0a 20 20 63 61 69 72 6f 2d 73 75 72 66 61  pe.  cairo-surfa
2e10: 63 65 2d 6f 62 73 65 72 76 65 72 2d 6d 6f 64 65  ce-observer-mode
2e20: 0a 20 20 63 61 69 72 6f 2d 73 75 72 66 61 63 65  .  cairo-surface
2e30: 2d 74 79 70 65 0a 20 20 63 61 69 72 6f 2d 70 61  -type.  cairo-pa
2e40: 74 74 65 72 6e 2d 74 79 70 65 0a 20 20 63 61 69  ttern-type.  cai
2e50: 72 6f 2d 65 78 74 65 6e 64 0a 20 20 63 61 69 72  ro-extend.  cair
2e60: 6f 2d 66 69 6c 74 65 72 0a 20 20 63 61 69 72 6f  o-filter.  cairo
2e70: 2d 72 65 67 69 6f 6e 2d 6f 76 65 72 6c 61 70 0a  -region-overlap.
2e80: 20 20 3b 3b 20 41 4c 4c 4f 43 41 54 4f 52 53 09    ;; ALLOCATORS.
2e90: 20 0a 20 20 63 61 69 72 6f 2d 72 65 63 74 61 6e   .  cairo-rectan
2ea0: 67 6c 65 2d 63 72 65 61 74 65 0a 20 20 63 61 69  gle-create.  cai
2eb0: 72 6f 2d 72 65 63 74 61 6e 67 6c 65 2d 6c 69 73  ro-rectangle-lis
2ec0: 74 2d 63 72 65 61 74 65 0a 20 20 63 61 69 72 6f  t-create.  cairo
2ed0: 2d 67 6c 79 70 68 2d 63 72 65 61 74 65 0a 20 20  -glyph-create.  
2ee0: 63 61 69 72 6f 2d 67 6c 79 70 68 2a 2d 63 72 65  cairo-glyph*-cre
2ef0: 61 74 65 0a 20 20 63 61 69 72 6f 2d 74 65 78 74  ate.  cairo-text
2f00: 2d 63 6c 75 73 74 65 72 2d 63 72 65 61 74 65 0a  -cluster-create.
2f10: 20 20 63 61 69 72 6f 2d 74 65 78 74 2d 63 6c 75    cairo-text-clu
2f20: 73 74 65 72 2a 2d 63 72 65 61 74 65 0a 20 20 63  ster*-create.  c
2f30: 61 69 72 6f 2d 74 65 78 74 2d 65 78 74 65 6e 74  airo-text-extent
2f40: 73 2d 63 72 65 61 74 65 0a 20 20 63 61 69 72 6f  s-create.  cairo
2f50: 2d 74 65 78 74 2d 63 6c 75 73 74 65 72 2d 66 6c  -text-cluster-fl
2f60: 61 67 73 2d 63 72 65 61 74 65 0a 20 20 63 61 69  ags-create.  cai
2f70: 72 6f 2d 66 6f 6e 74 2d 65 78 74 65 6e 74 73 2d  ro-font-extents-
2f80: 63 72 65 61 74 65 0a 20 20 63 61 69 72 6f 2d 70  create.  cairo-p
2f90: 61 74 68 2d 63 72 65 61 74 65 0a 20 20 64 6f 75  ath-create.  dou
2fa0: 62 6c 65 2d 61 72 72 61 79 2d 63 72 65 61 74 65  ble-array-create
2fb0: 20 0a 20 20 64 6f 75 62 6c 65 2d 61 72 72 61 79   .  double-array
2fc0: 2d 63 72 65 61 74 65 2d 66 72 6f 6d 2d 76 65 63  -create-from-vec
2fd0: 74 6f 72 0a 20 20 63 61 69 72 6f 2d 6d 61 74 72  tor.  cairo-matr
2fe0: 69 78 2d 63 72 65 61 74 65 0a 20 20 63 61 69 72  ix-create.  cair
2ff0: 6f 2d 69 6e 74 2d 63 72 65 61 74 65 0a 20 20 63  o-int-create.  c
3000: 61 69 72 6f 2d 76 6f 69 64 2a 2d 63 72 65 61 74  airo-void*-creat
3010: 65 0a 20 20 63 61 69 72 6f 2d 67 75 61 72 64 69  e.  cairo-guardi
3020: 61 6e 0a 20 20 63 61 69 72 6f 2d 66 72 65 65 2d  an.  cairo-free-
3030: 67 61 72 62 61 67 65 0a 20 20 63 61 69 72 6f 2d  garbage.  cairo-
3040: 67 75 61 72 64 2d 70 6f 69 6e 74 65 72 0a 20 20  guard-pointer.  
3050: 77 69 74 68 2d 63 61 69 72 6f 0a 20 20 6c 65 74  with-cairo.  let
3060: 2d 73 74 72 75 63 74 0a 20 20 29 0a 20 28 69 6d  -struct.  ). (im
3070: 70 6f 72 74 20 28 63 68 65 7a 73 63 68 65 6d 65  port (chezscheme
3080: 29 20 28 66 66 69 2d 75 74 69 6c 73 29 29 0a 20  ) (ffi-utils)). 
3090: 0a 20 28 69 6e 63 6c 75 64 65 20 22 63 61 69 72  . (include "cair
30a0: 6f 2f 66 66 69 2d 75 74 69 6c 73 2e 73 73 22 29  o/ffi-utils.ss")
30b0: 0a 0a 20 28 64 65 66 69 6e 65 20 28 63 61 69 72  .. (define (cair
30c0: 6f 2d 6c 69 62 72 61 72 79 2d 69 6e 69 74 20 2e  o-library-init .
30d0: 20 74 29 20 28 6c 6f 61 64 2d 73 68 61 72 65 64   t) (load-shared
30e0: 2d 6f 62 6a 65 63 74 20 28 69 66 20 28 6e 75 6c  -object (if (nul
30f0: 6c 3f 20 74 29 20 22 6c 69 62 63 61 69 72 6f 2e  l? t) "libcairo.
3100: 73 6f 2e 32 22 20 28 63 61 72 20 74 29 29 29 29  so.2" (car t))))
3110: 0a 0a 20 28 69 6e 63 6c 75 64 65 20 22 63 61 69  .. (include "cai
3120: 72 6f 2f 74 79 70 65 73 2e 73 73 22 29 0a 0a 20  ro/types.ss").. 
3130: 28 64 65 66 69 6e 65 20 63 61 69 72 6f 2d 67 75  (define cairo-gu
3140: 61 72 64 69 61 6e 20 28 6d 61 6b 65 2d 67 75 61  ardian (make-gua
3150: 72 64 69 61 6e 29 29 0a 20 28 64 65 66 69 6e 65  rdian)). (define
3160: 20 28 63 61 69 72 6f 2d 67 75 61 72 64 2d 70 6f   (cairo-guard-po
3170: 69 6e 74 65 72 20 6f 62 6a 29 20 0a 20 20 20 28  inter obj) .   (
3180: 63 61 69 72 6f 2d 66 72 65 65 2d 67 61 72 62 61  cairo-free-garba
3190: 67 65 29 20 0a 20 20 20 28 63 61 69 72 6f 2d 67  ge) .   (cairo-g
31a0: 75 61 72 64 69 61 6e 20 6f 62 6a 29 0a 20 20 20  uardian obj).   
31b0: 6f 62 6a 29 0a 20 28 69 6e 63 6c 75 64 65 20 22  obj). (include "
31c0: 63 61 69 72 6f 2f 63 61 69 72 6f 2d 66 75 6e 63  cairo/cairo-func
31d0: 74 69 6f 6e 73 2e 73 73 22 29 0a 20 28 64 65 66  tions.ss"). (def
31e0: 69 6e 65 20 28 63 61 69 72 6f 2d 66 72 65 65 2d  ine (cairo-free-
31f0: 67 61 72 62 61 67 65 29 0a 20 20 20 28 6c 65 74  garbage).   (let
3200: 20 6c 6f 6f 70 20 28 5b 70 20 28 63 61 69 72 6f   loop ([p (cairo
3210: 2d 67 75 61 72 64 69 61 6e 29 5d 29 0a 20 20 20  -guardian)]).   
3220: 20 20 28 77 68 65 6e 20 70 0a 09 20 20 20 28 77    (when p..   (w
3230: 68 65 6e 20 28 66 74 79 70 65 2d 70 6f 69 6e 74  hen (ftype-point
3240: 65 72 3f 20 70 29 0a 09 09 20 3b 28 70 72 69 6e  er? p)... ;(prin
3250: 74 66 20 22 63 61 69 72 6f 2d 66 72 65 65 2d 67  tf "cairo-free-g
3260: 61 72 62 61 67 65 3a 20 66 72 65 65 69 6e 67 20  arbage: freeing 
3270: 6d 65 6d 6f 72 79 20 61 74 20 7e 78 5c 6e 22 20  memory at ~x\n" 
3280: 70 29 0a 09 09 20 3b 3b 5b 28 66 74 79 70 65 2d  p)... ;;[(ftype-
3290: 70 6f 69 6e 74 65 72 3f 20 75 73 62 2d 64 65 76  pointer? usb-dev
32a0: 69 63 65 2a 2d 61 72 72 61 79 20 70 29 0a 09 09  ice*-array p)...
32b0: 20 28 63 6f 6e 64 20 0a 09 09 20 20 5b 28 66 74   (cond ...  [(ft
32c0: 79 70 65 2d 70 6f 69 6e 74 65 72 3f 20 63 61 69  ype-pointer? cai
32d0: 72 6f 2d 74 20 70 29 20 28 63 61 69 72 6f 2d 64  ro-t p) (cairo-d
32e0: 65 73 74 72 6f 79 20 70 29 5d 0a 09 09 20 20 5b  estroy p)]...  [
32f0: 28 66 74 79 70 65 2d 70 6f 69 6e 74 65 72 3f 20  (ftype-pointer? 
3300: 63 61 69 72 6f 2d 73 75 72 66 61 63 65 2d 74 20  cairo-surface-t 
3310: 70 29 20 28 63 61 69 72 6f 2d 73 75 72 66 61 63  p) (cairo-surfac
3320: 65 2d 64 65 73 74 72 6f 79 20 70 29 5d 0a 09 09  e-destroy p)]...
3330: 20 20 5b 28 66 74 79 70 65 2d 70 6f 69 6e 74 65    [(ftype-pointe
3340: 72 3f 20 63 61 69 72 6f 2d 70 61 74 74 65 72 6e  r? cairo-pattern
3350: 2d 74 20 70 29 20 28 63 61 69 72 6f 2d 70 61 74  -t p) (cairo-pat
3360: 74 65 72 6e 2d 64 65 73 74 72 6f 79 20 70 29 5d  tern-destroy p)]
3370: 0a 09 09 20 20 5b 28 66 74 79 70 65 2d 70 6f 69  ...  [(ftype-poi
3380: 6e 74 65 72 3f 20 63 61 69 72 6f 2d 72 65 67 69  nter? cairo-regi
3390: 6f 6e 2d 74 20 70 29 20 28 76 6f 69 64 29 5d 3b  on-t p) (void)];
33a0: 20 28 63 61 69 72 6f 2d 72 65 67 69 6f 6e 2d 64   (cairo-region-d
33b0: 65 73 74 72 6f 79 20 70 29 5d 0a 09 09 20 20 5b  estroy p)]...  [
33c0: 28 66 74 79 70 65 2d 70 6f 69 6e 74 65 72 3f 20  (ftype-pointer? 
33d0: 63 61 69 72 6f 2d 72 65 63 74 61 6e 67 6c 65 2d  cairo-rectangle-
33e0: 6c 69 73 74 2d 74 20 70 29 20 28 63 61 69 72 6f  list-t p) (cairo
33f0: 2d 72 65 63 74 61 6e 67 6c 65 2d 6c 69 73 74 2d  -rectangle-list-
3400: 64 65 73 74 72 6f 79 20 70 29 5d 0a 09 09 20 20  destroy p)]...  
3410: 5b 28 66 74 79 70 65 2d 70 6f 69 6e 74 65 72 3f  [(ftype-pointer?
3420: 20 63 61 69 72 6f 2d 66 6f 6e 74 2d 6f 70 74 69   cairo-font-opti
3430: 6f 6e 73 2d 74 20 70 29 20 28 63 61 69 72 6f 2d  ons-t p) (cairo-
3440: 66 6f 6e 74 2d 6f 70 74 69 6f 6e 73 2d 64 65 73  font-options-des
3450: 74 72 6f 79 20 70 29 5d 0a 09 09 20 20 5b 28 66  troy p)]...  [(f
3460: 74 79 70 65 2d 70 6f 69 6e 74 65 72 3f 20 63 61  type-pointer? ca
3470: 69 72 6f 2d 66 6f 6e 74 2d 66 61 63 65 2d 74 20  iro-font-face-t 
3480: 70 29 20 28 63 61 69 72 6f 2d 66 6f 6e 74 2d 66  p) (cairo-font-f
3490: 61 63 65 2d 64 65 73 74 72 6f 79 20 70 29 5d 0a  ace-destroy p)].
34a0: 09 09 20 20 5b 28 66 74 79 70 65 2d 70 6f 69 6e  ..  [(ftype-poin
34b0: 74 65 72 3f 20 63 61 69 72 6f 2d 73 63 61 6c 65  ter? cairo-scale
34c0: 64 2d 66 6f 6e 74 2d 74 20 70 29 20 28 63 61 69  d-font-t p) (cai
34d0: 72 6f 2d 73 63 61 6c 65 64 2d 66 6f 6e 74 2d 64  ro-scaled-font-d
34e0: 65 73 74 72 6f 79 20 70 29 5d 0a 09 09 20 20 5b  estroy p)]...  [
34f0: 28 66 74 79 70 65 2d 70 6f 69 6e 74 65 72 3f 20  (ftype-pointer? 
3500: 63 61 69 72 6f 2d 70 61 74 68 2d 74 20 70 29 20  cairo-path-t p) 
3510: 28 63 61 69 72 6f 2d 70 61 74 68 2d 64 65 73 74  (cairo-path-dest
3520: 72 6f 79 20 70 29 5d 0a 09 09 20 20 5b 28 66 74  roy p)]...  [(ft
3530: 79 70 65 2d 70 6f 69 6e 74 65 72 3f 20 63 61 69  ype-pointer? cai
3540: 72 6f 2d 64 65 76 69 63 65 2d 74 20 70 29 20 28  ro-device-t p) (
3550: 63 61 69 72 6f 2d 64 65 76 69 63 65 2d 64 65 73  cairo-device-des
3560: 74 72 6f 79 20 70 29 5d 0a 09 09 20 20 5b 28 66  troy p)]...  [(f
3570: 74 79 70 65 2d 70 6f 69 6e 74 65 72 3f 20 63 61  type-pointer? ca
3580: 69 72 6f 2d 67 6c 79 70 68 2d 74 20 70 29 20 28  iro-glyph-t p) (
3590: 63 61 69 72 6f 2d 67 6c 79 70 68 2d 66 72 65 65  cairo-glyph-free
35a0: 20 70 29 5d 0a 09 09 20 20 5b 28 66 74 79 70 65   p)]...  [(ftype
35b0: 2d 70 6f 69 6e 74 65 72 3f 20 63 61 69 72 6f 2d  -pointer? cairo-
35c0: 74 65 78 74 2d 63 6c 75 73 74 65 72 2d 74 20 70  text-cluster-t p
35d0: 29 20 28 63 61 69 72 6f 2d 74 65 78 74 2d 63 6c  ) (cairo-text-cl
35e0: 75 73 74 65 72 2d 66 72 65 65 20 70 29 5d 0a 09  uster-free p)]..
35f0: 09 20 20 5b 65 6c 73 65 0a 09 09 20 20 20 28 66  .  [else...   (f
3600: 6f 72 65 69 67 6e 2d 66 72 65 65 20 28 66 74 79  oreign-free (fty
3610: 70 65 2d 70 6f 69 6e 74 65 72 2d 61 64 64 72 65  pe-pointer-addre
3620: 73 73 20 70 29 29 5d 0a 09 09 20 20 29 29 0a 09  ss p))]...  ))..
3630: 20 20 20 28 6c 6f 6f 70 20 28 63 61 69 72 6f 2d     (loop (cairo-
3640: 67 75 61 72 64 69 61 6e 29 29 29 29 29 0a 0a 0a  guardian)))))...
3650: 0a 28 69 6e 63 6c 75 64 65 20 22 63 61 69 72 6f  .(include "cairo
3660: 2f 63 61 69 72 6f 2d 70 64 66 2d 66 75 6e 63 74  /cairo-pdf-funct
3670: 69 6f 6e 73 2e 73 73 22 29 0a 0a 28 64 65 66 69  ions.ss")..(defi
3680: 6e 65 2d 72 65 63 6f 72 64 2d 74 79 70 65 20 28  ne-record-type (
3690: 63 6f 6c 6f 72 20 6d 6b 63 6f 6c 6f 72 20 63 6f  color mkcolor co
36a0: 6c 6f 72 3f 29 20 0a 20 20 28 66 69 65 6c 64 73  lor?) .  (fields
36b0: 20 72 20 67 20 62 20 61 29 29 0a 0a 28 64 65 66   r g b a))..(def
36c0: 69 6e 65 20 6d 61 6b 65 2d 63 6f 6c 6f 72 0a 20  ine make-color. 
36d0: 20 28 63 61 73 65 2d 6c 61 6d 62 64 61 0a 20 20   (case-lambda.  
36e0: 20 5b 28 72 20 67 20 62 29 20 28 6d 6b 63 6f 6c   [(r g b) (mkcol
36f0: 6f 72 20 72 20 67 20 62 20 31 2e 30 29 5d 0a 20  or r g b 1.0)]. 
3700: 20 20 5b 28 72 20 67 20 62 20 61 29 20 28 6d 6b    [(r g b a) (mk
3710: 63 6f 6c 6f 72 20 72 20 67 20 62 20 61 29 5d 29  color r g b a)])
3720: 29 0a 20 20 0a 28 64 65 66 69 6e 65 20 28 63 61  ).  .(define (ca
3730: 69 72 6f 2d 73 65 74 2d 73 6f 75 72 63 65 2d 63  iro-set-source-c
3740: 6f 6c 6f 72 20 63 74 78 20 63 29 0a 20 20 28 63  olor ctx c).  (c
3750: 61 69 72 6f 2d 73 65 74 2d 73 6f 75 72 63 65 2d  airo-set-source-
3760: 72 67 62 61 20 63 74 78 20 28 63 6f 6c 6f 72 2d  rgba ctx (color-
3770: 72 20 63 29 20 28 63 6f 6c 6f 72 2d 67 20 63 29  r c) (color-g c)
3780: 20 28 63 6f 6c 6f 72 2d 62 20 63 29 20 28 63 6f   (color-b c) (co
3790: 6c 6f 72 2d 61 20 63 29 29 29 0a 0a 29 20 3b 20  lor-a c)))..) ; 
37a0: 6c 69 62 72 61 72 79 20 63 61 69 72 6f 0a        library cairo.