This file is indexed.

/usr/share/gtk-doc/html/clutter-cookbook/clutter-cookbook.devhelp is in libclutter-1.0-doc 1.20.0-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<book xmlns="http://www.devhelp.net/book" title="The Clutter Cookbook" link="index.html" author="Emmanuele BassiElliot Smith" name="clutter-cookbook">
  <chapters>
    <sub name="Preface" link="introduction.html">
      <sub name="About Clutter" link="introduction.html#idp72792352"/>
      <sub name="About this document" link="ch01s02.html">
        <sub name="Compiling the examples" link="ch01s02.html#idp69904416"/>
      </sub>
      <sub name="Acknowledgments" link="ch01s03.html">
        <sub name="Acknowledgments from Emmanuele" link="ch01s03.html#idp70252768"/>
        <sub name="Acknowledgements from Elliot" link="ch01s03.html#idp71925776"/>
      </sub>
      <sub name="Where to get Clutter" link="ch01s04.html"/>
    </sub>
    <sub name="Actors" link="actors.html">
      <sub name="Introduction" link="actors.html#actors-introduction"/>
      <sub name="Implementing a simple custom actor" link="actors-composite.html">
        <sub name="Problem" link="actors-composite.html#actors-composite-problem"/>
        <sub name="Solution" link="actors-composite.html#actors-composite-solution"/>
        <sub name="Discussion" link="actors-composite.html#actors-composite-discussion">
          <sub name="Implementing ClutterActor virtual functions" link="actors-composite.html#actors-composite-discussion-clutter-virtual-functions"/>
        </sub>
      </sub>
      <sub name="Knowing when an actor's position or size changes" link="actors-allocation-notify.html">
        <sub name="Problem" link="actors-allocation-notify.html#idp70597568"/>
        <sub name="Solution" link="actors-allocation-notify.html#idp70599056"/>
        <sub name="Discussion" link="actors-allocation-notify.html#idp70608304"/>
      </sub>
      <sub name="Overriding the paint sequence" link="actors-paint-wrappers.html">
        <sub name="Problem" link="actors-paint-wrappers.html#idp70620944"/>
        <sub name="Solution" link="actors-paint-wrappers.html#idp70622256"/>
        <sub name="Discussion" link="actors-paint-wrappers.html#idp70629920"/>
      </sub>
      <sub name="Making an actor transparent by changing its opacity" link="actors-opacity.html">
        <sub name="Problem" link="actors-opacity.html#idp70638160"/>
        <sub name="Solution" link="actors-opacity.html#idp70639472"/>
        <sub name="Discussion" link="actors-opacity.html#idp70643328">
          <sub name="Container and color opacity" link="actors-opacity.html#idp70657072"/>
          <sub name="Depth and depth order" link="actors-opacity.html#idp70675104"/>
        </sub>
      </sub>
      <sub name="Creating an actor with a non-rectangular shape" link="actors-non-rectangular.html">
        <sub name="Problem" link="actors-non-rectangular.html#idp70690464"/>
        <sub name="Solution" link="actors-non-rectangular.html#idp70692336"/>
        <sub name="Discussion" link="actors-non-rectangular.html#idp70701056">
          <sub name="Cogl path coordinates" link="actors-non-rectangular.html#idp70704400"/>
          <sub name="Other Cogl primitives" link="actors-non-rectangular.html#idp70717152"/>
          <sub name="Using ClutterPath to store the path" link="actors-non-rectangular.html#idp70730592"/>
        </sub>
      </sub>
    </sub>
    <sub name="Events" link="events.html">
      <sub name="Introduction" link="events.html#events-introduction"/>
      <sub name="Handling key events" link="events-handling-key-events.html">
        <sub name="Problem" link="events-handling-key-events.html#idp69829408"/>
        <sub name="Solutions" link="events-handling-key-events.html#idp69830720">
          <sub name="Solution 1" link="events-handling-key-events.html#idp73035136"/>
          <sub name="Solution 2" link="events-handling-key-events.html#idp72357488"/>
        </sub>
        <sub name="Discussion" link="events-handling-key-events.html#events-handling-key-events-discussion">
          <sub name="Pros and cons of Solution 1 and Solution 2" link="events-handling-key-events.html#idp72244448"/>
          <sub name="Other useful things to know about key press events" link="events-handling-key-events.html#idp73065552"/>
        </sub>
      </sub>
      <sub name="Detecting mouse scrolling on an actor" link="events-mouse-scroll.html">
        <sub name="Problem" link="events-mouse-scroll.html#idp73075376"/>
        <sub name="Solution" link="events-mouse-scroll.html#idp73076848"/>
        <sub name="Discussion" link="events-mouse-scroll.html#idp73084720">
          <sub name="Creating a scrolling viewport for an actor" link="events-mouse-scroll.html#idp73086112"/>
        </sub>
        <sub name="Full example" link="events-mouse-scroll.html#idp73125344"/>
      </sub>
      <sub name="Detecting pointer movements on an actor" link="events-pointer-motion.html">
        <sub name="Problem" link="events-pointer-motion.html#events-pointer-motion-problem"/>
        <sub name="Solution" link="events-pointer-motion.html#events-pointer-motion-solution">
          <sub name="Responding to crossing events" link="events-pointer-motion.html#idp73140592"/>
          <sub name="Responding to motion events" link="events-pointer-motion.html#idp73151952"/>
        </sub>
        <sub name="Discussion" link="events-pointer-motion.html#events-pointer-motion-discussion">
          <sub name="Pointer events on actors at different depths" link="events-pointer-motion.html#idp73171088"/>
        </sub>
        <sub name="Full examples" link="events-pointer-motion.html#idp73185472"/>
      </sub>
      <sub name="Making an actor respond to button events" link="events-buttons.html">
        <sub name="Problem" link="events-buttons.html#idp73213744"/>
        <sub name="Solution" link="events-buttons.html#idp73219120"/>
        <sub name="Discussion" link="events-buttons.html#idp73236208">
          <sub name="Click count" link="events-buttons.html#idp73241872"/>
          <sub name="Button numbering" link="events-buttons.html#idp73253104"/>
          <sub name="ClutterClickAction" link="events-buttons.html#events-buttons-clutterclickaction"/>
        </sub>
        <sub name="Full examples" link="events-buttons.html#idp73585280"/>
      </sub>
    </sub>
    <sub name="Textures" link="textures.html">
      <sub name="Introduction" link="textures.html#textures-introduction"/>
      <sub name="Drawing 2D graphics onto a texture" link="textures-drawing-with-cairo.html">
        <sub name="Problem" link="textures-drawing-with-cairo.html#idp68264736"/>
        <sub name="Solution" link="textures-drawing-with-cairo.html#idp71142928"/>
        <sub name="Discussion" link="textures-drawing-with-cairo.html#idp69961280">
          <sub name="Drawing pages from a PDF onto a ClutterCairoContext" link="textures-drawing-with-cairo.html#idp69678608"/>
        </sub>
      </sub>
      <sub name="Maintaining the aspect ratio when loading an&#10;    image into a texture" link="textures-aspect-ratio.html">
        <sub name="Problem" link="textures-aspect-ratio.html#idp70280320"/>
        <sub name="Solution" link="textures-aspect-ratio.html#idp70281760"/>
        <sub name="Discussion" link="textures-aspect-ratio.html#idp71426336"/>
      </sub>
      <sub name="Loading image data into a texture" link="textures-image-loading.html">
        <sub name="Problem" link="textures-image-loading.html#idp69344928"/>
        <sub name="Solution" link="textures-image-loading.html#idp69346240"/>
        <sub name="Discussion" link="textures-image-loading.html#idp69351456">
          <sub name="Synchronous vs. asynchronous image loading" link="textures-image-loading.html#idp68755648"/>
          <sub name="Other ways to load image data into a texture" link="textures-image-loading.html#idp68765600"/>
        </sub>
      </sub>
      <sub name="Creating sub-textures from an existing texture" link="textures-sub-textures.html">
        <sub name="Problem" link="textures-sub-textures.html#idp68774320"/>
        <sub name="Solution" link="textures-sub-textures.html#idp68776096"/>
        <sub name="Discussion" link="textures-sub-textures.html#idp68784944"/>
        <sub name="Full example" link="textures-sub-textures.html#idp68791040"/>
        <sub name="Going further" link="textures-sub-textures.html#idp68796992"/>
      </sub>
      <sub name="Creating a reflection of a texture" link="textures-reflection.html">
        <sub name="Problem" link="textures-reflection.html#idp73308608"/>
        <sub name="Solution" link="textures-reflection.html#idp73310512"/>
        <sub name="Discussion" link="textures-reflection.html#idp73318480"/>
        <sub name="Full example" link="textures-reflection.html#idp73333552"/>
      </sub>
      <sub name="Cross-fading between two images" link="textures-crossfade.html">
        <sub name="Problem" link="textures-crossfade.html#idp73342352"/>
        <sub name="Solutions" link="textures-crossfade.html#idp73344368">
          <sub name="Solution 1: two textures" link="textures-crossfade.html#idp73349184"/>
          <sub name="Solution 2: one texture with two layers" link="textures-crossfade.html#idp70902064">
            <sub name="Cross-fading using a texture combiner with interpolation" link="textures-crossfade.html#idp70907408"/>
          </sub>
        </sub>
        <sub name="Discussion" link="textures-crossfade.html#textures-crossfade-discussion">
          <sub name="Cross-fades between images of different sizes" link="textures-crossfade.html#idp70920912"/>
          <sub name="Slideshows" link="textures-crossfade.html#textures-crossfade-discussion-slideshows"/>
        </sub>
        <sub name="Full examples" link="textures-crossfade.html#idp70956432"/>
      </sub>
    </sub>
    <sub name="Animations" link="animations.html">
      <sub name="Introduction" link="animations.html#animations-introduction">
        <sub name="High level overview" link="animations.html#idp72747264"/>
        <sub name="Alphas" link="animations.html#animations-introduction-alphas"/>
        <sub name="Clutter's animation API" link="animations.html#animations-introduction-api"/>
      </sub>
      <sub name="Inverting Animations" link="animations-inversion.html">
        <sub name="Problem" link="animations-inversion.html#idp69283024"/>
        <sub name="Solution" link="animations-inversion.html#idp69284336"/>
        <sub name="Discussion" link="animations-inversion.html#idp73664320"/>
      </sub>
      <sub name="Fading an actor out of or into view" link="animations-fading.html">
        <sub name="Problem" link="animations-fading.html#idp73672976"/>
        <sub name="Solution" link="animations-fading.html#idp73674288"/>
        <sub name="Discussion" link="animations-fading.html#idp73691472"/>
      </sub>
      <sub name="Rotating an actor" link="animations-rotating.html">
        <sub name="Problem" link="animations-rotating.html#idp73694928"/>
        <sub name="Solution" link="animations-rotating.html#idp73699504"/>
        <sub name="Discussion" link="animations-rotating.html#idp73726688">
          <sub name="Setting the rotation center for an animation" link="animations-rotating.html#idp73728208">
            <sub name="Setting a rotation center inside an actor" link="animations-rotating.html#idp73730592"/>
            <sub name="Setting the rotation center outside an actor" link="animations-rotating.html#idp73746304"/>
          </sub>
          <sub name="Direction of rotation" link="animations-rotating.html#animations-rotating-discussion-direction"/>
          <sub name="Apparent vs. actual rotation" link="animations-rotating.html#idp73780720"/>
          <sub name="Orientation of rotation axes" link="animations-rotating.html#idp73784528"/>
        </sub>
        <sub name="Full example" link="animations-rotating.html#idp73787792"/>
      </sub>
      <sub name="Creating complex animations with&#10;    ClutterAnimator" link="animations-complex.html">
        <sub name="Problem" link="animations-complex.html#idp73797904"/>
        <sub name="Solution" link="animations-complex.html#idp73800032"/>
        <sub name="Discussion" link="animations-complex.html#animations-complex-discussion">
          <sub name="Understanding keys and key frames" link="animations-complex.html#animations-complex-discussion-keys"/>
          <sub name="Why ClutterAnimator?" link="animations-complex.html#animations-complex-why-clutteranimator"/>
        </sub>
        <sub name="Full example" link="animations-complex.html#idp75144160"/>
      </sub>
      <sub name="Reusing a complex animation on different actors" link="animations-reuse.html">
        <sub name="Problem" link="animations-reuse.html#animations-reuse-problem"/>
        <sub name="Solution" link="animations-reuse.html#animations-reuse-solution"/>
        <sub name="Discussion" link="animations-reuse.html#animations-reuse-discussion">
          <sub name="One animation vs. many" link="animations-reuse.html#animations-reuse-discussion-one-or-many"/>
          <sub name="Caveats about animating a rig instead of an actor" link="animations-reuse.html#animations-reuse-discussion-rig-not-actor"/>
        </sub>
        <sub name="Full example" link="animations-reuse.html#animations-reuse-examples"/>
      </sub>
      <sub name="Moving actors" link="animations-moving.html">
        <sub name="Problem" link="animations-moving.html#idp75227920"/>
        <sub name="Solutions" link="animations-moving.html#idp75232288">
          <sub name="Solution 1: Implicit animations" link="animations-moving.html#idp75235344"/>
          <sub name="Solution 2: ClutterState" link="animations-moving.html#idp75240480"/>
          <sub name="Solution 3: ClutterAnimator" link="animations-moving.html#idp75246352"/>
        </sub>
        <sub name="Discussion" link="animations-moving.html#idp75253952">
          <sub name="Movement can take an actor &quot;outside&quot; its container" link="animations-moving.html#idp75254592"/>
          <sub name="Anchor points can affect movement" link="animations-moving.html#idp75257536"/>
          <sub name="Actors can move in the z axis" link="animations-moving.html#idp75279056"/>
          <sub name="Movement is affected by constraints" link="animations-moving.html#idp75289856"/>
        </sub>
        <sub name="Full examples" link="animations-moving.html#animations-moving-examples"/>
      </sub>
      <sub name="Looping an animation" link="animations-looping.html">
        <sub name="Problem" link="animations-looping.html#idp75334176"/>
        <sub name="Solutions" link="animations-looping.html#idp75335408">
          <sub name="Solution 1: looping an implicit animation" link="animations-looping.html#animations-looping-solutions-implicit"/>
          <sub name="Solution 2: looping with ClutterAnimator" link="animations-looping.html#idp75350544"/>
          <sub name="Solution 3: looping with ClutterState" link="animations-looping.html#idp75362496"/>
        </sub>
        <sub name="Discussion" link="animations-looping.html#idp75380880">
          <sub name="Looping a fixed number of times" link="animations-looping.html#idp75386944"/>
          <sub name="Creating a &quot;closed loop&quot; with an implicit animation" link="animations-looping.html#animations-looping-discussion-closed-loop"/>
        </sub>
        <sub name="Full examples" link="animations-looping.html#animations-looping-examples"/>
      </sub>
      <sub name="Animated scaling" link="animations-scaling.html">
        <sub name="Problem" link="animations-scaling.html#idp75422768"/>
        <sub name="Solution" link="animations-scaling.html#idp75426176"/>
        <sub name="Discussion" link="animations-scaling.html#idp75432960">
          <sub name="Scaling vs. resizing" link="animations-scaling.html#idp75443408"/>
          <sub name="Scaling, layouts and containers" link="animations-scaling.html#idp75453152"/>
          <sub name="Setting the scale center" link="animations-scaling.html#idp75456512"/>
        </sub>
        <sub name="Full examples" link="animations-scaling.html#animations-scaling-examples"/>
      </sub>
      <sub name="Animating an actor along a curved path" link="animations-path.html">
        <sub name="Problem" link="animations-path.html#idp75493600"/>
        <sub name="Solution" link="animations-path.html#idp75494880"/>
        <sub name="Discussion" link="animations-path.html#idp75510048">
          <sub name="Other ways to animate along a path" link="animations-path.html#idp75524320"/>
        </sub>
        <sub name="Full examples" link="animations-path.html#animations-path-examples"/>
      </sub>
    </sub>
    <sub name="Text" link="text.html">
      <sub name="Introduction" link="text.html#text-introduction"/>
      <sub name="Drawing a shadow under the text" link="text-shadow.html">
        <sub name="Problem" link="text-shadow.html#idp68674160"/>
        <sub name="Solution" link="text-shadow.html#idp72442336"/>
        <sub name="Discussion" link="text-shadow.html#idp69898688"/>
        <sub name="Full example" link="text-shadow.html#idp71529664"/>
      </sub>
    </sub>
    <sub name="Layout management" link="layouts.html">
      <sub name="Introduction" link="layouts.html#layouts-introduction">
        <sub name="Using layouts" link="layouts.html#idp72894480"/>
        <sub name="Types of layout manager" link="layouts.html#layouts-introduction-manager-types"/>
        <sub name="Layout properties" link="layouts.html#layouts-introduction-layout-properties">
          <sub name="Setting layout properties" link="layouts.html#idp73910640"/>
        </sub>
        <sub name="Not using layout managers" link="layouts.html#layouts-introduction-not-using-layout-managers">
          <sub name="Manual positioning and alignment" link="layouts.html#idp73924560"/>
          <sub name="Using ClutterConstraint" link="layouts.html#idp73927680"/>
        </sub>
      </sub>
      <sub name="Stacking actors on top of each other" link="layouts-stacking.html">
        <sub name="Problem" link="layouts-stacking.html#idp73936528"/>
        <sub name="Solution" link="layouts-stacking.html#layouts-stacking-solution"/>
        <sub name="Discussion" link="layouts-stacking.html#idp73490592">
          <sub name="Setting and changing alignment" link="layouts-stacking.html#idp73944448"/>
          <sub name="Size requisitioning" link="layouts-stacking.html#layouts-stacking-size-requisitioning"/>
          <sub name="Depth ordering" link="layouts-stacking.html#idp73962224"/>
          <sub name="Other ways to stack actors" link="layouts-stacking.html#idp73966176"/>
        </sub>
        <sub name="Full examples" link="layouts-stacking.html#idp73972528"/>
      </sub>
      <sub name="Binding the size of one actor to the size of another" link="layouts-bind-constraint.html">
        <sub name="Problem" link="layouts-bind-constraint.html#idp73986352"/>
        <sub name="Solution" link="layouts-bind-constraint.html#idp73990592"/>
        <sub name="Discussion" link="layouts-bind-constraint.html#idp74007808">
          <sub name="Another way to bind actors' sizes together" link="layouts-bind-constraint.html#idp74020112"/>
        </sub>
        <sub name="Full examples" link="layouts-bind-constraint.html#idp74026880"/>
      </sub>
      <sub name="Arranging actors in a single row or column" link="layouts-box.html">
        <sub name="Problem" link="layouts-box.html#idp74042624"/>
        <sub name="Solution" link="layouts-box.html#idp74046720"/>
        <sub name="Discussion" link="layouts-box.html#idp74059536">
          <sub name="Layout properties" link="layouts-box.html#idp74063056">
            <sub name="ClutterBoxLayout properties" link="layouts-box.html#idp74069568"/>
            <sub name="Child properties" link="layouts-box.html#idp74090192"/>
          </sub>
          <sub name="Animating layout changes" link="layouts-box.html#layouts-box-animating-layout-changes"/>
        </sub>
        <sub name="Full examples" link="layouts-box.html#idp74226496"/>
      </sub>
    </sub>
    <sub name="Script" link="script.html">
      <sub name="Introduction" link="script.html#script-introduction">
        <sub name="Basic principles of ClutterScript" link="script.html#idp68369920"/>
        <sub name="Data types" link="script.html#script-introduction-data-types"/>
      </sub>
      <sub name="Defining a user interface with JSON" link="script-ui.html">
        <sub name="Problem" link="script-ui.html#idp69458544"/>
        <sub name="Solution" link="script-ui.html#idp69462768"/>
        <sub name="Discussion" link="script-ui.html#idp73878320"/>
      </sub>
      <sub name="Connecting to signals in ClutterScript" link="script-signals.html">
        <sub name="Problem" link="script-signals.html#idp73882160"/>
        <sub name="Solution" link="script-signals.html#idp73883584"/>
        <sub name="Discussion" link="script-signals.html#script-signals-discussion">
          <sub name="Options for connecting signals to handlers" link="script-signals.html#idp73901280"/>
          <sub name="Writing handler functions" link="script-signals.html#script-signals-discussion-writing-handlers"/>
          <sub name="Passing objects to handler functions" link="script-signals.html#idp74135040"/>
        </sub>
        <sub name="Full examples" link="script-signals.html#idp74144496"/>
      </sub>
      <sub name="Connecting ClutterState states in ClutterScript" link="script-state.html">
        <sub name="Problem" link="script-state.html#idp74157488"/>
        <sub name="Solution" link="script-state.html#idp74159248"/>
        <sub name="Discussion" link="script-state.html#idp68925040"/>
        <sub name="Full examples" link="script-state.html#idp68940448"/>
      </sub>
    </sub>
    <sub name="Effects" link="effects.html">
      <sub name="Introduction" link="effects.html#effects-introduction">
        <sub name="Creating effects using the abstract effect classes" link="effects.html#idp70011888"/>
        <sub name="Using the built-in effects" link="effects.html#effects-introduction-using-the-built-in-effects"/>
      </sub>
      <sub name="Changing an actor's paint sequence using&#10;    ClutterEffect" link="effects-basic.html">
        <sub name="Problem" link="effects-basic.html#idp69202944"/>
        <sub name="Solution" link="effects-basic.html#idp74295120"/>
        <sub name="Discussion" link="effects-basic.html#idp74331856">
          <sub name="Effect properties" link="effects-basic.html#effects-basic-discussion-properties"/>
        </sub>
        <sub name="Full example" link="effects-basic.html#effects-basic-example">
          <sub name="CbBackgroundEffect" link="effects-basic.html#effects-basic-example-cbbackgroundeffect"/>
          <sub name="CbBorderEffect" link="effects-basic.html#effects-basic-example-cbbordereffect"/>
          <sub name="Application" link="effects-basic.html#effects-basic-example-application"/>
        </sub>
      </sub>
      <sub name="Creating and animating a custom ClutterDeformEffect" link="effects-custom-deform.html">
        <sub name="Problem" link="effects-custom-deform.html#idp74412336"/>
        <sub name="Solution" link="effects-custom-deform.html#effects-custom-deform-solution"/>
        <sub name="Discussion" link="effects-custom-deform.html#effects-custom-deform-discussion">
          <sub name="Customising the back material" link="effects-custom-deform.html#idp74459312"/>
          <sub name="Animating a custom deform effect" link="effects-custom-deform.html#effects-custom-deform-discussion-animating"/>
          <sub name="Tiles" link="effects-custom-deform.html#effects-custom-deform-discussion-tiles"/>
        </sub>
        <sub name="Full example" link="effects-custom-deform.html#idp74497760"/>
      </sub>
    </sub>
    <sub name="Contributing to this document" link="contributing.html"/>
  </chapters>
  <functions/>
</book>