backup de julho
[h2N7SspZmY.git] / data / cache / 7 / 7513b71750167e1e8f6430bafc639a0f.xhtml
blob8081ada980a6e9a8e13a3254b0100307981850f0
4 <h1><a name="app_engine" id="app_engine">App Engine</a></h1>
5 <div class="level1">
7 <p>
9 <a href="http://code.google.com/appengine/" class="urlextern" title="http://code.google.com/appengine/" rel="nofollow">Google App Engine</a>: <a href="http://en.wikipedia.org/wiki/Google_App_Engine" class="interwiki iw_wp" title="http://en.wikipedia.org/wiki/Google_App_Engine">Google App Engine</a> <br/>
11 </p>
12 <div class="plugin_uparrow">
13 <a href="#" title="Back to top">
14 <img src="lib/plugins/uparrow/images/tango-small.png" alt="Back to top"/>
15 </a>
16 </div>
18 </div>
19 <!-- SECTION "App Engine" [1-130] -->
20 <h2><a name="example" id="example">Example</a></h2>
21 <div class="level2">
22 <pre class="code python"><span class="kw1">from</span> google.<span class="me1">appengine</span>.<span class="me1">ext</span> <span class="kw1">import</span> webapp
23 <span class="kw1">from</span> google.<span class="me1">appengine</span>.<span class="me1">ext</span>.<span class="me1">webapp</span>.<span class="me1">util</span> <span class="kw1">import</span> run_wsgi_app
24 <span class="kw1">from</span> google.<span class="me1">appengine</span>.<span class="me1">ext</span> <span class="kw1">import</span> db
25 <span class="kw1">import</span> <span class="kw3">urllib</span>
26 <span class="kw1">from</span> <span class="kw3">HTMLParser</span> <span class="kw1">import</span> <span class="kw3">HTMLParser</span>
27 <span class="kw1">import</span> <span class="kw3">re</span>
28 &nbsp;
29 <span class="kw1">class</span> MyHTMLParser<span class="br0">&#40;</span><span class="kw3">HTMLParser</span><span class="br0">&#41;</span>:
30 <span class="kw1">def</span> <span class="kw4">__init__</span><span class="br0">&#40;</span><span class="kw2">self</span><span class="br0">&#41;</span>:
31 <span class="kw3">HTMLParser</span>.<span class="kw4">__init__</span><span class="br0">&#40;</span><span class="kw2">self</span><span class="br0">&#41;</span>
32 <span class="kw2">self</span>.<span class="me1">s</span> = <span class="st0">''</span>
33 &nbsp;
34 <span class="kw1">def</span> handle_starttag<span class="br0">&#40;</span><span class="kw2">self</span>, tag, attrs<span class="br0">&#41;</span>:
35 <span class="kw1">if</span> tag == <span class="st0">'embed'</span>:
36 <span class="kw1">for</span> attr <span class="kw1">in</span> attrs:
37 <span class="kw1">if</span> attr<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span> == <span class="st0">'flashvars'</span>:
38 <span class="kw2">self</span>.<span class="me1">s</span> = attr<span class="br0">&#91;</span>1<span class="br0">&#93;</span>
39 &nbsp;
40 <span class="kw1">def</span> feed<span class="br0">&#40;</span><span class="kw2">self</span>, data<span class="br0">&#41;</span>:
41 <span class="kw3">HTMLParser</span>.<span class="me1">feed</span><span class="br0">&#40;</span><span class="kw2">self</span>, data<span class="br0">&#41;</span>
42 <span class="kw1">return</span> <span class="kw2">self</span>
43 &nbsp;
44 <span class="kw1">def</span> get_s<span class="br0">&#40;</span><span class="kw2">self</span><span class="br0">&#41;</span>:
45 <span class="kw1">return</span> <span class="kw2">self</span>.<span class="me1">s</span>
46 &nbsp;
47 <span class="kw1">class</span> Level<span class="br0">&#40;</span>db.<span class="me1">Model</span><span class="br0">&#41;</span>:
48 content = db.<span class="me1">TextProperty</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
49 &nbsp;
50 <span class="kw1">class</span> Current<span class="br0">&#40;</span>db.<span class="me1">Model</span><span class="br0">&#41;</span>:
51 x = db.<span class="me1">IntegerProperty</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
52 y = db.<span class="me1">IntegerProperty</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
53 d = db.<span class="me1">IntegerProperty</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
54 n = db.<span class="me1">IntegerProperty</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
55 m = db.<span class="me1">IntegerProperty</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
56 l = db.<span class="me1">IntegerProperty</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
57 &nbsp;
58 <span class="kw1">class</span> Wrong<span class="br0">&#40;</span>db.<span class="me1">Model</span><span class="br0">&#41;</span>:
59 x = db.<span class="me1">IntegerProperty</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
60 y = db.<span class="me1">IntegerProperty</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
61 d = db.<span class="me1">IntegerProperty</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
62 l = db.<span class="me1">IntegerProperty</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
63 &nbsp;
64 <span class="kw1">class</span> CrossPage<span class="br0">&#40;</span>webapp.<span class="me1">RequestHandler</span><span class="br0">&#41;</span>:
65 <span class="kw1">def</span> get<span class="br0">&#40;</span><span class="kw2">self</span><span class="br0">&#41;</span>:
66 url = <span class="st0">'http://www.hacker.org/cross/index.php?name=kauesilv&amp;password=a1b2c3d4'</span>
67 regex = r<span class="st0">'boardinit = &quot;([^&quot;]*)&quot;'</span>
68 debug = <span class="kw2">self</span>.<span class="me1">request</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'debug'</span><span class="br0">&#41;</span>
69 s = <span class="kw2">self</span>.<span class="me1">request</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'s'</span><span class="br0">&#41;</span>
70 path = <span class="kw2">self</span>.<span class="me1">request</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'path'</span><span class="br0">&#41;</span>
71 <span class="kw2">self</span>.<span class="me1">response</span>.<span class="me1">headers</span><span class="br0">&#91;</span><span class="st0">'Content-Type'</span><span class="br0">&#93;</span> = <span class="st0">'text/plain'</span>
72 <span class="kw1">if</span> s == <span class="st0">'1'</span>:
73 <span class="kw3">urllib</span>.<span class="me1">urlopen</span><span class="br0">&#40;</span>url + <span class="st0">'&amp;sol='</span> + path<span class="br0">&#41;</span>.<span class="me1">read</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
74 s = <span class="kw3">urllib</span>.<span class="me1">urlopen</span><span class="br0">&#40;</span>url<span class="br0">&#41;</span>.<span class="me1">read</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
75 <span class="co1">#self.response.out.write(s + '\n')</span>
76 board = <span class="kw3">re</span>.<span class="kw2">compile</span><span class="br0">&#40;</span>regex<span class="br0">&#41;</span>.<span class="me1">search</span><span class="br0">&#40;</span>s<span class="br0">&#41;</span>.<span class="me1">groups</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>.<span class="me1">split</span><span class="br0">&#40;</span><span class="st0">','</span><span class="br0">&#41;</span>
77 <span class="kw2">self</span>.<span class="me1">response</span>.<span class="me1">out</span>.<span class="me1">write</span><span class="br0">&#40;</span><span class="kw2">str</span><span class="br0">&#40;</span><span class="kw2">len</span><span class="br0">&#40;</span>board<span class="br0">&#41;</span><span class="br0">&#41;</span> + <span class="st0">'<span class="es0">\n</span>'</span> + <span class="kw2">str</span><span class="br0">&#40;</span><span class="kw2">len</span><span class="br0">&#40;</span>board<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> + <span class="st0">'<span class="es0">\n</span>'</span><span class="br0">&#41;</span>
78 <span class="kw1">for</span> line <span class="kw1">in</span> board:
79 <span class="kw2">self</span>.<span class="me1">response</span>.<span class="me1">out</span>.<span class="me1">write</span><span class="br0">&#40;</span><span class="kw2">str</span><span class="br0">&#40;</span>line<span class="br0">&#41;</span> + <span class="st0">'<span class="es0">\n</span>'</span><span class="br0">&#41;</span>
80 &nbsp;
81 <span class="kw1">class</span> MainPage<span class="br0">&#40;</span>webapp.<span class="me1">RequestHandler</span><span class="br0">&#41;</span>:
82 <span class="kw1">def</span> get<span class="br0">&#40;</span><span class="kw2">self</span><span class="br0">&#41;</span>:
83 delete = <span class="kw2">self</span>.<span class="me1">request</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'delete'</span><span class="br0">&#41;</span>
84 <span class="kw1">if</span> delete == <span class="st0">'1'</span>:
85 db.<span class="me1">delete</span><span class="br0">&#40;</span>Wrong.<span class="kw2">all</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">fetch</span><span class="br0">&#40;</span>100<span class="br0">&#41;</span><span class="br0">&#41;</span>
86 <span class="kw1">if</span> Wrong.<span class="kw2">all</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">count</span><span class="br0">&#40;</span>1<span class="br0">&#41;</span> == 1:
87 <span class="kw1">return</span>
88 &nbsp;
89 url = <span class="st0">'http://www.hacker.org/coil/index.php?name=kauesilv&amp;password=a1b2c3d4'</span>
90 regex = r<span class="st0">'x=(<span class="es0">\d</span>*)&amp;y=(<span class="es0">\d</span>*)&amp;board=(.*)'</span>
91 regexLevel = r<span class="st0">'Level: (<span class="es0">\d</span>*)'</span>
92 <span class="kw2">self</span>.<span class="me1">response</span>.<span class="me1">headers</span><span class="br0">&#91;</span><span class="st0">'Content-Type'</span><span class="br0">&#93;</span> = <span class="st0">'text/plain'</span>
93 debug = <span class="kw2">self</span>.<span class="me1">request</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'debug'</span><span class="br0">&#41;</span>
94 s = <span class="kw2">self</span>.<span class="me1">request</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'s'</span><span class="br0">&#41;</span>
95 r = <span class="kw2">self</span>.<span class="me1">request</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'r'</span><span class="br0">&#41;</span>
96 x = <span class="kw2">self</span>.<span class="me1">request</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'x'</span><span class="br0">&#41;</span>
97 y = <span class="kw2">self</span>.<span class="me1">request</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'y'</span><span class="br0">&#41;</span>
98 d = <span class="kw2">self</span>.<span class="me1">request</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'d'</span><span class="br0">&#41;</span>
99 w = <span class="kw2">self</span>.<span class="me1">request</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'w'</span><span class="br0">&#41;</span>
100 path = <span class="kw2">self</span>.<span class="me1">request</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">'path'</span><span class="br0">&#41;</span>
101 &nbsp;
102 levels = Level.<span class="kw2">all</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
103 currents = Current.<span class="kw2">all</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
104 &nbsp;
105 <span class="kw1">if</span> s == <span class="st0">'1'</span>:
106 <span class="kw3">urllib</span>.<span class="me1">urlopen</span><span class="br0">&#40;</span>url + <span class="st0">'&amp;x='</span> + x + <span class="st0">'&amp;y='</span> + y + <span class="st0">'&amp;path='</span> + path<span class="br0">&#41;</span>.<span class="me1">read</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
107 &nbsp;
108 <span class="kw1">if</span> w == <span class="st0">'1'</span>:
109 wrong = Wrong<span class="br0">&#40;</span><span class="br0">&#41;</span>
110 wrong.<span class="me1">x</span> = <span class="kw2">int</span><span class="br0">&#40;</span>x<span class="br0">&#41;</span>
111 wrong.<span class="me1">y</span> = <span class="kw2">int</span><span class="br0">&#40;</span>y<span class="br0">&#41;</span>
112 wrong.<span class="me1">d</span> = <span class="kw2">int</span><span class="br0">&#40;</span>d<span class="br0">&#41;</span>
113 wrong.<span class="me1">l</span> = currents.<span class="me1">fetch</span><span class="br0">&#40;</span>1<span class="br0">&#41;</span><span class="br0">&#91;</span>0<span class="br0">&#93;</span>.<span class="me1">l</span>
114 wrong.<span class="me1">put</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
115 &nbsp;
116 <span class="kw1">if</span> s == <span class="st0">'1'</span> <span class="kw1">or</span> r == <span class="st0">'1'</span>:
117 s = <span class="kw3">urllib</span>.<span class="me1">urlopen</span><span class="br0">&#40;</span>url<span class="br0">&#41;</span>.<span class="me1">read</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
118 x, y, board = <span class="kw3">re</span>.<span class="kw2">compile</span><span class="br0">&#40;</span>regex<span class="br0">&#41;</span>.<span class="me1">search</span><span class="br0">&#40;</span>MyHTMLParser<span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">feed</span><span class="br0">&#40;</span>s<span class="br0">&#41;</span>.<span class="me1">get_s</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>.<span class="me1">groups</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
119 lvl, = <span class="kw3">re</span>.<span class="kw2">compile</span><span class="br0">&#40;</span>regexLevel<span class="br0">&#41;</span>.<span class="me1">search</span><span class="br0">&#40;</span>s<span class="br0">&#41;</span>.<span class="me1">groups</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
120 db.<span class="me1">delete</span><span class="br0">&#40;</span>Level.<span class="kw2">all</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">fetch</span><span class="br0">&#40;</span>1000000<span class="br0">&#41;</span><span class="br0">&#41;</span>
121 db.<span class="me1">delete</span><span class="br0">&#40;</span>Current.<span class="kw2">all</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">fetch</span><span class="br0">&#40;</span><span class="nu0">1000000</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
122 &nbsp;
123 level = Level<span class="br0">&#40;</span><span class="br0">&#41;</span>
124 level.<span class="me1">content</span> = x + <span class="st0">'<span class="es0">\n</span>'</span> + y + <span class="st0">'<span class="es0">\n</span>'</span> + board + <span class="st0">'<span class="es0">\n</span>'</span>
125 level.<span class="me1">put</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
126 &nbsp;
127 current = Current<span class="br0">&#40;</span><span class="br0">&#41;</span>
128 current.<span class="me1">x</span> = current.<span class="me1">y</span> = current.<span class="me1">d</span> = 0
129 current.<span class="me1">n</span> = <span class="kw2">int</span><span class="br0">&#40;</span>x<span class="br0">&#41;</span>
130 current.<span class="me1">m</span> = <span class="kw2">int</span><span class="br0">&#40;</span>y<span class="br0">&#41;</span>
131 current.<span class="me1">l</span> = <span class="kw2">int</span><span class="br0">&#40;</span>lvl<span class="br0">&#41;</span>
132 current.<span class="me1">put</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
133 &nbsp;
134 cur = currents.<span class="me1">fetch</span><span class="br0">&#40;</span>1<span class="br0">&#41;</span><span class="br0">&#91;</span>0<span class="br0">&#93;</span>
135 <span class="kw1">while</span><span class="br0">&#40;</span><span class="kw2">True</span><span class="br0">&#41;</span>:
136 cur.<span class="me1">d</span> = cur.<span class="me1">d</span> + 1
137 <span class="kw1">if</span><span class="br0">&#40;</span>cur.<span class="me1">d</span> == 4<span class="br0">&#41;</span>:
138 cur.<span class="me1">d</span> = 0
139 cur.<span class="me1">y</span> = cur.<span class="me1">y</span> + 1
140 <span class="kw1">if</span><span class="br0">&#40;</span>cur.<span class="me1">y</span> == cur.<span class="me1">m</span><span class="br0">&#41;</span>:
141 cur.<span class="me1">y</span> = 0
142 cur.<span class="me1">x</span> = cur.<span class="me1">x</span> + 1
143 <span class="kw1">if</span><span class="br0">&#40;</span>cur.<span class="me1">x</span> == cur.<span class="me1">n</span><span class="br0">&#41;</span>:
144 cur.<span class="me1">x</span> = <span class="nu0">0</span>
145 cur.<span class="me1">put</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
146 wrong = Wrong<span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">gql</span><span class="br0">&#40;</span><span class="st0">&quot;WHERE x = :1 AND y = :2 AND d = :3 AND l = :4&quot;</span>, cur.<span class="me1">x</span>, cur.<span class="me1">y</span>, cur.<span class="me1">d</span>, cur.<span class="me1">l</span><span class="br0">&#41;</span>
147 <span class="kw1">if</span><span class="br0">&#40;</span>wrong.<span class="me1">count</span><span class="br0">&#40;</span>1<span class="br0">&#41;</span> == 0<span class="br0">&#41;</span>:
148 <span class="kw1">break</span>
149 &nbsp;
150 <span class="kw2">self</span>.<span class="me1">response</span>.<span class="me1">out</span>.<span class="me1">write</span><span class="br0">&#40;</span><span class="kw2">str</span><span class="br0">&#40;</span>cur.<span class="me1">x</span><span class="br0">&#41;</span> + <span class="st0">'<span class="es0">\n</span>'</span> + <span class="kw2">str</span><span class="br0">&#40;</span>cur.<span class="me1">y</span><span class="br0">&#41;</span> + <span class="st0">'<span class="es0">\n</span>'</span> + <span class="kw2">str</span><span class="br0">&#40;</span>cur.<span class="me1">d</span><span class="br0">&#41;</span> + <span class="st0">'<span class="es0">\n</span>'</span> + <span class="kw2">str</span><span class="br0">&#40;</span>cur.<span class="me1">l</span><span class="br0">&#41;</span> + <span class="st0">'<span class="es0">\n</span>'</span><span class="br0">&#41;</span>
151 <span class="kw2">self</span>.<span class="me1">response</span>.<span class="me1">out</span>.<span class="me1">write</span><span class="br0">&#40;</span>levels.<span class="me1">fetch</span><span class="br0">&#40;</span>1<span class="br0">&#41;</span><span class="br0">&#91;</span>0<span class="br0">&#93;</span>.<span class="me1">content</span><span class="br0">&#41;</span>
152 &nbsp;
153 <span class="kw1">if</span> debug == <span class="st0">'1'</span>:
154 <span class="kw2">self</span>.<span class="me1">response</span>.<span class="me1">out</span>.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">'<span class="es0">\n</span><span class="es0">\n</span>----DEBUG----<span class="es0">\n</span><span class="es0">\n</span>wrongs<span class="es0">\n</span>'</span><span class="br0">&#41;</span>
155 wrongs = Wrong.<span class="me1">gql</span><span class="br0">&#40;</span><span class="st0">&quot;WHERE l = :1&quot;</span>, cur.<span class="me1">l</span><span class="br0">&#41;</span>
156 <span class="kw1">for</span> wrong <span class="kw1">in</span> wrongs:
157 <span class="kw2">self</span>.<span class="me1">response</span>.<span class="me1">out</span>.<span class="me1">write</span><span class="br0">&#40;</span><span class="kw2">str</span><span class="br0">&#40;</span>wrong.<span class="me1">x</span><span class="br0">&#41;</span> + <span class="st0">' '</span> + <span class="kw2">str</span><span class="br0">&#40;</span>wrong.<span class="me1">y</span><span class="br0">&#41;</span> + <span class="st0">' '</span> + <span class="kw2">str</span><span class="br0">&#40;</span>wrong.<span class="me1">d</span><span class="br0">&#41;</span> + <span class="st0">' '</span> + <span class="kw2">str</span><span class="br0">&#40;</span>wrong.<span class="me1">l</span><span class="br0">&#41;</span> + <span class="st0">'<span class="es0">\n</span>'</span><span class="br0">&#41;</span>
158 &nbsp;
159 <span class="kw2">self</span>.<span class="me1">response</span>.<span class="me1">out</span>.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">'<span class="es0">\n</span>currents<span class="es0">\n</span>'</span><span class="br0">&#41;</span>
160 <span class="kw1">for</span> current <span class="kw1">in</span> currents:
161 <span class="kw2">self</span>.<span class="me1">response</span>.<span class="me1">out</span>.<span class="me1">write</span><span class="br0">&#40;</span><span class="kw2">str</span><span class="br0">&#40;</span>current.<span class="me1">x</span><span class="br0">&#41;</span> + <span class="st0">' '</span> + <span class="kw2">str</span><span class="br0">&#40;</span>current.<span class="me1">y</span><span class="br0">&#41;</span> + <span class="st0">' '</span> + <span class="kw2">str</span><span class="br0">&#40;</span>current.<span class="me1">d</span><span class="br0">&#41;</span> + <span class="st0">' '</span> + <span class="kw2">str</span><span class="br0">&#40;</span>current.<span class="me1">l</span><span class="br0">&#41;</span> + <span class="st0">'<span class="es0">\n</span>'</span><span class="br0">&#41;</span>
162 &nbsp;
163 application = webapp.<span class="me1">WSGIApplication</span><span class="br0">&#40;</span><span class="br0">&#91;</span><span class="br0">&#40;</span><span class="st0">'/'</span>, MainPage<span class="br0">&#41;</span>, <span class="br0">&#40;</span><span class="st0">'/cross'</span>, CrossPage<span class="br0">&#41;</span><span class="br0">&#93;</span>, debug=<span class="kw2">True</span><span class="br0">&#41;</span>
164 &nbsp;
165 <span class="kw1">def</span> main<span class="br0">&#40;</span><span class="br0">&#41;</span>:
166 run_wsgi_app<span class="br0">&#40;</span>application<span class="br0">&#41;</span>
167 &nbsp;
168 <span class="kw1">if</span> __name__ == <span class="st0">&quot;__main__&quot;</span>:
169 main<span class="br0">&#40;</span><span class="br0">&#41;</span></pre>
170 <div class="plugin_uparrow">
171 <a href="#" title="Back to top">
172 <img src="lib/plugins/uparrow/images/tango-small.png" alt="Back to top"/>
173 </a>
174 </div>
176 </div>
177 <!-- SECTION "Example" [131-] -->