<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
-->
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://web.resource.org/cc/"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   width="1052.3622"
   height="744.09448"
   id="svg2"
   sodipodi:version="0.32"
   inkscape:version="0.44"
   sodipodi:docbase="C:\simon\Projects\Tuscany\java\java-head\sca\samples\helloworld-ws-reference"
   sodipodi:docname="helloworld-ws-reference.svg"
   version="1.0"
   inkscape:export-filename="C:\simon\Projects\Tuscany\java\java-head\sca\samples\helloworld-ws-reference\helloworld-ws-reference.png"
   inkscape:export-xdpi="52.84"
   inkscape:export-ydpi="52.84">
  <defs
     id="defs4" />
  <sodipodi:namedview
     id="base"
     pagecolor="#ffffff"
     bordercolor="#666666"
     borderopacity="1.0"
     gridtolerance="10000"
     guidetolerance="10"
     objecttolerance="10"
     inkscape:pageopacity="0.0"
     inkscape:pageshadow="2"
     inkscape:zoom="1.4"
     inkscape:cx="519.38407"
     inkscape:cy="414.63224"
     inkscape:document-units="px"
     inkscape:current-layer="layer1"
     inkscape:window-width="1054"
     inkscape:window-height="721"
     inkscape:window-x="85"
     inkscape:window-y="295" />
  <metadata
     id="metadata7">
    <rdf:RDF>
      <cc:Work
         rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <g
     inkscape:label="Layer 1"
     inkscape:groupmode="layer"
     id="layer1">
    <g
       id="g2997"
       transform="matrix(0.991389,0,0,1,2.215655,0)">
      <rect
         rx="13.79423"
         ry="12.692303"
         y="192.00233"
         x="258.3114"
         height="299.99988"
         width="446.72086"
         id="rect2067"
         style="opacity:1;fill:#90baf4;fill-opacity:1;stroke:#060000;stroke-width:2.00866628;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
      <flowRoot
         id="flowRoot2954"
         xml:space="preserve"><flowRegion
           id="flowRegion2956"><rect
             y="212.66591"
             x="281.42856"
             height="61.42857"
             width="170"
             id="rect2958" /></flowRegion><flowPara
           id="flowPara2960">helloworldwsclient</flowPara></flowRoot>    </g>
    <rect
       style="fill:#317fed;fill-opacity:1;stroke:#060000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
       id="rect2988"
       width="115.66247"
       height="85.862968"
       x="432.05917"
       y="307.1676"
       rx="6.9961648"
       ry="7.1230249" />
    <flowRoot
       xml:space="preserve"
       id="flowRoot2966"
       transform="translate(172.4684,115.2291)"><flowRegion
         id="flowRegion2968"><rect
           id="rect2970"
           width="170"
           height="61.42857"
           x="281.42856"
           y="212.66591" /></flowRegion><flowPara
         id="flowPara2972">HelloWorld</flowPara><flowPara
         id="flowPara1883">Service</flowPara><flowPara
         id="flowPara1885">Component</flowPara></flowRoot>    <path
       style="fill:#5b9d05;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
       d="M 414.90867,339.0146 L 448.24371,339.0146 L 454.30462,352.14658 L 447.23356,364.26842 L 414.90867,364.26842 L 422.48482,352.14658 L 414.90867,339.0146 z "
       id="path3017" />
    <path
       style="fill:#ae62bf;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
       d="M 528.16111,337.17632 L 561.49615,337.17632 L 567.55706,350.3083 L 560.486,362.43014 L 528.16111,362.43014 L 535.73726,350.3083 L 528.16111,337.17632 z "
       id="path3019" />
    <path
       style="fill:#ae62bf;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1.00000012px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
       d="M 651.01647,320.75333 L 718.80207,320.75333 L 731.12672,349.11387 L 716.74797,375.29287 L 651.01647,375.29287 L 666.4223,349.11387 L 651.01647,320.75333 z "
       id="path1887" />
    <flowRoot
       xml:space="preserve"
       id="flowRoot1889"
       transform="translate(388.9491,122.6895)"
       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans"><flowRegion
         id="flowRegion1891"><rect
           id="rect1893"
           width="170"
           height="61.42857"
           x="281.42856"
           y="212.66591"
           style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" /></flowRegion><flowPara
         id="flowPara1895">HelloWorld</flowPara><flowPara
         id="flowPara1897">Service</flowPara><flowPara
         id="flowPara1899" /></flowRoot>    <path
       style="fill:none;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
       d="M 567.85714,349.09448 C 666.42857,348.3802 666.42857,348.3802 666.42857,348.3802"
       id="path1901" />
  </g>
</svg>
