From 7515ca4a76435146e0c33c3c58e0e7c0d4453e7d Mon Sep 17 00:00:00 2001 From: Susan Hert Date: Mon, 23 Jul 2001 12:42:28 +0000 Subject: [PATCH] moved to Convex_hull_2 directory --- .gitattributes | 1 - .../ConvexHull_ref/ConvexHullTraits_2.tex | 129 - .../Convex_hull_constructive_traits_2.tex | 92 - .../Convex_hull_leda_traits_2.tex | 91 - .../Convex_hull_projective_xy_traits_2.tex | 89 - .../Convex_hull_projective_xz_traits_2.tex | 89 - .../Convex_hull_projective_yz_traits_2.tex | 89 - .../Convex_hull_rat_leda_traits_2.tex | 92 - .../ConvexHull_ref/Convex_hull_traits_2.tex | 90 - .../ConvexHull_ref/ch_akl_toussaint.tex | 84 - .../ConvexHull/ConvexHull_ref/ch_bykat.tex | 83 - .../ConvexHull/ConvexHull_ref/ch_e_point.tex | 57 - .../ConvexHull/ConvexHull_ref/ch_eddy.tex | 87 - .../ConvexHull_ref/ch_graham_andrew.tex | 84 - .../ConvexHull_ref/ch_graham_andrew_scan.tex | 123 - .../ConvexHull/ConvexHull_ref/ch_jarvis.tex | 85 - .../ConvexHull_ref/ch_jarvis_march.tex | 81 - .../ConvexHull/ConvexHull_ref/ch_melkman.tex | 78 - .../ConvexHull/ConvexHull_ref/ch_n_point.tex | 56 - .../ConvexHull/ConvexHull_ref/ch_ns_point.tex | 59 - .../ConvexHull_ref/ch_nswe_point.tex | 68 - .../ConvexHull/ConvexHull_ref/ch_s_point.tex | 56 - .../ConvexHull/ConvexHull_ref/ch_w_point.tex | 57 - .../ConvexHull/ConvexHull_ref/ch_we_point.tex | 59 - .../ConvexHull_ref/convex_hull_2.tex | 94 - .../basic/ConvexHull/ConvexHull_ref/intro.tex | 183 - .../is_ccw_strongly_convex_2.tex | 71 - .../is_cw_strongly_convex_2.tex | 69 - .../ConvexHull_ref/lower_hull_points_2.tex | 82 - .../basic/ConvexHull/ConvexHull_ref/main.tex | 53 - .../ConvexHull_ref/upper_hull_points_2.tex | 82 - .../basic/ConvexHull/convex_hull_2.tex | 99 - .../basic/ConvexHull/convex_hull_def.tex | 18 - .../basic/ConvexHull/convexity_checking.tex | 11 - .../doc_tex/basic/ConvexHull/main.tex | 11 - .../doc_tex/basic/ConvexHull/saarhull.eps | 3485 ----------------- .../doc_tex/basic/ConvexHull/saarhull.gif | Bin 68721 -> 0 bytes .../basic/ConvexHull/traits_classes.tex | 31 - 38 files changed, 6168 deletions(-) delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ConvexHullTraits_2.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_constructive_traits_2.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_leda_traits_2.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_projective_xy_traits_2.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_projective_xz_traits_2.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_projective_yz_traits_2.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_rat_leda_traits_2.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_traits_2.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_akl_toussaint.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_bykat.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_e_point.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_eddy.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_graham_andrew.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_graham_andrew_scan.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_jarvis.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_jarvis_march.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_melkman.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_n_point.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_ns_point.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_nswe_point.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_s_point.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_w_point.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_we_point.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/convex_hull_2.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/intro.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/is_ccw_strongly_convex_2.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/is_cw_strongly_convex_2.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/lower_hull_points_2.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/main.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/upper_hull_points_2.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/convex_hull_2.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/convex_hull_def.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/convexity_checking.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/main.tex delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/saarhull.eps delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/saarhull.gif delete mode 100644 Packages/Convex_hull_2/doc_tex/basic/ConvexHull/traits_classes.tex diff --git a/.gitattributes b/.gitattributes index 940660b5885..e2556f66162 100644 --- a/.gitattributes +++ b/.gitattributes @@ -87,7 +87,6 @@ Packages/Arrangement/doc_tex/basic/Arrangement_2/arr3.gif svneol=native#unset Packages/Arrangement/doc_tex/basic/Arrangement_2/circles.gif svneol=native#unset Packages/Convex_hull_2/doc_tex/Convex_hull_2/saarhull.eps -text Packages/Convex_hull_2/doc_tex/Convex_hull_2/saarhull.gif -text svneol=unset#unset -Packages/Convex_hull_2/doc_tex/basic/ConvexHull/saarhull.gif svneol=native#unset Packages/Convex_hull_2/doc_tex/basic/Convex_hull_2/saarhull.eps -text Packages/Convex_hull_2/doc_tex/basic/Convex_hull_2/saarhull.gif -text svneol=unset#unset Packages/Developers_manual/pictures/Object.eps -text diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ConvexHullTraits_2.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ConvexHullTraits_2.tex deleted file mode 100644 index 8d0da7f8035..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ConvexHullTraits_2.tex +++ /dev/null @@ -1,129 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: ConvexHullTraits_2.tex -% +------------------------------------------------------------------------+ -% | 14.05.2001 Susan Hert and Stefan Schirra -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - - -\begin{ccRefConcept}{ConvexHullTraits_2} -\ccIndexTraitsClassRequirements[p]{convex hull, 2D} -\ccIndexTraitsClassRequirements[p]{extreme points, 2D} - -\ccDefinition - -All convex hull and extreme point algorithms provided in \cgal\ are -parameterized with a traits class \ccStyle{Traits}, which defines the -primitives (objects and predicates) that the convex hull algorithms use. -\ccRefName\ defines the complete set of primitives required in these -functions. The specific subset of these primitives required by each function -is specified with each function. - -\ccTypes -\ccAutoIndexingOff -\ccSetTwoColumns{ConvexHullTraits_2::Left_of_line_2}{} - -\ccNestedType{Point_2}% - {The point type on which the convex hull functions operate.} - -\ccNestedType{Less_xy_2}% - {Binary predicate object type comparing \ccc{Point_2}s - lexicographically. Must provide - \ccc{bool operator()(Point_2 p, Point_2 q)} where \ccc{true} - is returned iff $p <_{xy} q$. - We have $p<_{xy}q$, iff $p_x < q_x$ or $p_x = q_x$ and $p_y < q_y$, - where $p_x$ and $p_y$ denote $x$ and $y$ coordinate of point $p$, - respectively. - } - -\ccNestedType{Less_yx_2}% - {Same as \ccc{Less_xy_2} with the roles of $x$ and $y$ interchanged.} - -\ccNestedType{Leftturn_2}% - {Predicate object type that must provide - \ccc{bool operator()(Point_2 p,Point_2 q,Point_2 r)}, which - returns \ccc{true} iff \ccc{r} lies to the left of the - oriented line through \ccc{p} and \ccc{q}.} - -\ccNestedType{Left_of_line_2}% - {Unary predicate object type that - must provide a constructor taking two \ccc{Point_2}s, $p$ and - $q$, and \ccc{bool operator()(Point_2 r)}, which returns \ccc{true} iff - $r$ lies to the left of the directed line through $p$ and $q$.} - -\ccNestedType{Less_signed_distance_to_line_2}% - {Binary predicate object type that must provide a constructor taking - two \ccc{Point_2}s, $p$ and $q$, and - \ccc{bool operator()(Point_2 r,Point_2 s)}, which returns \ccc{true} iff - the signed distance from $r$ to the line $l_{pq}$ through $p$ and $q$ - is smaller than the distance from $s$ to $l_{pq}$. It is used to - compute the point right of a line with maximum unsigned distance to - the line. The binary predicate must provide a total order compatible - with convexity, {\it i.e.}, for any line segment $s$ one of the - endpoints - of $s$ is the smallest point among the points on $s$, with respect to - the order given by \ccc{Less_signed_distance_to_line_2}.} - -\ccNestedType{Less_rotate_ccw_2}% - {Binary predicate object type that must provide a constructor taking a - \ccc{Point_2}, $e$, and \ccc{bool operator()(Point_2 p,Point_2 q)}, - where \ccc{true} is returned iff a tangent at $e$ to the point set - $\{e,p,q\}$ hits $p$ before $q$ when rotated counterclockwise around - $e$. - Ties are broken such that the point with larger distance to $e$ - is smaller!} - - -\ccCreation -\ccCreationVariable{traits} %% choose variable name - -Only a copy constructor is required. - -\ccConstructor{ConvexHullTraits_2(ConvexHullTraits_2& t);}{} - -\ccOperations - -The following member functions to create instances of the above predicate -object types must exist. - -\setlength\parskip{0mm} -\ccMemberFunction{Less_xy_2 less_xy_2_object(); }{} -\ccGlue -\ccMemberFunction{Less_yx_2 less_yx_2_object(); }{} -\ccGlue -\ccMemberFunction{Left_of_line_2 left_of_line_2_object( const Point_2& p, const -Point_2& q) ; }{} -\ccGlue -\ccMemberFunction{Less_signed_distance_to_line_2 less_signed_distance_to_line_2_object( const Point_2& p, const Point_2& q); }{} -\ccGlue -\ccMemberFunction{Less_rotate_ccw_2 less_rotate_ccw_2_object( const Point_2& p ) -; }{} -\ccGlue -\ccMemberFunction{Leftturn_2 leftturn_2_object(); }{} - - -\ccParDims -\ccHasModels - -\ccRefIdfierPage{CGAL::Convex_hull_constructive_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_leda_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_projective_xy_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_projective_xz_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_projective_yz_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_rat_leda_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_traits_2} \\ -\ccAutoIndexingOn - -\ccSeeAlso - -\ccRefConceptPage{IsStronglyConvexTraits_3} - -\ccParDims -\end{ccRefConcept} - -% +------------------------------------------------------------------------+ -%%RefPage: end of main body, begin of footer -% EOF -% +------------------------------------------------------------------------+ - diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_constructive_traits_2.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_constructive_traits_2.tex deleted file mode 100644 index ea69420e594..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_constructive_traits_2.tex +++ /dev/null @@ -1,92 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: Convex_hull_constructive_traits_2.tex -% +------------------------------------------------------------------------+ -% | 14.05.2001 Susan Hert and Stefan Schirra -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - -\ccAutoIndexingOff -\begin{ccRefClass}{Convex_hull_constructive_traits_2} -\ccAutoIndexingOn -\ccIndexTraitsClassBegin{Convex_hull_constructive_traits_2}{}{convex hull, 2D} - -\ccDefinition - -The class \ccRefName\ serves as a traits class for all the two-dimensional -convex hull and extreme point calculation function. Unlike the class -\ccc{CGAL::Convex_hull_traits_2}, this class makes use of previously -computed results to avoid redundancy. For example, -in the sidedness tests, lines (of type \ccc{R::Line_2}) are constructed, -which is equivalent to the precomputation of subdeterminants of -the orientation-determinant for three points. - -\ccInclude{CGAL/convex_hull_constructive_traits_2.h} - -\ccIsModel - -\ccRefConceptPage{ConvexHullTraits_2}% -\ccIndexSubitem[c]{ConvexHullTraits_2}{model} \\ - -\ccTypes -\ccAutoIndexingOff -\ccSetThreeColumns{typedef R::Less_signed_distance_to_line_2 }{Less_signed_distance_to_line_2}{} -\ccThreeToTwo - -\ccTypedef{typedef R::Point_2 Point_2;}{} -\ccGlue -\ccTypedef{typedef R::Less_xy Less_xy_2;}{} -\ccGlue -\ccTypedef{typedef R::Less_yx Less_yx_2;}{} -\ccGlue -\ccTypedef{typedef CGAL::r_Left_of_line Left_of_line_2;}{} -\ccGlue -\ccTypedef{typedef CGAL::r_Less_dist_to_line - Less_signed_distance_to_line_2;}{} -\ccGlue -\ccTypedef{typedef R::Less_rotate_ccw Less_rotate_ccw_2;}{} -\ccGlue -\ccTypedef{typedef R::Leftturn_2 Leftturn_2;}{} - - -\ccCreation -\ccCreationVariable{traits} %% choose variable name - -\ccConstructor{Convex_hull_constructive_traits_2();}{default constructor.} - -\ccOperations -\ccAutoIndexingOff -\ccMemberFunction{Less_xy_2 less_xy_2_object(); }{} -\ccGlue -\ccMemberFunction{Less_yx_2 less_yx_2_object(); }{} -\ccGlue -\ccMemberFunction{Left_of_line_2 - left_of_line_2_object(const Point_2& p, const Point_2& q); } -{} -\ccGlue -\ccMemberFunction{Less_signed_distance_to_line_2 - less_signed_distance_to_line_2_object(const Point_2& p, - const Point_2& q); }{} -\ccGlue -\ccMemberFunction{Less_rotate_ccw_2 - less_rotate_ccw_2_object(const Point_2& p); }{} -\ccGlue -\ccMemberFunction{Leftturn_2 leftturn_2_object(); }{} -\ccAutoIndexingOn - - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::Convex_hull_leda_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_rat_leda_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_projective_xy_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_projective_xz_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_projective_yz_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_traits_2} - -\ccIndexTraitsClassEnd -\ccAutoIndexingOff -\end{ccRefClass} -\ccAutoIndexingOn - -% EOF diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_leda_traits_2.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_leda_traits_2.tex deleted file mode 100644 index 7c4ca499e70..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_leda_traits_2.tex +++ /dev/null @@ -1,91 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: Convex_hull_leda_traits_2.tex -% +------------------------------------------------------------------------+ -% | 14.05.2001 Susan Hert and Stefan Schirra -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - -\ccAutoIndexingOff -\begin{ccRefClass}{Convex_hull_leda_traits_2} -\ccAutoIndexingOn -\ccIndexTraitsClassBegin{Convex_hull_leda_traits_2}{}{convex hull, 2D} - -\ccDefinition - -The class \ccRefName\ serves as a traits class for all the two-dimensional -convex hull and extreme point calculation function. It uses the -two-dimensional floating point geometry kernel of \leda. -Please note that, due to the use of floating-point arithmetic, the results -may not be robust when using this traits class. - -\ccInclude{CGAL/convex_hull_leda_traits_2.h} - -\ccIsModel - -\ccRefConceptPage{ConvexHullTraits_2}% -\ccIndexSubitem[c]{ConvexHullTraits_2}{model} \\ - -\ccTypes -\ccAutoIndexingOff -\ccSetThreeColumns{typedef CGAL::p_Less_dist_to_line_2p }{Less_signed_distance_to_line_2}{} -\ccThreeToTwo - -\ccTypedef{typedef leda_point Point_2;}{} -\ccGlue -\ccTypedef{typedef CGAL::p_Less_xy Less_xy_2;}{} -\ccGlue -\ccTypedef{typedef CGAL::p_Less_yx Less_yx_2;}{} -\ccGlue -\ccTypedef{typedef CGAL::p_Left_of_line_2p Left_of_line_2;}{} -\ccGlue -\ccTypedef{typedef CGAL::p_Less_dist_to_line_2p - Less_signed_distance_to_line_2;}{} -\ccGlue -\ccTypedef{typedef CGAL::p_Less_rotate_ccw Less_rotate_ccw_2;}{} -\ccGlue -\ccTypedef{typedef CGAL::p_Leftturn Leftturn_2;}{} - - -\ccCreation -\ccCreationVariable{traits} %% choose variable name - -\ccConstructor{Convex_hull_leda_traits_2(Convex_hull_leda_traits_2& t);}{copy constructor.} - -\ccOperations - -\ccAutoIndexingOff -\ccMemberFunction{Less_xy_2 less_xy_2_object(); }{} -\ccGlue -\ccMemberFunction{Less_yx_2 less_yx_2_object(); }{} -\ccGlue -\ccMemberFunction{Left_of_line_2 - left_of_line_2_object(const Point_2& p, const Point_2& q); } -{} -\ccGlue -\ccMemberFunction{Less_signed_distance_to_line_2 - less_signed_distance_to_line_2_object(const Point_2& p, - const Point_2& q); }{} -\ccGlue -\ccMemberFunction{Less_rotate_ccw_2 - less_rotate_ccw_2_object(const Point_2& p); }{} -\ccGlue -\ccMemberFunction{Leftturn_2 leftturn_2_object(); }{} -\ccAutoIndexingOn - - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::Convex_hull_constructive_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_rat_leda_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_projective_xy_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_projective_xz_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_projective_yz_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_traits_2} - -\ccIndexTraitsClassEnd -\ccAutoIndexingOff -\end{ccRefClass} -\ccAutoIndexingOn - -% EOF diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_projective_xy_traits_2.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_projective_xy_traits_2.tex deleted file mode 100644 index b2d04c5eccc..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_projective_xy_traits_2.tex +++ /dev/null @@ -1,89 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: Convex_hull_projective_xy_traits_2.tex -% +------------------------------------------------------------------------+ -% | 14.05.2001 Susan Hert -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - -\ccAutoIndexingOff -\begin{ccRefClass}{Convex_hull_projective_xy_traits_2} -\ccAutoIndexingOn -\ccIndexTraitsClassBegin{Convex_hull_projective_xy_traits_2}{}{convex hull, 2D} - -\ccDefinition - -The class \ccRefName\ serves as a traits class for all the two-dimensional -convex hull and extreme point calculation function. This class can be -used to compute the convex hull of a set of 3D points projected onto the -$xy$ plane (\textit{i.e.}, by ignoring the $z$ coordinate). - -\ccInclude{CGAL/Convex_hull_projective_xy_traits_2.h} - -\ccIsModel - -\ccRefConceptPage{ConvexHullTraits_2}% -\ccIndexSubitem[c]{ConvexHullTraits_2}{model} \\ - -\ccTypes - -\ccAutoIndexingOff -\ccSetThreeColumns{typedef R::Less_dist_to_line_plane_xy_2}{Less_signed_distance_to_line_2}{} -\ccThreeToTwo - -\ccTypedef{typedef Point_3 Point_2;}{} -\ccGlue -\ccTypedef{typedef Less_xy_plane_xy_2 Less_xy_2;}{} -\ccGlue -\ccTypedef{typedef Less_yx_plane_xy_2 Less_yx_2;}{} -\ccGlue -\ccTypedef{typedef Left_of_line_plane_xy_2 Left_of_line_2;}{} -\ccGlue -\ccTypedef{typedef Less_dist_to_line_plane_xy_2 - Less_signed_distance_to_line_2;}{} -\ccGlue -\ccTypedef{typedef Less_rotate_ccw_plane_xy_2 Less_rotate_ccw_2;}{} -\ccGlue -\ccTypedef{typedef Leftturn_plane_xy_2 Leftturn_2;}{} - - -\ccCreation -\ccCreationVariable{traits} %% choose variable name - -\ccConstructor{Convex_hull_projective_xy_traits_2();}{default constructor.} - -\ccOperations - -\ccMemberFunction{Less_xy_2 less_xy_2_object(); }{} -\ccGlue -\ccMemberFunction{Less_yx_2 less_yx_2_object(); }{} -\ccGlue -\ccMemberFunction{Left_of_line_2 - left_of_line_2_object(const Point_2& p, const Point_2& q); } -{} -\ccGlue -\ccMemberFunction{Less_signed_distance_to_line_2 - less_signed_distance_to_line_2_object(const Point_2& p, - const Point_2& q); }{} -\ccGlue -\ccMemberFunction{Less_rotate_ccw_2 - less_rotate_ccw_2_object(const Point_2& p); }{} -\ccGlue -\ccMemberFunction{Leftturn_2 leftturn_2_object(); }{} - - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::Convex_hull_constructive_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_leda_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_projective_xz_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_projective_yz_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_rat_leda_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_traits_2} - -\ccIndexTraitsClassEnd -\ccAutoIndexingOff -\end{ccRefClass} -\ccAutoIndexingOn - -% EOF diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_projective_xz_traits_2.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_projective_xz_traits_2.tex deleted file mode 100644 index c3bb0be9ff4..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_projective_xz_traits_2.tex +++ /dev/null @@ -1,89 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: Convex_hull_projective_xz_traits_2.tex -% +------------------------------------------------------------------------+ -% | 14.05.2001 Susan Hert -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - -\ccAutoIndexingOff -\begin{ccRefClass}{Convex_hull_projective_xz_traits_2} -\ccAutoIndexingOn -\ccIndexTraitsClassBegin{Convex_hull_projective_xz_traits_2}{}{convex hull, 2D} - -\ccDefinition - -The class \ccRefName\ serves as a traits class for all the two-dimensional -convex hull and extreme point calculation function. This class can be -used to compute the convex hull of a set of 3D points projected onto the -$xz$ plane (\textit{i.e.}, by ignoring the $y$ coordinate). - -\ccInclude{CGAL/Convex_hull_projective_xz_traits_2.h} - -\ccIsModel - -\ccRefConceptPage{ConvexHullTraits_2}% -\ccIndexSubitem[c]{ConvexHullTraits_2}{model} \\ - -\ccTypes -\ccAutoIndexingOff -\ccSetThreeColumns{typedef R::Less_dist_to_line_plane_xy_2}{Less_signed -_distance_to_line_2}{} -\ccThreeToTwo - -\ccTypedef{typedef Point_3 Point_2;}{} -\ccGlue -\ccTypedef{typedef Less_xy_plane_xz_2 Less_xy_2;}{} -\ccGlue -\ccTypedef{typedef Less_yx_plane_xz_2 Less_yx_2;}{} -\ccGlue -\ccTypedef{typedef Left_of_line_plane_xz_2 Left_of_line_2;}{} -\ccGlue -\ccTypedef{typedef Less_dist_to_line_plane_xz_2 - Less_signed_distance_to_line_2;}{} -\ccGlue -\ccTypedef{typedef Less_rotate_ccw_plane_xz_2 Less_rotate_ccw_2;}{} -\ccGlue -\ccTypedef{typedef Leftturn_plane_xz_2 Leftturn_2;}{} - - -\ccCreation -\ccCreationVariable{traits} %% choose variable name - -\ccConstructor{Convex_hull_projective_xz_traits_2();}{default constructor.} - -\ccOperations - -\ccMemberFunction{Less_xy_2 less_xy_2_object(); }{} -\ccGlue -\ccMemberFunction{Less_yx_2 less_yx_2_object(); }{} -\ccGlue -\ccMemberFunction{Left_of_line_2 - left_of_line_2_object(const Point_2& p, const Point_2& q); } -{} -\ccGlue -\ccMemberFunction{Less_signed_distance_to_line_2 - less_signed_distance_to_line_2_object(const Point_2& p, - const Point_2& q); }{} -\ccGlue -\ccMemberFunction{Less_rotate_ccw_2 - less_rotate_ccw_2_object(const Point_2& p); }{} -\ccGlue -\ccMemberFunction{Leftturn_2 leftturn_2_object(); }{} - - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::Convex_hull_constructive_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_leda_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_projective_xy_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_projective_yz_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_rat_leda_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_traits_2} - -\ccIndexTraitsClassEnd -\ccAutoIndexingOff -\end{ccRefClass} -\ccAutoIndexingOn - -% EOF diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_projective_yz_traits_2.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_projective_yz_traits_2.tex deleted file mode 100644 index 7ae60cbc38a..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_projective_yz_traits_2.tex +++ /dev/null @@ -1,89 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: Convex_hull_projective_yz_traits.tex -% +------------------------------------------------------------------------+ -% | 14.05.2001 Susan Hert -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - -\ccAutoIndexingOff -\begin{ccRefClass}{Convex_hull_projective_yz_traits_2} -\ccAutoIndexingOn -\ccIndexTraitsClassBegin{Convex_hull_projective_yz_traits_2}{}{convex hull, 2D} - -\ccDefinition - -The class \ccRefName\ serves as a traits class for all the two-dimensional -convex hull and extreme point calculation function. This class can be -used to compute the convex hull of a set of 3D points projected onto the -$yz$ plane (\textit{i.e.}, by ignoring the $x$ coordinate). - -\ccInclude{CGAL/Convex_hull_projective_yz_traits_2.h} - -\ccIsModel - -\ccRefConceptPage{ConvexHullTraits_2}% -\ccIndexSubitem[c]{ConvexHullTraits_2}{model} \\ - -\ccTypes -\ccAutoIndexingOff -\ccSetThreeColumns{typedef R::Less_dist_to_line_plane_xy_2}{Less_signed -_distance_to_line_2}{} -\ccThreeToTwo - -\ccTypedef{typedef Point_3 Point_2;}{} -\ccGlue -\ccTypedef{typedef Less_xy_plane_yz_2 Less_xy_2;}{} -\ccGlue -\ccTypedef{typedef Less_yx_plane_yz_2 Less_yx_2;}{} -\ccGlue -\ccTypedef{typedef Left_of_line_plane_yz_2 Left_of_line_2;}{} -\ccGlue -\ccTypedef{typedef Less_dist_to_line_plane_yz_2 - Less_signed_distance_to_line_2;}{} -\ccGlue -\ccTypedef{typedef Less_rotate_ccw_plane_yz_2 Less_rotate_ccw_2;}{} -\ccGlue -\ccTypedef{typedef Leftturn_plane_yz_2 Leftturn_2;}{} - - -\ccCreation -\ccCreationVariable{traits} %% choose variable name - -\ccConstructor{Convex_hull_projective_yz_traits_2();}{default constructor.} - -\ccOperations - -\ccMemberFunction{Less_xy_2 less_xy_2_object(); }{} -\ccGlue -\ccMemberFunction{Less_yx_2 less_yx_2_object(); }{} -\ccGlue -\ccMemberFunction{Left_of_line_2 - left_of_line_2_object(const Point_2& p, const Point_2& q); } -{} -\ccGlue -\ccMemberFunction{Less_signed_distance_to_line_2 - less_signed_distance_to_line_2_object(const Point_2& p, - const Point_2& q); }{} -\ccGlue -\ccMemberFunction{Less_rotate_ccw_2 - less_rotate_ccw_2_object(const Point_2& p); }{} -\ccGlue -\ccMemberFunction{Leftturn_2 leftturn_2_object(); }{} -\ccAutoIndexingOn - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::Convex_hull_constructive_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_leda_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_projective_xz_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_projective_xy_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_rat_leda_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_traits_2} - -\ccIndexTraitsClassEnd -\ccAutoIndexingOff -\end{ccRefClass} -\ccAutoIndexingOn - -% EOF diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_rat_leda_traits_2.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_rat_leda_traits_2.tex deleted file mode 100644 index 64ec4916b9c..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_rat_leda_traits_2.tex +++ /dev/null @@ -1,92 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: Convex_hull_rat_leda_traits_2.tex -% +------------------------------------------------------------------------+ -% | 14.05.2001 Susan Hert and Stefan Schirra -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - -\ccAutoIndexingOff -\begin{ccRefClass}{Convex_hull_rat_leda_traits_2} -\ccAutoIndexingOn -\ccIndexTraitsClassBegin{Convex_hull_rat_leda_traits_2}{}{convex hull, 2D} - -\ccDefinition - -The class \ccRefName\ serves as a traits class for all the two-dimensional -convex hull and extreme point calculation function. It uses the -two-dimensional exact rational geometry kernel of \leda. The usage of this -traits class is not recommended with \ccc{ch_eddy()} for \leda\ versions prior -to 3.6. Older versions of \leda\ do -not provide appropriate efficient predicates for this function. - -\ccInclude{CGAL/convex_hull_rat_leda_traits_2.h} - -\ccIsModel - -\ccRefConceptPage{ConvexHullTraits_2}% -\ccIndexSubitem[c]{ConvexHullTraits_2}{model} \\ - -\ccTypes -\ccAutoIndexingOff -\ccSetThreeColumns{typedef CGAL::p_Less_signed_distance_to_line_2 }{Less_signed_distance_to_line_2}{} -\ccThreeToTwo - -\ccTypedef{typedef leda_rat_point Point_2;}{} -\ccGlue -\ccTypedef{typedef CGAL::p_Less_xy Less_xy_2;}{} -\ccGlue -\ccTypedef{typedef CGAL::p_Less_yx Less_yx_2;}{} -\ccGlue -\ccTypedef{typedef CGAL::p_Left_of_line_2p Left_of_line_2;}{} -\ccGlue -\ccTypedef{typedef CGAL::p_Less_dist_to_line_2p - Less_signed_distance_to_line_2;}{} -\ccGlue -\ccTypedef{typedef CGAL::p_Less_rotate_ccw Less_rotate_ccw_2;}{} -\ccGlue -\ccTypedef{typedef CGAL::p_Leftturn Leftturn_2;}{} - - -\ccCreation -\ccCreationVariable{traits} %% choose variable name - -\ccConstructor{Convex_hull_rat_leda_traits_2(Convex_hull_rat_leda_traits_2& t);}{copy constructor.} - -\ccOperations - -\ccAutoIndexingOff -\ccMemberFunction{Less_xy_2 less_xy_2_object(); }{} -\ccGlue -\ccMemberFunction{Less_yx_2 less_yx_2_object(); }{} -\ccGlue -\ccMemberFunction{Left_of_line_2 - left_of_line_2_object(const Point_2& p, const Point_2& q); } -{} -\ccGlue -\ccMemberFunction{Less_signed_distance_to_line_2 - less_signed_distance_to_line_2_object(const Point_2& p, - const Point_2& q); }{} -\ccGlue -\ccMemberFunction{Less_rotate_ccw_2 - less_rotate_ccw_2_object(const Point_2& p); }{} -\ccGlue -\ccMemberFunction{Leftturn_2 leftturn_2_object(); }{} -\ccAutoIndexingOn - - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::Convex_hull_constructive_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_leda_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_projective_xy_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_projective_xz_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_projective_yz_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_traits_2} - -\ccIndexTraitsClassEnd -\ccAutoIndexingOff -\end{ccRefClass} -\ccAutoIndexingOn - -% EOF diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_traits_2.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_traits_2.tex deleted file mode 100644 index 80997d9fbc8..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/Convex_hull_traits_2.tex +++ /dev/null @@ -1,90 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: Convex_hull_traits_2.tex -% +------------------------------------------------------------------------+ -% | 14.05.2001 Susan Hert -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - -\ccAutoIndexingOff -\begin{ccRefClass}{Convex_hull_traits_2} -\ccAutoIndexingOn -\ccIndexTraitsClassBegin{Convex_hull_traits_2}{}{convex hull, 2D} -\ccIndexTraitsClassDefault[p]{convex hull, 2D} -\ccIndexTraitsClassDefault[p]{extreme points, 2D} - -\ccDefinition - -The class \ccRefName\ serves as a traits class for all the two-dimensional -convex hull and extreme point calculation function. This class corresponds -to the default traits class for these functions. - -\ccInclude{CGAL/convex_hull_traits_2.h} - -\ccIsModel - -\ccRefConceptPage{ConvexHullTraits_2}% -\ccIndexSubitem[c]{ConvexHullTraits_2}{model} \\ - -\ccTypes -\ccAutoIndexingOff -\ccSetThreeColumns{typedef R::Less_signed_distance_to_line_2 }{Less_signed_distance_to_line_2}{} -\ccThreeToTwo - -\ccTypedef{typedef R::Point_2 Point_2;}{} -\ccGlue -\ccTypedef{typedef R::Less_xy Less_xy_2;}{} -\ccGlue -\ccTypedef{typedef R::Less_yx Less_yx_2;}{} -\ccGlue -\ccTypedef{typedef R::Left_of_line_2 Left_of_line_2;}{} -\ccGlue -\ccTypedef{typedef R::Less_signed_distance_to_line_2 - Less_signed_distance_to_line_2;}{} -\ccGlue -\ccTypedef{typedef R::Less_rotate_ccw_2 Less_rotate_ccw_2;}{} -\ccGlue -\ccTypedef{typedef R::Leftturn_2 Leftturn_2;}{} - - -\ccCreation -\ccCreationVariable{traits} %% choose variable name - -\ccConstructor{Convex_hull_traits_2(Convex_hull_traits_2& t);}% - {copy constructor.} - -\ccOperations -\ccAutoIndexingOff -\ccMemberFunction{Less_xy_2 less_xy_2_object(); }{} -\ccGlue -\ccMemberFunction{Less_yx_2 less_yx_2_object(); }{} -\ccGlue -\ccMemberFunction{Left_of_line_2 - left_of_line_2_object(const Point_2& p, const Point_2& q); } -{} -\ccGlue -\ccMemberFunction{Less_signed_distance_to_line_2 - less_signed_distance_to_line_2_object(const Point_2& p, - const Point_2& q); }{} -\ccGlue -\ccMemberFunction{Less_rotate_ccw_2 - less_rotate_ccw_2_object(const Point_2& p); }{} -\ccGlue -\ccMemberFunction{Leftturn_2 leftturn_2_object(); }{} -\ccAutoIndexingOn - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::Convex_hull_constructive_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_leda_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_projective_xy_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_projective_xz_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_projective_yz_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_rat_leda_traits_2} - -\ccIndexTraitsClassEnd -\ccAutoIndexingOff -\end{ccRefClass} -\ccAutoIndexingOn - -% EOF diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_akl_toussaint.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_akl_toussaint.tex deleted file mode 100644 index 1fa85fc4b22..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_akl_toussaint.tex +++ /dev/null @@ -1,84 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: ch_akl_toussaint.tex -% +------------------------------------------------------------------------+ -% | 09.05.2001 Susan Hert and Stefan Schirra -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - -%\renewcommand{\ccRefPageBegin}{\begin{ccAdvanced}} -%\renewcommand{\ccRefPageEnd}{\end{ccAdvanced}} -\begin{ccRefFunction}{ch_akl_toussaint} %% add template arg's if necessary -\ccIndexSubitemBegin{convex hull, 2D}{Akl-Toussaint algorithm} - -\ccDefinition - -The function \ccRefName\ generates the counterclockwise sequence of extreme -points from a given set of input points. - - -\ccInclude{CGAL/ch_akl_toussiant.h} - -\ccFunction{template - OutputIterator - ch_akl_toussaint(ForwardIterator first, ForwardIterator beyond, - OutputIterator result, - const Traits& ch_traits = Default_traits());} - {generates the counterclockwise sequence of extreme points - of the points in the range [\ccc{first},\ccc{beyond}). - The resulting sequence is placed starting at position - \ccc{result}, and the past-the-end iterator for the resulting - sequence is returned. It is not specified at which point the - cyclic sequence of extreme points is cut into a linear sequence. - \ccPrecond %\ccIndexSubitem[C]{ch_akl_toussaint}{preconditions} - The source range [\ccc{first},\ccc{beyond}) does not contain - \ccc{result}.} - - -The default traits class \ccc{Default_traits} is the kernel in which the -type \ccc{ForwardIteartor::value_type} is defined. - -\ccHeading{Requirements} -\begin{enumerate} - \item \ccc{ForwardIterator::value_type} and - \ccc{OutputIterator::value_type} - are equivalent to \ccc{Traits::Point_2}. - \item \ccc{Traits} defines the following subset of types from - the concept ConvexHullTraits\_2 and their corresponding member - %\ccIndexMainItem[c]{ConvexHullTraits_2} - functions that return instances of these types: - \begin{itemize} - \item \ccc{Traits::Point_2}, - \item \ccc{Traits::Less_xy_2}, - \item \ccc{Traits::Less_yx_2}, - \item \ccc{Traits::Left_of_line_2}, - \item \ccc{Traits::Leftturn_2}. - \end{itemize} -\end{enumerate} - - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::ch_bykat} \\ -\ccRefIdfierPage{CGAL::ch_eddy} \\ -\ccRefIdfierPage{CGAL::ch_graham_andrew} \\ -\ccRefIdfierPage{CGAL::ch_jarvis} \\ -\ccRefIdfierPage{CGAL::ch_melkman} \\ -\ccRefIdfierPage{CGAL::convex_hull_2} - -\ccImplementation - -This function uses the algorithm of Akl and -Toussaint \cite{at-fcha-78} that requires $O(n \log n)$ time for $n$ input -points. - -\ccIndexSubitemEnd{convex hull, 2D}{Akl-Toussaint algorithm} -\end{ccRefFunction} -%\renewcommand{\ccRefPageBegin}{} -%\renewcommand{\ccRefPageEnd}{} - -% +------------------------------------------------------------------------+ -%%RefPage: end of main body, begin of footer -% EOF -% +------------------------------------------------------------------------+ - diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_bykat.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_bykat.tex deleted file mode 100644 index 8f089624497..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_bykat.tex +++ /dev/null @@ -1,83 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: ch_bykat.tex -% +------------------------------------------------------------------------+ -% | 09.05.2001 Susan Hert and Stefan Schirra -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - -%\renewcommand{\ccRefPageBegin}{\begin{ccAdvanced}} -%\renewcommand{\ccRefPageEnd}{\end{ccAdvanced}} -\begin{ccRefFunction}{ch_bykat} -\ccIndexSubitemBegin{convex hull, 2D}{Bykat algorithm} - -\ccDefinition - -The function \ccRefName\ generates the counterclockwise sequence of extreme -points from a given set of input points. - - -\ccInclude{CGAL/ch_bykat.h} - -\ccFunction{template - OutputIterator - ch_bykat( InputIterator first, - InputIterator beyond, - OutputIterator result, - const Traits & ch_traits = Default_traits);} - {generates the counterclockwise sequence of extreme points - of the points in the range [\ccc{first},\ccc{beyond}). - The resulting sequence is placed starting at position - \ccc{result}, and the past-the-end iterator for the resulting - sequence is returned. It is not specified at which point the - cyclic sequence of extreme points is cut into a linear sequence. - \ccPrecond %\ccIndexSubitem[C]{ch_bykat}{preconditions} - The source range [\ccc{first},\ccc{beyond}) does not contain - \ccc{result}.} - -The default traits class \ccc{Default_traits} is the kernel in which the -type \ccc{ForwardIteartor::value_type} is defined. - - -\ccHeading{Requirements} -\begin{enumerate} - \item \ccc{InputIterator::value_type} and - \ccc{OutputIterator::value_type} - are equivalent to \ccc{Traits::Point_2}. - \item \ccc{Traits} defines the following subset of types from - the concept ConvexHullTraits\_2 and their corresponding member - %\ccIndexMainItem[c]{ConvexHullTraits_2} - functions that return instances of these types: - \begin{itemize} - \item \ccc{Traits::Point_2}, - \item \ccc{Traits::Less_signed_distance_to_line_2}, - \item \ccc{Traits::Left_of_line_2}, - \item \ccc{Traits::Less_xy_2}. - \end{itemize} -\end{enumerate} - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::ch_akl_toussaint} \\ -\ccRefIdfierPage{CGAL::ch_eddy} \\ -\ccRefIdfierPage{CGAL::ch_graham_andrew} \\ -\ccRefIdfierPage{CGAL::ch_jarvis} \\ -\ccRefIdfierPage{CGAL::ch_melkman} \\ -\ccRefIdfierPage{CGAL::convex_hull_2} - -\ccImplementation -This function implements the non-recursive varitaion of -Eddy's algorithm \cite{e-nchap-77} described in \cite{b-chfsp-78}. -This algorithm requires $O(n h)$ time -in the worst case for $n$ input points with $h$ extreme points. - -\ccIndexSubitemEnd{convex hull, 2D}{Bykat algorithm} -\end{ccRefFunction} -%\renewcommand{\ccRefPageBegin}{} -%\renewcommand{\ccRefPageEnd}{} - -% +------------------------------------------------------------------------+ -%%RefPage: end of main body, begin of footer -% EOF -% +------------------------------------------------------------------------+ - diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_e_point.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_e_point.tex deleted file mode 100644 index d709bd10f59..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_e_point.tex +++ /dev/null @@ -1,57 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: ch_e_point.tex -% +------------------------------------------------------------------------+ -% | 09.05.2001 Susan Hert and Stefan Schirra -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - - -\begin{ccRefFunction}{ch_e_point} %% add template arg's if necessary -\ccIndexSubitemBegin{extreme points, 2D}{in coordinate directions} - -\ccDefinition - -The function \ccRefName\ finds a point of a given set -of input points with maximal $x$ coordinate. - -\ccInclude{CGAL/ch_selected_extreme_points_2.h} - -\ccFunction{template - void - ch_e_point( ForwardIterator first, ForwardIterator beyond, - ForwardIterator& e, - const Traits & ch_traits = Default_traits);} - {traverses the range [\ccc{first},\ccc{beyond}). - After execution, the value of - \ccc{e} is an iterator in the range such that \ccc{*e} $\ge_{xy}$ - \ccc{*it} for all iterators \ccc{it} in the range. } - -The default traits class \ccc{Default_traits} is the kernel in which the -type \ccc{ForwardIteartor::value_type} is defined. - -\ccHeading{Requirements} -\ccc{Traits} defines a type \ccc{Traits::Less_xy_2} as described in -the concept ConvexHullTraits\_2 and the corresponding member -%\ccIndexMainItem[c]{ConvexHullTraits_2} -function that returns an instance of this type. - - - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::ch_nswe_point} \\ -\ccRefIdfierPage{CGAL::ch_n_point} \\ -\ccRefIdfierPage{CGAL::ch_ns_point} \\ -\ccRefIdfierPage{CGAL::ch_s_point} \\ -\ccRefIdfierPage{CGAL::ch_w_point} \\ -\ccRefIdfierPage{CGAL::ch_we_point} - -\ccIndexSubitemEnd{extreme points, 2D}{in coordinate directions} -\end{ccRefFunction} - -% +------------------------------------------------------------------------+ -%%RefPage: end of main body, begin of footer -% EOF -% +------------------------------------------------------------------------+ - diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_eddy.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_eddy.tex deleted file mode 100644 index 147b852d8ae..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_eddy.tex +++ /dev/null @@ -1,87 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: ch_eddy.tex -% +------------------------------------------------------------------------+ -% | 09.05.2001 Susan Hert and Stefan Schirra -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - -%\renewcommand{\ccRefPageBegin}{\begin{ccAdvanced}} -%\renewcommand{\ccRefPageEnd}{\end{ccAdvanced}} -\begin{ccRefFunction}{ch_eddy} %% add template arg's if necessary -\ccIndexSubitemBegin{convex hull, 2D}{Eddy algorithm} - -\ccDefinition - -The function \ccRefName\ generates the counterclockwise sequence of extreme -points from a given set of input points. - - -\ccInclude{CGAL/ch_eddy.h} - -\ccFunction{template - OutputIterator - ch_eddy( InputIterator first, - InputIterator beyond, - OutputIterator result, - const Traits & ch_traits = Default_traits);} - {generates the counterclockwise sequence of extreme points - of the points in the range [\ccc{first},\ccc{beyond}). - The resulting sequence is placed starting at position - \ccc{result}, and the past-the-end iterator for the resulting - sequence is returned. It is not specified at which point the - cyclic sequence of extreme points is cut into a linear sequence. - \ccPrecond %\ccIndexSubitem[C]{ch_eddy}{preconditions} - The source range [\ccc{first},\ccc{beyond}) does not contain - \ccc{result}.} - -The default traits class \ccc{Default_traits} is the kernel in which the -type \ccc{ForwardIteartor::value_type} is defined. - - -\ccHeading{Requirements} -\begin{enumerate} - \item \ccc{InputIterator::value_type} and - \ccc{OutputIterator::value_type} - are equivalent to \ccc{Traits::Point_2}. - \item \ccc{Traits} defines the following subset of types from - the concept ConvexHullTraits\_2 and their corresponding member - %\ccIndexMainItem[c]{ConvexHullTraits_2} - functions that return instances of these types: - \begin{itemize} - \item \ccc{Traits::Point_2}, - \item \ccc{Traits::Less_signed_distance_to_line_2}, - \item \ccc{Traits::Left_of_line_2}, - \item \ccc{Traits::Less_xy_2}. - \end{itemize} -\end{enumerate} - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::ch_akl_toussaint} \\ -\ccRefIdfierPage{CGAL::ch_bykat} \\ -\ccRefIdfierPage{CGAL::ch_graham_andrew} \\ -\ccRefIdfierPage{CGAL::ch_jarvis} \\ -\ccRefIdfierPage{CGAL::ch_melkman} \\ -\ccRefIdfierPage{CGAL::convex_hull_2} - -\ccImplementation - -This function implements Eddy's algorithm -\cite{e-nchap-77}, which is the two-dimensional version of the quickhull -algorithm \cite{bdh-qach-96}% -\ccIndexMainItem{quickhull, 2D} -\ccIndexSubitem{convex hull, 2D}{quickhull}. -This algorithm requires $O(n h)$ time -in the worst case for $n$ input points with $h$ extreme points. - -\ccIndexSubitemEnd{convex hull, 2D}{Eddy algorithm} -\end{ccRefFunction} -%\renewcommand{\ccRefPageBegin}{} -%\renewcommand{\ccRefPageEnd}{} - -% +------------------------------------------------------------------------+ -%%RefPage: end of main body, begin of footer -% EOF -% +------------------------------------------------------------------------+ - diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_graham_andrew.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_graham_andrew.tex deleted file mode 100644 index 86d366c7ec4..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_graham_andrew.tex +++ /dev/null @@ -1,84 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: ch_graham_andrew.tex -% +------------------------------------------------------------------------+ -% | 09.05.2001 Susan Hert and Stefan Schirra -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - -%\renewcommand{\ccRefPageBegin}{\begin{ccAdvanced}} -%\renewcommand{\ccRefPageEnd}{\end{ccAdvanced}} -\begin{ccRefFunction}{ch_graham_andrew} %% add template arg's if necessary -\ccIndexSubitemBegin{convex hull, 2D}{Graham-Andrew scan} - -\ccDefinition - -The function \ccRefName\ generates the counterclockwise sequence of extreme -points from a given set of input points. - - -\ccInclude{CGAL/ch_graham_andrew.h} - -\ccFunction{template - OutputIterator - ch_graham_andrew( InputIterator first, - InputIterator beyond, - OutputIterator result, - const Traits & ch_traits = Default_traits);} - {generates the counterclockwise sequence of extreme points - of the points in the range [\ccc{first},\ccc{beyond}). - The resulting sequence is placed starting at position - \ccc{result}, and the past-the-end iterator for the resulting - sequence is returned. It is not specified at which point the - cyclic sequence of extreme points is cut into a linear sequence. - \ccPrecond %\ccIndexSubitem[C]{ch_graham_andrew}{preconditions} - The source range [\ccc{first},\ccc{beyond}) does not contain - \ccc{result}.} - -The default traits class \ccc{Default_traits} is the kernel in which the -type \ccc{InputIteartor::value_type} is defined. - -\ccHeading{Requirements} -\begin{enumerate} - \item \ccc{InputIterator::value_type} and - \ccc{OutputIterator::value_type} - are equivalent to \ccc{Traits::Point_2}. - \item \ccc{Traits} defines the following subset of types from - the concept ConvexHullTraits\_2 and their corresponding member - %\ccIndexMainItem[c]{ConvexHullTraits_2} - functions that return instances of these types: - \begin{itemize} - \item \ccc{Traits::Point_2}, - \item \ccc{Traits::Less_xy_2}, - \item \ccc{Traits::Leftturn_2}. - \end{itemize} -\end{enumerate} - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::ch_akl_toussaint} \\ -\ccRefIdfierPage{CGAL::ch_bykat} \\ -\ccRefIdfierPage{CGAL::ch_eddy} \\ -\ccRefIdfierPage{CGAL::ch_graham_andrew_scan} \\ -\ccRefIdfierPage{CGAL::ch_jarvis} \\ -\ccRefIdfierPage{CGAL::ch_melkman} \\ -\ccRefIdfierPage{CGAL::convex_hull_2} \\ -\ccRefIdfierPage{CGAL::lower_hull_points_2} \\ -\ccRefIdfierPage{CGAL::upper_hull_points_2} - -\ccImplementation -This function implements Andrew's variant of the Graham -scan algorithm \cite{a-aeach-79} and follows the presenation of Mehlhorn -\cite{m-mdscg-84}. This algorithm requires $O(n \log n)$ time -in the worst case for $n$ input points. - -\ccIndexSubitemEnd{convex hull, 2D}{Graham-Andrew scan} -\end{ccRefFunction} -%\renewcommand{\ccRefPageBegin}{} -%\renewcommand{\ccRefPageEnd}{} - -% +------------------------------------------------------------------------+ -%%RefPage: end of main body, begin of footer -% EOF -% +------------------------------------------------------------------------+ - diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_graham_andrew_scan.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_graham_andrew_scan.tex deleted file mode 100644 index 8b5ad73f939..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_graham_andrew_scan.tex +++ /dev/null @@ -1,123 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: ch_graham_andrew.tex -% +------------------------------------------------------------------------+ -% | 09.05.2001 Susan Hert and Stefan Schirra -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - - -\begin{ccRefFunction}{ch_graham_andrew_scan} %% add template arg's if necessary -\ccIndexSubitemBegin{convex hull, 2D}{Graham-Andrew scan} -\ccIndexSubitemBegin{extreme points, 2D}{right of line} - -\ccDefinition - -The function \ccRefName\ generates the counterclockwise sequence of extreme -points from a given set of input points that are not left of the line defined -by the first and last points in this sequence. - - -\ccInclude{CGAL/ch_graham_andrew.h} - -\ccFunction{template - OutputIterator - ch_graham_andrew_scan( BidirectionalIterator first, - BidirectionalIterator beyond, - OutputIterator result, - const Traits& ch_traits = Default_traits);} - {generates the counterclockwise sequence of extreme points that are - not left of $pq$, where $p$ is the value of \ccc{first} and $q$ is - the value of \ccc{beyond} $-1$. The resulting sequence is placed - starting at \ccc{result} with $p$; point $q$ is omitted. The - past-the-end iterator for the sequence is returned. - \ccPrecond %\ccIndexSubitem[C]{ch_graham_andrew_scan}{preconditions} - The range [\ccc{first},\ccc{beyond}) contains at least - two different points. - The points in [\ccc{first},\ccc{beyond}) are ``sorted'' with respect - to $pq$, {\it i.e.}, the sequence of points in - [\ccc{first},\ccc{beyond}) define a counterclockwise polygon, - for which the Graham-Sklansky-procedure \cite{s-mcrm-72} works.} - -The default traits class \ccc{Default_traits} is the kernel in which the -type \ccc{BidirectionalIterator::value_type} is defined. - - -\ccHeading{Requirements} -\begin{enumerate} - \item \ccc{BidirectionalIterator::value_type} and - \ccc{OutputIterator::value_type} - are equivalent to \ccc{Traits::Point_2}. - \item \ccc{Traits} defines the following two types from - the concept ConvexHullTraits\_2 and their corresponding member - %\ccIndexMainItem[c]{ConvexHullTraits_2} - functions that return instances of these types: - \begin{itemize} - \item \ccc{Traits::Point_2}, - \item \ccc{Traits::Leftturn_2}. - \end{itemize} -\end{enumerate} - - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::ch_graham_andrew} \\ -\ccRefIdfierPage{CGAL::lower_hull_points_2} \\ -\ccRefIdfierPage{CGAL::upper_hull_points_2} - -\ccImplementation - -The function uses Andrew's -variant of the Graham scan algorithm \cite{a-aeach-79} . This algorithm -requires $O(n \log n)$ time in the worst case for $n$ input points. - -\ccExample - -In the following example \ccc{ch_graham_andrew_scan()} is used to -realize Anderson's variant \cite{a-readc-78} of the Graham Scan -\cite{g-eadch-72}. The points are sorted counterclockwise around the leftmost -point using the \ccc{Less_rotate_ccw_2} predicate, as defined in -the concept ConvexHullTraits\_2. According to the definition -of \ccc{Less_rotate_ccw_2}, the leftmost point is the last point in the sorted -sequence and its predecessor on the convex hull is the first point in the -sorted sequence. It is not hard to see that the preconditions of -\ccc{ch_graham_andrew_scan()} are satisfied. Anderson's variant of the -Graham scan is usually inferior to Andrew's variant because of its higher -arithmetic demand. - -\begin{verbatim} -template -OutputIterator -ch_graham_anderson( InputIterator first, InputIterator beyond, - OutputIterator result, const Traits& ch_traits) -{ - typedef typename Traits::Less_xy_2 Less_xy_2; - typedef typename Traits::Point_2 Point_2; - typedef typename Traits::Less_rotate_ccw_2 Less_rotate_ccw_2; - - if (first == beyond) return result; - std::vector< Point_2 > V; - copy( first, beyond, back_inserter(V) ); - typename std::vector< Point_2 >::iterator it = - std::min_element(V.begin(), V.end(), Less_xy_2()); - std::sort( V.begin(), V.end(), Less_rotate_ccw_2(*it) ); - if ( *(V.begin()) == *(V.rbegin()) ) - { - *result = *(V.begin()); ++result; - return result; - } - return ch_graham_andrew_scan( V.begin(), V.end(), result, ch_traits); -} -\end{verbatim} - - -\ccIndexSubitemEnd{convex hull, 2D}{Graham-Andrew scan} -\ccIndexSubitemEnd{extreme points, 2D}{right of line} -\end{ccRefFunction} - -% +------------------------------------------------------------------------+ -%%RefPage: end of main body, begin of footer -% EOF -% +------------------------------------------------------------------------+ - diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_jarvis.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_jarvis.tex deleted file mode 100644 index 1d6a730a92f..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_jarvis.tex +++ /dev/null @@ -1,85 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: ch_jarvis.tex -% +------------------------------------------------------------------------+ -% | 09.05.2001 Susan Hert and Stefan Schirra -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - -%\renewcommand{\ccRefPageBegin}{\begin{ccAdvanced}} -%\renewcommand{\ccRefPageEnd}{\end{ccAdvanced}} -\begin{ccRefFunction}{ch_jarvis} %% add template arg's if necessary -\ccIndexSubitemBegin{convex hull, 2D}{Jarvis march} -\ccIndexSubitemBegin{convex hull, 2D}{gift-wrapping} - -\ccDefinition - -The function \ccRefName\ generates the counterclockwise sequence of extreme -points from a given set of input points. - - -\ccInclude{CGAL/ch_jarvis.h} - -\ccFunction{template - OutputIterator - ch_jarvis( InputIterator first, - InputIterator beyond, - OutputIterator result, - const Traits & ch_traits = Default_traits);} - {generates the counterclockwise sequence of extreme points - of the points in the range [\ccc{first},\ccc{beyond}). - The resulting sequence is placed starting at position - \ccc{result}, and the past-the-end iterator for the resulting - sequence is returned. It is not specified at which point the - cyclic sequence of extreme points is cut into a linear sequence. - \ccPrecond %\ccIndexSubitem[C]{ch_jarvis}{preconditions} - The source range [\ccc{first},\ccc{beyond}) does not contain - \ccc{result}.} - -The default traits class \ccc{Default_traits} is the kernel in which the -type \ccc{InputIterator::value_type} is defined. - -\ccHeading{Requirements} -\begin{enumerate} - \item \ccc{InputIterator::value_type} and - \ccc{OutputIterator::value_type} - are equivalent to \ccc{Traits::Point_2}. - \item \ccc{Traits} defines the following subset of types from - the concept ConvexHullTraits\_2 and their corresponding member - %\ccIndexMainItem[c]{ConvexHullTraits_2} - functions that return instances of these types: - \begin{itemize} - \item \ccc{Traits::Point_2}, - \item \ccc{Traits::Less_rotate_ccw_2}, - \item \ccc{Traits::Less_xy_2}. - \end{itemize} -\end{enumerate} - - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::ch_akl_toussaint} \\ -\ccRefIdfierPage{CGAL::ch_bykat} \\ -\ccRefIdfierPage{CGAL::ch_eddy} \\ -\ccRefIdfierPage{CGAL::ch_graham_andrew} \\ -\ccRefIdfierPage{CGAL::ch_jarvis_march} \\ -\ccRefIdfierPage{CGAL::ch_melkman} \\ -\ccRefIdfierPage{CGAL::convex_hull_2} - -\ccIndexSubitemEnd{convex hull, 2D}{gift-wrapping} -\ccIndexSubitemEnd{convex hull, 2D}{Jarvis march} - -\ccImplementation -This function uses the Jarvis march (gift-wrapping) -algorithm \cite{j-ichfs-73}. This algorithm requires $O(n h)$ time -in the worst case for $n$ input points with $h$ extreme points. - -\end{ccRefFunction} -%\renewcommand{\ccRefPageBegin}{} -%\renewcommand{\ccRefPageEnd}{} - -% +------------------------------------------------------------------------+ -%%RefPage: end of main body, begin of footer -% EOF -% +------------------------------------------------------------------------+ - diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_jarvis_march.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_jarvis_march.tex deleted file mode 100644 index 4557f6f8279..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_jarvis_march.tex +++ /dev/null @@ -1,81 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: ch_jarvis_march.tex -% +------------------------------------------------------------------------+ -% | 09.05.2001 Susan Hert and Stefan Schirra -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - -\begin{ccRefFunction}{ch_jarvis_march} %% add template arg's if necessary -\ccIndexSubitemBegin{convex hull, 2D}{Jarvis march} -\ccIndexSubitemBegin{convex hull, 2D}{gift-wrapping} -\ccIndexSubitemBegin{extreme points, 2D}{between two points} - -\ccDefinition - -The function \ccRefName\ generates the counterclockwise sequence of extreme -points from a given set of input points that line between two input points. - - -\ccInclude{CGAL/ch_jarvis.h} - -\ccFunction{template - OutputIterator - ch_jarvis_march(ForwardIterator first, ForwardIterator beyond, - const Traits::Point_2& start_p, - const Traits::Point_2& stop_p, - OutputIterator result, - const Traits& ch_traits = Default_traits);} - {generates the counterclockwise subsequence of - extreme points between \ccc{start_p} and \ccc{stop_p} of the - points in the range [\ccc{first},\ccc{beyond}), starting at - position \ccc{result} with point \ccc{start_p}. The last point - generated is the point preceding \ccc{stop_p} in the - counterclockwise order of extreme points.\\ - \ccPrecond%\ccIndexSubitem[C]{ch_jarvis_march}{preconditions} - \ccc{start_p} and \ccc{stop_p} are extreme points with respect to - the points in the range [\ccc{first},\ccc{beyond}) and \ccc{stop_p} - is an element of range [\ccc{first},\ccc{beyond}).} - - -The default traits class \ccc{Default_traits} is the kernel in which the -type \ccc{ForwardIterator::value_type} is defined. - - -\ccHeading{Requirements} -\begin{enumerate} - \item \ccc{ForwardIterator::value_type} and - \ccc{OutputIterator::value_type} - are equivalent to \ccc{Traits::Point_2}. - \item \ccc{Traits} defines the following subset of types from - the concept ConvexHullTraits\_2 and their corresponding member - %\ccIndexMainItem[c]{ConvexHullTraits_2} - functions that return instances of these types: - \begin{itemize} - \item \ccc{Traits::Point_2}, - \item \ccc{Traits::Less_rotate_ccw_2}. - \end{itemize} -\end{enumerate} - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::ch_jarvis} \\ -\ccRefIdfierPage{CGAL::lower_hull_points_2} \\ -\ccRefIdfierPage{CGAL::upper_hull_points_2} \\ - -\ccIndexSubitemEnd{convex hull, 2D}{Jarvis march} -\ccIndexSubitemEnd{convex hull, 2D}{gift-wrapping} -\ccIndexSubitemEnd{extreme points, 2D}{between two points} - -\ccImplementation - -The function uses the Jarvis march (gift-wrapping) -algorithm \cite{j-ichfs-73}. This algorithm requires $O(n h)$ time -in the worst case for $n$ input points with $h$ extreme points. -\end{ccRefFunction} - -% +------------------------------------------------------------------------+ -%%RefPage: end of main body, begin of footer -% EOF -% +------------------------------------------------------------------------+ - diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_melkman.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_melkman.tex deleted file mode 100644 index 9bf2aff99ed..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_melkman.tex +++ /dev/null @@ -1,78 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: ch_melkman.tex -% +------------------------------------------------------------------------+ -% | 09.05.2001 Susan Hert and Stefan Schirra -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - - -\begin{ccRefFunction}{ch_melkman} %% add template arg's if necessary -\ccIndexSubitemBegin{convex hull, 2D}{of polyline or polygon} -\ccIndexSubitemBegin{convex hull, 2D}{Melkman algorithm} - -\ccDefinition - -The function \ccRefName\ computes the counterclockwise sequence of -extreme points of a sequence of points that forms a simple polyline or polygon. - -\ccInclude{CGAL/ch_melkman.C} - -\ccFunction{template - OutputIterator - ch_melkman( InputIterator first, InputIterator last, - OutputIterator result, - const Traits& ch_traits = Default_traits);} - {generates the counterclockwise sequence of extreme points - of the points in the range [\ccc{first}, \ccc{beyond}). - The resulting sequence is placed starting at - position \ccc{result}, and the past-the-end iterator for - the resulting sequence is returned. - \ccPrecond %\ccIndexSubitem[C]{ch_melkman}{preconditions} - The source range [\ccc{first},\ccc{beyond}) corresponds - to a simple polyline. - [\ccc{first},\ccc{beyond}) does not contain \ccc{result}}. - -The default traits class \ccc{Default_traits} is the kernel in which the -type \ccc{InputIterator::value_type} is defined. - - -\ccHeading{Requirements} -\begin{enumerate} - \item \ccc{InputIterator::value_type} and \ccc{OutputIterator::value_type} - are equivalent to \ccc{Traits::Point_2}. - \item \ccc{Traits} contains the following subset of types from - the concept ConvexHullTraits\_2 and their corresponding member - %\ccIndexMainItem[c]{ConvexHullTraits_2} - functions that return instances of these types: - \begin{itemize} - \item \ccc{Traits::Point_2}, - \item \ccc{Traits::Less_xy_2}, - \item \ccc{Traits::Leftturn_2}. - \end{itemize} -\end{enumerate} - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::ch_akl_toussaint} \\ -\ccRefIdfierPage{CGAL::ch_bykat} \\ -\ccRefIdfierPage{CGAL::ch_eddy} \\ -\ccRefIdfierPage{CGAL::ch_graham_andrew} \\ -\ccRefIdfierPage{CGAL::ch_jarvis} \\ -\ccRefIdfierPage{CGAL::ch_melkman} \\ -\ccRefIdfierPage{CGAL::convex_hull_2} - -\ccImplementation - -It uses an implementation of Melkman's algorithm \cite{m-olcch-87}. Running -time of this is linear. - -\ccIndexSubitemEnd{convex hull, 2D}{of polyline or polygon} -\ccIndexSubitemEnd{convex hull, 2D}{Melkman algorithm} -\end{ccRefFunction} - -% +------------------------------------------------------------------------+ -%%RefPage: end of main body, begin of footer -% EOF -% +------------------------------------------------------------------------+ - diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_n_point.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_n_point.tex deleted file mode 100644 index 6e42c9f619c..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_n_point.tex +++ /dev/null @@ -1,56 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: ch_n_point.tex -% +------------------------------------------------------------------------+ -% | 09.05.2001 Susan Hert and Stefan Schirra -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - - -\begin{ccRefFunction}{ch_n_point} %% add template arg's if necessary -\ccIndexSubitemBegin{extreme points, 2D}{in coordinate directions} - -\ccDefinition - -The function \ccRefName\ finds a point in a given set -of input points with maximal $y$ coordinate. - -\ccInclude{CGAL/ch_selected_extreme_points_2.h} - -\ccFunction{template - void - ch_n_point( ForwardIterator first, ForwardIterator beyond, - ForwardIterator& n, - const Traits & ch_traits = Default_traits);} - {traverses the range [\ccc{first},\ccc{beyond}). - After execution, the value of - \ccc{n} is an iterator in the range such that \ccc{*n} $\ge_{yx}$ - \ccc{*it} for all iterators \ccc{it} in the range.} - - -The default traits class \ccc{Default_traits} is the kernel in which the type -\ccc{ForwardIteartor::value_type} is defined. - -\ccHeading{Requirements} -\ccc{Traits} defines the type \ccc{Traits::Less_yx_2} as specified in -the concept ConvexHullTraits\_2 and the corresponding member -function that returns an instance of this type. - - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::ch_e_point} \\ -\ccRefIdfierPage{CGAL::ch_nswe_point} \\ -\ccRefIdfierPage{CGAL::ch_ns_point} \\ -\ccRefIdfierPage{CGAL::ch_s_point} \\ -\ccRefIdfierPage{CGAL::ch_w_point} \\ -\ccRefIdfierPage{CGAL::ch_we_point} - -\ccIndexSubitemEnd{extreme points, 2D}{in coordinate directions} -\end{ccRefFunction} - -% +------------------------------------------------------------------------+ -%%RefPage: end of main body, begin of footer -% EOF -% +------------------------------------------------------------------------+ - diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_ns_point.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_ns_point.tex deleted file mode 100644 index 4689ae70c07..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_ns_point.tex +++ /dev/null @@ -1,59 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: ch_ns_point.tex -% +------------------------------------------------------------------------+ -% | 09.05.2001 Susan Hert and Stefan Schirra -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - - -\begin{ccRefFunction}{ch_ns_point} %% add template arg's if necessary -\ccIndexSubitemBegin{extreme points, 2D}{in coordinate directions} - -\ccDefinition - -The function \ccRefName\ finds the points of a given set -of input points with minimal and maximal $x$ coordinates. - -\ccInclude{CGAL/ch_selected_extreme_points_2.h} - -\ccFunction{template - void - ch_ns_point( ForwardIterator first, ForwardIterator beyond, - ForwardIterator& n, - ForwardIterator& s, - const Traits & ch_traits = Default_traits);} - {traverses the range [\ccc{first},\ccc{beyond}). - After execution, the value of - \ccc{n} is an iterator in the range such that \ccc{*n} $\ge_{yx}$ - \ccc{*it} for all iterators \ccc{it} in the range. Similarly, for - \ccc{s} the inequality \ccc{*s} $\le_{yx}$ \ccc{*it} - holds for all iterators in the range.} - -The default traits class \ccc{Default_traits} is the kernel in which the -type \ccc{ForwardIteartor::value_type} is defined. - - -\ccHeading{Requirements} -\ccc{Traits} defines the type \ccc{Traits::Less_yx_2} as specified in -the concept ConvexHullTraits\_2 and the corresponding member -function that returns an instance of this type. - - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::ch_e_point} \\ -\ccRefIdfierPage{CGAL::ch_nswe_point} \\ -\ccRefIdfierPage{CGAL::ch_n_point} \\ -\ccRefIdfierPage{CGAL::ch_s_point} \\ -\ccRefIdfierPage{CGAL::ch_w_point} \\ -\ccRefIdfierPage{CGAL::ch_we_point} - -\ccIndexSubitemEnd{extreme points, 2D}{in coordinate directions} -\end{ccRefFunction} - -% +------------------------------------------------------------------------+ -%%RefPage: end of main body, begin of footer -% EOF -% +------------------------------------------------------------------------+ - diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_nswe_point.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_nswe_point.tex deleted file mode 100644 index f0bbe7e215b..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_nswe_point.tex +++ /dev/null @@ -1,68 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: ch_nswe_point.tex -% +------------------------------------------------------------------------+ -% | 09.05.2001 Susan Hert and Stefan Schirra -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - - -\begin{ccRefFunction}{ch_nswe_point} %% add template arg's if necessary -\ccIndexSubitemBegin{extreme points, 2D}{in coordinate directions} - -\ccDefinition - -The function \ccRefName\ finds the four extreme points of a given set -of input points using a linear scan of the input points. -That is, it determines the points with maximal $y$, minimal $y$, -minimal $x$, and maximal $x$ coordinates. - -\ccInclude{CGAL/ch_selected_extreme_points_2.h} - -\ccFunction{template - void - ch_nswe_point( ForwardIterator first, ForwardIterator beyond, - ForwardIterator& n, - ForwardIterator& s, - ForwardIterator& w, - ForwardIterator& e, - const Traits & ch_traits = Default_traits);} - {traverses the range [\ccc{first},\ccc{beyond}). - After execution, the value of - \ccc{n} is an iterator in the range such that \ccc{*n} $\ge_{yx}$ - \ccc{*it} for all iterators \ccc{it} in the range. Similarly, for - \ccc{s}, \ccc{w}, and \ccc{e} the inequalities \ccc{*s} $\le_{yx}$ - \ccc{*it}, \ccc{*w} $\le_{xy}$ \ccc{*it}, and \ccc{*e} - $\ge_{xy}$ \ccc{*it} hold for all iterators - \ccc{it} in the range.} - - -\ccHeading{Requirements} -\ccc{Traits} contains the following subset of types from -the concept ConvexHullTraits\_2 and their corresponding member -functions that return instances of these types: - \begin{itemize} - \item \ccc{Traits::Less_xy_2}, - \item \ccc{Traits::Less_yx_2}. - \end{itemize} - -The default traits class \ccc{Default_traits} is the kernel in which the -type \ccc{ForwardIteartor::value_type} is defined. - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::ch_e_point} \\ -\ccRefIdfierPage{CGAL::ch_n_point} \\ -\ccRefIdfierPage{CGAL::ch_ns_point} \\ -\ccRefIdfierPage{CGAL::ch_s_point} \\ -\ccRefIdfierPage{CGAL::ch_w_point} \\ -\ccRefIdfierPage{CGAL::ch_we_point} - -\ccIndexSubitemEnd{extreme points, 2D}{in coordinate directions} -\end{ccRefFunction} - -% +------------------------------------------------------------------------+ -%%RefPage: end of main body, begin of footer -% EOF -% +------------------------------------------------------------------------+ - diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_s_point.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_s_point.tex deleted file mode 100644 index 2ec2aba3a33..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_s_point.tex +++ /dev/null @@ -1,56 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: ch_s_point.tex -% +------------------------------------------------------------------------+ -% | 09.05.2001 Susan Hert and Stefan Schirra -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - - -\begin{ccRefFunction}{ch_s_point} %% add template arg's if necessary -\ccIndexSubitemBegin{extreme points, 2D}{in coordinate directions} - -\ccDefinition - -The function \ccRefName\ finds a points in a given set -of input points with minimal $y$ coordinates. - -\ccInclude{CGAL/ch_selected_extreme_points_2.h} - -\ccFunction{template - void - ch_s_point( ForwardIterator first, ForwardIterator beyond, - ForwardIterator& s, - const Traits & ch_traits = Default_traits);} - {traverses the range [\ccc{first},\ccc{beyond}). - After execution, the value of - \ccc{s} is an iterator in the range such that \ccc{*s} $\le_{yx}$ - \ccc{*it} for all iterators \ccc{it} in the range.} - - -The default traits class \ccc{Default_traits} is the kernel in which the -type \ccc{ForwardIteartor::value_type} is defined. - -\ccHeading{Requirements} -\ccc{Traits} defines the type \ccc{Traits::Less_yx_2} as specified in -the concept ConvexHullTraits\_2 and the corresponding member -function that returns an instance of this type. - - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::ch_e_point} \\ -\ccRefIdfierPage{CGAL::ch_nswe_point} \\ -\ccRefIdfierPage{CGAL::ch_n_point} \\ -\ccRefIdfierPage{CGAL::ch_ns_point} \\ -\ccRefIdfierPage{CGAL::ch_w_point} \\ -\ccRefIdfierPage{CGAL::ch_we_point} - -\ccIndexSubitemEnd{extreme points, 2D}{in coordinate directions} -\end{ccRefFunction} - -% +------------------------------------------------------------------------+ -%%RefPage: end of main body, begin of footer -% EOF -% +------------------------------------------------------------------------+ - diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_w_point.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_w_point.tex deleted file mode 100644 index 54597e181fd..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_w_point.tex +++ /dev/null @@ -1,57 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: ch_w_point.tex -% +------------------------------------------------------------------------+ -% | 09.05.2001 Susan Hert and Stefan Schirra -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - - -\begin{ccRefFunction}{ch_w_point} %% add template arg's if necessary -\ccIndexSubitemBegin{extreme points, 2D}{in coordinate directions} - -\ccDefinition - -The function \ccRefName\ finds a point in a given set -of input points with minimal $x$ coordinate. - -\ccInclude{CGAL/ch_selected_extreme_points_2.h} - -\ccFunction{template - void - ch_w_point( ForwardIterator first, ForwardIterator beyond, - ForwardIterator& w, - const Traits & ch_traits = Default_traits);} - {traverses the range [\ccc{first},\ccc{beyond}). - After execution, the value of - \ccc{w} is an iterator in the range such that \ccc{*w} $\le_{xy}$ - \ccc{*it} for all iterators \ccc{it} in the range.} - - -\ccHeading{Requirements} -\ccc{Traits} defines the type \ccc{Traits::Less_xy_2} as specified in -the concept ConvexHullTraits\_2 and the corresponding member -function that returns an instance of this type. - - -The default traits class \ccc{Default_traits} is the kernel in which the -type \ccc{ForwardIteartor::value_type} is defined. - - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::ch_e_point} \\ -\ccRefIdfierPage{CGAL::ch_nswe_point} \\ -\ccRefIdfierPage{CGAL::ch_n_point} \\ -\ccRefIdfierPage{CGAL::ch_ns_point} \\ -\ccRefIdfierPage{CGAL::ch_s_point} \\ -\ccRefIdfierPage{CGAL::ch_we_point} - -\ccIndexSubitemEnd{extreme points, 2D}{in coordinate directions} -\end{ccRefFunction} - -% +------------------------------------------------------------------------+ -%%RefPage: end of main body, begin of footer -% EOF -% +------------------------------------------------------------------------+ - diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_we_point.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_we_point.tex deleted file mode 100644 index cf4bb0fb107..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/ch_we_point.tex +++ /dev/null @@ -1,59 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: ch_we_point.tex -% +------------------------------------------------------------------------+ -% | 09.05.2001 Susan Hert and Stefan Schirra -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - - -\begin{ccRefFunction}{ch_we_point} %% add template arg's if necessary -\ccIndexSubitemBegin{extreme points, 2D}{in coordinate directions} - -\ccDefinition - -The function \ccRefName\ finds two points of a given set -of input points with minimal and maximal $x$ coordinates. - -\ccInclude{CGAL/ch_selected_extreme_points_2.h} - -\ccFunction{template - void - ch_we_point( ForwardIterator first, ForwardIterator beyond, - ForwardIterator& w, - ForwardIterator& e, - const Traits & ch_traits = Default_traits);} - {traverses the range [\ccc{first},\ccc{beyond}). - After execution, the value of - \ccc{w} is an iterator in the range such that \ccc{*w} $\le_{xy}$ - \ccc{*it} for all iterators \ccc{it} in the range. Similarly, for - \ccc{e} the inequality \ccc{*e} $\ge_{xy}$ \ccc{*it} - holds for all iterators in the range.} - - -The default traits class \ccc{Default_traits} is the kernel in which the -type \ccc{ForwardIteartor::value_type} is defined. - -\ccHeading{Requirements} -\ccc{Traits} defines the type \ccc{Traits::Less_xy_2} as specified in -the concept ConvexHullTraits\_2 and the corresponding member -function that returns an instance of this type. - - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::ch_e_point} \\ -\ccRefIdfierPage{CGAL::ch_nswe_point} \\ -\ccRefIdfierPage{CGAL::ch_n_point} \\ -\ccRefIdfierPage{CGAL::ch_ns_point} \\ -\ccRefIdfierPage{CGAL::ch_s_point} \\ -\ccRefIdfierPage{CGAL::ch_w_point} \\ - -\ccIndexSubitemEnd{extreme points, 2D}{in coordinate directions} -\end{ccRefFunction} - -% +------------------------------------------------------------------------+ -%%RefPage: end of main body, begin of footer -% EOF -% +------------------------------------------------------------------------+ - diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/convex_hull_2.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/convex_hull_2.tex deleted file mode 100644 index d4fd0e1a20c..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/convex_hull_2.tex +++ /dev/null @@ -1,94 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: convex_hull_2.tex -% +------------------------------------------------------------------------+ -% | 09.05.2001 Susan Hert and Stefan Schirra -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - - -\begin{ccRefFunction}{convex_hull_2} %% add template arg's if necessary -\ccIndexMainItemBegin{convex hull, 2D} - -\ccDefinition - -The function \ccRefName\ generates the counterclockwise sequence of extreme -points from a given set of input points. - -\ccInclude{CGAL/convex_hull_2.h} - -\ccFunction{template - OutputIterator - convex_hull_2(InputIterator first, InputIterator beyond, - OutputIterator result, - const Traits & ch_traits = Default_traits );} - {generates the counterclockwise sequence of extreme points - of the points in the range [\ccc{first},\ccc{beyond}). - The resulting sequence is placed starting at position - \ccc{result}, and the past-the-end iterator for the resulting - sequence is returned. It is not specified at which point the - cyclic sequence of extreme points is cut into a linear sequence. - \ccPrecond %\ccIndexSubitem[C]{convex_hull_2}{preconditions} - The source range [\ccc{first},\ccc{beyond}) does not contain - \ccc{result}.} - -The default traits class \ccc{Default_traits} is the kernel in which -the type \ccc{InputIterator::value_type} is defined. - -\ccHeading{Requirements} -\begin{enumerate} - \item \ccc{InputIterator::value_type} and \ccc{OutputIterator::value_type} - are equivalent to \ccc{Traits::Point_2}. - \item \ccc{Traits} contains the following subset of types from - the concept ConvexHullTraits\_2 and their corresponding member - %\ccIndexMainItem[c]{ConvexHullTraits_2} - functions that return instances of these types: - \begin{itemize} - \item \ccc{Traits::Point_2}, - \item \ccc{Traits::Less_xy_2}, - \item \ccc{Traits::Less_yx_2}, - \item \ccc{Traits::Left_of_line_2}, - \item \ccc{Traits::Leftturn_2}. - \end{itemize} -\end{enumerate} - - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::ch_akl_toussaint} \\ -\ccRefIdfierPage{CGAL::ch_bykat} \\ -\ccRefIdfierPage{CGAL::ch_eddy} \\ -\ccRefIdfierPage{CGAL::ch_graham_andrew} \\ -\ccRefIdfierPage{CGAL::ch_jarvis} \\ -\ccRefIdfierPage{CGAL::ch_melkman} - -\ccImplementation - -One of two algorithms is used, -depending on the type of iterator used to specify the input points. For -input iterators, the algorithm used is that of Bykat \cite{b-chfsp-78}, which -has a worst-case running time of $O(n h)$, where $n$ is the number of input -points and $h$ is the number of extreme points. For all other types of -iterators, the $O(n \log n)$ algorithm of of Akl and Toussaint -\cite{at-fcha-78} is used. - - -\ccExample -In the following example we use the \stl-compliant interface of -\ccc{CGAL::Polygon_2} to construct the convex hull polygon from the -sequence of extreme points. Point data are read from standard input, the -convex hull polygon is shown in a \cgal\ window. -Remember, that when no traits class is specified for the function -\ccc{convex_hull_2}, the kernel from which the input points come is -used as the default traits class. - -\ccIncludeExampleCode{Convex_hull_2/convex_hull_2_demo.C} - -\ccIndexMainItemEnd{convex hull, 2D} -\end{ccRefFunction} - -% +------------------------------------------------------------------------+ -%%RefPage: end of main body, begin of footer -% EOF -% +------------------------------------------------------------------------+ - diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/intro.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/intro.tex deleted file mode 100644 index 915d0713e97..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/intro.tex +++ /dev/null @@ -1,183 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: ConvexHull/intro.tex -% +------------------------------------------------------------------------+ -% | 10.5.2001 Susan Hert and Stefan Schirra -% | Package: ConvexHull -% | -% | -% +------------------------------------------------------------------------+ - -\clearpage -\section{Reference Pages for Convex Hulls and Extreme Points} - -A subset $S \subseteq \R^d$ is convex if for any two points $p$ and $q$ -in the set the line segment with endpoints $p$ and $q$ is contained -in $S$. The convex hull\ccIndexMainItemDef{convex hull} of a set $S$ is -the smallest convex set containing -$S$. The convex hull of a set of points $P$ is a convex -polytope with vertices in $P$. A point in $P$ is an extreme point -(with respect to $P$)\ccIndexMainItemDef{extreme point} if it is a vertex -of the convex hull of $P$. - -\cgal\ provides functions for computing convex hulls in two, three and -arbirary dimensions as well as functions for testing if a given set of points -in is strongly convex or not. For two dimensions, -there are also a number of functions available for computing particular -extreme points and subsequences of the hull points, such as the lower -hull or upper hull of a set of points. - - -\ccHeading{Assertions} -\ccIndexSubitem{convex hull, 2D}{assertion flags} -\ccIndexSubitem{assertion flags}{convex hull, 2D} -\ccIndexSubitem{convex hull, 3D}{assertion flags} -\ccIndexSubitem{assertion flags}{convex hull, 3D} -The assertion flags for the convex hull and extreme point algorithms -use \ccc{CH} in their names (\textit{e.g.}, \ccc{CGAL_CH_NO_POSTCONDITIONS}). -For the convex hull algorithms, the postcondition -check tests only convexity (if not disabled), but not containment of the -input points in the polygon or polyhedron defined by the output points. -The latter is considered an expensive checking and can be enabled by -defining \ccc{CGAL_CH_CHECK_EXPENSIVE}% -\ccIndexAssertionFlagName{CGAL_CH_CHECK_EXPENSIVE}. - - -\ccHeading{Concepts} - -\lcTex{ -%\ccRefConceptPage{ConvexHull3fromD_Rep}\\ -\ccRefConceptPage{ConvexHullPolyhedron_3}\\ -\ccRefConceptPage{ConvexHullPolyhedronFacet_3}\\ -\ccRefConceptPage{ConvexHullPolyhedronHalfedge_3}\\ -\ccRefConceptPage{ConvexHullPolyhedronVertex_3}\\ -\ccRefConceptPage{ConvexHullTraits_2}\\ -\ccRefConceptPage{ConvexHullTraits_3} \\ -\ccRefConceptPage{IsStronglyConvexTraits_3} -} - -\lcHtml{ -%\input{ConvexHull_ref/ConvexHull3fromD_Rep} -\input{ConvexHull_ref/ConvexHullPolyhedron_3} -\input{ConvexHull_ref/ConvexHullPolyhedronFacet_3} -\input{ConvexHull_ref/ConvexHullPolyhedronHalfedge_3} -\input{ConvexHull_ref/ConvexHullPolyhedronVertex_3} -\input{ConvexHull_ref/ConvexHullTraits_2} -\input{ConvexHull_ref/ConvexHullTraits_3} -\input{ConvexHull_ref/IsStronglyConvexTraits_3} -} - -\ccHeading{Traits Classes} - -\lcTex{ -\ccRefIdfierPage{CGAL::Convex_hull_constructive_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_d_traits_3} \\ -\ccRefIdfierPage{CGAL::Convex_hull_leda_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_projective_xy_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_projective_xz_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_projective_yz_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_rat_leda_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_traits_2} \\ -\ccRefIdfierPage{CGAL::Convex_hull_traits_3} \\ -} - -\lcHtml{ -\input{ConvexHull_ref/Convex_hull_constructive_traits_2} -\input{ConvexHull_ref/Convex_hull_d_traits_3} -\input{ConvexHull_ref/Convex_hull_leda_traits_2} -\input{ConvexHull_ref/Convex_hull_projective_xy_traits_2} -\input{ConvexHull_ref/Convex_hull_projective_xz_traits_2} -\input{ConvexHull_ref/Convex_hull_projective_yz_traits_2} -\input{ConvexHull_ref/Convex_hull_rat_leda_traits_2} -\input{ConvexHull_ref/Convex_hull_traits_2} -\input{ConvexHull_ref/Convex_hull_traits_3} -} - -\ccHeading{Convex Hull Functions} - -\lcTex{ -\ccRefIdfierPage{CGAL::ch_akl_toussaint} \\ -\ccRefIdfierPage{CGAL::ch_bykat} \\ -\ccRefIdfierPage{CGAL::ch_eddy} \\ -\ccRefIdfierPage{CGAL::ch_graham_andrew} \\ -\ccRefIdfierPage{CGAL::ch_jarvis} \\ -\ccRefIdfierPage{CGAL::ch_melkman} \\ -\ccRefIdfierPage{CGAL::convex_hull_2} \\ -\ccRefIdfierPage{CGAL::convex_hull_3} \\ -\ccRefIdfierPage{CGAL::convex_hull_incremental_3} -} - -\lcHtml{ -\input{ConvexHull_ref/ch_akl_toussaint} -\input{ConvexHull_ref/ch_bykat} -\input{ConvexHull_ref/ch_eddy} -\input{ConvexHull_ref/ch_graham_andrew} -\input{ConvexHull_ref/ch_jarvis} -\input{ConvexHull_ref/ch_melkman} -\input{ConvexHull_ref/convex_hull_2} -\input{ConvexHull_ref/convex_hull_3} -\input{ConvexHull_ref/convex_hull_incremental_3} -} - -\ccHeading{Convex Hull Class} - -\lcTex{ -\ccRefIdfierPage{CGAL::Convex_hull_d} -} - -\lcHtml{ -\input{ConvexHull_ref/Convex_hull_d} -} - -\ccHeading{Convexity Checking Functions} - -\lcTex{ -\ccRefIdfierPage{CGAL::is_ccw_strongly_convex_2} \\ -\ccRefIdfierPage{CGAL::is_cw_strongly_convex_2} \\ -\ccRefIdfierPage{CGAL::is_strongly_convex_3} -} - -\lcHtml{ -\input{ConvexHull_ref/is_ccw_strongly_convex_2} -\input{ConvexHull_ref/is_cw_strongly_convex_2} -\input{ConvexHull_ref/is_strongly_convex_3} -} - -\ccHeading{Hull Subsequence Functions} - -\lcTex{ -\ccRefIdfierPage{CGAL::ch_graham_andrew_scan} \\ -\ccRefIdfierPage{CGAL::ch_jarvis_march} \\ -\ccRefIdfierPage{CGAL::lower_hull_points_2} \\ -\ccRefIdfierPage{CGAL::upper_hull_points_2} -} - -\lcHtml{ -\input{ConvexHull_ref/ch_graham_andrew_scan} -\input{ConvexHull_ref/ch_jarvis_march} -\input{ConvexHull_ref/lower_hull_points_2} -\input{ConvexHull_ref/upper_hull_points_2} -} - -\ccHeading{Extreme Point Functions} - -\lcTex{ -\ccRefIdfierPage{CGAL::ch_e_point} \\ -\ccRefIdfierPage{CGAL::ch_nswe_point} \\ -\ccRefIdfierPage{CGAL::ch_n_point} \\ -\ccRefIdfierPage{CGAL::ch_ns_point} \\ -\ccRefIdfierPage{CGAL::ch_s_point} \\ -\ccRefIdfierPage{CGAL::ch_w_point} \\ -\ccRefIdfierPage{CGAL::ch_we_point} -} - -\lcHtml{ -\input{ConvexHull_ref/ch_e_point} -\input{ConvexHull_ref/ch_nswe_point} -\input{ConvexHull_ref/ch_n_point} -\input{ConvexHull_ref/ch_ns_point} -\input{ConvexHull_ref/ch_s_point} -\input{ConvexHull_ref/ch_w_point} -\input{ConvexHull_ref/ch_we_point} -} - -\clearpage diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/is_ccw_strongly_convex_2.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/is_ccw_strongly_convex_2.tex deleted file mode 100644 index eb2e5c016ee..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/is_ccw_strongly_convex_2.tex +++ /dev/null @@ -1,71 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: is_ccw_strongly_convex_2.tex -% +------------------------------------------------------------------------+ -% | 09.05.2001 Susan Hert and Stefan Schirra -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - - -\begin{ccRefFunction}{is_ccw_strongly_convex_2} -\ccIndexMainItemBegin{convexity checking, 2D} -\ccIndexSubitemBegin{polygon}{strongly convex} -\ccIndexSubitemBegin{strongly convex}{polygon} - -\ccDefinition - -The function \ccRefName\ determines if a given sequence of points defines -a counterclockwise-oriented, stongly convex polygon. -A set of points is said to be strongly convex -if it consists of only extreme points -(\textit{i.e.}, vertices of the convex hull). - -\ccInclude{CGAL/convexity_check_2.h} - -\ccFunction{template - bool - is_ccw_strongly_convex_2( - ForwardIterator first, - ForwardIterator beyond, - const Traits & ch_traits = Default_traits);} - {returns \ccc{true}, iff the point elements in - [\ccc{first},\ccc{beyond}) - form a counterclockwise-oriented strongly convex polygon. - } - - -The default traits class \ccc{Default_traits} is the kernel in which the -type \ccc{ForwardIterator::value_type} is defined. - -\ccHeading{Requirements} -\ccc{Traits} contains the following subset of types from -the concept ConvexHullTraits\_2 and their corresponding member -%\ccIndexMainItem[c]{ConvexHullTraits_2} -functions that return instances of these types: -\begin{itemize} - \item \ccc{Traits::Less_xy_2}, - \item \ccc{Traits::Leftturn_2}. -\end{itemize} - - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::is_cw_strongly_convex_2} \\ -\ccRefIdfierPage{CGAL::is_strongly_convex_3} - -\ccIndexMainItemEnd{convexity checking, 2D} -\ccIndexSubitemEnd{polygon}{strongly convex} -\ccIndexSubitemEnd{strongly convex}{polygon} - -\ccImplementation - -The algorithm requires $O(n)$ time for a set of $n$ input points. - - -\end{ccRefFunction} - -% +------------------------------------------------------------------------+ -%%RefPage: end of main body, begin of footer -% EOF -% +------------------------------------------------------------------------+ - diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/is_cw_strongly_convex_2.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/is_cw_strongly_convex_2.tex deleted file mode 100644 index 421bd46e712..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/is_cw_strongly_convex_2.tex +++ /dev/null @@ -1,69 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: is_cw_strongly_convex_2.tex -% +------------------------------------------------------------------------+ -% | 09.05.2001 Susan Hert and Stefan Schirra -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - - -\begin{ccRefFunction}{is_cw_strongly_convex_2} -\ccIndexMainItemBegin{convexity checking, 2D} -\ccIndexSubitemBegin{polygon}{strongly convex} -\ccIndexSubitemBegin{strongly convex}{polygon} - -\ccDefinition - -The function \ccRefName\ determines if a given sequence of points defines -a clockwise-oriented, stongly convex polygon. -A set of points is said to be strongly convex % -\ccIndexMainItemDef{strongly convex} if it consists of only extreme points -(\textit{i.e.}, vertices of the convex hull). - - -\ccInclude{CGAL/convexity_check_2.h} - -\ccFunction{template - bool - is_cw_strongly_convex_2( - ForwardIterator first, - ForwardIterator beyond, - const Traits & ch_traits = Default_traits);} - {returns \ccc{true}, iff the point elements in - [\ccc{first},\ccc{beyond}) - form a clockwise-oriented strongly convex polygon. - } - -The default traits class \ccc{Default_traits} is the kernel in which the -type \ccc{ForwardIterator::value_type} is defined. - - -\ccHeading{Requirements} -\ccc{Traits} contains the following subset of types from -the concept ConvexHullTraits\_2 and their corresponding member -%\ccIndexMainItem[c]{ConvexHullTraits_2} -functions that return instances of these types: - \begin{itemize} - \item \ccc{Traits::Less_xy_2}, - \item \ccc{Traits::Leftturn_2}. - \end{itemize} - - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::is_ccw_strongly_convex_2} \\ -\ccRefIdfierPage{CGAL::is_strongly_convex_3} - -\ccImplementation -The algorithm requires $O(n)$ time for a set of $n$ input points. - -\ccIndexMainItemEnd{convexity checking, 2D} -\ccIndexSubitemEnd{polygon}{strongly convex} -\ccIndexSubitemEnd{strongly convex}{polygon} -\end{ccRefFunction} - -% +------------------------------------------------------------------------+ -%%RefPage: end of main body, begin of footer -% EOF -% +------------------------------------------------------------------------+ - diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/lower_hull_points_2.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/lower_hull_points_2.tex deleted file mode 100644 index fe8ada2b506..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/lower_hull_points_2.tex +++ /dev/null @@ -1,82 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: lower_hull_points_2.tex -% +------------------------------------------------------------------------+ -% | 09.05.2001 Susan Hert and Stefan Schirra -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - - -\begin{ccRefFunction}{lower_hull_points_2} %% add template arg's if necessary -\ccIndexMainItemBegin{lower hull, 2D} - -\ccDefinition - -The function \ccRefName\ generates the counterclockwise sequence of extreme -points on the lower hull of a given set of input points. - - -\ccInclude{CGAL/convex_hull_2.h} - -\ccFunction{template - OutputIterator - lower_hull_points_2(InputIterator first, InputIterator beyond, - OutputIterator result, - const Traits & ch_traits = Default_traits );} - {generates the counterclockwise sequence of extreme points - on the lower hull of the points in the range [\ccc{first}, - \ccc{beyond}). The resulting sequence is placed starting at - position \ccc{result}, and the past-the-end iterator for - the resulting sequence is returned. - The sequence starts with the leftmost point; - the rightmost point is not included. - If there is only one extreme point ({\it i.e.}, leftmost and - rightmost point are equal) the extreme point is reported. - \ccPrecond% \ccIndexSubitem[C]{lower_hull_points_2}{preconditions} - The source range [\ccc{first},\ccc{beyond}) does not contain - \ccc{result}.} - -The default traits class \ccc{Default_traits} is the kernel in which the -type \ccc{InputIterator::value_type} is defined. - -The different treatment by \ccc{CGAL::upper_hull_points_2} of the case that -all points are equal ensures that concatenation of lower and upper hull -points gives the sequence of extreme points. - -\ccHeading{Requirements} -\begin{enumerate} - \item \ccc{InputIterator::value_type} and \ccc{OutputIterator::value_type} - are equivalent to \ccc{Traits::Point_2}. - \item \ccc{Traits} contains the following subset of types from - the concept ConvexHullTraits\_2 and their corresponding member - functions that return instances of these types: - \begin{itemize} - \item \ccc{Traits::Point_2}, - \item \ccc{Traits::Less_xy_2}, - \item \ccc{Traits::Less_yx_2}, - \item \ccc{Traits::Left_of_line_2}, - \item \ccc{Traits::Leftturn_2}. - \end{itemize} -\end{enumerate} - - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::ch_graham_andrew} \\ -\ccRefIdfierPage{CGAL::ch_graham_andrew_scan} \\ -\ccRefIdfierPage{CGAL::upper_hull_points_2} - -\ccImplementation - -This function uses Andrew's variant of Graham's scan algorithm -\cite{a-aeach-79,m-mdscg-84}. The algorithm has worst-case running time -of $O(n \log n)$ for $n$ input points. - -\ccIndexMainItemEnd{lower hull, 2D} -\end{ccRefFunction} - -% +------------------------------------------------------------------------+ -%%RefPage: end of main body, begin of footer -% EOF -% +------------------------------------------------------------------------+ - diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/main.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/main.tex deleted file mode 100644 index 51b5fafaefe..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/main.tex +++ /dev/null @@ -1,53 +0,0 @@ -% +------------------------------------------------------------------------+ -% | CBP Reference Manual: main.tex -% +------------------------------------------------------------------------+ -% | Automatically generated driver file for the reference manual chapter -% | of this package. Do not edit manually, you may loose your changes. -% +------------------------------------------------------------------------+ - -\input{ConvexHull_ref/intro.tex} - -\lcTex{ -\input{ConvexHull_ref/ch_akl_toussaint.tex} -\input{ConvexHull_ref/ch_bykat.tex} -\input{ConvexHull_ref/ch_eddy.tex} -\input{ConvexHull_ref/ch_e_point.tex} -\input{ConvexHull_ref/ch_graham_andrew.tex} -\input{ConvexHull_ref/ch_graham_andrew_scan.tex} -\input{ConvexHull_ref/ch_jarvis.tex} -\input{ConvexHull_ref/ch_jarvis_march.tex} -\input{ConvexHull_ref/ch_melkman.tex} -\input{ConvexHull_ref/ch_nswe_point.tex} -\input{ConvexHull_ref/ch_ns_point.tex} -\input{ConvexHull_ref/ch_n_point.tex} -\input{ConvexHull_ref/ch_s_point.tex} -\input{ConvexHull_ref/ch_we_point.tex} -\input{ConvexHull_ref/ch_w_point.tex} -\input{ConvexHull_ref/convex_hull_2.tex} -\input{ConvexHull_ref/convex_hull_3.tex} -\input{ConvexHull_ref/convex_hull_incremental_3.tex} -\input{ConvexHull_ref/ConvexHullPolyhedronFacet_3.tex} -\input{ConvexHull_ref/ConvexHullPolyhedronHalfedge_3.tex} -\input{ConvexHull_ref/ConvexHullPolyhedronVertex_3.tex} -\input{ConvexHull_ref/ConvexHullPolyhedron_3.tex} -\input{ConvexHull_ref/ConvexHullTraits_2.tex} -\input{ConvexHull_ref/ConvexHullTraits_3.tex} -\input{ConvexHull_ref/Convex_hull_constructive_traits_2.tex} -\input{ConvexHull_ref/Convex_hull_d.tex} -\input{ConvexHull_ref/Convex_hull_d_traits_3.tex} -\input{ConvexHull_ref/Convex_hull_leda_traits_2.tex} -\input{ConvexHull_ref/Convex_hull_projective_xy_traits_2.tex} -\input{ConvexHull_ref/Convex_hull_projective_xz_traits_2.tex} -\input{ConvexHull_ref/Convex_hull_projective_yz_traits_2.tex} -\input{ConvexHull_ref/Convex_hull_rat_leda_traits_2.tex} -\input{ConvexHull_ref/Convex_hull_traits_2.tex} -\input{ConvexHull_ref/Convex_hull_traits_3.tex} -\input{ConvexHull_ref/is_ccw_strongly_convex_2.tex} -\input{ConvexHull_ref/is_cw_strongly_convex_2.tex} -\input{ConvexHull_ref/is_strongly_convex_3.tex} -\input{ConvexHull_ref/IsStronglyConvexTraits_3.tex} -\input{ConvexHull_ref/lower_hull_points_2.tex} -\input{ConvexHull_ref/upper_hull_points_2.tex} -} - -%% EOF diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/upper_hull_points_2.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/upper_hull_points_2.tex deleted file mode 100644 index 62c3b25ae63..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/ConvexHull_ref/upper_hull_points_2.tex +++ /dev/null @@ -1,82 +0,0 @@ -% +------------------------------------------------------------------------+ -% | Reference manual page: upper_hull_points_2.tex -% +------------------------------------------------------------------------+ -% | 09.05.2001 Susan Hert and Stefan Schirra -% | Package: Convex_hull_2 -% | -% +------------------------------------------------------------------------+ - - -\begin{ccRefFunction}{upper_hull_points_2} %% add template arg's if necessary -\ccIndexMainItemBegin{upper hull, 2D} - -\ccDefinition - -The function \ccRefName\ generates the counterclockwise sequence of extreme -points on the upper hull of a given set of input points. - -\ccInclude{CGAL/convex_hull_2.h} - -\ccFunction{template - OutputIterator - upper_hull_points_2(InputIterator first, InputIterator beyond, - OutputIterator result, - const Traits & ch_traits = Default_traits );} - {generates the counterclockwise sequence of extreme points - on the upper hull of the points in the range [\ccc{first}, - \ccc{beyond}). The resulting sequence is placed starting at - position \ccc{result}, and the past-the-end iterator for - the resulting sequence is returned. - The sequence starts with the rightmost point, - the leftmost point is not included. - If there is only one extreme point ({\it i.e.}, the leftmost and - rightmost point are equal), the extreme point is not reported. - \ccPrecond% \ccIndexSubitem[C]{upper_hull_points_2}{preconditions} - The source range [\ccc{first},\ccc{beyond}) does not contain - \ccc{result}.} - - -The default traits class \ccc{Default_traits} is the kernel in which the -type \ccc{InputIterator::value_type} is defined. - -The different treatment by \ccc{CGAL::lower_hull_points_2} of the case that -all points are equal ensures that concatenation of lower and upper hull -points gives the sequence of extreme points. - -\ccHeading{Requirements} -\begin{enumerate} - \item \ccc{InputIterator::value_type} and \ccc{OutputIterator::value_type} - are equilvalent to \ccc{Traits::Point_2}. - \item \ccc{Traits} contains the following subset of types from - the concept ConvexHullTraits\_2 and their corresponding member - %\ccIndexMainItem[c]{ConvexHullTraits_2} - functions that return instances of these types: - \begin{itemize} - \item \ccc{Traits::Point_2}, - \item \ccc{Traits::Less_xy_2}, - \item \ccc{Traits::Less_yx_2}, - \item \ccc{Traits::Left_of_line_2}, - \item \ccc{Traits::Leftturn_2}. - \end{itemize} -\end{enumerate} - -\ccSeeAlso - -\ccRefIdfierPage{CGAL::ch_graham_andrew} \\ -\ccRefIdfierPage{CGAL::ch_graham_andrew_scan} \\ -\ccRefIdfierPage{CGAL::lower_hull_points_2} - -\ccImplementation - -This function uses Andrew's -variant of Graham's scan algorithm \cite{a-aeach-79,m-mdscg-84}. The algorithm -has worst-case running time of $O(n \log n)$ for $n$ input points. - -\ccIndexMainItemEnd{upper hull, 2D} -\end{ccRefFunction} - -% +------------------------------------------------------------------------+ -%%RefPage: end of main body, begin of footer -% EOF -% +------------------------------------------------------------------------+ - diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/convex_hull_2.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/convex_hull_2.tex deleted file mode 100644 index 382fed36c33..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/convex_hull_2.tex +++ /dev/null @@ -1,99 +0,0 @@ -\begin{ccHtmlOnly} -
- -
-\end{ccHtmlOnly} - -\begin{ccTexOnly} -\begin{center} -\includegraphics[width=7cm]{saarhull.eps} -%\leavevmode\epsfxsize8cm\epsffile{saarhull.eps} -\end{center} -\end{ccTexOnly} - -\section{2D Convex Hull} -\label{sec:convex_hull_2} -\cgal\ provides implementations of several classical algorithms for -computing the counterclockwise sequence of extreme points for a set of -points in two dimensions (\textit{i.e.}, the counterclockwise sequence -of points on the convex hull). The algorithms have different asymptotic -running times and require slightly different sets of geometric primitives. -Thus you may choose the algorithm that best fits your setting. - -Each of the convex hull functions presents the same interface to the -user. That is, the user provides a pair of iterators, \ccc{first} -and \ccc{beyond}, an output iterator \ccc{result}, and a traits class -\ccc{traits}. The points in the range [\ccc{first}, \ccc{beyond}) define -the input points whose convex hull is to be computed. The counterclockwise -sequence of extreme points is written to the sequence starting at position -\ccc{result}, and the past-the-end iterator for the resulting set of -points is returned. The traits classes for the functions specify the types -of the input points and the geometric primitives that are required by -the algorithms. All functions provide an interface in which this -class need not be specified and defaults to types and operations defined -in the kernel in which the input point type is defined. - -Given a sequence of $n$ input points with $h$ extreme points, -the function \ccc{convex_hull_2}\ccIndexMainItem[C]{convex_hull_2} -uses either the output-sensitive $O(n h)$ algorithm of Bykat \cite{b-chfsp-78} -(a non-recursive version of the quickhull \cite{bdh-qach-96} algorithm)% -\ccIndexSubitem{convex hull, 2D}{quickhull} -\ccIndexSubitem{convex hull, 2D}{Bykat's algorithm} -or the algorithm of Akl and Toussaint, which requires $O(n \log n)$ time -in the worst case. The algorithm chosen depends on the kind of -iterator used to specify the input points. These two algorithms are -also available via the functions \ccc{ch_bykat} and \ccc{ch_akl_toussaint}, -respectively. Also available are -the $O(n \log n)$ Graham-Andrew scan algorithm \cite{a-aeach-79,m-mdscg-84} -(\ccc{ch_graham_andrew}\ccIndexMainItem[C]{ch_graham_andrew}), -the $O(n h)$ Jarvis march algorithm \cite{j-ichfs-73} -(\ccc{ch_jarvis}\ccIndexMainItem[C]{ch_jarvis}), -and Eddy's $O(n h)$ algorithm \cite{e-nchap-77} -(\ccc{ch_eddy}\ccIndexMainItem[C]{ch_eddy}), which corresponds to the -two-dimensional version of the quickhull algorithm. -The linear-time algorithm of Melkman for producing the convex hull of -simple polygonal chains (or polygons) is available through the function -\ccc{ch_melkman}\ccIndexMainItem[C]{ch_melkman}.% -\ccIndexSubitem{convex hull, 2D}{of polyline or polygon} - -\section{Example using Bykat's algorithm} - -In the following example a convex hull is constructed from point data read -from standard input using Bykat's algorithm. The resulting convex polygon -is stored in a \ccc{CGAL::Polygon_2} and then it is shown in a \cgal\ window. -The default traits class is used here. The same results could be -achieved by substituting the function \ccc{CGAL::ch_bykat} for -\ccc{CGAL::convex_hull_2}, since the latter calls the former when the -input points are specified using input interators. - -\ccIncludeExampleCode{Convex_hull_2/convex_hull_2_demo.C} - - - -\section{2D Extreme Points and Hull Subsequences} -In addition to the functions for producing convex hulls, there are a -number of functions for computing sets and sequences of points related -to the convex hull. -The functions \ccc{lower_hull_points_2}\ccIndexMainItem[C]{lower_hull_points_2} -and \ccc{upper_hull_points_2}\ccIndexMainItem[C]{upper_hull_points_2} -provide the computation of the counterclockwise -sequence of extreme points on the lower hull and upper hull, -respectively. The algorithm used in these functions is -Andrew's variant of Graham's scan algorithm \cite{a-aeach-79,m-mdscg-84}, -which has worst-case running time of $O(n \log n)$. - -There are also functions available for computing certain subsequences -of the sequence of extreme points on the convex hull. The function -\ccc{ch_jarvis_march}\ccIndexMainItem[C]{ch_jarvis_march} -generates the counterclockwise ordered subsequence of -extreme points between a given pair of points and -\ccc{ch_graham_andrew_scan}\ccIndexMainItem[C]{ch_graham_andrew_scan} -computes the sorted sequence of extreme points that are -not left of the line defined by the first and last input points. - -Finally, a set of functions -(\ccc{ch_nswe_point}, \ccc{ch_ns_point}, \ccc{ch_we_point}, \ccc{ch_n_point}, -\ccc{ch_s_point}, \ccc{ch_w_point}, \ccc{ch_e_point}) -is provided for computing extreme points of a -2D point set in the coordinate directions.% -\ccIndexSubitem{extreme points, 2D}{in coordinate directions} diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/convex_hull_def.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/convex_hull_def.tex deleted file mode 100644 index fb987c637e8..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/convex_hull_def.tex +++ /dev/null @@ -1,18 +0,0 @@ -\section{Introduction} - -A subset $S \subseteq \R^d$ is convex if for any two points $p$ and $q$ -in the set the line segment with endpoints $p$ and $q$ is contained -in $S$. The convex hull\ccIndexMainItemDef{convex hull} of a set $S$ -is the smallest convex set containing -$S$. The convex hull of a set of points $P$ is a convex -polytope with vertices in $P$. A point in $P$ is an extreme point -(with respect to $P$)\ccIndexMainItemDef{extreme point} if it is a vertex of -the convex hull of $P$. A set of points is said to be strongly convex % -\ccIndexMainItemDef{strongly convex} if it consist of only extreme points. - -This chapter describes the functions provided in -\cgal\ for producing convex hulls in two and three dimensions as well as -functions for checking if sets of points are strongly convex are not. -For two dimensions, ther are also a number of functions described for -computing particular extreme points and subsequences of hull points, -such as the lower and upper hull of a set of points. diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/convexity_checking.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/convexity_checking.tex deleted file mode 100644 index 53fbb125310..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/convexity_checking.tex +++ /dev/null @@ -1,11 +0,0 @@ -\section{Convexity Checking} - -The functions \ccc{is_ccw_strongly_convex_2} and \ccc{is_cw_strongly_convex_2} -check whether a given sequence of 2D points forms a (counter)clockwise strongly -convex polygon.\ccIndexMainItem{convexity checking, 2D}% -\ccIndexSubitem{polygon}{strongly convex}. These are used in postcondition -testing of the two-dimensional convex hull functions% -\ccIndexSubitem{convex hull, 2D}{postcondition}. - - -\input{convexity_check_3} diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/main.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/main.tex deleted file mode 100644 index f16fad782d0..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/main.tex +++ /dev/null @@ -1,11 +0,0 @@ -\chapter{Convex Hulls and Extreme Points} -\label{chap:convex_hull} - -\input{convex_hull_def} -\input{convex_hull_2} -\input{convex_hull_3} -\input{convex_hull_d} -\input{traits_classes} -\input{convexity_checking} - -\input{ConvexHull_ref/main.tex} diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/saarhull.eps b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/saarhull.eps deleted file mode 100644 index d32003f2039..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/saarhull.eps +++ /dev/null @@ -1,3485 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Creator: xgrabsc -%%Title: saarhull -%%Pages: 1 -%%BoundingBox: 0 0 310 327 -%%CreationDate: Wed Oct 20 17:39:35 1999 -%%EndComments -%%EndProlog -%%Page: 1 1 - - -gsave - -%%Title: colorimage.ps - -systemdict /colorimage known userdict /colorimage known or not { - %% create if not in systemdict - /colortograyscale { %def - dup /rgbdata exch store - length 3 idiv - /npixls exch store - /indx 0 store - /pixls npixls string store - 0 1 npixls -1 add { - pixls exch - rgbdata indx get .3 mul - rgbdata indx 1 add get .59 mul add - rgbdata indx 2 add get .11 mul add - cvi - put - /indx indx 3 add store - } for - pixls - } bind def - - % Utility procedure for colorimage operator. This procedure takes two - % procedures off the stack and merges them into a single procedure. - - /mergeprocs { %def - dup length - 3 -1 roll - dup - length - dup - 5 1 roll - 3 -1 roll - add - array cvx - dup - 3 -1 roll - 0 exch - putinterval - dup - 4 2 roll - putinterval - } bind def - - /colorimage { %def - pop - pop - {colortograyscale} - mergeprocs - image - } bind def -} if - - - -/inch {72 mul} def -310 327 scale -/buffer 1 string def -/rgbmap 27 string def - - -/onepixel 3 string store -/drawcolormappedimage { - 310 327 8 - [310 0 0 -327 0 327] - %% define a block of code to read and decode the rle input stream - { currentfile buffer readhexstring pop pop %% index - rgbmap buffer 0 get 3 mul 3 getinterval %% color bytes - } - false 3 colorimage -} bind def - - - -%% get the rgb map -currentfile rgbmap readhexstring pop pop -c0c0c0 -000000 -ffffff -737373 -000080 -fa1340 -ff0000 -c8c8c8 -00ff00 - - -drawcolormappedimage -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000010002020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202030100020000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000301 -000200000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000003010002000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000030100020000000404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040000000301 -000200000004040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040400000003010002000000040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040402020202020202 -020202020202020201020202020202020202020202020202010404020202 -020202020202020202020202010404000000030100020000000404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404020000000000000000000000000003010200000000000000000000 -000000030104040200000000000000000000000000030104040000000301 -000200000004040404050505050504040404040404050404040404040404 -020202020404040402020202020404040404020204040404020204040404 -040404040404040404020202020404040404040402020202040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040200000000000000000000000000030102 -000001010101010101010100000301040402000000000000000000000000 -000301040400000003010002000000040404040405050505050404040404 -050404040404040404020204040202040402020404040202040404020202 -020404040202040404040404040404040404020204040202040404040402 -020404020204040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040402000000000000 -000000000000000301020000010101010101010101000003010404020000 -000101000000000101000003010404000000030100020000000404040404 -040505050505040404050404040404040404020204040404040402020404 -040404040404040204040204040402020404040404040404040404040404 -040402020404040404020204040202040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404020000000000000000000000000003010200000100000000000000 -010000030104040200000000010100000101000000030104040000000301 -000200000004040404040404050505050504050404040404040404040202 -040404040404020204040404040404040202040402020404020204040404 -040404040404040404040402020404040404040202040402020404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040200000000000000000000000000030102 -000001000000000000000100000301040402000000000001010101000000 -000301040400000003010002000000040404040404040405050504050404 -040404040404040402020404040404040202040402020202040402020404 -020204040202040404040404040404040404040402020404040404040402 -020404020204040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040402000000000000 -000000000000000301020000010000000000000001000003010404020000 -000000000101000000000003010404000000030100020000000404040404 -040404040504050505040404040404040404020204040404040402020404 -040402020404020202020202040402020404040404020202020204040402 -020404040404040404020204040202040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404020000000000000000000000000003010200000100000000000000 -010000030104040200000000000101010100000000030104040000000301 -000200000004040404040404040504050505050504040404040404040202 -040404040404020204040404020204020204040404020204020204040404 -040404040404040402020404040404040404040202040402020404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040200000000000000000000000000030102 -000001000000000000000100000301040402000000000101000001010000 -000301040400000003010002000000040404040404040504040405050505 -050404040404040404020204040202040402020404040202040202040404 -040202040202040404040404040404040404020204040404040402020402 -020404020204040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040402000000010101 -010101000000000301020000010000000000000001000003010404020000 -000101000000000101000003010404000000030100020000000404040404 -040504040404040505050505040404040404040402020202040404040202 -020204020402020404040402020402020202020204040404040404040202 -020202020404020204040202020204040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404020000000101010101010000000003010200000101010101010101 -010000030104040200000000000000000000000000030104040000000301 -000200000004040404040504040404040404050505050504040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040200000000000000000000000000030102 -000000000000000000000000000301040402000000000000000000000000 -000301040400000003010002000000040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040402030303030303 -030303030303030301020303030303030303030303030303010404020303 -030303030303030303030303010404000000030100020000000404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404010101010101010101010101010101010101010101010101010101 -010101010104040101010101010101010101010101010104040000000301 -000200000004040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404 -040404040400000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020101010202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020106060601020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020201010102020202020202 -020202020202020202020106060606060102020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020201 -060606010202020202020202020707070707070701060606060601070202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020201060606060601070707070707070707070707070707 -010606060606010707070202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020207010606060606010707070807 -070707020202020202020801060606010208080808070702020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020207070707070106 -060606060102020808080202080202080208080808080101010202080808 -070808070707020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020207 -070707070707070808010606060102020208080202020808080808080202 -020202020202020202020208080807070707070202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020207070707070707070202020208080201010102020202020202 -020208080808020202020202020202020202020202020802020207070707 -070702020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020207070707070707070202020202020202080802 -020202020202020202020208080202020202020202020202020202020202 -020202080802020202070707070707020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020207070707070707070202020202 -020202020202020808020202020202020202020202020202020202020202 -020202020202020202020202020808020202020202020707070707070202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020707070707070707 -070202020202020202020202020202020208080202020202020202020202 -020202020202020202020202020202020202020202020202080802020202 -020202020207070707070702020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020707 -070707070707070202020202020202020202020202020202080208080202 -020202020202020202020202020202020202020202020202020202020202 -020202020802020202020202020202020202070707070707020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020707070707070707070202020202020202020202020202080208 -080802020808080802020202020202020202020202020202020202020202 -020202020202020202020202020202080802020202020202020202020202 -070707070707070202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020707070707070707020202020202020202020202 -020202020208020808080802020202080802020202020202020202020202 -020202020202020202020202020202020202020202020202020808020202 -020202020202020202020202020707070707070702020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020707070707070707020202020202 -020202020202020202020202020202080802020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202080802020202020202020202020202020202020207070707 -070702020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020707070707070707 -020202020202020202020202020202020202020208020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020808080208080202020202020202 -020202020208020202070707070707020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020707 -070707070707020202020202020202020202020202020202020202020808 -080808020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202080208 -020208080202020202020202020802080208080202020707070707070202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202070707070707070707020202020202020202020202020202020202 -020202020202080208080208020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202080802080802020202020202080208080202080202 -020202020207070707070702020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202070707070707070707020202020202020202020202 -020202020202020202020202020202020808020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020802020208080202 -080808020202020202020808020202020202070707070707020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202070707070707070707020202020202 -020202020202020202020202020202020202020202020202020808080202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202080802020802020202020202020208020202020202020202 -020707070707070202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202070707070707070702 -020202020202020202020202020202020202020202020202020202020202 -020202020208080202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -080802020202020202020202020207070707070702020202010101020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202070707 -070707070702020202020202020202020202020202020202020202020202 -020202020202020202020202020202080802020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020808020202020202020202020202020202070707 -070707010606060102020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202070707070707070702020202020202020202020202020202020202 -020202020202020202020202020202020802020202020208080202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020208080202020202020202 -020202020202020202020707010606060606010202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202070707070707070702020202020202020202020202 -020202020202020202020202020202020202020202020202020808080808 -020202080802020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -080802020202020202020202020202020202020202020106060606060102 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020207070707070707070702020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020808080208020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020808020202020202020202020202020202020202 -020201060606060601020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020207070707070707070702 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202080208080202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020208080802020202080208 -020202020202020202020202080106060601020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020207070707 -070707070702020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202080808020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020808080808020802080202020202020202020202020208010101070202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020207070707070707070202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020808020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202080202020202020208020202020202020202 -080202080802070702020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020207070707070707070202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202080202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -080802020202020802020808020808020707070202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020207070707070707070202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020808020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020808020202020208080202020202020202070702 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020207070707070707070202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202080202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020208080208020202020202 -020202020202020707020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020707070707 -070707070202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020208020808020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202080202020202020202020208080202070702020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020707070707070707070202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020208080802020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020707 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020707070707070707070202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202080802020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202070702020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020707070707070707020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020208080202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020802020707020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020707070707070707020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202080208080802080808020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020208080202 -070702020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020201010102020202020202020707070707 -070707020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020808020808080208080202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202080802020707020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020201060606010202 -020707070707070707020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202080808080802020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020808020202070702020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020201060606060601070707070707020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020208 -020808080202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020208080202 -020707020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202010606060606010707080208020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202080802020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202080802020207070702020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020106060606060102 -020802080202020202080802020202020202020802020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020808080802020208080202020202020808020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020808020202020701010102020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020208010606060102020202020202020202020802080802020202020208 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020208080802020808080808080802020208 -080202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020208080202 -020201060606010202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020201010108080801010102020202020202020202020202 -020802020208020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202080202080802020208 -080802020808020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202080202080801060606060601020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020201060606010802020202020202 -020202020202020202020202020808080802020202020202020202020202 -020202020202020202020202080202020202020202020202020202020208 -080802020202020202020202020208020208020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020802010606060606010202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020201060606 -060601020202020202020202020202020202020202020208020202020202 -080802020202020202080202020202080208080808020808020202020202 -020202020202020208080202020202020202020202020202080808080802 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020106060606060102020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202010606060606010202020202020202020202020202020202 -020202020202020202020202020202020208020802020202080808080808 -020202020202020202020202020202020808080808020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202010606060101020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020106060606060102020202020202 -020202020202020202020202020202020202020202020202020202080808 -080202020808020202020202020208080202020202020202020208080202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020201010106060102 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202010606 -060102020202020202020202020202020202020202020202020202020202 -020202020202020202080802020202020202020202020202080808020202 -020202020208020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020802010606060606010202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020201010102020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020208020202020202020208080802020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020808080106060606060102020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020201060606010202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202080802020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020208080801060606060601 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020201060606 -060601020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020808020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -080808080106060601020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202010606060606010202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020802020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020802020202010101020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020106060606060102020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020208080202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020808080202020202070702 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202010606 -060102020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020808 -080202020202020707020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020201010108020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020208080202020202020202070702020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020708080802020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020707 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020207 -070808020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020207070702020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202070708080202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202080202020202020202020707020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020707080802020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202080808020202020202020207 -070202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -070808020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020808 -020202020202020202020707020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020708080202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020208080202020202020202020207070202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020207080202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202080802020202020202020202 -070707020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -070808020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020808 -020202020202020202020207070202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020101010202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202070707020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020106060601020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020208080202020202 -020207070202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020106 -060606060102020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202080202020202020202070702020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020201060606060601020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020208080202020202020207070202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202010606060606010202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202080202020202 -020202070702020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020201 -060606010202020202020202020202020808020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020808020202020202020707070202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020101010101020202020202020202020808080808 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020208080202020202020202070702020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202010606060102020202 -020202020808080208080202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020208020202020202 -020202020707020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -010606060606010202020202080808080202020808020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020808080802020202020202020202070702020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020106060606060108080808080808080202020208 -080808020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020808080202020202020202020202020707020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020201060606060601080808 -080808020202020202020808080808080808080202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020208080202020202020202 -020202020202070702020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020106060601020202020202020202020202020202020808080808080808 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202080808 -020202020202020202020202020202020707020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202010101070702020202020202020202020202 -020202020202020208080802020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020208080808080802020202020202020202020202020207070702 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020707070202 -020202020202020202020202020202020202020808080202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202080808080808020202020202020202020202 -020202020202020707020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202070707020202020202020202020202020202020202020202 -080808020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202080808080802020202 -020202020202020202020202020202020207070202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020207070202020202020202020202 -020202020202020202020208080808080202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -080808020202020202020202020202020202020202020202020202020707 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020707 -020202020202020202020202020202020202020202020808080808080202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020808020202020202020202020202020202020202 -020202020202020207070202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202070702020202020202020202020202020202020202 -020202020202080808080202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020707020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020707070202020202020202 -020202020202020202020202020202020202080808020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020207 -070202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -070707020202020202020202020202020202020202020202020202020208 -080802020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020208080202020202020202020202020202020202 -020202020202020202070707020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020207070202020202020202020202020202020202 -020202020202020202020808080802020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202080202020202020202 -020202020202020202020202020202020202020207070202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020707020202020202 -020202020202020202020202020202020202020202020808080202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -070702020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020207070702020202020202020202020202020202020202020202020202 -020202080808080802020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020207070202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020707070202020202020202020202020202 -020202020202020202020202020208080808080202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020208020202 -020202020202020202020202020202020202020202070702020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202070707020202 -020202020202020202020202020202020202020202020202020202080802 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202080202020202020202020202020202020202020202020202 -020207070202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020207070202020202020202020202020202020202020202020202 -020202020202020208080202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202070702020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020707020202020202020202020202 -020202020202020202020202020202020202080808020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -080808020202020202020202020202020202020202020707070202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020207070702 -020202020202020202020202020202020202020202020202020202020208 -080802020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020808020202020202020202020202020202020202 -020202070702020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020707070202020202020202020202020202020202020202 -020202020202020202020802020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202080802020202020202 -020202020202020202020202020707020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202070702020202020202020202 -020202020202020202020202020202020202020802020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202070702020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020207 -070202020202020202020202020202020202020202020202020202020808 -080202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202080802020202020202020202020202020202 -020202020707020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020707020202020202020202020202020202020202 -020202020202080808080202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020802020202020202 -020202020202020202020202020207070702020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020207070702020202020202 -020202020202020202020202020202020808020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020707020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020707070202020202020202020202020202020202020202020208080202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020207070702020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202070702020202020202020202020202020202 -020202020202080802020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020802020202020202 -020202020202020202020202020202020707020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020207070202020202 -020202020202020202020202020202020808080802020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020808080202020202020202020202020202020202020202020207070202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202070707020202020202020202020202020202020202020202020808 -080202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020208080802020202020202020202020202020202 -020202020202020707020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020207070702020202020202020202020202 -020202020202020202080802020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020208020202020202 -020202020202020202020202020202020207070202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020707070202 -020202020202020202020202020202020202020808020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202070707 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202070702020202020202020202020202020202020202020202 -080808020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020808080202020202020202020202 -020202020202020207070202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020207070202020202020202020202 -020202020202020202020808080808080808020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020208080808 -080202020208080808020202020202020202070702020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202070707 -020202020202020202020202020202020202020202020808080808080808 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020208080808080802080808080202020202020202020207 -070202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020207070702020202020202020202020202020202020202 -020202020202020808020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020208080208080202020808 -080802020202020202070101010202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020707070202020202020202 -020202020202020202020202020202020202080802020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020808020202020202020106060601020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -070702020202020202020202020202020202020202020202020202020808 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202080802020202020106 -060606060102020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020207070202020202020202020202020202020202 -020202020202020208080202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020801060606060601020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202070707020202020202 -020202020202020202020202020202020202080802020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020208080808080808010606060606010202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020207070702020202020202020202020202020202020202020202020808 -080808020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020208080808020201 -060606010202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020707020202020202020202020202020202 -020202020202020208080808080802020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020101010202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202070702020202 -020202020202020202020202020202020202020202020802020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020208080202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020707070202020202020202020202020202020202020202020202 -020208080202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -080702020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202070707020202020202020202020202 -020202020202020202020208020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202080808020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020207070702 -020202020202020202020202020202080208020202080802020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020801010102020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020707020202020202020202020202020202080808080208 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020201 -060606010202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202070702020202020202020202 -020202080808020208080802020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020201060606060601020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020707 -070202020202020202020202020808020202080202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202010606060606010202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202070707020202020202020202020208080202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020106 -060606060102020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020207070702020202020202 -020202080808020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202010606060102020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020707020202020202020202020208080802020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020801010102020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202070702020202020202020202020808080202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020208 -080702020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020707070202020202 -020202020202080808020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202080807020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202070707020202020202020202020208080808020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202080207070202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020207070202020202020202020202080808 -080808020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202080808 -070702020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020707020202 -020202020202020202020208020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020808020707020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020207070702020202020202020202020208080802020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020207070202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020707070202020202020202020202 -080802020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020207 -070202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202070707 -020202020202020202080802020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020208070702020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020207070202020202020202020208080202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202080807020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020707020202020202020202 -080808020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202080808 -070202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020207 -070702020202020202020208080802020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202080808070702020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020707070202020202020202020808080202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020808020707020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202070707020202020202 -020202080808020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020802020207 -070202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020207070202020202020202020208080202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020208080202070702020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020707020202020202020202020808020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020707020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020207070702020202 -020202020208080808080202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020208080707 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020707070202020202020202020808080808020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202080207070202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202070702020202020202020202020208 -080802020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020808070702020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020207070202 -020202020202020202020808080802020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020808080707 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202070707020202020202020202020202020808080202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020208080207070202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020207070702020202020202020202 -020202080808020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202080808020202080808080802070702020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020707 -070202020202020202020202020208080802020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202080808080808080808080802020707 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202070702020202020202020202020202020808080202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202080808020208 -080802020202020207070202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020207070202020202020202 -020202020202080808080802020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020808080202020202020202020202070702020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -070707020202020202020202020202020808080808020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202080202020202020202020202070702 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020207070702020202020202020202020202020202 -080802020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020802020202 -020202020202020707020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020707070202020202 -020202020202020202020808020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020208080202020202020202020207070202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202070702020202020202020202020202020208080202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202080802020202020202020202070702 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020207070202020202020202020202020202 -080802020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202080808020202 -020202020202020707020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202070707020202 -020202020202020202020802020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020208080808020202020202020202020207070202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020207070702020202020202020202020808080202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202080802020202020202020202020202070702 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020707020202020202020202020208 -080202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020808080202080202020202020202 -020202020202020707020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202070702 -020202020202020202080802020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020208080808 -020808020202020202020202020202020207070202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020707070202020202020202020808020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020208080808080808080202020202020202020202020207070202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202070707020202020202020208 -080808080802020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202080802020808080802020202020202 -020202020202070702020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020207 -070702020202020202080808080808080802020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020808020202 -020202020202020202020202020202020707020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020707020202020202020202020202020802020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020208080202020202020202020202020202020202020207070202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202070702020202020202 -020202020208080202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020208080802020202020202020202020202 -020202020202070702020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020707070202020202020202020202080802020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020808080802020202 -020202020202020202020202020202020707020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202070707020202020202020202020808020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020208080202020202020202020202020202020202020202020207070202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020207070702020202 -020202020208080202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202070702020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020707020202020202020202080802020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020808020202020202 -020202020202020202020202020202020707020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202070702020202020202020808080202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020808020202020202020202020202020202020202020707020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020707070202 -020202020202080802020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020208080802020202020202020202020202 -020202020207070202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202070707020202020202020802020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020802020202 -020202020202020202020202020202070702020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020207070202020202020208080202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020707020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020707 -020202020202080802020202020202020202020202020202020202020202 -020202020202020202020202020202020202020208020202020202020202 -020202020202080808080202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020207070202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202070702020202020808020202020202020202020202 -020202020202020202020202020202020202020202020202020202020208 -080808080202020202020202020202080808080808080202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020808020202 -020202020202020202020202020202070702020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020707070202020208080202 -020208080808020202020202020202020202020202020202020202020202 -020202020202020808080808080808020202020202020202080808020202 -080802020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020208020202020202020202020202020202020202020707020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -070707020202080808080808080808080802020202020202020202020202 -020202020202020202020202020202020808080202020208080202020202 -020208080808020202020808080202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020208080202020202020202020202020202 -020202020207070202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020207070202020208080808080802020808020202 -020202020202020202020202020202020202020202020202020808080202 -020202080808080802020808080808020202020202080808020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202080202020202 -020202020202020202020202020202070702020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020707020202020202 -020202020208080802020202020202020202020202020202020202020202 -020202020208080202020202020202080808080808080802020202020202 -020208080802020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020808020202020202020202020202020202020202070702020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020207070702020202020202020202020808020202020202020202020202 -020202020202020202020202020202080802020202020202020202080808 -080202020202020202020202020808080202080808020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020707020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020707070202020202020202020208020202 -020202020202020202020202020202020202020202020202020808080202 -020202020202020202020202020202020202020202020202080808080808 -080808020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020208080202 -020202020202020202020202020207070202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202070707020202 -020202020202080802020202020202020202020202020202020202020202 -020202020202080808020202020202020202020202020202020202020202 -020202020208080808020208080808020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202080202020202020202020202020202020202070702020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020207070202020202020202080808020202020202020202020202 -020202020202020202020202020202020208020202020202020202020202 -020202020202020202020202020202020202020202020808080802020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202080802020202020202020202 -020202020707020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020707020202020202020808020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020808080802020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020802 -020202020202020202020202020207070202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020207070702 -020202020808020202020202020202020202020202020202020202020202 -020202020202020208080202020202020202020202020202020202020202 -020202020202020202020202020202020808080802080202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202070702020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020707070202020808080202020202020202020202020202 -020202020202020202020202020202020202080802020202020202020202 -020202020202020202020202020202020202020202020202020202080808 -080808080202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202080802080802020202 -020202020707020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202070702020208080202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202080808080808080802020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020802020802020202020202020207070202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020207 -070202080802020202020202020202020202020202020202020202020202 -020202020202020202080802020202020202020202020202020202020202 -020202020202020202020202020202020202020808080808080808020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020207070202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020707020808020202020202020202020202020202 -020202020202020202020202020202020202020808020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020208080202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202080802020202 -020202070702020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020207070708080202020202 -020202020202020202020202020202020202020202020202020202020202 -080802020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202080802020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020808020202020202020707020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020707080802020202020202020202020202020202020202020202020202 -020202020202020202020802020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020808020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020207070202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202070801010102020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020208020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020208080202 -020202070702020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020201060606010202 -020202020202020202020202020202020202020202020202020202020202 -080202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202080802020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202080202020202020707020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020201060606010101020202020202020202020202020202020202020202 -020202020202020808080808020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020808020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020208080202020101010202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202010606010606060102010101020202020202 -020202020202020202020202020202020208080808020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020208080202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202080808 -020106060601020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020106010606060606 -010606060102020202020202020202020202020202020202020202080802 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202080802020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020208020106060606060102020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202010106060606010606060606010808080808080808020202020202 -020202020202020808020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020808020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020201060606060601020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020201060606060106060606060108080808 -080808080808020202020202020202020208080202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020208080202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -010606060606010202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020106060601 -060606060601070707070702020208080808020202020202020202080802 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202080802020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020201060606010202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202010101020106060601020707070707070707070208080808 -020202020202020808020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020208080202 -020202020202020202020202020808080202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020101010202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202010101020202020202 -020707070707070808080808020202020808020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202080802020202020202020202020808080808080808080202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020101010202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202070707070708080808080808080802 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020808080202020202020202020808 -080808080202080202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020106060601020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020207 -070708080808080202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202080802 -020202020202020202020202020202080808020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020808080808080106060606060102020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020707070707070707020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020808080202020202020202020808020202020808020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202080808080808080801 -060606060601020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202070707 -070707070702020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202080802020202020202020208 -080202020808020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -080808080202020202010606060606010202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020207070707070707070702020202020202020202 -020202020202020202020202020202020202020202020202020202020808 -080202020202020202080202020208080808080808080202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202080808020202020202070701060606010202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020707070707 -070707070202020202020202020202020202020202020202020202020202 -020202020202020202080802020202020202020208080202080808080808 -080802020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202080808020202020207070707 -020101010202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202070707070707070707020202020202020202020202 -020202020202020202020202020202020202020808020202020202020202 -080802020202020202020208080202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020808 -020202020707070702020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020207070707070707 -070702020202020202020202020202020202020202020202020202020208 -080202020202020202020802020202020202020202080808020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020808080202020707070702020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020207070707070707070202020202020202020202020202 -020202020202020202080802020202020202020208080202020202020202 -020208080802020202020202080808080802020202020202020202020208 -080808080202020202020202020202020208080202070707070202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020707070707070707 -020202020202020202020202020202020202020808020202020202020208 -080202020202020202020202020808080802020208080808080808080202 -020208080808080808080808080808020202020202020202020208080802 -070707070202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202070707070707070702020202020202020202020202020208 -080202020202080808080808020202020202020202020202080808080208 -080808020202080808020208080808080808080202020208080808080808 -080201010101010807070707020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020207070707070707070202 -020202020202020202080802020202080808080202020202020202020202 -020202020202080808080802020202020208080802080802020202020202 -020202020808080808080801060106060601070702020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020707070707070707020202020202020101010202010101020202 -020202020202020202020202020202020202080808020202020202020808 -080202020202020202020202020202020202020201060106060606060102 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202070707070707070707020106 -060601010606060102020202020202020202020202020202020202020202 -020202020707070707080808070707070707070707070707070707070707 -010601060606060601020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020207070707070106060606010606060606010707070707070707070707 -070707070707070707070707070707070707070807070707070707070707 -070707070707070707070106010606060606010202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020701060606060106060606060107 -070707070707070707070707070707070707070707070707070202020202 -020202020202020202020202020202020202020202010601060606010202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202010606 -060601060606060601020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020201010101010202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020201060606010106060601020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020101010202010101020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202000000030100020000000202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020000000301 -000200000002020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202 -020202020200000003010002000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000030100020000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000301 -000200000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000 -000000000000000003010003030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030101010101010101010101 -010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101 -% - -grestore -showpage -%%Trailer diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/saarhull.gif b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/saarhull.gif deleted file mode 100644 index 63a930d6f3bacd6af47aaa4d78517de246725eab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68721 zcmdUY-)|h*m0oqTmueBjq-Q)26rl~8%D|Wb@-UPML{c1}yQB4b4F}luUoaDDU>eAJ zwWg3v-kKa{AuOnY3>d*8kPLAEzvoYo^3c|khVvf?*azt;Fp#I@p`Gvis=8HmZ`G~p zZc?6Iv|AE+`uzCLch5cd*6F|es~_FE{rSJ?{J8Uf`U(C!JUmR2Y4S(>U-JLHH+ug3 z`OB9t|M*Az$@AaN|Lx&#uO>V5Tf@Kl+s}Xg#qj4}{PK%meg5E!d&B?uUx(xW^!dGe zzxd_wFAx6i@WJ8!uYPg=!SLgIU;O7^?0@m^?*H;{fA#r)`D7#c*CdxdKk3Z}J12ul zA1}xB!td_dyCMG(FTMBe-9!12Nq?+AJn7%CckhI#$Gfww{nOp`ZM^WibNVB_JK{g$ zWpmHoJ)6tV%(m7Z*}DV%z1helM9MM&%N4ag{EA$@8o$pinim+u?r8nm{ zy^Hkwyo86?7wC$~!L@w>%e#oI`OZnE)?K5o&ytsteQS@d zj{5hA1c)7a!;{_bj~H`1cR%^F|4ysLL%bk&29qD-<+#6tgz8`2>D|R2+3IH_{=3Pr z_x=a!nG4IEBVn(j**_(Zcd6FtC0pN{4q%(CJ6A{ZJ}d<0PEpu={F6_92cNx^049C< z{bc9y(JcAwbQi`YA2Q@#Zv88Wdib-Sd@_01WzHJF`5*Tt9D(k5=kWjrg8G;MCuAI3 zh{!o`xB&j^-4tYP?RQ7B5p0-kefHC&y8*~0TWizZbB0`U4;B)hzWL41Ha`3dM%M5n zau!FR^JkOE@FOzLkkudKhb4r>@NBh*;O8r_@Sc@4z2w)s&nb(ZZ*4K=Hj@OUB=Twh zr%8XCAqTYm&kz4b6r7Utkvm5Nf>+T?9x*I2&P{e;sZe$_9yU^N!_?b5;z3FL(+2Q#=B_|_nc#==oll`Ag z8FDXSAi?48`;*`N?6XfMa|(U`YUlkApmcB2-9hs7uTnxW9LQF&kluNcrxIEeQi^LO zvgAiVrA1LMfhu5nc1AmocVW$GC)p;*fzrq43^|}}3S#(2`p6#ktUD)I za*m!6Ne@1tJu8O>fA{b)r`LqFlB!Sn52~)z!ol7Q_9RG_At1;9t^Egr91$K?RzU6) z7Bb`zAkymN-~C2bR&iyvNEe;eE_b-*)17S{xnJHQ-q0yaE^IlN>3Lq2W6LSXI` zVKG{635R&Cm`Y-nFs8noTKtF3KS0}r7R*n{?VbM7WU4Zg-iM62*;ef;&A7fGWCcS= zAmgqQy&2I9{u^|={J(R0&zKv2b$aw8PE}7HuE6o+)|}s$=`5-u)^F@@3bBOSP$+tb z@-sva_Aaa8CFP(g6}ar2u&kAex;g9hACG5Sq{i5ESy-$25@j_Mh3cpS$n9RH-{;4Q z_mjaAI-J)CbJzBlAxfEM#iHglfCuKV!#iipL8GNQ>tZa-8+Z>@#F!yR33MYZdM_!Z z!6yq64XUFxhFlv_pgyLwcZ&b^7;>}W>RFkK-eq#BpZ^GRXet~nlW3NaJ5uzvNa>f< z$m(zJU+!|)2JkN4rRZgPc#N9+A)2SdC(^eHs$v(8y|K$LH7W}y+z!T)K!wck&TyFW3;y-RGjIEKi z7-uo{jVtM4^(aMCA^Ej7vH~bw9vpI;6r#QwdT4`E+)~g+R=LtzexXItYZpRLUu1{V z8d)oF)};^)_p#3rE6o*KvFmIB|%!VYiMB~6Uq)2c7dTRvxLBWwJpm^)VW<)9^9g^@L~7F$|t;IN8y zr-&?SD)ctAkCj_lwd(tmvv7ZNlX|DrR9J+SrRsYZ^6;E`r_@wvpN7qsFxl|>Qo6Y; z{tZWzHnP^=;f4=WUp#4XSK+`KS?wyV=t8U68s_+2>)MEno@0kMv_@8r{~8nz??Uca z2v3i!krksAsPCPRp*FIdUAZplMTV!SHw)qXLYcBbU}ufbSM{E^Jd-( zI*YmrYrob;R&HrUM9Auk;J;)V19%tj^PpPT;q|nUwb0TUa(s;6aalRh6=>n*@a8#P z0;Jn9jwq}8R%c-^p}U0Qgh_t{FeJ-@gEq1jK$cZ~P55s*=t`w^=gpI~Z#xLjb5vic zg-t{iQ(Bq|2YMrG^{gx>y#1q-!Tnda-#j^d?}so6N=*-6>nT-3E_I^bar@h_|GggdfAtl|5^BoR@# z)~oPg1;fB7DL20rM;E`M646{wFbJlLf5 z5P`f+CbfeDZYfwJE9WfnLVD^UhQ~m zWCderYOz1zc5?@n0HwL9wLN&WJJ{Z5WMvlWJ2>l%!AQA7QF`M%4jHW#Hx-7~$ZDE~Y1QWk zyjYX5!;2$g>66(gwXnEY5EwOg&WPc!vmuSt!h<)~$TCrWI9LoLL->|LgWPsNItO2~ zf^G~MhbbJ+w`?y>$)mt)#t!S-+Q=$8s|m95T7k1@J)tCkRtlE82o3whu~2_43*mSV z&pc`FfcnZA{}2P%3}C}tYI}QcP0a>3Fvnn3%#N?_P}*);n~sp z_S%>UpFEL?G8g4U>E#x(kh=teq-3XLNO%oIHJsLAq&w|80_hVEEn)3ihh?wN!1q-!!zCvNI8&$gV0x`S{o#5=}0pT?^UPqJe~WY;fc`zJjc6WJb; z(G1AquEH~GWK}pTn9}q~@BL6>lXn*Wj;fi5j#^?@G#nnWCseCDR|a@&Q~D{e&@T#2 zg{k(jKz)_oG6{KETn+@B1=2d*1!?8fA`AVZJTU}^yIN6n5(ud9`_1+Lp^dDDaF~-? zY|WLtg*mlm(>3HZ`?7_z`a39OU1#+mJaH}5D7h9|BdbCye;RUe^9I8rOlaBfYv0(` zr|r^CvF7l~U58THuVs!m5M-jtDD}dDQmKD-G`PO@=!hFb z6@Gs?vObnylvaHy9v)B~!o^L!S`?s~7#5usu#mb9ll%07t)D-o6;HkQwUHIIJES(0 zmIHpj>*W?v3tp{@VJ!chZyk&j(vvIy(%$)fu8^~+t8i?MtQ1+f>Il(9af2SN_BBJIDC)-=`n~n*`mQL7 zq7pzB|3=6_rarRp0hNql$D`6-r+G!RQ4GnV;^s9s%PK`d)r?Ao;W7(dT80#kKv=7s zDEZ-3)YIy^`+%P;oa3rO$njJT9BDT*S}iNzG7Af8;g9}2l%EU6aBpy@qG<;>Xd`RQ z4|wTy6tx2N9UGv^YMphyqcM(cp+(_ya>t@+79QZxqOzsWO$7}6;NFCZN>HZ5Lg{sw zs9*@mw$#A&>jxOK!ONlQGOqx96|@2|++G87Lv&Cr?C=J9Bg@q4O!__P^%l_Rgu5*uwAZ1iS?O zZk&ZR_B_kzxhD^QEsqwiJFQ4G;Qx$&TKIh3Zt zGuuE@?!d#H{>H;ORZx`NV|0~B1(%jxIAHwI@Prp0d|ci_`8CH`%-3O2_zXz)_&p`9 zThQvylO$Y*P*dT^8d)sr9DAs#`dt=$6owUWI78apKczvnWdE_+P_0%iv`C6q6oH_7 zGDuPji=wc@>uMv5k=4cIEDSHU2%v|%$8K|xmGk@hWPgNK+8PJ5$nXKJ>_N5`ODj&A zH%I-CXy;1NEUR_xKpri$7>@cKId~$IsCMw2f5a0AnK*LFJ!$VDlb9u6mw8EmwtuK$L?}*IiR0RMJa_ljd?lV5!EX;eWQZ061 z4qA-i7*U;Ms13UEDt&YI+!|Rd3O9=iG0e2eN*d~a09gl8F$J}v4R5^Tqb*!NCJb?6 zcpU#o9xY4(pCn_JOfNydgUCq~_jU4ch}J4i!<68$;f<5^H7=uYVtAb;jjVkW)#+Yk z0s-`bj)&4B3cH?T!3jRV+tosSH|9T5Q-S7g^S=&udiY;lfd_AMSV-2}C#YtY2KbeU(rsSZ?>cuI zJ3I;D`E6_mEQ@l^l4A~E9;%b`-VzKqb$o;<-AbcD=k>cbvc9sF^=$21qptu+S<~7O z%9Z9-EUmYs>vtz`b||-Fj;xV|JbWqzv{`r|erM{-;ekWtg@bl3df#b-u2|Bbt3ZRd zrK>=WzeA<8SCpXWLM#lk0~!}}%yCzk+f&l$;BC5nB7lG3Yc&EIaWYA-FGh(uNp4n|ri7QCYLc1*^9U9FSqorTCp4XuiC zJY+S6!ciCBJWYOSlX(}Lw zUAQW#RO_PnFRl8@&|2r@;cB7e_-itFo1VGhl<0kxNwGurQ zjS>x0-wS-Lg;@AoW^UN(I9?lB4zy6qb?Li3I=E^4hz}X_D9t&`6~+I6m*yyy2sm0* ziK1J%6tjokYZ%g0kh$ALeaHPBSl>er`#PU5qMMCAyhvDlX>EqAfU|_OSriou1+A#5 z;0)d-)AK7UEb{NlL45^T^vh#*9=&)gE&bO8Vkif>@H>g}+{5q;-tH#P^9)a?bdhin z?08mIP~TE4#6?ylkcqnEc{;*7c)P&x(mP_Gn5cy4swIuA z^5E?U2Tv9NY zr|eMjJ2rSUcYDrdUXGR}jq;AieYh6T(lpPDqIDuwtLS(9MiKCZl;)&GN|*ee4c;yQ zp0X%sAZf6@_BC}@nfl7!YOhww@$sTce%D4;*;%-EuB)x%EZOxntJ#S93f?0Bmb?{} zhiCbvRknFKQQTDU4&KIdg81BG8tVR6ZOw_2zgrMlpuTYxm+JM1Osxm*!}Cyqx(b28 z+Z@djvYZ<}OY?i{5Yo^pY0#w>Rt?_vA6m$*-=(B`@Bg;Q{TeGNuEV?n5Gf+M}JhZBmhr|gE z)6gF&ZCthV?=r_b7V>q&%)+Pni|5=_2o2t*EIM{X@#k(VgR`vaTZSxQZnF?wg^I!3 zcdnF>bw1S|gBK2~IEH+v-@u;65KQZ;mA{8kGkDwfgc%&Z=1x#94~sE0XDx;-hJ#mB z{s@Z`BQx;Y{#>rdl%U13B#m6a%hiWyz=zfHK{iltr@H{l6QGRLVEHY7-!Vbj?|L!#mX)2WFZezo1F&rFgi?&g{(j$u_P$zk>^hgnAFoK+H) zR(*y205;F3c!tqVi?l%pS=z{|9=vT?f^3L&ERcnnH0G+dw768v(>^wx<#xzdB7JeoJ~nemu}mODD3d+=WbIL-8hjG zUQ3?KxmvGO<;0Lz5$w@yN^jiY?LYrg9g`xf_GZ0aZgEhm%B%pT+tZOgCk4lABgaT$*;%yXEMvkJtSnVu8(GW_SI}6X2c^ha(p9J%ye(Pe0{#&nuR9hNW5_)W ziAoC#kr?6JVd^_J$FE<E7?<7|Lp{Y=q zyG_*Rar_HA1-WM@GT4E-s7!t7DxHrZ!_7r0!^r2X zHn~G?bNoKTr3FE$HnK9m2ejfWaxLu3WTi$`DX4EX7Sh3pS}3<;A_i|iaEF%COe886 zau!Mi8d+FrAP=oF$1{-e;)la|LbqkvS=3dC8@!#JCG+Jb9cd>Yv>LxF^c`fGSw)cI zvaAiQYA|?PT6!c45ysBd@2tzPuzNDnXD27Pq@a&^1#*Y=8xr-QO1HCQ;)8s9jNx{9 z7IyIYd|CD(&w9t~7-v@=T=3JQ`5Bt#rz0ZYosG-7XHTqEj$}1Mi0-l4q54fp=?UMFU>42y2+0LtI$ySk*^>=U^D%&vsuk<`5vLrPpH`sAXr#e46(ztgHu{ zJdjeBLvAWy?zUEaQMIJq(#QShqO;0yfZG~4i{#a>(oRYfmGUS(TUpUmu)*8WqRwyY zF-JPJ*+UPF)e;o>n5ItDBO2dmY1nG;Hb)qKr(^z%|AOldSAESL-@wANwSPejN56qv z3i54UW?@h*{ta=K9VOGH%_xvI@jFvrGnB4h*J008JV+y}>ELZ`JYw*y-DbKZb|C5- zoE^y--Z4dqug5eTyzQPPOG(F~oESp#1zNbzW3#2u!VWJycN^3fQj5}vQHtk!vZs`q zK#Kvdd6K4d4B$)7+M8h+GLY5{-p(&!se#T>@&=8Aq=cL=rk1318w;@xIk$u5M%FAi zhmKVBv2u2l>~xmtha=aWsG(K0vH*BMWV+_u4wkM$#NchH>TU;|qhxLZ)h!lm>zECu z7gv--r7{fzL#ybqye+!%FT;M=@zhnQAH3~xJY|up#Y3wi)LM4kjra)Q(~PF3!utBW zZtyncNSPg+vt(Sx;74E0LO)75)4Zb6lx~)WkF1CL_IkD)%HZvax!a_M3kR+GU}1Ka zjL;J^7}GRU%jc{}QTFVB`{0c>vI_TK2>%xX7R61VHfm7>BH(~9l$@1* zhrv_l-lb>mHb9XPFTz{-)k2({ zvICueC~1=@_mNiY@N$E>$A3R17Ltk>tpP}}!-q~E^#A@!Ea@M`O_ zVu*_@jwtQs3bLrF;0)f@jLBkHr&W5CEMuOW#lot-cv)g~4B+LvGzlyO2YKdLEi4Y+ zW}%K+wHBsF$w<;ML#|mGs#aR{xsDfbyKpdNidPG;4rPun4&JUWOXY(MS1fAJ{& zs{@A$trUh$a)&Ltu{WFZGaV^uxmT;Sk+q*$*mNJ3o+V4;F<45nG7H2oOT%J^GhGe| zS=>~}=5CYU<(MPhLTcZWvt%(c{%h`d!)p`33ml~M5ob|T!5O@*LK|oW>eI7iUW{T= z+5vo1IB=NpK?ZmcMWv4|7RABa{2L9m(lgur&HCIS>TBRF@~=2P&or`-n{kv)YLAt~=^u7g>&0&PJ1O$K>a3 z^Y50m3JtB2Xg=iXqk3sw&m4c<9u$kG(tuhF2mbI>RB`ZjAPp7VAvjRf&uGw|{9Jx$ zmHg$`HolL)0G+xjnT3tuKrxghLRVIlK8`4DWI5aNHdM+-$pkt2nxE8JP8#a7Zp2yC zJI0uG{&V4N{Zs|*t zhDQXYhZY`DX+`7uJu{H2J`k$oEi1RhLUa}KgSXl0cxSQwcz6IKGN>o~o_+OAE)V%& z3_Jd>CnfhGE=he#1VUhzcvk+Z{+~92h1HT&CQnq$BGF`Z38gZY zrr9I?{CsU$RK10K#>Rf9(#LU@_OVg}%c4Mikrr|qF)eeLbB?#pZAsK@>pp)=J6z6AE#38hiNXu+ zPz(8XOm6Tt|7)eFP<2FE^tGM|#HHb!l845!#%vD@F+4lcFHh8RTk{Y*yu#pZvbCYJ z%t9O`>o%{9EYDa%%^m8y>bY|n@F}vORbXh9oIY4emj`c0GYy9sFD43re|w!d!9!Xv zl+6Rq;$O>&DyN~q(6Lb3!F2fGu(Djp+8^AtUSCWe24i@B`{(6>m%uPARKVMESRk5K zyF=MUI2Zm2S<+OH!P^CpY6Ohnb8xV#Z>$_{j(_kfG#*|7A8>s2?y#EwzSRd=rFNjE zLSgVW8REoH?Q)S7&gPWckc@Y!`aF49gadYqWFeP6nX|luw>1O-zcMR1UG$h2~ZMs@KTh+muU(3c%Mc#uX`VemE+iZ^-SeM%d@TKI>~Bsn@sdI_I@ zIco8&7stZ1SQb%Sn>ku(YSvkZs<(SG=(D=26*m=1bGNMwVd`_#s`8dd?e@B`x%_>o zQu>5N?Ki%($GRL0NBDN!gzc9YQd7Y*c)Pi?5ICZ~hXY9O;=@Lt(uRlX29~9pRkb&V-3nDvYoH;8ncw1r-L>2^iv?7r9@c;D9GM~}?ytJaRJuA6VwF31y zq~+`f1a8rQ$Ic}8^|;o^N-bPyWhHk_`t)_E_+ER=VNW+ag^`~4xxBNuS>zZ9kHI^c z-@`+z;K9U|rH^@?!%&tGa6JF3muckJQpdyZ^cCa1XNRwj-aI+94UhIUf_`^b*0n|z zZYRlqODi=M=Dxw(=A%{?3YDJUe)Hr9*zgSNX*q4Y9&Cc)Wk2EiUESu1Vewm9vBRUm z+uUe~TX)i`F9xM|-aJ1fcAyTAFQv_GckLl_e8UMQ9DwyB;efA5VNOW>9vr+)K8dqX z2n4Db(YR?i#}{uRO1Y~AWt8HVdE=pKp}FUi1&tW`rWOW|&4{v-oU^o%m0B1js*uwB zK^{1$R!D!yD8`RnT_KSQ^}6LNqBniCM^MaaX}RcsqrIg&>&HP<71u z(u)^a4_+akzN&K8hRmHHcF^5XK$L#a-Tl)!EpvlO;S12Is}LBxUE}zycNBKKW8tgY ze|T~z+eaIhv{a1c_I7sLl(49rv8d+vxL%*virarIZ)mBTMH`l)e`gqkVIE#t} z%0p#`y4ryP1W_X16(x-<|KM#h9lxGYZMkV6n;8qhqh z!}G&K1;BGxAvAc~;2^+=q0%~bU<+~44&W;|>pQu^bD$R{R6ip zr>G6^sG8qd(#Q%9-X`${kb)=tqKH5=qxqc;tqN|Q=%=5qeXC_er=Lvd3m{#`%ivk8 zIWDw%eZ;aGQj41k4^MYRnK8-BtL2K)e{E}_Uldmnhr@aIWRTE+!lJi8^GF`bIYg6C zdS!r2vf-I&@|feX!>b;=eGwL7?{pnX(vYhjD~=b`e`La&CkWv`^E+O`kUPWa2!~u; zWP3=fcJMaGYstCefx{hGlk7Ymbjb$U9rC;Pen=xN2sYVr*y*Gbz7$X63|ZR8avle= z6JCp9PFB+%hAI;RJnJDug9>JZDD}9Cs397B*=kTLX)2TkZyV7-p=0qU-uZJ!FSjhr ze+j;{H`I9b*YMtyrlvy8;BCz!e@YkOP!~ek@Oouo#3y~7cLuFGS?uYOsEEPaq_l%l zb&ONt*2GY7*CvE~%+b)oh{4;j3s1>eA(XbaFwYK!5YjQnIBxK^g`lCcF2zD_D%8x~ zrYyoSM;$$^$ngyUj~!n9;B88q8Y<1R1BO-=@X$~#V4@`);s$T8c4aLNts;cChl4h< zE`qcwQ#v|?bwjJ9t57$18y^R^`IpvrBX)KqZhZtDr}Wi32Qh#_`(g~8hp8k^B_ z!n+9Im%mC!58fuo!PYhlzWQCOzF2Rmt;hPo(SX-RRx?_Tj$vD^XmSgCu+eJ4YDrfi zV(|96g{%TA%jFg(E$S-74c>0A)N1)+6^aqTSldLe5)H89T(QuSRTX=Qn6 z@9F^0O@*q#+j$GQ2nrdd!`0Q@d^_guY)j(f;$5r0MY^SzVIg*S;lbMtI7_O&)j6J-#k=qn z_^;*Q?FCm>Ip%QjP*AH}(nPOeawDtx;BCvI)o5i@&s56P7tJ)%RcJnVTPUq5Ew7$R zU(VYO-X`6mmevc1A?czaq`})Xcbgu%kl`=%L-r+W-{M|Zz$rt}?gshc`x|&?Ow;HYHyO(0&_YypF^A7lZUcy7m7=Ayw*WHvg z@MQ3ru~+i%^<8hvDCfD=Hl2U4cb{68Pffr@iTd9aY9)gXZq?C$Q+}nFp1m8|o5X%7 d!A)cNZ)9(huD!$K2=d?5-du*Le@y=E{|7p;C^7&5 diff --git a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/traits_classes.tex b/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/traits_classes.tex deleted file mode 100644 index f5f6da2cfd0..00000000000 --- a/Packages/Convex_hull_2/doc_tex/basic/ConvexHull/traits_classes.tex +++ /dev/null @@ -1,31 +0,0 @@ -\section{Traits Classes} - -Each of the functions used to compute convex hulls or extreme points -is paramterized by a traits class, which specifies the types and geometric -primitives to be used in the computation. For two dimensions, there are -several implementations of traits classes provided in the library. The class -\ccc{Convex_hull_traits_2}\ccIndexMainItem[C]{Convex_hull_traits_2} -corresponds to the default traits class that provides the types and -predicates presented in the 2-dimensional \cgal\ kernel in which the input -points lie. The class -\ccc{Convex_hull_constructive_traits}\ccIndexMainItem[C]{Convex_hull_constructive_traits} -is a second traits class based on \cgal\ primitives but differs from -\ccc{Convex_hull_traits_2} in that some of its primitives reuse -intermediate results to speed up computation. -There are also two traits classes defined for the two geometry kernels -provided in \leda\ \cite{mn-l-99} -(\ccc{Convex_hull_leda_traits_2}\ccIndexMainItem[C]{Convex_hull_leda_traits_2} -and -\ccc{Convex_hull_rat_leda_traits_2}\ccIndexMainItem[C]{Convex_hull_rat_leda_traits_2}), which provide an easy means of comparison with these kernels. -In addition, there are three projective traits classes -(\ccc{Convex_hull_projective_xy_traits_2}, -\ccc{Convex_hull_projective_xz_traits_2}, and -\ccc{Convex_hull_projective_yz_traits_2}), % -\ccIndexMainItem[C]{Convex_hull_projective_xy_traits_2}% -\ccIndexMainItem[C]{Convex_hull_projective_xz_traits_2}% -\ccIndexMainItem[C]{Convex_hull_projective_yz_traits_2}% -which may be used to compute the convex hull of a set of three-dimensional -points projected into each of the three coordinate planes. - -\input{traits_classes_3.tex} -\input{traits_classes_d.tex}