CSL Notebook Entry: Some properties of Interpress Conic Curves XEROX To From CSL Dennis Arnon PARC Subject Date Interpress Conic Curves January 28, 1987 FOR XEROX INTERNAL USE ONLY Abstract Pieces of conic curves in Interpress 3.0 are defined by a scheme that goes back at least to A. Newell at Boeing (1960). A conic patch is specified by two endpoints P and R, and a point T of intersection with segment [Q, S], where Q is a third point and S is the midpoint of [P, R]. The following figure illustrates the scheme: We derive solutions to two problems pertaining to such conics. First, suppose the conic is a (piece of a) parabola, i.e. T is the midpoint of [Q, S]; then find the point U of [Q, S] such that triangle [P, U, R] is a best approximation to the parabola (in a sense to be made precise below). Second, for any conic patch defined by this scheme, find the implicit equation of the conic curve of which the patch is a piece. Attributes informal, technical, Page imaging, Splines Introduction The solution to the first problem is used by the Imager to render conics. A given conic is subdivided until one has pieces that can be sufficiently well approximated as parabolas, then the area-difference-minimizing triangle of each such parabolic patch is rendered. The second problem is just for fun. Historical note: Robin Forrest's Ph. D. thesis ([FOR68], p. 30) cites Newell [NEW60] for some basic facts about this conic definition scheme. Hence it must go back at least that far. First problem It suffices to solve the problem for a particular parabola. Hence we use the simple example suggested by Figure 1: Figure 1 The equation of this parabola is Y . Figure 2 adds a triangle and appropriate notation to Figure 1: Figure 2 Let X be the equation of the line through R and U. We wish to choose U such that Y is minimized. Call the U having this property minimal, and similarly triangle [R, S, U] for this U is the minimal triangle. Clearly any U below T or above Q is not minimal, and for minimal U, line [R, U] intersects the parabola in a point I = (X, X), with X in the interval Y of the x-axis. So let us solve for the X corresponding to minimal U. The equation of the line through R and U is Y For x < X, the line is above the parabola. For x > X, the parabola is above the line. Hence the function we want to minimize is: Y Routine computation reveals that: Y This function has a local minimum at Y Computation of Y and Y reveals that Y is an absolute minimum on the interval of interest, yielding minimal U of: Y It is convenient to express the ratio [U, S] / [Q, S], which is: X Second problem The general implicit equation of a conic curve can be written: Y. We have five constraints on a conic patch defined by the Interpress scheme: (1) It must pass through P. (2) It must pass through R. (3) Its slope at P must be the slope of line [P, Q]. (4) Its slope at R must be the slope of line [R, Q]. (5) It must pass through T. Clearly constraints (1), (2), and (5) give rise to a homogeneous linear equations in a, b, c, d, e, and f. By the Implicit Function Theorem, the slope of any curve X at a point X on the curve is given by X where X and X are the respective partial derivatives of X. Hence constraints (3) and (4) also give rise to homogeneous linear equations in a, b, c, d, e, and f. Solving the resulting 5 by 6 system of homogeneous linear equations gives us a, b, c, d, e, and f up to a constant multiple. Let's go through this for the particular parabola we considered in the first problem. The constraints give us equations: (1) a - e + f = 0. (2) a + e + f = 0. (3) 2a + 2b -2d - e = 0. (4) 2a - 2b -2d + e = 0. (5) c + d + f = 0. Hence the system to solve is: X which yields an equation X for this parabola (where X is the arbitrary constant multiple noted above). Acknowledgements Thanks to Dan Bloomberg and Eric Bier for corrections and comments on an earlier draft. References [FOR68] R Forrest, Curves and surfaces for computer-aided design, Cambridge University, 1968. [NEW60] A Newell, A general discussion of the use of conic equations to define curved surfaces, The Boeing Company, Document D2-4398, March 1960. þCopyright c 1987 by Xerox Corporation. All rights reserved. [Artwork node; type 'ArtworkInterpress on' to command tool] [Artwork node; type 'ArtworkInterpress on' to command tool] [Artwork node; type 'ArtworkInterpress on' to command tool] ÊC¦˜Iblock•Mark insideHeaderšÐboœ*˜>Ipositioninternalmemologo˜Iinternalmemologošœ˜memoheadšÏsœž˜NšœÏtœ ˜Nšœ˜—šžœž˜ Nšœ(˜(N˜—Iabstractšœ Ïmœ1™–G123.4722 mm topLeading 123.4722 mm topIndent 1.411111 mm bottomLeading –80.0 mm xmin 0.0 mm ymin 162.6306 mm xmax 120.65 mm ymax – Interpress–»Interpress/Xerox/3.0  f j k j¡¥“ÄWB ¤ ¨  mö¡£3 ¢ ¨ r j¢ ¤ñ ¢ ¥ ¨¡¡¨ÄWB ¤ ¨ r j¡¥“ÄWB ¤ ¨¡¡¨¢¯“¡¡¨¢·“¢°“í»™OÄ#bAŽÆŽ˜¢¯“¡¡¨¢·“¢°“Ä#bAO™í»—Ä8ÁàO—íÄáÄ#bAOÄ ¡”¡¸¢¯“¡¡¨¢·“¢°“Ä8ÁàO™Ä#bAŽÄ™…—°P—˜ r jÄöiÄíS0 ¢ ¨ÅXeroxÅ PressFontsÅ Helvetica-mrr£¡ “ª ¤ ” •  —¡¡¨  ŠÁ– k é r jÄ]·‘ÄS  ¢ ¨ÅXeroxÅ PressFontsÅ Helvetica-mrr£¡ “ª ¤ ” •  —¡¡¨  ŠÁ Q = (0,2)– k é r jÄSxľ¤ ¢ ¨ÅXeroxÅ PressFontsÅ Helvetica-mrr£¡ “ª ¤ ” •  —¡¡¨  ŠÁS=(0,0)– k é r jÄí6·ÄüÍ ¢ ¨ÅXeroxÅ PressFontsÅ Helvetica-mrr£¡ “ª ¤ ” •  —¡¡¨  ŠÁ P = (-1,0)– k é r jÄ&KÄü½ ¢ ¨ÅXeroxÅ PressFontsÅ Helvetica-mrr£¡ “ª ¤ ” •  —¡¡¨  ŠÁ R = (1,0)– k é r jÄ 32Äþ9 ¢ ¨ÅXeroxÅ PressFontsÅ Helvetica-mrr£¡ “ª ¤ ” •  —¡¡¨  ŠÁ T = (0,1)– k é r jÄõÄþw ¢ ¨ÅXeroxÅ PressFontsÅ Helvetica-mrr£¡ “ª ¤ ” •  —¡¡¨  ŠÁU– k é k é k é k gš¢=™=S˜—J–õArtwork MeddleExpr MeddleExpr(CMPD $eqFormula {$lhs (ATOM $variable "y")} {$rhs (CMPD $product {$multiplier (ATOM $variable "f")} {$multiplicand (CMPD $paren {$a (ATOM $variable "x")})})}). MeddleExpr(CMPD $eqFormula {$lhs (ATOM $variable "y")} {$rhs (CMPD $product {$multiplier (ATOM $variable "f")} {$multiplicand (CMPD $paren {$a (ATOM $variable "x")})})})–Y18.18795 pt leading 25.9722 pt topLeading 25.9722 pt topIndent 16.21575 pt bottomLeading šœQ˜QJ–ñArtwork MeddleExpr MeddleExpr‚M(CMPD $integration {$lowerlimit (ATOM $integer "0")} {$upperlimit (ATOM $integer "1")} {$integrand (CMPD $abs {$a (CMPD $difference {$subtrahend (CMPD $function {$f (ATOM $variable "f")} {$args (ATOM $variable "x")})} {$minuend (CMPD $function {$f (ATOM $variable "g")} {$args (ATOM $variable "x")})})})} {$wrt (ATOM $variable "x")})–Y65.22368 pt leading 53.3565 pt topLeading 53.3565 pt topIndent 35.86717 pt bottomLeading ˜J–[14.96591 pt leading 19.48296 pt topLeading 19.48296 pt topIndent 19.48296 pt bottomLeading ˜K–[14.96591 pt leading 19.48296 pt topLeading 19.48296 pt topIndent 19.48296 pt bottomLeading šœ/Ïiœ5¤œ¤œt˜ïJ–vArtwork MeddleExpr MeddleExpr(ATOM $greekVar "\013")Artwork MeddleExpr MeddleExpr(ATOM $greekVar "\014")–Y17.94705 pt leading 25.9722 pt topLeading 25.9722 pt topIndent 15.97485 pt bottomLeading šœ ˜ K–øArtwork MeddleExpr MeddleExpr(ATOM $greekVar "\013")Artwork MeddleExpr MeddleExpr_(MTRX $vector [1 1] {$r1c1 (CMPD $list {$car (ATOM $integer "0")} {$cdr (ATOM $integer "1")})}))Artwork MeddleExpr MeddleExpr(ATOM $greekVar "\013")–X9.03375 pt leading 20.6724 pt topLeading 20.6724 pt topIndent 12.36135 pt bottomLeading šœ_˜_J–[14.96591 pt leading 19.48296 pt topLeading 19.48296 pt topIndent 19.48296 pt bottomLeading ˜+J–‰Artwork MeddleExpr MeddleExpr„g(CMPD $eqFormula {$lhs (ATOM $variable "y")} {$rhs (CMPD $eqFormula {$lhs (CMPD $function {$f (ATOM $variable "f")} {$args (ATOM $variable "x")})} {$rhs (CMPD $eqFormula {$lhs (CMPD $function {$f (CMPD $paren {$a (CMPD $fraction {$numerator (CMPD $difference {$subtrahend (CMPD $pow {$base (ATOM $greekVar "\013")} {$exponent (ATOM $integer "2")})} {$minuend (ATOM $integer "1")})} {$denominator (CMPD $difference {$subtrahend (ATOM $integer "1")} {$minuend (ATOM $greekVar "\013")})})})} {$args (CMPD $difference {$subtrahend (ATOM $variable "x")} {$minuend (ATOM $integer "1")})})} {$rhs (ATOM $integer "0")})})})–Z34.82839 pt leading 38.12129 pt topLeading 38.12129 pt topIndent 20.7071 pt bottomLeading ˜K–vArtwork MeddleExpr MeddleExpr(ATOM $greekVar "\013")+Artwork MeddleExpr MeddleExpr(ATOM $greekVar "\013")L–X9.03375 pt leading 20.6724 pt topLeading 20.6724 pt topIndent 12.36135 pt bottomLeading šœ˜J–®Artwork MeddleExpr MeddleExpr† (CMPD $eqFormula {$lhs (CMPD $function {$f (ATOM $variable "A")} {$args (ATOM $greekVar "\013")})} {$rhs (CMPD $sum {$addend (CMPD $integration {$lowerlimit (ATOM $integer "0")} {$upperlimit (ATOM $greekVar "\013")} {$integrand (CMPD $difference {$subtrahend (CMPD $function {$f (ATOM $variable "f")} {$args (ATOM $variable "x")})} {$minuend (CMPD $function {$f (ATOM $variable "g")} {$args (ATOM $variable "x")})})} {$wrt (ATOM $variable "x")})} {$augend (CMPD $integration {$lowerlimit (ATOM $greekVar "\013")} {$upperlimit (ATOM $integer "1")} {$integrand (CMPD $difference {$subtrahend (CMPD $function {$f (ATOM $variable "g")} {$args (ATOM $variable "x")})} {$minuend (CMPD $function {$f (ATOM $variable "f")} {$args (ATOM $variable "x")})})} {$wrt (ATOM $variable "x")})})})–Y65.22367 pt leading 53.3565 pt topLeading 53.3565 pt topIndent 35.86717 pt bottomLeading ˜J˜K˜!K–ºArtwork MeddleExpr MeddleExpr†(CMPD $eqFormula {$lhs (CMPD $function {$f (ATOM $variable "A")} {$args (ATOM $greekVar "\013")})} {$rhs (CMPD $product {$multiplier (CMPD $negation {$a (CMPD $fraction {$numerator (ATOM $integer "1")} {$denominator (ATOM $integer "6")})})} {$multiplicand (CMPD $paren {$a (CMPD $product {$multiplier (ATOM $integer "2")} {$multiplicand (CMPD $difference {$subtrahend (CMPD $pow {$base (ATOM $greekVar "\013")} {$exponent (ATOM $integer "3")})} {$minuend (CMPD $product {$multiplier (ATOM $integer "6")} {$multiplicand (CMPD $sum {$addend (CMPD $pow {$base (ATOM $greekVar "\013")} {$exponent (ATOM $integer "2")})} {$augend (CMPD $product {$multiplier (ATOM $integer "3")} {$multiplicand (CMPD $difference {$subtrahend (ATOM $greekVar "\013")} {$minuend (ATOM $integer "1")})})})})})})})})})–Z29.8217 pt leading 26.96995 pt topLeading 26.96995 pt topIndent 26.85175 pt bottomLeading ˜K–Z29.8217 pt leading 26.96995 pt topLeading 26.96995 pt topIndent 26.85175 pt bottomLeading ˜$K–ÌArtwork MeddleExpr MeddleExpr‚*(CMPD $eqFormula {$lhs (ATOM $greekVar "\013")} {$rhs (CMPD $difference {$subtrahend (ATOM $integer "1")} {$minuend (CMPD $product {$multiplier (CMPD $fraction {$numerator (ATOM $integer "1")} {$denominator (ATOM $integer "2")})} {$multiplicand (CMPD $radical {$radicand (ATOM $integer "2")})})})})–Z29.3399 pt leading 30.96995 pt topLeading 30.96995 pt topIndent 22.36995 pt bottomLeading ˜K–ÔArtwork MeddleExpr MeddleExprF(CMPD $function {$f (ATOM $variable "A")} {$args (ATOM $integer "0")})Artwork MeddleExpr MeddleExprF(CMPD $function {$f (ATOM $variable "A")} {$args (ATOM $integer "1")}) –Y20.11515 pt leading 28.6221 pt topLeading 28.6221 pt topIndent 15.49305 pt bottomLeading šœ#˜#K–ÌArtwork MeddleExpr MeddleExpr‚*(CMPD $eqFormula {$lhs (ATOM $greekVar "\013")} {$rhs (CMPD $difference {$subtrahend (ATOM $integer "1")} {$minuend (CMPD $product {$multiplier (CMPD $fraction {$numerator (ATOM $integer "1")} {$denominator (ATOM $integer "2")})} {$multiplicand (CMPD $radical {$radicand (ATOM $integer "2")})})})})–Z29.3399 pt leading 30.96995 pt topLeading 30.96995 pt topIndent 22.36995 pt bottomLeading šœ˜K–X9.03375 pt leading 20.6724 pt topLeading 20.6724 pt topIndent 12.36135 pt bottomLeading šœJ˜JK–ÉArtwork MeddleExpr MeddleExpr‚'(CMPD $eqFormula {$lhs (ATOM $variable "U")} {$rhs (CMPD $paren {$a (CMPD $list {$car (ATOM $integer "0")} {$cdr (CMPD $difference {$subtrahend (ATOM $integer "2")} {$minuend (CMPD $fraction {$numerator (ATOM $integer "1")} {$denominator (CMPD $radical {$radicand (ATOM $integer "2")})})})})})})–Z37.5539 pt leading 40.16542 pt topLeading 40.16542 pt topIndent 21.38847 pt bottomLeading ˜K–X9.03375 pt leading 20.6724 pt topLeading 20.6724 pt topIndent 12.36135 pt bottomLeading šœ@˜@K–´Artwork MeddleExprPostfixW34.1399 pt leading 32.1493 pt topLeading 32.1493 pt topIndent 25.9906 pt bottomLeading MeddleExpr‚$CaminoRealExpressionRepresentationVersion1.1 (CMPD $difference {$subtrahend (ATOM $integer "1")} {$minuend (CMPD $fraction {$numerator (ATOM $integer "1")} {$denominator (CMPD $product {$multiplier (ATOM $integer "2")} {$multiplicand (CMPD $radical {$radicand (ATOM $integer "2")})})})}) MeddlePtSize–W34.1399 pt leading 32.1493 pt topLeading 32.1493 pt topIndent 25.9906 pt bottomLeading ˜— ˜K˜>J–‡Artwork MeddleExpr MeddleExpr‡c(CMPD $eqFormula {$lhs (CMPD $function {$f (ATOM $variable "F")} {$args (CMPD $list {$car (ATOM $variable "x")} {$cdr (ATOM $variable "y")})})} {$rhs (CMPD $sum {$addend (CMPD $product {$multiplier (ATOM $variable "a")} {$multiplicand (CMPD $pow {$base (ATOM $variable "x")} {$exponent (ATOM $integer "2")})})} {$augend (CMPD $product {$multiplier (ATOM $variable "b")} {$multiplicand (CMPD $product {$multiplier (ATOM $variable "x")} {$multiplicand (CMPD $sum {$addend (ATOM $variable "y")} {$augend (CMPD $product {$multiplier (ATOM $variable "c")} {$multiplicand (CMPD $sum {$addend (CMPD $pow {$base (ATOM $variable "y")} {$exponent (ATOM $integer "2")})} {$augend (CMPD $product {$multiplier (ATOM $variable "d")} {$multiplicand (CMPD $sum {$addend (ATOM $variable "y")} {$augend (CMPD $product {$multiplier (ATOM $variable "e")} {$multiplicand (CMPD $sum {$addend (ATOM $variable "x")} {$augend (CMPD $eqFormula {$lhs (ATOM $variable "f")} {$rhs (ATOM $integer "0")})})})})})})})})})})})})–[22.91922 pt leading 27.08997 pt topLeading 27.08997 pt topIndent 19.82925 pt bottomLeading ˜J–[19.30572 pt leading 27.08997 pt topLeading 27.08997 pt topIndent 16.21575 pt bottomLeading ˜KJ–[19.30572 pt leading 27.08997 pt topLeading 27.08997 pt topIndent 16.21575 pt bottomLeading ˜J–[19.30572 pt leading 27.08997 pt topLeading 27.08997 pt topIndent 16.21575 pt bottomLeading ˜J–[19.30572 pt leading 27.08997 pt topLeading 27.08997 pt topIndent 16.21575 pt bottomLeading ˜5J–[19.30572 pt leading 27.08997 pt topLeading 27.08997 pt topIndent 16.21575 pt bottomLeading ˜5J–[19.30572 pt leading 27.08997 pt topLeading 27.08997 pt topIndent 16.21575 pt bottomLeading ˜J–‚%Artwork MeddleExpr MeddleExpr+(CMPD $eqFormula {$lhs (CMPD $function {$f (ATOM $variable "F")} {$args (CMPD $list {$car (ATOM $variable "x")} {$cdr (ATOM $variable "y")})})} {$rhs (ATOM $integer "0")}) Artwork MeddleExpr MeddleExpr (CMPD $eqFormula {$lhs (ATOM $variable "p")} {$rhs (CMPD $paren {$a (CMPD $list {$car (ATOM $variable "u")} {$cdr (ATOM $variable "v")})})})–[15.19928 pt leading 23.22443 pt topLeading 23.22443 pt topIndent 15.97485 pt bottomLeading šœÌ˜ÌJ–ÎArtwork MeddleExpr MeddleExprƒ*(CMPD $fraction {$numerator (CMPD $negation {$a (CMPD $function {$f (CMPD $subscript {$base (ATOM $variable "F")} {$subscript (ATOM $variable "x")})} {$args (CMPD $list {$car (ATOM $variable "u")} {$cdr (ATOM $variable "v")})})})} {$denominator (CMPD $function {$f (CMPD $subscript {$base (ATOM $variable "F")} {$subscript (ATOM $variable "y")})} {$args (CMPD $list {$car (ATOM $variable "u")} {$cdr (ATOM $variable "v")})})})–W44.9984 pt leading 34.7992 pt topLeading 34.7992 pt topIndent 34.1992 pt bottomLeading šœ˜J–§Artwork MeddleExpr MeddleExprP(CMPD $subscript {$base (ATOM $variable "F")} {$subscript (ATOM $variable "x")})Artwork MeddleExpr MeddleExprP(CMPD $subscript {$base (ATOM $variable "F")} {$subscript (ATOM $variable "y")})-Artwork MeddleExpr MeddleExpr(CMPD $product {$multiplier (ATOM $variable "F")} {$multiplicand (CMPD $paren {$a (CMPD $list {$car (ATOM $variable "x")} {$cdr (ATOM $variable "y")})})})f–Y17.23188 pt leading 25.4904 pt topLeading 25.4904 pt topIndent 15.74148 pt bottomLeading šœ¢˜¢J–Y17.23188 pt leading 25.4904 pt topLeading 25.4904 pt topIndent 15.74148 pt bottomLeading ˜{J–[19.30572 pt leading 27.08997 pt topLeading 27.08997 pt topIndent 16.21575 pt bottomLeading ˜J–[19.30572 pt leading 27.08997 pt topLeading 27.08997 pt topIndent 16.21575 pt bottomLeading ˜J–[19.30572 pt leading 27.08997 pt topLeading 27.08997 pt topIndent 16.21575 pt bottomLeading ˜J–[19.30572 pt leading 27.08997 pt topLeading 27.08997 pt topIndent 16.21575 pt bottomLeading ˜J–[19.30572 pt leading 27.08997 pt topLeading 27.08997 pt topIndent 16.21575 pt bottomLeading ˜J–[19.30572 pt leading 27.08997 pt topLeading 27.08997 pt topIndent 16.21575 pt bottomLeading ˜J–³ Artwork MeddleExpr MeddleExpr‰o(CMPD $eqFormula {$lhs (CMPD $product {$multiplier (MTRX $matrix [5 6] {$r1c1 (ATOM $integer "1")} {$r1c2 (ATOM $integer "0")} {$r1c3 (ATOM $integer "0")} {$r1c4 (ATOM $integer "0")} {$r1c5 (CMPD $negation {$a (ATOM $integer "1")})} {$r1c6 (ATOM $integer "1")} {$r2c1 (ATOM $integer "1")} {$r2c2 (ATOM $integer "0")} {$r2c3 (ATOM $integer "0")} {$r2c4 (ATOM $integer "0")} {$r2c5 (ATOM $integer "1")} {$r2c6 (ATOM $integer "1")} {$r3c1 (ATOM $integer "2")} {$r3c2 (ATOM $integer "2")} {$r3c3 (ATOM $integer "0")} {$r3c4 (CMPD $negation {$a (ATOM $integer "2")})} {$r3c5 (CMPD $negation {$a (ATOM $integer "1")})} {$r3c6 (ATOM $integer "0")} {$r4c1 (ATOM $integer "2")} {$r4c2 (CMPD $negation {$a (ATOM $integer "2")})} {$r4c3 (ATOM $integer "0")} {$r4c4 (CMPD $negation {$a (ATOM $integer "2")})} {$r4c5 (ATOM $integer "1")} {$r4c6 (ATOM $integer "0")} {$r5c1 (ATOM $integer "0")} {$r5c2 (ATOM $integer "0")} {$r5c3 (ATOM $integer "1")} {$r5c4 (ATOM $integer "1")} {$r5c5 (ATOM $integer "0")} {$r5c6 (ATOM $integer "1")})} {$multiplicand (MTRX $vector [6 1] {$r6c1 (ATOM $variable "f")} {$r5c1 (ATOM $variable "e")} {$r4c1 (ATOM $variable "d")} {$r3c1 (ATOM $variable "c")} {$r2c1 (ATOM $variable "b")} {$r1c1 (ATOM $variable "a")})})} {$rhs (ATOM $integer "0")}) MeddlePtSize30 MeddlePtsize30–Z137.0898 pt leading 86.54489 pt topLeading 86.54489 pt topIndent 74.5449 pt bottomLeading šœ˜J–[19.30572 pt leading 27.08997 pt topLeading 27.08997 pt topIndent 16.21575 pt bottomLeading ˜J–‰Artwork MeddleExpr MeddleExpr‚G(CMPD $eqFormula {$lhs (CMPD $product {$multiplier (ATOM $variable "t")} {$multiplicand (CMPD $paren {$a (CMPD $sum {$addend (ATOM $variable "y")} {$augend (CMPD $difference {$subtrahend (CMPD $pow {$base (ATOM $variable "x")} {$exponent (ATOM $integer "2")})} {$minuend (ATOM $integer "1")})})})})} {$rhs (ATOM $integer "0")}) MeddlePtSize20 MeddlePtsize30–Z21.2363 pt leading 27.92722 pt topLeading 27.92722 pt topIndent 17.30907 pt bottomLeading šœ˜J–ßArtwork MeddleExprPostfix[9.575774 pt leading 21.30476 pt topLeading 21.30476 pt topIndent 12.27101 pt bottomLeading MeddleExprFCaminoRealExpressionRepresentationVersion1.1 (ATOM $variable "t") MeddlePtSize151–[9.575774 pt leading 21.30476 pt topLeading 21.30476 pt topIndent 12.27101 pt bottomLeading šœK˜K— ˜J˜W— ˜ Kšœ£-œ˜]Kšœ£Lœ3˜‘——…—–U: